aboutsummaryrefslogtreecommitdiff
path: root/src/rlgl.c
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2016-06-12 19:40:08 +0200
committerraysan5 <raysan5@gmail.com>2016-06-12 19:40:08 +0200
commit4dae3385c3871d4629a0e391165173ed86f87dcf (patch)
tree27bd0587f2d374c1f6cf1f20e74e1b32a0bb6009 /src/rlgl.c
parent66ec0b5d829de6db72d8a7508373ab52a8c3c1f2 (diff)
downloadraylib-4dae3385c3871d4629a0e391165173ed86f87dcf.tar.gz
raylib-4dae3385c3871d4629a0e391165173ed86f87dcf.zip
Record draw call for batch processing
Just started working on this, not sure if it would be available for raylib 1.5
Diffstat (limited to 'src/rlgl.c')
-rw-r--r--src/rlgl.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/src/rlgl.c b/src/rlgl.c
index d4502595..e69ff983 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -159,9 +159,17 @@ typedef struct {
// Draw call type
// NOTE: Used to track required draw-calls, organized by texture
typedef struct {
- GLuint textureId;
int vertexCount;
- // TODO: Store draw state -> blending mode, shader
+ GLuint vaoId;
+ GLuint textureId;
+ GLuint shaderId;
+
+ Matrix projection;
+ Matrix modelview;
+
+ // TODO: Store additional draw state data
+ //int blendMode;
+ //Guint fboId;
} DrawCall;
//----------------------------------------------------------------------------------
@@ -2099,6 +2107,24 @@ void *rlglReadTexturePixels(Texture2D texture)
return pixels;
}
+/*
+// TODO: Record draw calls to be processed in batch
+// NOTE: Global state must be kept
+void rlglRecordDraw(void)
+{
+ // TODO: Before adding a new draw, check if anything changed from last stored draw
+#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
+ draws[drawsCounter].vaoId = currentState.vaoId; // lines.id, trangles.id, quads.id?
+ draws[drawsCounter].textureId = currentState.textureId; // whiteTexture?
+ draws[drawsCounter].shaderId = currentState.shaderId; // defaultShader.id
+ draws[drawsCounter].projection = projection;
+ draws[drawsCounter].modelview = modelview;
+ draws[drawsCounter].vertexCount = currentState.vertexCount;
+
+ drawsCounter++;
+#endif
+}
+*/
//----------------------------------------------------------------------------------
// Module Functions Definition - Shaders Functions