vcl/opengl/gdiimpl.cxx | 20 ++++++++++++++++++++ vcl/source/app/svmain.cxx | 9 --------- vcl/win/source/gdi/winlayout.cxx | 4 +++- 3 files changed, 23 insertions(+), 10 deletions(-)
New commits: commit 8daa8ba3ae3503ce579179b7fbe3a7ef276af5ab Author: Jan Holesovsky <ke...@collabora.com> Date: Fri Mar 20 13:42:56 2015 +0100 opengl: More checking for GL errors. Change-Id: I3bd9b63f7dbfdc5b93202e57385f6136d667878b diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx index 5ed9db6..351fc1d 100644 --- a/vcl/opengl/gdiimpl.cxx +++ b/vcl/opengl/gdiimpl.cxx @@ -455,6 +455,8 @@ void OpenGLSalGraphicsImpl::DrawPoint( long nX, long nY ) mpProgram->SetVertices( pPoint ); glDrawArrays( GL_POINTS, 0, 1 ); + + CHECK_GL_ERROR(); } void OpenGLSalGraphicsImpl::DrawLine( double nX1, double nY1, double nX2, double nY2 ) @@ -468,6 +470,8 @@ void OpenGLSalGraphicsImpl::DrawLine( double nX1, double nY1, double nX2, double mpProgram->SetVertices( pPoints ); glDrawArrays( GL_LINES, 0, 2 ); + + CHECK_GL_ERROR(); } void OpenGLSalGraphicsImpl::DrawLineAA( double nX1, double nY1, double nX2, double nY2 ) @@ -493,6 +497,8 @@ void OpenGLSalGraphicsImpl::DrawLineAA( double nX1, double nY1, double nX2, doub return; } ImplDrawLineAA( nX1, nY1, nX2, nY2 ); + + CHECK_GL_ERROR(); } void OpenGLSalGraphicsImpl::ImplDrawLineAA( double nX1, double nY1, double nX2, double nY2, bool edge ) @@ -632,6 +638,8 @@ void OpenGLSalGraphicsImpl::ImplDrawLineAA( double nX1, double nY1, double nX2, mpProgram->SetTextureCoord( aTexCoord ); mpProgram->SetVertices( vertices ); glDrawArrays(GL_TRIANGLE_STRIP, 0, 8); + + CHECK_GL_ERROR(); } void OpenGLSalGraphicsImpl::DrawLines( sal_uInt32 nPoints, const SalPoint* pPtAry, bool bClose ) @@ -694,6 +702,8 @@ void OpenGLSalGraphicsImpl::DrawConvexPolygon( sal_uInt32 nPoints, const SalPoin UseSolid( lastSolidColor, lastSolidTransparency ); } } + + CHECK_GL_ERROR(); } void OpenGLSalGraphicsImpl::DrawConvexPolygon( const Polygon& rPolygon, bool blockAA ) @@ -734,6 +744,8 @@ void OpenGLSalGraphicsImpl::DrawConvexPolygon( const Polygon& rPolygon, bool blo UseSolid( lastSolidColor, lastSolidTransparency ); } } + + CHECK_GL_ERROR(); } void OpenGLSalGraphicsImpl::DrawTrapezoid( const basegfx::B2DTrapezoid& trapezoid, bool blockAA ) @@ -775,6 +787,8 @@ void OpenGLSalGraphicsImpl::DrawTrapezoid( const basegfx::B2DTrapezoid& trapezoi UseSolid( lastSolidColor, lastSolidTransparency ); } } + + CHECK_GL_ERROR(); } void OpenGLSalGraphicsImpl::DrawRect( long nX, long nY, long nWidth, long nHeight ) @@ -863,6 +877,8 @@ void OpenGLSalGraphicsImpl::DrawRegionBand( const RegionBand& rRegion ) mpProgram->SetVertices( &aVertices[0] ); glDrawArrays( GL_TRIANGLES, 0, aVertices.size() / 2 ); + + CHECK_GL_ERROR(); } void OpenGLSalGraphicsImpl::DrawTextureRect( OpenGLTexture& rTexture, const SalTwoRect& rPosAry, bool bInverted ) @@ -970,6 +986,8 @@ void OpenGLSalGraphicsImpl::DrawTransformedTexture( mpProgram->SetVertices( &aVertices[0] ); glDrawArrays( GL_TRIANGLE_FAN, 0, 4 ); mpProgram->Clean(); + + CHECK_GL_ERROR(); } void OpenGLSalGraphicsImpl::DrawAlphaTexture( OpenGLTexture& rTexture, const SalTwoRect& rPosAry, bool bInverted, bool bPremultiplied ) @@ -1800,6 +1818,8 @@ void OpenGLSalGraphicsImpl::endPaint() mpContext->AcquireDefaultFramebuffer(); glFlush(); } + + CHECK_GL_ERROR(); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 7af678178e92c6e7cb419891160263cb04edea28 Author: Jan Holesovsky <ke...@collabora.com> Date: Fri Mar 20 08:33:01 2015 +0100 opengl dr.memory: Avoid double delete. The context is deleted via OpenGLSalGraphicsImpl::~OpenGLSalGraphicsImpl later, doing it already here leads to a double delete and a crash. Change-Id: Icf1bed81501b5ac67ef60901eaa73e5ee5540a9f diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx index 1f597e5..fdf2b9f 100644 --- a/vcl/source/app/svmain.cxx +++ b/vcl/source/app/svmain.cxx @@ -442,15 +442,6 @@ void DeInitVCL() } if ( pSVData->mpDefaultWin ) { - OpenGLContext* pContext = pSVData->mpDefaultWin->GetGraphics()->GetOpenGLContext(); - if( pContext ) - { -#ifdef DBG_UTIL - pContext->DeRef(NULL); -#else - pContext->DeRef(); -#endif - } delete pSVData->mpDefaultWin; pSVData->mpDefaultWin = NULL; } commit ff51dcfcf2aeb1efd6dc94010ea646b13d697b1a Author: Jan Holesovsky <ke...@collabora.com> Date: Fri Mar 20 06:31:02 2015 +0100 opengl dr.memory: DC that contains selected object being deleted. Change-Id: Id9922606207c2c45ed982b6ee4b46388ea660ea5 diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx index 7114db2..3e7bb08 100644 --- a/vcl/win/source/gdi/winlayout.cxx +++ b/vcl/win/source/gdi/winlayout.cxx @@ -198,7 +198,7 @@ void WinLayout::DrawText(SalGraphics& rGraphics) const // setup the hidden DC with black color and white background, we will // use the result of the text drawing later as a mask only - SelectFont(aDC.getCompatibleHDC(), mhFont); + HFONT hOrigFont = SelectFont(aDC.getCompatibleHDC(), mhFont); SetTextColor(aDC.getCompatibleHDC(), RGB(0, 0, 0)); SetBkColor(aDC.getCompatibleHDC(), RGB(255, 255, 255)); @@ -223,6 +223,8 @@ void WinLayout::DrawText(SalGraphics& rGraphics) const pImpl->PostDraw(); } + + SelectFont(aDC.getCompatibleHDC(), hOrigFont); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits