diff --git a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11VertexLayout.bf b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11VertexLayout.bf index 8d2918a..bcea626 100644 --- a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11VertexLayout.bf +++ b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11VertexLayout.bf @@ -13,12 +13,12 @@ namespace GlitchyEngine.Renderer public ID3DBlob* nativeShaderCode ~ _?.Release(); - public this(GraphicsContext context, VertexElement[] ownElements, VertexShader vertexShader) + public this(GraphicsContext context, VertexElement[] elements, VertexShader vertexShader) { nativeShaderCode = vertexShader.nativeCode..AddRef(); _context = context..AddRef(); - _elements = ownElements; + _elements = elements; CreateNativeLayout(); } diff --git a/GlitchyEngine/src/Renderer/VertexLayout.bf b/GlitchyEngine/src/Renderer/VertexLayout.bf index 96eb738..d8c861d 100644 --- a/GlitchyEngine/src/Renderer/VertexLayout.bf +++ b/GlitchyEngine/src/Renderer/VertexLayout.bf @@ -77,18 +77,16 @@ namespace GlitchyEngine.Renderer { private GraphicsContext _context ~ _?.ReleaseRef(); - private VertexElement[] _elements ~ delete _; + private VertexElement[] _elements; public GraphicsContext Context => _context; public VertexElement[] Elements => _elements; - // Todo: DirectX needs shader! - /// Takes ownership of ownElements! - public this(GraphicsContext context, VertexElement[] ownElements, VertexShader vertexShader) + public this(GraphicsContext context, VertexElement[] elements, VertexShader vertexShader) { _context = context..AddRef(); - _elements = ownElements; + _elements = elements; CreateNativeLayout(); } @@ -98,6 +96,6 @@ namespace GlitchyEngine.Renderer public interface IVertexData { - static VertexLayout VertexLayout {get;} + static VertexElement[] VertexElements {get;} } } diff --git a/Sandbox/src/SandboxApp.bf b/Sandbox/src/SandboxApp.bf index c58d300..c8433ad 100644 --- a/Sandbox/src/SandboxApp.bf +++ b/Sandbox/src/SandboxApp.bf @@ -37,15 +37,17 @@ namespace Sandbox TexCoord = texCoord; } - //public static readonly InputElementDescription[] InputLayout ~ delete _; - - public static readonly VertexLayout VertexLayout ~ delete _; + public static readonly VertexElement[] VertexElements ~ delete _; - public static VertexLayout IVertexData.VertexLayout => VertexLayout; + public static VertexElement[] IVertexData.VertexElements => VertexElements; static this() { - //VertexLayout = new VertexLayout(); + VertexElements = new VertexElement[]( + VertexElement(.R32G32B32_Float, "POSITION"), + VertexElement(.R8G8B8A8_UNorm, "COLOR"), + VertexElement(.R32G32_Float, "TEXCOORD"), + ); } } @@ -110,11 +112,7 @@ namespace Sandbox // Create Input Layout - _vertexLayout = new VertexLayout(_context, new .( - VertexElement(.R32G32B32_Float, "POSITION"), - VertexElement(.R8G8B8A8_UNorm, "COLOR"), - VertexElement(.R32G32_Float, "TEXCOORD"), - ), _textureEffect.VertexShader); + _vertexLayout = new VertexLayout(_context, VertexColorTexture.VertexElements, _textureEffect.VertexShader); _cBuffer = _effect.PixelShader.Buffers["Constants"] as ConstantBuffer;