| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #pragma once
- #include "DX12Buffer.h"
- #include "GraphicsApi.h"
- //! DirectX 12 Types
- struct ID3D12Debug;
- struct ID3D12Device5;
- struct ID3D12InfoQueue;
- struct ID3D12CommandQueue;
- struct IDXGISwapChain4;
- struct ID3D12DescriptorHeap;
- struct ID3D12Resource;
- struct ID3D12CommandAllocator;
- struct ID3D12Fence;
- struct D3D12_VIEWPORT;
- struct D3D12_VERTEX_BUFFER_VIEW;
- struct D3D12_INDEX_BUFFER_VIEW;
- struct ID3D12RootSignature;
- struct ID3D12PipelineState;
- struct ID3D12GraphicsCommandList4;
- namespace Framework
- {
- class DX12Buffer;
- class DX12DirectCommandQueue;
- class DX12CopyCommandQueue;
- class DX12ComputeCommandQueue;
- class DX12PixelShader;
- class DX12VertexShader;
- class DX12VertexBuffer;
- class DX12IndexBuffer;
- class DX12BLASModel;
- class TextureList;
- class TextureModel;
- class DirectX12 : public GraphicsApi
- {
- private:
- ID3D12Debug* debug;
- ID3D12Device5* device;
- ID3D12InfoQueue* infoQueue;
- DX12DirectCommandQueue* directCommandQueue;
- DX12CopyCommandQueue* copyCommandQueue;
- DX12ComputeCommandQueue* computeCommandQueue;
- IDXGISwapChain4* swapChain;
- ID3D12DescriptorHeap* rtvHeap;
- ID3D12DescriptorHeap* dsvHeap;
- ID3D12DescriptorHeap* shaderBufferHeap;
- ID3D12Resource* depthBuffer;
- ID3D12Resource* backBuffer[2];
- int backBufferIndex;
- int tearing;
- D3D12_VIEWPORT* viewPort;
- tagRECT* allowedRenderArea;
- D3D12_VERTEX_BUFFER_VIEW* vertexBufferView;
- D3D12_INDEX_BUFFER_VIEW* indexBufferView;
- ID3D12RootSignature* signature;
- ID3D12PipelineState* pipeline;
- Mat4<float> matrixBuffer[MAX_KNOCHEN_ANZ];
- Mat4<float> viewAndProj[2];
- Vec3<float> kamPos;
- TextureModel* texturModel;
- Texture* uiTexture;
- TextureList* texturRegister;
- DX12VertexShader* vertexShader;
- DX12PixelShader* pixelShader;
- DX12BLASModel** blasModels;
- DX12Buffer* blasScratchBuffer;
- DX12Buffer* blasResultBuffer;
- int lastModelId;
- DLLEXPORT void updateBottomLevelAccelerationStructure();
- public:
- DLLEXPORT DirectX12();
- DLLEXPORT ~DirectX12();
- DLLEXPORT void initialize(NativeWindow* fenster,
- Vec2<int> backBufferSize,
- bool fullScreen) override;
- DLLEXPORT void beginFrame(
- bool fill2D, bool fill3D, int fillColor) override;
- DLLEXPORT void renderKamera(Cam3D* zKamera) override;
- DLLEXPORT virtual void renderKamera(
- Cam3D* zKamera, Texture* zTarget) override;
- //! TODO: DLLEXPORT void renderKamera( Cam3D* zKamera, Texture* zTarget
- //! ) override;
- DLLEXPORT void presentFrame() override;
- DLLEXPORT Texture* createOrGetTexture(
- const char* name, Image* b) override;
- DLLEXPORT Image* zUIRenderImage() const override;
- DLLEXPORT virtual DXBuffer* createStructuredBuffer(int eSize) override;
- DLLEXPORT static bool isAvailable();
- };
- } // namespace Framework
|