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;
- }
}
}