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"}}
[Workspace]
StartupProject = "Sandbox"
StartupProject = "GlitchyEditor"
[Configs.Debug.Win64]
AllocType = "CRT"
+2 -2
View File
@@ -109,7 +109,7 @@ namespace GlitchyEditor
_depthTarget.Bind();
_context.BindRenderTargets();
_context.SetViewport(Viewport(0, 0, _renderTarget2D.Width, _renderTarget2D.Height));
RenderCommand.SetViewport(Viewport(0, 0, _renderTarget2D.Width, _renderTarget2D.Height));
_opaqueBlendState.Bind();
@@ -126,7 +126,7 @@ namespace GlitchyEditor
_swapchainDepthBuffer.Bind();
_context.BindRenderTargets();
_context.SetViewport(_context.SwapChain.BackbufferViewport);
RenderCommand.SetViewport(_context.SwapChain.BackbufferViewport);
}
public override void OnEvent(Event event)
@@ -45,5 +45,10 @@ namespace GlitchyEngine.Renderer
{
_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;
}
[Inline]
public void SetViewport(Viewport viewport)
internal void SetViewport(Viewport viewport)
{
var viewport;
SetViewports(1, &viewport);
+11 -1
View File
@@ -9,7 +9,7 @@ namespace GlitchyEngine.Renderer
Depth = 1,
Stencil = 2
}
public static class RenderCommand
{
private static RendererAPI _rendererAPI;
@@ -50,5 +50,15 @@ namespace GlitchyEngine.Renderer
{
_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 DrawIndexedInstanced(GeometryBinding geometry);
public extern void SetViewport(Viewport viewport);
}
}
+1 -1
View File
@@ -396,7 +396,7 @@ namespace Sandbox
_depthTarget.Bind();
_context.BindRenderTargets();
_context.SetViewport(_context.SwapChain.BackbufferViewport);
RenderCommand.SetViewport(_context.SwapChain.BackbufferViewport);
Renderer.BeginScene(_cameraController.Camera);
+1 -1
View File
@@ -274,7 +274,7 @@ namespace Sandbox
_context.SetRasterizerState(_rasterizerState);
_context.SetViewport(_context.SwapChain.BackbufferViewport);
RenderCommand.SetViewport(_context.SwapChain.BackbufferViewport);
/*
Renderer2D.Begin(.FrontToBack, .(80, 80));
+1 -1
View File
@@ -177,7 +177,7 @@ namespace Sandbox
private void RenderTexture(Texture2D viewedTexture)
{
Viewport vp = .(0, 0, _target.Width, _target.Height);
_context.SetViewport(vp);
RenderCommand.SetViewport(vp);
// TODO: don't clear pink!
_context.ClearRenderTarget(_target, .Pink);