Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
BloomPass.hpp
1#pragma once
2
3#include <Common/Rendering/RenderGraphBuilder.hpp>
4#include <EngineCore/Assets/AssetReference.hpp>
5#include <EngineCore/Assets/PipelineSet/ComputePipelineAsset.hpp>
6
7namespace Grindstone::Renderer {
8 class BloomPass {
9 public:
10 bool Initialize();
12 uint32_t imageIndex,
13 Grindstone::Math::Uint2 size,
16 );
17
18 static const size_t BLOOM_MIPS = 4u;
19 static const size_t BLOOM_STAGE_COUNT = BLOOM_MIPS * 2u;
20
21 struct ImageSet {
22 std::array<Grindstone::GraphicsAPI::DescriptorSet*, BLOOM_STAGE_COUNT> descriptorSets{};
23 std::array<Grindstone::GraphicsAPI::Buffer*, BLOOM_STAGE_COUNT> bloomStageBuffers{};
24 Grindstone::GraphicsAPI::Buffer* bloomDataBuffer{};
25 Grindstone::Math::Uint2 size;
26 };
27
28 private:
29 void CreateDescriptorSets();
30 void UpdateBloomUBO();
31 void CreateBloomResources();
32 void UpdateBloomDescriptorSet();
33 void CreateUniformBuffers();
35 Grindstone::GraphicsAPI::DescriptorSetLayout* descriptorSetLayout = nullptr;
36 Grindstone::GraphicsAPI::Sampler* screenSampler = nullptr;
37
38 std::array<ImageSet, 3> imageSets;
39 };
40}
Definition Buffer.hpp:49
Definition DescriptorSetLayout.hpp:14
Definition Sampler.hpp:49
Definition BloomPass.hpp:8
Definition RenderGraphBuilder.hpp:12
Definition AttachmentInfo.hpp:15
Definition AssetReference.hpp:45
Definition RenderGraphResourceRef.hpp:51