diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj index c10757d5..8ee3879b 100644 --- a/PCK-Studio/PckStudio.csproj +++ b/PCK-Studio/PckStudio.csproj @@ -158,7 +158,6 @@ - diff --git a/PCK-Studio/Rendering/CubeGroupMesh.cs b/PCK-Studio/Rendering/CubeGroupMesh.cs index 654e8494..79967273 100644 --- a/PCK-Studio/Rendering/CubeGroupMesh.cs +++ b/PCK-Studio/Rendering/CubeGroupMesh.cs @@ -52,6 +52,14 @@ namespace PckStudio.Rendering Inflate = inflate; } + public static VertexBufferLayout GetLayout() + { + var layout = new VertexBufferLayout(); + layout.Add(ShaderDataType.Float3); + layout.Add(ShaderDataType.Float2); + return layout; + } + internal void AddSkinBox(SkinBOX skinBox) { var cube = CubeMesh.Create(skinBox); diff --git a/PCK-Studio/Rendering/GenericMesh.cs b/PCK-Studio/Rendering/GenericMesh.cs index 72b646e4..d348bbd0 100644 --- a/PCK-Studio/Rendering/GenericMesh.cs +++ b/PCK-Studio/Rendering/GenericMesh.cs @@ -24,7 +24,7 @@ using PckStudio.Rendering.Shader; namespace PckStudio.Rendering { - internal class GenericMesh where T : struct, IVertexLayout + internal class GenericMesh where T : struct { internal string Name { get; } @@ -37,7 +37,6 @@ namespace PckStudio.Rendering private VertexArray vertexArray; private VertexBuffer vertexBuffer; private IndexBuffer indexBuffer; - private readonly VertexBufferLayout _layout; private readonly PrimitiveType drawType; private DrawContext drawContext; @@ -48,15 +47,14 @@ namespace PckStudio.Rendering indicesOffset = 0; vertices = new List(10); indices = new List(10); - _layout = new T().GetLayout(); } - internal void Initialize() + internal void Initialize(VertexBufferLayout layout) { vertexArray = new VertexArray(); vertexBuffer = new VertexBuffer(); indexBuffer = new IndexBuffer(); - vertexArray.AddBuffer(vertexBuffer, _layout); + vertexArray.AddBuffer(vertexBuffer, layout); drawContext = new DrawContext(vertexArray, indexBuffer, drawType); } diff --git a/PCK-Studio/Rendering/IVertexLayout.cs b/PCK-Studio/Rendering/IVertexLayout.cs deleted file mode 100644 index 131d8e8f..00000000 --- a/PCK-Studio/Rendering/IVertexLayout.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace PckStudio.Rendering -{ - internal interface IVertexLayout - { - public VertexBufferLayout GetLayout(); - } -} diff --git a/PCK-Studio/Rendering/SkinRenderer.cs b/PCK-Studio/Rendering/SkinRenderer.cs index dd432899..ec0f5181 100644 --- a/PCK-Studio/Rendering/SkinRenderer.cs +++ b/PCK-Studio/Rendering/SkinRenderer.cs @@ -265,14 +265,15 @@ namespace PckStudio.Rendering InitializeShaders(); InitializeFramebuffer(); Renderer.SetClearColor(BackColor); + var layout = CubeGroupMesh.GetLayout(); foreach (var item in meshStorage) { - item.Value.Initialize(); + item.Value.Initialize(layout); } UploadMeshData(); foreach (var cubeMesh in offsetSpecificMeshStorage?.Values) { - cubeMesh.Initialize(); + cubeMesh.Initialize(layout); cubeMesh.UploadData(); } GLErrorCheck(); @@ -656,7 +657,7 @@ namespace PckStudio.Rendering VertexBuffer vertexBuffer = new VertexBuffer(); vertexBuffer.SetData(rectVertices); VertexBufferLayout layout = new VertexBufferLayout(); - layout.Add(4); + layout.Add(ShaderDataType.Float4); framebufferVAO.AddBuffer(vertexBuffer, layout); framebuffer.CheckStatus(); diff --git a/PCK-Studio/Rendering/TextureVertex.cs b/PCK-Studio/Rendering/TextureVertex.cs index cc1c1579..6359770e 100644 --- a/PCK-Studio/Rendering/TextureVertex.cs +++ b/PCK-Studio/Rendering/TextureVertex.cs @@ -8,7 +8,7 @@ using OpenTK; namespace PckStudio.Rendering { [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 20)] - internal struct TextureVertex : IVertexLayout + internal struct TextureVertex { internal Vector3 Position { get; set; } internal Vector2 TexPosition { get; set; } @@ -18,13 +18,5 @@ namespace PckStudio.Rendering Position = position; TexPosition = texPosition; } - - public VertexBufferLayout GetLayout() - { - var layout = new VertexBufferLayout(); - layout.Add(ShaderDataType.Float3); - layout.Add(ShaderDataType.Float2); - return layout; - } } }