Input & Resource Managers
This commit is contained in:
@ -19,13 +19,20 @@
|
||||
#include <IAEngine/Base.hpp>
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3_mixer/SDL_mixer.h>
|
||||
|
||||
namespace ia::iae
|
||||
{
|
||||
class AudioManager
|
||||
{
|
||||
public:
|
||||
public:
|
||||
STATIC VOID Initialize();
|
||||
STATIC VOID Terminate();
|
||||
|
||||
STATIC Handle CreateAudio(IN PCUINT8 encodedData, IN SIZE_T encodedDataSize);
|
||||
STATIC VOID DestoryAudio(IN Handle handle);
|
||||
|
||||
private:
|
||||
STATIC MIX_Mixer *s_mixer;
|
||||
};
|
||||
}
|
||||
} // namespace ia::iae
|
||||
@ -24,10 +24,34 @@ namespace ia::iae
|
||||
{
|
||||
class InputManager
|
||||
{
|
||||
public:
|
||||
public:
|
||||
STATIC VOID Initialize();
|
||||
STATIC VOID Terminate();
|
||||
|
||||
STATIC VOID OnSDLEvent(IN SDL_Event* event);
|
||||
STATIC VOID OnSDLEvent(IN SDL_Event *event);
|
||||
|
||||
STATIC Vec2 GetAxis();
|
||||
STATIC VOID SwitchModeToText();
|
||||
STATIC VOID SwitchModeToAction();
|
||||
STATIC Vec2 GetPointerPosition();
|
||||
STATIC BOOL IsKeyDown(IN InputKey key);
|
||||
STATIC BOOL WasKeyPressed(IN InputKey key);
|
||||
STATIC BOOL WasKeyReleased(IN InputKey key);
|
||||
STATIC BOOL IsActionDown(IN Handle action);
|
||||
STATIC BOOL WasActionPressed(IN Handle action);
|
||||
STATIC BOOL WasActionReleased(IN Handle action);
|
||||
STATIC BOOL IsActionDown(IN CONST String& action);
|
||||
STATIC BOOL WasActionPressed(IN CONST String& action);
|
||||
STATIC BOOL WasActionReleased(IN CONST String& action);
|
||||
STATIC Handle BindAction(IN CONST String &name, IN InputKey key);
|
||||
STATIC VOID BindAxis(IN InputKey upKey, IN InputKey downKey, IN InputKey leftKey, IN InputKey rightKey);
|
||||
|
||||
private:
|
||||
STATIC BOOL s_keys[256];
|
||||
STATIC BOOL s_prevKeys[256];
|
||||
STATIC Vec2 s_pointerPosition;
|
||||
STATIC InputKey s_axisInputs[4];
|
||||
STATIC Map<String, Handle> s_actionNames;
|
||||
STATIC Vector<Vector<InputKey>> s_actions;
|
||||
};
|
||||
}
|
||||
} // namespace ia::iae
|
||||
@ -27,5 +27,8 @@ namespace ia::iae
|
||||
public:
|
||||
STATIC VOID Initialize();
|
||||
STATIC VOID Terminate();
|
||||
|
||||
STATIC FLOAT32 Get();
|
||||
STATIC INT32 GetInRange(IN INT32 min, IN INT32 max);
|
||||
};
|
||||
}
|
||||
@ -34,5 +34,9 @@ namespace ia::iae
|
||||
STATIC SDL_GPUBuffer *CreateDeviceLocalBuffer(IN SDL_GPUBufferUsageFlags usage, IN PCVOID data, IN UINT32 dataSize);
|
||||
STATIC VOID DestroyTexture(IN SDL_GPUTexture *handle);
|
||||
STATIC VOID DestroyBuffer(IN SDL_GPUBuffer *handle);
|
||||
|
||||
STATIC Vector<UINT8> GetTexturePixelData(IN SDL_GPUTexture* texture, IN INT32 width, IN INT32 height);
|
||||
STATIC SDL_GPUTexture* CombineTextures(IN SDL_GPUTexture** textures, IN INT32 unitWidth, IN INT32 unitHeight,
|
||||
IN INT32 unitCountX, IN INT32 unitCountY);
|
||||
};
|
||||
} // namespace ia::iae
|
||||
@ -24,8 +24,28 @@ namespace ia::iae
|
||||
{
|
||||
class ResourceManager
|
||||
{
|
||||
public:
|
||||
struct ImageResource
|
||||
{
|
||||
INT32 Width{};
|
||||
INT32 Height{};
|
||||
SDL_GPUTexture *Texture{};
|
||||
};
|
||||
|
||||
public:
|
||||
STATIC VOID Initialize();
|
||||
STATIC VOID Terminate();
|
||||
|
||||
STATIC Handle CreateImage(IN PCUINT8 encodedData, IN SIZE_T encodedDataSize);
|
||||
STATIC Handle CreateImage(IN PCUINT8 rgbaData, IN INT32 width, IN INT32 height);
|
||||
STATIC Handle CreateSound(IN PCUINT8 encodedData, IN SIZE_T encodedDataSize);
|
||||
STATIC VOID DestroyImage(IN Handle image);
|
||||
STATIC VOID DestroySound(IN Handle sound);
|
||||
STATIC IVec2 GetImageExtent(IN Handle image);
|
||||
STATIC Handle RescaleImage(IN Handle image, IN INT32 newWidth, IN INT32 newHeight);
|
||||
STATIC Handle CombineImages(IN CONST Vector<Handle> &images, IN INT32 unitWidth, IN INT32 unitHeight,
|
||||
IN INT32 unitCountX, IN INT32 unitCountY);
|
||||
|
||||
private:
|
||||
STATIC Map<Handle, UINT64> s_imageExtents;
|
||||
};
|
||||
}
|
||||
} // namespace ia::iae
|
||||
@ -27,5 +27,14 @@ namespace ia::iae
|
||||
public:
|
||||
STATIC VOID Initialize();
|
||||
STATIC VOID Terminate();
|
||||
|
||||
STATIC VOID NextFrame();
|
||||
|
||||
STATIC INT64 GetTickCount();
|
||||
STATIC INT64 GetCurrentSecond();
|
||||
STATIC FLOAT32 GetFrameDeltaTime();
|
||||
|
||||
STATIC INT64 GetUnixSecond();
|
||||
STATIC INT64 GetUnixMillisecond();
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user