TERPGDemo/RPGDemo/Assets/TEngine/Runtime/Module/DebugerModule/Component/DebuggerModule.QualityInformationWindow.cs
2025-04-22 17:16:40 +08:00

107 lines
5.8 KiB
C#

using UnityEngine;
namespace TEngine
{
public sealed partial class Debugger
{
private sealed class QualityInformationWindow : ScrollableDebuggerWindowBase
{
private bool _applyExpensiveChanges = false;
protected override void OnDrawScrollableWindow()
{
GUILayout.Label("<b>Quality Level</b>");
GUILayout.BeginVertical("box");
{
int currentQualityLevel = QualitySettings.GetQualityLevel();
DrawItem("Current Quality Level", QualitySettings.names[currentQualityLevel]);
_applyExpensiveChanges = GUILayout.Toggle(_applyExpensiveChanges, "Apply expensive changes on quality level change.");
int newQualityLevel = GUILayout.SelectionGrid(currentQualityLevel, QualitySettings.names, 3, "toggle");
if (newQualityLevel != currentQualityLevel)
{
QualitySettings.SetQualityLevel(newQualityLevel, _applyExpensiveChanges);
}
}
GUILayout.EndVertical();
GUILayout.Label("<b>Rendering Information</b>");
GUILayout.BeginVertical("box");
{
DrawItem("Active Color Space", QualitySettings.activeColorSpace.ToString());
DrawItem("Desired Color Space", QualitySettings.desiredColorSpace.ToString());
DrawItem("Max Queued Frames", QualitySettings.maxQueuedFrames.ToString());
DrawItem("Pixel Light Count", QualitySettings.pixelLightCount.ToString());
#if UNITY_6000_0_OR_NEWER
DrawItem("Master Texture Limit", QualitySettings.globalTextureMipmapLimit.ToString());
#else
DrawItem("Master Texture Limit", QualitySettings.masterTextureLimit.ToString());
#endif
DrawItem("Anisotropic Filtering", QualitySettings.anisotropicFiltering.ToString());
DrawItem("Anti Aliasing", QualitySettings.antiAliasing.ToString());
#if UNITY_5_5_OR_NEWER
DrawItem("Soft Particles", QualitySettings.softParticles.ToString());
#endif
DrawItem("Soft Vegetation", QualitySettings.softVegetation.ToString());
DrawItem("Realtime Reflection Probes", QualitySettings.realtimeReflectionProbes.ToString());
DrawItem("Billboards Face Camera Position", QualitySettings.billboardsFaceCameraPosition.ToString());
#if UNITY_2017_1_OR_NEWER
DrawItem("Resolution Scaling Fixed DPI Factor", QualitySettings.resolutionScalingFixedDPIFactor.ToString());
#endif
#if UNITY_2018_2_OR_NEWER
DrawItem("Texture Streaming Enabled", QualitySettings.streamingMipmapsActive.ToString());
DrawItem("Texture Streaming Add All Cameras", QualitySettings.streamingMipmapsAddAllCameras.ToString());
DrawItem("Texture Streaming Memory Budget", QualitySettings.streamingMipmapsMemoryBudget.ToString());
DrawItem("Texture Streaming Renderers Per Frame", QualitySettings.streamingMipmapsRenderersPerFrame.ToString());
DrawItem("Texture Streaming Max Level Reduction", QualitySettings.streamingMipmapsMaxLevelReduction.ToString());
DrawItem("Texture Streaming Max File IO Requests", QualitySettings.streamingMipmapsMaxFileIORequests.ToString());
#endif
}
GUILayout.EndVertical();
GUILayout.Label("<b>Shadows Information</b>");
GUILayout.BeginVertical("box");
{
#if UNITY_2017_1_OR_NEWER
DrawItem("Shadowmask Mode", QualitySettings.shadowmaskMode.ToString());
#endif
#if UNITY_5_5_OR_NEWER
DrawItem("Shadow Quality", QualitySettings.shadows.ToString());
#endif
#if UNITY_5_4_OR_NEWER
DrawItem("Shadow Resolution", QualitySettings.shadowResolution.ToString());
#endif
DrawItem("Shadow Projection", QualitySettings.shadowProjection.ToString());
DrawItem("Shadow Distance", QualitySettings.shadowDistance.ToString());
DrawItem("Shadow Near Plane Offset", QualitySettings.shadowNearPlaneOffset.ToString());
DrawItem("Shadow Cascades", QualitySettings.shadowCascades.ToString());
DrawItem("Shadow Cascade 2 Split", QualitySettings.shadowCascade2Split.ToString());
DrawItem("Shadow Cascade 4 Split", QualitySettings.shadowCascade4Split.ToString());
}
GUILayout.EndVertical();
GUILayout.Label("<b>Other Information</b>");
GUILayout.BeginVertical("box");
{
#if UNITY_2019_1_OR_NEWER
DrawItem("Skin Weights", QualitySettings.skinWeights.ToString());
#else
DrawItem("Blend Weights", QualitySettings.blendWeights.ToString());
#endif
DrawItem("VSync Count", QualitySettings.vSyncCount.ToString());
DrawItem("LOD Bias", QualitySettings.lodBias.ToString());
DrawItem("Maximum LOD Level", QualitySettings.maximumLODLevel.ToString());
DrawItem("Particle Raycast Budget", QualitySettings.particleRaycastBudget.ToString());
DrawItem("Async Upload Time Slice", Utility.Text.Format("{0} ms", QualitySettings.asyncUploadTimeSlice));
DrawItem("Async Upload Buffer Size", Utility.Text.Format("{0} MB", QualitySettings.asyncUploadBufferSize));
#if UNITY_2018_3_OR_NEWER
DrawItem("Async Upload Persistent Buffer", QualitySettings.asyncUploadPersistentBuffer.ToString());
#endif
}
GUILayout.EndVertical();
}
}
}
}