12 #ifndef hifi_DeferredFramebuffer_h
13 #define hifi_DeferredFramebuffer_h
15 #include "gpu/Resource.h"
16 #include "gpu/Framebuffer.h"
20 class DeferredFramebuffer {
22 DeferredFramebuffer();
24 gpu::FramebufferPointer getDeferredFramebuffer();
25 gpu::FramebufferPointer getDeferredFramebufferDepthColor();
27 gpu::TexturePointer getDeferredColorTexture();
28 gpu::TexturePointer getDeferredNormalTexture();
29 gpu::TexturePointer getDeferredSpecularTexture();
31 gpu::FramebufferPointer getLightingFramebuffer();
32 gpu::TexturePointer getLightingTexture();
35 void updatePrimaryDepth(
const gpu::TexturePointer& depthBuffer);
36 gpu::TexturePointer getPrimaryDepthTexture();
37 const glm::ivec2& getFrameSize()
const {
return _frameSize; }
42 gpu::TexturePointer _primaryDepthTexture;
44 gpu::FramebufferPointer _deferredFramebuffer;
45 gpu::FramebufferPointer _deferredFramebufferDepthColor;
47 gpu::TexturePointer _deferredColorTexture;
48 gpu::TexturePointer _deferredNormalTexture;
49 gpu::TexturePointer _deferredSpecularTexture;
51 gpu::TexturePointer _lightingTexture;
52 gpu::FramebufferPointer _lightingFramebuffer;
54 glm::ivec2 _frameSize;
57 using DeferredFramebufferPointer = std::shared_ptr<DeferredFramebuffer>;