officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu | 4 vcl/inc/image.h | 4 vcl/inc/opengl/salbmp.hxx | 2 vcl/opengl/program.cxx | 1 vcl/opengl/salbmp.cxx | 7 + vcl/opengl/scale.cxx | 52 +++++++++-- vcl/source/gdi/impimage.cxx | 19 ++-- vcl/source/outdev/bitmap.cxx | 4 8 files changed, 71 insertions(+), 22 deletions(-)
New commits: commit d97cc94a02c00b912bbcb430cde55ce0cfb0292c Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Mon Aug 3 10:13:38 2015 +0900 Apply MVP matrix when drawing texture using OpenGLProgram Change-Id: I1dc34eee645b77537517e147b86599cfe74f09a9 diff --git a/vcl/opengl/program.cxx b/vcl/opengl/program.cxx index 157243b..3bfa6c2 100644 --- a/vcl/opengl/program.cxx +++ b/vcl/opengl/program.cxx @@ -278,6 +278,7 @@ bool OpenGLProgram::DrawTexture( OpenGLTexture& rTexture ) rTexture.GetWholeCoord( aTexCoord ); SetVertices( aPosition ); SetTextureCoord( aTexCoord ); + ApplyMatrix(fWidth, fHeight); glDrawArrays( GL_TRIANGLE_FAN, 0, 4 ); CHECK_GL_ERROR(); commit f73e1f50240208257964e28e0e65a56e323d86da Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Fri Jul 31 16:46:47 2015 +0900 opengl: support reading 8bit texture (fixes icon corruption) Change-Id: Iba3fd58374a550f3411b02f029f12f4509fb6048 diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx index 405428e..6b6f7bc 100644 --- a/vcl/opengl/salbmp.cxx +++ b/vcl/opengl/salbmp.cxx @@ -368,7 +368,7 @@ GLuint OpenGLSalBitmap::CreateTexture() else { // convert to 32 bits RGBA using palette - pData = new sal_uInt8[ mnBufHeight * (mnBufWidth << 2) ]; + pData = new sal_uInt8[mnBufHeight * mnBufWidth * 4]; bAllocated = true; nFormat = GL_RGBA; nType = GL_UNSIGNED_BYTE; @@ -424,13 +424,16 @@ bool OpenGLSalBitmap::ReadTexture() if( pData == NULL ) return false; - if( mnBits == 16 || mnBits == 24 || mnBits == 32 ) + if (mnBits == 8 || mnBits == 16 || mnBits == 24 || mnBits == 32) { // no conversion needed for truecolor pData = maUserBuffer.get(); switch( mnBits ) { + case 8: nFormat = GL_LUMINANCE; + nType = GL_UNSIGNED_BYTE; + break; case 16: nFormat = GL_RGB; nType = GL_UNSIGNED_SHORT_5_6_5; break; commit f82d57830918dc1023c9b7e30c75b9da2608b35c Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Fri Jul 31 16:52:06 2015 +0900 enable "Table Design" for sidebar in Draw too.. Change-Id: I66da1e93a65fc592c0827774da2388f9a82531e4 diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu index 3485154..56a7ec3 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu @@ -728,7 +728,7 @@ </prop> <prop oor:name="ContextList"> <value oor:separator=";"> - Impress, Table, visible ; + DrawImpress, Table, visible ; </value> </prop> <prop oor:name="ImplementationURL" oor:type="xs:string"> commit 6d9ddfb9c7a946e9b9cc58ae2cebcf3a21a5bf22 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Fri Jul 31 16:31:29 2015 +0900 opengl: when scaling, create a new texture with equal settings Change-Id: Id0258fe0db89aa06b91233ae2052f018d606cc74 diff --git a/vcl/inc/opengl/salbmp.hxx b/vcl/inc/opengl/salbmp.hxx index daefbe2..8baee94 100644 --- a/vcl/inc/opengl/salbmp.hxx +++ b/vcl/inc/opengl/salbmp.hxx @@ -102,6 +102,8 @@ private: bool ImplScaleConvolution(const double& rScaleX, const double& rScaleY, const vcl::Kernel& rKernel); bool ImplScaleArea( double rScaleX, double rScaleY ); + bool getFormatAndType(GLenum& nFormat, GLenum& nType); + public: bool ImplScale( const double& rScaleX, const double& rScaleY, BmpScaleFlag nScaleFlag ); diff --git a/vcl/opengl/scale.cxx b/vcl/opengl/scale.cxx index 22db644..0b2d5cf 100644 --- a/vcl/opengl/scale.cxx +++ b/vcl/opengl/scale.cxx @@ -51,6 +51,31 @@ public: void GetSize( Size& rSize ) const SAL_OVERRIDE; }; +bool OpenGLSalBitmap::getFormatAndType(GLenum& nFormat, GLenum& nType) +{ + switch(mnBits) + { + case 8: + nFormat = GL_LUMINANCE; + nType = GL_UNSIGNED_BYTE; + break; + case 16: + nFormat = GL_RGB; + nType = GL_UNSIGNED_SHORT_5_6_5; + break; + case 24: + nFormat = GL_RGB; + nType = GL_UNSIGNED_BYTE; + break; + case 32: + default: + nFormat = GL_RGBA; + nType = GL_UNSIGNED_BYTE; + break; + } + return true; +} + bool OpenGLSalBitmap::ImplScaleFilter( const double& rScaleX, const double& rScaleY, @@ -67,7 +92,11 @@ bool OpenGLSalBitmap::ImplScaleFilter( if( !pProgram ) return false; - OpenGLTexture aNewTex = OpenGLTexture( nNewWidth, nNewHeight ); + GLenum nFormat; + GLenum nType; + getFormatAndType(nFormat, nType); + + OpenGLTexture aNewTex = OpenGLTexture(nNewWidth, nNewHeight, nFormat, nType, nullptr); pFramebuffer = mpContext->AcquireFramebuffer( aNewTex ); pProgram->SetTexture( "sampler", maTexture ); @@ -146,10 +175,15 @@ bool OpenGLSalBitmap::ImplScaleConvolution( if( pProgram == 0 ) return false; + GLenum nFormat; + GLenum nType; + getFormatAndType(nFormat, nType); + // horizontal scaling in scratch texture if( mnWidth != nNewWidth ) { - OpenGLTexture aScratchTex = OpenGLTexture( nNewWidth, mnHeight ); + OpenGLTexture aScratchTex = OpenGLTexture(nNewWidth, mnHeight, nFormat, nType, nullptr); + pFramebuffer = mpContext->AcquireFramebuffer( aScratchTex ); for( sal_uInt32 i = 0; i < 16; i++ ) @@ -171,7 +205,8 @@ bool OpenGLSalBitmap::ImplScaleConvolution( // vertical scaling in final texture if( mnHeight != nNewHeight ) { - OpenGLTexture aScratchTex = OpenGLTexture( nNewWidth, nNewHeight ); + OpenGLTexture aScratchTex = OpenGLTexture(nNewWidth, nNewHeight, nFormat, nType, nullptr); + pFramebuffer = mpContext->AcquireFramebuffer( aScratchTex ); for( sal_uInt32 i = 0; i < 16; i++ ) @@ -231,7 +266,12 @@ bool OpenGLSalBitmap::ImplScaleArea( double rScaleX, double rScaleY ) if( pProgram == 0 ) return false; - OpenGLTexture aScratchTex = OpenGLTexture( nNewWidth, nNewHeight ); + GLenum nFormat; + GLenum nType; + getFormatAndType(nFormat, nType); + + OpenGLTexture aScratchTex = OpenGLTexture(nNewWidth, nNewHeight, nFormat, nType, nullptr); + OpenGLFramebuffer* pFramebuffer = mpContext->AcquireFramebuffer( aScratchTex ); // NOTE: This setup is also done in OpenGLSalGraphicsImpl::DrawTransformedTexture(). @@ -333,7 +373,9 @@ void ScaleOp::GetSize( Size& rSize ) const bool OpenGLSalBitmap::Scale( const double& rScaleX, const double& rScaleY, BmpScaleFlag nScaleFlag ) { - SAL_INFO( "vcl.opengl", "::Scale " << static_cast<int>(nScaleFlag) ); + SAL_INFO("vcl.opengl", "::Scale " << int(nScaleFlag) + << " from " << mnWidth << "x" << mnHeight + << " to " << (mnWidth * rScaleX) << "x" << (mnHeight * rScaleY) ); if( nScaleFlag == BmpScaleFlag::Fast || nScaleFlag == BmpScaleFlag::BiLinear || commit 21f128623292b3d90f3b736f3c5c268a677e18ff Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Fri Jul 31 16:23:35 2015 +0900 ImplImageBmp::Draw - nPos parameter is always 0 Change-Id: Icbf228809e17e4114049e563468dececba04edde diff --git a/vcl/inc/image.h b/vcl/inc/image.h index 3aa9424..bc14262 100644 --- a/vcl/inc/image.h +++ b/vcl/inc/image.h @@ -35,7 +35,7 @@ public: void Create( const BitmapEx& rBmpEx, long nItemWidth, long nItemHeight,sal_uInt16 nInitSize ); void ColorTransform(); - void Draw( sal_uInt16 nPos, OutputDevice* pDev, const Point& rPos, DrawImageFlags nStyle, const Size* pSize = NULL ); + void Draw( OutputDevice* pDev, const Point& rPos, DrawImageFlags nStyle, const Size* pSize = NULL ); private: @@ -47,7 +47,7 @@ private: sal_uInt16 mnSize; void ImplUpdateDisplayBmp( OutputDevice* pOutDev ); - void ImplUpdateDisabledBmpEx( int nPos ); + void ImplUpdateDisabledBmpEx(); private: ImplImageBmp( const ImplImageBmp& ) SAL_DELETED_FUNCTION; diff --git a/vcl/source/gdi/impimage.cxx b/vcl/source/gdi/impimage.cxx index 87b9bce..ef4410d 100644 --- a/vcl/source/gdi/impimage.cxx +++ b/vcl/source/gdi/impimage.cxx @@ -169,20 +169,20 @@ void ImplImageBmp::Create( const BitmapEx& rBmpEx, long nItemWidth, long nItemHe mnSize ); } -void ImplImageBmp::Draw( sal_uInt16 nPos, OutputDevice* pOutDev, +void ImplImageBmp::Draw( OutputDevice* pOutDev, const Point& rPos, DrawImageFlags nStyle, const Size* pSize ) { if( pOutDev->IsDeviceOutputNecessary() ) { - const Point aSrcPos( nPos * maSize.Width(), 0 ); + const Point aSrcPos(0, 0); Size aOutSize; aOutSize = ( pSize ? *pSize : pOutDev->PixelToLogic( maSize ) ); if( nStyle & DrawImageFlags::Disable ) { - ImplUpdateDisabledBmpEx( nPos); + ImplUpdateDisabledBmpEx(); pOutDev->DrawBitmapEx( rPos, aOutSize, aSrcPos, maSize, maDisabledBmpEx ); } else @@ -193,7 +193,7 @@ void ImplImageBmp::Draw( sal_uInt16 nPos, OutputDevice* pOutDev, BitmapEx aTmpBmpEx; const Rectangle aCropRect( aSrcPos, maSize ); - if( mpInfoAry[ nPos ] & ( IMPSYSIMAGEITEM_MASK | IMPSYSIMAGEITEM_ALPHA ) ) + if( mpInfoAry[0] & ( IMPSYSIMAGEITEM_MASK | IMPSYSIMAGEITEM_ALPHA ) ) aTmpBmpEx = maBmpEx; else aTmpBmpEx = maBmpEx.GetBitmap(); @@ -347,7 +347,7 @@ pOutDev } } -void ImplImageBmp::ImplUpdateDisabledBmpEx( int nPos ) +void ImplImageBmp::ImplUpdateDisabledBmpEx() { const Size aTotalSize( maBmpEx.GetSizePixel() ); @@ -357,7 +357,6 @@ void ImplImageBmp::ImplUpdateDisabledBmpEx( int nPos ) AlphaMask aGreyAlphaMask( aTotalSize ); maDisabledBmpEx = BitmapEx( aGrey, aGreyAlphaMask ); - nPos = -1; } Bitmap aBmp( maBmpEx.GetBitmap() ); @@ -373,9 +372,11 @@ void ImplImageBmp::ImplUpdateDisabledBmpEx( int nPos ) { BitmapColor aGreyVal( 0 ); BitmapColor aGreyAlphaMaskVal( 0 ); - const Point aPos( ( nPos < 0 ) ? 0 : ( nPos * maSize.Width() ), 0 ); - const int nLeft = aPos.X(), nRight = nLeft + ( ( nPos < 0 ) ? aTotalSize.Width() : maSize.Width() ); - const int nTop = aPos.Y(), nBottom = nTop + maSize.Height(); + + const int nLeft = 0; + const int nRight = nLeft + maSize.Width(); + const int nTop = 0; + const int nBottom = nTop + maSize.Height(); for( int nY = nTop; nY < nBottom; ++nY ) { diff --git a/vcl/source/outdev/bitmap.cxx b/vcl/source/outdev/bitmap.cxx index bb72a37..aebc7df 100644 --- a/vcl/source/outdev/bitmap.cxx +++ b/vcl/source/outdev/bitmap.cxx @@ -1381,9 +1381,9 @@ void OutputDevice::DrawImage( const Point& rPos, const Size& rSize, } if ( bIsSizeValid ) - pData->mpImageBitmap->Draw( 0, this, rPos, nStyle, &rSize ); + pData->mpImageBitmap->Draw( this, rPos, nStyle, &rSize ); else - pData->mpImageBitmap->Draw( 0, this, rPos, nStyle ); + pData->mpImageBitmap->Draw( this, rPos, nStyle ); } break; commit 8a323729e5755a26fd1726b0ac3159050fce8fe6 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Tue Jul 28 18:03:50 2015 +0900 Change "Design" sidebar deck icon Change-Id: Ibb4a308cfae3598e4d4e9759806c48f6a581bc83 diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu index 01e184b..3485154 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu @@ -216,7 +216,7 @@ <value>DesignDeck</value> </prop> <prop oor:name="IconURL" oor:type="xs:string"> - <value>private:graphicrepository/sfx2/res/symphony/sidebar-property-large.png</value> + <value>private:graphicrepository/cmd/lc_designerdialog.png</value> </prop> <prop oor:name="ContextList"> <value oor:separator=";">
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits