summaryrefslogtreecommitdiff
path: root/svgio/qa
AgeCommit message (Collapse)Author
2024-10-05Use good old string literals in assertXPath and friendsMike Kaganski
These are only sent to an external API expecting char*-like strings, or for comparison. Having every assertXPath having three of _[ou]str is too much syntactic noise, making the unit tests almost unreadable. Change-Id: Ic004a36ea75e7bfe0b96f405c40f926a957b51cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174416 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-10-02tdf#163212: context-fill/context-stroke can also use gradientsXisco Fauli
Change-Id: Ic6f7f5e0817d8f5fccee64938004aa899bde47dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174382 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-09-12Temporarily skip unit tests on native arm64 buildBalazs Varga
which indicating unit test fails. Change-Id: I2689b0dda888e15e52ca60cc18e1705a1aefe968 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173143 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> Tested-by: Jenkins
2024-07-20CairoSDPR: make use of RGBA PolyPolygon in more casesArmin Le Grand (Collabora)
Change-Id: I7cd93e5452bce96eef295c766f4cb391ddd67250 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170792 Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com> Tested-by: Jenkins
2024-07-11tdf#161985: getOpacity is also called from other placesXisco Fauli
Partially revert 56039daae4a436d7ea1b093a02cf0e8ad3bda4a9 "tdf#149673: only check opacity from parent..." to make getOpacity behave as before and move the new behaviour of getOpacity inside add_postProcess Change-Id: If475cddbc4967308fa06adacda621cb3790c6f70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170376 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-06-13tdf#161213: fill can use context-stroke and vice versaXisco Fauli
Change-Id: Id127bd4943ff1b67915d1de3ba4fcf93dab21423 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168774 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-05-15loplugin:ostr in svgioNoel Grandin
Change-Id: I9869f8558a69d5a6b6ac3165c627b943c00e787e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167653 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-05-06tdf#155651: Add support for "context-fill"Xisco Fauli
Change-Id: I6f96cc7c059ece5f9401fc0ae552cf279e53109c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167230 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-05-03tdf#155651: Add support for "context-stroke"Xisco Fauli
Change-Id: Ib4f4a7b644d0d6c6b36e31b80fd7adc18999110d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167024 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-25CppunitTest_svgio: fix mid-air collisionXisco Fauli
it was caused by 98935eef13c7d755221d79fe7d3c5869a40a7c37 "tdf#159661, tdf#160773: svgio: Add unittest" and 7f64148507a360825e9c28ddb7077996df9fa092 "Fix a thinko in 8a97f1ba8d9ccb65b2c89106de20666311d90c30" This partially reverts d984836834e67b5bcd618ebd5d1633138985a881 "Fix unit test after commit 98935eef13c7d755221d79fe7d3c5869a40a7c37" Kudos to Mike for keeping Jenkins happy Change-Id: I034759b2cd95cbaaeb84ec1b528bf5b61487a1e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166591 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-24Fix unit test after commit 98935eef13c7d755221d79fe7d3c5869a40a7c37Mike Kaganski
Similar to commit cfa9990d470b10548c7fed64eb1182fea11d41e0 (Enable this test on all platforms. 2024-04-20), it seems that 'mask' gets exported inconsistently. This patch workarouns the problem; a proper fix would be finding the real cause. Change-Id: I94c89442aa0385262fba67ec58c9d8d12ffbea27 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166573 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-23tdf#159661, tdf#160773: svgio: Add unittestXisco Fauli
Change-Id: I2d0b96f13e02ac81b97ea347889c76770c22a989 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166509 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: also add normal blend filterXisco Fauli
Change-Id: I3edc7495975618357f002536857a11dcc72cc0b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166460 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#160782: convert to bitmapEx from 0,0 to width,heightXisco Fauli
This is the way it's done everywhere. Partially revert 4b6e0f2c88debaedb514c868e061c21e15215b6e "tdf#160726, tdf#48062: Simplify how BitmapExs are created" Change-Id: I15fea0b6855a65da7cb48b24fc00ba303e33dcf8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166456 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: Add support for lighten mode in feBlendXisco Fauli
Change-Id: I17471a9c70a38d05de5ad476f817285fb2438e5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166429 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: Add support for darken mode in feBlendXisco Fauli
Change-Id: I56862163b7bf1177120081c95ab7851a5fc4019b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166428 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: Add support for multiply mode in feBlendXisco Fauli
Change-Id: I03230e122a10dd6ada6af357c674c278b6b99d9e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166427 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#159660: premultiply colors for screen blendXisco Fauli
This is needed after 4b6e0f2c88debaedb514c868e061c21e15215b6e "tdf#160726, tdf#48062: Simplify how BitmapExs are created" Otherwise, only the common area is displayed Change-Id: I40c798380049e62df8729c4acdb5db50d988d8e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166426 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-22tdf#160726, tdf#48062: Simplify how BitmapExs are createdXisco Fauli
In my initial approach, I tranformed the primitive2DContainers before converting them to BitmapEx. This caused circles like https://bugs.documentfoundation.org/attachment.cgi?id=193790 not to be displayed. Simplify how BitmapExs are created by just using the range both primitive2DContainers have in common. This way, DrawBitmapInRect can be dropped now Change-Id: I2401dc87b98e04b9cf9f5ebade2b5622d884fc3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166391 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-20tdf#157103: fix SVG whitespace handlingMike Kaganski
Previous code tried to hack some tricks to restore whitespaces after trimming them according to the xml:space attribute value. But it was wrong in multiple ways. 1. The collapsed space must stay in the block where its start was. When a block ended with a space, then trimming the space from it, and adding to a next block, can change the size of the space. 2. The shift of a line (e.g., specifying x and y values) doesn't end the logical line. A space before such a shift must be kept by the same rules, as if there weren't a shift. 3. A block with xml:space="preserve" is treated as if it consists of all non-whitespace characters, even if its leading or trailing characters are spaces. I.e., a trailing space in a block before, or a leading space in a block after, should be collapsed into a single space, not removed - even when the space-preserving block itself is made invisible. Change-Id: Ic778d1e9d6b9d0c342ea74ad78d44bb47bc8d708 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166239 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-20tdf#160702: improve text positioningMike Kaganski
Opening an SVG with text in different elements (e.g., tspans) in the same text element performs calculations to position the parts properly (i.e., the next part will start where the previous part ended, unless the position in overridden explicitly). These calculations require to know the text widths. The first problem leas here: the text width was calculated for a typically small text size (numerically equal to the pixel size defined in the SVG), but these calculations aren't truly linear, because font rendering may change depending on font height. Additionally, the rounding gives much higher error in smaller sizes than in larger. There was already a workaround for a similar problem in ViewRedirector::createRedirectedPrimitive2DSequence, where a large font (with 100 times greater height) was used to increase correctness. This was also used here, with the same large height (50000) used as a reference. Then, at the time of wrawing the text at different zoom levels, the code in VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D creates a font of a calculated size, and uses it to output the text. But the font is always created with an integral height, which means, that for a wanted height of 2.5 (in a zoomed out view), the really used height will be 3, which is 20% larger; or for wanted height of 2.4, the actual height will be 2 (20% smaller). This resulted in odd jumps of the text widths, when the text may overlap the following part, or conversely, create a big gap before the next gap. To try to mitigate that, the function now takes the difference between the wanted and the actual font size into account, and adjusts the MapMode accordingly. This doesn't fix the jumping completely (e.g., because of the mentioned special handling of small font sizes in the fonts thenselves, like hinting), but still makes the calculations much more stable, decreasing the amount of jumping. Similar changes are made in TextLayouterDevice. Use of the functions that return text size as a double, not rounded value, should additionally help improving stability. Change-Id: I455845d8ca43ee9c06a0fc980947f35d8a25797a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166238 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-20svgio: remove duplicated assertXPathDoubleXisco Fauli
Change-Id: I82c4abc6883d292114b4239efee60aee082357fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166307 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-19tdf#160721: nothing is displayed in case of wrong 'in' referenceXisco Fauli
Change-Id: I746ec8a12dba7832241693dac7f20788a2fa85bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166267 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-04-19tdf#160622: Let SalLayout::GetBoundRect return basegfx::B2DRectangleMike Kaganski
This avoids premature rounding in TextLayouterDevice::getTextBoundRect. The box in D2DWriteTextOutRenderer::performRender needs to be expanded to allow room for the line width (which now will be guaranteed on all sides; previously, the rounding could happen to give no room on some side, even prior to commit 8962141a12c966b2d891829925e6203bf8d51852). Fixes some lines partially cut off in smaller text (or zoomed out). Change-Id: I07335136021f894cf045363b4d736bfab06c64d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166236 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-19tdf#160717: fix ex handlingMike Kaganski
Same as in commit e27572686130df43d1d65c574b0c34f39fc0d1a9 (tdf#160593: make sure to use current element's font size for em unit, 2024-04-18) for em. Change-Id: Id9003c0426a6b373456da1aa1550f7ff07f766a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166235 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-18tdf#160594: Use the recommended fallback of 0.5em for ex in font-sizeMike Kaganski
This fixes the error of identical treatment of em and ex in font-size, which violated https://drafts.csswg.org/css-values-4/#font-relative-length. The fix uses the fallback of 0.5em for ex, similar to the code used in SvgNumber::solveNonPercentage. A follow-up should implement the correct use of "x-height of the first available font". Change-Id: Id9d581994e158d629d9752299ad93ac7e9fe4cad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166234 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-18tdf#160593: make sure to use current element's font size for em unitMike Kaganski
According to https://drafts.csswg.org/css-values-4/#font-relative-length em is "equal to the computed value of the font-size property of the element on which it is used". This means, that for an element that defines its own font-size, attributes like 'dy' using em refer to the new font-size, not to inherited font-size. Change-Id: Ie5a013df99a68edddf466e4c0ee5311f6219fcb2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166233 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-14Round in XmlWriter::attribute when passing a doubleMike Kaganski
Before, it truncated. Rounding provides a closer value. Change-Id: I213e6ae34ada2f5081cb2c8b2ef431448c712b37 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165947 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-03-27tdf#160386: Add support for switch elementXisco Fauli
For now, only use language tag, meaning if there is a file like in the unittest with <text systemLanguage="en-us">Howdy!</text> <text systemLanguage="en-gb">Wotcha!</text> <text systemLanguage="en-au">G'day!</text> <text systemLanguage="en">Hello!</text> "Hello!" with be displayed in a en_AU system locale This patch partially reverts 13a41e7a12598c7896d6dc8d34aba6af5b80b83c "tdf#150124: do nothing when parent is of unkown type" making 0dfd8288a87b58e503bb3a41be6137485fbf3f68 "ofz#60384 Direct-leak" no longer necessary Change-Id: Ifc73bc69aa997088dc0a2b11d7d30446303fa3b3 Change-Id: I885ef0f2c44b86196881fe55a963db2e5c7eb1be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165394 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-03-27tdf#156579: svgio: Add unittestXisco Fauli
Change-Id: I77ab0c72209fa02c6e463351e8cda09213d47ac3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165399 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-03-27CppunitTest_svgio: factor out common codeXisco Fauli
Change-Id: I5171a07d9015706a89f25b0c2805ebed8444260d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165401 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-03-26tdf#160373: Iterate over all parents to check whether it's a clipPath contentXisco Fauli
Change-Id: I383ec264e4c88ebcee2ae6a839b762bba8abfc12 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165347 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-03-15tdf#48062: Add support for atop operator in feCompositeXisco Fauli
Change-Id: Ifb83b4361d37566d189a7c5b11835f2a5e0eecc2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164862 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-03-15tdf#48062: Add support for xor, in and out operators in feCompositeXisco Fauli
atop and arithmetic are still missing Change-Id: I9b5bfeaa87b48071708ca4cb082916ea5f260adb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164852 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-03-13tdf#48062: Add support for feComposite filterXisco Fauli
At the moment, only 'over' operator is supported Change-Id: If21c9ba39b3cd0b772ea27165cda7ae40fb42d60 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164765 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-03-13tdf#159660: Add support for feBlend filterXisco Fauli
At the moment, only the 'normal' mode is supported Change-Id: I31d1536e03e938ce0f7304a37eb6c1071ecfcf4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164763 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-03-12tdf#159660: Add support for feMerge and feMergeNodeXisco Fauli
Change-Id: I52e35f6eb5efc7b064145486aa4e6fb2366b143c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164722 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-03-01tdf#159968: Support overflow:visible in marker elementXisco Fauli
Change-Id: I4ea648cf94a4bb321a78843a9898769a69c5630d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164224 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-02-29tdf#159947: Add support for in and result filter attributesXisco Fauli
Change-Id: I8bc7e319a64c528893de8454c64545146ad4e9d8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164108 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-02-07tdf#159601: svgio: do not use std::move hereXisco Fauli
Thanks to Caolán for spotting it in https://gerrit.libreoffice.org/c/core/+/163015/comments/0fda53b2_f6d5a0cd Change-Id: Ifad349a2731009b520d4992a12d4702e3be6ba6f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163083 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-02-06tdf#159594: reuse target for symbols' childrenXisco Fauli
Regression from e7186b49a9a0b24ddc3b1c5384b5d9facb03518c "tdf#158445: support viewBox in symbol elements" Change-Id: Ie2198c47149def17fa3cb612046b61bf32e873bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163046 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-02-05tdf#159566: match 'central' dominant-baseline to 'middle'Xisco Fauli
Inkscape also does it the same way Change-Id: I3e1cea091e7314886bbc9135c55698892239bec7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163006 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-02-05tdf#108037 Reduce time and memory consumed exporting to PDFNoel Grandin
by avoiding making multiple copies of the Primitive2D container that we pass to TransformPrimitive2D. Instead, make TransformPrimitive2D store its children using a GroupPrimitive2D, which means we can share the GroupPrimitive2D among all the TransformPrimitive2D instances we create. Change-Id: I8a4398f9db6a6ab013ee24ad53836975fba6f3df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162951 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-01-26tdf#158445: support viewBox in symbol elementsXisco Fauli
Change-Id: Ie45b1e1dd4a4dcfc3cf3ce3d30f8dd9e040e37fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162605 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-11-19Extended loplugin:ostr: svgioStephan Bergmann
Change-Id: I5a93e5f0a3cfc0fd85ac53ba2f58131561508386 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159675 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-11-02Related: tdf#157939 put CppunitTest_svgio under non_application_font_use:abortCaolán McNamara
Change-Id: Ib48e8045ad739b6f6fe98ab00cd609b54d4c3113 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158843 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-09-26tdf#97710: do not create nonzero conform for polylineXisco Fauli
Change-Id: Ib9d4e957b83ad84b79ae4ade5c6be3ab3d9d8028 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157286 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-09-06tdf#157113: Add gap even if baseline is differentXisco Fauli
This was a workaround for https://bz.apache.org/ooo/show_bug.cgi?id=122524 but it's no longer needed since 5079e7937ef471a44dcf119dc6ae0a334d9c6adc "tdf#156251: Add gap between text elements when needed" Change-Id: I83af59a515d56af6b0e3cf3e351d3df52510a17d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156613 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-09-05tdf#156569: '%' can be in the middle of the stringXisco Fauli
Change-Id: I5d6ab57c17ab2cbce4d3df629a91a006fad2198d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156564 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-08-22tdf#129356: handle css combinator when the element name is combined...Xisco Fauli
... with the ID or the class While at it, simplify the code a bit Change-Id: I9e36f334b884d31229568835a346d4427a47c760 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155945 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>