diff options
| author | 0scar <qgt268@alumni.ku.dk> | 2024-03-11 19:11:43 +0000 |
|---|---|---|
| committer | 0scar <qgt268@alumni.ku.dk> | 2024-03-13 20:23:04 +0000 |
| commit | c963d88a6be5dcd80d7431ce884a68dc8d4953ce (patch) | |
| tree | 2c7ef0da84b6cb519d74677642b10722c10cd5b5 /src/rendering/include | |
| parent | 663627742685c1f52ec1ad92c73d3c650c3e1536 (diff) | |
Add batch rendering
Diffstat (limited to 'src/rendering/include')
| -rw-r--r-- | src/rendering/include/engine/rendering/rendering.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/rendering/include/engine/rendering/rendering.h b/src/rendering/include/engine/rendering/rendering.h index d6311de..4babe6d 100644 --- a/src/rendering/include/engine/rendering/rendering.h +++ b/src/rendering/include/engine/rendering/rendering.h @@ -82,6 +82,28 @@ typedef struct { ShaderBuffer* buffer; } RenderObject; +typedef struct { + isize count; + // TODO: Add index buffer? + f32 *vertices; +} RenderModel; + +typedef struct { + // Size and count of models + isize msize; + isize mcount; + // Size and count of vertices + isize vsize; + isize vcount; + // Should we keep track of each added model? + // sort of like an array of pointers? + // then have a function to update each model? + RenderModel *models; + u32 vertexbuffer; + f32 *vertices; + // TODO: Add index buffer? +} RenderBatch; + typedef enum { Camera_Perspective, Camera_Orthogonal, @@ -134,6 +156,7 @@ typedef enum { RenderDrawCallType_Text, RenderDrawCallType_Sprite, RenderDrawCallType_Model, + RenderDrawCallType_Batch, } RenderDrawCallType; typedef struct { @@ -151,6 +174,10 @@ typedef struct { vec3 pos; f32 scale; } model; + struct { + RenderObject* model; + isize id; + } batch; } data; } RenderDrawCall; |
