summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2022-08-16 12:54:26 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2022-09-26 11:04:26 +0800
commit7a623b7065cd519bc4eab95aeb381f54023d4a3b (patch)
tree293cb543155d5c00c8ceb41a3978b49257ae065c
parent7179fd3cd89c600381fd0fd22d3d60731977ed56 (diff)
downloadpango-7a623b7065cd519bc4eab95aeb381f54023d4a3b.tar.gz
PangoWin32: Add private API to clean up IDWriteFontFace
...which is needed for PangoCairo for Windows, when DirectWrite is used to create the cairo_font_face_t, so that that object does get cleaned up when the cairo_font_face_t is destroyed.
-rw-r--r--pango/pangowin32-dwrite-fontmap.cpp9
-rw-r--r--pango/pangowin32-private.h3
2 files changed, 12 insertions, 0 deletions
diff --git a/pango/pangowin32-dwrite-fontmap.cpp b/pango/pangowin32-dwrite-fontmap.cpp
index 48770224..a2c03675 100644
--- a/pango/pangowin32-dwrite-fontmap.cpp
+++ b/pango/pangowin32-dwrite-fontmap.cpp
@@ -567,3 +567,12 @@ pango_win32_dwrite_font_release (gpointer dwrite_font)
if (font != NULL)
font->Release ();
}
+
+void
+pango_win32_dwrite_font_face_release (gpointer dwrite_font_face)
+{
+ IDWriteFontFace *face = static_cast<IDWriteFontFace *>(dwrite_font_face);
+
+ if (face != NULL)
+ face->Release ();
+}
diff --git a/pango/pangowin32-private.h b/pango/pangowin32-private.h
index 2f9bbf60..1502ecd9 100644
--- a/pango/pangowin32-private.h
+++ b/pango/pangowin32-private.h
@@ -313,6 +313,9 @@ gboolean pango_win32_dwrite_font_is_monospace (gpointer
void pango_win32_dwrite_font_release (gpointer dwrite_font);
+_PANGO_EXTERN
+void pango_win32_dwrite_font_face_release (gpointer dwrite_font_face);
+
gpointer pango_win32_logfontw_get_dwrite_font (LOGFONTW *logfontw);
PangoFontDescription *