office-gobmx/filter
Miklos Vajna 570be56b37 svx: cache PNG export of graphic shapes
One scenario where this is useful is: manipulate a JPEG photo in
Online's Impress, e.g. resize it multiple times. Each time we generate
an SVG preview of the shape, which includes the PNG export of the bitmap
itself.

This helps with a desktop CPU:

debug:9976:9974: SVGFilter::filter finished in 3422 ms
debug:9976:9974: SVGFilter::filter finished in 176 ms

But it is meant to help on mobile, too, where writing such a bitmap as
PNG takes 16-17 seconds without this.

(This works because SVG writes the original bitmap, even if it's scaled.
If that invariant will be broken in the future, we still emit correct
output, but then the cache will be less useful.)

Change-Id: I7204b04efeeb42c6eec67f04dfdb8a4ed50443a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89377
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2020-02-25 10:03:10 +01:00
..
inc
qa Fix typo 2020-02-24 19:30:59 +01:00
source svx: cache PNG export of graphic shapes 2020-02-25 10:03:10 +01:00
uiconfig/ui Add minimum support for PDF/A3 2020-02-08 15:03:07 +01:00
AllLangMoTarget_flt.mk
Configuration_filter.mk GBUILD_TRACE, support for finding out where the build time is spent 2020-02-16 14:49:45 +01:00
CppunitTest_filter_dialogs_test.mk
CppunitTest_filter_dxf_test.mk
CppunitTest_filter_eps_test.mk
CppunitTest_filter_met_test.mk
CppunitTest_filter_msfilter.mk
CppunitTest_filter_pcd_test.mk
CppunitTest_filter_pcx_test.mk
CppunitTest_filter_pict_test.mk
CppunitTest_filter_ppm_test.mk
CppunitTest_filter_priority.mk
CppunitTest_filter_psd_test.mk
CppunitTest_filter_ras_test.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
JunitTest_filter_complex.mk
Library_filterconfig.mk
Library_flash.mk
Library_gie.mk
Library_graphicfilter.mk
Library_icg.mk
Library_msfilter.mk
Library_odfflatxml.mk
Library_pdffilter.mk
Library_storagefd.mk
Library_svgfilter.mk
Library_t602filter.mk
Library_textfd.mk
Library_xmlfa.mk
Library_xmlfd.mk
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.