RavEngine
Loading...
Searching...
No Matches
RenderTargetCollection.hpp
1#pragma once
2#if !RVE_SERVER
3#include <RGL/Types.hpp>
4#include <RGL/TextureFormat.hpp>
5#include "mathtypes.hpp"
6#include "DepthPyramid.hpp"
7#include "Vector.hpp"
8#include "Layer.hpp"
9
10namespace RavEngine{
11 class RenderTexture;
12 struct PostProcessEffectStack;
13
15 glm::vec2 originFactor {0, 0};
16 glm::vec2 sizeFactor {1, 1};
17 };
18
20 RGLTexturePtr depthStencil, lightingTexture, lightingScratchTexture, mlabDepth, radianceTexture, viewSpaceNormalsTexture, ssaoOutputTexture1, ssaoOutputTexture2, ssgiOutputTexture;
21
22 std::array<RGLTexturePtr, 4> mlabAccum;
23 constexpr static std::array<RGL::TextureFormat, 4> formats = {RGL::TextureFormat::RGBA16_Sfloat, RGL::TextureFormat::RGBA8_Unorm, RGL::TextureFormat::RGBA8_Unorm, RGL::TextureFormat::RGBA8_Unorm};
24 constexpr static auto mlabDepthFormat = RGL::TextureFormat::RGBA16_Sfloat;
25 RGL::ITexture* finalFramebuffer = nullptr;
26 DepthPyramid depthPyramid;
27 };
28
30 RenderTargetCollection collection;
31 struct camData {
32 glm::mat4 viewProj;
33 glm::mat4 projOnly;
34 glm::mat4 viewOnly;
35 glm::vec3 camPos;
36 glm::vec2 zNearFar;
37 ViewportOverride viewportOverride;
38 renderlayer_t layers;
39 float fov;
40 uint32_t targetWidth, targetHeight;
41 const PostProcessEffectStack* postProcessingEffects = nullptr;
42 const void* tonemap = nullptr; // because we can't forward declare 'using's
43 IndirectLightingSettings indirectSettings;
44 };
45 Vector<camData> camDatas;
46 dim_t<int> pixelDimensions;
47 };
48}
49#endif
Definition Texture.hpp:168
Definition concurrentqueue.h:747
Definition Animation.hpp:6
Definition DepthPyramid.hpp:8
Definition PostProcess.hpp:13
Definition RenderTargetCollection.hpp:19
Definition RenderTargetCollection.hpp:31
Definition RenderTargetCollection.hpp:29
Definition RenderTargetCollection.hpp:14
Definition qualifier.hpp:36
Definition qualifier.hpp:35