13 #ifndef hifi_DeferredFramebuffer_h
14 #define hifi_DeferredFramebuffer_h
16 #include "gpu/Resource.h"
17 #include "gpu/Framebuffer.h"
20 class DeferredFramebuffer {
23 DeferredFramebuffer();
25 gpu::FramebufferPointer getDeferredFramebuffer();
26 gpu::FramebufferPointer getDeferredFramebufferDepthColor();
28 gpu::TexturePointer getDeferredColorTexture();
29 gpu::TexturePointer getDeferredNormalTexture();
30 gpu::TexturePointer getDeferredSpecularTexture();
31 gpu::TexturePointer getDeferredVelocityTexture();
33 gpu::FramebufferPointer getLightingFramebuffer();
34 gpu::FramebufferPointer getLightingWithVelocityFramebuffer();
35 gpu::TexturePointer getLightingTexture();
38 void updatePrimaryDepth(
const gpu::TexturePointer& depthBuffer);
39 gpu::TexturePointer getPrimaryDepthTexture();
40 const glm::ivec2& getFrameSize()
const {
return _frameSize; }
45 gpu::TexturePointer _primaryDepthTexture;
47 gpu::FramebufferPointer _deferredFramebuffer;
48 gpu::FramebufferPointer _deferredFramebufferDepthColor;
50 gpu::TexturePointer _deferredColorTexture;
51 gpu::TexturePointer _deferredNormalTexture;
52 gpu::TexturePointer _deferredSpecularTexture;
53 gpu::TexturePointer _deferredVelocityTexture;
55 gpu::TexturePointer _lightingTexture;
56 gpu::FramebufferPointer _lightingFramebuffer;
57 gpu::FramebufferPointer _lightingWithVelocityFramebuffer;
59 glm::ivec2 _frameSize;
62 using DeferredFramebufferPointer = std::shared_ptr<DeferredFramebuffer>;