History

BRinging the intermediate render textures in the pipeline as varyings and not throug the singletonn anymore

samcake committed 10 years ago

Commit ba759071 parent 0e99a4a23 files · +242 −117Browse files

Showing the changes to libraries/render-utils/src/FramebufferCache.cpp (1 of 23 files). Show all

Unified · Split

libraries/render-utils/src/FramebufferCache.cpp+18−18
@@ -33,7 +33,7 @@ void FramebufferCache::setFrameBufferSize(QSize frameBufferSize) { · 32 unmodified lines
33 //If the size changed, we need to delete our FBOs33 //If the size changed, we need to delete our FBOs
34 if (_frameBufferSize != frameBufferSize) {34 if (_frameBufferSize != frameBufferSize) {
35 _frameBufferSize = frameBufferSize;35 _frameBufferSize = frameBufferSize;
36 _primaryFramebuffer.reset();36 /* _primaryFramebuffer.reset();
37 _primaryDepthTexture.reset();37 _primaryDepthTexture.reset();
38 _primaryColorTexture.reset();38 _primaryColorTexture.reset();
39 _deferredFramebuffer.reset();39 _deferredFramebuffer.reset();
@@ -41,11 +41,11 @@ void FramebufferCache::setFrameBufferSize(QSize frameBufferSize) { · 1 unmodified line
41 _deferredColorTexture.reset();41 _deferredColorTexture.reset();
42 _deferredNormalTexture.reset();42 _deferredNormalTexture.reset();
43 _deferredSpecularTexture.reset();43 _deferredSpecularTexture.reset();
44 _selfieFramebuffer.reset();44 */ _selfieFramebuffer.reset();
45 _cachedFramebuffers.clear();45 _cachedFramebuffers.clear();
46 _lightingTexture.reset();46 /* _lightingTexture.reset();
47 _lightingFramebuffer.reset();47 _lightingFramebuffer.reset();
48 _depthPyramidFramebuffer.reset();48 */ _depthPyramidFramebuffer.reset();
49 _depthPyramidTexture.reset();49 _depthPyramidTexture.reset();
50 _curvatureFramebuffer.reset();50 _curvatureFramebuffer.reset();
51 _curvatureTexture.reset();51 _curvatureTexture.reset();
@@ -57,17 +57,17 @@ void FramebufferCache::setFrameBufferSize(QSize frameBufferSize) { · 5 unmodified lines
57}57}
58 58
59void FramebufferCache::createPrimaryFramebuffer() {59void FramebufferCache::createPrimaryFramebuffer() {
60 _primaryFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());60 /* _primaryFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());
61 _deferredFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());61 _deferredFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());
62 _deferredFramebufferDepthColor = gpu::FramebufferPointer(gpu::Framebuffer::create());62 _deferredFramebufferDepthColor = gpu::FramebufferPointer(gpu::Framebuffer::create());
63 63 */
64 auto colorFormat = gpu::Element::COLOR_SRGBA_32;64 auto colorFormat = gpu::Element::COLOR_SRGBA_32;
65 auto linearFormat = gpu::Element::COLOR_RGBA_32;65 auto linearFormat = gpu::Element::COLOR_RGBA_32;
66 auto width = _frameBufferSize.width();66 auto width = _frameBufferSize.width();
67 auto height = _frameBufferSize.height();67 auto height = _frameBufferSize.height();
68 68
69 auto defaultSampler = gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_POINT);69 auto defaultSampler = gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_POINT);
70 _primaryColorTexture = gpu::TexturePointer(gpu::Texture::create2D(colorFormat, width, height, defaultSampler));70 /* _primaryColorTexture = gpu::TexturePointer(gpu::Texture::create2D(colorFormat, width, height, defaultSampler));
71 71
72 _primaryFramebuffer->setRenderBuffer(0, _primaryColorTexture);72 _primaryFramebuffer->setRenderBuffer(0, _primaryColorTexture);
73 73
@@ -81,10 +81,10 @@ void FramebufferCache::createPrimaryFramebuffer() { · 7 unmodified lines
81 _deferredFramebuffer->setRenderBuffer(2, _deferredSpecularTexture);81 _deferredFramebuffer->setRenderBuffer(2, _deferredSpecularTexture);
82 82
83 _deferredFramebufferDepthColor->setRenderBuffer(0, _deferredColorTexture);83 _deferredFramebufferDepthColor->setRenderBuffer(0, _deferredColorTexture);
84 84 */
85 // auto depthFormat = gpu::Element(gpu::SCALAR, gpu::FLOAT, gpu::DEPTH);85 // auto depthFormat = gpu::Element(gpu::SCALAR, gpu::FLOAT, gpu::DEPTH);
86 auto depthFormat = gpu::Element(gpu::SCALAR, gpu::UINT32, gpu::DEPTH_STENCIL); // Depth24_Stencil8 texel format86 auto depthFormat = gpu::Element(gpu::SCALAR, gpu::UINT32, gpu::DEPTH_STENCIL); // Depth24_Stencil8 texel format
87 _primaryDepthTexture = gpu::TexturePointer(gpu::Texture::create2D(depthFormat, width, height, defaultSampler));87/* _primaryDepthTexture = gpu::TexturePointer(gpu::Texture::create2D(depthFormat, width, height, defaultSampler));
88 88
89 _primaryFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);89 _primaryFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);
90 90
@@ -92,31 +92,31 @@ void FramebufferCache::createPrimaryFramebuffer() { · 1 unmodified line
92 92
93 _deferredFramebufferDepthColor->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);93 _deferredFramebufferDepthColor->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);
94 94
95 95*/
96 _selfieFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());96 _selfieFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());
97 auto tex = gpu::TexturePointer(gpu::Texture::create2D(colorFormat, width * 0.5, height * 0.5, defaultSampler));97 auto tex = gpu::TexturePointer(gpu::Texture::create2D(colorFormat, width * 0.5, height * 0.5, defaultSampler));
98 _selfieFramebuffer->setRenderBuffer(0, tex);98 _selfieFramebuffer->setRenderBuffer(0, tex);
99 99
100 auto smoothSampler = gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_MIP_LINEAR);100 auto smoothSampler = gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_MIP_LINEAR);
101 101
102 _lightingTexture = gpu::TexturePointer(gpu::Texture::create2D(gpu::Element(gpu::SCALAR, gpu::FLOAT, gpu::R11G11B10), width, height, defaultSampler));102 /* _lightingTexture = gpu::TexturePointer(gpu::Texture::create2D(gpu::Element(gpu::SCALAR, gpu::FLOAT, gpu::R11G11B10), width, height, defaultSampler));
103 _lightingFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());103 _lightingFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());
104 _lightingFramebuffer->setRenderBuffer(0, _lightingTexture);104 _lightingFramebuffer->setRenderBuffer(0, _lightingTexture);
105 _lightingFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);105 _lightingFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);
106 106
107 _deferredFramebuffer->setRenderBuffer(3, _lightingTexture);107 _deferredFramebuffer->setRenderBuffer(3, _lightingTexture);
108 108 */
109 // For AO:109 // For AO:
110 auto pointMipSampler = gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_MIP_POINT);110 auto pointMipSampler = gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_MIP_POINT);
111 _depthPyramidTexture = gpu::TexturePointer(gpu::Texture::create2D(gpu::Element(gpu::SCALAR, gpu::FLOAT, gpu::RGB), width, height, gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_LINEAR_MIP_POINT)));111 _depthPyramidTexture = gpu::TexturePointer(gpu::Texture::create2D(gpu::Element(gpu::SCALAR, gpu::FLOAT, gpu::RGB), width, height, gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_LINEAR_MIP_POINT)));
112 _depthPyramidFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());112 _depthPyramidFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());
113 _depthPyramidFramebuffer->setRenderBuffer(0, _depthPyramidTexture);113 _depthPyramidFramebuffer->setRenderBuffer(0, _depthPyramidTexture);
114 _depthPyramidFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);114 // _depthPyramidFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);
115 115
116 _curvatureTexture = gpu::TexturePointer(gpu::Texture::create2D(gpu::Element::COLOR_RGBA_32, width, height, gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_LINEAR_MIP_POINT)));116 _curvatureTexture = gpu::TexturePointer(gpu::Texture::create2D(gpu::Element::COLOR_RGBA_32, width, height, gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_LINEAR_MIP_POINT)));
117 _curvatureFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());117 _curvatureFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());
118 _curvatureFramebuffer->setRenderBuffer(0, _curvatureTexture);118 _curvatureFramebuffer->setRenderBuffer(0, _curvatureTexture);
119 _curvatureFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);119 // _curvatureFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);
120 120
121 resizeAmbientOcclusionBuffers();121 resizeAmbientOcclusionBuffers();
122}122}
@@ -138,14 +138,14 @@ void FramebufferCache::resizeAmbientOcclusionBuffers() { · 15 unmodified lines
138 _occlusionTexture = gpu::TexturePointer(gpu::Texture::create2D(colorFormat, width, height, defaultSampler));138 _occlusionTexture = gpu::TexturePointer(gpu::Texture::create2D(colorFormat, width, height, defaultSampler));
139 _occlusionFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());139 _occlusionFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());
140 _occlusionFramebuffer->setRenderBuffer(0, _occlusionTexture);140 _occlusionFramebuffer->setRenderBuffer(0, _occlusionTexture);
141 _occlusionFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);141 // _occlusionFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);
142 142
143 _occlusionBlurredTexture = gpu::TexturePointer(gpu::Texture::create2D(colorFormat, width, height, defaultSampler));143 _occlusionBlurredTexture = gpu::TexturePointer(gpu::Texture::create2D(colorFormat, width, height, defaultSampler));
144 _occlusionBlurredFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());144 _occlusionBlurredFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());
145 _occlusionBlurredFramebuffer->setRenderBuffer(0, _occlusionBlurredTexture);145 _occlusionBlurredFramebuffer->setRenderBuffer(0, _occlusionBlurredTexture);
146 _occlusionBlurredFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);146 // _occlusionBlurredFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);
147}147}
148 148/*
149gpu::FramebufferPointer FramebufferCache::getPrimaryFramebuffer() {149gpu::FramebufferPointer FramebufferCache::getPrimaryFramebuffer() {
150 if (!_primaryFramebuffer) {150 if (!_primaryFramebuffer) {
151 createPrimaryFramebuffer();151 createPrimaryFramebuffer();
@@ -214,7 +214,7 @@ gpu::TexturePointer FramebufferCache::getLightingTexture() { · 62 unmodified lines
214 createPrimaryFramebuffer();214 createPrimaryFramebuffer();
215 }215 }
216 return _lightingTexture;216 return _lightingTexture;
217}217}*/
218 218
219gpu::FramebufferPointer FramebufferCache::getFramebuffer() {219gpu::FramebufferPointer FramebufferCache::getFramebuffer() {
220 if (_cachedFramebuffers.isEmpty()) {220 if (_cachedFramebuffers.isEmpty()) {