vcl/opengl/gdiimpl.cxx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
New commits: commit 63291125f74d3a4a7c0e91e2a1d9ca3293e5bc73 Author: Michael Meeks <michael.me...@collabora.com> Date: Sat Dec 5 22:11:24 2015 +0000 We need a stencil buffer attached to the framebuffer to clip. Change-Id: I257346a198c4db9eb05c8c49c059c4b3aa96e197 diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx index 3266dea..311a121 100644 --- a/vcl/opengl/gdiimpl.cxx +++ b/vcl/opengl/gdiimpl.cxx @@ -277,6 +277,18 @@ void OpenGLSalGraphicsImpl::freeResources() void OpenGLSalGraphicsImpl::ImplSetClipBit( const vcl::Region& rClip, GLuint nMask ) { glEnable( GL_STENCIL_TEST ); + + GLuint nStencil = 0; + glGenRenderbuffers(1, &nStencil); + glBindRenderbuffer(GL_RENDERBUFFER, nStencil); + CHECK_GL_ERROR(); + glRenderbufferStorage(GL_RENDERBUFFER, GL_STENCIL_INDEX, + GetWidth(), GetHeight()); + CHECK_GL_ERROR(); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, + GL_RENDERBUFFER, nStencil); + CHECK_GL_ERROR(); + CHECK_GL_ERROR(); glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE ); CHECK_GL_ERROR(); @@ -311,7 +323,7 @@ void OpenGLSalGraphicsImpl::ImplInitClipRegion() if( maClipRegion != mpContext->maClipRegion ) { mpContext->maClipRegion = maClipRegion; - if( maClipRegion.IsRectangle() ) + if( mbUseScissor ) { Rectangle aRect( maClipRegion.GetBoundRect() ); glScissor( aRect.Left(), GetHeight() - aRect.Bottom() - 1, aRect.GetWidth() + 1, aRect.GetHeight() + 1 ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits