2025-02-22 17:25:54 +08:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
namespace DCFApixels.DebugXCore
|
|
|
|
|
{
|
2025-02-23 20:51:02 +08:00
|
|
|
|
public interface IStaticData { }
|
2025-02-22 17:25:54 +08:00
|
|
|
|
public interface IStaticMaterial : IStaticData
|
|
|
|
|
{
|
|
|
|
|
int GetExecuteOrder();
|
2025-03-05 09:44:27 +08:00
|
|
|
|
Material GetMaterial();
|
|
|
|
|
}
|
2025-02-22 17:25:54 +08:00
|
|
|
|
public interface IStaticMesh : IStaticData
|
|
|
|
|
{
|
|
|
|
|
Mesh GetMesh();
|
2025-03-04 13:05:02 +08:00
|
|
|
|
// int GetBufferWarmupSize();
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
2025-03-05 10:32:19 +08:00
|
|
|
|
public readonly struct LitMat : IStaticMaterial
|
2025-02-22 17:25:54 +08:00
|
|
|
|
{
|
|
|
|
|
public int GetExecuteOrder() => 0;
|
2025-03-05 09:44:27 +08:00
|
|
|
|
public Material GetMaterial() => DebugXAssets.Materials.Lit;
|
2025-03-04 13:05:02 +08:00
|
|
|
|
}
|
2025-03-05 10:32:19 +08:00
|
|
|
|
public readonly struct UnlitMat : IStaticMaterial
|
2025-03-04 13:05:02 +08:00
|
|
|
|
{
|
|
|
|
|
public int GetExecuteOrder() => 100_000;
|
2025-03-05 09:44:27 +08:00
|
|
|
|
public Material GetMaterial() => DebugXAssets.Materials.Unlit;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
2025-03-05 10:32:19 +08:00
|
|
|
|
public readonly struct BillboardMat : IStaticMaterial
|
2025-02-22 17:25:54 +08:00
|
|
|
|
{
|
|
|
|
|
public int GetExecuteOrder() => 200_000;
|
2025-03-05 09:44:27 +08:00
|
|
|
|
public Material GetMaterial() => DebugXAssets.Materials.Billboard;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
2025-03-05 10:32:19 +08:00
|
|
|
|
public readonly struct DotMat : IStaticMaterial
|
2025-02-22 17:25:54 +08:00
|
|
|
|
{
|
|
|
|
|
public int GetExecuteOrder() => 300_000;
|
2025-03-05 09:44:27 +08:00
|
|
|
|
public Material GetMaterial() => DebugXAssets.Materials.Dot;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
2025-03-05 10:32:19 +08:00
|
|
|
|
public readonly struct GeometryUnlitMat : IStaticMaterial
|
2025-02-24 10:47:07 +08:00
|
|
|
|
{
|
|
|
|
|
public int GetExecuteOrder() => 1_000_000;
|
2025-03-05 09:44:27 +08:00
|
|
|
|
public Material GetMaterial() => DebugXAssets.Materials.Unlit;
|
2025-02-24 10:47:07 +08:00
|
|
|
|
}
|
2025-03-05 10:32:19 +08:00
|
|
|
|
public readonly struct UnlitOverwriteMat : IStaticMaterial
|
2025-03-03 15:56:20 +08:00
|
|
|
|
{
|
|
|
|
|
public int GetExecuteOrder() => 1_000_000;
|
2025-03-05 09:44:27 +08:00
|
|
|
|
public Material GetMaterial() => DebugXAssets.Materials.UnlitOverwrite;
|
2025-03-03 15:56:20 +08:00
|
|
|
|
}
|
2025-03-05 10:32:19 +08:00
|
|
|
|
public readonly struct WireMat : IStaticMaterial
|
2025-02-24 10:47:07 +08:00
|
|
|
|
{
|
|
|
|
|
public int GetExecuteOrder() => 1_000_000;
|
2025-03-05 09:44:27 +08:00
|
|
|
|
public Material GetMaterial() => DebugXAssets.Materials.Wire;
|
2025-02-24 10:47:07 +08:00
|
|
|
|
}
|
2025-02-22 17:25:54 +08:00
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
public readonly struct SphereMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.Sphere;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct CubeMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.Cube;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct QuadMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.Quad;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct CircleMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.Circle;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
2025-02-26 13:50:00 +08:00
|
|
|
|
public readonly struct CylinderMesh : IStaticMesh
|
|
|
|
|
{
|
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.Cylinder;
|
|
|
|
|
}
|
|
|
|
|
public readonly struct ConeMesh : IStaticMesh
|
|
|
|
|
{
|
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.Cone;
|
|
|
|
|
}
|
|
|
|
|
public readonly struct TriangleMesh : IStaticMesh
|
|
|
|
|
{
|
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.Triangle;
|
|
|
|
|
}
|
2025-02-22 17:25:54 +08:00
|
|
|
|
public readonly struct CapsuleBodyMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.CapsuleBody;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct CapsuleHeadMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.CapsuleHead;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct FlatCapsuleBodyMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.FlatCapsuleBody;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct FlatCapsuleHeadMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.FlatCapsuleHead;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct ArrowMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.Arrow;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct DotMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.Dot;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct DotQuadMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.DotQuad;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct DotDiamondMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.DotDiamond;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
2025-02-26 13:50:00 +08:00
|
|
|
|
public readonly struct WireDotDiamondMesh : IStaticMesh
|
|
|
|
|
{
|
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.WireDotDiamond;
|
|
|
|
|
}
|
2025-02-22 17:25:54 +08:00
|
|
|
|
public readonly struct DotCrossMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.DotCross;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct WireLineMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.WireLine;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct WireCubeMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.WireCube;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct WireArcMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.WireArc;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct WireCircleMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.WireCircle;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
public readonly struct WireSphereMesh : IStaticMesh
|
|
|
|
|
{
|
2025-02-24 18:18:49 +08:00
|
|
|
|
public Mesh GetMesh() => DebugXAssets.Meshes.WireSphere;
|
2025-02-22 17:25:54 +08:00
|
|
|
|
}
|
|
|
|
|
}
|