mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 21:01:52 +00:00
DX11: Automatically validate input layouts against vertex shaders
This commit is contained in:
@@ -79,6 +79,8 @@ namespace GlitchyEngine.Renderer
|
||||
public extern void Draw(uint32 vertexCount, uint32 startVertexIndex = 0);
|
||||
|
||||
public extern void DrawIndexed(uint32 indexCount, uint32 startIndexLocation = 0, int32 vertexOffset = 0);
|
||||
|
||||
public extern void DrawIndexedInstanced(uint32 indexCountPerInstance, uint32 instanceCount, uint32 startIndexLocation, int32 baseVertexLocation, uint32 startInstanceLocation);
|
||||
|
||||
public void SetIndexBuffer(IndexBuffer indexBuffer, uint32 byteOffset = 0)
|
||||
{
|
||||
|
||||
@@ -210,7 +210,7 @@ namespace GlitchyEngine.Renderer
|
||||
|
||||
VertexElement[] vertexElements = new VertexElement[1];
|
||||
vertexElements[0] = .(.R32G32B32_Float, "POSITION");
|
||||
VertexLayout layout = new VertexLayout(vertexElements, true, LineEffect.VertexShader);
|
||||
VertexLayout layout = new VertexLayout(vertexElements, true);
|
||||
LineGeometry.SetVertexLayout(layout..ReleaseRefNoDelete());
|
||||
}
|
||||
|
||||
@@ -258,7 +258,7 @@ namespace GlitchyEngine.Renderer
|
||||
VertexElement(.R32G32_Float, "TEXCOORD")
|
||||
);
|
||||
|
||||
using (var quadBatchLayout = new VertexLayout(vertexElements, true, TestFullscreenEffect.VertexShader))
|
||||
using (var quadBatchLayout = new VertexLayout(vertexElements, true))
|
||||
{
|
||||
s_fullscreenQuadGeometry.SetVertexLayout(quadBatchLayout);
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ namespace GlitchyEngine.Renderer
|
||||
0, 1, 2,
|
||||
2, 3, 0
|
||||
);
|
||||
|
||||
|
||||
quadIndices.SetData(indices);
|
||||
s_quadGeometry.SetIndexBuffer(quadIndices);
|
||||
}
|
||||
@@ -211,7 +211,7 @@ namespace GlitchyEngine.Renderer
|
||||
s_quadBatchBinding = new GeometryBinding();
|
||||
s_quadBatchBinding.SetPrimitiveTopology(.TriangleList);
|
||||
|
||||
using (var quadBatchLayout = new VertexLayout(vertexElements, true, s_batchEffect.VertexShader))
|
||||
using (var quadBatchLayout = new VertexLayout(vertexElements, true))
|
||||
{
|
||||
s_quadBatchBinding.SetVertexLayout(quadBatchLayout);
|
||||
}
|
||||
@@ -238,7 +238,7 @@ namespace GlitchyEngine.Renderer
|
||||
s_circleBatchBinding = new GeometryBinding();
|
||||
s_circleBatchBinding.SetPrimitiveTopology(.TriangleList);
|
||||
|
||||
using (var circleBatchLayout = new VertexLayout(vertexElements, true, s_circleBatchEffect.VertexShader))
|
||||
using (var circleBatchLayout = new VertexLayout(vertexElements, true))
|
||||
{
|
||||
s_circleBatchBinding.SetVertexLayout(circleBatchLayout);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ using GlitchyEngine.Core;
|
||||
|
||||
namespace GlitchyEngine.Renderer
|
||||
{
|
||||
|
||||
/**
|
||||
* Type of data contained in an input slot.
|
||||
*/
|
||||
@@ -86,6 +85,12 @@ namespace GlitchyEngine.Renderer
|
||||
|
||||
public VertexElement[] Elements => _elements;
|
||||
|
||||
public this(VertexElement[] elements, bool ownsElements)
|
||||
{
|
||||
_elements = elements;
|
||||
_ownsElements = ownsElements;
|
||||
}
|
||||
|
||||
public ~this()
|
||||
{
|
||||
if(_ownsElements)
|
||||
@@ -99,8 +104,6 @@ namespace GlitchyEngine.Renderer
|
||||
delete _elements;
|
||||
}
|
||||
}
|
||||
|
||||
protected extern void CreateNativeLayout();
|
||||
}
|
||||
|
||||
public interface IVertexData
|
||||
|
||||
Reference in New Issue
Block a user