History

Render the rear view mirror in a separate target and then display it during overlay pass

Sam Gateau committed 11 years ago

Commit a5618741 parent f86c06410 files · +146 −27Browse files

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

Unified · Split

libraries/render-utils/src/FramebufferCache.cpp+8−1
@@ -39,6 +39,7 @@ void FramebufferCache::setFrameBufferSize(QSize frameBufferSize) { · 38 unmodified lines
39 _primaryColorTexture.reset();39 _primaryColorTexture.reset();
40 _primaryNormalTexture.reset();40 _primaryNormalTexture.reset();
41 _primarySpecularTexture.reset();41 _primarySpecularTexture.reset();
42 _selfieFramebuffer.reset();
42 _cachedFramebuffers.clear();43 _cachedFramebuffers.clear();
43 }44 }
44}45}
@@ -112,7 +113,6 @@ gpu::FramebufferPointer FramebufferCache::getFramebuffer() { · 67 unmodified lines
112 return result;113 return result;
113}114}
114 115
115
116void FramebufferCache::releaseFramebuffer(const gpu::FramebufferPointer& framebuffer) {116void FramebufferCache::releaseFramebuffer(const gpu::FramebufferPointer& framebuffer) {
117 if (QSize(framebuffer->getSize().x, framebuffer->getSize().y) == _frameBufferSize) {117 if (QSize(framebuffer->getSize().x, framebuffer->getSize().y) == _frameBufferSize) {
118 _cachedFramebuffers.push_back(framebuffer);118 _cachedFramebuffers.push_back(framebuffer);
@@ -126,3 +126,10 @@ gpu::FramebufferPointer FramebufferCache::getShadowFramebuffer() { · 7 unmodified lines
126 }126 }
127 return _shadowFramebuffer;127 return _shadowFramebuffer;
128}128}
129
130gpu::FramebufferPointer FramebufferCache::getSelfieFramebuffer() {
131 if (!_selfieFramebuffer) {
132 _selfieFramebuffer = gpu::FramebufferPointer(gpu::Framebuffer::create(gpu::Element::COLOR_RGBA_32, _frameBufferSize.width(), _frameBufferSize.height()));
133 }
134 return _selfieFramebuffer;
135}