Added SetViewport to GraphicsContext, removed Dx11Cheater, cleanup

This commit is contained in:
Simon Lübeß
2020-11-25 21:23:05 +01:00
parent 684669321a
commit 0d4bab5dba
8 changed files with 38 additions and 59 deletions
@@ -1,17 +0,0 @@
using DirectX.D3D11;
using DirectX.DXGI;
namespace GlitchyEngine.Platform.DX11
{
public static class Dx11Cheater
{
public static ID3D11Device* Device;
public static ID3D11DeviceContext* ImmediateContext;
public static ID3D11DeviceContext* Context => ImmediateContext;
public static IDXGISwapChain* SwapChain;
public static ID3D11RenderTargetView* BackbufferTarget;
public static Viewport BackbufferViewport;
}
}
@@ -7,19 +7,13 @@ using DirectX.DXGI.DXGI1_2;
using GlitchyEngine.Renderer;
using GlitchyEngine.Math;
using GlitchyEngine.Platform.DX11;
using internal GlitchyEngine.Renderer;
//using internal GlitchyEngine.Platform.DX11.Renderer;
namespace GlitchyEngine.Renderer
//namespace GlitchyEngine.Platform.DX11.Renderer
{
/// DirectX 11 specific implementation of the GraphicsContext
extension GraphicsContext
//public class Dx11Context : GraphicsContext
{
//private Dx11SwapChain _swapChain;
private SwapChain _swapChain;
internal Windows.HWnd nativeWindowHandle;
@@ -40,7 +34,6 @@ namespace GlitchyEngine.Renderer
nativeWindowHandle = windowHandle;
_swapChain = new SwapChain(this);
//_swapChain = new Dx11SwapChain(this);
}
public ~this()
@@ -94,9 +87,6 @@ namespace GlitchyEngine.Renderer
}
}
#endif
Dx11Cheater.Device = nativeDevice;
Dx11Cheater.ImmediateContext = nativeContext;
Log.EngineLogger.Trace("D3D11 Device and Context created (Feature level: {})", deviceLevel);
}
@@ -110,7 +100,6 @@ namespace GlitchyEngine.Renderer
if(renderTarget == null)
{
_renderTargets[slot] = _swapChain.nativeBackBufferTarget;
//_immediateContext.OutputMerger.SetRenderTargets(1, &_swapChain._backBufferTarget, null);
}
else
{
@@ -161,5 +150,10 @@ namespace GlitchyEngine.Renderer
{
nativeContext.Rasterizer.SetState(_currentRasterizerState.nativeRasterizerState);
}
public override void SetViewports(uint32 viewportsCount, GlitchyEngine.Renderer.Viewport* viewports)
{
nativeContext.Rasterizer.SetViewports(viewportsCount, (.)viewports);
}
}
}
@@ -1,6 +1,5 @@
using DirectX.D3D11;
using DirectX.DXGI.DXGI1_2;
using GlitchyEngine.Platform.DX11;
using System.Diagnostics;
using internal GlitchyEngine.Renderer;
@@ -19,7 +18,6 @@ namespace GlitchyEngine.Renderer
internal IDXGISwapChain1* nativeSwapChain;
internal ID3D11RenderTargetView* nativeBackBufferTarget;
private DirectX.D3D11.Viewport _backBufferViewport;
public override uint32 Width
{
@@ -51,7 +49,6 @@ namespace GlitchyEngine.Renderer
public override GraphicsContext Context => _context;
//public this(Dx11Context context)
public this(GraphicsContext context)
{
_context = context;
@@ -129,8 +126,6 @@ namespace GlitchyEngine.Renderer
Debug.Assert(createResult.Succeeded, scope $"Failed to create swap chain. Message({(int32)createResult}):{createResult}");
factory.Release();
Dx11Cheater.SwapChain = nativeSwapChain;
}
nativeSwapChain.GetBuffer<ID3D11Texture2D>(0, let backBuffer);
@@ -138,11 +133,7 @@ namespace GlitchyEngine.Renderer
RenderTargetViewDescription rtvDesc = .(backBuffer, .Texture2D, backBufferViewFormat);
_context.nativeDevice.CreateRenderTargetView(backBuffer, &rtvDesc, &nativeBackBufferTarget);
Dx11Cheater.BackbufferTarget = nativeBackBufferTarget;
_backBufferViewport = DirectX.D3D11.Viewport(0, 0, _width, _height, 0.0f, 1.0f);
Dx11Cheater.BackbufferViewport = _backBufferViewport;
_backBufferViewport = GlitchyEngine.Renderer.Viewport(0, 0, _width, _height, 0.0f, 1.0f);
backBuffer.Release();
}
@@ -7,9 +7,7 @@ using DirectX.Windows.Kernel32;
using DirectX.Windows.WindowMessages;
using GlitchyEngine.Events;
using System.Diagnostics;
using GlitchyEngine.Platform.DX11;
using GlitchyEngine.Math;
//using GlitchyEngine.Platform.DX11.Renderer;
using GlitchyEngine.Renderer;
using static System.Windows;
@@ -198,7 +196,6 @@ namespace GlitchyEngine
_windowHandle = CreateWindowExW(.None, _windowClass.ClassName, desc.Title.ToScopedNativeWChar!(), .WS_OVERLAPPEDWINDOW | .WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT, desc.Width, desc.Height, 0, 0, (.)_instanceHandle, null);
//_graphicsContext = new Dx11Context(_windowHandle);
_graphicsContext = new GraphicsContext(_windowHandle);
_graphicsContext.Init();
@@ -208,8 +205,6 @@ namespace GlitchyEngine
LoadWindowRectangle();
Log.EngineLogger.Trace("Created window \"{}\" ({}, {})", Title, Width, Height);
//DirectX.Init(_windowHandle, (.)Width, (.)Height);
}
private bool _isResizingOrMoving;