diff options
Diffstat (limited to 'canvas/source/vcl/canvashelper_texturefill.cxx')
-rw-r--r-- | canvas/source/vcl/canvashelper_texturefill.cxx | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/canvas/source/vcl/canvashelper_texturefill.cxx b/canvas/source/vcl/canvashelper_texturefill.cxx index 8deaaa8b59b0..1021d33de702 100644 --- a/canvas/source/vcl/canvashelper_texturefill.cxx +++ b/canvas/source/vcl/canvashelper_texturefill.cxx @@ -555,8 +555,6 @@ namespace vclcanvas const rendering::Texture& texture, int nTransparency ) { - (void)nTransparency; - // TODO(T2): It is maybe necessary to lock here, should // maGradientPoly someday cease to be const. But then, beware of // deadlocks, canvashelper calls this method with locked own @@ -606,18 +604,14 @@ namespace vclcanvas false ); rOutDev.Pop(); - if( p2ndOutDev ) + if( p2ndOutDev && nTransparency < 253 ) { - p2ndOutDev->Push( PUSH_CLIPREGION ); - p2ndOutDev->IntersectClipRegion( aPolygonDeviceRectOrig ); - doGradientFill( *p2ndOutDev, - rValues, - rColors, - aTotalTransform, - aPolygonDeviceRectOrig, - nStepCount, - false ); - p2ndOutDev->Pop(); + // HACK. Normally, CanvasHelper does not care about + // actually what mp2ndOutDev is... well, here we do & + // assume a 1bpp target - everything beyond 97% + // transparency is fully transparent + p2ndOutDev->SetFillColor( COL_BLACK ); + p2ndOutDev->DrawRect( aPolygonDeviceRectOrig ); } } else @@ -636,18 +630,14 @@ namespace vclcanvas false ); rOutDev.Pop(); - if( p2ndOutDev ) + if( p2ndOutDev && nTransparency < 253 ) { - p2ndOutDev->Push( PUSH_CLIPREGION ); - p2ndOutDev->SetClipRegion( aPolyClipRegion ); - doGradientFill( *p2ndOutDev, - rValues, - rColors, - aTotalTransform, - aPolygonDeviceRectOrig, - nStepCount, - false ); - p2ndOutDev->Pop(); + // HACK. Normally, CanvasHelper does not care about + // actually what mp2ndOutDev is... well, here we do & + // assume a 1bpp target - everything beyond 97% + // transparency is fully transparent + p2ndOutDev->SetFillColor( COL_BLACK ); + p2ndOutDev->DrawPolyPolygon( rPoly ); } } |