mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-15 03:30:53 +01:00
91 lines
4.6 KiB
C#
91 lines
4.6 KiB
C#
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.Graphics;
|
|
using Robust.Client.Graphics.Clyde.Rhi;
|
|
using Robust.Client.UserInterface.Controls;
|
|
using Robust.Client.UserInterface.XAML;
|
|
using Robust.Shared.IoC;
|
|
using Robust.Shared.Maths;
|
|
|
|
namespace Robust.Client.UserInterface;
|
|
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class DevWindowTabRenderer : Control
|
|
{
|
|
public DevWindowTabRenderer()
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
|
|
var clyde = IoCManager.Resolve<IClyde>();
|
|
var rhi = clyde.Rhi;
|
|
|
|
LoadLimits(rhi.DeviceLimits);
|
|
LoadProperties(rhi);
|
|
|
|
TabContainer.SetTabTitle(TabProperties, "Properties");
|
|
TabContainer.SetTabTitle(TabLimits, "Limits");
|
|
}
|
|
|
|
private void LoadProperties(RhiBase rhi)
|
|
{
|
|
Add("RHI description", rhi.Description);
|
|
|
|
var adapter = rhi.AdapterProperties;
|
|
|
|
Add("Adapter name", adapter.Name);
|
|
Add("Adapter vendor", $"{adapter.VendorName} ({adapter.VendorID})");
|
|
Add("Adapter driver", $"{adapter.Driver}");
|
|
Add("Adapter architecture", $"{adapter.Architecture}");
|
|
Add("Adapter backend", $"{adapter.BackendType}");
|
|
Add("Adapter type", $"{adapter.AdapterType}");
|
|
|
|
void Add<T>(string name, T field) where T : notnull
|
|
{
|
|
PropertiesGrid.AddChild(new Label { Text = name, Margin = new Thickness(0, 0, 8, 0) });
|
|
PropertiesGrid.AddChild(new Label { Text = field.ToString() });
|
|
}
|
|
}
|
|
|
|
private void LoadLimits(RhiLimits limits)
|
|
{
|
|
// @formatter:off
|
|
Add("MaxTextureDimension1D", limits.MaxTextureDimension1D);
|
|
Add("MaxTextureDimension2D", limits.MaxTextureDimension2D);
|
|
Add("MaxTextureDimension3D", limits.MaxTextureDimension3D);
|
|
Add("MaxTextureArrayLayers", limits.MaxTextureArrayLayers);
|
|
Add("MaxBindGroups", limits.MaxBindGroups);
|
|
Add("MaxBindingsPerBindGroup", limits.MaxBindingsPerBindGroup);
|
|
Add("MaxDynamicUniformBuffersPerPipelineLayout", limits.MaxDynamicUniformBuffersPerPipelineLayout);
|
|
Add("MaxDynamicStorageBuffersPerPipelineLayout", limits.MaxDynamicStorageBuffersPerPipelineLayout);
|
|
Add("MaxSampledTexturesPerShaderStage", limits.MaxSampledTexturesPerShaderStage);
|
|
Add("MaxSamplersPerShaderStage", limits.MaxSamplersPerShaderStage);
|
|
Add("MaxStorageBuffersPerShaderStage", limits.MaxStorageBuffersPerShaderStage);
|
|
Add("MaxStorageTexturesPerShaderStage", limits.MaxStorageTexturesPerShaderStage);
|
|
Add("MaxUniformBuffersPerShaderStage", limits.MaxUniformBuffersPerShaderStage);
|
|
Add("MaxUniformBufferBindingSize", limits.MaxUniformBufferBindingSize);
|
|
Add("MaxStorageBufferBindingSize", limits.MaxStorageBufferBindingSize);
|
|
Add("MinUniformBufferOffsetAlignment", limits.MinUniformBufferOffsetAlignment);
|
|
Add("MinStorageBufferOffsetAlignment", limits.MinStorageBufferOffsetAlignment);
|
|
Add("MaxVertexBuffers", limits.MaxVertexBuffers);
|
|
Add("MaxBufferSize", limits.MaxBufferSize);
|
|
Add("MaxVertexAttributes", limits.MaxVertexAttributes);
|
|
Add("MaxVertexBufferArrayStride", limits.MaxVertexBufferArrayStride);
|
|
Add("MaxInterStageShaderComponents", limits.MaxInterStageShaderComponents);
|
|
Add("MaxInterStageShaderVariables", limits.MaxInterStageShaderVariables);
|
|
Add("MaxColorAttachments", limits.MaxColorAttachments);
|
|
Add("MaxColorAttachmentBytesPerSample", limits.MaxColorAttachmentBytesPerSample);
|
|
Add("MaxComputeWorkgroupStorageSize", limits.MaxComputeWorkgroupStorageSize);
|
|
Add("MaxComputeInvocationsPerWorkgroup", limits.MaxComputeInvocationsPerWorkgroup);
|
|
Add("MaxComputeWorkgroupSizeX", limits.MaxComputeWorkgroupSizeX);
|
|
Add("MaxComputeWorkgroupSizeY", limits.MaxComputeWorkgroupSizeY);
|
|
Add("MaxComputeWorkgroupSizeZ", limits.MaxComputeWorkgroupSizeZ);
|
|
Add("MaxComputeWorkgroupsPerDimension", limits.MaxComputeWorkgroupsPerDimension);
|
|
// @formatter:on
|
|
|
|
void Add<T>(string name, T field) where T : notnull
|
|
{
|
|
LimitsGrid.AddChild(new Label { Text = name, Margin = new Thickness(0, 0, 8, 0) });
|
|
LimitsGrid.AddChild(new Label { Text = field.ToString() });
|
|
}
|
|
}
|
|
}
|