vkQuake2 doxygen  1.0 dev
vid_menu.c
Go to the documentation of this file.
1 /*
2 Copyright (C) 1997-2001 Id Software, Inc.
3 Copyright (C) 2018-2019 Krzysztof Kondrak
4 
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 
14 See the GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 
20 */
21 #include "../client/client.h"
22 #include "../client/qmenu.h"
23 
24 #define REF_SOFT 0
25 #define REF_OPENGL 1
26 #define REF_VULKAN 2
27 #define REF_3DFX 3
28 #define REF_POWERVR 4
29 #define REF_VERITE 5
30 
31 extern cvar_t *vid_ref;
32 extern cvar_t *vid_fullscreen;
33 extern cvar_t *vid_gamma;
34 extern cvar_t *vid_hudscale;
35 extern cvar_t *scr_viewsize;
36 
37 static cvar_t *gl_mode;
38 static cvar_t *gl_driver;
39 static cvar_t *gl_picmip;
41 static cvar_t *gl_finish;
42 static cvar_t *vk_finish;
43 static cvar_t *vk_msaa;
44 static cvar_t *vk_aniso;
48 static cvar_t *vk_vsync;
50 static cvar_t *vk_picmip;
51 
52 static cvar_t *sw_mode;
54 
55 static cvar_t *vk_mode;
56 static cvar_t *vk_driver;
57 
58 extern void M_ForceMenuOff( void );
59 
60 /*
61 ====================================================================
62 
63 MENU INTERACTION
64 
65 ====================================================================
66 */
67 #define SOFTWARE_MENU 0
68 #define OPENGL_MENU 1
69 #define VULKAN_MENU 2
70 
76 
83 static menulist_s s_fs_box[3];
98 
99 static void DriverCallback( void *unused )
100 {
101  int curr_value = s_ref_list[s_current_menu_index].curvalue;
102  s_ref_list[0].curvalue = curr_value;
103  s_ref_list[1].curvalue = curr_value;
104  s_ref_list[2].curvalue = curr_value;
105 
106  if ( s_ref_list[s_current_menu_index].curvalue == 0 )
107  {
110  }
111  else if ( s_ref_list[s_current_menu_index].curvalue == 2 )
112  {
115  }
116  else
117  {
120  }
121 }
122 
123 static void ScreenSizeCallback( void *s )
124 {
125  menuslider_s *slider = ( menuslider_s * ) s;
126 
127  Cvar_SetValue( "viewsize", slider->curvalue * 10 );
128 }
129 
130 static void BrightnessCallback( void *s )
131 {
132  menuslider_s *slider = ( menuslider_s * ) s;
133  int i;
134 
135  for ( i = 0; i < 3; i++ )
136  {
138  }
139 
140  if ( stricmp( vid_ref->string, "soft" ) == 0 )
141  {
142  float gamma = ( 0.8 - ( slider->curvalue/10.0 - 0.5 ) ) + 0.5;
143 
144  Cvar_SetValue( "vid_gamma", gamma );
145  }
146 }
147 
148 static void ResetDefaults( void *unused )
149 {
150  VID_MenuInit();
151 }
152 
153 static void ApplyChanges( void *unused )
154 {
155  float gamma;
156  int i;
157 
158  /*
159  ** make values consistent
160  */
161  for ( i = 0; i < 3; i++ )
162  {
166  }
167 
168  /*
169  ** invert sense so greater = brighter, and scale to a range of 0.5 to 1.3
170  */
171  gamma = ( 0.8 - ( s_brightness_slider[s_current_menu_index].curvalue/10.0 - 0.5 ) ) + 0.5;
172 
173  Cvar_SetValue( "vid_gamma", gamma );
174  Cvar_SetValue( "sw_stipplealpha", s_stipple_box.curvalue );
175  Cvar_SetValue( "gl_picmip", 3 - s_tq_slider.curvalue );
176  Cvar_SetValue( "vid_fullscreen", s_fs_box[s_current_menu_index].curvalue );
177  Cvar_SetValue( "gl_ext_palettedtexture", s_paletted_texture_box.curvalue );
178  Cvar_SetValue( "gl_finish", s_finish_box.curvalue );
179  Cvar_SetValue( "vk_finish", s_vkfinish_box.curvalue );
180  Cvar_SetValue( "sw_mode", s_mode_list[SOFTWARE_MENU].curvalue == 0 ? -1 : s_mode_list[SOFTWARE_MENU].curvalue - 1 );
181  Cvar_SetValue( "gl_mode", s_mode_list[OPENGL_MENU].curvalue == 0 ? -1 : s_mode_list[OPENGL_MENU].curvalue - 1 );
182  Cvar_SetValue( "vk_mode", s_mode_list[VULKAN_MENU].curvalue == 0 ? -1 : s_mode_list[VULKAN_MENU].curvalue - 1 );
183  Cvar_SetValue( "vk_msaa", s_msaa_mode.curvalue );
184  Cvar_SetValue( "vk_aniso", s_aniso_filter.curvalue );
185  Cvar_SetValue( "vk_sampleshading", s_sampleshading.curvalue );
186  Cvar_SetValue( "vk_vsync", s_vsync.curvalue );
187  Cvar_SetValue( "vk_postprocess", s_postprocess.curvalue );
188  Cvar_SetValue( "vk_picmip", 3 - s_tqvk_slider.curvalue );
189 
190  switch ( s_texture_filter.curvalue )
191  {
192  case 0:
193  Cvar_Set( "vk_texturemode", "VK_NEAREST" );
194  break;
195  case 1:
196  Cvar_Set( "vk_texturemode", "VK_LINEAR" );
197  break;
198  case 2:
199  Cvar_Set( "vk_texturemode", "VK_MIPMAP_NEAREST" );
200  break;
201  default:
202  Cvar_Set( "vk_texturemode", "VK_MIPMAP_LINEAR" );
203  }
204 
206  {
207  case 0:
208  Cvar_Set( "vk_lmaptexturemode", "VK_NEAREST" );
209  break;
210  case 1:
211  Cvar_Set( "vk_lmaptexturemode", "VK_LINEAR" );
212  break;
213  case 2:
214  Cvar_Set( "vk_lmaptexturemode", "VK_MIPMAP_NEAREST" );
215  break;
216  default:
217  Cvar_Set( "vk_lmaptexturemode", "VK_MIPMAP_LINEAR" );
218  }
219 
220  switch ( s_ref_list[s_current_menu_index].curvalue )
221  {
222  case REF_SOFT:
223  Cvar_Set( "vid_ref", "soft" );
224  break;
225  case REF_OPENGL:
226  Cvar_Set( "vid_ref", "gl" );
227  Cvar_Set( "gl_driver", "opengl32" );
228  break;
229  case REF_VULKAN:
230  Cvar_Set( "vid_ref", "vk" );
231  Cvar_Set( "vk_driver", "vulkan" );
232  break;
233  case REF_3DFX:
234  Cvar_Set( "vid_ref", "gl" );
235  Cvar_Set( "gl_driver", "3dfxgl" );
236  break;
237  case REF_POWERVR:
238  Cvar_Set( "vid_ref", "gl" );
239  Cvar_Set( "gl_driver", "pvrgl" );
240  break;
241  case REF_VERITE:
242  Cvar_Set( "vid_ref", "gl" );
243  Cvar_Set( "gl_driver", "veritegl" );
244  break;
245  }
246 
247  /*
248  ** update appropriate stuff if we're running OpenGL and gamma
249  ** has been modified
250  */
251  if ( stricmp( vid_ref->string, "gl" ) == 0 )
252  {
253  if ( vid_gamma->modified )
254  {
255  vid_ref->modified = true;
256  if ( stricmp( gl_driver->string, "3dfxgl" ) == 0 )
257  {
258  char envbuffer[1024];
259  float g;
260 
261  vid_ref->modified = true;
262 
263  g = 2.00 * ( 0.8 - ( vid_gamma->value - 0.5 ) ) + 1.0F;
264  Com_sprintf( envbuffer, sizeof(envbuffer), "SSTV2_GAMMA=%f", g );
265  putenv( envbuffer );
266  Com_sprintf( envbuffer, sizeof(envbuffer), "SST_GAMMA=%f", g );
267  putenv( envbuffer );
268 
269  vid_gamma->modified = false;
270  }
271  }
272 
273  if ( gl_driver->modified )
274  vid_ref->modified = true;
275  }
276 
277  M_ForceMenuOff();
278 }
279 
280 static void CancelChanges( void *unused )
281 {
282  extern void M_PopMenu( void );
283 
284  M_PopMenu();
285 }
286 
287 /*
288 ** VID_MenuInit
289 */
290 void VID_MenuInit( void )
291 {
292  static const char *resolutions[] =
293  {
294  "[custom ]",
295  "[320 240 ]",
296  "[400 300 ]",
297  "[512 384 ]",
298  "[640 480 ]",
299  "[800 600 ]",
300  "[960 720 ]",
301  "[1024 768 ]",
302  "[1152 864 ]",
303  "[1280 960 ]",
304  "[1366 768 ]",
305  "[1600 1200]",
306  "[1920 1080]",
307  "[2048 1536]",
308  "[2560 1440]",
309  "[3840 2160]",
310  0
311  };
312  static const char *refs[] =
313  {
314  "[software ]",
315  "[default OpenGL]",
316  "[Vulkan ]",
317  "[3Dfx OpenGL ]",
318  "[PowerVR OpenGL]",
319 // "[Rendition OpenGL]",
320  0
321  };
322  static const char *yesno_names[] =
323  {
324  "no",
325  "yes",
326  0
327  };
328  static const char *msaa_modes[] =
329  {
330  "no",
331  "x2",
332  "x4",
333  "x8",
334  "x16",
335  0
336  };
337  static const char *filter_modes[] =
338  {
339  "nearest",
340  "linear",
341  "mipmap nearest",
342  "mipmap linear",
343  0
344  };
345  int i;
346 
347  if ( !gl_driver )
348  gl_driver = Cvar_Get( "gl_driver", "opengl32", 0 );
349  if ( !gl_picmip )
350  gl_picmip = Cvar_Get( "gl_picmip", "0", 0 );
351  if ( !gl_mode )
352  gl_mode = Cvar_Get( "gl_mode", "6", 0 );
353  if ( !sw_mode )
354  sw_mode = Cvar_Get( "sw_mode", "0", 0 );
355  if ( !gl_ext_palettedtexture )
356  gl_ext_palettedtexture = Cvar_Get( "gl_ext_palettedtexture", "1", CVAR_ARCHIVE );
357  if ( !gl_finish )
358  gl_finish = Cvar_Get( "gl_finish", "0", CVAR_ARCHIVE );
359  if ( !vk_finish )
360  vk_finish = Cvar_Get( "vk_finish", "0", CVAR_ARCHIVE );
361  if ( !vk_msaa )
362  vk_msaa = Cvar_Get( "vk_msaa", "0", CVAR_ARCHIVE );
363  if ( !vk_aniso )
364  vk_aniso = Cvar_Get( "vk_aniso", "1", CVAR_ARCHIVE );
365  if ( !vk_sampleshading )
366  vk_sampleshading = Cvar_Get( "vk_sampleshading", "1", CVAR_ARCHIVE );
367  if ( !vk_vsync )
368  vk_vsync = Cvar_Get( "vk_vsync", "0", CVAR_ARCHIVE );
369  if ( !vk_postprocess )
370  vk_postprocess = Cvar_Get( "vk_postprocess", "1", CVAR_ARCHIVE );
371  if ( !vk_texturemode )
372  vk_texturemode = Cvar_Get( "vk_texturemode", "VK_MIPMAP_LINEAR", CVAR_ARCHIVE );
373  if ( !vk_lmaptexturemode )
374  vk_lmaptexturemode = Cvar_Get( "vk_lmaptexturemode", "VK_MIPMAP_LINEAR", CVAR_ARCHIVE );
375  if ( !vk_picmip )
376  vk_picmip = Cvar_Get( "vk_picmip", "0", CVAR_ARCHIVE );
377  if ( !sw_stipplealpha )
378  sw_stipplealpha = Cvar_Get( "sw_stipplealpha", "0", CVAR_ARCHIVE );
379 
380  if( !vk_mode )
381  vk_mode = Cvar_Get( "vk_mode", "11", 0 );
382  if( !vk_driver )
383  vk_driver = Cvar_Get( "vk_driver", "vulkan", 0 );
384 
388 
389  if ( !scr_viewsize )
390  scr_viewsize = Cvar_Get ("viewsize", "100", CVAR_ARCHIVE);
391 
395 
396  if ( strcmp( vid_ref->string, "soft" ) == 0 )
397  {
400  }
401  else if ( strcmp(vid_ref->string, "vk") == 0 )
402  {
405  }
406  else if ( strcmp( vid_ref->string, "gl" ) == 0 )
407  {
409  if ( strcmp( gl_driver->string, "3dfxgl" ) == 0 )
411  else if ( strcmp( gl_driver->string, "pvrgl" ) == 0 )
413  else if ( strcmp( gl_driver->string, "opengl32" ) == 0 )
415  else
417  }
418 
419  s_software_menu.x = viddef.width * 0.50;
421  s_opengl_menu.x = viddef.width * 0.50;
422  s_opengl_menu.nitems = 0;
423  s_vulkan_menu.x = viddef.width * 0.50;
424  s_vulkan_menu.nitems = 0;
425 
426  for ( i = 0; i < 3; i++ )
427  {
429  s_ref_list[i].generic.name = "driver";
430  s_ref_list[i].generic.x = 0;
431  s_ref_list[i].generic.y = 0;
433  s_ref_list[i].itemnames = refs;
434 
436  s_mode_list[i].generic.name = "video mode";
437  s_mode_list[i].generic.x = 0;
439  s_mode_list[i].itemnames = resolutions;
440 
444  s_screensize_slider[i].generic.name = "screen size";
448 
452  s_brightness_slider[i].generic.name = "brightness";
456  s_brightness_slider[i].curvalue = ( 1.3 - vid_gamma->value + 0.5 ) * 10;
457 
459  s_fs_box[i].generic.x = 0;
461  s_fs_box[i].generic.name = "fullscreen";
462  s_fs_box[i].itemnames = yesno_names;
464 
466  s_apply_action[i].generic.name = "apply changes";
467  s_apply_action[i].generic.x = 0;
470 
472  s_defaults_action[i].generic.name = "reset to defaults";
476 
478  s_cancel_action[i].generic.name = "cancel";
479  s_cancel_action[i].generic.x = 0;
482  }
483 
485  s_stipple_box.generic.x = 0;
487  s_stipple_box.generic.name = "stipple alpha";
489  s_stipple_box.itemnames = yesno_names;
490 
492  s_tq_slider.generic.x = 0;
494  s_tq_slider.generic.name = "texture quality";
495  s_tq_slider.minvalue = 0;
496  s_tq_slider.maxvalue = 3;
498 
500  s_tqvk_slider.generic.x = 0;
502  s_tqvk_slider.generic.name = "texture quality";
506 
510  s_paletted_texture_box.generic.name = "8-bit textures";
511  s_paletted_texture_box.itemnames = yesno_names;
513 
515  s_msaa_mode.generic.name = "multisampling";
516  s_msaa_mode.generic.x = 0;
518  s_msaa_mode.itemnames = msaa_modes;
520 
522  s_finish_box.generic.x = 0;
524  s_finish_box.generic.name = "sync every frame";
526  s_finish_box.itemnames = yesno_names;
527 
531  s_vkfinish_box.generic.name = "sync every frame";
533  s_vkfinish_box.itemnames = yesno_names;
534 
536  s_sampleshading.generic.name = "sample shading";
539  s_sampleshading.itemnames = yesno_names;
541 
543  s_aniso_filter.generic.name = "anisotropic filtering";
546  s_aniso_filter.itemnames = yesno_names;
547  s_aniso_filter.curvalue = vk_aniso->value > 0 ? 1 : 0;
548 
550  s_texture_filter.generic.name = "texture filtering";
553  s_texture_filter.itemnames = filter_modes;
555  if ( !Q_stricmp( vk_texturemode->string, "VK_LINEAR" ) )
557  if ( !Q_stricmp( vk_texturemode->string, "VK_MIPMAP_NEAREST" ) )
559  if ( !Q_stricmp( vk_texturemode->string, "VK_MIPMAP_LINEAR" ) )
561 
563  s_lmap_texture_filter.generic.name = "lightmap filtering";
566  s_lmap_texture_filter.itemnames = filter_modes;
568  if ( !Q_stricmp(vk_lmaptexturemode->string, "VK_LINEAR") )
570  if ( !Q_stricmp(vk_lmaptexturemode->string, "VK_MIPMAP_NEAREST") )
572  if ( !Q_stricmp(vk_lmaptexturemode->string, "VK_MIPMAP_LINEAR") )
574 
576  s_vsync.generic.name = "vertical sync";
577  s_vsync.generic.x = 0;
579  s_vsync.itemnames = yesno_names;
580  s_vsync.curvalue = vk_vsync->value > 0 ? 1 : 0;
581 
583  s_postprocess.generic.name = "postprocessing";
584  s_postprocess.generic.x = 0;
586  s_postprocess.itemnames = yesno_names;
588 
594  Menu_AddItem( &s_software_menu, ( void * ) &s_stipple_box );
595 
601  Menu_AddItem( &s_opengl_menu, ( void * ) &s_tq_slider );
603  Menu_AddItem( &s_opengl_menu, ( void * ) &s_finish_box );
604 
610  Menu_AddItem( &s_vulkan_menu, ( void * ) &s_tqvk_slider );
611  Menu_AddItem( &s_vulkan_menu, ( void * ) &s_msaa_mode );
612  Menu_AddItem( &s_vulkan_menu, ( void * ) &s_vkfinish_box );
613  Menu_AddItem( &s_vulkan_menu, ( void * ) &s_sampleshading );
614  Menu_AddItem( &s_vulkan_menu, ( void * ) &s_aniso_filter );
617  Menu_AddItem( &s_vulkan_menu, ( void * ) &s_vsync );
618  Menu_AddItem( &s_vulkan_menu, ( void * ) &s_postprocess );
619 
629 
639 }
640 
641 /*
642 ================
643 VID_MenuDraw
644 ================
645 */
646 void VID_MenuDraw (void)
647 {
648  int w, h;
649 
650  if ( s_current_menu_index == 0 )
652  else if (s_current_menu_index == 2)
654  else
656 
657  /*
658  ** draw the banner
659  */
660  re.DrawGetPicSize( &w, &h, "m_banner_video" );
661  re.DrawPic( viddef.width / 2 - w / 2, viddef.height /2 - 110 * vid_hudscale->value, "m_banner_video" );
662 
663  /*
664  ** move cursor to a reasonable starting position
665  */
667 
668  /*
669  ** draw the menu
670  */
672 }
673 
674 /*
675 ================
676 VID_MenuKey
677 ================
678 */
679 const char *VID_MenuKey( int key )
680 {
682  static const char *sound = "misc/menu1.wav";
683 
684  switch ( key )
685  {
686  case K_ESCAPE:
687  CancelChanges( NULL );
688  return NULL;
689  case K_KP_UPARROW:
690  case K_UPARROW:
691  m->cursor--;
692  Menu_AdjustCursor( m, -1 );
693  break;
694  case K_KP_DOWNARROW:
695  case K_DOWNARROW:
696  m->cursor++;
697  Menu_AdjustCursor( m, 1 );
698  break;
699  case K_KP_LEFTARROW:
700  case K_LEFTARROW:
701  Menu_SlideItem( m, -1 );
702  break;
703  case K_KP_RIGHTARROW:
704  case K_RIGHTARROW:
705  Menu_SlideItem( m, 1 );
706  break;
707  case K_KP_ENTER:
708  case K_ENTER:
709  if ( !Menu_SelectItem( m ) )
710  ApplyChanges( NULL );
711  break;
712  }
713 
714  return sound;
715 }
716 
717 
REF_SOFT
#define REF_SOFT
Definition: vid_menu.c:24
K_KP_ENTER
#define K_KP_ENTER
Definition: keys.h:70
s_vulkan_menu
static menuframework_s s_vulkan_menu
Definition: vid_menu.c:73
s_msaa_mode
static menulist_s s_msaa_mode
Definition: vid_menu.c:86
s_screensize_slider
static menuslider_s s_screensize_slider[3]
Definition: vid_menu.c:81
vid_hudscale
cvar_t * vid_hudscale
Definition: vid_dll.c:48
REF_OPENGL
#define REF_OPENGL
Definition: vid_menu.c:25
K_KP_RIGHTARROW
#define K_KP_RIGHTARROW
Definition: keys.h:66
menucommon_s::type
int type
Definition: qmenu.h:66
gl_driver
static cvar_t * gl_driver
Definition: vid_menu.c:38
s_vsync
static menulist_s s_vsync
Definition: vid_menu.c:91
cvar_s::modified
qboolean modified
Definition: q_shared.h:330
_tag_menuframework::y
int y
Definition: qmenu.h:51
menuslider_s::generic
menucommon_s generic
Definition: qmenu.h:95
SOFTWARE_MENU
#define SOFTWARE_MENU
Definition: vid_menu.c:67
s_paletted_texture_box
static menulist_s s_paletted_texture_box
Definition: vid_menu.c:85
cvar_s::string
char * string
Definition: q_shared.h:327
vk_aniso
static cvar_t * vk_aniso
Definition: vid_menu.c:44
K_ENTER
#define K_ENTER
Definition: keys.h:26
i
int i
Definition: q_shared.c:305
scr_viewsize
cvar_t * scr_viewsize
Definition: cl_scrn.c:49
menucommon_s::x
int x
Definition: qmenu.h:68
REF_VERITE
#define REF_VERITE
Definition: vid_menu.c:29
s_mode_list
static menulist_s s_mode_list[3]
Definition: vid_menu.c:77
vid_gamma
cvar_t * vid_gamma
Definition: vid_dll.c:43
menuaction_s::generic
menucommon_s generic
Definition: qmenu.h:115
vk_texturemode
static cvar_t * vk_texturemode
Definition: vid_menu.c:46
Cvar_Get
cvar_t * Cvar_Get(char *var_name, char *var_value, int flags)
Definition: cvar.c:127
s_brightness_slider
static menuslider_s s_brightness_slider[3]
Definition: vid_menu.c:82
Menu_Center
void Menu_Center(menuframework_s *menu)
Definition: qmenu.c:336
cvar_s
Definition: q_shared.h:324
menuslider_s::minvalue
float minvalue
Definition: qmenu.h:97
viddef
viddef_t viddef
Definition: vid_dll.c:54
vid_fullscreen
cvar_t * vid_fullscreen
Definition: vid_dll.c:47
DriverCallback
static void DriverCallback(void *unused)
Definition: vid_menu.c:99
Menu_Draw
void Menu_Draw(menuframework_s *menu)
Definition: qmenu.c:346
s_vkfinish_box
static menulist_s s_vkfinish_box
Definition: vid_menu.c:94
vk_vsync
static cvar_t * vk_vsync
Definition: vid_menu.c:48
s_defaults_action
static menuaction_s s_defaults_action[3]
Definition: vid_menu.c:97
menucommon_s::y
int y
Definition: qmenu.h:68
viddef_t::width
unsigned width
Definition: vid.h:29
REF_VULKAN
#define REF_VULKAN
Definition: vid_menu.c:26
menulist_s
Definition: qmenu.h:104
s_fs_box
static menulist_s s_fs_box[3]
Definition: vid_menu.c:83
vk_lmaptexturemode
static cvar_t * vk_lmaptexturemode
Definition: vid_menu.c:47
s_lmap_texture_filter
static menulist_s s_lmap_texture_filter
Definition: vid_menu.c:90
Menu_SelectItem
qboolean Menu_SelectItem(menuframework_s *s)
Definition: qmenu.c:482
gl_mode
static cvar_t * gl_mode
Definition: vid_menu.c:37
M_PopMenu
void M_PopMenu(void)
Definition: menu.c:133
Menu_AdjustCursor
void Menu_AdjustCursor(menuframework_s *m, int dir)
Definition: qmenu.c:288
menucommon_s::callback
void(* callback)(void *self)
Definition: qmenu.h:76
vk_mode
static cvar_t * vk_mode
Definition: vid_menu.c:55
gl_picmip
static cvar_t * gl_picmip
Definition: vid_menu.c:39
s_stipple_box
static menulist_s s_stipple_box
Definition: vid_menu.c:84
K_LEFTARROW
#define K_LEFTARROW
Definition: keys.h:35
menuslider_s::maxvalue
float maxvalue
Definition: qmenu.h:98
CVAR_ARCHIVE
#define CVAR_ARCHIVE
Definition: q_shared.h:316
viddef_t::height
unsigned height
Definition: vid.h:29
_tag_menuframework::cursor
int cursor
Definition: qmenu.h:52
s_tq_slider
static menuslider_s s_tq_slider
Definition: vid_menu.c:79
cvar_s::value
float value
Definition: q_shared.h:331
VID_MenuDraw
void VID_MenuDraw(void)
Definition: vid_menu.c:646
Cvar_SetValue
void Cvar_SetValue(char *var_name, float value)
Definition: cvar.c:317
VULKAN_MENU
#define VULKAN_MENU
Definition: vid_menu.c:69
s_texture_filter
static menulist_s s_texture_filter
Definition: vid_menu.c:89
K_DOWNARROW
#define K_DOWNARROW
Definition: keys.h:34
K_KP_UPARROW
#define K_KP_UPARROW
Definition: keys.h:62
NULL
#define NULL
Definition: q_shared.h:67
refexport_t::DrawGetPicSize
void(* DrawGetPicSize)(int *w, int *h, char *name)
Definition: ref.h:166
s_ref_list
static menulist_s s_ref_list[3]
Definition: vid_menu.c:78
s_current_menu_index
static int s_current_menu_index
Definition: vid_menu.c:75
BrightnessCallback
static void BrightnessCallback(void *s)
Definition: vid_menu.c:130
MTYPE_ACTION
#define MTYPE_ACTION
Definition: qmenu.h:27
CancelChanges
static void CancelChanges(void *unused)
Definition: vid_menu.c:280
menuaction_s
Definition: qmenu.h:113
vk_finish
static cvar_t * vk_finish
Definition: vid_menu.c:42
refexport_t::DrawPic
void(* DrawPic)(int x, int y, char *name)
Definition: ref.h:167
Q_stricmp
int Q_stricmp(char *s1, char *s2)
Definition: q_shared.c:1180
ApplyChanges
static void ApplyChanges(void *unused)
Definition: vid_menu.c:153
_tag_menuframework
Definition: qmenu.h:49
K_RIGHTARROW
#define K_RIGHTARROW
Definition: keys.h:36
_tag_menuframework::nitems
int nitems
Definition: qmenu.h:54
menulist_s::curvalue
int curvalue
Definition: qmenu.h:108
REF_POWERVR
#define REF_POWERVR
Definition: vid_menu.c:28
s
static fixed16_t s
Definition: r_scan.c:30
gl_finish
static cvar_t * gl_finish
Definition: vid_menu.c:41
re
refexport_t re
Definition: vid_dll.c:32
VID_MenuInit
void VID_MenuInit(void)
Definition: vid_menu.c:290
s_finish_box
static menulist_s s_finish_box
Definition: vid_menu.c:93
vk_sampleshading
static cvar_t * vk_sampleshading
Definition: vid_menu.c:45
MTYPE_SLIDER
#define MTYPE_SLIDER
Definition: qmenu.h:25
vk_msaa
static cvar_t * vk_msaa
Definition: vid_menu.c:43
ResetDefaults
static void ResetDefaults(void *unused)
Definition: vid_menu.c:148
s_software_menu
static menuframework_s s_software_menu
Definition: vid_menu.c:71
_tag_menuframework::x
int x
Definition: qmenu.h:51
vk_postprocess
static cvar_t * vk_postprocess
Definition: vid_menu.c:49
menuslider_s::curvalue
float curvalue
Definition: qmenu.h:99
menuslider_s
Definition: qmenu.h:93
s_apply_action
static menuaction_s s_apply_action[3]
Definition: vid_menu.c:95
vk_driver
static cvar_t * vk_driver
Definition: vid_menu.c:56
s_tqvk_slider
static menuslider_s s_tqvk_slider
Definition: vid_menu.c:80
s_opengl_menu
static menuframework_s s_opengl_menu
Definition: vid_menu.c:72
menucommon_s::name
const char * name
Definition: qmenu.h:67
s_postprocess
static menulist_s s_postprocess
Definition: vid_menu.c:92
s_current_menu
static menuframework_s * s_current_menu
Definition: vid_menu.c:74
menulist_s::itemnames
const char ** itemnames
Definition: qmenu.h:110
MTYPE_SPINCONTROL
#define MTYPE_SPINCONTROL
Definition: qmenu.h:28
gl_ext_palettedtexture
static cvar_t * gl_ext_palettedtexture
Definition: vid_menu.c:40
vk_picmip
static cvar_t * vk_picmip
Definition: vid_menu.c:50
s_aniso_filter
static menulist_s s_aniso_filter
Definition: vid_menu.c:88
Menu_SlideItem
void Menu_SlideItem(menuframework_s *s, int dir)
Definition: qmenu.c:511
Cvar_Set
cvar_t * Cvar_Set(char *var_name, char *value)
Definition: cvar.c:278
vid_ref
cvar_t * vid_ref
Definition: vid_dll.c:44
K_KP_DOWNARROW
#define K_KP_DOWNARROW
Definition: keys.h:68
K_ESCAPE
#define K_ESCAPE
Definition: keys.h:27
s_sampleshading
static menulist_s s_sampleshading
Definition: vid_menu.c:87
w
GLdouble GLdouble GLdouble w
Definition: qgl_win.c:291
sw_stipplealpha
static cvar_t * sw_stipplealpha
Definition: vid_menu.c:53
OPENGL_MENU
#define OPENGL_MENU
Definition: vid_menu.c:68
REF_3DFX
#define REF_3DFX
Definition: vid_menu.c:27
K_UPARROW
#define K_UPARROW
Definition: keys.h:33
menulist_s::generic
menucommon_s generic
Definition: qmenu.h:106
Menu_AddItem
void Menu_AddItem(menuframework_s *menu, void *item)
Definition: qmenu.c:266
M_ForceMenuOff
void M_ForceMenuOff(void)
Definition: menu.c:123
ScreenSizeCallback
static void ScreenSizeCallback(void *s)
Definition: vid_menu.c:123
Com_sprintf
void Com_sprintf(char *dest, int size, char *fmt,...)
Definition: q_shared.c:1223
K_KP_LEFTARROW
#define K_KP_LEFTARROW
Definition: keys.h:64
s_cancel_action
static menuaction_s s_cancel_action[3]
Definition: vid_menu.c:96
sw_mode
static cvar_t * sw_mode
Definition: vid_menu.c:52
VID_MenuKey
const char * VID_MenuKey(int key)
Definition: vid_menu.c:679