41 lines
833 B
C
41 lines
833 B
C
|
#pragma once
|
||
|
|
||
|
#include <vulkan/vulkan.h>
|
||
|
|
||
|
class Renderer;
|
||
|
class World;
|
||
|
|
||
|
class ShadowPass {
|
||
|
public:
|
||
|
ShadowPass(Renderer& renderer);
|
||
|
~ShadowPass();
|
||
|
|
||
|
void render(VkCommandBuffer commandBuffer, World& world);
|
||
|
|
||
|
VkImageView getImageView() const {
|
||
|
return shadowImageView_;
|
||
|
}
|
||
|
|
||
|
VkSampler getSampler() const {
|
||
|
return shadowSampler_;
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
void createRenderPass();
|
||
|
void createFramebuffer();
|
||
|
void createPipeline();
|
||
|
|
||
|
VkRenderPass renderPass_ = nullptr;
|
||
|
|
||
|
VkImage shadowImage_ = nullptr;
|
||
|
VkDeviceMemory shadowMemory_ = nullptr;
|
||
|
VkImageView shadowImageView_ = nullptr;
|
||
|
VkFramebuffer shadowFramebuffer_ = nullptr;
|
||
|
VkSampler shadowSampler_ = nullptr;
|
||
|
|
||
|
VkPipeline pipeline_ = nullptr;
|
||
|
VkPipelineLayout pipelineLayout_ = nullptr;
|
||
|
|
||
|
Renderer& renderer_;
|
||
|
};
|