[Libreoffice-commits] core.git: drawinglayer/source include/vcl vcl/source
Chris Sherlock
chris.sherlock79 at gmail.com
Sat Nov 1 22:59:15 PDT 2014
drawinglayer/source/processor2d/vclpixelprocessor2d.cxx | 7 -
include/vcl/outdev.hxx | 4 -
vcl/source/outdev/polyline.cxx | 61 ++++++----------
3 files changed, 29 insertions(+), 43 deletions(-)
New commits:
commit 498a40f33908791c3b2409a1ccb4b3c81ea1e032
Author: Chris Sherlock <chris.sherlock79 at gmail.com>
Date: Sun Nov 2 13:10:13 2014 +1100
vcl: Refactor OutputDevice::TryDrawPolyLineDirect()
I've renamed TryDrawPolyLineDirect() to DrawPolyLineDirect() and also
renamed TryDrawPolyLineDirectNoAACheck() to drawPolyLineDirectNoAACheck().
However, at the same time I feel that there is no need to call on
drawPolyLineDirectNoAACheck in most instances, because DrawPolyLineDirect
does an AA check before it can continue anyway. There is one instance where
constantly checking the AA check is inefficient because it's in a loop, in
that case then we call directly on drawPolyLineDirectNoAACheck, but this is
the only case it is necessary.
Change-Id: Ie0320bfc45b5c0e1ac6ce35912da3e2897af9429
Reviewed-on: https://gerrit.libreoffice.org/12190
Reviewed-by: Chris Sherlock <chris.sherlock79 at gmail.com>
Tested-by: Chris Sherlock <chris.sherlock79 at gmail.com>
diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
index ddd6d33..d287739 100644
--- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
@@ -173,10 +173,7 @@ namespace drawinglayer
aLocalPolygon.transform(maCurrentTransformation);
// try drawing; if it did not work, use standard fallback
- if(mpOutputDevice->TryDrawPolyLineDirect(
- aLocalPolygon,
- 0.0,
- fTransparency))
+ if(mpOutputDevice->DrawPolyLineDirect( aLocalPolygon, 0.0, fTransparency))
{
return true;
}
@@ -258,7 +255,7 @@ namespace drawinglayer
{
bHasPoints = true;
- if(mpOutputDevice->TryDrawPolyLineDirect(
+ if(mpOutputDevice->DrawPolyLineDirect(
aSingle,
fLineWidth,
fTransparency,
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 161342f..f505f04 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -726,7 +726,7 @@ public:
void DrawPolyLine( const Polygon& rPoly,
const LineInfo& rLineInfo );
- bool TryDrawPolyLineDirect(
+ bool DrawPolyLineDirect(
const basegfx::B2DPolygon& rB2DPolygon,
double fLineWidth = 0.0,
double fTransparency = 0.0,
@@ -742,7 +742,7 @@ private:
// #i101491#
// Helper who tries to use SalGDI's DrawPolyLine direct and returns it's bool. Contains no AA check.
- SAL_DLLPRIVATE bool TryDrawPolyLineDirectNoAACheck(
+ SAL_DLLPRIVATE bool drawPolyLineDirectNoAACheck(
const basegfx::B2DPolygon& rB2DPolygon,
double fLineWidth = 0.0,
double fTransparency = 0.0,
diff --git a/vcl/source/outdev/polyline.cxx b/vcl/source/outdev/polyline.cxx
index 89e27c7..d896bd1 100644
--- a/vcl/source/outdev/polyline.cxx
+++ b/vcl/source/outdev/polyline.cxx
@@ -52,33 +52,25 @@ void OutputDevice::DrawPolyLine( const Polygon& rPoly )
if ( mbInitLineColor )
InitLineColor();
- const bool bTryAA( (mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) &&
- mpGraphics->supportsOperation(OutDevSupport_B2DDraw) &&
- ROP_OVERPAINT == GetRasterOp() &&
- IsLineColor());
-
// use b2dpolygon drawing if possible
- if(bTryAA)
+ if ( DrawPolyLineDirect( rPoly.getB2DPolygon() ) )
{
- if ( TryDrawPolyLineDirectNoAACheck( rPoly.getB2DPolygon() ) )
- {
- basegfx::B2DPolygon aB2DPolyLine(rPoly.getB2DPolygon());
- const ::basegfx::B2DHomMatrix aTransform = ImplGetDeviceTransformation();
- const ::basegfx::B2DVector aB2DLineWidth( 1.0, 1.0 );
+ basegfx::B2DPolygon aB2DPolyLine(rPoly.getB2DPolygon());
+ const ::basegfx::B2DHomMatrix aTransform = ImplGetDeviceTransformation();
+ const ::basegfx::B2DVector aB2DLineWidth( 1.0, 1.0 );
- // transform the polygon
- aB2DPolyLine.transform( aTransform );
+ // transform the polygon
+ aB2DPolyLine.transform( aTransform );
- if(mnAntialiasing & ANTIALIASING_PIXELSNAPHAIRLINE)
- {
- aB2DPolyLine = basegfx::tools::snapPointsOfHorizontalOrVerticalEdges(aB2DPolyLine);
- }
+ if(mnAntialiasing & ANTIALIASING_PIXELSNAPHAIRLINE)
+ {
+ aB2DPolyLine = basegfx::tools::snapPointsOfHorizontalOrVerticalEdges(aB2DPolyLine);
+ }
- if(mpGraphics->DrawPolyLine( aB2DPolyLine, 0.0, aB2DLineWidth,
- basegfx::B2DLINEJOIN_NONE, css::drawing::LineCap_BUTT, this))
- {
- return;
- }
+ if(mpGraphics->DrawPolyLine( aB2DPolyLine, 0.0, aB2DLineWidth,
+ basegfx::B2DLINEJOIN_NONE, css::drawing::LineCap_BUTT, this))
+ {
+ return;
}
}
@@ -162,17 +154,9 @@ void OutputDevice::DrawPolyLine( const basegfx::B2DPolygon& rB2DPolygon,
if( mbInitLineColor )
InitLineColor();
- const bool bTryAA((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) &&
- mpGraphics->supportsOperation(OutDevSupport_B2DDraw) &&
- ROP_OVERPAINT == GetRasterOp() &&
- IsLineColor());
-
// use b2dpolygon drawing if possible
- if(bTryAA)
- {
- if ( TryDrawPolyLineDirectNoAACheck(rB2DPolygon, fLineWidth, 0.0, eLineJoin, eLineCap) )
- return;
- }
+ if ( DrawPolyLineDirect(rB2DPolygon, fLineWidth, 0.0, eLineJoin, eLineCap) )
+ return;
// #i101491#
// no output yet; fallback to geometry decomposition and use filled polygon paint
@@ -208,13 +192,18 @@ void OutputDevice::DrawPolyLine( const basegfx::B2DPolygon& rB2DPolygon,
SetFillColor(aOldFillColor);
InitFillColor();
+ const bool bTryAA((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) &&
+ mpGraphics->supportsOperation(OutDevSupport_B2DDraw) &&
+ ROP_OVERPAINT == GetRasterOp() &&
+ IsLineColor());
+
if(bTryAA)
{
// when AA it is necessary to also paint the filled polygon's outline
// to avoid optical gaps
for(sal_uInt32 a(0); a < aAreaPolyPolygon.count(); a++)
{
- TryDrawPolyLineDirectNoAACheck(aAreaPolyPolygon.getB2DPolygon(a));
+ drawPolyLineDirectNoAACheck(aAreaPolyPolygon.getB2DPolygon(a));
}
}
}
@@ -278,7 +267,7 @@ void OutputDevice::drawPolyLine(const Polygon& rPoly, const LineInfo& rLineInfo)
mpAlphaVDev->DrawPolyLine( rPoly, rLineInfo );
}
-bool OutputDevice::TryDrawPolyLineDirectNoAACheck( const basegfx::B2DPolygon& rB2DPolygon,
+bool OutputDevice::drawPolyLineDirectNoAACheck( const basegfx::B2DPolygon& rB2DPolygon,
double fLineWidth,
double fTransparency,
basegfx::B2DLineJoin eLineJoin,
@@ -316,7 +305,7 @@ bool OutputDevice::TryDrawPolyLineDirectNoAACheck( const basegfx::B2DPolygon& rB
this);
}
-bool OutputDevice::TryDrawPolyLineDirect( const basegfx::B2DPolygon& rB2DPolygon,
+bool OutputDevice::DrawPolyLineDirect( const basegfx::B2DPolygon& rB2DPolygon,
double fLineWidth,
double fTransparency,
basegfx::B2DLineJoin eLineJoin,
@@ -346,7 +335,7 @@ bool OutputDevice::TryDrawPolyLineDirect( const basegfx::B2DPolygon& rB2DPolygon
if(bTryAA)
{
- if(TryDrawPolyLineDirectNoAACheck(rB2DPolygon, fLineWidth, fTransparency, eLineJoin, eLineCap))
+ if(drawPolyLineDirectNoAACheck(rB2DPolygon, fLineWidth, fTransparency, eLineJoin, eLineCap))
{
// worked, add metafile action (if recorded) and return true
if( mpMetaFile )
More information about the Libreoffice-commits
mailing list