summaryrefslogtreecommitdiff
path: root/vcl/source/graphic
AgeCommit message (Collapse)Author
2022-09-16vcl: AnimationBitmap -> AnimationFrameChris Sherlock
The emphasis is not quite right. An animation is made up a sequence of *frames*, not bitmaps. A frame includes such things as position, size, timeout till the next frame *as well as* a bitmap. Note: had to regenerate a bunch of precompiled headers Change-Id: Ib1959452653857555f41e01ac0151d08c41a3b1c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/76460 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-09-11basegfx: replace typedef with a class B2DSize based on Size2DTomaž Vajngerl
Change-Id: Id8b3c2bcf0bf4be5aba2812b0edda479bc20c6a9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139683 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-09-05tdf#149670 fix color change api and adjust tolerance for ooxmlSarper Akdemir
It appears at the start of Graphic::colorChange aBmpColorFrom & aBmpColorTo gets initialized with wrong colors. Instead of {R,G,B}, they get initialized with {B,G,R}. Instead of bitshifting use the ::Color constructor so that it is initialized correctly. For ooxml import adapt tolerance values of the image format in an attempt to get similar results on how the results appear in PowerPoint. Change-Id: I1fa901691512de82936dba0e47158b7e0ca2223e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139203 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2022-08-19Remove code duplication in GraphicDescriptor for SVGofftkp
GraphicFormatDetector and GraphicDescriptor have duplicate format detection code so now GraphicDescriptor uses GraphicFormatDetector functions instead to detect the format for SVG files Change-Id: I5ababbd43ece4e8c08c5833895dc0b56ad467f77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138102 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-08-19Remove code duplication in GraphicDescriptor for WMF/EMFofftkp
GraphicFormatDetector and GraphicDescriptor have duplicate format detection code so now GraphicDescriptor uses GraphicFormatDetector functions instead to detect the format for WMF/EMF files and their Z compressed counterparts WMZ/EMZ Change-Id: Ia054c782320923aaa0c2c8bda2f33c27c3b123d1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138067 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-07-20tdf#127236 vcl: fix missing encryption of PDF images during exportMiklos Vajna
Regression from commit 78e25558e86188314b9b72048b8ddca18697cb86 (tdf#106059 PDF export: create a reference XObject for JPG images with PDF data, 2017-02-23), once a PDF image was inserted to a document, an encrypted PDF export lost those images. The reason for this is that we started to preserve PDF images as vector data with the above commit, but this means we copied over PDF objects from PDF images to the export result as-is, so encryption was not performed for them. Fix this by separating the write of the PDF object headers, stream content and object footer and then calling checkAndEnableStreamEncryption() / disableStreamEncryption() for each object, even if it's not something our PDF export created but comes from a PDF image. Note that when existing PDF files are signed, PDF objects are also copied into a vcl::filter::PDFDocument, but such PDF images are never encrypted, so it's fine to have stub implementations in vcl::filter::PDFDocument. Change-Id: I2f74b9f51cd35b4319221532ca890e197bab9cf3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137242 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2022-07-14loplugin:moveitNoel Grandin
Change-Id: I2702e716dc669ffbb870d36d060e110288d7a744 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137043 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-13clang-tidy modernize-pass-by-value in vclNoel Grandin
Change-Id: I9ddb786eb88213c53cf53067ced6899ca40ac6e8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137000 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-21vcl: rename mnExtraData to mnRendererIdChris Sherlock
The name "extra data" doesn't really describe what this field does. What it actually does it to specify what animation renderer should be used. Change-Id: I1e705ba89d09ceb41a8649c8947225c7b6816e7a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/76403 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-05-24modernize and improve PropertySetInfoNoel Grandin
(*) use o3tl::span for the array param, which means we don't need a null entry to terminate the array (*) use std::unordered_map to speed things up (*) mark the array as static at a few more call sites Change-Id: I05b6cae7552f44459e183ec05cb94e60edb3bfe0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134832 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-20new loplugin:unnecessary lockingNoel Grandin
off by default, since each warning needs careful inspection Change-Id: I805c1d1cdde531a1afdc76e87b22f879fc3c9753 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134641 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-19Simplify an "ImportGraphic" method by removing useless pExtHeader (WmfExternal)Julien Nabet
Change-Id: I2916610e08c3157e0438ec90592fb5b8f921cc24 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134574 Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl> Tested-by: Jenkins
2022-04-11loplugin:stringview add check for getToken().toInt32Noel Grandin
where we can convert that to o3tl::toInt32(o3tl::getToken( and avoid the heap allocation of a temporary string Change-Id: Ib11c19c6e6cdc0de3e551affd3578d181e292de4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132810 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-10loplugin:stringview check for getToken and trimNoel Grandin
since we now have o3tl versions of those that work on string_view. Also improve those o3tl functions to support both string_view and u16string_view Change-Id: Iacab2996becec62aa78a5597c52d983bb784749a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132755 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-31support for the WebP image format (tdf#114532)Luboš Luňák
This commit implements a WebP reader and writer for both lossless and lossy WebP, export dialog options for selecting lossless/lossy and quality for lossy, and various internal support for the format. Since writing WebP to e.g. ODT documents would make those images unreadable by previous versions with no WebP support, support for that is explicitly disabled in GraphicFilter, to be enabled somewhen later. Change-Id: I9b10f6da6faa78a0bb74415a92e9f163c14685f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128920 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-11-19loplugin:stringliteraldefine in vclNoel Grandin
Change-Id: Id14cc8613fdfb67790efd6c33ee243f6bdb522f3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125546 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-15Remove non-const Sequence::begin()/end() in internal codeMike Kaganski
... to avoid hidden cost of multiple COW checks, because they call getArray() internally. This obsoletes [loplugin:sequenceloop]. Also rename toNonConstRange to asNonConstRange, to reflect that the result is a view of the sequence, not an independent object. TODO: also drop non-const operator[], but introduce operator[] in SequenceRange. Change-Id: Idd5fd7a3400fe65274d2a6343025e2ef8911635d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123518 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-14Avoid COW overhead using css::uno::SequenceMike Kaganski
The scenarios are: 1. Calling sequence's begin() and end() in pairs to pass to algorithms (both calls use getArray(), which does the COW checks) 2. In addition to #1, calling end() again when checking result of find algorithms, and/or begin() to calculate result's distance 3. Using non-const sequences in range-based for loops, which internally do #1 4. Assigning sequence to another sequence variable, and then modifying one of them In many cases, the sequences could be made const, or treated as const for the purposes of the algorithms (using std::as_const, std::cbegin, and std::cend). Where algorithm modifies the sequence, it was changed to only call getArray() once. For that, css::uno::toNonConstRange was introduced, which returns a struct (sublclass of std::pair) with two iterators [begin, end], that are calculated using one call to begin() and one call to getLength(). To handle #4, css::uno::Sequence::swap was introduced, that swaps the internal pointer to uno_Sequence. So when a local Sequence variable should be assigned to another variable, and the latter will be modified further, it's now possible to use swap instead, so the two sequences are kept independent. The modified places were found by temporarily removing non-const end(). Change-Id: I8fe2787f200eecb70744e8b77fbdf7a49653f628 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123542 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-03cid#1492171 annotate Data race conditionCaolán McNamara
and cid#1492172 Data race condition Change-Id: I2ab0d3af626b8d8007082a3dd944149973f8b63e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123026 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-30loplugin:constmethod handle more casesNoel Grandin
remove some of the naming limitations, and handle pointer parameters better. I only let the plugin run up till vcl/ Change-Id: Ice916e0157031ab531c47f10778f406b07966251 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122892 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-28gives names to all the Idles and TasksNoel Grandin
enforce it by making the constructor parameter non-default. Change-Id: I321543e4dcf15ea0a43ad8cce91d2f8dc22df6ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122766 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-28vcl: rename OutDevState to StackChris Sherlock
I have moved the header file to include/vcl/rendercontext as this will eventually be part of the RenderContext split from OutputDevice. State and associated enums have also been moved to the vcl namespace. I have also moved ComplexTextLayoutFlags into the vcl::text namespace. Change-Id: I0abbf560e75b45a272854b267e948c240cd69091 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121524 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-09-22Extend loplugin:stringviewparam to starts/endsWith: vclStephan Bergmann
Change-Id: Ic208697fd985da223819d203e67325b03028fca5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122469 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-22fix deadlock in vcl::GraphicManagerNoel Grandin
after commit 300753bf1d4db7eff42d707f427180f0d1d1dffb no need to use recursive_mutex in graphic::Manager Change-Id: I85b6f83d513ea1998e1bd7c3be5cea999c590c5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122426 Tested-by: Jenkins Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-21no need to use recursive_mutex in graphic::ManagerNoel Grandin
regular std::mutex is fine Change-Id: I820bb83117a0ea920f550f6ad459a623b4939ee3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122390 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-20clean up ambiguous confusing rectangle APIs like IsInside()Luboš Luňák
Reading 'rectA.IsInside( rectB )' kind of suggests that the code checks whether 'rectA is inside rectB', but it's actually the other way around. Rename IsInside() -> Contains(), IsOver() -> Overlaps(), which should make it clear which way the logic goes. Change-Id: I9347450fe7dc34c96df6d636a4e3e660de1801ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122271 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Jenkins
2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 4Mike Kaganski
- Change implementations of getSomething to use getSomethingImpl Or where that's impossible, use getSomething_cast to unify this and reduce number of places where we reinterpret_cast. All static methods getting tunnel ids were renamed to getUnoTunnelId, to comply with the convention used in <comphelper/servicehelper.hxx>. TODO (in separate commits): - Revise uses of getSomething to use getFromUnoTunnel Change-Id: Ifde9e214b52e5df678de71fcc32d2199c82e85cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122100 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-15Use <comphelper/servicehelper.hxx> implementing XUnoTunnel part 1Mike Kaganski
The header got some changes: 1. Move UnoTunnelIdInit and isUnoTunnelId into 'comphelper' namespace 2. Rename UnoTunnelIdInit to UnoIdInit, as a precondition to replace of uses of OImplementationId with it, including in XTypeProvider 3. Introduce convenience functions 'getSomething_cast' to cast between sal_Int64 and object pointers uniformly. 4. Rename getUnoTunnelImplementation to getFromUnoTunnel, both to make it a bit shorter, and to reflect its function better. Templatize it to take also css::uno::Any for convenience. 5. Introduce getSomethingImpl, inspired by sw::UnoTunnelImpl; allow it handle cases both with and without fallback to parent. 6. Adjust UNO3_GETIMPLEMENTATION_* macros TODO (in separate commits): - Drop sw::UnoTunnelImpl and sw::UnoTunnelGetImplementation - Replace all uses of OImplementationId in core with UnoIdInit - Deprecate OImplementationId in <cppuhelper/typeprovider.hxx> - Change implementations of getSomething to use getSomethingImpl - Revise uses of getSomething to use getFromUnoTunnel Change-Id: If4a3cb024130f1f552f988f0479589da1cd066e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122022 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-06clang-tidy:readability-redundant-member-initNoel Grandin
Change-Id: I51f4e8affac41023110042b534a915f096ccd0c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121692 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-12tdf#88205: Adapt uses of css::uno::Sequence to use initializer_list ctorEmircan Agac
Change-Id: Ifce4c42df52ce03ed1c509d9fc28de79f5b3426c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120199 Tested-by: Jenkins Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2021-08-03Consolidate on C++17 std::scoped_lock instead of std::lock_guardNoel Grandin
as in commit 9376f65a26240441bf9dd6ae1f69886dc9fa60fa Change-Id: I3ad9afd4d113582a214a4a4bc7eea55e38cd6ff9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119927 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-22flatten GraphicObjectImplNoel Grandin
no need to allocate the GraphicObject separately Change-Id: I71f13792dfd45e47d835ad1e3627a559044346a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119337 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-22osl::Mutex->std::mutex in GraphicObjectImplNoel Grandin
Change-Id: I4c62d4b105425d4fb39eefdb7117299488af47dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119336 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-13merge UnoGraphicTransformer into UnoGraphicNoel Grandin
it is never instantiated by itself. And this also means it now only has one OWeakObject base class Change-Id: I3074130539ab023fec5537e0e7794e1c2db7e6ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118835 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-27Indicate the file in error in (vcl/UnoGraphicProvider)Julien Nabet
Change-Id: I7f379bf189071893d3b9eeb813ea9e570922fee3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117946 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-05-19ImplPlayWithRenderer never checks its OutputDevice against nullptrCaolán McNamara
just pass a reference instead and spread that around to some similar cases Change-Id: Ifb2dee8c7bf02a9f01982b928c90666cbbdd84fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115759 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-11change usage of boost::hash_combine to o3tl::hash_combineTomaž Vajngerl
Change-Id: I840518a36ac43d36c95f38e09c7bfcfe1a25a525 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114984 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-05-05sal_uLong->Color in BitmapDuoToneFilterNoel Grandin
Change-Id: I3f57d9b21d439fa8449579d9cdaac9377ac80934 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115110 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-02throw() -> noexcept, part 2/3: Automatic loplugin:noexcept rewriteStephan Bergmann
Change-Id: I076f16d0536b534abf0ced4d76051eadb4c0e033 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114949 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-05-02GraphicAttributes: put const. and op. '=' into the header fileTomaž Vajngerl
Change-Id: I1bc38f89457c3593673b445e7571a4fd82d5960b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114982 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-04-26drop mask from BitmapExNoel Grandin
So that we have fewer cases to deal with when we transition to 32-bit bitmaps. (*) rename maMask to maAlphaMask, since now it is only being used for alpha duties. (*) drop mbAlpha and mbTransparent to simplify state management, the only thing we need to check for alpha is if maAlphaMask is non-empty. Change-Id: I06252e38e950e846a94b4c2ba8ea763be17801fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111679 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-08vcl VectorGraphicSearch: clean up not needed HAVE_FEATURE_PDFIUM ifdefsMiklos Vajna
Towards completely avoiding the HAVE_FEATURE_PDFIUM ifdef forest. Change-Id: I38f138d7b7602cd0bd676d2e4f859b0bb5f051e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113772 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-04-02vcl: remove GetBitCount and GetColorCount from Bitmap{Ex}Tomaž Vajngerl
We can cast the PixelFormat enum to int for the same information and we can use the enum to reduce ambiguity when possible. Change-Id: I6ea648139465568cdeb12e5f5f75c7b609365bf4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113188 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-03-20crashtesting: crash on reexport of tdf118346-1.odg to odgCaolán McNamara
#10 0x00007fffef6f9e1c in vcl::graphic::Manager::reduceGraphicMemory() (this=0x7ffff09c5508 <vcl::graphic::Manager::get()::gStaticManager>) at vcl/source/graphic/Manager.cxx:120 #11 0x00007fffef6fa0c4 in vcl::graphic::Manager::registerGraphic(std::shared_ptr<ImpGraphic> const&) (this=0x7ffff09c5508 <vcl::graphic::Manager::get()::gStaticManager> std::shared_ptr<ImpGraphic> (use count 1, weak count 0) = {...}) at vcl/source/graphic/Manager.cxx:159 #12 0x00007fffef6fa749 in vcl::graphic::Manager::newInstance() (this=0x7ffff09c5508 <vcl::graphic::Manager::get()::gStaticManager>) at vcl/source/graphic/Manager.cxx:202 #13 0x00007fffef4aba15 in Graphic::Graphic() (this=0x7ffffff32f18) at vcl/source/gdi/graph.cxx:163 #14 0x00007fff9409761c in svgio::svgreader::SvgImageNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x2b4e46b0, rTarget=...) at svgio/source/svgreader/svgimagenode.cxx:220 #15 0x00007fff940a2651 in svgio::svgreader::SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x2ab0f6d0, rTarget=..., bReferenced=false) at svgio/source/svgreader/svgnode.cxx:529 #16 0x00007fff94092a0b in svgio::svgreader::SvgGNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x2ab0f6d0, rTarget=..., bReferenced=false) at svgio/source/svgreader/svggnode.cxx:107 #17 0x00007fff940a2651 in svgio::svgreader::SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x2ab0f370, rTarget=..., bReferenced=false) at svgio/source/svgreader/svgnode.cxx:529 #18 0x00007fff94092a0b in svgio::svgreader::SvgGNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x2ab0f370, rTarget=..., bReferenced=false) at svgio/source/svgreader/svggnode.cxx:107 #19 0x00007fff940a2651 in svgio::svgreader::SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x2704ee70, rTarget=..., bReferenced=false) at svgio/source/svgreader/svgnode.cxx:529 #20 0x00007fff940cc179 in svgio::svgreader::SvgSvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DContainer&, bool) const (this=0x2704ee70, rTarget=..., bReferenced=false) at svgio/source/svgreader/svgsvgnode.cxx:304 #21 0x00007fff940fa8cf in svgio::svgreader::(anonymous namespace)::XSvgParser::getDecomposition(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) (this=0x26ee6560, xSVGStream=uno::Reference to (comphelper::SequenceInputStream *) 0x2b4190e8, aAbsolutePath="") at svgio/source/svguno/xsvgparser.cxx:136 #22 0x00007fff940fb0a5 in non-virtual thunk to svgio::svgreader::(anonymous namespace)::XSvgParser::getDecomposition(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&) () at svgio/source/svguno/xsvgparser.cxx:188 #23 0x00007fffef6af2f3 in VectorGraphicData::ensureSequenceAndRange() (this=0x70f6a70) at vcl/source/gdi/vectorgraphicdata.cxx:209 #24 0x00007fffef6b01bc in VectorGraphicData::getRange() const (this=0x70f6a70) at vcl/source/gdi/vectorgraphicdata.cxx:355 #25 0x00007fffef4bd4f0 in ImpGraphic::getPrefSize() const (this=0x5c29e90) at vcl/source/gdi/impgraph.cxx:793 #26 0x00007fffef4bd049 in ImpGraphic::createSwapInfo() (this=0x5c29e90) at vcl/source/gdi/impgraph.cxx:360 #27 0x00007fffef4c1960 in ImpGraphic::swapOut() (this=0x5c29e90) at vcl/source/gdi/impgraph.cxx:1304 #28 0x00007fffef6f9ca8 in vcl::graphic::Manager::loopGraphicsAndSwapOut() (this=0x7ffff09c5508 <vcl::graphic::Manager::get()::gStaticManager>) at vcl/source/graphic/Manager.cxx:104 #29 0x00007fffef6f9e1c in vcl::graphic::Manager::reduceGraphicMemory() (this=0x7ffff09c5508 <vcl::graphic::Manager::get()::gStaticManager>) at vcl/source/graphic/Manager.cxx:120 Change-Id: If76281620dd7026196543ff3f62f29105b1e2f38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112772 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-13add PixelFormat enum that replaces bit count in Bitmap/BitmapExTomaž Vajngerl
Bit count for the image is a numeric value (sal_uInt16) but only a handful of values make sense - namely 1,4,8,24 and 32. This replaces the numeric value with an enum, which only accepts those values and checks the correct values are used at compile time. Change-Id: I0fc137c62bce3b0d021f05019a1648da628521bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112408 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-02-25pdfium: turn the PDFium class into an interfaceMiklos Vajna
This will allow a dummy implementation that only provides PDFiumLibrary::get() and nothing else. Change-Id: Ia63b3f0b7751e5c05716825f0854282e4007207e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111502 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-19loplugin:refcounting in vclNoel
Change-Id: Ieca3dd33a7ae40c3f7b8ba30f763d71a548cd144 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111171 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-16pdfium: add a FPDF_GetLastError() wrapperMiklos Vajna
And also an enum class for its return values. Change-Id: I9a001386831b2230a397194df3cf3b331d5242ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110952 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-02-11pdfium: add a FPDFText_GetCharBox() wrapperMiklos Vajna
Which was the last public use of PDFiumTextPage::getPointer(). Change-Id: If3339f09ba38a3f10b19fe85cded718c913eb067 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110750 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-02-05pdfium: add remaining FPDF_SCHHANDLE wrappersMiklos Vajna
So we don't have to expose the raw search handle in the public header anymore. Change-Id: I410314424e5a1d3a977c8e3de6f500f7c9a0a332 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110426 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>