summaryrefslogtreecommitdiff
path: root/include/drawinglayer
AgeCommit message (Collapse)Author
2017-03-31tdf#82580 tools: rename Rectangle to tools::RectangleMiklos Vajna
Mostly generated using make check COMPILER_EXTERNAL_TOOL=1 CCACHE_PREFIX=clang-rename-wrapper RENAME_ARGS="-qualified-name=Rectangle -new-name=tools::Rectangle" Except some modules have their own foo::tools namespace, so there have to use ::tools::Rectangle. This commit just moves the class from the global namespace, it does not update pre/postwin.h yet. Change-Id: I42b2de3c6f769fcf28cfe086f98eb31e42a305f2 Reviewed-on: https://gerrit.libreoffice.org/35923 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-03-29Propagate proper integer type out of AnimationEntryList::impGetIndexAtTimeStephan Bergmann
...after 49f8917cd4c10685645128768a2dc63043a7b398 "fix loplugin:loopvartoosmall" Change-Id: I8ec284711afa2f8323462a87d30fdf4c27941b6c Reviewed-on: https://gerrit.libreoffice.org/35830 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-03-25Fix typosAndrea Gelmini
Change-Id: I389542e18fcf71011f22919743b5280779f449fd Reviewed-on: https://gerrit.libreoffice.org/35632 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2017-03-17convert SvxBorderStyle to scoped enumNoel Grandin
and rename to SvxBorderLineStyle Change-Id: I19e530f162e4ca6290a0ad076e7fe3d5775ae6bc Reviewed-on: https://gerrit.libreoffice.org/35265 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-03-03Fix typosAndrea Gelmini
Change-Id: I95fc63af11c336cde9f5bef908e1389c2fb56f02 Reviewed-on: https://gerrit.libreoffice.org/34823 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-03-03Fix typosAndrea Gelmini
Change-Id: I5e3c9683741ddc66283008c20794be5c2b2bc53f Reviewed-on: https://gerrit.libreoffice.org/34804 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-02-16remove unused Sentence from BreakupUnitNoel Grandin
Change-Id: I324d344a9e9154345b8bd7c8653415cfcbfc26cc
2017-01-26Remove dynamic exception specificationsStephan Bergmann
...(for now, from LIBO_INTERNAL_CODE only). See the mail thread starting at <https://lists.freedesktop.org/archives/libreoffice/2017-January/076665.html> "Dynamic Exception Specifications" for details. Most changes have been done automatically by the rewriting loplugin:dynexcspec (after enabling the rewriting mode, to be committed shortly). The way it only removes exception specs from declarations if it also sees a definition, it identified some dead declarations-w/o-definitions (that have been removed manually) and some cases where a definition appeared in multiple include files (which have also been cleaned up manually). There's also been cases of macro paramters (that were used to abstract over exception specs) that have become unused now (and been removed). Furthermore, some code needed to be cleaned up manually (avmedia/source/quicktime/ and connectivity/source/drivers/kab/), as I had no configurations available that would actually build that code. Missing @throws documentation has not been applied in such manual clean-up. Change-Id: I3408691256c9b0c12bc5332de976743626e13960 Reviewed-on: https://gerrit.libreoffice.org/33574 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2016-12-22convert BasePrimitive2D::get2DDecomposition to use a visitorNoel Grandin
which lets us avoid constructing the decomposition when we are only interesting in the bounding box, e.g. for hit testing Change-Id: Icd8d430b75d207063f1db70e5a0822d5d82a7d00 Reviewed-on: https://gerrit.libreoffice.org/30835 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-12-07tdf#88206 replace cppu::WeakImplHelper* miscJochen Nitschke
also edited two examples in canvas comments Change-Id: Iac82b462168f869f995c33bb2c639f3dbe09cbd5 Reviewed-on: https://gerrit.libreoffice.org/31715 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2016-12-06Change Read/Write access to Scoped Read/Write accessMark Page
Change-Id: Idbe8e393b64f2a151e20c1851d7c14fa161acf97 Reviewed-on: https://gerrit.libreoffice.org/31635 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-12-06Use std::unique_ptr for AnimationEntryMark Page
Change-Id: Ia089be3677adadb4250003b78b7c6bc15ab8bc42 Reviewed-on: https://gerrit.libreoffice.org/31631 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-12-05loplugin:countusersofdefaultparams in include/drawinglayer..i18nlangtagNoel Grandin
Change-Id: I081ed66a88fc11648f5c63919c3de2a71f1afd59 Reviewed-on: https://gerrit.libreoffice.org/31556 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-09loplugin:expandablemethods in drawinglayer..editengNoel Grandin
Change-Id: Ic7fe13651e18b4eec90ef3fd8d7aab81197e0f39 Reviewed-on: https://gerrit.libreoffice.org/30707 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-09convert Primitive2DContainer to std::dequeNoel Grandin
since we only care about appending to this container, and then traversing it (normally once). So reduce the re-allocations that std::vector requires Change-Id: I206a7b82d9eefc1fa3762c4a03e7b5e21136951f Reviewed-on: https://gerrit.libreoffice.org/30706 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-08reduce copying when decomposing drawinglayer primitivesNoel Grandin
instead of returning a Primitive2DContainer from each method which we are then going to immediately append to another container, pass down a single container by reference which we can append to Change-Id: I0f28a499d2ec54f7111a7044c30099767aa079e1 Reviewed-on: https://gerrit.libreoffice.org/30258 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-07vcl: improve accounting of SVG images in graphics cacheMichael Stahl
The problem is that the graphics cache only counts the size of the SVG text, which is stored in SvgData::maSvgDataArray. However the SvgData::maSequence may use a lot more memory, as it may contain de-compressed bitmaps that are stored as base64-encoded PNGs in the SVG text. For example icon-themes/galaxy/brand/flat_logo.svg is 812 Ko but contains 60 Mo of bitmaps. This may cause excessive memory usage and failure to export documents due to OOM; according to valgrind massif, the bitmap buffers use 90% of the heap. Add a new interface com::sun::star::util::XAccounting, and implement it in drawinglayer BasePrimitive2D. VCL SvgData can't access drawinglayer via C++ directly so this looks like the best approach. Change-Id: I5a7c3147733e23473c1decabed24c1f79d951c7d Reviewed-on: https://gerrit.libreoffice.org/30669 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2016-10-23loplugin:expandablemethodds in include/connectivity..drawinglayerNoel Grandin
Change-Id: Ic58f86422ef8f1e2bb655157850e214fc3a1a9b4 Reviewed-on: https://gerrit.libreoffice.org/30136 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-10-13loplugin:unnecessaryoverrideNoel Grandin
Change-Id: I08c55a3023ec2e8990098eeb60e91cd18556e7ae Reviewed-on: https://gerrit.libreoffice.org/29656 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-09-16loplogin:singlevalfields in include/Noel Grandin
Change-Id: I27842162fcf82120ecb811ee8e89e187430931fc Reviewed-on: https://gerrit.libreoffice.org/28931 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-09-13loplugin:override: No more need for the "MSVC dtor override" workaroundStephan Bergmann
The issue of 362d4f0cd4e50111edfae9d30c90602c37ed65a2 "Explicitly mark overriding destructors as 'virtual'" appears to no longer be a problem with MSVC 2013. (The little change in the rewriting code of compilerplugins/clang/override.cxx was necessary to prevent an endless loop when adding "override" to OOO_DLLPUBLIC_CHARTTOOLS virtual ~CloseableLifeTimeManager(); in chart2/source/inc/LifeTime.hxx, getting stuck in the leading OOO_DLLPUBLIC_CHARTTOOLS macro. Can't remember what that isAtEndOfImmediateMacroExpansion thing was originally necessary for, anyway.) Change-Id: I534c634504d7216b9bb632c2775c04eaf27e927e
2016-09-13Remove nonsense comments: // bitfieldTor Lillqvist
Surely the actual bitfield syntax is enough to tell the code reader that it is a bitfield. Change-Id: Ic9552e01b19c8b34b2a17db56b9ff63e7c7de926
2016-09-13loplugin:constantparam in dbaccess..editengNoel Grandin
Change-Id: I1d0dc3d89933d86cd229e503b350fccc1523dedc Reviewed-on: https://gerrit.libreoffice.org/28833 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-25cid#1371276 Missing move assignment operatorNoel Grandin
also cid#1371234, cid#1371249, cid#1371208, cid#1371250, cid#1371258, cid#1371266, cid#1371257, cid#1371221 Change-Id: I18d952887b684e1999d003cec0f668789c851b52
2016-08-25cid#1371277 Missing move assignment operatorNoel Grandin
Change-Id: Ic737733f5951d5b21660a12a7a01202bd9bc303c
2016-08-25cid#1371284 Missing move assignment operatorNoel Grandin
Change-Id: I84d4cfe58f9659b468a1fd62b7974fcdbf0bb1f3
2016-08-25cid#1371288 Missing move assignment operatorNoel Grandin
Change-Id: I5181c76f558e1806de01f21422c715cc93f3cb3d
2016-08-25fix move operator= and add move constructorsNoel Grandin
followup to: 19828cc0 "cid#1371315 Missing move assignment operator" and 0e748707 "cid#1371320 Missing move assignment operator" Change-Id: Id2479fef41cf8d98eef9246f3a86e6c9289c3d58
2016-08-25cid#1371309 Missing move assignment operatorNoel Grandin
Change-Id: Ic00f39793f0341820ccce912f4350644a90104c5
2016-08-25cid#1371315 Missing move assignment operatorNoel Grandin
Change-Id: I9da0ffe856a0a40094c1c553bb2c5e05d8d3ef5d
2016-08-25new loplugin: countusersofdefaultparamsNoel Grandin
Change-Id: I79e2c690f3e664c14af12cf763dd5a8ac20d6b04 Reviewed-on: https://gerrit.libreoffice.org/28353 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-07tdf#82214 optimize performance for primitivesArmin Le Grand
See svg bug doc, which is processed quite slowly. Beyond needing faster renderers, there is also demand to improve the handling of primitives created by SVG import. Conflicts: drawinglayer/source/primitive2d/patternfillprimitive2d.cxx vcl/win/gdi/gdiimpl.cxx Change-Id: I10992a5746b8b2d6b50e3ee3fe415a035685c9ba
2016-07-07tdf#50613 add support to load charts asynchronouslyArmin Le Grand
Generating primitives for chart visualisation can be moved to a paralell executed task that loads the chart, thus speeding up initial visualization. This is not possible for e.g. PDF or print targets, only for edit visualization. On fallback, the replacement images of the charts are used which are metafiles and have less quality as primitives, but load quicker. Change-Id: I68caa9e1bec50832bce535b5f54633d53cdef037
2016-07-04comphelper::OBaseMutex -> cppu::BaseMutexNoel Grandin
convert usage of deprecated class, and remove the old class Change-Id: I19fb9271090d19e5531622b58492e1a848d306e2 Reviewed-on: https://gerrit.libreoffice.org/26843 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-27loplugin:singlevalfields in drawinglayerNoel Grandin
Change-Id: I19f50b0afa624391bd0d8ada7afca822298e10cc Reviewed-on: https://gerrit.libreoffice.org/26655 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-10tdf#99519 Added more intelligent handling of animated GIFsArmin Le Grand
Isolated to a single Primitive2D class based on the AnimatedSwitch- Primitive2D which does the specializing in one place. Buffers small GIFs completely, handles 1st frame always buffered, huge GIFs get animated by just playing he next frame. To reach more with the current approach we would have to re-implement AnimatedGIF import, replay it internally on a sys-specific Surface and blit the current content (with alpha) to our display Change-Id: I46c3325fa7936df73bea9a9284a0421f1475a34b Reviewed-on: https://gerrit.libreoffice.org/26103 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-06-03loplugin:constantparamsNoel Grandin
Change-Id: Ib162ba9297b9d900ea42c7e5216e152d3e58a361 Reviewed-on: https://gerrit.libreoffice.org/25769 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-30Convert TextEffectStyle2D to scoped enumNoel Grandin
Change-Id: I1ef784473408a220788f0ce7550bf16809fa2cd2 Reviewed-on: https://gerrit.libreoffice.org/25625 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-23Convert GradientStyle to scoped enumNoel Grandin
Change-Id: I1da151dd25648e363ba88bf88caa3e820f0ee424 Reviewed-on: https://gerrit.libreoffice.org/25270 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-23Convert HatchStyle to scoped enumNoel Grandin
Change-Id: I27878a67457d32e6922dfb6da73f896ff6ab1d01 Reviewed-on: https://gerrit.libreoffice.org/25271 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-22Convert BreakupUnit to scoped enumNoel Grandin
Change-Id: Icda4584c79a8af2c2e5fc5a29c498f7869641aa5 Reviewed-on: https://gerrit.libreoffice.org/25299 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-22Convert SpreadMethod to scoped enumNoel Grandin
Change-Id: I2a04247bd58ed6f2af8da7e109b31ff83d6d5e49 Reviewed-on: https://gerrit.libreoffice.org/25298 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-22Convert HelplineStyle2D to scoped enumNoel Grandin
Change-Id: I32b3c61ed40fe041a395544c1ab32d8e1b5f89fa Reviewed-on: https://gerrit.libreoffice.org/25297 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-18update unusedmethods plugin to deal with constructorsNoel Grandin
and fix the operator< implementations in some of the other plugins too. Change-Id: Ie5631e0cdc8d2a994ad2af2533cdb558a6cfc035 Reviewed-on: https://gerrit.libreoffice.org/25057 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-09convert FONT_EMPHASIS_MARK to scoped enumNoel Grandin
Change-Id: I137c78b337e57d3442db08334128e79d186b278f Reviewed-on: https://gerrit.libreoffice.org/24753 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-06Refactor 3D renderer to use multithreadingArmin Le Grand
This try uses full 3D renderers working on the same ZBuffer target, but are capable to render one stripe per thread. This is rougher in granularity and uses multiple cores better than the first try (see gerrit 24393) which was too fine-granular being based on scanline render parallelization. SecUred some more classes based on SdrPrimitive3D for multi- theaded usage (places where local buffered stuff is done) Change-Id: I4ddd5885ad41dd6432d0695e528818a86e427bfd Reviewed-on: https://gerrit.libreoffice.org/24538 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2016-05-02Fix typosAndrea Gelmini
Change-Id: I38b5e720af67d0bfb1be72ff82a7f5c595a94c14 Reviewed-on: https://gerrit.libreoffice.org/24535 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org>
2016-05-01Complete drawinglayer attributesArmin Le Grand
All DrawingLayer Atrributes used for ptimitives need a default constructor. Since the o3tl::cow_wrapper is used in combination with a static default incarnation of the impl class it is better to define that. Also needed is a working isDefault() implementation that compares the impl class to the static default. Added missing stuff for this. Change-Id: I98e9fee7343112cd979b972229423ac0ef3994a6 Reviewed-on: https://gerrit.libreoffice.org/24496 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2016-04-26tdf#48066 render stroke-miterlimit correctly in SVG importRegina Henschel
The property stroke-miterlimit is transported to the renderers via a new member mfMiterMinimumAngle in class LineAttribute Several drawPolyLine methods are adapted. This patch does not include changes in MetaAction. Presentation mode, printing, and PDF-export is still wrong. Corrected LineJoinMiter to LineJoinBevel in canvas, that s closer to NONE. Removed DrawPolyLine method without MiterMinimumAngle and adapted calls accordingly. Change-Id: I6bcd24add5d85c4d9a39e3788e0682091c5fc9c4 Reviewed-on: https://gerrit.libreoffice.org/23946 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de> Reviewed-by: Regina Henschel <rb.henschel@t-online.de>
2016-04-18tdf#99315 VclPixelProcessor2D: fix double border line widthMiklos Vajna
Regression from commit 2c91cb08d65cd35fa8ef6eaca3677aa82fb58cbe (better drawing support for borders of different width, fdo#33634, 2012-04-04), the problem is that previously the width of inner/outer double border lines got rounded to integer values quite early, but after the commit they are kept at a double precision for much longer, which needs pixel correction in VclPixelProcessor2D. Example: if the border with is 1.47, and the line gets moved by 0.2 pixels, then the inner and outer edge of the line will be 0.2 and 1.67, which gets rounded to 0 -> 2 in the pixel processor. Previously the input was rounded to 1, so moving by 0.2 resulted in 0.2 -> 1.2, which got rounded to 0 -> 1. The result is that sometimes the line width is 1 pixel wider than expected. Fix the problem by allowing VclPixelProcessor2D to request pixel correction from BorderLinePrimitive2D. It wouldn't be possible to do pixel correction only in VclPixelProcessor2D, as it has no idea what to correct: it only gets polygons, so it has no idea if e.g. the top of a polygon is the outer edge of a top border line or an inner edge of a bottom border line. Change-Id: I1971f3a952fbcdc598ab46c659e12d976c13cbe6 Reviewed-on: https://gerrit.libreoffice.org/24221 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>