Related: #i124638# Corrected paints of Writer Frames...

with DrawingLayer FillAttributes for all systems and AA/nonAA

(cherry picked from commit fcc24448899577e220db70f265bad59f0ffa8428)

Change-Id: I1b3d66061132d1d276080f99e94c421b429de936
This commit is contained in:
Armin Le Grand 2014-06-03 16:43:56 +00:00 committed by Miklos Vajna
parent c7853b5b5c
commit c3f70303cf

View File

@ -1838,12 +1838,9 @@ bool DrawFillAttributes(
if(bUseNew && rFillAttributes.get() && rFillAttributes->isUsed())
{
//UUUU Need to substract a half logical pixel unit from TopLeft to get the correct
// layering for AAed paints
const basegfx::B2DVector aHalfSingleUnit(rOut.GetInverseViewTransformation() * basegfx::B2DVector(0.5, 0.5));
const basegfx::B2DRange aPaintRange(
rPaintRect.Left() - aHalfSingleUnit.getX(),
rPaintRect.Top() - aHalfSingleUnit.getY(),
basegfx::B2DRange aPaintRange(
rPaintRect.Left(),
rPaintRect.Top(),
rPaintRect.Right(),
rPaintRect.Bottom());
@ -1851,6 +1848,14 @@ bool DrawFillAttributes(
!basegfx::fTools::equalZero(aPaintRange.getWidth()) &&
!basegfx::fTools::equalZero(aPaintRange.getHeight()))
{
//UUUU need to expand for correct AAed and non-AAed visualization as primitive; move
// bounds to half-(logical)pixel bounds and add a width/height of one pixel that is missing
// from SwRect/Rectangle integer handling
const basegfx::B2DVector aSingleUnit(rOut.GetInverseViewTransformation() * basegfx::B2DVector(0.5, 0.5));
aPaintRange.expand(aPaintRange.getMinimum() - (aSingleUnit * 0.5));
aPaintRange.expand(aPaintRange.getMaximum() + (aSingleUnit * 1.5));
const basegfx::B2DRange aDefineRange(
rOriginalLayoutRect.Left(),
rOriginalLayoutRect.Top(),