Cleanup 2/2

This commit is contained in:
Isuru Samarathunga
2025-11-05 16:23:50 +05:30
parent 7d6e8ef695
commit 80dc50d279
14 changed files with 275 additions and 74 deletions

View File

@ -24,7 +24,7 @@ namespace ia::iae
struct GeometryVertex
{
Vec2 Position;
Vec2 TexCoords;
Vec4 TexCoords_Color;
};
class RDC_Device

View File

@ -32,11 +32,12 @@ namespace ia::iae
};
public:
RDC_Pipeline(IN SDL_GPUTextureFormat renderTargetFormat, IN CONST StageDesc &vertexStageDesc, IN CONST StageDesc &pixelStageDesc,
RDC_Pipeline(IN SDL_GPUTextureFormat renderTargetFormat, IN CONST StageDesc &vertexStageDesc,
IN CONST StageDesc &pixelStageDesc, IN SDL_GPUPrimitiveType primitiveType,
IN BOOL enableVertexBuffer);
~RDC_Pipeline();
VOID Bind(IN SDL_GPURenderPass* renderPass);
VOID Bind(IN SDL_GPURenderPass *renderPass);
public:
SDL_GPUGraphicsPipeline *GetHandle() CONST

View File

@ -38,6 +38,7 @@ namespace ia::iae
{
public:
STATIC CONSTEXPR INT32 MAX_SPRITE_COUNT = 100000;
STATIC CONSTEXPR INT32 MAX_PRIMITIVE_COUNT = 100000;
public:
STATIC VOID Initialize(IN IVec2 viewportExtent, IN SDL_Window *windowHandle, IN BOOL isDebugMode);
@ -57,6 +58,9 @@ namespace ia::iae
STATIC Vec2 DrawSpriteCentered(IN Handle image, IN INT32 tileIndexX, IN INT32 tileIndexY,
IN Vec2 position, IN Vec2 scale, IN FLOAT32 rotation, IN BOOL flipH = false, IN BOOL flipV = false, IN Vec2 uvOffset = {});
STATIC VOID DrawLine(IN Vec2 start, IN Vec2 end, IN Vec4 color);
STATIC VOID DrawRect(IN Vec2 start, IN Vec2 end, IN Vec4 color);
STATIC Handle CreateImage(IN PCUINT8 rgbaData, IN INT32 width, IN INT32 height, IN INT32 tileCountX = 1,
IN INT32 tileCountY = 1);
STATIC VOID DestroyImage(IN Handle image);
@ -74,20 +78,29 @@ namespace ia::iae
private:
STATIC Mat4 s_viewMatrix;
STATIC IVec2 s_viewportExtent;
STATIC Mat4 s_projectionMatrix;
STATIC Vec2 s_cameraPosition;
STATIC Handle s_quadGeometry;
STATIC IVec2 s_viewportExtent;
STATIC Mat4 s_projectionMatrix;
STATIC SDL_Window *s_windowHandle;
STATIC RDC_Texture* s_defaultTexture;
STATIC RDC_Pipeline *s_primitiveDrawPipeline;
STATIC RDC_Pipeline *s_dynamicSpritePipeline;
STATIC SDL_GPUSampler *s_linearClampSampler;
STATIC SDL_GPUSampler *s_linearRepeatSampler;
STATIC RDC_TextureAtlas *s_staticSpriteAtlas;
STATIC RDC_TextureAtlas *s_dynamicSpriteAtlas;
STATIC RDC_HostVisibleBuffer* s_primitiveInstanceBuffer;
STATIC RDC_HostVisibleBuffer* s_staticSpriteInstanceBuffer;
STATIC RDC_HostVisibleBuffer* s_dynamicSpriteInstanceBuffer;
STATIC INT32 s_spriteInstanceCount;
STATIC RDC_Texture* s_defaultTexture;
STATIC RDC_SpriteInstanceData s_spriteInstances[MAX_SPRITE_COUNT];
STATIC INT32 s_primitiveInstanceCount;
STATIC GeometryVertex s_primitiveInstances[MAX_PRIMITIVE_COUNT];
};
} // namespace ia::iae