#pragma once #include #include "rendercollection.h" class Renderer; class World; struct RenderTarget; class Camera; class WorldPass { public: WorldPass(Renderer& renderer); ~WorldPass(); void render(VkCommandBuffer commandBuffer, RenderCollection& collection, RenderTarget* target); VkRenderPass getRenderPass() const { return renderPass_; } private: void createRenderPass(); void createDescriptorSetLayout(); void createPipeline(); void createUniformBuffers(); void createDescriptorSet(); VkRenderPass renderPass_ = nullptr; VkDescriptorSetLayout setLayout_ = nullptr; VkPipelineLayout pipelineLayout_ = nullptr; VkPipeline pipeline_ = nullptr; VkDeviceMemory sceneMemory_ = nullptr; VkBuffer sceneBuffer_ = nullptr; VkDeviceMemory lightMemory_ = nullptr; VkBuffer lightBuffer_ = nullptr; VkDescriptorSet descriptorSet_ = nullptr; Renderer& renderer_; };