Files
stk-code/lib/graphics_engine/include/ge_vulkan_dynamic_spm_buffer.hpp
T

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