summaryrefslogtreecommitdiffstats
path: root/config_host/config_skia.h.in
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:54:39 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:54:39 +0000
commit267c6f2ac71f92999e969232431ba04678e7437e (patch)
tree358c9467650e1d0a1d7227a21dac2e3d08b622b2 /config_host/config_skia.h.in
parentInitial commit. (diff)
downloadlibreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz
libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'config_host/config_skia.h.in')
-rw-r--r--config_host/config_skia.h.in80
1 files changed, 80 insertions, 0 deletions
diff --git a/config_host/config_skia.h.in b/config_host/config_skia.h.in
new file mode 100644
index 0000000000..602e18a3f6
--- /dev/null
+++ b/config_host/config_skia.h.in
@@ -0,0 +1,80 @@
+/*
+
+Settings for the Skia library. We compile the Skia library with these
+settings and also LO code uses this header to ensure the settings
+are the same.
+*/
+
+#ifndef CONFIG_SKIA_H
+#define CONFIG_SKIA_H
+
+// This is a setting that should be set manually and it affects LO
+// code rather than Skia itself. It basically controls setting
+// BackendCapabilities::mbSupportsBitmap32, i.e. whether one LO bitmap
+// contains all the 32bits of an image including the alpha (premultiplied).
+//
+// Since Skia does not natively support 24bpp, the preferred setup is
+// that the setting should be enabled, it makes the code faster and cleaner.
+//
+// Unfortunately VCL historically splits alpha into a whole separate
+// bitmap and works with 24bpp+8bpp, which is generally more complicated,
+// more error-prone and just worse, but that's how LO code has been
+// written and so there are many places in LO that expect this and
+// do not work correctly with true 32bpp bitmaps.
+//
+// So ultimately the 24+8 split should be dumped (preferably in all of LO,
+// not just the Skia-related code), but until all of LO works correctly
+// with 32bpp keep this disabled in order to avoid such breakages.
+
+//#define SKIA_USE_BITMAP32 1
+#define SKIA_USE_BITMAP32 0
+
+
+// GPU support (set by configure).
+#undef SK_GANESH
+// Vulkan support enabled (set by configure).
+#undef SK_VULKAN
+// Metal support enabled (set by configure).
+#undef SK_METAL
+
+// Memory allocator for Vulkan.
+#define SK_USE_VMA 1
+
+#define SK_CODEC_DECODES_PNG 1
+#define SK_ENCODE_PNG 1
+
+// These are just to avoid warnings (some headers use them even with GL disabled).
+#define SK_ASSUME_GL 1
+#define SK_ASSUME_GL_ES 0
+
+#define SK_ENABLE_SKSL 1
+
+// See https://codereview.chromium.org/2089583002 . This makes raster drawing
+// faster in some cases, it was made conditional because of some tests failing,
+// but if I'm reading the review correctly the code is in fact fine and just
+// those tests needed updating, which presumably has never happened.
+#define SK_DRAWBITMAPRECT_FAST_OFFSET 1
+
+// Default to BGRA. Skia already defaults to that on Windows, and it seems
+// the default X11 visual is actually also BGRA.
+#define SK_R32_SHIFT 16
+
+// Enable Skia's internal checks depending on DBG_UTIL mode.
+// ENABLE_SKIA_DEBUG controls whether to build with or without optimizations, and
+// is set by using --enable-skia=debug.
+#ifdef DBG_UTIL
+
+#define SK_DEBUG
+
+#define SK_ENABLE_DUMP_GPU
+
+#else
+
+#define SK_RELEASE
+
+#endif // DBG_UTIL
+
+// TODO ?
+//#define SK_R32_SHIFT 16
+
+#endif