RavEngine
Loading...
Searching...
No Matches
BuiltinPostProcess.hpp
1#pragma once
2#if !RVE_SERVER
3#include "PostProcess.hpp"
4
5namespace RavEngine{
6
9 void Preamble(dim_t<int> targetSize) final;
10private:
11 struct UpsampleConstants {
12 float radius = 0.005f;
13 };
14 struct ApplyConstants {
15 float bloomPower = 0.04;
16 };
17 struct BloomDownsamplePass : public PostProcessPass{
18 BloomDownsamplePass();
19 };
20
21 struct BloomUpsamplePass : public PostProcessPass{
22
23 BloomUpsamplePass();
24 };
25
26 struct BloomApplyPass : public PostProcessPass {
27 BloomApplyPass();
28 };
29
30 struct BloomDownsamplePassInstance : public PostProcessPassInstance{
31 dim_t<int> outputSize;
32 BloomDownsamplePassInstance(Ref<BloomDownsamplePass> effect, bool isFirst);
33 dim_t<int> GetUserDefinedOutputSize() const final {
34 return outputSize;
35 }
36 };
37
38 struct BloomUpsamplePassInstance : public PostProcessPassInstance{
39 dim_t<int> outputSize;
40 BloomUpsamplePassInstance(Ref<BloomUpsamplePass> effect, bool isLast);
41 UpsampleConstants pushConstants;
42 const RGL::untyped_span GetPushConstantData() const final{
43 return pushConstants;
44 }
45 dim_t<int> GetUserDefinedOutputSize() const final {
46 return outputSize;
47 }
48 };
49
50 struct BloomApplyPassInstance : public PostProcessPassInstance {
51 ApplyConstants pushConstants;
52 const RGL::untyped_span GetPushConstantData() const final {
53 return pushConstants;
54 }
55 BloomApplyPassInstance(Ref<BloomApplyPass> effect);
56 };
57
58 RGLSamplerPtr sampler;
59 Ref<Texture> tempTexture;
60 Ref<BloomDownsamplePass> downsamplePass;
61 Ref<BloomUpsamplePass> upsamplePass;
62 Ref<BloomApplyPass> applyPass;
63};
64
66 FXAAEffect();
67private:
68 struct FXAAPass : public PostProcessPass {
69 FXAAPass();
70 };
71 struct FXAAPassInstance : public PostProcessPassInstance {
72 FXAAPassInstance(Ref<FXAAPass> pass) : PostProcessPassInstance(pass, {}) {}
73 };
74};
75
76}
77#endif
Definition Span.hpp:11
Definition concurrentqueue.h:747
Definition Animation.hpp:6
Definition BuiltinPostProcess.hpp:7
Definition BuiltinPostProcess.hpp:65
Definition PostProcess.hpp:6
Definition ScreenEffect.hpp:63
Definition ScreenEffect.hpp:92