Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
dialog_settings_video.qc File Reference
#include "dialog_settings_video.qh"
#include "commandbutton.qh"
#include "textlabel.qh"
#include "mixedslider.qh"
#include "checkbox.qh"
#include "slider.qh"
#include "slider_resolution.qh"
#include "radiobutton.qh"
Include dependency graph for dialog_settings_video.qc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

entity makeXonoticVideoSettingsTab ()
void XonoticVideoSettingsTab_fill (entity me)

Function Documentation

◆ makeXonoticVideoSettingsTab()

entity makeXonoticVideoSettingsTab ( )

Definition at line 11 of file dialog_settings_video.qc.

12{
13 entity me;
15 me.configureDialog(me);
16 return me;
17}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
#define NEW(cname,...)
Definition oo.qh:117

References entity(), and NEW.

Referenced by XonoticSettingsDialog_fill().

◆ XonoticVideoSettingsTab_fill()

void XonoticVideoSettingsTab_fill ( entity me)

Definition at line 18 of file dialog_settings_video.qc.

19{
20 entity e;
21 entity videoApplyButton = makeXonoticCommandButton(_("Apply immediately"), '0 0 0',
22 "vid_width $_menu_vid_width; "
23 "vid_height $_menu_vid_height; "
24 "vid_pixelheight $_menu_vid_pixelheight; "
25 "vid_desktopfullscreen $_menu_vid_desktopfullscreen; "
26 "menu_cmd update_conwidths_before_vid_restart; "
27 "vid_restart; "
28 "menu_cmd sync"
30 videoApplyButton.disableOnClick = true;
31
32 me.TR(me);
33 me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "vid_fullscreen", _("Full screen")));
34 e.applyButton = videoApplyButton;
35 me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "vid_borderless", _("Borderless window")));
36 setDependent(e, "vid_fullscreen", 0, 0);
37 me.TR(me);
38 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Resolution:")));
39 me.TD(me, 1, 2, e = makeXonoticResolutionSlider());
40 e.applyButton = videoApplyButton;
41 me.TR(me);
42 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Font/UI size:")));
43 me.TD(me, 1, 2, e = makeXonoticMixedSlider("menu_vid_scale"));
44 e.addText(e, ZCTX(_("SZ^Unreadable")), -1);
45 e.addText(e, ZCTX(_("SZ^Tiny")), -0.75);
46 e.addText(e, ZCTX(_("SZ^Little")), -0.5);
47 e.addText(e, ZCTX(_("SZ^Small")), -0.25);
48 e.addText(e, ZCTX(_("SZ^Medium")), 0);
49 e.addText(e, ZCTX(_("SZ^Large")), 0.25);
50 e.addText(e, ZCTX(_("SZ^Huge")), 0.5);
51 e.addText(e, ZCTX(_("SZ^Gigantic")), 0.75);
52 e.addText(e, ZCTX(_("SZ^Colossal")), 1);
53 e.configureXonoticMixedSliderValues(e);
54 e.applyButton = videoApplyButton;
55 me.TR(me);
56 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "r_stereo_redcyan", _("Anaglyph 3D (red-cyan)")));
57 me.TR(me);
58 me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 0, "r_viewfbo", _("High-quality frame buffer")));
59 if (cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
60 setDependent(e, "vid_samples", 0, 1);
61
62 me.TR(me);
63 me.TR(me);
64 if (cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
65 {
66 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Antialiasing:")));
67 setDependent(e, "r_viewfbo", 0, 0);
68 me.TD(me, 1, 2, e = makeXonoticMixedSlider_T("vid_samples",
69 _("Enable antialiasing, which smooths the edges of 3D geometry. Note that it might decrease performance by quite a lot")));
70 e.formatString = _("%sx");
71 e.addText(e, ZCTX(_("AA^Disabled")), 1);
72 e.addRange(e, 2, 4, 2);
73 e.configureXonoticMixedSliderValues(e);
74 setDependent(e, "r_viewfbo", 0, 0);
75 e.applyButton = videoApplyButton;
76 }
77 else
78 {
79 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Resolution scaling:")));
80 me.TD(me, 1, 2, e = makeXonoticSlider_T(0.5, 2, 0.25, "r_viewscale",
81 _("Screen or window size multiplier, above 1x does antialiasing, below 1x may help slow GPUs")));
82 e.formatString = _("%sx");
83 }
84 me.TR(me);
85 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Anisotropy:")));
86 me.TD(me, 1, 2, e = makeXonoticMixedSlider_T("gl_texture_anisotropy",
87 _("Anisotropic filtering quality")));
88 e.formatString = _("%sx");
89 e.addText(e, ZCTX(_("ANISO^Disabled")), 1);
90 e.addRange(e, 2, 4, 2);
91 e.addRange(e, 8, 16, 8);
92 e.configureXonoticMixedSliderValues(e);
93
94 string df_tooltip = _("Eliminate overdraw by rendering a depth-only version of the scene before the normal rendering starts");
95 me.TR(me);
96 me.TR(me);
97 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Depth first:")));
98 me.TD(me, 1, 2/3, e = makeXonoticRadioButton_T(2, "r_depthfirst", "0", ZCTX(_("DF^Disabled")), df_tooltip));
99 me.TD(me, 1, 2/3, e = makeXonoticRadioButton_T(2, "r_depthfirst", "1", ZCTX(_("DF^World")), df_tooltip));
100 me.TD(me, 1, 2/3, e = makeXonoticRadioButton_T(2, "r_depthfirst", "2", ZCTX(_("DF^All")), df_tooltip));
101
102 me.TR(me);
103 me.TR(me);
104 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "gl_finish", _("Wait for GPU to finish each frame"),
105 _("Make the CPU wait for the GPU to finish each frame, can help with some strange input or video lag on some machines")));
106 me.TR(me);
107 if (cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
108 {
109 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "vid_gl20", _("Use OpenGL 2.0 shaders (GLSL)")));
110 e.applyButton = videoApplyButton;
111 }
112
113 me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
114 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Brightness:")));
115 me.TD(me, 1, 2, e = makeXonoticSlider_T(0.0, 0.5, 0.02, "v_brightness",
116 _("Brightness of black")));
117 me.TR(me);
118 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Contrast:")));
119 me.TD(me, 1, 2, e = makeXonoticSlider_T(1.0, 3.0, 0.05, "v_contrast",
120 _("Brightness of white")));
121 me.TR(me);
122 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gamma:")));
123 if (cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
124 setDependent(e, "vid_gl20", 1, 1);
125 me.TD(me, 1, 2, e = makeXonoticSlider_T(0.5, 2.0, 0.05, "v_gamma",
126 _("Inverse gamma correction value, a brightness effect that does not affect white or black")));
127 if (cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
128 setDependent(e, "vid_gl20", 1, 1);
129 me.TR(me);
130 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Contrast boost:")));
131 if (cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
132 setDependent(e, "vid_gl20", 1, 1);
133 me.TD(me, 1, 2, e = makeXonoticSlider_T(1.0, 5.0, 0.1, "v_contrastboost",
134 _("By how much to multiply the contrast in dark areas")));
135 if (cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
136 setDependent(e, "vid_gl20", 1, 1);
137 me.TR(me);
138 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Saturation:")));
139 if (cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
140 setDependent(e, "vid_gl20", 1, 1);
141 me.TD(me, 1, 2, e = makeXonoticSlider_T(0.5, 2.0, 0.05, "r_glsl_saturation",
142 _("Saturation adjustment (0 = grayscale, 1 = normal, 2 = oversaturated), requires GLSL color control")));
143 if (cvar_type("vid_gl20") & CVAR_TYPEFLAG_ENGINE)
144 setDependent(e, "vid_gl20", 1, 1);
145 me.TR(me);
146 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, ZCTX(_("LIT^Ambient:"))));
147 me.TD(me, 1, 2, e = makeXonoticSlider_T(0, 20.0, 0.25, "r_ambient",
148 _("Ambient lighting, if set too high it tends to make light on maps look dull and flat")));
149 me.TR(me);
150 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Intensity:")));
151 me.TD(me, 1, 2, e = makeXonoticSlider_T(0.5, 2.0, 0.05, "r_hdr_scenebrightness",
152 _("Global rendering brightness")));
153
154 me.TR(me);
155 me.TR(me);
156 me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Framerate")));
157 me.TR(me);
158 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Maximum:")));
159 me.TD(me, 1, 2, e = makeXonoticMixedSlider("cl_maxfps"));
160 e.formatString = _("%s fps");
161 e.addRange(e, 128, 256, 128);
162 e.addRange(e, 512, 1024, 512);
163 e.addRange(e, 2048, 2048, 2048);
164 e.addText(e, ZCTX(_("MAXFPS^Unlimited")), 0);
165 e.configureXonoticMixedSliderValues(e);
166 me.TR(me);
167 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Target:")));
168 me.TD(me, 1, 2, e = makeXonoticMixedSlider("cl_minfps"));
169 e.formatString = _("%s fps");
170 e.addText(e, ZCTX(_("TRGT^Disabled")), 0);
171 e.addRange(e, 40, 60, 20);
172 e.addRange(e, 100, 150, 25);
173 e.addRange(e, 200, 250, 50);
174 e.addRange(e, 400, 400, 100);
175 e.configureXonoticMixedSliderValues(e);
176 me.TR(me);
177 me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Idle limit:")));
178 me.TD(me, 1, 2, e = makeXonoticMixedSlider("cl_maxidlefps"));
179 e.formatString = _("%s fps");
180 e.addRange(e, 16, 32, 16);
181 e.addRange(e, 64, 128, 64);
182 e.addText(e, ZCTX(_("IDLFPS^Unlimited")), 0);
183 e.configureXonoticMixedSliderValues(e);
184 me.TR(me);
185 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "vid_vsync", _("Vertical Synchronization"),
186 _("Vsync prevents tearing, but increases latency and caps your fps at the screen refresh rate")));
187 me.TR(me);
188 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "showfps", _("Show frames per second"),
189 _("Show your rendered frames per second")));
190
191 me.gotoRC(me, me.rows - 1, 0);
192 me.TD(me, 1, me.columns, videoApplyButton);
193}
entity makeXonoticCommandButton(string theText, vector theColor, string theCommand, int theFlags)
#define COMMANDBUTTON_APPLY
float CVAR_TYPEFLAG_ENGINE
#define ZCTX(s)
Definition i18n.qh:68
void setDependent(entity e, string theCvarName, float theCvarMin, float theCvarMax)
Definition util.qc:180
entity makeXonoticResolutionSlider()
entity makeXonoticTextLabel(float theAlign, string theText)
Definition textlabel.qc:3
entity makeXonoticHeaderLabel(string theText)
Definition textlabel.qc:10
entity makeXonoticCheckBox_T(float isInverted, string theCvar, string theText, string theTooltip)
Definition checkbox.qc:3
entity makeXonoticCheckBox(float isInverted, string theCvar, string theText)
Definition checkbox.qc:28
entity makeXonoticCheckBoxEx(float theYesValue, float theNoValue, string theCvar, string theText)
Definition checkbox.qc:40
entity makeXonoticMixedSlider(string theCvar)
entity makeXonoticMixedSlider_T(string theCvar, string theTooltip)
Definition mixedslider.qc:3
entity makeXonoticRadioButton_T(float theGroup, string theCvar, string theValue, string theText, string theTooltip)
Definition radiobutton.qc:3
entity makeXonoticSlider_T(float theValueMin, float theValueMax, float theValueStep, string theCvar, string theTooltip)
Definition slider.qc:3

References COMMANDBUTTON_APPLY, CVAR_TYPEFLAG_ENGINE, entity(), makeXonoticCheckBox(), makeXonoticCheckBox_T(), makeXonoticCheckBoxEx(), makeXonoticCommandButton(), makeXonoticHeaderLabel(), makeXonoticMixedSlider(), makeXonoticMixedSlider_T(), makeXonoticRadioButton_T(), makeXonoticResolutionSlider(), makeXonoticSlider_T(), makeXonoticTextLabel(), setDependent(), and ZCTX.