X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=draw.h;h=316a696dc6c6a14d41a207e1b4ba4335e7f8084a;hb=df69ff9acd9810e5ede63838e599bf591f6fae8d;hp=2019e86c7cbdbc3ca2c13cbba4fc16dc55cd0d0b;hpb=6a03c89272a7193c133db45d45e22a223342a861;p=xonotic%2Fdarkplaces.git diff --git a/draw.h b/draw.h index 2019e86c..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