X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=cl_screen.h;h=c48a2cf4592c859e7b961b2f87f097fc1fa001d5;hp=212783d416fe0d00972b83eef82247b10f150b09;hb=b4ee4528ec636c069b67aa483e77dc55dbcfa7b1;hpb=489023714db8533378a7c03f8a678d39cf7494f6 diff --git a/cl_screen.h b/cl_screen.h index 212783d4..c48a2cf4 100644 --- a/cl_screen.h +++ b/cl_screen.h @@ -1,9 +1,11 @@ -// drawqueue stuff for use by client to feed 2D art to renderer -#define MAX_DRAWQUEUE 262144 +#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 { @@ -14,14 +16,34 @@ typedef struct drawqueue_s } drawqueue_t; +// a triangle mesh... embedded in the drawqueue +// each vertex is 4 floats (3 are used) +// each texcoord is 4 floats (3 are used) +// each color is 4 floats (4 are used) +typedef struct drawqueuemesh_s +{ + rtexture_t *texture; + int numtriangles; + int numvertices; + int *indices; + float *vertices; + float *texcoords; + float *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); -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 text string +void DrawQ_String(float x, float y, const 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, qbyte *translation); +// draw a triangle mesh +void DrawQ_Mesh (drawqueuemesh_t *mesh, int flags); void SHOWLMP_decodehide(void); void SHOWLMP_decodeshow(void); @@ -33,3 +55,6 @@ extern cvar_t scr_2dresolution; void CL_Screen_NewMap(void); void CL_Screen_Init(void); void CL_UpdateScreen(void); + +#endif +