diff options
author | 2013-01-18 16:42:51 -0800 | |
---|---|---|
committer | 2013-01-18 16:42:51 -0800 | |
commit | 2055abaa0a590c35e27e1ae2e7d7cfccdfb98b59 (patch) | |
tree | 1e302d08b6aa3714048a4d8435aa44f155c998c9 /libs/hwui/OpenGLRenderer.cpp | |
parent | f25febf01453733e8bdd1ac241ecd9d3bcbef475 (diff) |
Allow layers with a stencil buffer to be resized on the fly
Bug #7146141
This change moves the resizeLayer() from LayerCache (where it should
never have been anyway) to Layer. This makes a little more sense.
Change-Id: I8b2f9c19c558e738405a58b9e71ec5799fc6be88
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
-rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index be34b40ee42f..f55bc9d2a381 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -1248,11 +1248,12 @@ void OpenGLRenderer::attachStencilBufferToLayer(Layer* layer) { // TODO: See Layer::removeFbo(). The stencil renderbuffer should be cached GLuint buffer; glGenRenderbuffers(1, &buffer); - glBindRenderbuffer(GL_RENDERBUFFER, buffer); - glRenderbufferStorage(GL_RENDERBUFFER, GL_STENCIL_INDEX8, - layer->getWidth(), layer->getHeight()); - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, buffer); + layer->setStencilRenderBuffer(buffer); + layer->bindStencilRenderBuffer(); + layer->allocateStencilRenderBuffer(); + + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, buffer); } } |