diff --git a/lib/graphics_engine/CMakeLists.txt b/lib/graphics_engine/CMakeLists.txt index 90fe04f69..390e4adfe 100644 --- a/lib/graphics_engine/CMakeLists.txt +++ b/lib/graphics_engine/CMakeLists.txt @@ -81,6 +81,7 @@ set(GE_SOURCES src/ge_vulkan_driver.cpp src/ge_vulkan_draw_call.cpp src/ge_vulkan_dynamic_buffer.cpp + src/ge_vulkan_dynamic_spm_buffer.cpp src/ge_vulkan_fbo_texture.cpp src/ge_vulkan_features.cpp src/ge_vulkan_mesh_cache.cpp diff --git a/lib/graphics_engine/include/ge_vulkan_dynamic_spm_buffer.hpp b/lib/graphics_engine/include/ge_vulkan_dynamic_spm_buffer.hpp new file mode 100644 index 000000000..e801fba07 --- /dev/null +++ b/lib/graphics_engine/include/ge_vulkan_dynamic_spm_buffer.hpp @@ -0,0 +1,25 @@ +#ifndef HEADER_GE_VULKAN_DYNAMIC_SPM_BUFFER_HPP +#define HEADER_GE_VULKAN_DYNAMIC_SPM_BUFFER_HPP + +#include "ge_spm_buffer.hpp" + +namespace GE +{ +class GEVulkanDynamicBuffer; + +class GEVulkanDynamicSPMBuffer : public GESPMBuffer +{ +private: + GEVulkanDynamicBuffer* m_vertex_buffer; + + GEVulkanDynamicBuffer* m_index_buffer; +public: + // ------------------------------------------------------------------------ + GEVulkanDynamicSPMBuffer(); + // ------------------------------------------------------------------------ + ~GEVulkanDynamicSPMBuffer(); +}; + +} // end namespace GE + +#endif diff --git a/lib/graphics_engine/src/ge_vulkan_dynamic_spm_buffer.cpp b/lib/graphics_engine/src/ge_vulkan_dynamic_spm_buffer.cpp new file mode 100644 index 000000000..b4e6aca05 --- /dev/null +++ b/lib/graphics_engine/src/ge_vulkan_dynamic_spm_buffer.cpp @@ -0,0 +1,27 @@ +#include "ge_vulkan_dynamic_spm_buffer.hpp" + +#include "ge_vulkan_driver.hpp" +#include "ge_vulkan_dynamic_buffer.hpp" + +namespace GE +{ + +// ---------------------------------------------------------------------------- +GEVulkanDynamicSPMBuffer::GEVulkanDynamicSPMBuffer() +{ + m_vertex_buffer = new GEVulkanDynamicBuffer( + VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, 100, + GEVulkanDriver::getMaxFrameInFlight() + 1, 0); + m_index_buffer = new GEVulkanDynamicBuffer( + VK_BUFFER_USAGE_INDEX_BUFFER_BIT, 100, + GEVulkanDriver::getMaxFrameInFlight() + 1, 0); +} // GEVulkanDynamicSPMBuffer + +// ---------------------------------------------------------------------------- +GEVulkanDynamicSPMBuffer::~GEVulkanDynamicSPMBuffer() +{ + delete m_vertex_buffer; + delete m_index_buffer; +} // ~GEVulkanDynamicSPMBuffer + +} // end namespace GE