summaryrefslogtreecommitdiff
path: root/vcl/headless/svpgdi.cxx
AgeCommit message (Collapse)Author
2021-04-08Revert "Revert "Compute (un-)premultiply_table at compile time""Mike Kaganski
This reverts commit c2374d702b0e4b7a1828964faa528344a5a9ee17, since VS 2019 is now the baseline. Change-Id: I3790ba3046910de2fffd7584a589c70cee56de0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113569 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-04-06vcl: use PixelFormat enum in SalBitmap interface and backendsTomaž Vajngerl
This changes all backends to use PixelFormat as the input to the SalBitmap::Create method (and all the backends). This is the first part as we need to make sure to also limit the use of GetBitCount method and also use of it in SalGraphics. Change-Id: I8d2b6adfcb8fe3dd78010538411f338c9a1c3996 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113603 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-02-24add additional 0-1 alpha argument to DrawTransformedBitmap()Luboš Luňák
This allows the VCL backends the apply the extra alpha transformation as it sees fit, rather than it being done manually elsewhere (and even if the backend doesn't implement it, at least do it in one place in the function). With the document from tdf#136223, going from slide 2 to slide 3, this easily saves 10-30% of CPU cycles. As an additional bonus, using AlphaMask::BlendWith() rather than AlphaMask::Replace() makes edges of shapes noticeably more smooth. Change-Id: I036dc9b887d6def0c7cdad3982becabdc7cd5206 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111247 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-02-24simply use drawTransformedBitmap()Luboš Luňák
At least with Skia this is faster than GraphicObject trying to handle it manually, even in raster mode. Change-Id: If77d108751f5621878d4ea87a996c2ea0253d111 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111246 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-02-23do not SAL_WARN about headless not supporting blendBitmap()Luboš Luňák
It's been this way for more than 5 years, so I guess nobody cares. Change-Id: I339f97232c477655572a416e516f0f3e50bd3666 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111398 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-01-16make the Color constructors explicitly specify transparencyNoel
to reduce the churn, we leave the existing constructor in place, and add a clang plugin to detect when the value passed to the existing constructor may contain transparency/alpha data. i.e. we leave expressions like Color(0xffffff) alone, but warn about any non-constant expression, and any expression like Color(0xff000000) Change-Id: Id2ce58e08882d9b7bd0b9f88eca97359dcdbcc8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109362 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-12transparency->alpha in tools::ColorNoel
this just changes the Get/Set methods, the constructor and internal representation of Color is not changed. Change-Id: Idb6e07cc08bbaa5bd55b6bd4b585e648aef507b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109074 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-12-24custom literal for Degree10Noel Grandin
Change-Id: Id13869138a622e62d9ffebf2c89bddccda6aff01 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108238 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-14remove SalPointNoel Grandin
<caolan> that "SalPoint" doesn't really seem to to have a purpose except to highlight that "Point" is assumed to use LONG under windows and can be passed unchanged to those windows drawing apis <caolan> so I guess remove SalPoint entirely, use Point instead, and convert to "POINT" under windows ? Change-Id: Ic15a7f4516e2075a228fa65cac4e8494d5b3abaa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105634 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-10-28convert some more long -> tools::LongNoel
grepping for stuff in template params this time Change-Id: Ia37bfd85480b3a72c3c465489581d56ad8dde851 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104855 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-21new tools::Degree10 strong typedefNoel Grandin
partly to flush some use of "long" out the codebase, but also to make it obvious which units are being used for angle values. Change-Id: I1dc22494ca42c4677a63f685d5903f2b89886dc2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104548 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-19use tools::Long in vclNoel
Change-Id: Ice1055021e8568634e9a66ba89d3bb4ef4e731df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104522 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-18loplugin:indentationStephan Bergmann
Change-Id: I360bf008579629aabd45d4ed827c9c8c9117c332 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104470 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-09-28rename for disentangling AA and B2D use in VCL drawingLuboš Luňák
This renames AntialiasingFlags::EnableB2dDraw to just Enable, and the AntiAliasB2DDraw names to just AntiAlias. This is in preparation for a second commit that will actually separate the AA and B2D functionality of these flags. Change-Id: I9cc215c5752dfabce41e00e19d9074fc8dc3d4de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103416 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-09-25headless/cairo drawGradient() fixesLuboš Luňák
Change-Id: I53913262f8f856bf265ce50fc355244445499089 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103375 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-09-25use vcl lin. gradient drawing in drawinglayer + cairo impl.Tomaž Vajngerl
This adds a divert for drawing of linear gradients drawing, which can be implemented natively with a much higher quality and speed. This also adds a implementation of drawing linear gradients with cairo. Change-Id: I8c39915c3579e6eb88cdce8ae4ac9694ffdb4957 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103374 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-09-18Fix typosAndrea Gelmini
Change-Id: I382bac84126095950a1d3932665c36fb16f1383b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101100 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-08-04loplugin:flatten in vclNoel Grandin
Change-Id: I271cc67ecf34acbf0edbda960e33315fb6a1f9dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100041 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-02Upcoming improved loplugin:staticanonymous -> redundantstatic: vclStephan Bergmann
Change-Id: I7559ab5c98a22e315549b5dfc651e937697cac22 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97742 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-05-05fix line width in DrawPolyLine() with matrix (tdf#132498)Luboš Luňák
For backends that do the object-to-device coordinates transformation directly, it's necessary to also convert the size of line width. But simply multiplying it with the matrix can also rotate the line width "vector", making it e.g. negative. So don't use just the X coordinate, use vector length for the transformation, which is ok. In fact it doesn't even make sense to treat width as a vector, because a width simply is not a vector (and for this reason it's also not actually used). Change-Id: I1241c9cb29155df105170d568a879ebc32b11a5f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93203 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins
2020-04-09tdf#104878 use faster but less accurate cairo_path_extentsNoel Grandin
which doesn't matter for damage calculations, halves the time in processPolygonStrokePrimitive2D Change-Id: I0e3d37e77e7760d484b961de8bef22cc5ba1e09a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91957 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-03loplugin:singlevalfieldsNoel Grandin
Change-Id: I69c5b28636806e45d7ba5d8c4678caeda09caa50 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91607 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-03-24Resolves: tdf#131507 createCairoSurface returns nullptr on failureCaolán McNamara
Change-Id: I05190a6f280ebbe750dfda56ef27d3362222b95f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90940 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-03-24Fix typoAndrea Gelmini
Change-Id: I6fd01def988cf0bb04569f80cad30b96fd868b81 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90938 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-03-10No need for #ifndef IOS here, this file is not compiled for iOSTor Lillqvist
Change-Id: I3d7c9e95021ba9bdf3992551eaacda29449704ff
2020-03-06tdf#124848 partial refactor hairline logicArmin Le Grand
With the handover of transformations to line draw calls it is no longer feasible to detect and prepare LineWidth stuff when the old office definition for hairlnes is used, a line width of zero. It was managed in the system-independent part, but now may have to be prepared in logic and not discrete (pixel) coordinates. To do so, find and cleanup all places where 1/1.0 was used as hairline line width. Adapt all seven graphic subsystems to handle the line width == 0/0.0 cases accordingly. Test as good as possible. Change-Id: I2badc045474dcd51612e50597b8406a55d9dc863 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90057 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-02-29tdf#130768 add a pre-scale version for cairoArmin Le Grand
As explained in the task, suopport (2) by adding a cached pre-scaled cairo_surface_t buffer that works similar to a mip-map and thus uses as maximum a fa tor 0f 1.25 for speeding up painting of smaller versions of huge bitmaps Change-Id: I4fcc221a0fbb5a243fe93813f3fe1f3cdb4e0566 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89718 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-02-21tdf#130768 speedup huge pixel graphics CairoArmin Le Grand (Collabora)
For more information/documentation please refer to the bugzilla task Fixed a crash in CppunitTest_desktop_lib which led to a missing test of mpGraphics in OutputDevice::DrawTransformedBitmapEx. Other public methods test that and one of the goals of the cange was to use that method more often, so this may have never been detected before Change-Id: I10e57bd05db0c8cf868ff98d63f5af3d116a3015 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89230 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-02-10cid#1458168 silence bogus Dereference after null checkCaolán McNamara
and cid#1458166 Dereference after null check cid#1458167 Dereference after null check Change-Id: I68dc7dc1bc78ed64795d353d5d0ffc15cc46b0c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88347 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-02-08Fix typoAndrea Gelmini
Change-Id: Ic8a30a09566ff192b7639a5b390b64c9187fc749 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88275 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-02-08tdf#130478 add direct dash paint in cairoArmin Le Grand
Make use of mentioned task's 1st commit now and implement direct dashing for cairo. All the data is now available (that was the work), make use of it. Keeping a local static bool to control it, so later if needed can be switched on/off e.g using some global var/setting. Cairo will now do buffering of complex polygon data in cairo path data (from some compexity on and timer/mem-controlled), but not dismantle to own, stroked data. With bDoDirectCairoStroke disabled, the dis- mantled data will be buffered - more mem, but should also help - at least it gets reused now that it is possible to keep it at the original geometry (incoming polygon) at all Change-Id: Ic08f659d7ccbedc910ec678b1509ee1a7f3f2112 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88262 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-02-08Fix typoAndrea Gelmini
Change-Id: I7e213d6fee88593da8a25ce4bbbc514c60494329 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88243 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-02-07tdf#130478 Enhance Dashed line drawing on all systemsArmin Le Grand (Collabora)
For more info and explanation including state of process information and discussion(s) see task please. Adding corrections for gerrit build Change-Id: Ie10fb8093a86459dee80db5ab4355b47e46c1f8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88130 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-01-23tdf#129845: Better solution using already existing infoArmin Le Grand
Use calculateCombinedHoldCyclesInSeconds() in central places of system-dependent buffering and the zero value to early exclude data from buffering. This solves the problem on all system-dependent usages in a central place. Also enhanced to roughly allow buffering for bitmaps unchanged, for polygons starting with ca. 50 coordinate pairs. Added special treatments to Cairo version to allow temp buffer objects without copying the path data. This needed some extra stuff due to Cairo not allowing to work with it's cr-internal path object directly. Change-Id: Icd0a0d8091707fe356a82f5c7ec48f36ad44ccde Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87199 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins
2020-01-10Fix typoAndrea Gelmini
Change-Id: I34bd331992d381d2d294d01ffbee50c0be93df45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86583 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2020-01-07tdf#129845 vcl: avoid expensive system caching of trivial lines & polygonsMichael Meeks
Interestingly the cache map lookup is rather expensive; why: polyline output for some trivial impress edits: count # of polylines 2 2134 3 141 4 41 9 4 polypolygon output for some trivial impress edits: count # of polypolygons geometry. 3 54 all single polygon 4 583 ~all single 9 52 ~ all paired with a 4 node polygon 13 2 both single 32 22 all single Change-Id: I15c0053a84399eaf153b2119b2c28d1f168f16b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86314 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-01-01android: Make the Calc input bar working on the Android device too.Jan Holesovsky
Thanks to Marco Ceccheti! - he's found what was wrong there. Change-Id: I45500f7f55ced60965a42ad6cb8032481594b409 Reviewed-on: https://gerrit.libreoffice.org/85612 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86089 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
2019-12-05drawPixel() should still get 'true' for bXorModeAllowed.Jan Holesovsky
That part of 7b267be4b2c87b2c3987d4d751307977a7d3ad41 was not necessary. Change-Id: Ie085f635d4adb6f574f3eca37976f9aded505524 Reviewed-on: https://gerrit.libreoffice.org/84534 Tested-by: Jenkins Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2019-12-05headless: Don't leak the cairo context in drawPixel().Jan Holesovsky
Change-Id: If841f655ac634eee2dc7ca6e9445d2f204546545 Reviewed-on: https://gerrit.libreoffice.org/84445 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> (cherry picked from commit 5b607ae89de9494c01952852df30a6f77206eadc) Reviewed-on: https://gerrit.libreoffice.org/84450 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2019-11-27android: Introduce --enable-android-lok configure switch to fix RGB vs. BGR.Jan Holesovsky
This indicates that the build targets the Online-based Android app, for which we need to avoid various tweaks that are needed for the 'old' Android app present in the android/ subdir of core.git. In particular, the switch used in this patch fixes a RGBA vs. BGRA confusion that caused yellow <-> cyan switch in the Online-based Android app. Change-Id: I5f394868f51ce87013677834cfafb967b9bb333e Reviewed-on: https://gerrit.libreoffice.org/83342 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> (cherry picked from commit 49002a143a4534df5f6139e07fefd06174621c59) Reviewed-on: https://gerrit.libreoffice.org/83718 Tested-by: Jenkins
2019-11-22Extend loplugin:external to warn about classesStephan Bergmann
...following up on 314f15bff08b76bf96acf99141776ef64d2f1355 "Extend loplugin:external to warn about enums". Cases where free functions were moved into an unnamed namespace along with a class, to not break ADL, are in: filter/source/svg/svgexport.cxx sc/source/filter/excel/xelink.cxx sc/source/filter/excel/xilink.cxx svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx All other free functions mentioning moved classes appear to be harmless and not give rise to (silent, even) ADL breakage. (One remaining TODO in compilerplugins/clang/external.cxx is that derived classes are not covered by computeAffectedTypes, even though they could also be affected by ADL-breakage--- but don't seem to be in any acutal case across the code base.) For friend declarations using elaborate type specifiers, like class C1 {}; class C2 { friend class C1; }; * If C2 (but not C1) is moved into an unnamed namespace, the friend declaration must be changed to not use an elaborate type specifier (i.e., "friend C1;"; see C++17 [namespace.memdef]/3: "If the name in a friend declaration is neither qualified nor a template-id and the declaration is a function or an elaborated-type-specifier, the lookup to determine whether the entity has been previously declared shall not consider any scopes outside the innermost enclosing namespace.") * If C1 (but not C2) is moved into an unnamed namespace, the friend declaration must be changed too, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71882> "elaborated-type-specifier friend not looked up in unnamed namespace". Apart from that, to keep changes simple and mostly mechanical (which should help avoid regressions), out-of-line definitions of class members have been left in the enclosing (named) namespace. But explicit specializations of class templates had to be moved into the unnamed namespace to appease <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92598> "explicit specialization of template from unnamed namespace using unqualified-id in enclosing namespace". Also, accompanying declarations (of e.g. typedefs or static variables) that could arguably be moved into the unnamed namespace too have been left alone. And in some cases, mention of affected types in blacklists in other loplugins needed to be adapted. And sc/qa/unit/mark_test.cxx uses a hack of including other .cxx, one of which is sc/source/core/data/segmenttree.cxx where e.g. ScFlatUInt16SegmentsImpl is not moved into an unnamed namespace (because it is declared in sc/inc/segmenttree.hxx), but its base ScFlatSegmentsImpl is. GCC warns about such combinations with enabled-by-default -Wsubobject-linkage, but "The compiler doesn’t give this warning for types defined in the main .C file, as those are unlikely to have multiple definitions." (<https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Warning-Options.html>) The warned-about classes also don't have multiple definitions in the given test, so disable the warning when including the .cxx. Change-Id: Ib694094c0d8168be68f8fe90dfd0acbb66a3f1e4 Reviewed-on: https://gerrit.libreoffice.org/83239 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-19Rename GlyphCache to FreetypeManagerJan-Marek Glogowski
And while at it remove the unneeded getPlatformGlyphCache abstraction. Change-Id: Id5cad751eda9e6bf177dfb4816280d7c5af7066a Reviewed-on: https://gerrit.libreoffice.org/83125 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-11-19tdf#128434 correctly release fonts in destructorsJan-Marek Glogowski
This adds ReleaseFonts() calls to all destructors of SalGraphics and TextRenderImpl derivated classes, which implement SetFont. During destruction a base class can't call into derivated classes, as these are already destructed, so we have to spread these calls manually. Change-Id: Ia57db04f7df665e5205212ce512119e2f60e3379 Reviewed-on: https://gerrit.libreoffice.org/82967 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-11-08widget theme: Gradient support when drawing widgetsTomaž Vajngerl
Change-Id: I29239348e36e4963d9708a22ac649b2b1d68bf02 Reviewed-on: https://gerrit.libreoffice.org/82207 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-10-28headless: optimize DrawWaveLine / drawPixel.Michael Meeks
ImplDrawWaveLine - used to render colored lines under mis-spelled and/or grammatically interesting sections uses (for better or worse) 'drawPixel' to draw the line. Implementing drawPixel with a tiny B2DPolyPolygon is easy reading but triggers the unbelievably expensive SystemDependentDataHolder paths as well as some big chunks of logic for very large numbers of pixels (if you have lots of mis-spelling this can make typing visibly slower.). Change-Id: Ie6ad513e27f820bcad5030579428374c8d22fb3d Reviewed-on: https://gerrit.libreoffice.org/81622 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-08-14tdf#124700 don't pull from or insert into cache for PixelSnapHairlineCaolán McNamara
Change-Id: I7ca0f556164b6bc462cee3c5532733dbd6b68a2b Reviewed-on: https://gerrit.libreoffice.org/77455 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-08-09Related: tdf#122358 consistent transformation of damageCaolán McNamara
try to consistently transform our damaged regions. Quite possibly on the wrong track there, in which case just reverting to taking a cowardly grow(1) will probably suffice Change-Id: I251aec54e9df6c0f229f0c246332a1624a8b68d8 Reviewed-on: https://gerrit.libreoffice.org/77210 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-08-09Resolves: tdf#122358 ensure right/bottom borders are included in damage regionCaolán McNamara
a simple safely backportable expand of damage region by one pixel Change-Id: If4d226d8546d55b00172d826c8816b09b55d54ef Reviewed-on: https://gerrit.libreoffice.org/77206 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-07-24Related: tdf#126227 follow the same pattern as drawPolyPolygonCaolán McNamara
in drawAlphaRect so the rect path is set after the matrix Change-Id: I3ded9383f6f16f77902c5ad576e520f37326e8af Reviewed-on: https://gerrit.libreoffice.org/76199 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-07-24Resolves: tdf#126227 calc red change tracking rectangles missing their topCaolán McNamara
cairo_set_matrix doesn't appear to have any effect on an existing path, so set a new path on both fill and stroke so the matrix set for line will have an effect, so drop cairo_fill_preserve to cairo_fill and rely on the path cache. Change-Id: I31f16b094c920b107467a9492c7194bb578c1924 Reviewed-on: https://gerrit.libreoffice.org/76198 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>