]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - draw.h
cmd: Fix double free/use-after-free bugs in defer. Fixed infinite loop in defer cmd...
[xonotic/darkplaces.git] / draw.h
diff --git a/draw.h b/draw.h
index bbd964ed3d9839518be6f8c67a5faaccae177a83..abc520da4e904f56b4995471b492617fa7bcd7b7 100644 (file)
--- a/draw.h
+++ b/draw.h
@@ -35,11 +35,11 @@ typedef enum cachepicflags_e
        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
-       CACHEPICFLAG_FAILONMISSING = 128 // return NULL if the pic has no texture
+       CACHEPICFLAG_LINEAR = 128, // force linear filtering even if nearest_2d is enabled
+       CACHEPICFLAG_FAILONMISSING = 256 // return NULL if the pic has no texture
 }
 cachepicflags_t;
 
-void Draw_Init (void);
 void Draw_Frame (void);
 cachepic_t *Draw_CachePic_Flags (const char *path, unsigned int cachepicflags);
 cachepic_t *Draw_CachePic (const char *path); // standard function with no options, used throughout engine
@@ -134,7 +134,15 @@ extern dp_fonts_t dp_fonts;
 #define STRING_COLOR_RGB_TAG_CHAR      'x'
 #define STRING_COLOR_RGB_TAG           "^x"
 
-// all of these functions will set r_defdef.draw2dstage if not in 2D rendering mode (and of course prepare for 2D rendering in that case)
+// prepare for 2D rendering (sets r_refdef.draw2dstage = 1 and calls R_ResetViewRendering2D)
+void DrawQ_Start(void);
+// resets r_refdef.draw2dstage to 0
+void DrawQ_Finish(void);
+// batch draw the pending geometry in the CL_Mesh_UI() model and reset the model,
+// to be called by things like DrawQ_SetClipArea which make disruptive state changes.
+void DrawQ_FlushUI(void);
+// use this when changing r_refdef.view.* from e.g. csqc
+void DrawQ_RecalcView(void);
 
 // draw an image (or a filled rectangle if pic == NULL)
 void DrawQ_Pic(float x, float y, cachepic_t *pic, float width, float height, float red, float green, float blue, float alpha, int flags);
@@ -163,12 +171,6 @@ 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);
-// resets r_refdef.draw2dstage
-void DrawQ_Finish(void);
-void DrawQ_RecalcView(void); // use this when changing r_refdef.view.* from e.g. csqc
-// batch draw the pending geometry in the CL_Mesh_UI() model and reset the model,
-// to be called by things like DrawQ_SetClipArea which make disruptive state changes.
-void DrawQ_FlushUI(void);
 
 const char *Draw_GetPicName(cachepic_t *pic);
 int Draw_GetPicWidth(cachepic_t *pic);