-// sets up mesh renderer for the frame
-void R_Mesh_Clear(void);
-// renders queued meshs
-void R_Mesh_Render(void);
-// queues a mesh to be rendered (invokes Render if queue is full)
-void R_Mesh_Draw(const rmeshinfo_t *m);
-// renders the queued transparent meshs
-void R_Mesh_AddTransparent(void);
-// ease-of-use frontend to R_Mesh_Draw, set up meshinfo, except for index and numtriangles and numverts, then call this
-void R_Mesh_DrawPolygon(rmeshinfo_t *m, int numverts);
-// faster hardwired version of R_Mesh_Draw specifically for decals (has close ties to decal code)
-void R_Mesh_DrawDecal(const rmeshinfo_t *m);
+
+// starts mesh rendering for the frame
+void R_Mesh_Start(void);
+
+// ends mesh rendering for the frame
+// (only valid after R_Mesh_Start)
+void R_Mesh_Finish(void);
+
+// sets up the requested transform matrix
+void R_Mesh_Matrix(const matrix4x4_t *matrix);
+
+// set up the requested state
+void R_Mesh_State(const rmeshstate_t *m);
+
+// renders a mesh
+void R_Mesh_Draw(int numverts, int numtriangles, const int *elements);
+// renders a mesh as lines
+void R_Mesh_Draw_ShowTris(int numverts, int numtriangles, const int *elements);
+
+// saves a section of the rendered frame to a .tga or .jpg file
+qboolean SCR_ScreenShot(char *filename, qbyte *buffer1, qbyte *buffer2, qbyte *buffer3, int x, int y, int width, int height, qboolean flipx, qboolean flipy, qboolean flipdiagonal, qboolean jpeg);
+// used by R_Envmap_f and internally in backend, clears the frame
+void R_ClearScreen(void);
+// 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);
+
+extern float varray_vertex3f[65536*3];
+extern float varray_svector3f[65536*3];
+extern float varray_tvector3f[65536*3];
+extern float varray_normal3f[65536*3];
+extern float varray_color4f[65536*4];
+extern float varray_texcoord2f[4][65536*2];
+extern float varray_texcoord3f[4][65536*3];
+extern int earray_element3i[65536];
+extern float varray_vertex3f2[65536*3];
+
+#endif
+