History

Adding acleaner way to do all the deferred frame transform manipulation

samcake committed 10 years ago

Commit 0ea1e7c1 parent a22de7615 files · +644 −2Browse files

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

Unified · Split

libraries/render-utils/src/FramebufferCache.cpp+22−0
@@ -111,6 +111,13 @@ void FramebufferCache::createPrimaryFramebuffer() { · 110 unmodified lines
111111 _depthPyramidFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);
112112
113113
114+
115+ _curvatureTexture = gpu::TexturePointer(gpu::Texture::create2D(gpu::Element::COLOR_RGBA_32, width, height, gpu::Sampler(gpu::Sampler::FILTER_MIN_MAG_LINEAR_MIP_POINT)));
116+ _curvatureFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create());
117+ _curvatureFramebuffer->setRenderBuffer(0, _curvatureTexture);
118+ _curvatureFramebuffer->setDepthStencilBuffer(_primaryDepthTexture, depthFormat);
119+
120+
114121 resizeAmbientOcclusionBuffers();
115122 }
116123
@@ -245,6 +252,21 @@ gpu::TexturePointer FramebufferCache::getDepthPyramidTexture() { · 128 unmodified lines
245252 return _depthPyramidTexture;
246253 }
247254
255+gpu::FramebufferPointer FramebufferCache::getCurvatureFramebuffer() {
256+ if (!_curvatureFramebuffer) {
257+ createPrimaryFramebuffer();
258+ }
259+ return _curvatureFramebuffer;
260+}
261+
262+gpu::TexturePointer FramebufferCache::getCurvatureTexture() {
263+ if (!_curvatureTexture) {
264+ createPrimaryFramebuffer();
265+ }
266+ return _curvatureTexture;
267+}
268+
269+
248270 void FramebufferCache::setAmbientOcclusionResolutionLevel(int level) {
249271 const int MAX_AO_RESOLUTION_LEVEL = 4;
250272 level = std::max(0, std::min(level, MAX_AO_RESOLUTION_LEVEL));