DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
 
cl_screen.h File Reference
#include "qtypes.h"
+ Include dependency graph for cl_screen.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void CL_Screen_Init (void)
 
void CL_Screen_NewMap (void)
 
void CL_Screen_Shutdown (void)
 
void CL_UpdateScreen (void)
 
qbool R_Stereo_Active (void)
 
qbool R_Stereo_ColorMasking (void)
 
void SHOWLMP_decodehide (void)
 
void SHOWLMP_decodeshow (void)
 
void SHOWLMP_drawall (void)
 

Variables

char cl_connect_status [MAX_QPATH]
 User-friendly connection status for the menu and/or loading screen, colours and
not supported.
 
struct cvar_s scr_screenshot_gammaboost
 
struct cvar_s scr_screenshot_jpeg
 
struct cvar_s scr_screenshot_jpeg_quality
 
struct cvar_s scr_screenshot_name
 
struct cvar_s scr_screenshot_png
 
struct cvar_s vid_conheight
 
struct cvar_s vid_conwidth
 
struct cvar_s vid_pixelheight
 

Function Documentation

◆ CL_Screen_Init()

void CL_Screen_Init ( void )

Definition at line 804 of file cl_screen.c.

805{
806 int i;
822#ifdef CONFIG_MENU
823 Cvar_RegisterVariable (&scr_menuforcewhiledisconnected);
824#endif
854#ifdef CONFIG_VIDEO_CAPTURE
855 Cvar_RegisterVariable (&cl_capturevideo);
856 Cvar_RegisterVariable (&cl_capturevideo_demo_stop);
857 Cvar_RegisterVariable (&cl_capturevideo_printfps);
858 Cvar_RegisterVariable (&cl_capturevideo_width);
859 Cvar_RegisterVariable (&cl_capturevideo_height);
860 Cvar_RegisterVariable (&cl_capturevideo_realtime);
861 Cvar_RegisterVariable (&cl_capturevideo_fps);
862 Cvar_RegisterVariable (&cl_capturevideo_nameformat);
863 Cvar_RegisterVariable (&cl_capturevideo_number);
864 Cvar_RegisterVariable (&cl_capturevideo_ogg);
865 Cvar_RegisterVariable (&cl_capturevideo_framestep);
866#endif
879 Cvar_RegisterVirtual(&net_graph, "shownetgraph");
885 for (i = 0;i < (int)(sizeof(r_speeds_graph_filter)/sizeof(r_speeds_graph_filter[0]));i++)
895
896 // if we want no console, turn it off here too
897 if (Sys_CheckParm ("-noconsole"))
899
900 Cmd_AddCommand(CF_CLIENT, "cprint", SCR_Centerprint_f, "print something at the screen center");
901 Cmd_AddCommand(CF_CLIENT, "sizeup",SCR_SizeUp_f, "increase view size (increases viewsize cvar)");
902 Cmd_AddCommand(CF_CLIENT, "sizedown",SCR_SizeDown_f, "decrease view size (decreases viewsize cvar)");
903 Cmd_AddCommand(CF_CLIENT, "screenshot",SCR_ScreenShot_f, "takes a screenshot of the next rendered frame");
904 Cmd_AddCommand(CF_CLIENT, "envmap", R_Envmap_f, "render a cubemap (skybox) of the current scene");
905 Cmd_AddCommand(CF_CLIENT, "infobar", SCR_InfoBar_f, "display a text in the infobar (usage: infobar expiretime string)");
906
907#ifdef CONFIG_VIDEO_CAPTURE
909#endif
910
911 scr_initialized = true;
912}
void SCR_CaptureVideo_Ogg_Init(void)
Definition cap_ogg.c:577
cvar_t r_stereo_redcyan
Definition cl_screen.c:85
static void R_Envmap_f(cmd_state_t *cmd)
Definition cl_screen.c:1291
cvar_t scr_conscroll2_y
Definition cl_screen.c:31
qbool scr_initialized
Definition cl_screen.c:102
cvar_t r_stereo_angle
Definition cl_screen.c:87
cvar_t scr_loadingscreen_barcolor
Definition cl_screen.c:50
cvar_t r_stereo_redgreen
Definition cl_screen.c:86
cvar_t scr_loadingscreen_scale
Definition cl_screen.c:44
cvar_t scr_loadingscreen_background
Definition cl_screen.c:43
cvar_t scr_screenshot_name_in_mapdir
Definition cl_screen.c:90
cvar_t scr_loadingscreen_picture
Definition cl_screen.c:47
cvar_t scr_screenshot_timestamp
Definition cl_screen.c:64
cvar_t r_stereo_separation
Definition cl_screen.c:80
cvar_t scr_conbrightness
Definition cl_screen.c:25
cvar_t r_stereo_redblue
Definition cl_screen.c:84
static void SCR_ScreenShot_f(cmd_state_t *cmd)
Definition cl_screen.c:919
cvar_t scr_conscroll2_x
Definition cl_screen.c:30
cvar_t scr_fov
Definition cl_screen.c:20
cvar_t scr_stipple
Definition cl_screen.c:88
cvar_t scr_refresh
Definition cl_screen.c:89
static void SCR_SizeDown_f(cmd_state_t *cmd)
Definition cl_screen.c:789
cvar_t scr_loadingscreen_scale_base
Definition cl_screen.c:45
cvar_t scr_centertime
Definition cl_screen.c:37
cvar_t scr_conscroll3_y
Definition cl_screen.c:33
cvar_t scr_loadingscreen_barheight
Definition cl_screen.c:51
cvar_t scr_conforcewhiledisconnected
Definition cl_screen.c:26
cvar_t scr_screenshot_alpha
Definition cl_screen.c:63
cvar_t scr_conalphafactor
Definition cl_screen.c:22
cvar_t scr_screenshot_jpeg
Definition cl_screen.c:59
cvar_t cl_demo_mousegrab
Definition cl_screen.c:92
cvar_t scr_conalpha
Definition cl_screen.c:21
cvar_t scr_showturtle
Definition cl_screen.c:39
cvar_t vid_touchscreen_outlinealpha
Definition cl_screen.c:94
cvar_t scr_viewsize
Definition cl_screen.c:19
cvar_t scr_loadingscreen_count
Definition cl_screen.c:48
cvar_t vid_conwidthauto
Definition cl_screen.c:55
cvar_t r_letterbox
Definition cl_screen.c:79
cvar_t scr_infobar_height
Definition cl_screen.c:53
cvar_t vid_pixelheight
Definition cl_screen.c:58
cvar_t scr_conheight
Definition cl_screen.c:27
cvar_t scr_conscroll_x
Definition cl_screen.c:28
cvar_t net_graph
Definition cl_screen.c:91
cvar_t scr_conscroll3_x
Definition cl_screen.c:32
cvar_t scr_conalpha2factor
Definition cl_screen.c:23
cvar_t scr_conscroll_y
Definition cl_screen.c:29
cvar_t scr_sbarscale
Definition cl_screen.c:54
cvar_t scr_showpause
Definition cl_screen.c:40
cvar_t scr_screenshot_gammaboost
Definition cl_screen.c:62
cvar_t r_stereo_vertical
Definition cl_screen.c:83
cvar_t scr_conalpha3factor
Definition cl_screen.c:24
cvar_t vid_conheight
Definition cl_screen.c:57
static void SCR_InfoBar_f(cmd_state_t *cmd)
Definition cl_screen.c:692
cvar_t scr_printspeed
Definition cl_screen.c:42
cvar_t r_stereo_sidebyside
Definition cl_screen.c:81
cvar_t vid_touchscreen_overlayalpha
Definition cl_screen.c:95
cvar_t scr_screenshot_jpeg_quality
Definition cl_screen.c:60
cvar_t scr_loadingscreen_maxfps
Definition cl_screen.c:52
cvar_t scr_loadingscreen_firstforstartup
Definition cl_screen.c:49
cvar_t vid_conwidth
Definition cl_screen.c:56
cvar_t scr_loadingscreen_scale_limit
Definition cl_screen.c:46
cvar_t timedemo_screenshotframelist
Definition cl_screen.c:93
cvar_t scr_showbrand
Definition cl_screen.c:41
static void SCR_SizeUp_f(cmd_state_t *cmd)
Definition cl_screen.c:776
cvar_t r_stereo_horizontal
Definition cl_screen.c:82
cvar_t scr_showram
Definition cl_screen.c:38
cvar_t scr_screenshot_png
Definition cl_screen.c:61
static void SCR_Centerprint_f(cmd_state_t *cmd)
Definition cl_screen.c:175
void Cmd_AddCommand(unsigned flags, const char *cmd_name, xcommand_t function, const char *description)
called by the init functions of other parts of the program to register commands and functions to call...
Definition cmd.c:1661
#define CF_CLIENT
cvar/command that only the client can change/execute
Definition cmd.h:48
void Cvar_SetQuick(cvar_t *var, const char *value)
Definition cvar.c:436
void Cvar_RegisterVariable(cvar_t *variable)
registers a cvar that already has the name, string, and optionally the archive elements set.
Definition cvar.c:599
void Cvar_RegisterVirtual(cvar_t *variable, const char *name)
Definition cvar.c:513
static int(ZEXPORT *qz_inflate)(z_stream *strm
int i
cvar_t r_speeds_graph_maxtimedelta
Definition r_stats.c:22
cvar_t r_speeds_graph_length
Definition r_stats.c:16
cvar_t r_speeds_graph_maxdefault
Definition r_stats.c:23
cvar_t r_speeds_graph
Definition r_stats.c:4
cvar_t r_speeds_graph_filter[8]
Definition r_stats.c:5
cvar_t r_speeds_graph_width
Definition r_stats.c:20
cvar_t r_speeds_graph_height
Definition r_stats.c:21
cvar_t r_speeds_graph_seconds
Definition r_stats.c:17
cvar_t r_speeds_graph_y
Definition r_stats.c:19
cvar_t r_speeds_graph_x
Definition r_stats.c:18
int Sys_CheckParm(const char *parm)
Definition sys_shared.c:327

◆ CL_Screen_NewMap()

void CL_Screen_NewMap ( void )

Definition at line 2346 of file cl_screen.c.

2347{
2348}

Referenced by CL_ClearState().

◆ CL_Screen_Shutdown()

void CL_Screen_Shutdown ( void )

Definition at line 797 of file cl_screen.c.

798{
799#ifdef CONFIG_VIDEO_CAPTURE
800 SCR_CaptureVideo_EndVideo();
801#endif
802}

Referenced by CL_Shutdown().

◆ CL_UpdateScreen()

void CL_UpdateScreen ( void )

Definition at line 2130 of file cl_screen.c.

2131{
2132 static double cl_updatescreen_quality = 1;
2133
2134 vec3_t vieworigin;
2135 static double drawscreenstart = 0.0;
2136 double drawscreendelta;
2137 r_viewport_t viewport;
2138
2139 // TODO: Move to a better place.
2141
2142 if(drawscreenstart)
2143 {
2144 drawscreendelta = Sys_DirtyTime() - drawscreenstart;
2145#ifdef CONFIG_VIDEO_CAPTURE
2146 if (cl_minfps.value > 0 && (cl_minfps_force.integer || !(cls.timedemo || (cls.capturevideo.active && !cls.capturevideo.realtime))) && drawscreendelta >= 0 && drawscreendelta < 60)
2147#else
2148 if (cl_minfps.value > 0 && (cl_minfps_force.integer || !cls.timedemo) && drawscreendelta >= 0 && drawscreendelta < 60)
2149#endif
2150 {
2151 // quality adjustment according to render time
2152 double actualframetime;
2153 double targetframetime;
2154 double adjust;
2155 double f;
2156 double h;
2157
2158 // fade lastdrawscreentime
2160
2161 // find actual and target frame times
2162 actualframetime = r_refdef.lastdrawscreentime;
2163 targetframetime = (1.0 / cl_minfps.value);
2164
2165 // we scale hysteresis by quality
2166 h = cl_updatescreen_quality * cl_minfps_qualityhysteresis.value;
2167
2168 // calculate adjustment assuming linearity
2169 f = cl_updatescreen_quality / actualframetime * cl_minfps_qualitymultiply.value;
2170 adjust = (targetframetime - actualframetime) * f;
2171
2172 // one sided hysteresis
2173 if(adjust > 0)
2174 adjust = max(0, adjust - h);
2175
2176 // adjust > 0 if:
2177 // (targetframetime - actualframetime) * f > h
2178 // ((1.0 / cl_minfps.value) - actualframetime) * (cl_updatescreen_quality / actualframetime * cl_minfps_qualitymultiply.value) > (cl_updatescreen_quality * cl_minfps_qualityhysteresis.value)
2179 // ((1.0 / cl_minfps.value) - actualframetime) * (cl_minfps_qualitymultiply.value / actualframetime) > cl_minfps_qualityhysteresis.value
2180 // (1.0 / cl_minfps.value) * (cl_minfps_qualitymultiply.value / actualframetime) - cl_minfps_qualitymultiply.value > cl_minfps_qualityhysteresis.value
2181 // (1.0 / cl_minfps.value) * (cl_minfps_qualitymultiply.value / actualframetime) > cl_minfps_qualityhysteresis.value + cl_minfps_qualitymultiply.value
2182 // (1.0 / cl_minfps.value) / actualframetime > (cl_minfps_qualityhysteresis.value + cl_minfps_qualitymultiply.value) / cl_minfps_qualitymultiply.value
2183 // (1.0 / cl_minfps.value) / actualframetime > 1.0 + cl_minfps_qualityhysteresis.value / cl_minfps_qualitymultiply.value
2184 // cl_minfps.value * actualframetime < 1.0 / (1.0 + cl_minfps_qualityhysteresis.value / cl_minfps_qualitymultiply.value)
2185 // actualframetime < 1.0 / cl_minfps.value / (1.0 + cl_minfps_qualityhysteresis.value / cl_minfps_qualitymultiply.value)
2186 // actualfps > cl_minfps.value * (1.0 + cl_minfps_qualityhysteresis.value / cl_minfps_qualitymultiply.value)
2187
2188 // adjust < 0 if:
2189 // (targetframetime - actualframetime) * f < 0
2190 // ((1.0 / cl_minfps.value) - actualframetime) * (cl_updatescreen_quality / actualframetime * cl_minfps_qualitymultiply.value) < 0
2191 // ((1.0 / cl_minfps.value) - actualframetime) < 0
2192 // -actualframetime) < -(1.0 / cl_minfps.value)
2193 // actualfps < cl_minfps.value
2194
2195 /*
2196 Con_Printf("adjust UP if fps > %f, adjust DOWN if fps < %f\n",
2197 cl_minfps.value * (1.0 + cl_minfps_qualityhysteresis.value / cl_minfps_qualitymultiply.value),
2198 cl_minfps.value);
2199 */
2200
2201 // don't adjust too much at once
2203
2204 // adjust!
2205 cl_updatescreen_quality += adjust;
2206 cl_updatescreen_quality = bound(max(0.01, cl_minfps_qualitymin.value), cl_updatescreen_quality, cl_minfps_qualitymax.value);
2207 }
2208 else
2209 {
2210 cl_updatescreen_quality = 1;
2212 }
2213 }
2214
2215 drawscreenstart = Sys_DirtyTime();
2216
2218
2220 return; // not initialized yet
2221
2223 {
2224 // play a bit with the palette (experimental)
2225 palette_rgb_pantscolormap[15][0] = (unsigned char) (128 + 127 * sin(cl.time / exp(1.0f) + 0.0f*M_PI/3.0f));
2226 palette_rgb_pantscolormap[15][1] = (unsigned char) (128 + 127 * sin(cl.time / exp(1.0f) + 2.0f*M_PI/3.0f));
2227 palette_rgb_pantscolormap[15][2] = (unsigned char) (128 + 127 * sin(cl.time / exp(1.0f) + 4.0f*M_PI/3.0f));
2228 palette_rgb_shirtcolormap[15][0] = (unsigned char) (128 + 127 * sin(cl.time / M_PI + 5.0f*M_PI/3.0f));
2229 palette_rgb_shirtcolormap[15][1] = (unsigned char) (128 + 127 * sin(cl.time / M_PI + 3.0f*M_PI/3.0f));
2230 palette_rgb_shirtcolormap[15][2] = (unsigned char) (128 + 127 * sin(cl.time / M_PI + 1.0f*M_PI/3.0f));
2233 }
2234
2235#ifdef CONFIG_VIDEO_CAPTURE
2236 if (vid_hidden && !cls.capturevideo.active
2237 && !cl_capturevideo.integer) // so we can start capturing while hidden
2238#else
2239 if (vid_hidden)
2240#endif
2241 {
2242 VID_Finish();
2243 return;
2244 }
2245
2246 if (scr_loading)
2247 {
2250 else if (scr_loadingscreen_maxfps.value > 0)
2251 {
2252 static double lastupdate;
2253 if (host.realtime - lastupdate < min(1.0f / scr_loadingscreen_maxfps.value, 0.1))
2254 return;
2255 lastupdate = host.realtime;
2256 }
2257 }
2258
2260
2263
2265 R_HDR_UpdateIrisAdaptation(vieworigin);
2266
2267 r_refdef.view.colormask[0] = 1;
2268 r_refdef.view.colormask[1] = 1;
2269 r_refdef.view.colormask[2] = 1;
2270
2272
2273#ifndef USE_GLES2
2275 qglDrawBuffer(GL_BACK);CHECKGLERROR
2276#endif
2277
2280 R_SetViewport(&viewport);
2281 GL_ScissorTest(false);
2282 GL_ColorMask(1,1,1,1);
2283 GL_DepthMask(true);
2284
2285 R_ClearScreen(false);
2286 r_refdef.view.clear = false;
2287 r_refdef.view.isoverlay = false;
2288
2289 // calculate r_refdef.view.quality
2290 r_refdef.view.quality = cl_updatescreen_quality;
2291
2293 {
2294 Con_Print("FIXME: scr_stipple not implemented\n");
2296 }
2297
2298#ifndef USE_GLES2
2299 if (R_Stereo_Active())
2300 {
2301 r_stereo_side = 0;
2302
2304 {
2305 r_refdef.view.colormask[0] = 1;
2306 r_refdef.view.colormask[1] = 0;
2307 r_refdef.view.colormask[2] = 0;
2308 }
2309
2310 if (vid.mode.stereobuffer)
2311 qglDrawBuffer(GL_BACK_RIGHT);
2312
2314
2315 r_stereo_side = 1;
2316 r_refdef.view.clear = true;
2317
2319 {
2320 r_refdef.view.colormask[0] = 0;
2323 }
2324
2325 if (vid.mode.stereobuffer)
2326 qglDrawBuffer(GL_BACK_LEFT);
2327
2329 r_stereo_side = 0;
2330 }
2331 else
2332#endif
2333 {
2334 r_stereo_side = 0;
2336 }
2337
2338#ifdef CONFIG_VIDEO_CAPTURE
2339 SCR_CaptureVideo();
2340#endif
2341
2342 qglFlush(); // ensure that the commands are submitted to the GPU before we do other things
2343 VID_Finish();
2344}
client_state_t cl
Definition cl_main.c:117
client_static_t cls
Definition cl_main.c:116
static void SCR_DrawScreen(void)
Definition cl_screen.c:1576
cvar_t cl_minfps_qualitystepmax
Definition cl_main.c:106
int r_stereo_side
Definition cl_screen.c:1553
cvar_t cl_minfps_qualitymin
Definition cl_main.c:103
int cl_punchangle_applied
Definition view.c:149
static void SCR_UpdateVars(void)
Definition cl_screen.c:2082
void R_ClearScreen(qbool fogcolor)
Definition cl_screen.c:1534
cvar_t cl_minfps
Definition cl_main.c:100
qbool R_Stereo_Active(void)
Definition cl_screen.c:2077
void SCR_EndLoadingPlaque(void)
Definition cl_screen.c:1865
cvar_t cl_minfps_qualitymax
Definition cl_main.c:102
static void SCR_SetUpToDrawConsole(void)
Definition cl_screen.c:711
qbool scr_loading
Definition cl_screen.c:104
cvar_t cl_minfps_force
Definition cl_main.c:107
cvar_t cl_minfps_fade
Definition cl_main.c:101
static loadingscreenstack_t * loadingscreenstack
Definition cl_screen.c:1566
cvar_t cl_minfps_qualityhysteresis
Definition cl_main.c:105
cvar_t cl_minfps_qualitymultiply
Definition cl_main.c:104
@ ca_connected
Definition client.h:532
#define SIGNONS
Definition client.h:525
gamemode_t gamemode
Definition com_game.c:26
#define IS_NEXUIZ_DERIVED(g)
Definition com_game.h:71
void Con_Print(const char *msg)
Prints to all appropriate console targets, and adds timestamps.
Definition console.c:1504
qbool con_initialized
Definition console.c:97
void Cvar_SetValueQuick(cvar_t *var, float value)
Definition cvar.c:473
void GL_ColorMask(int r, int g, int b, int a)
void GL_DepthMask(int state)
void R_Mesh_SetRenderTargets(int fbo)
void R_SetViewport(const r_viewport_t *v)
Definition gl_backend.c:897
void R_Viewport_InitOrtho(r_viewport_t *v, const matrix4x4_t *cameramatrix, int x, int y, int width, int height, float x1, float y1, float x2, float y2, float nearclip, float farclip, const float *nearplane)
Definition gl_backend.c:587
void GL_ScissorTest(int state)
void R_BufferData_NewFrame(void)
begin a new frame (recycle old buffers)
Definition gl_rmain.c:3678
void R_HDR_UpdateIrisAdaptation(const vec3_t point)
Definition gl_rmain.c:4144
void R_FrameData_NewFrame(void)
prepare for a new frame, recycles old buffers if a resize occurred previously
Definition gl_rmain.c:3521
r_refdef_t r_refdef
Definition gl_rmain.c:57
#define CHECKGLERROR
Definition glquake.h:1059
#define GL_BACK_LEFT
Definition glquake.h:130
#define GL_BACK
Definition glquake.h:133
#define GL_BACK_RIGHT
Definition glquake.h:131
host_static_t host
Definition host.c:41
#define max(A, B)
Definition mathlib.h:38
#define min(A, B)
Definition mathlib.h:37
#define bound(min, num, max)
Definition mathlib.h:34
#define M_PI
Definition mathlib.h:28
const matrix4x4_t identitymatrix
Definition matrixlib.c:9
void Matrix4x4_OriginFromMatrix(const matrix4x4_t *in, float *out)
Definition matrixlib.c:1792
float sin(float f)
unsigned char palette_rgb_pantscolormap[16][3]
Definition palette.c:8
unsigned char palette_rgb_pantsscoreboard[16][3]
Definition palette.c:10
unsigned char palette_rgb_shirtcolormap[16][3]
Definition palette.c:9
unsigned char palette_rgb_shirtscoreboard[16][3]
Definition palette.c:11
#define NULL
Definition qtypes.h:12
vec_t vec3_t[3]
Definition qtypes.h:71
void Sbar_ShowFPS_Update(void)
Definition sbar.c:1082
float f
double time
Definition client.h:868
qbool connect_trying
Definition client.h:609
qbool timedemo
Definition client.h:589
cactive_t state
Definition client.h:568
float value
Definition cvar.h:74
int integer
Definition cvar.h:73
double realtime
the accumulated mainloop time since application started (with filtering), without any slowmo or clamp...
Definition host.h:46
double lastdrawscreentime
Definition render.h:462
r_refdef_view_t view
Definition render.h:406
qbool clear
whether to call R_ClearScreen before rendering stuff
Definition render.h:305
float quality
render quality (0 to 1) - affects r_drawparticles_drawdistance and others
Definition render.h:321
qbool isoverlay
if true, don't clear or do any post process effects (bloom, etc)
Definition render.h:307
int colormask[4]
which color components to allow (for anaglyph glasses)
Definition render.h:299
matrix4x4_t matrix
Definition render.h:266
qbool stereobuffer
Definition vid.h:64
int width
Definition vid.h:60
int height
Definition vid.h:61
viddef_mode_t mode
currently active video mode
Definition vid.h:73
double Sys_DirtyTime(void)
Definition sys_shared.c:417
void VID_Finish(void)
Definition vid_null.c:32
viddef_t vid
global video state
Definition vid_shared.c:64
qbool vid_hidden
Definition vid_shared.c:74

◆ R_Stereo_Active()

qbool R_Stereo_Active ( void )

Definition at line 2077 of file cl_screen.c.

◆ R_Stereo_ColorMasking()

qbool R_Stereo_ColorMasking ( void )

◆ SHOWLMP_decodehide()

void SHOWLMP_decodehide ( void )

Definition at line 1368 of file cl_screen.c.

1369{
1370 int i;
1371 char *lmplabel;
1373 for (i = 0;i < cl.num_showlmps;i++)
1374 if (cl.showlmps[i].isactive && strcmp(cl.showlmps[i].label, lmplabel) == 0)
1375 {
1376 cl.showlmps[i].isactive = false;
1377 return;
1378 }
1379}
char * MSG_ReadString(sizebuf_t *sb, char *string, size_t maxstring)
Definition com_msg.c:341
sizebuf_t cl_message
Definition netconn.c:71
char cl_readstring[MAX_INPUTLINE]
Definition netconn.c:75
showlmp_t * showlmps
Definition client.h:1001
qbool isactive
Definition client.h:731
char label[32]
Definition client.h:734

◆ SHOWLMP_decodeshow()

void SHOWLMP_decodeshow ( void )

Definition at line 1381 of file cl_screen.c.

1382{
1383 int k;
1384 char lmplabel[256], picname[256];
1385 float x, y;
1386 dp_strlcpy (lmplabel,MSG_ReadString(&cl_message, cl_readstring, sizeof(cl_readstring)), sizeof (lmplabel));
1387 dp_strlcpy (picname, MSG_ReadString(&cl_message, cl_readstring, sizeof(cl_readstring)), sizeof (picname));
1388 if (gamemode == GAME_NEHAHRA) // LadyHavoc: nasty old legacy junk
1389 {
1392 }
1393 else
1394 {
1397 }
1399 {
1400 showlmp_t *oldshowlmps = cl.showlmps;
1401 cl.max_showlmps += 16;
1403 if (oldshowlmps)
1404 {
1405 if (cl.num_showlmps)
1406 memcpy(cl.showlmps, oldshowlmps, cl.num_showlmps * sizeof(showlmp_t));
1407 Mem_Free(oldshowlmps);
1408 }
1409 }
1410 for (k = 0;k < cl.max_showlmps;k++)
1411 if (cl.showlmps[k].isactive && !strcmp(cl.showlmps[k].label, lmplabel))
1412 break;
1413 if (k == cl.max_showlmps)
1414 for (k = 0;k < cl.max_showlmps;k++)
1415 if (!cl.showlmps[k].isactive)
1416 break;
1417 cl.showlmps[k].isactive = true;
1418 dp_strlcpy (cl.showlmps[k].label, lmplabel, sizeof (cl.showlmps[k].label));
1419 dp_strlcpy (cl.showlmps[k].pic, picname, sizeof (cl.showlmps[k].pic));
1420 cl.showlmps[k].x = x;
1421 cl.showlmps[k].y = y;
1422 cl.num_showlmps = max(cl.num_showlmps, k + 1);
1423}
@ GAME_NEHAHRA
Definition com_game.h:32
#define MSG_ReadShort
Definition common.h:191
#define dp_strlcpy(dst, src, dsize)
Definition common.h:303
#define MSG_ReadByte(sb)
Definition common.h:188
GLint GLenum GLint GLint y
Definition glquake.h:651
GLint GLenum GLint x
Definition glquake.h:651
int max_showlmps
Definition client.h:989
mempool_t * levelmempool
Definition client.h:571
float x
Definition client.h:732
float y
Definition client.h:733
char pic[128]
Definition client.h:735
#define Mem_Free(mem)
Definition zone.h:96
#define Mem_Alloc(pool, size)
Definition zone.h:92

◆ SHOWLMP_drawall()

void SHOWLMP_drawall ( void )

Definition at line 1425 of file cl_screen.c.

1426{
1427 int i;
1428 for (i = 0;i < cl.num_showlmps;i++)
1429 if (cl.showlmps[i].isactive)
1431}
@ CACHEPICFLAG_NOTPERSISTENT
Definition draw.h:36
void DrawQ_Pic(float x, float y, cachepic_t *pic, float width, float height, float red, float green, float blue, float alpha, int flags)
Definition gl_draw.c:797
cachepic_t * Draw_CachePic_Flags(const char *path, unsigned int cachepicflags)
Definition gl_draw.c:86

Variable Documentation

◆ cl_connect_status

char cl_connect_status[MAX_QPATH]
extern

◆ scr_screenshot_gammaboost

struct cvar_s scr_screenshot_gammaboost
extern

Definition at line 62 of file cl_screen.c.

62{CF_CLIENT | CF_ARCHIVE, "scr_screenshot_gammaboost","1", "gamma correction on saved screenshots and videos, 1.0 saves unmodified images"};
#define CF_ARCHIVE
cvar should have its set value saved to config.cfg and persist across sessions
Definition cmd.h:53

Referenced by CL_Screen_Init(), and SCR_ScreenShot().

◆ scr_screenshot_jpeg

struct cvar_s scr_screenshot_jpeg
extern

Definition at line 59 of file cl_screen.c.

59{CF_CLIENT | CF_ARCHIVE, "scr_screenshot_jpeg","1", "save jpeg instead of targa or PNG"};

Referenced by CL_Screen_Init(), r_textures_start(), and SCR_ScreenShot_f().

◆ scr_screenshot_jpeg_quality

struct cvar_s scr_screenshot_jpeg_quality
extern

Definition at line 60 of file cl_screen.c.

60{CF_CLIENT | CF_ARCHIVE, "scr_screenshot_jpeg_quality","0.9", "image quality of saved jpeg"};

Referenced by CL_Screen_Init(), and JPEG_SaveImage_preflipped().

◆ scr_screenshot_name

struct cvar_s scr_screenshot_name
extern

Definition at line 455 of file fs.c.

455{CF_CLIENT | CF_PERSISTENT, "scr_screenshot_name","dp", "prefix name for saved screenshots (changes based on -game commandline, as well as which game mode is running; the date is encoded using strftime escapes)"};
#define CF_PERSISTENT
cvar must not be reset on gametype switch (such as scr_screenshot_name, which otherwise isn't set to ...
Definition cmd.h:58

Referenced by FS_Init_Commands(), FS_Rescan(), and SCR_ScreenShot_f().

◆ scr_screenshot_png

struct cvar_s scr_screenshot_png
extern

Definition at line 61 of file cl_screen.c.

61{CF_CLIENT | CF_ARCHIVE, "scr_screenshot_png","0", "save png instead of targa"};

Referenced by CL_Screen_Init(), r_textures_start(), and SCR_ScreenShot_f().

◆ vid_conheight

◆ vid_conwidth

◆ vid_pixelheight

struct cvar_s vid_pixelheight
extern

Definition at line 58 of file cl_screen.c.

58{CF_CLIENT | CF_ARCHIVE, "vid_pixelheight", "1", "adjusts vertical field of vision to account for non-square pixels (1280x1024 on a CRT monitor for example)"};

Referenced by CL_Screen_Init(), M_Menu_Video_f(), M_Video_Key(), MR_Init(), SCR_CaptureVideo_Avi_BeginVideo(), SCR_CaptureVideo_Ogg_BeginVideo(), SCR_DrawScreen(), SCR_UpdateVars(), and V_MakeViewIsometric().