ede4ff2834103b5db9edb6e7b9d924322eadcb9c
[voretournament/voretournament.git] / data / qcsrc / menu / voret / dialog_settings_video.c
1 #ifdef INTERFACE\r
2 CLASS(VoretVideoSettingsTab) EXTENDS(VoretTab)\r
3         METHOD(VoretVideoSettingsTab, fill, void(entity))\r
4         ATTRIB(VoretVideoSettingsTab, title, string, "Video")\r
5         ATTRIB(VoretVideoSettingsTab, intendedWidth, float, 0.9)\r
6         ATTRIB(VoretVideoSettingsTab, rows, float, 19)\r
7         ATTRIB(VoretVideoSettingsTab, columns, float, 6.5)\r
8         ATTRIB(VoretVideoSettingsTab, name, string, "videosettings")\r
9 ENDCLASS(VoretVideoSettingsTab)\r
10 entity makeVoretVideoSettingsTab();\r
11 #endif\r
12 \r
13 #ifdef IMPLEMENTATION\r
14 entity makeVoretVideoSettingsTab()\r
15 {\r
16         entity me;\r
17         me = spawnVoretVideoSettingsTab();\r
18         me.configureDialog(me);\r
19         return me;\r
20 }\r
21 void fillVoretVideoSettingsTab(entity me)\r
22 {\r
23         entity e;\r
24 \r
25         me.TR(me);\r
26                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Resolution:"));\r
27                 me.TD(me, 1, 2, e = makeVoretResolutionSlider());\r
28         me.TR(me);\r
29                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Font/UI size:"));\r
30                 me.TD(me, 1, 2, e = makeVoretTextSlider("menu_vid_scale"));\r
31                         e.addValue(e, "Unreadable", "-1");\r
32                         e.addValue(e, "Tiny", "-0.75");\r
33                         e.addValue(e, "Little", "-0.5");\r
34                         e.addValue(e, "Small", "-0.25");\r
35                         e.addValue(e, "Medium", "0");\r
36                         e.addValue(e, "Large", "0.25");\r
37                         e.addValue(e, "Huge", "0.5");\r
38                         e.addValue(e, "Gigantic", "0.75");\r
39                         e.addValue(e, "Colossal", "1");\r
40                         e.configureVoretTextSliderValues(e);\r
41         me.TR(me);\r
42                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Color depth:"));\r
43                 me.TD(me, 1, 2, e = makeVoretSlider(16, 32, 16, "vid_bitsperpixel"));\r
44         me.TR(me);\r
45                 me.TD(me, 1, 1.5, e = makeVoretTextLabel(0, "Texture compression"));\r
46                 me.TD(me, 1, 0.5, e = makeVoretRadioButton(2, "gl_texturecompression", "0", "None"));\r
47                 me.TD(me, 1, 0.5, e = makeVoretRadioButton(2, "gl_texturecompression", "1", "Fast"));\r
48                 me.TD(me, 1, 0.5, e = makeVoretRadioButton(2, "gl_texturecompression", "2", "Good"));\r
49         me.TR(me);\r
50                 me.TD(me, 1, 1, e = makeVoretCheckBox(0, "vid_fullscreen", "Full screen"));\r
51                 me.TD(me, 1, 2, e = makeVoretCheckBox(0, "vid_vsync", "Vertical Synchronization"));\r
52         me.TR(me);\r
53         me.TR(me);\r
54                 me.TD(me, 1, 3, e = makeVoretCheckBox(0, "vid_gl20", "Use OpenGL 2.0 shaders (GLSL)"));\r
55         me.TR(me);\r
56         me.TR(me);\r
57                 me.TD(me, 1, 3, e = makeVoretTextLabel(0, "Vertex Buffer Objects (VBOs)"));\r
58         me.TR(me);\r
59                 me.TDempty(me, 0.2);\r
60                 me.TD(me, 1, 0.9, e = makeVoretRadioButton(1, "gl_vbo", "0", "Off"));\r
61                 me.TD(me, 1, 2.1, e = makeVoretRadioButton(1, "gl_vbo", "3", "Vertices, some Tris (compatible)"));\r
62         me.TR(me);\r
63                 me.TDempty(me, 0.2);\r
64                 me.TD(me, 1, 0.9, e = makeVoretRadioButton(1, "gl_vbo", "2", "Vertices"));\r
65                 me.TD(me, 1, 2.1, e = makeVoretRadioButton(1, "gl_vbo", "1", "Vertices and Triangles"));\r
66         me.TR(me);\r
67                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Depth first:"));\r
68                 me.TD(me, 1, 2, e = makeVoretTextSlider("r_depthfirst"));\r
69                         e.addValue(e, "Disabled", "0");\r
70                         e.addValue(e, "World", "1");\r
71                         e.addValue(e, "All", "2");\r
72                         e.configureVoretTextSliderValues(e);\r
73         me.TR(me);\r
74                 if(cvar_type("apple_multithreadedgl") & CVAR_TYPEFLAG_ENGINE)\r
75                         me.TD(me, 1, 3, e = makeVoretCheckBox(1, "apple_multithreadedgl", "Disable multithreaded OpenGL"));\r
76         me.TR(me);\r
77                 me.TD(me, 1, 3, e = makeVoretCheckBox(0, "gl_finish", "Wait for GPU to finish each frame"));\r
78 \r
79         me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);\r
80                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Brightness:"));\r
81                 me.TD(me, 1, 2, e = makeVoretSlider(0.0, 0.5, 0.02, "v_brightness"));\r
82         me.TR(me);\r
83                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Contrast:"));\r
84                 me.TD(me, 1, 2, e = makeVoretSlider(1.0, 3.0, 0.05, "v_contrast"));\r
85         me.TR(me);\r
86                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Gamma:"));\r
87                 me.TD(me, 1, 2, e = makeVoretSlider(0.5, 2.0, 0.05, "v_gamma"));\r
88         me.TR(me);\r
89                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Contrast boost:"));\r
90                 me.TD(me, 1, 2, e = makeVoretSlider(1.0, 5.0, 0.1, "v_contrastboost"));\r
91         me.TR(me);\r
92                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Saturation:"));\r
93                         setDependent(e, "vid_gl20", 1, 1);\r
94                 me.TD(me, 1, 2, e = makeVoretSlider(0.5, 2.0, 0.05, "r_glsl_saturation"));\r
95                         setDependent(e, "vid_gl20", 1, 1);\r
96         me.TR(me);\r
97         me.TR(me);\r
98                 me.TD(me, 1, 3, e = makeVoretCheckBox(0, "v_glslgamma", "Use GLSL to handle color control"));\r
99                         setDependent(e, "vid_gl20", 1, 1);\r
100         me.TR(me);\r
101         me.TR(me);\r
102                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Ambient:"));\r
103                 me.TD(me, 1, 2, e = makeVoretSlider(0, 20.0, 1.0, "r_ambient"));\r
104         me.TR(me);\r
105                 me.TD(me, 1, 1, e = makeVoretTextLabel(0, "Intensity:"));\r
106                 me.TD(me, 1, 2, e = makeVoretSlider(0.5, 2.0, 0.05, "r_hdr_scenebrightness"));\r
107 \r
108         me.gotoRC(me, me.rows - 1, 0);\r
109                 me.TD(me, 1, me.columns, makeVoretCommandButton("Apply immediately", '0 0 0', "menu_cmd setresolution; vid_restart; menu_restart; togglemenu; defer 0.1 \"menu_cmd videosettings\"", COMMANDBUTTON_APPLY));\r
110 }\r
111 #endif\r