office-gobmx/filter
Miklos Vajna 666f252457 SVG export: fix lost semi-transparent text on shapes
Extend SVGTextWriter::setTextPosition(), so when it looks for a text
action in a metafile, it recurses into transparency groups, so the text
is not lost.

Extract part of SVGActionWriter::ImplWriteMask() into a new StartMask(),
so we can detect the case when the transparency group has a constant
alpha, i.e. no complex mask is needed, just an opacity value.

When looking for text, remember if we saw a request for text opacity and
make the transparency group writing in SVGActionWriter::ImplWriteMask()
conditional to avoid duplication. This is needed because once we're
inside <text>, we don't want to write an invalid transparency group via
<g>, rather we want a fill-opacity on the existing <tspan>.

With this, the SVG export is on par with PDF export for semi-transparent
shape text.

Change-Id: If43b0ab3446015299acc4b37590358867c5fac5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98937
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2020-07-17 10:07:11 +02:00
..
inc
qa SVG export: fix lost semi-transparent text on shapes 2020-07-17 10:07:11 +02:00
source SVG export: fix lost semi-transparent text on shapes 2020-07-17 10:07:11 +02:00
uiconfig/ui
AllLangMoTarget_flt.mk
Configuration_filter.mk
CppunitTest_filter_dialogs_test.mk
CppunitTest_filter_dxf_test.mk
CppunitTest_filter_eps_test.mk
CppunitTest_filter_met_test.mk
CppunitTest_filter_msfilter.mk reduce number of framework libraries 2020-07-04 22:42:54 +02:00
CppunitTest_filter_pcd_test.mk
CppunitTest_filter_pcx_test.mk
CppunitTest_filter_pict_test.mk
CppunitTest_filter_ppm_test.mk
CppunitTest_filter_priority.mk reduce number of framework libraries 2020-07-04 22:42:54 +02:00
CppunitTest_filter_psd_test.mk
CppunitTest_filter_ras_test.mk
CppunitTest_filter_svg.mk
CppunitTest_filter_textfilterdetect.mk
CppunitTest_filter_tga_test.mk
CppunitTest_filter_tiff_test.mk
CppunitTest_filter_xslt.mk
CustomTarget_svg.mk
IwyuFilter_filter.yaml replace usage of blacklist with excludelist for IWYU 2020-07-10 02:03:40 +02:00
JunitTest_filter_complex.mk
Library_filterconfig.mk reduce number of framework libraries 2020-07-04 16:56:59 +02:00
Library_gie.mk
Library_graphicfilter.mk filter/graphic: create instances with uno constructors 2020-07-13 08:48:38 +02:00
Library_icg.mk
Library_msfilter.mk filter/msfilter: create instances with uno constructors 2020-07-13 08:47:58 +02:00
Library_odfflatxml.mk
Library_pdffilter.mk filter/pdf: create instances with uno constructors 2020-07-12 21:50:05 +02:00
Library_storagefd.mk filter/storagefd: create instances with uno constructors 2020-07-12 14:21:29 +02:00
Library_svgfilter.mk
Library_t602filter.mk filter/t602: create instances with uno constructors 2020-07-12 14:21:06 +02:00
Library_textfd.mk
Library_xmlfa.mk filter/xmlfilteradaptor: create instances with uno constructors 2020-07-12 13:20:37 +02:00
Library_xmlfd.mk filter/xmlfilterdetect: create instances with uno constructors 2020-07-11 21:52:24 +02:00
Library_xsltdlg.mk
Library_xsltfilter.mk
Makefile
Module_filter.mk
Package_docbook.mk
Package_xhtml.mk
Package_xslt.mk
README
UIConfig_filter.mk

Filter registration and some simple filters (also descriptions).

Desperate splitting of code into small shared libraries for historical
reasons presumably (OS/2 and Windows 3.x). The libraries produced from
the code in each subdirectory of filter/source/graphicfilter are
graphic format import or export filters. But they don't have uniform
API. Some have either a GraphicImport or GraphicExport entry point,
and are loaded and used in a uniform fashion from code in
svtools/source/filter/filter.cxx. Others have different API and are
loaded from other places. For instance "icgm" has ImportCGM, and is
loaded and used by sd/source/filter/cgm/sdcgmfilter.cxx (!).
Svgreader is used for "File->Open" and then to choose the svg file.
For "Insert->Picture->From File", see svgio/source/svgreader directory.

====================
filter configuration
====================

The filter configuration consists of two parts, the type definition in
filter/source/config/fragments/types/ and the actual filter definition
in filter/source/config/fragments/filters/.

Each file type e.g. text file should be represented by exactly one
type definition. This type can then be referenced by several different
filters, e.g. calc text, writer text.