52 lines
2.1 KiB
C++
52 lines
2.1 KiB
C++
#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
|