Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
graph/include/worldpass.h

46 lines
980 B
C++

#pragma once
#include <vulkan/vulkan.h>
#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_;
};