summaryrefslogtreecommitdiff
path: root/vcl/inc/impgraph.hxx
AgeCommit message (Collapse)Author
2018-11-29tdf#42949 Fix IWYU warnings in include/vcl/[i-m]*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: If1b2e04872eb0dd6725802c1709a9085f4cd8c91 Reviewed-on: https://gerrit.libreoffice.org/64141 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-06-18vcl: share GfxLinkAshod Nakashian
When importing PDF as images, we store the PDF stream in the GfxLink. For large PDFs storing a copy of the full PDF with each page is overkill. For example a 10MB PDF with 200 pages will consume 2GB of memory! Change-Id: I99913514cf5c562683080bc817668095bee69427 Reviewed-on: https://gerrit.libreoffice.org/55571 Tested-by: Jenkins Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2018-06-11loplugin:unusedmethodsNoel Grandin
Change-Id: I26a0da1ec9cda9030371977596053a45303756a0 Reviewed-on: https://gerrit.libreoffice.org/55609 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-07vcl: svx: preserve the imported PDF page number in GraphicAshod Nakashian
Change-Id: I1bb3fa7d44d5f92df2bb8c4ed4b85ccd984c2617
2018-06-07sd: import PDFs as images using Pdfium new SdPdfFilterAshod Nakashian
LOK now opens PDFs as images using Pdfium, which has a superior accuracy and support to poppler, the default pdf reader. Change-Id: Ifbbecf7f048f001836fb98886705cba47e6bed4e
2018-06-07pdf: share pdf data in GraphicAshod Nakashian
Change-Id: I8146aa4e206788afff71142e1877fd7a885f4652
2018-05-25loplugin:passstuffbyrefNoel Grandin
Change-Id: I785e96599bbda029adf4698d11d7f981750dec07 Reviewed-on: https://gerrit.libreoffice.org/54802 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-05-20tdf#117502 fix graphical bullets for OOXML and RTFTomaž Vajngerl
This change has multiple parts: - Move "BulletAsImage" test from ODT only to globalfilter and run it on ODT, DOC, DOCX, RTF formats and extend checks of the XGraphic used for the bullets and the size. - Check if GIF is animated as we need to know this in unloaded graphic or bullets aren't rendered correctly if we assume they are animated. - Use "Graphic" property in writerfilter to get the graphic from a XShape and not the "Bitmap" property which returns a Graphic as a MetaFile and not the original Graphic. - Make sure "GraphicBitmap" is filled with XBitmap and not with XGraphic. - Change "testFDO74215" to use the expected bullet size as it is in the original document. Looks like the initial bug was just asserting the bullet size is set to a value (non-zero). Change-Id: I6b151c0bf9f426669e07522f0fc699fbb652046b Reviewed-on: https://gerrit.libreoffice.org/54477 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2018-04-23vcl: avoid swap in when Graphic::GetSizePixel() is calledMiklos Vajna
It's easier to fix this centrally in vcl, rather than not calling GetSizePixel() in each and every import filter. Change-Id: Ie0a788b8a5b886ebc2fedf0dc052deb4149b9364 Reviewed-on: https://gerrit.libreoffice.org/53333 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2018-04-20Function to load graphic swapped out (loaded on demand)Tomaž Vajngerl
When a document is loaded it takes a lot of time and memory to load the graphic that are in the documet, so avoid that and just store the compressed graphic into a temporary file (handeled by GfxLink) and load when we really need to show the graphic. GraphicObject cached some attributes from Graphic, but this attributes now aren't available immediately so this attributes are removed form GraphicObject and now delegate to the Graphic itself. GetSizeBytes attribute however was removed as it is only used in some tests. GfxLink initial values were moved to the constructor and are not set in the header file anymore (as it is the recommended way to do it). The SdImportTest::testDocumentLayout failed as it looks like the dump sometimes didn't include the width and height of the null bitmap (which is set to 32x32) of the FillBitmap in some situations, but then in other situations it did include this attributes. With this change the width and height are always included for the FillBitmap which looks like it is more correct. Change-Id: Ia1218f93b1735402b7828404f65660e2d4acf32f Reviewed-on: https://gerrit.libreoffice.org/53016 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2018-04-17loplugin:constparamsNoel Grandin
Change-Id: I3d1b88dbd0ff73fddc08d52f50e0efb42daab89b Reviewed-on: https://gerrit.libreoffice.org/52756 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-04-12vcl: Add a internal (memory) manager for Graphic objectsTomaž Vajngerl
This adds vcl::graphic::Manager which is a manager singleton that tracks all the creation fo graphic objects and swaps them out on a time and allocation basis. Time based - every number of seconds it looks for Graphics that weren't used for a time. Allocation based - when creating a new Graphic and the total of Graphic uses more than the total amount of memory for Graphics defined in configuration, it tries to release the Graphics that weren't used for a time. Change-Id: I5dbf74db4a6455d32c4abcbad7be21c7f0534642 Reviewed-on: https://gerrit.libreoffice.org/52396 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2018-04-10graphic: move access to cxx for PDFData and VectorGraphicDataTomaž Vajngerl
We need strict control when PDFData and VectorGraphicData is accessed and changed, so create access methods for PDFData and move the access methods to cxx (for VectorGraphicData). Change-Id: I39324a807a4db559bad5501b5913e62a0aeabf01 Reviewed-on: https://gerrit.libreoffice.org/52395 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2018-04-10remove unused ImplSwapOutAsLinkTomaž Vajngerl
Change-Id: Idb0796bfb3da1695bcd7fafcd9608dc336c30196 Reviewed-on: https://gerrit.libreoffice.org/52394 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2018-04-10replace originURL with GraphicExternalLink class (internally)Tomaž Vajngerl
For now just introduce the GraphicExternalLink internally in ImpGraphic, and use it for the origin URL. In a future patch this will store additional data about the link. Change-Id: I7b4edac80d0e71603d37243ff28bcac1b18fdc01 Reviewed-on: https://gerrit.libreoffice.org/52393 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2018-04-10vcl: detach usage and remove GraphicManager and GraphicCacheTomaž Vajngerl
Also remove some GraphicObjectTest because they call into GraphicManager which now doesn't exist anymore. Change-Id: Ia434736d8611df629af3e897c878a7fb8bbe4706 Reviewed-on: https://gerrit.libreoffice.org/52243 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2018-02-11Add origin URL to Graphic to remember where the image came fromTomaž Vajngerl
Change-Id: I73e7377c2049211de0b464efff03058dc5de33a6 Reviewed-on: https://gerrit.libreoffice.org/49554 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2017-07-27make animation loop sal_uInt32 consistentlyCaolán McNamara
all this foo is ultimately animated gifs and the count there is limited to unsigned 16bit Change-Id: Ib6e6dde7355f3619bb7735743e686e6338a235ee
2017-07-15emfplus: create a wmf/emf/emf+ primitive based importerArmin Le Grand
First steps to organize an importer that can read/interpret wmf/emf/emf+ and deliver a primitive representation for the content by parsing it. Use the same mechanisms as already applied for Svg, so to reuse abilities to keep original binary data to allow save again and embedding in files and have an implemented replacement bitmap based representation. For this, unify the used helper classes to handle more than just Svg. For 1st try, add test code and static bool switches Change-Id: I6e0a82943541d811a8f8d65a84115569fcd8cee7
2017-05-08vcl: split jpeg import into two partsMiklos Vajna
Split the import into two: 1) Just create the bitmap, this part is not thread-safe (e.g. OpenGLContext::makeCurrent() is called when OpenGL is enabled). 2) Import the image into an existing bitmap. The point is that the second part takes much more time than the first, and in the future that part may be executed on a thread, while without such a split the whole ImportJPEG() can't do that. For now GraphicFilter::ImportGraphic() simply invokes the two parts after each other, so no real functional changes yet. Change-Id: Iee742a2cd3c581aeaf1a1ed9f55cd543955a85e0 Reviewed-on: https://gerrit.libreoffice.org/37397 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-01-27coverity#1371303 Missing move assignment operatorCaolán McNamara
Change-Id: I0dec3e192f3da895398a8b011c0e7275aab59d73
2017-01-27remove weirdness of ImpGraphic assignment operatorCaolán McNamara
seems to me that this hackery is to avoid the swapfile getting pulled out from underneath it during swapin Change-Id: I6b58d7e31731db8edc4026460beabc667204dcae Reviewed-on: https://gerrit.libreoffice.org/33620 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-01-21coverity#1399156 split ImplCreateSwapInfo and ImplClearGraphicsCaolán McNamara
Change-Id: Iab449967c70a55c03c3e6b95de8e7d973cb68089
2017-01-01so noone cares about the return of [Read|Write]ImpGraphicCaolán McNamara
Change-Id: I2e251ff71b1f20e43c797c3fc901f3a70dce7c6c
2016-11-04loplugin:unnnecessaryvirtual in vclNoel Grandin
Change-Id: Ifa8bfafb2e527ce5976f3bd310d107cb2840a5f6 Reviewed-on: https://gerrit.libreoffice.org/30531 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-09-23use std to impl this resource sharingCaolán McNamara
Change-Id: I41ea7bf672040089ccca5cf2bc449a0d0e78b903 Reviewed-on: https://gerrit.libreoffice.org/29219 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-07-27loplugin:countusersofdefaultparams in tools..xmlsecurityNoel Grandin
find methods with default params with only zero or one call site Change-Id: Ie5b30f60e9fe00ba1acf0dfc79b005ded46f05a0 Reviewed-on: https://gerrit.libreoffice.org/27512 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-11Modify ImpGraphic class, GraphicReader context to use unique ptrMark Page
Change-Id: I51c3995f4a6e940a5235524eb94dd356b27ae8d7 Reviewed-on: https://gerrit.libreoffice.org/26955 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-04Modify the ImpGraphic class, mpGfxLink to use an unique pointerMark Page
Change-Id: I74eb2347970ef19f7a215b86bfeae9945c07dbea Reviewed-on: https://gerrit.libreoffice.org/26889 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-01Modify the ImpGraphic class, mpAnimation to use a unique pointerMark Page
Change-Id: Icb2be06cf5476d4d04752ab2270fe1c58453fe8f Reviewed-on: https://gerrit.libreoffice.org/26791 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-30Modify the ImpGraphic class SwapFile to use a shared pointerMark Page
Change-Id: I2cf85f91d9022a4ea10804efe2e986e95a63419f Reviewed-on: https://gerrit.libreoffice.org/26284 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-24vcl: add graphic export-as-pdf filterMiklos Vajna
In case the metafile was imported from a PDF originally, then this allows storing the PDF stream next to the graphic. This means that e.g. in Writer choosing 'Save' from the context menu of the graphic can write the original PDF stream, not the replacement metafile. Change-Id: I4ab45d5af17fe46d7538df6d79d6b57ed163572a Reviewed-on: https://gerrit.libreoffice.org/26628 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-03-12vcl graph: stop abusing a pointer for a boolNorbert Thiebaud
Change-Id: I816fe3a52c03fa5a3fd372492985783f9f6ff91c Reviewed-on: https://gerrit.libreoffice.org/23181 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-01-25vcl: remove unnecessary header includes from impgraph.hxxChris Sherlock
Change-Id: I512d0d79ed1f65288a047ed0316f9cf6f1762aca
2016-01-25vcl: remove entirely useless comments, fix tab spacing of impgraph.hxxChris Sherlock
Change-Id: Id66ebb7c20b2f5cf03cb8e0e676a3467fbee3b4b
2015-12-11No need for a separate <vcl/graph.h>Tor Lillqvist
Change-Id: I962544005b5d408f7c044a02eefe09b87d8a81fe
2015-11-10loplugin:nullptr (automatic rewrite)Stephan Bergmann
Change-Id: I05e89f9896170d4df3d1377549ea074f06b884a0
2015-09-10convert Link<> to typedNoel Grandin
Change-Id: I7aa46c5cbaf70bea5756a4066bc620b3c40dedee
2015-09-01Switching to 64-bit checksum: substituted sal_uLong with BitmapChecksumMarco Cecchetti
A typedef sal_uLong BitmapChecksum; has been added to include/vcl/checksum.hxx Wherever needed sal_uLong and sal_Int32 has been substituted with BitmapChecksum. A BITMAP_CHECKSUM_BITS constant equal to the amount of bits used by the BitmapChecksum type has been defined and used in `GraphicID::GetIDString` (vstools/source/graphic/grfcache.cxx). Change-Id: I74bd285089e58a8b18c06233d75b87023c7bf31b
2015-08-29sal_uLong to sal_uInt32 for CRC32Matteo Casalin
Change-Id: Id13e07f479615b8eb39d05e6534f514277cc3d03
2015-04-30Gradually typed LinkStephan Bergmann
Turn the Link class into a template abstracting over the link's argument and return types, but provide default template arguments that keep the generic, unsafe "void* in, sal_IntPtr out" behvior. That way, individual uses of the Link class can be updated over time. All the related macros are duplicated with ..._TYPED counterparts, that additionally take the RetType (except for LINK_TYPED, which manages to infer the relevant types from the supplied Member). (It would have been attractive to change the "untyped" LinkStubs from taking a void* to a properly typed ArgType parameter, too, but that would cause -fsanitize=function to flag uses of "untyped" Link::Call.) Change-Id: I3b0140378bad99abbf240140ebb4a46a05d2d2f8
2014-11-21maDocFileURLStr is always emptyZolnai Tamás
Change-Id: I34c4a44d4fbe8d721a3a0bda5dbe35c68fe15c13
2014-11-19ImpGraphic::ImplReadEmbedded: bSwap is false; remove dead codeMatúš Kukan
Change-Id: Ie5b6b593e178d3752ebf7421af8aee4b50f75819
2014-11-07Avoid using null pointer as a special indicatorZolnai Tamás
When ImpGraphic::ImplSwapOut() is called with null pointer it was assumed that it is becase the graphic is a link and so we don't need to swap out it actually (we can load it anytime using the link), only clear the graphic's internal data. The problem with that it can happen that ImplSwapOut() is called with null pointer accidentally on a non-link graphic object which leads to that we loose the graphic. Seems more robust to use an explicit indicator (GRFMGR_AUTOSWAPSTREAM_LINK) for links swapout. indicator Change-Id: Icf31524a192c7866278ba6a13eb85648aa69f554
2014-06-17improve the inlinesimplememberfunctions clang pluginNoel Grandin
Change-Id: I6d5a952901648e01904ef5c37f953c517304d31e
2014-06-09loplugin: inlinesimplememberfunctionsNoel Grandin
Change-Id: I42119f656ca528286fb25d2d36c0af54b7d04a6b
2014-04-02Kill superfluous vertical whitespaceTor Lillqvist
Change-Id: I81ce8fd7022bf283db668705efdfb0666f87bde9
2014-02-26Remove visual noise from vclAlexander Wilms
Conflicts: vcl/source/app/settings.cxx vcl/source/window/dockmgr.cxx vcl/source/window/dockwin.cxx vcl/source/window/floatwin.cxx vcl/source/window/toolbox2.cxx Change-Id: Ie67681549a76e77064b09d4b5bf80fe4c6010341 Reviewed-on: https://gerrit.libreoffice.org/8339 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2014-02-21vcl: sal_Bool -> boolStephan Bergmann
Change-Id: I2a3e3d3e3266ea0f0fafdd91362076a4aa160f0e
2014-02-04convert specialised SvStream::operator>> methods to ReadXXX methodsNoel Grandin
as preparation for converting the SvStream::operator>> methods on primitive types Change-Id: I62f134bced15c687d6e0d46924f56e8d1c3d95b9 Reviewed-on: https://gerrit.libreoffice.org/7798 Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>