12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #ifndef HEADER_GE_VULKAN_DYNAMIC_SPM_BUFFER_HPP
- #define HEADER_GE_VULKAN_DYNAMIC_SPM_BUFFER_HPP
- #include "ge_spm_buffer.hpp"
- namespace GE
- {
- class GEVulkanDriver;
- class GEVulkanDynamicBuffer;
- class GEVulkanDynamicSPMBuffer : public GESPMBuffer
- {
- private:
- GEVulkanDynamicBuffer* m_vertex_buffer;
- GEVulkanDynamicBuffer* m_index_buffer;
- GEVulkanDriver* m_vk;
- uint32_t* m_vertex_update_offsets;
- uint32_t* m_index_update_offsets;
- public:
- // ------------------------------------------------------------------------
- GEVulkanDynamicSPMBuffer();
- // ------------------------------------------------------------------------
- ~GEVulkanDynamicSPMBuffer();
- // ------------------------------------------------------------------------
- virtual irr::scene::E_HARDWARE_MAPPING getHardwareMappingHint_Vertex() const
- { return irr::scene::EHM_STREAM; }
- // ------------------------------------------------------------------------
- virtual irr::scene::E_HARDWARE_MAPPING getHardwareMappingHint_Index() const
- { return irr::scene::EHM_STREAM; }
- // ------------------------------------------------------------------------
- virtual void bindVertexIndexBuffer(VkCommandBuffer cmd) {}
- // ------------------------------------------------------------------------
- virtual void createVertexIndexBuffer() {}
- // ------------------------------------------------------------------------
- virtual void destroyVertexIndexBuffer() {}
- // ------------------------------------------------------------------------
- void updateVertexIndexBuffer(int buffer_index);
- // ------------------------------------------------------------------------
- void drawDynamicVertexIndexBuffer(VkCommandBuffer cmd, int buffer_index);
- // ------------------------------------------------------------------------
- void setDirtyOffset(irr::u32 offset,
- irr::scene::E_BUFFER_TYPE buffer = irr::scene::EBT_VERTEX_AND_INDEX);
- };
- } // end namespace GE
- #endif
|