summaryrefslogtreecommitdiff
path: root/cppcanvas/source/mtfrenderer/transparencygroupaction.cxx
diff options
context:
space:
mode:
authorRĂ¼diger Timm <rt@openoffice.org>2005-05-20 06:43:20 +0000
committerRĂ¼diger Timm <rt@openoffice.org>2005-05-20 06:43:20 +0000
commit2acc6a977bf505ace3268799996b0461c79e0893 (patch)
tree6b72c9f5110efd669d228a0b00b68534200b8eec /cppcanvas/source/mtfrenderer/transparencygroupaction.cxx
parent3e65dc4010944452cdf55d4d9930febb7a77592c (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.cxx32
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