|
@@ -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
|