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