This commit is contained in:
Isuru Samarathunga
2025-10-15 09:27:19 +05:30
parent 0f557eb010
commit f742dcfaff
8 changed files with 87 additions and 58 deletions

View File

@ -26,9 +26,13 @@ namespace ia::iae
{
struct ImageResource
{
INT32 OriginalWidth{};
INT32 OriginalHeight{};
PUINT8 OriginalPixelData{};
INT32 Width{};
INT32 Height{};
SDL_GPUTexture *Texture{};
SDL_GPUTexture *Handle{};
};
public:
@ -47,22 +51,21 @@ namespace ia::iae
STATIC VOID DestroyImage(IN Handle image);
STATIC VOID DestroySound(IN Handle sound);
STATIC IVec2 GetImageExtent(IN Handle image);
STATIC VOID RescaleAllImages(IN FLOAT32 factorX, IN FLOAT32 factorY);
STATIC Handle ResizeImage(IN Handle image, IN INT32 newWidth, IN INT32 newHeight);
STATIC IVec2 GetImageOriginalExtent(IN Handle image);
STATIC VOID RescaleAllImages(IN Vec2 factor);
STATIC Handle RescaleImage(IN Handle image, IN Vec2 factor);
STATIC Handle CombineImages(IN CONST Vector<Handle> &images, IN INT32 unitWidth, IN INT32 unitHeight,
IN INT32 unitCountX, IN INT32 unitCountY);
public:
STATIC SDL_GPUTexture *GetTextureFromImage(IN Handle image)
{
return s_imageHandles[image];
return s_imageHandles[image].Handle;
}
private:
STATIC Vector<SDL_GPUTexture *> s_imageHandles;
STATIC Map<String, Handle> s_images;
STATIC Map<String, Handle> s_sounds;
STATIC Map<Handle, UINT64> s_imageExtents;
STATIC Map<Handle, UINT64> s_nonScaledImageExtents;
STATIC Vector<ImageResource> s_imageHandles;
};
} // namespace ia::iae