cvar_t vid_conwidth = {CVAR_SAVE, "vid_conwidth", "640"};
cvar_t vid_conheight = {CVAR_SAVE, "vid_conheight", "480"};
cvar_t scr_screenshot_jpeg = {CVAR_SAVE, "scr_screenshot_jpeg","0"};
+cvar_t scr_screenshot_jpeg_quality = {CVAR_SAVE, "scr_screenshot_jpeg_quality","0.9"};
cvar_t cl_avidemo = {0, "cl_avidemo", "0"};
+int jpeg_supported = false;
+
qboolean scr_initialized; // ready to draw
float scr_con_current;
qboolean scr_drawloading = false;
-static qbyte menuplyr_pixels[4096];
-
void DrawCrosshair(int num);
-void V_CalcRefdef (void);
static void SCR_ScreenShot_f (void);
static void R_Envmap_f (void);
*/
void SCR_CenterPrint (char *str)
{
- strncpy (scr_centerstring, str, sizeof(scr_centerstring)-1);
+ strlcpy (scr_centerstring, str, sizeof (scr_centerstring));
scr_centertime_off = scr_centertime.value;
scr_centertime_start = cl.time;
if (r_timereport_active)
{
speedstringcount = 0;
- AngleVectors (r_refdef.viewangles, vpn, NULL, NULL);
sprintf(r_speeds_string,
- "org:'%+8.2f %+8.2f %+8.2f' ang:'%+4.0f %+4.0f %+4.0f' dir:'%+2.3f %+2.3f %+2.3f'\n"
+ "org:'%+8.2f %+8.2f %+8.2f' dir:'%+2.3f %+2.3f %+2.3f'\n"
"world:%6i faces%6i nodes%6i leafs%6i dlitwalls\n"
"%5i models%5i bmodels%5i sprites%6i particles%4i dlights\n"
"%6i modeltris%6i meshs%6i meshtris\n",
- r_refdef.vieworg[0], r_refdef.vieworg[1], r_refdef.vieworg[2], r_refdef.viewangles[0], r_refdef.viewangles[1], r_refdef.viewangles[2], vpn[0], vpn[1], vpn[2],
+ r_vieworigin[0], r_vieworigin[1], r_vieworigin[2], r_viewforward[0], r_viewforward[1], r_viewforward[2],
c_faces, c_nodes, c_leafs, c_light_polys,
c_models, c_bmodels, c_sprites, c_particles, c_dlights,
c_alias_polys, c_meshs, c_meshelements / 3);
void CL_Screen_Init(void)
{
- qpic_t *dat;
-
Cvar_RegisterVariable (&scr_fov);
Cvar_RegisterVariable (&scr_viewsize);
Cvar_RegisterVariable (&scr_conspeed);
Cvar_RegisterVariable (&vid_conwidth);
Cvar_RegisterVariable (&vid_conheight);
Cvar_RegisterVariable (&scr_screenshot_jpeg);
+ Cvar_RegisterVariable (&scr_screenshot_jpeg_quality);
Cvar_RegisterVariable (&cl_avidemo);
Cmd_AddCommand ("sizeup",SCR_SizeUp_f);
Cmd_AddCommand ("envmap", R_Envmap_f);
scr_initialized = true;
-
- // HACK HACK HACK
- // load the image data for the player image in the config menu
- dat = (qpic_t *)FS_LoadFile ("gfx/menuplyr.lmp", false);
- if (!dat)
- Sys_Error("unable to load gfx/menuplyr.lmp");
- SwapPic (dat);
-
- if (dat->width*dat->height <= 4096)
- memcpy (menuplyr_pixels, dat->data, dat->width * dat->height);
- else
- Con_Printf("gfx/menuplyr.lmp larger than 4k buffer");
- Mem_Free(dat);
}
void DrawQ_Clear(void)
r_refdef.drawqueuesize += dq->size;
}
+void DrawQ_SetClipArea(float x, float y, float width, float height)
+{
+ drawqueue_t * dq;
+ if(r_refdef.drawqueuesize + (int)sizeof(*dq) > r_refdef.maxdrawqueuesize)
+ {
+ Con_DPrintf("DrawQueue full !\n");
+ return;
+ }
+ dq = (void*) (r_refdef.drawqueue + r_refdef.drawqueuesize);
+ dq->size = sizeof(*dq);
+ dq->command = DRAWQUEUE_SETCLIP;
+ dq->x = x;
+ dq->y = y;
+ dq->scalex = width;
+ dq->scaley = height;
+ dq->flags = 0;
+ dq->color = 0;
+
+ r_refdef.drawqueuesize += dq->size;
+}
+
+void DrawQ_ResetClipArea(void)
+{
+ drawqueue_t *dq;
+ if(r_refdef.drawqueuesize + (int)sizeof(*dq) > r_refdef.maxdrawqueuesize)
+ {
+ Con_DPrintf("DrawQueue full !\n");
+ return;
+ }
+ dq = (void*) (r_refdef.drawqueue + r_refdef.drawqueuesize);
+ dq->size = sizeof(*dq);
+ dq->command = DRAWQUEUE_RESETCLIP;
+ dq->x = 0;
+ dq->y = 0;
+ dq->scalex = 0;
+ dq->scaley = 0;
+ dq->flags = 0;
+ dq->color = 0;
+
+ r_refdef.drawqueuesize += dq->size;
+}
+
/*
====================
CalcFov
if (cl.worldmodel)
{
Mod_CheckLoaded(cl.worldmodel);
- contents = CL_PointSuperContents(r_refdef.vieworg);
+ contents = CL_PointSuperContents(r_vieworigin);
if (contents & SUPERCONTENTS_LIQUIDSMASK)
{
r_refdef.fov_x *= (sin(cl.time * 4.7) * 0.015 + 0.985);
return;
}
- strcpy(basename, Cmd_Argv(1));
+ strlcpy (basename, Cmd_Argv(1), sizeof (basename));
size = atoi(Cmd_Argv(2));
if (size != 128 && size != 256 && size != 512 && size != 1024)
{
for (j = 0;j < 6;j++)
{
sprintf(filename, "env/%s%s.tga", basename, envmapinfo[j].name);
- VectorCopy(envmapinfo[j].angles, r_refdef.viewangles);
+ Matrix4x4_CreateFromQuakeEntity(&r_refdef.viewentitymatrix, r_vieworigin[0], r_vieworigin[1], r_vieworigin[2], envmapinfo[j].angles[0], envmapinfo[j].angles[1], envmapinfo[j].angles[2], 1);
R_ClearScreen();
- R_RenderView ();
- SCR_ScreenShot(filename, vid.realx, vid.realy, size, size, false);
+ R_RenderView();
+ SCR_ScreenShot(filename, vid.realx, vid.realy + vid.realheight - (r_refdef.y + r_refdef.height), size, size, false);
}
envmap = false;
int i, k;
qbyte lmplabel[256], picname[256];
float x, y;
- strcpy(lmplabel,MSG_ReadString());
- strcpy(picname, MSG_ReadString());
+ strlcpy (lmplabel,MSG_ReadString(), sizeof (lmplabel));
+ strlcpy (picname, MSG_ReadString(), sizeof (picname));
if (gamemode == GAME_NEHAHRA) // LordHavoc: nasty old legacy junk
{
x = MSG_ReadByte();
return; // none found to replace
// change existing one
showlmp[k].isactive = true;
- strcpy(showlmp[k].label, lmplabel);
- strcpy(showlmp[k].pic, picname);
+ strlcpy (showlmp[k].label, lmplabel, sizeof (showlmp[k].label));
+ strlcpy (showlmp[k].pic, picname, sizeof (showlmp[k].pic));
showlmp[k].x = x;
showlmp[k].y = y;
}
vid.conwidth = vid_conwidth.integer;
vid.conheight = vid_conheight.integer;
+/* if (vid.realheight > 240)
+ {
+ vid.conheight = (vid.realheight - 240) * scr_2dresolution.value + 240;
+ vid.conheight = bound(240, vid.conheight, vid.realheight);
+ }
+ else
+ vid.conheight = 240;*/
+
SCR_SetUpToDrawConsole();
// determine size of refresh window
SHOWLMP_drawall();
SCR_CheckDrawCenterString();
}
- ui_draw();
+ MR_Draw();
+ UI_Callback_Draw();
CL_DrawVideo();
- M_Draw();
+ //ui_draw();
if (cls.signon == SIGNONS)
{
R_TimeReport("2d");