diff options
| author | raysan5 <raysan5@gmail.com> | 2016-06-12 19:40:08 +0200 |
|---|---|---|
| committer | raysan5 <raysan5@gmail.com> | 2016-06-12 19:40:08 +0200 |
| commit | 4dae3385c3871d4629a0e391165173ed86f87dcf (patch) | |
| tree | 27bd0587f2d374c1f6cf1f20e74e1b32a0bb6009 /src/rlgl.c | |
| parent | 66ec0b5d829de6db72d8a7508373ab52a8c3c1f2 (diff) | |
| download | raylib-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.c | 30 |
1 files changed, 28 insertions, 2 deletions
@@ -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 |
