From 4debaee7d44df65d3776167c5ac1b9c6eaf0325f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Tue, 21 Sep 2021 13:15:43 +0200 Subject: [PATCH] SetViewport now part of RenderCommand --- BeefSpace.toml | 2 +- GlitchyEditor/src/EditorLayer.bf | 4 ++-- .../src/Platform/DX11/Renderer/Dx11RendererAPI.bf | 5 +++++ GlitchyEngine/src/Renderer/GraphicsContext.bf | 3 +-- GlitchyEngine/src/Renderer/RenderCommand.bf | 12 +++++++++++- GlitchyEngine/src/Renderer/RendererAPI.bf | 2 ++ Sandbox/src/SandboxApp.bf | 2 +- Sandbox/src/SandboxApp2D.bf | 2 +- Sandbox/src/TextureViewer.bf | 2 +- 9 files changed, 25 insertions(+), 9 deletions(-) diff --git a/BeefSpace.toml b/BeefSpace.toml index d296e81..bc1fc4a 100644 --- a/BeefSpace.toml +++ b/BeefSpace.toml @@ -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" diff --git a/GlitchyEditor/src/EditorLayer.bf b/GlitchyEditor/src/EditorLayer.bf index 63cc603..a72aa50 100644 --- a/GlitchyEditor/src/EditorLayer.bf +++ b/GlitchyEditor/src/EditorLayer.bf @@ -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) diff --git a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11RendererAPI.bf b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11RendererAPI.bf index 3b192f4..ec8bcde 100644 --- a/GlitchyEngine/src/Platform/DX11/Renderer/Dx11RendererAPI.bf +++ b/GlitchyEngine/src/Platform/DX11/Renderer/Dx11RendererAPI.bf @@ -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); + } } } diff --git a/GlitchyEngine/src/Renderer/GraphicsContext.bf b/GlitchyEngine/src/Renderer/GraphicsContext.bf index 13014cb..bc8492d 100644 --- a/GlitchyEngine/src/Renderer/GraphicsContext.bf +++ b/GlitchyEngine/src/Renderer/GraphicsContext.bf @@ -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); diff --git a/GlitchyEngine/src/Renderer/RenderCommand.bf b/GlitchyEngine/src/Renderer/RenderCommand.bf index c81b071..af13b7c 100644 --- a/GlitchyEngine/src/Renderer/RenderCommand.bf +++ b/GlitchyEngine/src/Renderer/RenderCommand.bf @@ -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)); + } } } diff --git a/GlitchyEngine/src/Renderer/RendererAPI.bf b/GlitchyEngine/src/Renderer/RendererAPI.bf index 54b3830..f39831b 100644 --- a/GlitchyEngine/src/Renderer/RendererAPI.bf +++ b/GlitchyEngine/src/Renderer/RendererAPI.bf @@ -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); } } diff --git a/Sandbox/src/SandboxApp.bf b/Sandbox/src/SandboxApp.bf index eb36a42..e11d7c0 100644 --- a/Sandbox/src/SandboxApp.bf +++ b/Sandbox/src/SandboxApp.bf @@ -396,7 +396,7 @@ namespace Sandbox _depthTarget.Bind(); _context.BindRenderTargets(); - _context.SetViewport(_context.SwapChain.BackbufferViewport); + RenderCommand.SetViewport(_context.SwapChain.BackbufferViewport); Renderer.BeginScene(_cameraController.Camera); diff --git a/Sandbox/src/SandboxApp2D.bf b/Sandbox/src/SandboxApp2D.bf index ac80c09..970c657 100644 --- a/Sandbox/src/SandboxApp2D.bf +++ b/Sandbox/src/SandboxApp2D.bf @@ -274,7 +274,7 @@ namespace Sandbox _context.SetRasterizerState(_rasterizerState); - _context.SetViewport(_context.SwapChain.BackbufferViewport); + RenderCommand.SetViewport(_context.SwapChain.BackbufferViewport); /* Renderer2D.Begin(.FrontToBack, .(80, 80)); diff --git a/Sandbox/src/TextureViewer.bf b/Sandbox/src/TextureViewer.bf index 39ed1fe..dcbd383 100644 --- a/Sandbox/src/TextureViewer.bf +++ b/Sandbox/src/TextureViewer.bf @@ -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);