]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_screen.h
Lots of speedups and cleanups in client code, dynamically allocated cl_entities ...
[xonotic/darkplaces.git] / cl_screen.h
index 21e3e951c00e2b3745da238769a7c1939aa8be99..da063b8d8e24694604049e34eaf421de39a4ca58 100644 (file)
@@ -1,33 +1,57 @@
 
-// drawqueue stuff for use by client to feed 2D art to renderer
-#define MAX_DRAWQUEUE 1048576
+#ifndef CL_SCREEN_H
+#define CL_SCREEN_H
 
+// drawqueue stuff for use by client to feed 2D art to renderer
 #define DRAWQUEUE_PIC 0
 #define DRAWQUEUE_STRING 1
+#define DRAWQUEUE_MESH 2
 
 typedef struct drawqueue_s
 {
        unsigned short size;
-       byte command, flags;
+       qbyte command, flags;
        unsigned int color;
        float x, y, scalex, scaley;
 }
 drawqueue_t;
 
+// a triangle mesh... embedded in the drawqueue
+typedef struct drawqueuemesh_s
+{
+       rtexture_t *texture;
+       int numindices;
+       int numvertices;
+       int *indices;
+       float *vertices;
+       float *texcoords;
+       qbyte *colors;
+}
+drawqueuemesh_t;
+
 #define DRAWFLAG_ADDITIVE 1
 
+// clear the draw queue
 void DrawQ_Clear(void);
+// draw an image
 void DrawQ_Pic(float x, float y, char *picname, float width, float height, float red, float green, float blue, float alpha, int flags);
+// draw a text string
 void DrawQ_String(float x, float y, char *string, int maxlen, float scalex, float scaley, float red, float green, float blue, float alpha, int flags);
+// draw a filled rectangle
 void DrawQ_Fill (float x, float y, float w, float h, float red, float green, float blue, float alpha, int flags);
-// only used for player config menu
-void DrawQ_PicTranslate (int x, int y, char *picname, byte *translation);
+// draw a triangle mesh
+void DrawQ_Mesh (drawqueuemesh_t *mesh, int flags);
 
 void SHOWLMP_decodehide(void);
 void SHOWLMP_decodeshow(void);
 void SHOWLMP_drawall(void);
 void SHOWLMP_clear(void);
 
+extern cvar_t scr_2dresolution;
+
 void CL_Screen_NewMap(void);
 void CL_Screen_Init(void);
 void CL_UpdateScreen(void);
+
+#endif
+