pic->lastusedframe = draw_frame;
// load high quality image (this falls back to low quality too)
- pic->skinframe = R_SkinFrame_LoadExternal(pic->name, texflags, (cachepicflags & CACHEPICFLAG_QUIET) == 0, (cachepicflags & CACHEPICFLAG_FAILONMISSING) == 0);
+ pic->skinframe = R_SkinFrame_LoadExternal(pic->name, texflags | TEXF_FORCE_RELOAD, (cachepicflags & CACHEPICFLAG_QUIET) == 0, (cachepicflags & CACHEPICFLAG_FAILONMISSING) == 0);
// get the dimensions of the image we loaded (if it was successful)
if (pic->skinframe && pic->skinframe->base)
if (pic == NULL)
return false;
if (pic->autoload && (!pic->skinframe || !pic->skinframe->base))
- pic->skinframe = R_SkinFrame_LoadExternal(pic->name, pic->texflags, false, true);
+ pic->skinframe = R_SkinFrame_LoadExternal(pic->name, pic->texflags | TEXF_FORCE_RELOAD, false, true);
// skinframe will only be NULL if the pic was created with CACHEPICFLAG_FAILONMISSING and not found
return pic->skinframe != NULL && pic->skinframe->base != NULL;
}
if (pic == NULL)
return NULL;
if (pic->autoload && (!pic->skinframe || !pic->skinframe->base))
- pic->skinframe = R_SkinFrame_LoadExternal(pic->name, pic->texflags, false, true);
+ pic->skinframe = R_SkinFrame_LoadExternal(pic->name, pic->texflags | TEXF_FORCE_RELOAD, false, true);
pic->lastusedframe = draw_frame;
return pic->skinframe ? pic->skinframe->base : NULL;
}
pic->flags |= (texflags & TEXF_FORCENEAREST) ? CACHEPICFLAG_NEAREST : 0;
pic->width = width;
pic->height = height;
- pic->skinframe = R_SkinFrame_LoadInternalBGRA(picname, texflags, pixels_bgra, width, height, vid.sRGB2D);
+ pic->skinframe = R_SkinFrame_LoadInternalBGRA(picname, texflags | TEXF_FORCE_RELOAD, pixels_bgra, width, height, vid.sRGB2D);
pic->lastusedframe = draw_frame;
return pic;
}
R_RegisterModule("GL_Draw", gl_draw_start, gl_draw_shutdown, gl_draw_newmap, NULL, NULL);
}
-static void _DrawQ_Setup(void) // see R_ResetViewRendering2D
+void DrawQ_Start(void)
{
- if (r_refdef.draw2dstage == 1)
- return;
- DrawQ_FlushUI();
r_refdef.draw2dstage = 1;
- R_ResetViewRendering2D_Common(0, NULL, NULL, vid_conwidth.integer, vid_conheight.integer);
+ R_ResetViewRendering2D_Common(0, NULL, NULL, 0, 0, vid.width, vid.height, vid_conwidth.integer, vid_conheight.integer);
}
qboolean r_draw2d_force = false;
dp_model_t *mod = CL_Mesh_UI();
msurface_t *surf;
int e0, e1, e2, e3;
- _DrawQ_Setup();
if (!pic)
pic = Draw_CachePic("white");
if (width == 0)
dp_model_t *mod = CL_Mesh_UI();
msurface_t *surf;
int e0, e1, e2, e3;
- _DrawQ_Setup();
if (!pic)
pic = Draw_CachePic("white");
if (width == 0)
tw = Draw_GetPicWidth(fnt->pic);
th = Draw_GetPicHeight(fnt->pic);
- _DrawQ_Setup();
-
if (!h) h = w;
if (!h) {
h = w = 1;
dp_model_t *mod = CL_Mesh_UI();
msurface_t *surf;
int e0, e1, e2, e3;
- _DrawQ_Setup();
if (!pic)
pic = Draw_CachePic("white");
if (width == 0)
msurface_t *surf;
int e0, e1, e2, e3;
float offsetx, offsety;
- _DrawQ_Setup();
// width is measured in real pixels
if (fabs(x2 - x1) > fabs(y2 - y1))
{
offsetx = 0;
- offsety = width * vid_conheight.value / vid.height;
+ offsety = 0.5f * width * vid_conheight.value / vid.height;
}
else
{
- offsetx = width * vid_conwidth.value / vid.width;
+ offsetx = 0.5f * width * vid_conwidth.value / vid.width;
offsety = 0;
}
surf = Mod_Mesh_AddSurface(mod, Mod_Mesh_GetTexture(mod, "white", 0, 0, MATERIALFLAG_VERTEXCOLOR), true);
void DrawQ_SetClipArea(float x, float y, float width, float height)
{
int ix, iy, iw, ih;
- _DrawQ_Setup();
DrawQ_FlushUI();
// We have to convert the con coords into real coords
ih = (int)(0.5 + height * ((float)r_refdef.view.height / vid_conheight.integer));
switch(vid.renderpath)
{
- case RENDERPATH_GL11:
- case RENDERPATH_GL13:
case RENDERPATH_GL20:
- case RENDERPATH_GLES1:
case RENDERPATH_GLES2:
- case RENDERPATH_SOFT:
GL_Scissor(ix, vid.height - iy - ih, iw, ih);
break;
- case RENDERPATH_D3D9:
- GL_Scissor(ix, iy, iw, ih);
- break;
- case RENDERPATH_D3D10:
- Con_DPrintf("FIXME D3D10 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
- break;
- case RENDERPATH_D3D11:
- Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
- break;
}
GL_ScissorTest(true);
void DrawQ_ResetClipArea(void)
{
DrawQ_FlushUI();
- _DrawQ_Setup();
GL_ScissorTest(false);
}