X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=draw.h;h=316a696dc6c6a14d41a207e1b4ba4335e7f8084a;hb=488b7ca992fae90208c97528dc077a3b6155347c;hp=bf7e338c2454ab8d26ae2a295a0f25b4023016e0;hpb=81d989f23189cdeb12a5d543eb23121cf36d06f4;p=xonotic%2Fdarkplaces.git diff --git a/draw.h b/draw.h index bf7e338c..316a696d 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,6 +197,8 @@ 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 +rtexture_t *Draw_GetPicTexture(cachepic_t *pic); + void R_DrawGamma(void); extern rtexturepool_t *drawtexturepool; // used by ft2.c