X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=draw.h;h=6ac5c39b139476c5a9fa4a7b66df012505ea4457;hb=refs%2Fheads%2FColdSpirit%2Fcvar_onchange_stable;hp=7c3b6543766a46ad26c9d40a84b11f087587312f;hpb=4c6776ca1cd027429fa2357368f9e2ab7ec3c9d7;p=xonotic%2Fdarkplaces.git diff --git a/draw.h b/draw.h index 7c3b6543..6ac5c39b 100644 --- a/draw.h +++ b/draw.h @@ -39,10 +39,14 @@ typedef struct cachepic_s rtexture_t *tex; // used for hash lookups struct cachepic_s *chain; + // flags - CACHEPICFLAG_NEWPIC for example + unsigned int flags; // has alpha? qboolean hasalpha; // name of pic char name[MAX_QPATH]; + // allow to override/free the texture + qboolean allow_free_tex; } cachepic_t; @@ -51,7 +55,10 @@ typedef enum cachepicflags_e CACHEPICFLAG_NOTPERSISTENT = 1, CACHEPICFLAG_QUIET = 2, CACHEPICFLAG_NOCOMPRESSION = 4, - CACHEPICFLAG_NOCLAMP = 8 + CACHEPICFLAG_NOCLAMP = 8, + CACHEPICFLAG_NEWPIC = 16, // disables matching texflags check, because a pic created with Draw_NewPic should not be subject to that + CACHEPICFLAG_MIPMAP = 32, + CACHEPICFLAG_NEAREST = 64 // force nearest filtering instead of linear } cachepicflags_t; @@ -89,8 +96,10 @@ DRAWFLAG_2XMODULATE, DRAWFLAG_SCREEN, DRAWFLAG_NUMFLAGS, DRAWFLAG_MASK = 0xFF, // ONLY R_BeginPolygon() -DRAWFLAG_MIPMAP = 0x100 // ONLY R_BeginPolygon() +DRAWFLAG_MIPMAP = 0x100, // ONLY R_BeginPolygon() +DRAWFLAG_NOGAMMA = 0x200 // ONLY R_DrawQSuperPic() }; +#define DRAWFLAGS_BLEND 0xFF /* this matches all blending flags */ typedef struct ft2_settings_s { @@ -179,8 +188,8 @@ void DrawQ_SetClipArea(float x, float y, float width, float height); void DrawQ_ResetClipArea(void); // draw a line void DrawQ_Line(float width, float x1, float y1, float x2, float y2, float r, float g, float b, float alpha, int flags); -// draw a lot of lines -void DrawQ_Lines (float width, int numlines, const float *vertex3f, const float *color4f, int flags); +// draw a lot of lines (call R_Mesh_PrepareVertices_Generic first) +void DrawQ_Lines(float width, int numlines, int flags, qboolean hasalpha); // draw a line loop void DrawQ_LineLoop(drawqueuemesh_t *mesh, int flags); // resets r_refdef.draw2dstage @@ -188,7 +197,9 @@ void DrawQ_Finish(void); void DrawQ_ProcessDrawFlag(int flags, qboolean alpha); // sets GL_DepthMask and GL_BlendFunc void DrawQ_RecalcView(void); // use this when changing r_refdef.view.* from e.g. csqc -void R_DrawGamma(void); +rtexture_t *Draw_GetPicTexture(cachepic_t *pic); + +extern rtexturepool_t *drawtexturepool; // used by ft2.c #endif