office-gobmx/external/skia/windows-typeface-directwrite.patch.1
Noel Grandin f532894afd update to skia m126
Change-Id: Id5f93ad07171228cf0701bd330be1ccf51c32e51
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174739
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-10-10 12:48:26 +02:00

80 lines
3.6 KiB
Groff

diff -ur skia.org/include/ports/SkTypeface_win.h skia/include/ports/SkTypeface_win.h
--- skia.org/include/ports/SkTypeface_win.h 2024-10-09 15:15:35.479395601 +0200
+++ skia/include/ports/SkTypeface_win.h 2024-10-09 15:15:55.130556562 +0200
@@ -59,5 +59,13 @@
IDWriteFontCollection* collection,
IDWriteFontFallback* fallback);
+struct IDWriteFontFace;
+struct IDWriteFont;
+struct IDWriteFontFamily;
+SK_API SkTypeface* SkCreateTypefaceDirectWrite(sk_sp<SkFontMgr> fontMgr,
+ IDWriteFontFace* fontFace,
+ IDWriteFont* font,
+ IDWriteFontFamily* fontFamily);
+
#endif // SK_BUILD_FOR_WIN
#endif // SkTypeface_win_DEFINED
diff -ur skia.org/include/ports/SkTypeface_win.h.orig skia/include/ports/SkTypeface_win.h.orig
--- skia.org/include/ports/SkTypeface_win.h.orig 2024-10-09 15:15:35.479395601 +0200
+++ skia/include/ports/SkTypeface_win.h.orig 2024-10-09 15:15:35.472395544 +0200
@@ -27,7 +27,7 @@
* corresponding typeface for the specified logfont. The caller is responsible
* for calling unref() when it is finished.
*/
-SK_API sk_sp<SkTypeface> SkCreateTypefaceFromLOGFONT(const LOGFONT&);
+SK_API sk_sp<SkTypeface> SkCreateTypefaceFromLOGFONT(const LOGFONTW&);
/**
* Copy the LOGFONT associated with this typeface into the lf parameter. Note
@@ -35,7 +35,7 @@
* not track this (the paint does).
* typeface may be NULL, in which case we return the logfont for the default font.
*/
-SK_API void SkLOGFONTFromTypeface(const SkTypeface* typeface, LOGFONT* lf);
+SK_API void SkLOGFONTFromTypeface(const SkTypeface* typeface, LOGFONTW* lf);
/**
* Set an optional callback to ensure that the data behind a LOGFONT is loaded.
@@ -43,7 +43,7 @@
* Normally this is null, and is only required if the font data needs to be
* remotely (re)loaded.
*/
-SK_API void SkTypeface_SetEnsureLOGFONTAccessibleProc(void (*)(const LOGFONT&));
+SK_API void SkTypeface_SetEnsureLOGFONTAccessibleProc(void (*)(const LOGFONTW&));
// Experimental!
//
diff -ur skia.org/src/ports/SkFontMgr_win_dw.cpp skia/src/ports/SkFontMgr_win_dw.cpp
--- skia.org/src/ports/SkFontMgr_win_dw.cpp 2024-10-09 15:15:35.519395929 +0200
+++ skia/src/ports/SkFontMgr_win_dw.cpp 2024-10-09 15:16:17.314738255 +0200
@@ -149,6 +149,10 @@
friend class SkFontStyleSet_DirectWrite;
friend class FontFallbackRenderer;
+ friend SK_API SkTypeface* SkCreateTypefaceDirectWrite(sk_sp<SkFontMgr> fontMgr,
+ IDWriteFontFace* fontFace,
+ IDWriteFont* font,
+ IDWriteFontFamily* fontFamily);
};
class SkFontStyleSet_DirectWrite : public SkFontStyleSet {
@@ -947,4 +951,16 @@
defaultFamilyName, defaultFamilyNameLen);
}
+SkTypeface* SkCreateTypefaceDirectWrite(sk_sp<SkFontMgr> fontMgr,
+ IDWriteFontFace* fontFace,
+ IDWriteFont* font,
+ IDWriteFontFamily* fontFamily)
+{
+ SkFontMgr_DirectWrite* mgr = dynamic_cast<SkFontMgr_DirectWrite*>(fontMgr.get());
+ if(!mgr)
+ return nullptr;
+ sk_sp<SkTypeface> typeface = mgr->makeTypefaceFromDWriteFont(fontFace, font, fontFamily);
+ return typeface.release();
+}
+
#endif//defined(SK_BUILD_FOR_WIN)
Only in skia/src/ports: SkFontMgr_win_dw.cpp.orig
Only in skia/src/ports: SkFontMgr_win_dw.cpp.rej