A game about forced loneliness, made by TACStudios
1namespace UnityEngine.Rendering
2{
3 /// <summary>
4 /// Debug Display Settings HDR Output
5 /// </summary>
6 public class DebugDisplaySettingsHDROutput
7 {
8 static class Strings
9 {
10 public static readonly string hdrOutputAPI = "HDROutputSettings";
11 public static readonly string displayName = "Display ";
12 public static readonly string displayMain = " (main)";
13 public static readonly string hdrActive = "HDR Output Active";
14 public static readonly string hdrAvailable = "HDR Output Available";
15 public static readonly string gamut = "Display Color Gamut";
16 public static readonly string format = "Display Buffer Graphics Format";
17 public static readonly string autoHdrTonemapping = "Automatic HDR Tonemapping";
18 public static readonly string paperWhite = "Paper White Nits";
19 public static readonly string minLuminance = "Min Tone Map Luminance";
20 public static readonly string maxLuminance = "Max Tone Map Luminance";
21 public static readonly string maxFullFrameLuminance = "Max Full Frame Tone Map Luminance";
22 public static readonly string modeChangeRequested = "HDR Mode Change Requested";
23 public static readonly string notAvailable = "N/A";
24 }
25
26 /// <summary>
27 /// Creates a table of values from the HDROutputSettings API.
28 /// </summary>
29 /// <returns>A table containing the values from the HDROutputSettings API.</returns>
30 public static DebugUI.Table CreateHDROuputDisplayTable()
31 {
32 //Create table and rows
33 var table = new DebugUI.Table()
34 {
35 displayName = Strings.hdrOutputAPI,
36 isReadOnly = true
37 };
38
39 var row_hdrActive = new DebugUI.Table.Row()
40 {
41 displayName = Strings.hdrActive,
42 opened = true
43 };
44
45 var row_hdrAvailable = new DebugUI.Table.Row()
46 {
47 displayName = Strings.hdrAvailable,
48 opened = true
49 };
50
51 var row_gamut = new DebugUI.Table.Row()
52 {
53 displayName = Strings.gamut,
54 opened = false
55 };
56
57 var row_format = new DebugUI.Table.Row()
58 {
59 displayName = Strings.format,
60 opened = false
61 };
62
63 var row_autoHdrTonemapping = new DebugUI.Table.Row()
64 {
65 displayName = Strings.autoHdrTonemapping,
66 opened = false
67 };
68
69 var row_paperWhite = new DebugUI.Table.Row()
70 {
71 displayName = Strings.paperWhite,
72 opened = false
73 };
74
75 var row_minLuminance = new DebugUI.Table.Row()
76 {
77 displayName = Strings.minLuminance,
78 opened = false
79 };
80
81 var row_maxLuminance = new DebugUI.Table.Row()
82 {
83 displayName = Strings.maxLuminance,
84 opened = false
85 };
86
87 var row_maxFullFrameLuminance = new DebugUI.Table.Row()
88 {
89 displayName = Strings.maxFullFrameLuminance,
90 opened = false
91 };
92
93 var row_modeChangeRequested = new DebugUI.Table.Row()
94 {
95 displayName = Strings.modeChangeRequested,
96 opened = false
97 };
98
99 //Iterate through all displays
100 HDROutputSettings[] displays = HDROutputSettings.displays;
101 for(int i=0; i<displays.Length; i++)
102 {
103 var d = displays[i];
104
105 //Check if main display
106 int idName = i + 1;
107 var name = Strings.displayName + idName;
108 if(HDROutputSettings.main == d)
109 {
110 name += Strings.displayMain;
111 }
112
113 //Fill rows
114
115 row_hdrActive.children.Add
116 (
117 new DebugUI.Value()
118 {
119 displayName = name,
120 getter = () =>
121 {
122 return d.active;
123 }
124 }
125 );
126
127 row_hdrAvailable.children.Add
128 (
129 new DebugUI.Value()
130 {
131 displayName = name,
132 getter = () =>
133 {
134 return d.available;
135 }
136 }
137 );
138
139 row_gamut.children.Add
140 (
141 new DebugUI.Value()
142 {
143 displayName = name,
144 getter = () =>
145 {
146 if(d.available)
147 {
148 return d.displayColorGamut;
149 }
150 return Strings.notAvailable;
151 }
152 }
153 );
154
155 row_format.children.Add
156 (
157 new DebugUI.Value()
158 {
159 displayName = name,
160 getter = () =>
161 {
162 if(d.available)
163 {
164 return d.graphicsFormat;
165 }
166 return Strings.notAvailable;
167 }
168 }
169 );
170
171 row_autoHdrTonemapping.children.Add
172 (
173 new DebugUI.Value()
174 {
175 displayName = name,
176 getter = () =>
177 {
178 if(d.available)
179 {
180 return d.automaticHDRTonemapping;
181 }
182 return Strings.notAvailable;
183 }
184 }
185 );
186
187 row_paperWhite.children.Add
188 (
189 new DebugUI.Value()
190 {
191 displayName = name,
192 getter = () =>
193 {
194 if(d.available)
195 {
196 return d.paperWhiteNits;
197 }
198 return Strings.notAvailable;
199 }
200 }
201 );
202
203 row_minLuminance.children.Add
204 (
205 new DebugUI.Value()
206 {
207 displayName = name,
208 getter = () =>
209 {
210 if(d.available)
211 {
212 return d.minToneMapLuminance;
213 }
214 return Strings.notAvailable;
215 }
216 }
217 );
218
219 row_maxLuminance.children.Add
220 (
221 new DebugUI.Value()
222 {
223 displayName = name,
224 getter = () =>
225 {
226 if(d.available)
227 {
228 return d.maxToneMapLuminance;
229 }
230 return Strings.notAvailable;
231 }
232 }
233 );
234
235 row_maxFullFrameLuminance.children.Add
236 (
237 new DebugUI.Value()
238 {
239 displayName = name,
240 getter = () =>
241 {
242 if(d.available)
243 {
244 return d.maxFullFrameToneMapLuminance;
245 }
246 return Strings.notAvailable;
247 }
248 }
249 );
250
251 row_modeChangeRequested.children.Add
252 (
253 new DebugUI.Value()
254 {
255 displayName = name,
256 getter = () =>
257 {
258 if(d.available)
259 {
260 return d.HDRModeChangeRequested;
261 }
262 return Strings.notAvailable;
263 }
264 }
265 );
266 }
267
268 //Add rows to table
269 table.children.Add(row_hdrActive);
270 table.children.Add(row_hdrAvailable);
271 table.children.Add(row_gamut);
272 table.children.Add(row_format);
273 table.children.Add(row_autoHdrTonemapping);
274 table.children.Add(row_paperWhite);
275 table.children.Add(row_minLuminance);
276 table.children.Add(row_maxLuminance);
277 table.children.Add(row_maxFullFrameLuminance);
278 table.children.Add(row_modeChangeRequested);
279
280 return table;
281 }
282 }
283}