aboutsummaryrefslogtreecommitdiff
path: root/samples/dual_layer/D3D12/src/HBAOSampleD3D12.h
diff options
context:
space:
mode:
authorlbavoil <[email protected]>2018-03-15 11:08:34 +0100
committerlbavoil <[email protected]>2018-03-15 11:08:34 +0100
commit636807e68a85a978473764d171ed0c7cc36f9be6 (patch)
tree784a3d4fa8f48b4c085dd959678505b2af12f425 /samples/dual_layer/D3D12/src/HBAOSampleD3D12.h
parentRemove test folder (diff)
downloadhbaoplus-636807e68a85a978473764d171ed0c7cc36f9be6.tar.xz
hbaoplus-636807e68a85a978473764d171ed0c7cc36f9be6.zip
HBAO+ 4.0.0.23740451
Diffstat (limited to 'samples/dual_layer/D3D12/src/HBAOSampleD3D12.h')
-rw-r--r--samples/dual_layer/D3D12/src/HBAOSampleD3D12.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/samples/dual_layer/D3D12/src/HBAOSampleD3D12.h b/samples/dual_layer/D3D12/src/HBAOSampleD3D12.h
new file mode 100644
index 0000000..ad1a164
--- /dev/null
+++ b/samples/dual_layer/D3D12/src/HBAOSampleD3D12.h
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved.
+*
+* NVIDIA CORPORATION and its licensors retain all intellectual property
+* and proprietary rights in and to this software, related documentation
+* and any modifications thereto. Any use, reproduction, disclosure or
+* distribution of this software and related documentation without an express
+* license agreement from NVIDIA CORPORATION is strictly prohibited.
+*/
+
+#include <HBAOSample.h>
+#include "DeviceManager12.h"
+#include <D3D12.h>
+#include <wrl.h>
+#include "SceneRenderer.h"
+
+#include <GFSDK_SSAO.h>
+
+using namespace Microsoft::WRL;
+
+class HBAOSampleD3D12 : public HBAOSample, public IVisualController
+{
+public:
+ void Initialize() override;
+ void Run() override;
+
+ void Render(RenderTargetView RTV) override;
+ void BackBufferResized(uint32_t width, uint32_t height, uint32_t sampleCount) override;
+
+private:
+ bool InitializeHBAOPlus();
+ bool InitializeRenderTargets();
+ LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) override;
+
+ DeviceManager mDeviceManager;
+ ComPtr<ID3D12CommandAllocator> mCommandAllocator;
+ ComPtr<ID3D12GraphicsCommandList> mCommandList;
+ ComPtr<ID3D12Resource> mDepthStencil[2];
+ ComPtr<ID3D12Resource> mNormalsGBuffer;
+ D3D12_CPU_DESCRIPTOR_HANDLE mDepthStencilView[2];
+ D3D12_CPU_DESCRIPTOR_HANDLE mDepthSRV[2];
+ ComPtr<ID3D12DescriptorHeap> mDSVDescriptorHeap;
+ ID3D12Device* mDevice = nullptr;
+
+ ID3D12CommandQueue* mCommandQueue;
+ ComPtr<ID3D12Fence> mFence;
+ uint64_t mFenceValue = 0;
+
+ SceneRenderer mSceneRenderer;
+
+ ComPtr<ID3D12DescriptorHeap> mSSAODescriptorHeapCBVSRVUAV;
+ ComPtr<ID3D12DescriptorHeap> mSSAODescriptorHeapRTV;
+ GFSDK_SSAO_InputData_D3D12 mSSAOInputData;
+ GFSDK_SSAO_Context_D3D12* mSSAOContext;
+}; \ No newline at end of file