From 2f99eee7c5f0088e3c39c21a5d2efd7335953ae8 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Mon, 19 Sep 2022 16:35:45 -0400 Subject: even more refactoring --- engine/xe_render_system.hpp | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'engine/xe_render_system.hpp') diff --git a/engine/xe_render_system.hpp b/engine/xe_render_system.hpp index 42079df..608e03a 100644 --- a/engine/xe_render_system.hpp +++ b/engine/xe_render_system.hpp @@ -5,12 +5,13 @@ #include "xe_pipeline.hpp" #include "xe_frame_info.hpp" #include "xe_game_object.hpp" +#include "xe_descriptors.hpp" +#include "xe_renderer.hpp" #include namespace xe { -template class XeRenderSystem { public: @@ -19,23 +20,33 @@ class XeRenderSystem { XeRenderSystem( XeDevice &device, XeRenderer &renderer, - std::unique_ptr &xeDescriptorPool, - std::unique_ptr &xeDescriptorSetLayout, + XeDescriptorPool &xeDescriptorPool, + XeDescriptorSetLayout &xeDescriptorSetLayout, std::string vert, std::string frag, - uint32_t pushCunstantDataSize, - uint32_t uniformBufferDataSize); + uint32_t pushCunstantDataSize, + uint32_t uniformBufferDataSize + ); ~XeRenderSystem(); XeRenderSystem(const XeRenderSystem &) = delete; XeRenderSystem operator=(const XeRenderSystem &) = delete; - void renderGameObjects(XeFrameInfo &frameInfo, std::vector &gameObjects, XeRenderSystem::XeData pushConstantData); + void setUnifroms(XeFrameInfo & frameInfo); + + void renderGameObjects( + int frameIndex, + VkCommandBuffer commandBuffer, + std::vector &gameObjects, + void *pushConstantData, + uint32_t pushConstantSize, + void* uniformBufferData, + uint32_t uniformBufferSize); private: - void createUniformBuffers(std::unique_ptr &xeDescriptorPool, std::unique_ptr &xeDescriptorSetLayout, uint32_t uniformBufferDataSize); - void createPipelineLayout(std::unique_ptr &xeDescriptorSetLayout, uint32_t pushCunstantDataSize, uint32_t uniformBufferDataSize); + void createUniformBuffers(XeDescriptorPool &xeDescriptorPool, XeDescriptorSetLayout &xeDescriptorSetLayout, uint32_t uniformBufferDataSize); + void createPipelineLayout(XeDescriptorSetLayout &xeDescriptorSetLayout, uint32_t pushCunstantDataSize, uint32_t uniformBufferDataSize); void createPipeline(VkRenderPass renderPass, std::string vert, std::string frag); XeDevice& xeDevice; -- cgit v1.2.3-freya