mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 21:01:52 +00:00
Added Context, Bind and Unbind to GeometryBinding
This commit is contained in:
@@ -136,7 +136,7 @@ namespace GlitchyEngine
|
|||||||
_indexBuffer = new IndexBuffer(Window.Context, (.)indices.Count, .Immutable);
|
_indexBuffer = new IndexBuffer(Window.Context, (.)indices.Count, .Immutable);
|
||||||
_indexBuffer.SetData(indices);
|
_indexBuffer.SetData(indices);
|
||||||
|
|
||||||
_geometryBinding = new GeometryBinding();
|
_geometryBinding = new GeometryBinding(_window.Context);
|
||||||
_geometryBinding.SetVertexBufferSlot(_vertexBuffer, 0);
|
_geometryBinding.SetVertexBufferSlot(_vertexBuffer, 0);
|
||||||
_geometryBinding.SetVertexLayout(_vertexLayout);
|
_geometryBinding.SetVertexLayout(_vertexLayout);
|
||||||
_geometryBinding.SetPrimitiveTopology(.TriangleList);
|
_geometryBinding.SetPrimitiveTopology(.TriangleList);
|
||||||
@@ -175,7 +175,7 @@ namespace GlitchyEngine
|
|||||||
_window.Context.SetRenderTarget(null);
|
_window.Context.SetRenderTarget(null);
|
||||||
_window.Context.BindRenderTargets();
|
_window.Context.BindRenderTargets();
|
||||||
|
|
||||||
_geometryBinding.Bind(_window.Context);
|
_geometryBinding.Bind();
|
||||||
|
|
||||||
_window.Context.SetVertexShader(_vertexShader);
|
_window.Context.SetVertexShader(_vertexShader);
|
||||||
|
|
||||||
|
|||||||
@@ -73,8 +73,11 @@ namespace GlitchyEngine.Renderer
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Bind(GraphicsContext context)
|
public override void Bind(GraphicsContext context = null)
|
||||||
{
|
{
|
||||||
|
var context;
|
||||||
|
context ??= _context;
|
||||||
|
|
||||||
context.nativeContext.InputAssembler.SetVertexBuffers(0, nativeBuffers.Count, &nativeBuffers, &bufferStrides, &bufferOffsets);
|
context.nativeContext.InputAssembler.SetVertexBuffers(0, nativeBuffers.Count, &nativeBuffers, &bufferStrides, &bufferOffsets);
|
||||||
context.nativeContext.InputAssembler.SetInputLayout(_vertexLayout.nativeLayout);
|
context.nativeContext.InputAssembler.SetInputLayout(_vertexLayout.nativeLayout);
|
||||||
context.nativeContext.InputAssembler.SetPrimitiveTopology((.)_primitiveTopology);
|
context.nativeContext.InputAssembler.SetPrimitiveTopology((.)_primitiveTopology);
|
||||||
@@ -82,8 +85,11 @@ namespace GlitchyEngine.Renderer
|
|||||||
context.nativeContext.InputAssembler.SetIndexBuffer(_indexBuffer.nativeBuffer, _indexBuffer.Format == .Index32Bit ? .R32_UInt : .R16_UInt, _indexByteOffset);
|
context.nativeContext.InputAssembler.SetIndexBuffer(_indexBuffer.nativeBuffer, _indexBuffer.Format == .Index32Bit ? .R32_UInt : .R16_UInt, _indexByteOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Unbind(GraphicsContext context)
|
public void Unbind(GraphicsContext context = null)
|
||||||
{
|
{
|
||||||
|
var context;
|
||||||
|
context ??= _context;
|
||||||
|
|
||||||
ID3D11Buffer*[nativeBuffers.Count] nullBuffers = .();
|
ID3D11Buffer*[nativeBuffers.Count] nullBuffers = .();
|
||||||
uint32[nativeBuffers.Count] zeroStrides = .();
|
uint32[nativeBuffers.Count] zeroStrides = .();
|
||||||
uint32[nativeBuffers.Count] zeroOffsets = .();
|
uint32[nativeBuffers.Count] zeroOffsets = .();
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ namespace GlitchyEngine.Renderer
|
|||||||
{
|
{
|
||||||
public class GeometryBinding
|
public class GeometryBinding
|
||||||
{
|
{
|
||||||
|
internal GraphicsContext _context;
|
||||||
|
|
||||||
internal List<VertexBufferBinding> _vertexBuffers = new .() ~ delete _;
|
internal List<VertexBufferBinding> _vertexBuffers = new .() ~ delete _;
|
||||||
internal IndexBuffer _indexBuffer;
|
internal IndexBuffer _indexBuffer;
|
||||||
internal VertexLayout _vertexLayout;
|
internal VertexLayout _vertexLayout;
|
||||||
@@ -12,6 +14,11 @@ namespace GlitchyEngine.Renderer
|
|||||||
internal uint32 _indexCount;
|
internal uint32 _indexCount;
|
||||||
internal PrimitiveTopology _primitiveTopology;
|
internal PrimitiveTopology _primitiveTopology;
|
||||||
|
|
||||||
|
public this(GraphicsContext context)
|
||||||
|
{
|
||||||
|
_context = context;
|
||||||
|
}
|
||||||
|
|
||||||
public VertexBufferBinding GetVertexBuffer(uint32 slot)
|
public VertexBufferBinding GetVertexBuffer(uint32 slot)
|
||||||
{
|
{
|
||||||
return _vertexBuffers[slot];
|
return _vertexBuffers[slot];
|
||||||
@@ -79,5 +86,9 @@ namespace GlitchyEngine.Renderer
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected extern void PlatformSetIndexBuffer(IndexBuffer indexBuffer);
|
protected extern void PlatformSetIndexBuffer(IndexBuffer indexBuffer);
|
||||||
|
|
||||||
|
public extern void Bind(GraphicsContext context = null);
|
||||||
|
|
||||||
|
public extern void Unbind(GraphicsContext context = null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user