diff options
author | RĂ¼diger Timm <rt@openoffice.org> | 2005-05-20 06:43:20 +0000 |
---|---|---|
committer | RĂ¼diger Timm <rt@openoffice.org> | 2005-05-20 06:43:20 +0000 |
commit | 2acc6a977bf505ace3268799996b0461c79e0893 (patch) | |
tree | 6b72c9f5110efd669d228a0b00b68534200b8eec /cppcanvas/source/mtfrenderer/transparencygroupaction.cxx | |
parent | 3e65dc4010944452cdf55d4d9930febb7a77592c (diff) |
INTEGRATION: CWS presfixes07 (1.5.6); FILE MERGED
2005/05/12 17:27:00 thb 1.5.6.1: #i49106# Now adapting the clip position, to account for output position shift; Catching the case now that mxBufferBitmap is not set, but just by coincidence the matrices are the same; Added some optional debug code.
Diffstat (limited to 'cppcanvas/source/mtfrenderer/transparencygroupaction.cxx')
-rw-r--r-- | cppcanvas/source/mtfrenderer/transparencygroupaction.cxx | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/cppcanvas/source/mtfrenderer/transparencygroupaction.cxx b/cppcanvas/source/mtfrenderer/transparencygroupaction.cxx index 48b3c3d78421..526829f4a692 100644 --- a/cppcanvas/source/mtfrenderer/transparencygroupaction.cxx +++ b/cppcanvas/source/mtfrenderer/transparencygroupaction.cxx @@ -2,9 +2,9 @@ * * $RCSfile: transparencygroupaction.cxx,v $ * - * $Revision: 1.5 $ + * $Revision: 1.6 $ * - * last change: $Author: obo $ $Date: 2005-04-18 10:01:14 $ + * last change: $Author: rt $ $Date: 2005-05-20 07:43:20 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -271,6 +271,9 @@ namespace cppcanvas tools::initRenderState(maState,rState); implSetupTransform( maState, rDstPoint ); + // correct clip (which is relative to original transform) + tools::modifyClip( maState, rState, rCanvas, rDstPoint, NULL ); + maLastSubset.mnSubsetBegin = 0; maLastSubset.mnSubsetEnd = -1; } @@ -295,6 +298,9 @@ namespace cppcanvas tools::initRenderState(maState,rState); implSetupTransform( maState, rDstPoint ); + // correct clip (which is relative to original transform) + tools::modifyClip( maState, rState, rCanvas, rDstPoint, NULL ); + maLastSubset.mnSubsetBegin = 0; maLastSubset.mnSubsetEnd = -1; } @@ -327,9 +333,11 @@ namespace cppcanvas aTotalTransform.set( 0, 2, 0.0 ); aTotalTransform.set( 1, 2, 0.0 ); - // as soon as the total transformation changes, we've got - // to re-render the bitmap - if( aTotalTransform != maLastTransformation || + // if there's no buffer bitmap, or as soon as the + // total transformation changes, we've got to + // re-render the bitmap + if( !mxBufferBitmap.is() || + aTotalTransform != maLastTransformation || rSubset.mnSubsetBegin != maLastSubset.mnSubsetBegin || rSubset.mnSubsetEnd != maLastSubset.mnSubsetEnd ) { @@ -510,6 +518,20 @@ namespace cppcanvas rendering::RenderState aLocalState( maState ); ::canvas::tools::setRenderStateTransform(aLocalState, aTransform); +#ifdef SPECIAL_DEBUG + aLocalState.Clip.clear(); + aLocalState.DeviceColor = + ::vcl::unotools::colorToDoubleSequence( mpCanvas->getUNOCanvas()->getDevice(), + ::Color( 0x80FF0000 ) ); + + if( maState.Clip.is() ) + mpCanvas->getUNOCanvas()->fillPolyPolygon( maState.Clip, + mpCanvas->getViewState(), + aLocalState ); + + aLocalState.DeviceColor = maState.DeviceColor; +#endif + if( ::rtl::math::approxEqual(mnAlpha, 1.0) ) { // no further alpha changes necessary -> draw directly |