FTEQW
Documentation of the FTE engine source tree.
screen.h
Go to the documentation of this file.
1/*
2Copyright (C) 1996-1997 Id Software, Inc.
3
4This program is free software; you can redistribute it and/or
5modify it under the terms of the GNU General Public License
6as published by the Free Software Foundation; either version 2
7of the License, or (at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13See the GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program; if not, write to the Free Software
17Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
19*/
20// screen.h
21
23
24extern float scr_con_current;
25extern float scr_con_target; // lines of console to display
26
27extern int sb_lines;
28
29extern int clearnotify; // set to 0 whenever notify text is drawn
31
32extern cvar_t scr_fov;
34extern cvar_t scr_viewsize;
35
36qboolean SCR_RSShot (void);
37
38typedef struct
39{
42} vrui_t;
43extern vrui_t vrui;
44void VRUI_SnapAngle(void);
45
46//void SCR_DrawConsole (qboolean noback);
47//void SCR_SetUpToDrawConsole (void);
48
49//void SCR_BeginLoadingPlaque (void);
50//void SCR_EndLoadingPlaque (void);
51
52
53//void SCR_Init (void);
54
55//void SCR_UpdateScreen (void);
56
57#if defined(GLQUAKE)
59#endif
60
61void SCR_ImageName (const char *mapname);
62
63//this stuff is internal to the screen systems.
64void RSpeedShow(void);
65
66void SCR_CrosshairPosition(playerview_t *pview, float *x, float *y);
67void SCR_DrawLoading (qboolean opaque);
68void SCR_TileClear (int skipbottom);
71void SCR_DrawNet (void);
72void SCR_DrawTurtle (void);
73void SCR_DrawPause (void);
75
76void CLSCR_Init(void); //basically so I can register a few friendly cvars.
77
78//TEI_SHOWLMP2 stuff
79void SCR_ShowPics_Draw(void);
80void SCR_ShowPic_Create(void);
81void SCR_ShowPic_Hide(void);
82void SCR_ShowPic_Move(void);
83void SCR_ShowPic_Update(void);
84void SCR_ShowPic_ClearAll(qboolean persistflag);
85const char *SCR_ShowPics_ClickCommand(float cx, float cy, qboolean loadtouch);
86void SCR_ShowPic_Script_f(void);
87void SCR_ShowPic_Remove_f(void);
88
89//a header is better than none...
90void Draw_TextBox (int x, int y, int width, int lines);
91void Draw_ApproxTextBox (float x, float y, float width, float height);
92enum fs_relative;
93
94
95typedef enum uploadfmt
96{
97//NOTE: these values are exposed to native plugins but not QC.
99
100 //these formats are specified as direct byte access (listed in byte order, aka big-endian 0xrrggbbaa order)
101 PTI_RGBA8, //rgba byte ordering
102 PTI_RGBX8, //rgb pad byte ordering
103 PTI_BGRA8, //alpha channel
104 PTI_BGRX8, //no alpha channel
105 PTI_RGBA8_SRGB, //rgba byte ordering
106 PTI_RGBX8_SRGB, //rgb pad byte ordering
107 PTI_BGRA8_SRGB, //alpha channel
108 PTI_BGRX8_SRGB, //no alpha channel
109 PTI_RGB8, //24bit packed format. generally not supported
110 PTI_BGR8, //24bit packed format. generally not supported
111 PTI_RGB8_SRGB, //24bit packed format. generally not supported
112 PTI_BGR8_SRGB, //24bit packed format. generally not supported
113 PTI_L8, //8bit format. luminance gets flooded to all RGB channels. might be supported using swizzles.
114 PTI_L8A8, //16bit format. L=luminance. might be supported using swizzles.
115 PTI_L8_SRGB, //8bit format. luminance gets flooded to all RGB channels. might be supported using swizzles.
116 PTI_L8A8_SRGB, //16bit format. L=luminance. note: this cannot be implemented as a swizzle as there's no way to get srgb on red without it on green.
117 //small formats.
118 PTI_P8, //used for paletted data. Loaded as R8, but separate purely due to mipmap generation. should probably make a mipgen enum.
119 PTI_R8, //used for greyscale data (that doesn't need to get expanded to rgb).
120 PTI_RG8, //might be useful for normalmaps
122 PTI_RG8_SNORM, //might be useful for normalmaps
123 //big formats
124 PTI_R16, //useful for heightmaps
125 PTI_RGBA16, //if people use 16bit pngs, people get 16 bits per channel textures. muppets.
126 //floating point formats
129 PTI_RGB32F, //so qc can just use vectors for rgb. not really recommended.
130 PTI_RGBA16F, //consider using e5bgr9 or bc6/astc
131 PTI_RGBA32F, //usually overkill
132 //packed/misaligned formats: these are specified in native endian order (high bits listed first because that's how things are represented in hex), so may need byte swapping...
133 PTI_A2BGR10, //mostly for rendertargets, might also be useful for overbight lightmaps.
134 PTI_B10G11R11F, //unshared exponents
135 PTI_RGB565, //16bit alphaless format.
136 PTI_RGBA4444, //16bit format (gl)
137 PTI_ARGB4444, //16bit format (d3d)
138 PTI_RGBA5551, //16bit alpha format (gl).
139 PTI_ARGB1555, //16bit alpha format (d3d).
140#define PTI_FIRSTCOMPRESSED PTI_E5BGR9
141 PTI_E5BGR9, //mostly for fancy lightmaps (technically compressed, with a block size of 1...)
142 //(desktop/tegra) compressed formats
143 PTI_BC1_RGB, /*4bpp*/
145 PTI_BC1_RGBA, /*4bpp*/
147 PTI_BC2_RGBA, /*8bpp*/
149 PTI_BC3_RGBA, /*8bpp*/ //maybe add a bc3 normalmapswizzle type for d3d9?
151 PTI_BC4_R, /*4bpp*/ //greyscale, kinda
153 PTI_BC5_RG, /*8bpp*/ //useful for normalmaps
154 PTI_BC5_RG_SNORM, /*8bpp*/ //useful for normalmaps
155 PTI_BC6_RGB_UFLOAT, /*8bpp*/ //unsigned (half) floats!
156 PTI_BC6_RGB_SFLOAT, /*8bpp*/ //signed (half) floats!
157 PTI_BC7_RGBA, /*8bpp*/ //multimode compression, using as many bits as bc2/bc3
159 //(mobile/intel) compressed formats
160 PTI_ETC1_RGB8, /*4bpp*/ //limited form
161 PTI_ETC2_RGB8, /*4bpp*/ //extended form
167 PTI_EAC_R11, /*4bpp*/ //might be useful for overlays, with swizzles.
168 PTI_EAC_R11_SNORM, /*4bpp*/ //no idea what this might be used for, whatever
169 PTI_EAC_RG11, /*8bpp*/ //useful for normalmaps (calculate blue)
170 PTI_EAC_RG11_SNORM, /*8bpp*/ //useful for normalmaps (calculate blue)
171 //astc... zomg.
172#define PTI_ASTC_FIRST PTI_ASTC_4X4_LDR
173 PTI_ASTC_4X4_LDR, /*8bpp*/ //ldr/srgb/hdr formats are technically all the same.
174 PTI_ASTC_5X4_LDR, /*6.40*/ //srgb formats are different because of an extra srgb lookup step
175 PTI_ASTC_5X5_LDR, /*5.12*/ //ldr formats are identical to hdr except for the extended colour modes disabled.
187// #define ASTC3D
188#ifdef ASTC3D
189 PTI_ASTC_3X3X3_LDR, /*4.74*/ //astc volume ldr textures are worth tracking only to provide hints to cache them as 8bit instead of 16bit (reducing gpu cache needed).
199#endif
214#ifdef ASTC3D
225#endif
226 PTI_ASTC_4X4_HDR, //these are not strictly necessary, and are likely to be treated identically to the ldr versions, but they may use extra features that the hardware does not support
240#ifdef ASTC3D
251#define PTI_ASTC_LAST PTI_ASTC_6X6X6_HDR
252#else
253#define PTI_ASTC_LAST PTI_ASTC_12X12_HDR
254#endif
255
256 //depth formats
261
262 //non-native formats (generally requiring weird palettes that are not supported by hardware)
263 TF_BGR24_FLIP, /*bgr byte order, no alpha channel nor pad, and bottom up*/
264 TF_MIP4_P8, /*8bit 4-mip image in default palette, that will be loaded as an R8 texture.*/
265 TF_MIP4_SOLID8, /*8bit 4-mip image in default palette, that will be expanded to an RGB texture.*/
266 TF_MIP4_8PAL24, /*8bit 4-mip image with included palette*/
267 TF_MIP4_8PAL24_T255,/*8bit 4-mip image with included palette where index 255 is alpha 0*/
268 TF_SOLID8, /*8bit quake-palette image*/
269 TF_TRANS8, /*8bit quake-palette image, index 255=transparent*/
270 TF_TRANS8_FULLBRIGHT, /*fullbright 8 - fullbright texels have alpha 255, everything else 0*/
271 TF_HEIGHT8, /*image data is greyscale, convert to a normalmap and load that, uploaded alpha contains the original heights*/
272 TF_HEIGHT8PAL, /*source data is palette values rather than actual heights, generate a fallback heightmap. actual palette is ignored...*/
273 TF_H2_T7G1, /*8bit data, odd indexes give greyscale transparence*/
274 TF_H2_TRANS8_0, /*8bit data, 0 is transparent, not 255*/
275 TF_H2_T4A4, /*8bit data, weird packing*/
276
277 PTI_LLLX8, /*RGBX data where the RGB values were all the same. we can convert to L8 to use less memory (common with shirt/pants/reflection)*/
278 PTI_LLLA8, /*RGBA data where the RGB values were all the same. we can convert to LA8 to use less memory (common with gloss)*/
279
280 /*this block requires an explicit (separate) palette*/
283
284#ifdef FTE_TARGET_WEB
285 //weird specialcase mess to take advantage of webgl so we don't need redundant bloat where we're already strugging with potential heap limits
287#endif
288
290
292 TF_RGBA32 = PTI_RGBA8, /*rgba byte order*/
293 TF_BGRA32 = PTI_BGRA8, /*bgra byte order*/
294 TF_RGBX32 = PTI_RGBX8, /*rgb byte order, with extra wasted byte after blue*/
295 TF_BGRX32 = PTI_BGRX8, /*rgb byte order, with extra wasted byte after blue*/
296 TF_RGB24 = PTI_RGB8, /*rgb byte order, no alpha channel nor pad, and regular top down*/
297 TF_BGR24 = PTI_BGR8, /*bgr byte order, no alpha channel nor pad, and regular top down*/
298
299 //these are emulated formats. this 'case' value allows drivers to easily ignore them
300#define PTI_EMULATED TF_INVALID:case TF_BGR24_FLIP:case TF_MIP4_P8:case TF_MIP4_SOLID8:case TF_MIP4_8PAL24:case TF_MIP4_8PAL24_T255:case TF_SOLID8:case TF_TRANS8:case TF_TRANS8_FULLBRIGHT:case TF_HEIGHT8:case TF_HEIGHT8PAL:case TF_H2_T7G1:case TF_H2_TRANS8_0:case TF_H2_T4A4:case TF_8PAL24:case TF_8PAL32:case PTI_LLLX8:case PTI_LLLA8
302#define PTI_FULLMIPCHAIN 0x80000000 //valid for Image_GetTexture (and thus GenMip0) to signify that there's a full round-down mipchain there, not a single one (or 4)
303
304qboolean SCR_ScreenShot (char *filename, enum fs_relative fsroot, void **buffer, int numbuffers, qintptr_t bytestride, int width, int height, enum uploadfmt fmt, qboolean writemeta);
305
307
308enum
309{
314};
315int SCR_GetLoadingStage(void);
316void SCR_SetLoadingStage(int stage);
317void SCR_SetLoadingFile(char *str);
318
319/*fonts*/
320void Font_Init(void);
321void Font_Shutdown(void);
322int Font_RegisterTrackerImage(const char *image); //returns a unicode char value that can be used to embed the char within a line of text.
323qboolean Font_TrackerValid(unsigned int imid);
324struct font_s *Font_LoadFont(const char *fontfilename, float height, float scale, int outline, unsigned int flags);
325#define FONT_MONO 1
326void Font_Free(struct font_s *f);
327void Font_BeginString(struct font_s *font, float vx, float vy, int *px, int *py);
328void Font_BeginScaledString(struct font_s *font, float vx, float vy, float szx, float szy, float *px, float *py); /*avoid using*/
329void Font_Transform(float vx, float vy, int *px, int *py);
330int Font_CharHeight(void);
331float Font_CharVHeight(struct font_s *font);
332int Font_CharPHeight(struct font_s *font);
333int Font_GetTrueHeight(struct font_s *font);
334float Font_CharScaleHeight(void);
335int Font_CharWidth(unsigned int charflags, unsigned int codepoint);
336float Font_CharScaleWidth(unsigned int charflags, unsigned int codepoint);
337int Font_CharEndCoord(struct font_s *font, int x, unsigned int charflags, unsigned int codepoint);
338int Font_DrawChar(int px, int py, unsigned int charflags, unsigned int codepoint);
339float Font_DrawScaleChar(float px, float py, unsigned int charflags, unsigned int codepoint); /*avoid using*/
340void Font_EndString(struct font_s *font);
341void Font_InvalidateColour(vec4_t newcolour);
342/*these three functions deal with formatted blocks of text (including tabs and new lines)*/
343fte_inline conchar_t *Font_Decode(conchar_t *start, unsigned int *codeflags, unsigned int *codepoint)
344{
345 if (*start & CON_LONGCHAR)
346 if (!(*start & CON_RICHFORECOLOUR))
347 {
348 *codeflags = start[1] & CON_FLAGSMASK;
349 *codepoint = ((start[0] & CON_CHARMASK)<<16) | (start[1] & CON_CHARMASK);
350 return start+2;
351 }
352
353 *codeflags = start[0] & CON_FLAGSMASK;
354 *codepoint = start[0] & CON_CHARMASK;
355 return start+1;
356}
357conchar_t *Font_DecodeReverse(conchar_t *start, conchar_t *stop, unsigned int *codeflags, unsigned int *codepoint);
358int Font_LineBreaks(conchar_t *start, conchar_t *end, int maxpixelwidth, int maxlines, conchar_t **starts, conchar_t **ends);
361void Font_LineDraw(int x, int y, conchar_t *start, conchar_t *end);
363extern struct font_s *font_menu;
364extern struct font_s *font_default;
365extern struct font_s *font_console;
366extern struct font_s *font_tiny;
367void PR_ReleaseFonts(unsigned int purgeowner); //for menu/csqc
368void PR_ReloadFonts(qboolean reload);
369/*end fonts*/
370
371//normally we're not srgb aware, which means that while the intensity may APPEAR linear, it actually isn't.
372fte_inline float M_SRGBToLinear(float x, float mag)
373{
374 x /= mag;
375 if (x <= 0.04045f)
376 x = x * (1.0f / 12.92f);
377 else
378 x = pow(( x + 0.055f) * (1.0f / 1.055f), 2.4f);
379 x *= mag;
380 return x;
381}
382fte_inline float M_LinearToSRGB(float x, float mag)
383{
384 x /= mag;
385 if (x <= 0.00031308)
386 x = 12.92 * x;
387 else
388 x = 1.055*pow(x,(float)(1.0 / 2.4) ) - 0.055;
389 x *= mag;
390 return x;
391}
392//macros that are used to explicitly state that a value is srgb, and convert to linear as needed.
393#define SRGBf(x) ((vid.flags&VID_SRGBAWARE)?M_SRGBToLinear(x,1):x)
394#define SRGBb(x) ((vid.flags&VID_SRGBAWARE)?(unsigned char)M_SRGBToLinear(x,255):x)
395#define SRGB3(x,y,z) SRGBf(x),SRGBf(y),SRGBf(z)
396#define SRGBA(x,y,z,w) SRGBf(x),SRGBf(y),SRGBf(z),w
397
398void R_NetgraphInit(void);
399void R_NetGraph (void);
400void R_FrameTimeGraph (float frametime, float scale);
qboolean
Definition: api_menu.h:34
vec_t vec3_t[3]
Definition: api_menu.h:40
vec_t vec4_t[4]
Definition: api_menu.h:41
unsigned int width
Definition: bymorphed.h:4
unsigned int height
Definition: bymorphed.h:5
dReal dReal dReal dReal dReal py
Definition: com_phys_ode.c:389
dReal dReal dReal dReal px
Definition: com_phys_ode.c:389
unsigned int conchar_t
Definition: common.h:476
fs_relative
Definition: common.h:661
intptr_t qintptr_t
Definition: common.h:38
char filename[64]
Definition: generatebuiltin.c:8
image_t * image
Definition: gl_font.c:402
GLfloat GLfloat y
Definition: glquake.h:158
GLfloat x
Definition: glquake.h:158
static png_size_t start
Definition: image.c:1419
float frametime
Definition: pmove.c:31
float scale
Definition: pr_menu.c:106
int outline
Definition: pr_menu.c:107
struct font_s * font[FONT_SIZES]
Definition: pr_menu.c:111
uploadfmt_t fmt
Definition: r_2d.c:48
vec3_t end
Definition: r_d3.c:692
cvar_t scr_fov_viewmodel
Definition: renderer.c:263
void SCR_DrawTurtle(void)
Definition: cl_screen.c:1825
enum uploadfmt uploadfmt_t
void VRUI_SnapAngle(void)
Definition: cl_main.c:359
float Font_LineScaleWidth(conchar_t *start, conchar_t *end)
Definition: gl_font.c:3075
int Font_GetTrueHeight(struct font_s *font)
Definition: gl_font.c:2871
void SCR_TileClear(int skipbottom)
Definition: cl_screen.c:3423
void Draw_TextBox(int x, int y, int width, int lines)
void R_FrameTimeGraph(float frametime, float scale)
Definition: gl_ngraph.c:222
struct font_s * font_default
Definition: gl_font.c:52
void PR_ReleaseFonts(unsigned int purgeowner)
Definition: pr_menu.c:186
int Font_RegisterTrackerImage(const char *image)
Definition: gl_font.c:407
conchar_t * Font_DecodeReverse(conchar_t *start, conchar_t *stop, unsigned int *codeflags, unsigned int *codepoint)
Definition: gl_font.c:2966
float Font_CharScaleWidth(unsigned int charflags, unsigned int codepoint)
Definition: gl_font.c:2947
void SCR_ShowPic_Create(void)
Definition: cl_screen.c:1524
void SCR_ShowPic_Script_f(void)
Definition: cl_screen.c:1636
qboolean Font_TrackerValid(unsigned int imid)
Definition: gl_font.c:437
fte_inline conchar_t * Font_Decode(conchar_t *start, unsigned int *codeflags, unsigned int *codepoint)
Definition: screen.h:343
cvar_t scr_fov
Definition: renderer.c:261
void Draw_ApproxTextBox(float x, float y, float width, float height)
Definition: m_items.c:9
int Font_CharPHeight(struct font_s *font)
Definition: gl_font.c:2867
float scr_con_target
Definition: cl_screen.c:197
void Font_Shutdown(void)
Definition: gl_font.c:573
fte_inline float M_SRGBToLinear(float x, float mag)
Definition: screen.h:372
void SCR_CheckDrawCenterString(void)
Definition: cl_screen.c:982
void SCR_ShowPic_ClearAll(qboolean persistflag)
Definition: cl_screen.c:1457
int Font_CharHeight(void)
Definition: gl_font.c:2863
struct font_s * font_menu
Definition: gl_font.c:51
void R_NetgraphInit(void)
Definition: gl_ngraph.c:359
void SCR_ImageName(const char *mapname)
Definition: cl_screen.c:2375
void Font_Transform(float vx, float vy, int *px, int *py)
Definition: gl_font.c:2821
int Font_CharEndCoord(struct font_s *font, int x, unsigned int charflags, unsigned int codepoint)
Definition: gl_font.c:2902
void Font_BeginString(struct font_s *font, float vx, float vy, int *px, int *py)
Definition: gl_font.c:2807
void SCR_DrawPause(void)
Definition: cl_screen.c:2027
@ LS_NONE
Definition: screen.h:310
@ LS_CONNECTION
Definition: screen.h:311
@ LS_SERVER
Definition: screen.h:312
@ LS_CLIENT
Definition: screen.h:313
void RSpeedShow(void)
Definition: cl_screen.c:36
qboolean SCR_RSShot(void)
Definition: cl_screen.c:3263
void SCR_CrosshairPosition(playerview_t *pview, float *x, float *y)
Definition: cl_screen.c:1709
int clearnotify
Definition: cl_screen.c:224
void SCR_ShowPic_Hide(void)
Definition: cl_screen.c:1544
void SCR_DrawTwoDimensional(qboolean nohud)
Definition: cl_screen.c:3451
void Font_EndString(struct font_s *font)
Definition: gl_font.c:2854
int sb_lines
Definition: sbar.c:139
void Font_Init(void)
Definition: gl_font.c:458
int Font_CharWidth(unsigned int charflags, unsigned int codepoint)
Definition: gl_font.c:2925
cvar_t scr_viewsize
Definition: renderer.c:272
void SCR_ShowPics_Draw(void)
Definition: cl_screen.c:1351
float Font_DrawScaleChar(float px, float py, unsigned int charflags, unsigned int codepoint)
Definition: gl_font.c:3416
struct font_s * font_tiny
Definition: gl_font.c:54
qboolean GLSCR_UpdateScreen(void)
Definition: gl_screen.c:60
void SCR_DrawNet(void)
Definition: cl_screen.c:1864
float Font_CharScaleHeight(void)
Definition: gl_font.c:2881
qboolean SCR_ScreenShot(char *filename, enum fs_relative fsroot, void **buffer, int numbuffers, qintptr_t bytestride, int width, int height, enum uploadfmt fmt, qboolean writemeta)
void Font_BeginScaledString(struct font_s *font, float vx, float vy, float szx, float szy, float *px, float *py)
Definition: gl_font.c:2828
qboolean scr_disabled_for_loading
Definition: cl_screen.c:230
void SCR_ShowPic_Remove_f(void)
Definition: cl_screen.c:1677
float Font_CharVHeight(struct font_s *font)
Definition: gl_font.c:2875
float scr_con_current
Definition: cl_screen.c:196
struct font_s * font_console
Definition: gl_font.c:53
void SCR_ShowPic_Move(void)
Definition: cl_screen.c:1564
uploadfmt
Definition: screen.h:96
@ PTI_ASTC_8X6_LDR
Definition: screen.h:179
@ PTI_A2BGR10
Definition: screen.h:133
@ PTI_ASTC_6X6X5_LDR
Definition: screen.h:197
@ PTI_ASTC_5X5X5_HDR
Definition: screen.h:247
@ PTI_ASTC_4X4_LDR
Definition: screen.h:173
@ PTI_ASTC_12X10_HDR
Definition: screen.h:238
@ PTI_RGB565
Definition: screen.h:135
@ PTI_ASTC_10X5_LDR
Definition: screen.h:180
@ PTI_BC4_R_SNORM
Definition: screen.h:152
@ TF_BGRA32
Definition: screen.h:293
@ TF_RGBX32
Definition: screen.h:294
@ PTI_ASTC_4X4X3_LDR
Definition: screen.h:191
@ PTI_ASTC_8X5_SRGB
Definition: screen.h:205
@ PTI_ASTC_8X5_LDR
Definition: screen.h:178
@ PTI_ETC2_RGB8A1_SRGB
Definition: screen.h:165
@ PTI_ASTC_12X10_SRGB
Definition: screen.h:212
@ TF_H2_TRANS8_0
Definition: screen.h:274
@ PTI_LLLA8
Definition: screen.h:278
@ PTI_BC2_RGBA
Definition: screen.h:147
@ PTI_ASTC_10X8_SRGB
Definition: screen.h:210
@ PTI_ASTC_5X5X5_LDR
Definition: screen.h:195
@ PTI_ASTC_5X5_SRGB
Definition: screen.h:202
@ PTI_BC6_RGB_SFLOAT
Definition: screen.h:156
@ TF_8PAL24
Definition: screen.h:281
@ PTI_B10G11R11F
Definition: screen.h:134
@ PTI_BC1_RGB_SRGB
Definition: screen.h:144
@ PTI_ASTC_4X4X4_SRGB
Definition: screen.h:218
@ TF_BGR24
Definition: screen.h:297
@ PTI_ASTC_6X5_HDR
Definition: screen.h:229
@ TF_MIP4_8PAL24_T255
Definition: screen.h:267
@ PTI_BGRA8
Definition: screen.h:103
@ PTI_ASTC_5X4_LDR
Definition: screen.h:174
@ PTI_ETC2_RGB8A8_SRGB
Definition: screen.h:166
@ PTI_ARGB1555
Definition: screen.h:139
@ PTI_BC7_RGBA
Definition: screen.h:157
@ PTI_RGBA16
Definition: screen.h:125
@ PTI_BC1_RGBA
Definition: screen.h:145
@ PTI_ASTC_5X5X4_LDR
Definition: screen.h:194
@ TF_H2_T7G1
Definition: screen.h:273
@ PTI_ASTC_4X4_HDR
Definition: screen.h:226
@ PTI_ASTC_12X12_LDR
Definition: screen.h:186
@ TF_8PAL32
Definition: screen.h:282
@ TF_TRANS8_FULLBRIGHT
Definition: screen.h:270
@ PTI_ASTC_8X8_SRGB
Definition: screen.h:209
@ PTI_ETC2_RGB8_SRGB
Definition: screen.h:164
@ PTI_ASTC_6X6X5_HDR
Definition: screen.h:249
@ PTI_ASTC_5X4X4_LDR
Definition: screen.h:193
@ PTI_R8_SNORM
Definition: screen.h:121
@ PTI_ASTC_12X12_SRGB
Definition: screen.h:213
@ PTI_ASTC_6X6X6_LDR
Definition: screen.h:198
@ PTI_ASTC_3X3X3_SRGB
Definition: screen.h:215
@ TF_MIP4_SOLID8
Definition: screen.h:265
@ TF_H2_T4A4
Definition: screen.h:275
@ PTI_ASTC_4X3X3_HDR
Definition: screen.h:242
@ PTI_ASTC_10X6_LDR
Definition: screen.h:181
@ PTI_RGBA5551
Definition: screen.h:138
@ PTI_L8
Definition: screen.h:113
@ PTI_ASTC_5X4_SRGB
Definition: screen.h:201
@ PTI_MAX
Definition: screen.h:289
@ PTI_RGBA16F
Definition: screen.h:130
@ PTI_ASTC_4X3X3_LDR
Definition: screen.h:190
@ PTI_RGBA32F
Definition: screen.h:131
@ PTI_BGR8
Definition: screen.h:110
@ PTI_ASTC_4X4_SRGB
Definition: screen.h:200
@ PTI_LLLX8
Definition: screen.h:277
@ PTI_ASTC_4X4X3_SRGB
Definition: screen.h:217
@ TF_MIP4_P8
Definition: screen.h:264
@ PTI_RGBA8
Definition: screen.h:101
@ PTI_BGRX8
Definition: screen.h:104
@ PTI_BGR8_SRGB
Definition: screen.h:112
@ PTI_ASTC_6X5X5_LDR
Definition: screen.h:196
@ PTI_ASTC_8X6_HDR
Definition: screen.h:232
@ PTI_RG8
Definition: screen.h:120
@ PTI_EAC_RG11_SNORM
Definition: screen.h:170
@ PTI_L8A8
Definition: screen.h:114
@ PTI_ARGB4444
Definition: screen.h:137
@ PTI_ASTC_6X6X5_SRGB
Definition: screen.h:223
@ PTI_ASTC_6X6_HDR
Definition: screen.h:230
@ PTI_EAC_R11
Definition: screen.h:167
@ PTI_R16F
Definition: screen.h:127
@ PTI_ETC2_RGB8A8
Definition: screen.h:163
@ PTI_L8A8_SRGB
Definition: screen.h:116
@ TF_BGRX32
Definition: screen.h:295
@ PTI_BGRX8_SRGB
Definition: screen.h:108
@ PTI_ASTC_6X5_LDR
Definition: screen.h:176
@ PTI_P8
Definition: screen.h:118
@ PTI_ASTC_10X6_HDR
Definition: screen.h:234
@ PTI_ASTC_10X10_SRGB
Definition: screen.h:211
@ PTI_BC1_RGBA_SRGB
Definition: screen.h:146
@ TF_INVALID
Definition: screen.h:291
@ PTI_ASTC_6X5_SRGB
Definition: screen.h:203
@ PTI_ASTC_10X5_HDR
Definition: screen.h:233
@ PTI_ASTC_6X5X5_HDR
Definition: screen.h:248
@ PTI_RGB32F
Definition: screen.h:129
@ PTI_ASTC_3X3X3_LDR
Definition: screen.h:189
@ PTI_ASTC_8X5_HDR
Definition: screen.h:231
@ PTI_ASTC_10X5_SRGB
Definition: screen.h:207
@ PTI_ETC2_RGB8
Definition: screen.h:161
@ PTI_ETC2_RGB8A1
Definition: screen.h:162
@ PTI_ASTC_5X5X4_SRGB
Definition: screen.h:220
@ PTI_ASTC_6X5X5_SRGB
Definition: screen.h:222
@ PTI_BC6_RGB_UFLOAT
Definition: screen.h:155
@ PTI_ASTC_10X10_HDR
Definition: screen.h:237
@ PTI_ASTC_10X8_HDR
Definition: screen.h:236
@ TF_RGBA32
Definition: screen.h:292
@ PTI_BC5_RG
Definition: screen.h:153
@ TF_TRANS8
Definition: screen.h:269
@ PTI_BC3_RGBA
Definition: screen.h:149
@ PTI_BC1_RGB
Definition: screen.h:143
@ PTI_RG8_SNORM
Definition: screen.h:122
@ PTI_ASTC_4X4X4_LDR
Definition: screen.h:192
@ PTI_ASTC_5X5X5_SRGB
Definition: screen.h:221
@ PTI_ASTC_4X4X4_HDR
Definition: screen.h:244
@ PTI_RGB8
Definition: screen.h:109
@ PTI_ASTC_6X6_LDR
Definition: screen.h:177
@ PTI_ASTC_10X6_SRGB
Definition: screen.h:208
@ PTI_ASTC_8X8_LDR
Definition: screen.h:182
@ PTI_ASTC_5X5_HDR
Definition: screen.h:228
@ PTI_BC4_R
Definition: screen.h:151
@ PTI_BC7_RGBA_SRGB
Definition: screen.h:158
@ PTI_BC3_RGBA_SRGB
Definition: screen.h:150
@ TF_MIP4_8PAL24
Definition: screen.h:266
@ PTI_RGBX8
Definition: screen.h:102
@ PTI_R32F
Definition: screen.h:128
@ PTI_DEPTH24
Definition: screen.h:258
@ PTI_ASTC_8X6_SRGB
Definition: screen.h:206
@ PTI_INVALID
Definition: screen.h:98
@ PTI_ASTC_5X4_HDR
Definition: screen.h:227
@ PTI_EAC_RG11
Definition: screen.h:169
@ PTI_ASTC_10X10_LDR
Definition: screen.h:184
@ PTI_E5BGR9
Definition: screen.h:141
@ PTI_ASTC_4X4X3_HDR
Definition: screen.h:243
@ PTI_DEPTH24_8
Definition: screen.h:260
@ PTI_ASTC_6X6_SRGB
Definition: screen.h:204
@ PTI_ASTC_5X4X4_HDR
Definition: screen.h:245
@ PTI_RGB8_SRGB
Definition: screen.h:111
@ PTI_ASTC_5X4X4_SRGB
Definition: screen.h:219
@ TF_RGB24
Definition: screen.h:296
@ TF_SOLID8
Definition: screen.h:268
@ PTI_BC5_RG_SNORM
Definition: screen.h:154
@ PTI_ASTC_8X8_HDR
Definition: screen.h:235
@ PTI_BC2_RGBA_SRGB
Definition: screen.h:148
@ PTI_RGBX8_SRGB
Definition: screen.h:106
@ TF_HEIGHT8
Definition: screen.h:271
@ PTI_ASTC_12X10_LDR
Definition: screen.h:185
@ PTI_WHOLEFILE
Definition: screen.h:286
@ PTI_ASTC_6X6X6_SRGB
Definition: screen.h:224
@ PTI_ASTC_12X12_HDR
Definition: screen.h:239
@ PTI_ASTC_5X5_LDR
Definition: screen.h:175
@ PTI_R16
Definition: screen.h:124
@ PTI_DEPTH32
Definition: screen.h:259
@ PTI_RGBA8_SRGB
Definition: screen.h:105
@ TF_HEIGHT8PAL
Definition: screen.h:272
@ PTI_EAC_R11_SNORM
Definition: screen.h:168
@ PTI_RGBA4444
Definition: screen.h:136
@ PTI_DEPTH16
Definition: screen.h:257
@ PTI_ASTC_4X3X3_SRGB
Definition: screen.h:216
@ PTI_L8_SRGB
Definition: screen.h:115
@ PTI_ETC1_RGB8
Definition: screen.h:160
@ PTI_ASTC_10X8_LDR
Definition: screen.h:183
@ PTI_BGRA8_SRGB
Definition: screen.h:107
@ TF_BGR24_FLIP
Definition: screen.h:263
@ PTI_R8
Definition: screen.h:119
@ PTI_ASTC_5X5X4_HDR
Definition: screen.h:246
@ PTI_ASTC_6X6X6_HDR
Definition: screen.h:250
@ PTI_ASTC_3X3X3_HDR
Definition: screen.h:241
int Font_DrawChar(int px, int py, unsigned int charflags, unsigned int codepoint)
Definition: gl_font.c:3141
fte_inline float M_LinearToSRGB(float x, float mag)
Definition: screen.h:382
vrui_t vrui
Definition: cl_main.c:358
void SCR_SetLoadingStage(int stage)
Definition: cl_screen.c:2071
void R_NetGraph(void)
Definition: gl_ngraph.c:89
void Font_InvalidateColour(vec4_t newcolour)
Definition: gl_font.c:3118
qboolean SCR_HardwareCursorIsActive(void)
Definition: cl_screen.c:1050
conchar_t * Font_CharAt(int x, conchar_t *start, conchar_t *end)
Definition: gl_font.c:3100
void SCR_ShowPic_Update(void)
Definition: cl_screen.c:1576
int SCR_GetLoadingStage(void)
Definition: cl_screen.c:2067
void PR_ReloadFonts(qboolean reload)
Definition: pr_menu.c:212
void SCR_DrawLoading(qboolean opaque)
Definition: cl_screen.c:2112
struct font_s * Font_LoadFont(const char *fontfilename, float height, float scale, int outline, unsigned int flags)
Definition: gl_font.c:2323
int Font_LineBreaks(conchar_t *start, conchar_t *end, int maxpixelwidth, int maxlines, conchar_t **starts, conchar_t **ends)
Definition: gl_font.c:2994
void Font_Free(struct font_s *f)
Definition: gl_font.c:2748
int Font_LineWidth(conchar_t *start, conchar_t *end)
Definition: gl_font.c:3062
void Font_LineDraw(int x, int y, conchar_t *start, conchar_t *end)
Definition: gl_font.c:3087
void SCR_SetLoadingFile(char *str)
Definition: cl_screen.c:2093
void CLSCR_Init(void)
Definition: cl_screen.c:272
void SCR_DrawNotifyString(void)
const char * SCR_ShowPics_ClickCommand(float cx, float cy, qboolean loadtouch)
Definition: cl_screen.c:1398
static ALC_API ALCvoid * buffer
Definition: snd_al.c:259
Definition: cvar.h:59
Definition: client.h:639
Definition: screen.h:39
vec3_t angles
Definition: screen.h:41
qboolean enabled
Definition: screen.h:40
unsigned int flags
Definition: valid.c:313