diff options
author | Matúš Kukan <matus.kukan@collabora.com> | 2014-06-17 12:58:09 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2014-06-24 17:27:43 +0000 |
commit | 87a3fe36ecc3a036806f1ca660c68debc763937d (patch) | |
tree | 0ab1b9accb060a8de65646a09ed8816e8574c042 /vcl | |
parent | 2a8a97dbc56b9db3ef59c324ada05981d00a14b2 (diff) |
bnc#593614: Avoid rendering artefacts in presentation mode.
By not using XOR rendering, see also fdo#38844.
The first variant seems to work better.
Basically, this is just cherry-pick of
bb5c7d6a79309236d4f19bb2498f2e850f735a2f
Change-Id: I0fdccf60601a47c91f467f9d1321d1c25f1ef68c
Reviewed-on: https://gerrit.libreoffice.org/9824
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/gdi/outdev4.cxx | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/vcl/source/gdi/outdev4.cxx b/vcl/source/gdi/outdev4.cxx index 1be80e94b91b..e817e57d6632 100644 --- a/vcl/source/gdi/outdev4.cxx +++ b/vcl/source/gdi/outdev4.cxx @@ -740,29 +740,10 @@ void OutputDevice::DrawGradient( const PolyPolygon& rPolyPoly, mpMetaFile->AddAction( new MetaCommentAction( "XGRAD_SEQ_BEGIN" ) ); mpMetaFile->AddAction( new MetaGradientExAction( rPolyPoly, rGradient ) ); - if( OUTDEV_PRINTER == meOutDevType ) - { - Push( PUSH_CLIPREGION ); - IntersectClipRegion(Region(rPolyPoly)); - DrawGradient( aRect, rGradient ); - Pop(); - } - else - { - const sal_Bool bOldOutput = IsOutputEnabled(); - - EnableOutput( sal_False ); - Push( PUSH_RASTEROP ); - SetRasterOp( ROP_XOR ); - DrawGradient( aRect, rGradient ); - SetFillColor( COL_BLACK ); - SetRasterOp( ROP_0 ); - DrawPolyPolygon( rPolyPoly ); - SetRasterOp( ROP_XOR ); - DrawGradient( aRect, rGradient ); - Pop(); - EnableOutput( bOldOutput ); - } + Push( PUSH_CLIPREGION ); + IntersectClipRegion(Region(rPolyPoly)); + DrawGradient( aRect, rGradient ); + Pop(); mpMetaFile->AddAction( new MetaCommentAction( "XGRAD_SEQ_END" ) ); } |