summaryrefslogtreecommitdiffstats
path: root/drawinglayer
Commit message (Collapse)AuthorAgeFilesLines
* tdf#35986 tdf#92315 tdf#116335 tdf#116622 Add support for MapMode TEXTBartosz Kosiorek2020-11-161-0/+45
| | | | | | | | | | | | | | To properly import some EMF files, the proper implementation of MapMode Text needs to be done according to MS documentation. I have also added regression tests. Change-Id: Id788294a498b93bebb62118d13ea545f80a60f01 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105771 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit b0b78838e795fcd7f3c53e7f74fb32b2921a5ccb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105849 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
* Revert "tdf#127471 Remove font width scaling hack"Samuel Mehrbrodt2020-10-291-0/+14
| | | | | | | | | | | This reverts commit d935040e8f586ccb9dcf7fef30d72715a9f0ac98. Reason for revert: Causes regressions like tdf#136891 Change-Id: Ief7ddf084161ba143cd5ec40c9a0f3645f592e74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104948 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
* tdf#127471 Remove font width scaling hackSamuel Mehrbrodt2020-08-191-14/+0
| | | | | | | | | | | | | | | Which causes distorted fonts in certain cases (see bug report). Fix was suggested by Ilhan Yesil at https://bugs.documentfoundation.org/show_bug.cgi?id=127471#c6 Change-Id: Ie644f56f0835ffad9230f981d2927d6b4c17453d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100970 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 8891a2fc2a4bf86add68691b7ac167a07a8add84) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100938 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
* tdf#135500: always use transparent and clear content vdev in impBufferDeviceMike Kaganski2020-08-144-61/+22
| | | | | | | | | | | | | | | | | | | This removes the only place that hadn't used transparent impBufferDevice yet - in VclProcessor2D::RenderMaskPrimitive2DPixel. Not clearing the vdev made it draw on whatever garbage was left there from previous paints when the buffer was taken from maFreeBuffers in VDevBuffer::alloc, so since this was also the only place left that didn't clear the buffer explicitly, this makes the clear unconditional in impBufferDevice ctor. Also this makes sure to clear proper rectangle in VDevBuffer::alloc, and to clear mpAlphaVDev in OutputDevice::Erase. Change-Id: I7c1c0cc510a92628f19020b3faf0c0cd81f5a599 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100674 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100712 Reviewed-by: Caolán McNamara <caolanm@redhat.com>
* hack for gradients split into adjacent polygons (tdf#133016)Luboš Luňák2020-07-171-2/+8
| | | | | | | | | | | | | | | Converting a gradient to a group of adjacent polygons is silly (at least according to Skia developers), because adjacent polygon edges are guaranteed to line up perfectly only if antialising is not used. Change-Id: I38696c10b14958936cf97d4001c0ea0dfcadaa58 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98886 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com> (cherry picked from commit 777ac5456a1f24fea29931ede983b5b8ad9a063d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98840 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
* avoid costly to-monochrome-bitmap conversion with Skia (tdf#134365)Luboš Luňák2020-07-021-3/+18
| | | | | | | | | | | | | | | | | | The BitmapEx 1bpp monochrome bitmap mask constructor forces the mask to be 1bpp, which is done in software by BitmapMonochromeFilter. Which with Vulkan leads to fetching all the data from the GPU, usually only to be converted and then pushed back to the GPU. Similarly to MACOSX and iOS, just use AlphaMask, which is just better (8bit is easier to handle and in Skia's case it's also optimized to avoid fetching the data if possible). Change-Id: I5770c2b0c298c1534b7ff56cc905d2d668d3a8df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97525 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com> (cherry picked from commit 1fca8d1f7d97816ae469f2eb3079ecda9542bd44) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97686 Reviewed-by: Caolán McNamara <caolanm@redhat.com>
* tdf#134134: consider color modifier stack when pixel-processingMike Kaganski2020-06-205-7/+12
| | | | | | | | | | | | | Add initial color stack as an optional processor ctor argument, so that it wouldn't be possibe to modify it after construction from outside randomly (which could break the stack state). Change-Id: I8aae4b806531fa61cc67def865297f5de1cf0755 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96684 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 4f4c99c6659e78e5d28e38808148e4284a0f0832) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96696
* tdf#101181: disable antialiasing for maskMike Kaganski2020-05-291-0/+6
| | | | | | | | | | | | | | | | | Since we need objects' bounds here, antialiasing them would make the resulting non-fully-transparent areas thicker, thus making the effect also thicker. Disable it here; also slightly increases performance. We can't do that for soft edge: the effect draws all its children as bitmap, so disabling AA would make all children areas unaffected by soft edge to have worse image quality. Change-Id: Ifc9a60ec7894bfe9d0209e04532c9ca0a1eb3867 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95096 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 61f70d361eed06055ad94218e2e8d0246762e6f7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95110
* Use buffer with alpha in VclProcessor2D::RenderUnifiedTransparencePrimitive2DMike Kaganski2020-05-291-1/+2
| | | | | | | | | | | | This allows UnifiedTransparencePrimitive2D to produce truly transparent image, usable later in the stack - specifically by glow and soft edge effect. Change-Id: I27e9bfbfb9c60856bc3fad1a483623c90d5cabff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94969 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 8c84448febf817875ad0d377de0f0b34987992cb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95083
* tdf#101181: use buffer device with alpha in glow effectMike Kaganski2020-05-292-24/+7
| | | | | | | | | | Change-Id: Iddc94a5cfdee03befdf245ee086a872f0bfaf7a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95051 Tested-by: Jenkins Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit c9f4952b98da9adad1b556414c5fcecafedca473) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95082
* tdf#49247, tdf#101181: output glow and soft edge effects to metafileMike Kaganski2020-05-292-0/+102
| | | | | | | | | Change-Id: Ie660ae372fc0b5f97f685b6d1e82b9e8a12e7e30 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94192 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 9dcbf7b0098e59c22ec17d86c270d610e0416f72) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95081
* Use buffer with alpha in VclProcessor2D::RenderTransparencePrimitive2DMike Kaganski2020-05-291-1/+4
| | | | | | | | | | | | | This allows TransparencePrimitive2D to produce truly transparent image, usable later in the stack - specifically by soft edge effect. Change-Id: I54e6f9a8fd196247b1130446af3d21b082820f01 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95038 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit d5a995c0296df61cd6c9341779bccbf8989ecc75) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95080 Tested-by: Jenkins
* tdf#49247: Reimplement soft edges to keep object transparencyMike Kaganski2020-05-291-13/+8
| | | | | | | | | | | | | | So the objects that were semi-transparent don't become opaque upon applying soft edge effect. This requires that the objects are actually semi-transparent, so that we can get alpha mask from bitmap Change-Id: Ic4af9bea19e5e71139d3f065797583f7c7c78815 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95034 Tested-by: Jenkins Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 425125e31f9053e0e4895fb13e1e267ec5d26487) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95079
* Allow creation of virtual device with alpha as content of impBufferDeviceMike Kaganski2020-05-292-44/+80
| | | | | | | | | | | | | | | | | | impBufferDevice now can create its mpContent with alpha; that is used when painting, blending mpContent's alpha with mpMask/mpAlpha/fTrans. That allows to paint to the buffer device and get actual transparency of the painted objects in one pass, to process further (e.g., modify transparency separately, or use it to get mask). Required for subsequent soft edge effect improvement Change-Id: If19c160581ce9a515d86222dd2fab06f746df2da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95030 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit d4bfa55209eedcaae51c9ccba466f39620f82d49) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95078
* tdf#49247, tdf#101181: don't rely on automatic scaling of alpha maskMike Kaganski2020-05-291-6/+5
| | | | | | | | | | | Scale it back explicitly in ProcessAndBlurAlphaMask Change-Id: I8e8a58c117d8b59db40b416edadc559b47dc300a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95021 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 2cfe93da835eb500c9a170d22fce19fbd1de9473) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95076
* tdf#49247, tdf#101181: Fix effect boundsMike Kaganski2020-05-291-8/+13
| | | | | | | | | | | | This will avoid cutting rightmost and bottommost pixels from the effects, caused by casting of range dimensions to integers. Change-Id: Icad9c06c33bafae9531bc45559acecd3581fad89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95020 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 541e5a9e84c42fbf20158b01a4feaa0f226e9ed0) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95075
* Fix loplugin:simplifypointertobool for libstdc++ std::shared_ptrStephan Bergmann2020-05-267-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...where the get member function is defined on a std::__shared_ptr base class, so loplugin:simplifypointertobool used to miss those until now. (While e.g. using libc++ on macOS found those cases.) 366d08f2f6d4de922f6099c62bb81b49d89e0a68 "new loplugin:simplifypointertobool" was mistaken in breaking isSmartPointerType(const clang::Type* t) out of isSmartPointerType(const Expr* e); c874294ad9fb178df47c66875bfbdec466e39763 "Fix detection of std::unique_ptr/shared_ptr in loplugin:redundantpointerops" had introduced that indivisible two-step algorithm on purpose. The amount of additional hits (on Linux) apparently asked for turning loplugin:simplifypointertobool into a rewriting plugin. Which in turn showed that the naive adivce to just "drop the get()" is not sufficient in places that are not contextually converted to bool, as those places need to be wrapped in a bool(...) functional cast now. If the expression was already wrapped in parentheses, those could be reused as part of the functional cast, but implementing that showed that such cases are not yet found at all by the existing loplugin:simplifypointertobool. Lets leave that TODO for another commit. Besides the changes to compilerplugins/ itself, this change has been generated fully automatically with the rewriting plugin on Linux. Change-Id: I83107d6f634fc9ac232986f49044d7017df83e2a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94888 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins
* reduce dynamic_cast usage in an O(N^2) algorithmLuboš Luňák2020-05-261-11/+4
| | | | | | | | | | When scrolling down in tdf#130431 this is the major CPU cost. Move the dynamic_cast out of the loops as much as possible. Change-Id: I0ea9f457bb17fbdde880f09b059f07dec4b1790b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94858 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
* comphelper, drawinglayer, framework, starmath: clang-format these filesMiklos Vajna2020-05-181-64/+34
| | | | | | | | | | I added these files more or less recently and they have long lines. Use clang-format to break at a sane column limit. Change-Id: Id608fffbbc0673c9bc350dd696cb0a31906840d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94423 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
* Only transform polypolygon when neededMike Kaganski2020-05-181-2/+1
| | | | | | | Change-Id: I907c4bddb1ec05a9d68af8939e58d576714a3d0a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94283 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* tdf#49247: draw soft edgesMike Kaganski2020-05-135-44/+190
| | | | | | | | | | | | | This factors out the common code for blurring used both in glow and soft edges into ProcessAndBlurAlphaMask. Also this reverts commit a98bdbae459ad7341bf7f484c402e77e4062cd16, since its use was removed from VclPixelProcessor2D. Change-Id: Icd7fdb06bef3932ff3b9ce7e283b515b15d246a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94087 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* tdf#129916 svx: fix origin of scaled shadowMiklos Vajna2020-05-111-1/+19
| | | | | | | | | | | | | We assumed that the top left corner is the origin for scaling, but that is not necessarily the case. The intention is that the shadow direction can be determined from its x and y offset, and the origin is the opposite corner of the shape. Change-Id: I6759302767d20739b6e2be79d379740dd06f70f5 (cherry picked from commit a1dde1a85a8d1c54521a0ac6310571ffcdd4bb5a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93974 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
* new loplugin:simplifypointertoboolNoel Grandin2020-05-101-1/+1
| | | | | | | Change-Id: Iff68e8f379614a6ab6a6e0d1bad18e70bc76d76a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91907 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* drawinglayer: clean-up namespaces in graphicprimitivehelper2d.hxxTomaž Vajngerl2020-05-091-9/+2
| | | | | | | Change-Id: I24b11ccc7d82a9d3380fc8aa32c90ad0256485f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93831 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* drawinglayer: clean-up namespaces in texture.hxxTomaž Vajngerl2020-05-091-76/+2
| | | | | | | Change-Id: I0977858ea5b9d2b7ddfaa8012ef50170ee02f27d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93829 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* remove vclmetafileprocessor2d.{cxx,hxx} from clang-format blacklistTomaž Vajngerl2020-05-092-2065/+2110
| | | | | | | Change-Id: I53f7660a22ed66ab7d50370d871f9d10d1bedc10 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93825 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* simplify namespaces vclmetafileprocessor2d.hxxTomaž Vajngerl2020-05-091-14/+3
| | | | | | | Change-Id: I3fd36b3d58aa35d68b3582baf87bf020ec894a63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93824 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* use pragma once in vclmetafileprocessor2d.hxxTomaž Vajngerl2020-05-091-5/+1
| | | | | | | Change-Id: I4112e33c92d189a2dab15e4a17b9cb06afd99048 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93823 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* drawinglayer: organize imports in vclmetafileprocessor2d.cxxTomaž Vajngerl2020-05-091-25/+18
| | | | | | | Change-Id: Ic6be2a42a7b1ed294cc86e3aee967ffec7b1e514 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93822 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* dl: move {Eps,FillHatch,PointArray}Primitive2D to global includeTomaž Vajngerl2020-05-0913-271/+16
| | | | | | | Change-Id: I85c10cb957f5065d964863360ca03355c87b7980 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93821 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* compact namespace in dbaccess..dtransNoel Grandin2020-05-088-22/+22
| | | | | | | Change-Id: Ie4b619dd19cc4d12d240759abea9c3ffdedd5c7e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93718 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* tdf#132199: put glow before shadow, to have shadow of the glowMike Kaganski2020-05-071-1/+3
| | | | | | | | | Also take modified color into account when drawing glow. Change-Id: Iba136d2695cb783d13ff251d087066c2e8803d63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93605 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* tdf#101181: improve glow effectMike Kaganski2020-05-073-62/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The shadow of objects must not be scaled: this displaces any internal areas that need blur, e.g. holes. Instead, it needs to dilate the shadow using kernel with radius equal to blur radius: this allows the borders of dilated objects to be in the middle of the blur area. The following blur makes those new margin points to have 50% intensity, and full glow intensity at the point of old object margins. This also removed artifacts when moving objects with glow effect caused by mismatch between scaling and D2D range calculation. The D2D range therefore is not calculated by scaling, but using grow. Blur filter's "extend bitmap by blur radius" option got obsoleted and removed. There's no need to blur the glow color (24-bit RGB). Instead, glow bitmap must be filled by glow color, and have an alpha mask that is blurred accordingly. This makes the glow properly transparent, and also reduces the blur complexity which now only needs to process 8 bits of alpha channel. The object shadow is created using basegfx::BColorModifier_replace inserted into the 2d decomposition of the effect, as before. To make sure that any non-fully-transparent pixel will become black pixel in the shadow, black color is used, and the result is further processed in VclPixelProcessor2D::processGlowPrimitive2D with monochrome filter using threshold 255. Glow transparency attribute is taken into account: the initial value at the margins of the objects. Color replacement filter is used to replace the object shadow with the attribute value before blur pass. Correct blur radius is used, calculated from glow effect radius, instead of hardcoded value of 5 pixels. This makes the glow to fade gradually along the full width of the effect, instead of only fading in narrow outer border previously. Since blur filter is only implemented for radius up to 254 pixels, and since downsampling the shadow before blur increases performance without noticeable quality loss, the image is downsampled before filtering. It should be noted that the glow effect is almost identical to soft shadow effect, likely with the only difference of using dilation in the former, but not in the latter. The code might be reused later to implement soft shadow as well. Change-Id: I728c532f9df7ccf85f353c23c6c7d8352d7b2086 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93235 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* fix memory leak of xmlDoc objectsNoel Grandin2020-05-071-3/+2
| | | | | | | | | in unit tests Change-Id: Id16731bbbe2f1b0e3642722d77aba04fc98db4cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93508 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* This comparison is redundant, radiuses are compared belowMike Kaganski2020-05-061-2/+0
| | | | | | | Change-Id: Idb98314877518beefdd12dd95bbbb055f3aa429d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93549 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* Use default ctorMike Kaganski2020-05-061-4/+1
| | | | | | | Change-Id: I1f692f706f2e688384c01e99c14307190bf70104 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93548 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
* drawinglayer: extract constant in renderWrongSpellPrimitive2DTomaž Vajngerl2020-05-041-3/+6
| | | | | | | Change-Id: I131e2d5620d027f32dc2929cd12fedb168e30e9c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93390 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* drawinglayer: flatten renderWrongSpellPrimitive2DTomaž Vajngerl2020-05-041-21/+21
| | | | | | | Change-Id: I93ff19f9f54b6f14c660af554d697b9ba525f81c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93389 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* remove helperwrongspellrenderer.{cxx,hxx} from clang-format blacklistTomaž Vajngerl2020-05-042-41/+45
| | | | | | | Change-Id: Ib0b1f389189012ab27dd061481737ac6a6a1a84e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93388 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* pragma once in helperwrongspellrenderer.hxxTomaž Vajngerl2020-05-041-11/+3
| | | | | | | Change-Id: I25aac069b9212824fee50240a1b6682bf7e6f0f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93387 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* organize includes in vclpixelprocessor2d.cxxTomaž Vajngerl2020-05-041-11/+13
| | | | | | | Change-Id: I1590e437946aaa4bd3a8b6a2c47d2ee17d2060a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93386 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* organize includes in vclprocessor2d.cxxTomaž Vajngerl2020-05-041-23/+19
| | | | | | | Change-Id: I1117eb86823762882d463c6e4d3b295efaa3151c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93365 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* dl: replace OSL_ENSURE with SAL_WARN_IF in impBufferDeviceTomaž Vajngerl2020-05-041-6/+10
| | | | | | | Change-Id: I457b9310109157da03b6c310783651f5232d2054 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93364 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* drawinglayer: remove aBuffer typedef in VDevBufferTomaž Vajngerl2020-05-041-13/+10
| | | | | | | | | Also use back() method on vector instead of end() - 1 Change-Id: I944691d097f82b1651cff87a7bb0d7c457ece27a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93363 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* remove vclhelperbufferdevice.{cxx,hxx} from clang-format blacklistTomaž Vajngerl2020-05-042-323/+332
| | | | | | | Change-Id: I0ab6572ab700756322f96b982f7faeb6d8dc9fb6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93362 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* pragma once in vclhelperbufferdevice.hxxTomaž Vajngerl2020-05-041-9/+1
| | | | | | | Change-Id: I12e53849fa23496799ba5e45fc0077cb9b54048c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93361 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* remove vclpixelprocessor2d.cxx from clang-format blacklistTomaž Vajngerl2020-05-021-746/+811
| | | | | | | Change-Id: I03ad72d0754cb8c180f4eab0e8040c3dab533ef9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93321 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* remove vclprocessor2d.cxx from clang-format blacklistTomaž Vajngerl2020-05-021-1121/+1182
| | | | | | | Change-Id: I359dfb0fe6fdf88e9c8141186a770c4cde777161 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93320 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Make upcasting css::uno::Reference ctor require complete typesStephan Bergmann2020-04-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The main reason for the "home-grown" UpCast introduced with 904b3d1fceee5827076758ed2a81f80cb73493ca "Up-cast conversion constructor for css::uno::Reference" in 2013 was probably that we could not yet rely on C++11 std::is_base_of back then. A (welcome) side effect was that the derived class could be incomplete. However, specializations of UpCast relying on whether or not T2 is incomplete are obviously an ODR violation if the type is incomplete in some TUs and complete (and derived from T1) in others. And even if UpCast had internal linkage, it would still be brittle that its behavior depends on the completeness of T2 at the point of the template's instantiation, and not necessarily at the point of use. That means we should better base that ctor on std::is_base_of (which we can do now since 39a1edd6fec902ef378acce8af42c4d7fba280d0 "Make css::uno::Reference upcast ctor LIBO_INTERNAL_ONLY"), which causes a compilation error at least on Clang and GCC if the completeness requirements are not met. This change fixes all the cases where types need to be complete now, plus any resulting loplugin:referencecasting warnings ("the source reference is already a subtype of the destination reference"). Change-Id: Ieb9e3552e90adbf2c5a5af933dcb872e20661a2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92950 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* update pchesCaolán McNamara2020-04-261-3/+4
| | | | | | | Change-Id: I83a61da7dda6c72552eecd377f1c3744c92a797e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92909 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>