APITester.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476
  1. namespace CodeStage.AdvancedFPSCounter
  2. {
  3. using CountersData;
  4. using Labels;
  5. using UnityEngine;
  6. public class APITester : MonoBehaviour
  7. {
  8. private int selectedTab;
  9. private readonly string[] tabs = {"Common", "Look & Feel", "FPS Counter", "Memory Counter", "Device info"};
  10. private FPSLevel currentFPSLevel = FPSLevel.Normal;
  11. private void Start()
  12. {
  13. // will add AFPSCounter to the scene if it not exists
  14. // you don't need to call it if you already have AFPSCounter in the scene
  15. var newCounterInstance = AFPSCounter.AddToScene();
  16. // you also may get the instance at any time
  17. // using AFPSCounter.Instance property
  18. newCounterInstance.fpsCounter.OnFPSLevelChange += OnFPSLevelChanged;
  19. }
  20. private void OnFPSLevelChanged(FPSLevel newLevel)
  21. {
  22. currentFPSLevel = newLevel;
  23. }
  24. private void OnGUI()
  25. {
  26. GUILayout.BeginArea(new Rect(40, 150, Screen.width-80, Screen.height - 80));
  27. var richStyle = new GUIStyle(GUI.skin.label) {richText = true};
  28. var centeredStyle = new GUIStyle(richStyle) {alignment = TextAnchor.UpperCenter};
  29. GUILayout.Label("<b>Public API usage examples</b>", centeredStyle);
  30. selectedTab = GUILayout.Toolbar(selectedTab, tabs);
  31. switch (selectedTab)
  32. {
  33. case 0:
  34. {
  35. GUILayout.Space(10);
  36. DrawCommonTab();
  37. break;
  38. }
  39. case 1:
  40. {
  41. GUILayout.Space(10);
  42. DrawLookFeelTab();
  43. break;
  44. }
  45. case 2:
  46. {
  47. GUILayout.Space(10);
  48. DrawFPSCounterTab();
  49. break;
  50. }
  51. case 3:
  52. {
  53. GUILayout.Space(10);
  54. DrawMemoryCounterTab();
  55. break;
  56. }
  57. case 4:
  58. {
  59. GUILayout.Space(10);
  60. DrawDeviceInfoTab();
  61. break;
  62. }
  63. default:
  64. {
  65. GUILayout.Label("Wrong tab!");
  66. break;
  67. }
  68. }
  69. GUILayout.Space(5);
  70. GUILayout.Label("<b>Raw counters values</b> (read using API)", richStyle);
  71. GUILayout.BeginHorizontal();
  72. GUILayout.BeginVertical(GUILayout.ExpandWidth(true), GUILayout.MinWidth(300));
  73. GUILayout.Label("<size=11> FPS: " + AFPSCounter.Instance.fpsCounter.LastValue +
  74. " [" + AFPSCounter.Instance.fpsCounter.LastMillisecondsValue + " MS]" +
  75. " AVG: " + AFPSCounter.Instance.fpsCounter.LastAverageValue +
  76. " [" + AFPSCounter.Instance.fpsCounter.LastAverageMillisecondsValue + " MS]" +
  77. "\n MIN: " + AFPSCounter.Instance.fpsCounter.LastMinimumValue +
  78. " [" + AFPSCounter.Instance.fpsCounter.LastMinMillisecondsValue + " MS]" +
  79. " MAX: " + AFPSCounter.Instance.fpsCounter.LastMaximumValue +
  80. " [" + AFPSCounter.Instance.fpsCounter.LastMaxMillisecondsValue + " MS]" +
  81. "\n RNDR: [" + AFPSCounter.Instance.fpsCounter.LastRenderValue + " MS]" +
  82. "\n Level (direct / callback): " + AFPSCounter.Instance.fpsCounter.CurrentFpsLevel + " / " + currentFPSLevel+"</size>");
  83. if (AFPSCounter.Instance.memoryCounter.Precise)
  84. {
  85. GUILayout.Label("<size=11> Memory (Total, Allocated, Mono, Gfx):\n " +
  86. AFPSCounter.Instance.memoryCounter.LastTotalValue / (float)MemoryCounterData.MemoryDivider + ", " +
  87. AFPSCounter.Instance.memoryCounter.LastAllocatedValue / (float)MemoryCounterData.MemoryDivider + ", " +
  88. AFPSCounter.Instance.memoryCounter.LastMonoValue / (float)MemoryCounterData.MemoryDivider + ", " +
  89. AFPSCounter.Instance.memoryCounter.LastGfxValue / (float)MemoryCounterData.MemoryDivider + "</size>");
  90. }
  91. else
  92. {
  93. GUILayout.Label("<size=11> Memory (Total, Allocated, Mono, Gfx):\n " +
  94. AFPSCounter.Instance.memoryCounter.LastTotalValue + ", " +
  95. AFPSCounter.Instance.memoryCounter.LastAllocatedValue + ", " +
  96. AFPSCounter.Instance.memoryCounter.LastMonoValue + ", " +
  97. AFPSCounter.Instance.memoryCounter.LastGfxValue + "</size>");
  98. }
  99. GUILayout.EndVertical();
  100. if (AFPSCounter.Instance.deviceInfoCounter.Enabled) GUILayout.Label("<size=11>" + AFPSCounter.Instance.deviceInfoCounter.LastValue + "</size>");
  101. GUILayout.EndHorizontal();
  102. GUILayout.EndArea();
  103. }
  104. private void DrawCommonTab()
  105. {
  106. GUILayout.BeginHorizontal();
  107. GUILayout.Label("Operation Mode:", GUILayout.MaxWidth(100));
  108. var operationMode = (int)AFPSCounter.Instance.OperationMode;
  109. operationMode = GUILayout.Toolbar(operationMode, new[]
  110. {
  111. OperationMode.Disabled.ToString(),
  112. OperationMode.Background.ToString(),
  113. OperationMode.Normal.ToString()
  114. });
  115. if (GUI.changed)
  116. AFPSCounter.Instance.OperationMode = (OperationMode)operationMode;
  117. GUILayout.EndHorizontal();
  118. GUILayout.Space(10);
  119. GUILayout.BeginHorizontal();
  120. GUILayout.Label("Hot Key:", GUILayout.MaxWidth(100));
  121. int hotKeyIndex;
  122. if (AFPSCounter.Instance.hotKey == KeyCode.BackQuote)
  123. {
  124. hotKeyIndex = 1;
  125. }
  126. else
  127. {
  128. hotKeyIndex = (int)AFPSCounter.Instance.hotKey;
  129. }
  130. hotKeyIndex = GUILayout.Toolbar(hotKeyIndex, new[] { "None (disabled)", "BackQuote (`)" });
  131. AFPSCounter.Instance.hotKey = hotKeyIndex == 1 ? KeyCode.BackQuote : KeyCode.None;
  132. AFPSCounter.Instance.circleGesture = GUILayout.Toggle(AFPSCounter.Instance.circleGesture, "Circle Gesture", GUILayout.ExpandWidth(false));
  133. GUILayout.EndHorizontal();
  134. GUI.enabled = hotKeyIndex == 1;
  135. GUILayout.Label("Hot Key modifiers:");
  136. GUILayout.BeginHorizontal();
  137. AFPSCounter.Instance.hotKeyCtrl = GUILayout.Toggle(AFPSCounter.Instance.hotKeyCtrl, "Ctrl / Cmd", GUILayout.ExpandWidth(false));
  138. GUILayout.Space(10);
  139. AFPSCounter.Instance.hotKeyAlt = GUILayout.Toggle(AFPSCounter.Instance.hotKeyAlt, "Alt", GUILayout.ExpandWidth(false));
  140. GUILayout.Space(10);
  141. AFPSCounter.Instance.hotKeyShift = GUILayout.Toggle(AFPSCounter.Instance.hotKeyShift, "Shift", GUILayout.ExpandWidth(false));
  142. GUILayout.EndHorizontal();
  143. GUI.enabled = true;
  144. GUILayout.Space(10);
  145. GUILayout.Label("KeepAlive enabled: " + AFPSCounter.Instance.KeepAlive);
  146. GUILayout.Space(5);
  147. GUILayout.BeginHorizontal();
  148. AFPSCounter.Instance.ForceFrameRate = GUILayout.Toggle(AFPSCounter.Instance.ForceFrameRate, "Force FPS", GUILayout.Width(100));
  149. AFPSCounter.Instance.ForcedFrameRate = (int)SliderLabel(AFPSCounter.Instance.ForcedFrameRate, -1, 100);
  150. GUILayout.EndHorizontal();
  151. }
  152. private void DrawLookFeelTab()
  153. {
  154. GUILayout.BeginHorizontal();
  155. AFPSCounter.Instance.PixelPerfect = GUILayout.Toggle(AFPSCounter.Instance.PixelPerfect, "Pixel Perfect", GUILayout.Width(100));
  156. AFPSCounter.Instance.AutoScale = GUILayout.Toggle(AFPSCounter.Instance.AutoScale, "Auto scale", GUILayout.Width(100));
  157. GUILayout.Label("Scale", GUILayout.ExpandWidth(false));
  158. GUILayout.Space(5);
  159. AFPSCounter.Instance.ScaleFactor = SliderLabel(AFPSCounter.Instance.ScaleFactor, 0.1f, 10f);
  160. GUILayout.Space(30);
  161. GUILayout.Label("Font Size", GUILayout.ExpandWidth(false));
  162. GUILayout.Space(5);
  163. AFPSCounter.Instance.FontSize = (int)SliderLabel(AFPSCounter.Instance.FontSize, 1, 100);
  164. GUILayout.EndHorizontal();
  165. AFPSCounter.Instance.PaddingOffset = Vector2Slider(AFPSCounter.Instance.PaddingOffset, "Padding");
  166. GUILayout.BeginHorizontal();
  167. GUILayout.Label("Line spacing", GUILayout.ExpandWidth(false));
  168. GUILayout.Space(5);
  169. AFPSCounter.Instance.LineSpacing = SliderLabel(AFPSCounter.Instance.LineSpacing, 0f, 10f);
  170. GUILayout.Space(30);
  171. GUILayout.Label("Counters spacing", GUILayout.ExpandWidth(false));
  172. GUILayout.Space(5);
  173. AFPSCounter.Instance.CountersSpacing = (int)SliderLabel(AFPSCounter.Instance.CountersSpacing, 0, 10);
  174. GUILayout.EndHorizontal();
  175. GUILayout.BeginHorizontal();
  176. AFPSCounter.Instance.Background = GUILayout.Toggle(AFPSCounter.Instance.Background, "Background", GUILayout.Width(100));
  177. GUILayout.Space(5);
  178. GUI.enabled = AFPSCounter.Instance.Background;
  179. AFPSCounter.Instance.BackgroundColor = ColorSliders("Color", AFPSCounter.Instance.BackgroundColor);
  180. GUILayout.Label("Padding", GUILayout.Width(60));
  181. AFPSCounter.Instance.BackgroundPadding = (int)SliderLabel(AFPSCounter.Instance.BackgroundPadding, 0, 50);
  182. GUI.enabled = true;
  183. GUILayout.EndHorizontal();
  184. GUILayout.BeginHorizontal();
  185. AFPSCounter.Instance.Shadow = GUILayout.Toggle(AFPSCounter.Instance.Shadow, "Shadow", GUILayout.Width(100));
  186. GUILayout.Space(5);
  187. GUI.enabled = AFPSCounter.Instance.Shadow;
  188. AFPSCounter.Instance.ShadowColor = ColorSliders("Color", AFPSCounter.Instance.ShadowColor);
  189. GUI.enabled = true;
  190. GUILayout.EndHorizontal();
  191. GUILayout.BeginHorizontal();
  192. AFPSCounter.Instance.Outline = GUILayout.Toggle(AFPSCounter.Instance.Outline, "Outline", GUILayout.Width(100));
  193. GUILayout.Space(5);
  194. GUI.enabled = AFPSCounter.Instance.Outline;
  195. AFPSCounter.Instance.OutlineColor = ColorSliders("Color", AFPSCounter.Instance.OutlineColor);
  196. GUI.enabled = true;
  197. GUILayout.EndHorizontal();
  198. GUILayout.Space(5);
  199. Camera.main.backgroundColor = ColorSliders("Scene background color", Camera.main.backgroundColor);
  200. }
  201. private void DrawFPSCounterTab()
  202. {
  203. GUILayout.BeginHorizontal();
  204. AFPSCounter.Instance.fpsCounter.Enabled = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.Enabled, "Enabled");
  205. GUILayout.Label("Style: ", GUILayout.Width(35));
  206. AFPSCounter.Instance.fpsCounter.Style = (FontStyle)GUILayout.Toolbar((int)AFPSCounter.Instance.fpsCounter.Style, new[] { "Normal", "Bold", "Italic", "Bold&Italic" });
  207. GUILayout.Label("Extra text: ", GUILayout.Width(70));
  208. if (GUILayout.Button("Append", GUILayout.ExpandWidth(false)))
  209. {
  210. AFPSCounter.Instance.fpsCounter.ExtraText = "<b>Some</b> <color=#A76ED1>text</color>!";
  211. }
  212. if (GUILayout.Button("Remove", GUILayout.ExpandWidth(false)))
  213. {
  214. AFPSCounter.Instance.fpsCounter.ExtraText = null;
  215. }
  216. GUILayout.EndHorizontal();
  217. GUILayout.Space(10);
  218. AFPSCounter.Instance.fpsCounter.Anchor = (LabelAnchor)GUILayout.Toolbar((int)AFPSCounter.Instance.fpsCounter.Anchor, new[] { "UpperLeft", "UpperRight", "LowerLeft", "LowerRight", "UpperCenter", "LowerCenter" });
  219. GUILayout.BeginHorizontal();
  220. GUILayout.Label("Update Interval", GUILayout.Width(100));
  221. AFPSCounter.Instance.fpsCounter.UpdateInterval = SliderLabel(AFPSCounter.Instance.fpsCounter.UpdateInterval, 0.1f, 10f);
  222. GUILayout.EndHorizontal();
  223. AFPSCounter.Instance.fpsCounter.Milliseconds = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.Milliseconds, "Milliseconds");
  224. GUILayout.BeginHorizontal();
  225. AFPSCounter.Instance.fpsCounter.Average = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.Average, "Average FPS", GUILayout.Width(100));
  226. if (AFPSCounter.Instance.fpsCounter.Average)
  227. {
  228. GUILayout.Label("Samples", GUILayout.ExpandWidth(false));
  229. AFPSCounter.Instance.fpsCounter.AverageSamples = (int)SliderLabel(AFPSCounter.Instance.fpsCounter.AverageSamples, 0, 100);
  230. GUILayout.Space(10);
  231. AFPSCounter.Instance.fpsCounter.AverageMilliseconds = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.AverageMilliseconds, "Milliseconds");
  232. AFPSCounter.Instance.fpsCounter.AverageNewLine = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.AverageNewLine, "On new line");
  233. AFPSCounter.Instance.fpsCounter.resetAverageOnNewScene = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.resetAverageOnNewScene, "Reset On Load", GUILayout.ExpandWidth(false));
  234. if (GUILayout.Button("Reset now!", GUILayout.ExpandWidth(false)))
  235. {
  236. AFPSCounter.Instance.fpsCounter.ResetAverage();
  237. }
  238. }
  239. GUILayout.EndHorizontal();
  240. GUILayout.BeginHorizontal();
  241. AFPSCounter.Instance.fpsCounter.MinMax = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.MinMax, "MinMax FPS", GUILayout.Width(100));
  242. if (AFPSCounter.Instance.fpsCounter.MinMax)
  243. {
  244. GUILayout.Label("Delay", GUILayout.ExpandWidth(false));
  245. AFPSCounter.Instance.fpsCounter.minMaxIntervalsToSkip = (int)SliderLabel(AFPSCounter.Instance.fpsCounter.minMaxIntervalsToSkip, 0, 10);
  246. GUILayout.Space(10);
  247. AFPSCounter.Instance.fpsCounter.MinMaxMilliseconds = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.MinMaxMilliseconds, "Milliseconds");
  248. AFPSCounter.Instance.fpsCounter.MinMaxTwoLines = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.MinMaxTwoLines, "On two lines");
  249. AFPSCounter.Instance.fpsCounter.MinMaxNewLine = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.MinMaxNewLine, "On new line");
  250. AFPSCounter.Instance.fpsCounter.resetMinMaxOnNewScene = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.resetMinMaxOnNewScene, "Reset On Load", GUILayout.ExpandWidth(false));
  251. if (GUILayout.Button("Reset now!", GUILayout.ExpandWidth(false)))
  252. {
  253. AFPSCounter.Instance.fpsCounter.ResetMinMax();
  254. }
  255. }
  256. GUILayout.EndHorizontal();
  257. GUILayout.BeginHorizontal();
  258. AFPSCounter.Instance.fpsCounter.Render = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.Render, "Render Time", GUILayout.Width(100));
  259. if (AFPSCounter.Instance.fpsCounter.Render)
  260. {
  261. AFPSCounter.Instance.fpsCounter.RenderNewLine = GUILayout.Toggle(AFPSCounter.Instance.fpsCounter.RenderNewLine, "On new line");
  262. }
  263. GUILayout.EndHorizontal();
  264. }
  265. private void DrawMemoryCounterTab()
  266. {
  267. GUILayout.BeginHorizontal();
  268. AFPSCounter.Instance.memoryCounter.Enabled = GUILayout.Toggle(AFPSCounter.Instance.memoryCounter.Enabled, "Enabled");
  269. GUILayout.Label("Style: ", GUILayout.Width(35));
  270. AFPSCounter.Instance.memoryCounter.Style = (FontStyle)GUILayout.Toolbar((int)AFPSCounter.Instance.memoryCounter.Style, new[] { "Normal", "Bold", "Italic", "Bold&Italic" });
  271. GUILayout.Label("Extra text: ", GUILayout.Width(70));
  272. if (GUILayout.Button("Append", GUILayout.ExpandWidth(false)))
  273. {
  274. AFPSCounter.Instance.memoryCounter.ExtraText = "<b>Some</b> <color=#A76ED1>text</color>!";
  275. }
  276. if (GUILayout.Button("Remove", GUILayout.ExpandWidth(false)))
  277. {
  278. AFPSCounter.Instance.memoryCounter.ExtraText = null;
  279. }
  280. GUILayout.EndHorizontal();
  281. GUILayout.Space(10);
  282. AFPSCounter.Instance.memoryCounter.Anchor = (LabelAnchor)GUILayout.Toolbar((int)AFPSCounter.Instance.memoryCounter.Anchor, new[] { "UpperLeft", "UpperRight", "LowerLeft", "LowerRight", "UpperCenter", "LowerCenter" });
  283. GUILayout.Space(10);
  284. GUILayout.BeginHorizontal();
  285. GUILayout.Label("Update Interval", GUILayout.Width(100));
  286. AFPSCounter.Instance.memoryCounter.UpdateInterval = SliderLabel(AFPSCounter.Instance.memoryCounter.UpdateInterval, 0.1f, 10f);
  287. GUILayout.EndHorizontal();
  288. GUILayout.Space(10);
  289. GUILayout.BeginHorizontal();
  290. GUILayout.BeginVertical();
  291. AFPSCounter.Instance.memoryCounter.Precise = GUILayout.Toggle(AFPSCounter.Instance.memoryCounter.Precise, "Precise (uses more system resources)");
  292. AFPSCounter.Instance.memoryCounter.Total = GUILayout.Toggle(AFPSCounter.Instance.memoryCounter.Total, "Total reserved memory size");
  293. GUILayout.EndVertical();
  294. GUILayout.BeginVertical();
  295. AFPSCounter.Instance.memoryCounter.Allocated = GUILayout.Toggle(AFPSCounter.Instance.memoryCounter.Allocated, "Allocated memory size");
  296. AFPSCounter.Instance.memoryCounter.MonoUsage = GUILayout.Toggle(AFPSCounter.Instance.memoryCounter.MonoUsage, "Mono memory usage");
  297. AFPSCounter.Instance.memoryCounter.Gfx = GUILayout.Toggle(AFPSCounter.Instance.memoryCounter.Gfx, "GfxDriver memory");
  298. GUILayout.EndVertical();
  299. GUILayout.EndHorizontal();
  300. }
  301. private void DrawDeviceInfoTab()
  302. {
  303. GUILayout.BeginHorizontal();
  304. AFPSCounter.Instance.deviceInfoCounter.Enabled = GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.Enabled, "Enabled");
  305. GUILayout.Label("Style: ", GUILayout.Width(35));
  306. AFPSCounter.Instance.deviceInfoCounter.Style = (FontStyle)GUILayout.Toolbar((int)AFPSCounter.Instance.deviceInfoCounter.Style, new[] { "Normal", "Bold", "Italic", "Bold&Italic" });
  307. GUILayout.Label("Extra text: ", GUILayout.Width(70));
  308. if (GUILayout.Button("Append", GUILayout.ExpandWidth(false)))
  309. {
  310. AFPSCounter.Instance.deviceInfoCounter.ExtraText = "<b>Some</b> <color=#A76ED1>text</color>!";
  311. }
  312. if (GUILayout.Button("Remove", GUILayout.ExpandWidth(false)))
  313. {
  314. AFPSCounter.Instance.deviceInfoCounter.ExtraText = null;
  315. }
  316. GUILayout.EndHorizontal();
  317. GUILayout.Space(10);
  318. AFPSCounter.Instance.deviceInfoCounter.Anchor = (LabelAnchor)GUILayout.Toolbar((int)AFPSCounter.Instance.deviceInfoCounter.Anchor, new[] { "UpperLeft", "UpperRight", "LowerLeft", "LowerRight", "UpperCenter", "LowerCenter" });
  319. GUILayout.Space(10);
  320. using (new GUILayout.HorizontalScope())
  321. {
  322. using (new GUILayout.VerticalScope())
  323. {
  324. AFPSCounter.Instance.deviceInfoCounter.Platform =
  325. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.Platform, "Platform info");
  326. using (new GUILayout.HorizontalScope())
  327. {
  328. AFPSCounter.Instance.deviceInfoCounter.CpuModel =
  329. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.CpuModel, "CPU info", GUILayout.Width(150));
  330. AFPSCounter.Instance.deviceInfoCounter.CpuModelNewLine =
  331. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.CpuModelNewLine, "new line");
  332. }
  333. using (new GUILayout.HorizontalScope())
  334. {
  335. AFPSCounter.Instance.deviceInfoCounter.GpuModel =
  336. GUILayout.Toggle( AFPSCounter.Instance.deviceInfoCounter.GpuModel, "GPU Model", GUILayout.Width(150));
  337. AFPSCounter.Instance.deviceInfoCounter.GpuModelNewLine =
  338. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.GpuModelNewLine, "new line");
  339. }
  340. }
  341. using (new GUILayout.VerticalScope())
  342. {
  343. using (new GUILayout.HorizontalScope())
  344. {
  345. AFPSCounter.Instance.deviceInfoCounter.GpuApi =
  346. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.GpuApi, "GPU API", GUILayout.Width(150));
  347. AFPSCounter.Instance.deviceInfoCounter.GpuApiNewLine =
  348. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.GpuApiNewLine, "new line");
  349. }
  350. using (new GUILayout.HorizontalScope())
  351. {
  352. AFPSCounter.Instance.deviceInfoCounter.GpuSpec =
  353. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.GpuSpec, "GPU Spec", GUILayout.Width(150));
  354. AFPSCounter.Instance.deviceInfoCounter.GpuSpecNewLine =
  355. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.GpuSpecNewLine, "new line");
  356. }
  357. using (new GUILayout.HorizontalScope())
  358. {
  359. AFPSCounter.Instance.deviceInfoCounter.RamSize =
  360. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.RamSize, "Total RAM size", GUILayout.Width(150));
  361. AFPSCounter.Instance.deviceInfoCounter.RamSizeNewLine =
  362. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.RamSizeNewLine, "new line");
  363. }
  364. }
  365. using (new GUILayout.VerticalScope())
  366. {
  367. using (new GUILayout.HorizontalScope())
  368. {
  369. AFPSCounter.Instance.deviceInfoCounter.ScreenData =
  370. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.ScreenData, "Display info", GUILayout.Width(150));
  371. AFPSCounter.Instance.deviceInfoCounter.ScreenDataNewLine =
  372. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.ScreenDataNewLine, "new line");
  373. }
  374. using (new GUILayout.HorizontalScope())
  375. {
  376. AFPSCounter.Instance.deviceInfoCounter.DeviceModel =
  377. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.DeviceModel, "Device model", GUILayout.Width(150));
  378. AFPSCounter.Instance.deviceInfoCounter.DeviceModelNewLine =
  379. GUILayout.Toggle(AFPSCounter.Instance.deviceInfoCounter.DeviceModelNewLine, "new line");
  380. }
  381. }
  382. }
  383. }
  384. private static float SliderLabel(float sliderValue, float sliderMinValue, float sliderMaxValue)
  385. {
  386. GUILayout.BeginHorizontal();
  387. GUILayout.BeginVertical();
  388. GUILayout.Space(8);
  389. sliderValue = GUILayout.HorizontalSlider(sliderValue, sliderMinValue, sliderMaxValue);
  390. GUILayout.EndVertical();
  391. GUILayout.Space(10);
  392. GUILayout.Label(string.Format("{0:F2}", sliderValue), GUILayout.ExpandWidth(false));
  393. GUILayout.EndHorizontal();
  394. return sliderValue;
  395. }
  396. private Color ColorSliders(string caption, Color color)
  397. {
  398. GUILayout.BeginHorizontal();
  399. GUILayout.Label(caption, GUILayout.ExpandWidth(false));
  400. GUILayout.Space(5);
  401. GUILayout.Label("R:", GUILayout.Width(20));
  402. color.r = SliderLabel(color.r, 0f, 1f);
  403. GUILayout.Space(5);
  404. GUILayout.Label("G:", GUILayout.Width(20));
  405. color.g = SliderLabel(color.g, 0f, 1f);
  406. GUILayout.Space(5);
  407. GUILayout.Label("B:", GUILayout.Width(20));
  408. color.b = SliderLabel(color.b, 0f, 1f);
  409. GUILayout.EndHorizontal();
  410. return color;
  411. }
  412. private Vector2 Vector2Slider(Vector2 input, string label)
  413. {
  414. var output = input;
  415. GUILayout.BeginHorizontal();
  416. GUILayout.Label(label, GUILayout.ExpandWidth(false));
  417. GUILayout.Space(5);
  418. GUILayout.Label("X: ", GUILayout.Width(20));
  419. output.x = (int)SliderLabel(output.x, 0, 100);
  420. GUILayout.Space(30);
  421. GUILayout.Label("Y:", GUILayout.Width(20));
  422. output.y = (int)SliderLabel(output.y, 0, 100);
  423. GUILayout.EndHorizontal();
  424. return output;
  425. }
  426. }
  427. }