diff --git a/GlitchyEngine/src/Application.bf b/GlitchyEngine/src/Application.bf index be7b992..18ceeb2 100644 --- a/GlitchyEngine/src/Application.bf +++ b/GlitchyEngine/src/Application.bf @@ -217,9 +217,9 @@ namespace GlitchyEngine _window.Context.SetVertexLayout(_vertexLayout); - var _immediateContext = _window.Context.[Friend]nativeContext; + _window.Context.SetPrimitiveTopology(.TriangleList); - _immediateContext.InputAssembler.SetPrimitiveTopology(.TriangleList); + var _immediateContext = _window.Context.[Friend]nativeContext; _immediateContext.VertexShader.SetShader(_vertexShader, null, 0); diff --git a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11GraphicsContext.bf b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11GraphicsContext.bf index 38c027e..c975b60 100644 --- a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11GraphicsContext.bf +++ b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11GraphicsContext.bf @@ -160,5 +160,10 @@ namespace GlitchyEngine.Renderer { nativeContext.InputAssembler.SetInputLayout(vertexLayout.nativeLayout); } + + public override void SetPrimitiveTopology(GlitchyEngine.Renderer.PrimitiveTopology primitiveTopology) + { + nativeContext.InputAssembler.SetPrimitiveTopology((DirectX.Common.PrimitiveTopology)primitiveTopology); + } } } diff --git a/GlitchyEngine/src/Renderer/GraphicsContext.bf b/GlitchyEngine/src/Renderer/GraphicsContext.bf index 286b8d9..ea15d2d 100644 --- a/GlitchyEngine/src/Renderer/GraphicsContext.bf +++ b/GlitchyEngine/src/Renderer/GraphicsContext.bf @@ -110,5 +110,7 @@ namespace GlitchyEngine.Renderer public extern void SetViewports(uint32 viewportsLength, Viewport* viewports); public extern void SetVertexLayout(VertexLayout vertexLayout); + + public extern void SetPrimitiveTopology(PrimitiveTopology primitiveTopology); } } diff --git a/GlitchyEngine/src/Renderer/PrimitiveTopology.bf b/GlitchyEngine/src/Renderer/PrimitiveTopology.bf new file mode 100644 index 0000000..25734cf --- /dev/null +++ b/GlitchyEngine/src/Renderer/PrimitiveTopology.bf @@ -0,0 +1,51 @@ +namespace GlitchyEngine.Renderer +{ + /** + * Compatible with DirectX + */ + public enum PrimitiveTopology + { + Undefined = 0, + PointList = 1, + LineList = 2, + LineStrip = 3, + TriangleList = 4, + TriangleStrip = 5, + LineListWithAdjacency = 10, + LineStripWithAdjacency = 11, + TriangleListWithAdjacency = 12, + TriangleStripWithAdjacency = 13, + PatchListWith1ControlPoints = 33, + PatchListWith2ControlPoints = 34, + PatchListWith3ControlPoints = 35, + PatchListWith4ControlPoints = 36, + PatchListWith5ControlPoints = 37, + PatchListWith6ControlPoints = 38, + PatchListWith7ControlPoints = 39, + PatchListWith8ControlPoints = 40, + PatchListWith9ControlPoints = 41, + PatchListWith10ControlPoints = 42, + PatchListWith11ControlPoints = 43, + PatchListWith12ControlPoints = 44, + PatchListWith13ControlPoints = 45, + PatchListWith14ControlPoints = 46, + PatchListWith15ControlPoints = 47, + PatchListWith16ControlPoints = 48, + PatchListWith17ControlPoints = 49, + PatchListWith18ControlPoints = 50, + PatchListWith19ControlPoints = 51, + PatchListWith20ControlPoints = 52, + PatchListWith21ControlPoints = 53, + PatchListWith22ControlPoints = 54, + PatchListWith23ControlPoints = 55, + PatchListWith24ControlPoints = 56, + PatchListWith25ControlPoints = 57, + PatchListWith26ControlPoints = 58, + PatchListWith27ControlPoints = 59, + PatchListWith28ControlPoints = 60, + PatchListWith29ControlPoints = 61, + PatchListWith30ControlPoints = 62, + PatchListWith31ControlPoints = 63, + PatchListWith32ControlPoints = 64, + } +}