From 89b414dc8a9c3285e1f16f88b9683b96dbc63d03 Mon Sep 17 00:00:00 2001 From: K4sum1 Date: Tue, 23 Jul 2024 01:25:18 -0500 Subject: [PATCH] Very broken initial Cairo backend support --- gfx/thebes/gfxPlatform.cpp | 20 ++++++++++---------- gfx/thebes/gfxWindowsPlatform.cpp | 6 ++++-- modules/libpref/init/all.js | 8 +++++--- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp index f84e6fb99073cf..22ef0fca859317 100644 --- a/gfx/thebes/gfxPlatform.cpp +++ b/gfx/thebes/gfxPlatform.cpp @@ -1921,16 +1921,16 @@ gfxFontEntry* gfxPlatform::MakePlatformFont(const nsACString& aFontName, BackendPrefsData gfxPlatform::GetBackendPrefs() const { BackendPrefsData data; - data.mCanvasBitmask = BackendTypeBit(BackendType::SKIA); - data.mContentBitmask = BackendTypeBit(BackendType::SKIA); + data.mCanvasBitmask = BackendTypeBit(BackendType::CAIRO); + data.mContentBitmask = BackendTypeBit(BackendType::CAIRO); -#ifdef MOZ_WIDGET_GTK - data.mCanvasBitmask |= BackendTypeBit(BackendType::CAIRO); - data.mContentBitmask |= BackendTypeBit(BackendType::CAIRO); +#ifndef MOZ_WIDGET_GTK + data.mCanvasBitmask |= BackendTypeBit(BackendType::SKIA); + data.mContentBitmask |= BackendTypeBit(BackendType::SKIA); #endif - data.mCanvasDefault = BackendType::SKIA; - data.mContentDefault = BackendType::SKIA; + data.mCanvasDefault = BackendType::CAIRO; + data.mContentDefault = BackendType::CAIRO; return data; } @@ -1963,9 +1963,9 @@ void gfxPlatform::InitBackendPrefs(BackendPrefsData&& aPrefsData) { mContentBackendBitmask |= BackendTypeBit(aPrefsData.mContentDefault); } - uint32_t swBackendBits = BackendTypeBit(BackendType::SKIA); -#ifdef MOZ_WIDGET_GTK - swBackendBits |= BackendTypeBit(BackendType::CAIRO); + uint32_t swBackendBits = BackendTypeBit(BackendType::CAIRO); +#ifndef MOZ_WIDGET_GTK + swBackendBits |= BackendTypeBit(BackendType::SKIA); #endif mSoftwareBackend = GetContentBackendPref(swBackendBits); if (mSoftwareBackend == BackendType::NONE) { diff --git a/gfx/thebes/gfxWindowsPlatform.cpp b/gfx/thebes/gfxWindowsPlatform.cpp index 779db14d09d611..ff735d463ce52c 100644 --- a/gfx/thebes/gfxWindowsPlatform.cpp +++ b/gfx/thebes/gfxWindowsPlatform.cpp @@ -504,8 +504,10 @@ bool gfxWindowsPlatform::HandleDeviceReset() { BackendPrefsData gfxWindowsPlatform::GetBackendPrefs() const { BackendPrefsData data; - data.mCanvasBitmask = BackendTypeBit(BackendType::SKIA); - data.mContentBitmask = BackendTypeBit(BackendType::SKIA); + data.mCanvasBitmask = + BackendTypeBit(BackendType::CAIRO) | BackendTypeBit(BackendType::SKIA); + data.mContentBitmask = + BackendTypeBit(BackendType::CAIRO) | BackendTypeBit(BackendType::SKIA); data.mCanvasDefault = BackendType::SKIA; data.mContentDefault = BackendType::SKIA; diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 18f341ed718b5b..5a8d5a0cb3699f 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -414,14 +414,16 @@ pref("gfx.downloadable_fonts.fallback_delay_short", 100); #if defined(XP_WIN) // comma separated list of backends to use in order of preference - // e.g., pref("gfx.canvas.azure.backends", "direct2d,skia"); - pref("gfx.canvas.azure.backends", "direct2d1.1,skia"); + // e.g., pref("gfx.canvas.azure.backends", "direct2d,skia,cairo"); + pref("gfx.canvas.azure.backends", "direct2d1.1,skia,cairo"); + pref("gfx.content.azure.backends", "direct2d1.1,skia,cairo"); #elif defined(XP_MACOSX) pref("gfx.canvas.azure.backends", "skia"); + pref("gfx.content.azure.backends", "skia"); #else pref("gfx.canvas.azure.backends", "skia"); + pref("gfx.content.azure.backends", "skia"); #endif -pref("gfx.content.azure.backends", "skia"); #ifdef XP_WIN pref("gfx.webrender.flip-sequential", false);