int texcombinergb[MAX_TEXTUREUNITS]; // works with or without combine for some operations
int texcombinealpha[MAX_TEXTUREUNITS]; // does nothing without combine
int pointervertexcount;
- float *pointer_vertex;
- float *pointer_color;
- float *pointer_texcoord[MAX_TEXTUREUNITS];
+ const float *pointer_vertex;
+ const float *pointer_color;
+ const float *pointer_texcoord[MAX_TEXTUREUNITS];
}
rmeshstate_t;
void R_Mesh_EndBatch(void);
// prepares varray_* buffers for rendering a mesh
void R_Mesh_GetSpace(int numverts);
-// renders the mesh in the varray_* buffers
+// renders a mesh (optionally with batching)
void R_Mesh_Draw(int numverts, int numtriangles, const int *elements);
+// renders a mesh without affecting batching
+void R_Mesh_Draw_NoBatching(int numverts, int numtriangles, const int *elements);
// copies a vertex3f array into varray_vertex3f
void R_Mesh_CopyVertex3f(const float *vertex3f, int numverts);
void R_Mesh_CopyTexCoord2f(int tmu, const float *texcoord2f, int numverts);
// copies a color4f array into varray_color4f
void R_Mesh_CopyColor4f(const float *color4f, int numverts);
+// copies a texcoord2f array into another array, with scrolling
+void R_ScrollTexCoord2f (float *out2f, const float *in2f, int numverts, float s, float t);
// saves a section of the rendered frame to a .tga or .jpg file
qboolean SCR_ScreenShot(char *filename, int x, int y, int width, int height, qboolean jpeg);
// invoke refresh of frame
void SCR_UpdateScreen (void);
+// public structure
+typedef struct rcachearrayrequest_s
+{
+ // for use by the code that is requesting the array, these are not
+ // directly used but merely compared to determine if cache items are
+ // identical
+ const void *id_pointer1;
+ const void *id_pointer2;
+ const void *id_pointer3;
+ int id_number1;
+ int id_number2;
+ int id_number3;
+ // size of array data
+ int data_size;
+ // array data pointer
+ void *data;
+}
+rcachearrayrequest_t;
+
+int R_Mesh_CacheArray(rcachearrayrequest_t *r);
+
#endif