SetViewport now part of RenderCommand

This commit is contained in:
Simon Lübeß
2021-09-21 13:15:43 +02:00
parent 4af61a372f
commit 4debaee7d4
9 changed files with 25 additions and 9 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ FileVersion = 1
Projects = {Sandbox = {Path = "Sandbox"}, GlitchyEngine = {Path = "GlitchyEngine"}, GlitchLog = {Path = "GlitchLog"}, DirectX = {Path = "GlitchyEngine/vendor/directx/DirectX"}, ImGui = {Path = "GlitchyEngine/vendor/imgui-beef/ImGui"}, ImGuiImplWin32 = {Path = "GlitchyEngine/vendor/imgui-beef/ImGuiImplWin32"}, ImGuiImplDX11 = {Path = "GlitchyEngine/vendor/imgui-beef/ImGuiImplDX11"}, DirectXTK = {Path = "GlitchyEngine/vendor/DirectXTK/DirectXTK-beef"}, LodePng = {Path = "vendor/lodepng-beef/lodepng-beef"}, FreeType = {Path = "GlitchyEngine/vendor/freetype"}, cgltf-beef = {Path = "GlitchyEngine/vendor/gltf/cgltf-beef"}, GlitchyEditor = {Path = "GlitchyEditor"}, msdfgen-beef = {Path = "GlitchyEngine/vendor/msdfgen/msdfgen-beef"}} Projects = {Sandbox = {Path = "Sandbox"}, GlitchyEngine = {Path = "GlitchyEngine"}, GlitchLog = {Path = "GlitchLog"}, DirectX = {Path = "GlitchyEngine/vendor/directx/DirectX"}, ImGui = {Path = "GlitchyEngine/vendor/imgui-beef/ImGui"}, ImGuiImplWin32 = {Path = "GlitchyEngine/vendor/imgui-beef/ImGuiImplWin32"}, ImGuiImplDX11 = {Path = "GlitchyEngine/vendor/imgui-beef/ImGuiImplDX11"}, DirectXTK = {Path = "GlitchyEngine/vendor/DirectXTK/DirectXTK-beef"}, LodePng = {Path = "vendor/lodepng-beef/lodepng-beef"}, FreeType = {Path = "GlitchyEngine/vendor/freetype"}, cgltf-beef = {Path = "GlitchyEngine/vendor/gltf/cgltf-beef"}, GlitchyEditor = {Path = "GlitchyEditor"}, msdfgen-beef = {Path = "GlitchyEngine/vendor/msdfgen/msdfgen-beef"}}
[Workspace] [Workspace]
StartupProject = "Sandbox" StartupProject = "GlitchyEditor"
[Configs.Debug.Win64] [Configs.Debug.Win64]
AllocType = "CRT" AllocType = "CRT"
+2 -2
View File
@@ -109,7 +109,7 @@ namespace GlitchyEditor
_depthTarget.Bind(); _depthTarget.Bind();
_context.BindRenderTargets(); _context.BindRenderTargets();
_context.SetViewport(Viewport(0, 0, _renderTarget2D.Width, _renderTarget2D.Height)); RenderCommand.SetViewport(Viewport(0, 0, _renderTarget2D.Width, _renderTarget2D.Height));
_opaqueBlendState.Bind(); _opaqueBlendState.Bind();
@@ -126,7 +126,7 @@ namespace GlitchyEditor
_swapchainDepthBuffer.Bind(); _swapchainDepthBuffer.Bind();
_context.BindRenderTargets(); _context.BindRenderTargets();
_context.SetViewport(_context.SwapChain.BackbufferViewport); RenderCommand.SetViewport(_context.SwapChain.BackbufferViewport);
} }
public override void OnEvent(Event event) public override void OnEvent(Event event)
@@ -45,5 +45,10 @@ namespace GlitchyEngine.Renderer
{ {
_context.nativeContext.DrawIndexedInstanced(geometry.IndexCount, geometry.InstanceCount, geometry.IndexByteOffset, 0, 0); _context.nativeContext.DrawIndexedInstanced(geometry.IndexCount, geometry.InstanceCount, geometry.IndexByteOffset, 0, 0);
} }
public override void SetViewport(Viewport viewport)
{
_context.SetViewport(viewport);
}
} }
} }
@@ -85,8 +85,7 @@ namespace GlitchyEngine.Renderer
return _currentRasterizerState; return _currentRasterizerState;
} }
[Inline] internal void SetViewport(Viewport viewport)
public void SetViewport(Viewport viewport)
{ {
var viewport; var viewport;
SetViewports(1, &viewport); SetViewports(1, &viewport);
@@ -50,5 +50,15 @@ namespace GlitchyEngine.Renderer
{ {
_rendererAPI.DrawIndexedInstanced(geometry); _rendererAPI.DrawIndexedInstanced(geometry);
} }
public static void SetViewport(Viewport viewport)
{
_rendererAPI.SetViewport(viewport);
}
public static void SetViewport(float left, float top, float width, float height, float minDepth = 0.0f, float maxDepth = 1.0f)
{
SetViewport(.(left, top, width, height, minDepth, maxDepth));
}
} }
} }
@@ -26,5 +26,7 @@ namespace GlitchyEngine.Renderer
public extern void DrawInstanced(GeometryBinding geometry); public extern void DrawInstanced(GeometryBinding geometry);
public extern void DrawIndexedInstanced(GeometryBinding geometry); public extern void DrawIndexedInstanced(GeometryBinding geometry);
public extern void SetViewport(Viewport viewport);
} }
} }
+1 -1
View File
@@ -396,7 +396,7 @@ namespace Sandbox
_depthTarget.Bind(); _depthTarget.Bind();
_context.BindRenderTargets(); _context.BindRenderTargets();
_context.SetViewport(_context.SwapChain.BackbufferViewport); RenderCommand.SetViewport(_context.SwapChain.BackbufferViewport);
Renderer.BeginScene(_cameraController.Camera); Renderer.BeginScene(_cameraController.Camera);
+1 -1
View File
@@ -274,7 +274,7 @@ namespace Sandbox
_context.SetRasterizerState(_rasterizerState); _context.SetRasterizerState(_rasterizerState);
_context.SetViewport(_context.SwapChain.BackbufferViewport); RenderCommand.SetViewport(_context.SwapChain.BackbufferViewport);
/* /*
Renderer2D.Begin(.FrontToBack, .(80, 80)); Renderer2D.Begin(.FrontToBack, .(80, 80));
+1 -1
View File
@@ -177,7 +177,7 @@ namespace Sandbox
private void RenderTexture(Texture2D viewedTexture) private void RenderTexture(Texture2D viewedTexture)
{ {
Viewport vp = .(0, 0, _target.Width, _target.Height); Viewport vp = .(0, 0, _target.Width, _target.Height);
_context.SetViewport(vp); RenderCommand.SetViewport(vp);
// TODO: don't clear pink! // TODO: don't clear pink!
_context.ClearRenderTarget(_target, .Pink); _context.ClearRenderTarget(_target, .Pink);