説明なし
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

DebugDisplaySettingsHDROutput.cs 9.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. namespace 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. /// <summary>
  26. /// Creates a table of values from the HDROutputSettings API.
  27. /// </summary>
  28. /// <returns>A table containing the values from the HDROutputSettings API.</returns>
  29. public static DebugUI.Table CreateHDROuputDisplayTable()
  30. {
  31. //Create table and rows
  32. var table = new DebugUI.Table()
  33. {
  34. displayName = Strings.hdrOutputAPI,
  35. isReadOnly = true
  36. };
  37. var row_hdrActive = new DebugUI.Table.Row()
  38. {
  39. displayName = Strings.hdrActive,
  40. opened = true
  41. };
  42. var row_hdrAvailable = new DebugUI.Table.Row()
  43. {
  44. displayName = Strings.hdrAvailable,
  45. opened = true
  46. };
  47. var row_gamut = new DebugUI.Table.Row()
  48. {
  49. displayName = Strings.gamut,
  50. opened = false
  51. };
  52. var row_format = new DebugUI.Table.Row()
  53. {
  54. displayName = Strings.format,
  55. opened = false
  56. };
  57. var row_autoHdrTonemapping = new DebugUI.Table.Row()
  58. {
  59. displayName = Strings.autoHdrTonemapping,
  60. opened = false
  61. };
  62. var row_paperWhite = new DebugUI.Table.Row()
  63. {
  64. displayName = Strings.paperWhite,
  65. opened = false
  66. };
  67. var row_minLuminance = new DebugUI.Table.Row()
  68. {
  69. displayName = Strings.minLuminance,
  70. opened = false
  71. };
  72. var row_maxLuminance = new DebugUI.Table.Row()
  73. {
  74. displayName = Strings.maxLuminance,
  75. opened = false
  76. };
  77. var row_maxFullFrameLuminance = new DebugUI.Table.Row()
  78. {
  79. displayName = Strings.maxFullFrameLuminance,
  80. opened = false
  81. };
  82. var row_modeChangeRequested = new DebugUI.Table.Row()
  83. {
  84. displayName = Strings.modeChangeRequested,
  85. opened = false
  86. };
  87. //Iterate through all displays
  88. HDROutputSettings[] displays = HDROutputSettings.displays;
  89. for(int i=0; i<displays.Length; i++)
  90. {
  91. var d = displays[i];
  92. //Check if main display
  93. int idName = i + 1;
  94. var name = Strings.displayName + idName;
  95. if(HDROutputSettings.main == d)
  96. {
  97. name += Strings.displayMain;
  98. }
  99. //Fill rows
  100. row_hdrActive.children.Add
  101. (
  102. new DebugUI.Value()
  103. {
  104. displayName = name,
  105. getter = () =>
  106. {
  107. return d.active;
  108. }
  109. }
  110. );
  111. row_hdrAvailable.children.Add
  112. (
  113. new DebugUI.Value()
  114. {
  115. displayName = name,
  116. getter = () =>
  117. {
  118. return d.available;
  119. }
  120. }
  121. );
  122. row_gamut.children.Add
  123. (
  124. new DebugUI.Value()
  125. {
  126. displayName = name,
  127. getter = () =>
  128. {
  129. if(d.available)
  130. {
  131. return d.displayColorGamut;
  132. }
  133. return Strings.notAvailable;
  134. }
  135. }
  136. );
  137. row_format.children.Add
  138. (
  139. new DebugUI.Value()
  140. {
  141. displayName = name,
  142. getter = () =>
  143. {
  144. if(d.available)
  145. {
  146. return d.graphicsFormat;
  147. }
  148. return Strings.notAvailable;
  149. }
  150. }
  151. );
  152. row_autoHdrTonemapping.children.Add
  153. (
  154. new DebugUI.Value()
  155. {
  156. displayName = name,
  157. getter = () =>
  158. {
  159. if(d.available)
  160. {
  161. return d.automaticHDRTonemapping;
  162. }
  163. return Strings.notAvailable;
  164. }
  165. }
  166. );
  167. row_paperWhite.children.Add
  168. (
  169. new DebugUI.Value()
  170. {
  171. displayName = name,
  172. getter = () =>
  173. {
  174. if(d.available)
  175. {
  176. return d.paperWhiteNits;
  177. }
  178. return Strings.notAvailable;
  179. }
  180. }
  181. );
  182. row_minLuminance.children.Add
  183. (
  184. new DebugUI.Value()
  185. {
  186. displayName = name,
  187. getter = () =>
  188. {
  189. if(d.available)
  190. {
  191. return d.minToneMapLuminance;
  192. }
  193. return Strings.notAvailable;
  194. }
  195. }
  196. );
  197. row_maxLuminance.children.Add
  198. (
  199. new DebugUI.Value()
  200. {
  201. displayName = name,
  202. getter = () =>
  203. {
  204. if(d.available)
  205. {
  206. return d.maxToneMapLuminance;
  207. }
  208. return Strings.notAvailable;
  209. }
  210. }
  211. );
  212. row_maxFullFrameLuminance.children.Add
  213. (
  214. new DebugUI.Value()
  215. {
  216. displayName = name,
  217. getter = () =>
  218. {
  219. if(d.available)
  220. {
  221. return d.maxFullFrameToneMapLuminance;
  222. }
  223. return Strings.notAvailable;
  224. }
  225. }
  226. );
  227. row_modeChangeRequested.children.Add
  228. (
  229. new DebugUI.Value()
  230. {
  231. displayName = name,
  232. getter = () =>
  233. {
  234. if(d.available)
  235. {
  236. return d.HDRModeChangeRequested;
  237. }
  238. return Strings.notAvailable;
  239. }
  240. }
  241. );
  242. }
  243. //Add rows to table
  244. table.children.Add(row_hdrActive);
  245. table.children.Add(row_hdrAvailable);
  246. table.children.Add(row_gamut);
  247. table.children.Add(row_format);
  248. table.children.Add(row_autoHdrTonemapping);
  249. table.children.Add(row_paperWhite);
  250. table.children.Add(row_minLuminance);
  251. table.children.Add(row_maxLuminance);
  252. table.children.Add(row_maxFullFrameLuminance);
  253. table.children.Add(row_modeChangeRequested);
  254. return table;
  255. }
  256. }
  257. }