41 ID3D11Device* GetDXDevice()
const;
42 ID3D11Device3* GetDXDevice3()
const;
43 ID3D11DeviceContext* GetDXImmediateContext()
const;
44 IDXGIFactory1* GetDXGIFactory()
const;
52 void ReportLiveGpuObjects();
54 void FlushDeadObjects();
64 plResult InitPlatform(DWORD flags, IDXGIAdapter* pUsedAdapter);
67 virtual plResult InitPlatform()
override;
68 virtual plResult ShutdownPlatform()
override;
75 virtual void FlushPlatform()
override;
81 virtual void DestroyBlendStatePlatform(
plGALBlendState* pBlendState)
override;
90 virtual void DestroySamplerStatePlatform(
plGALSamplerState* pSamplerState)
override;
96 virtual void DestroyShaderPlatform(
plGALShader* pShader)
override;
99 virtual void DestroyBufferPlatform(
plGALBuffer* pBuffer)
override;
102 virtual void DestroyTexturePlatform(
plGALTexture* pTexture)
override;
105 virtual void DestroySharedTexturePlatform(
plGALTexture* pTexture)
override;
135 void PresentPlatform(
const plGALSwapChain* pSwapChain,
bool bVSync);
141 virtual plUInt64 GetCurrentFramePlatform()
const override;
142 virtual plUInt64 GetSafeFramePlatform()
const override;
144 virtual void FillCapabilitiesPlatform()
override;
146 virtual void WaitIdlePlatform()
override;
155 struct TempResourceType
166 ID3D11Resource* FindTempBuffer(plUInt32 uiSize);
167 ID3D11Resource* FindTempTexture(plUInt32 uiWidth, plUInt32 uiHeight, plUInt32 uiDepth, plGALResourceFormat::Enum format);
168 void FreeTempResources(plUInt64 uiFrame);
170 void FillFormatLookupTable();
173 static constexpr plUInt32 FRAMES = 4;
175 ID3D11Device* m_pDevice =
nullptr;
176 ID3D11Device3* m_pDevice3 =
nullptr;
177 ID3D11DeviceContext* m_pImmediateContext;
178 ID3D11Debug* m_pDebug =
nullptr;
179 IDXGIFactory1* m_pDXGIFactory =
nullptr;
180 IDXGIAdapter1* m_pDXGIAdapter =
nullptr;
181 IDXGIDevice1* m_pDXGIDevice =
nullptr;
188 plUInt32 m_uiFeatureLevel;
195 plGALFenceHandle m_hFence = {};
196 plUInt64 m_uiFrame = -1;
199 PerFrameData m_PerFrameData[FRAMES];
201 plUInt64 m_uiFrameCounter = 1;
202 plUInt64 m_uiSafeFrame = 0;
203 plUInt8 m_uiCurrentPerFrameData = m_uiFrameCounter % FRAMES;
205 struct UsedTempResource
207 PL_DECLARE_POD_TYPE();
209 ID3D11Resource* m_pResource;
217 struct GPUTimingScope* m_pFrameTimingScope =
nullptr;
218 struct GPUTimingScope* m_pPipelineTimingScope =
nullptr;
219 struct GPUTimingScope* m_pPassTimingScope =
nullptr;
Optional interface for plGALTexture if it was created via plGALDevice::CreateSharedTexture....
Definition Texture.h:33
Definition RendererFoundationDLL.h:411
Definition ResourceView.h:11
Definition UnorderedAccesView.h:11
Definition Descriptors.h:177
Definition Descriptors.h:201
Definition Descriptors.h:234