36 void CommandBufferSubmitted(vk::Fence submitFence);
41 virtual void SetShaderPlatform(
const plGALShader* pShader)
override;
56 virtual plGALFenceHandle InsertFencePlatform()
override;
68 virtual void CopyBufferRegionPlatform(
const plGALBuffer* pDestination, plUInt32 uiDestOffset,
const plGALBuffer* pSource, plUInt32 uiSourceOffset, plUInt32 uiByteCount)
override;
79 virtual void ReadbackTexturePlatform(
const plGALTexture* pTexture)
override;
89 virtual void FlushPlatform()
override;
93 virtual void PushMarkerPlatform(
const char* szMarker)
override;
94 virtual void PopMarkerPlatform()
override;
95 virtual void InsertEventMarkerPlatform(
const char* szMarker)
override;
100 virtual void BeginComputePlatform()
override;
101 virtual void EndComputePlatform()
override;
103 virtual plResult DispatchPlatform(plUInt32 uiThreadGroupCountX, plUInt32 uiThreadGroupCountY, plUInt32 uiThreadGroupCountZ)
override;
104 virtual plResult DispatchIndirectPlatform(
const plGALBuffer* pIndirectArgumentBuffer, plUInt32 uiArgumentOffsetInBytes)
override;
109 virtual void EndRenderingPlatform()
override;
113 virtual void ClearPlatform(
const plColor& ClearColor, plUInt32 uiRenderTargetClearMask,
bool bClearDepth,
bool bClearStencil,
float fDepthClear, plUInt8 uiStencilClear)
override;
115 virtual plResult DrawPlatform(plUInt32 uiVertexCount, plUInt32 uiStartVertex)
override;
116 virtual plResult DrawIndexedPlatform(plUInt32 uiIndexCount, plUInt32 uiStartIndex)
override;
117 virtual plResult DrawIndexedInstancedPlatform(plUInt32 uiIndexCountPerInstance, plUInt32 uiInstanceCount, plUInt32 uiStartIndex)
override;
118 virtual plResult DrawIndexedInstancedIndirectPlatform(
const plGALBuffer* pIndirectArgumentBuffer, plUInt32 uiArgumentOffsetInBytes)
override;
119 virtual plResult DrawInstancedPlatform(plUInt32 uiVertexCountPerInstance, plUInt32 uiInstanceCount, plUInt32 uiStartVertex)
override;
120 virtual plResult DrawInstancedIndirectPlatform(
const plGALBuffer* pIndirectArgumentBuffer, plUInt32 uiArgumentOffsetInBytes)
override;
124 virtual void SetIndexBufferPlatform(
const plGALBuffer* pIndexBuffer)
override;
125 virtual void SetVertexBufferPlatform(plUInt32 uiSlot,
const plGALBuffer* pVertexBuffer)
override;
127 virtual void SetPrimitiveTopologyPlatform(plGALPrimitiveTopology::Enum Topology)
override;
129 virtual void SetBlendStatePlatform(
const plGALBlendState* pBlendState,
const plColor& BlendFactor, plUInt32 uiSampleMask)
override;
130 virtual void SetDepthStencilStatePlatform(
const plGALDepthStencilState* pDepthStencilState, plUInt8 uiStencilRefValue)
override;
133 virtual void SetViewportPlatform(
const plRectFloat& rect,
float fMinDepth,
float fMaxDepth)
override;
134 virtual void SetScissorRectPlatform(
const plRectU32& rect)
override;
151 plResult FlushDeferredStateChanges();
159 vk::Device m_vkDevice;
161 vk::CommandBuffer* m_pCommandBuffer =
nullptr;
165 bool m_bPipelineStateDirty =
true;
166 bool m_bViewportDirty =
true;
167 bool m_bIndexBufferDirty =
false;
168 bool m_bDescriptorsDirty =
false;
170 bool m_bRenderPassActive =
false;
171 bool m_bClearSubmitted =
false;
172 bool m_bInsideCompute =
false;
173 bool m_bPushConstantsDirty =
false;
179 vk::Framebuffer m_frameBuffer;
180 vk::RenderPassBeginInfo m_renderPass;
182 vk::ImageAspectFlags m_depthMask = {};
183 plUInt32 m_uiLayers = 0;
185 vk::Viewport m_viewport;
186 vk::Rect2D m_scissor;
187 bool m_bScissorEnabled =
false;
191 plUInt32 m_uiBoundRenderTargetCount;
194 vk::Buffer m_pBoundVertexBuffers[PL_GAL_MAX_VERTEX_BUFFER_COUNT];
195 vk::DeviceSize m_VertexBufferOffsets[PL_GAL_MAX_VERTEX_BUFFER_COUNT] = {};
Definition ResourceView.h:11
Definition ResourceViewVulkan.h:12
Definition UnorderedAccesView.h:11
Definition UnorderedAccessViewVulkan.h:11
Definition TextureVulkan.h:11
Definition RendererFoundationDLL.h:359