Commit 1ab69630 authored by YAMAMOTO Mitsuharu's avatar YAMAMOTO Mitsuharu

Make fthbfont and derivatives use common HarfBuzz code in hbfont.c

* src/font.h (fthbfont_shape, fthbfont_combining_capability)
[HAVE_HARFBUZZ]: Remove prototypes.

* src/ftfont.c: Don't include math.h.
(uni_combining, uni_general, uni_mirroring, get_hb_unicode_funcs)
(fthbfont_shape_by_hb, fthbfont_combining_capability, fthbfont_shape)
[HAVE_HARFBUZZ]: Remove functions.

* src/ftfont.c (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]:
* src/xftfont.c (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]:
* src/ftcrfont.c (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]: Use
hbfont_shape and hbfont_combining_capability for fthbfont_shape and
fthbfont_combining_capability, respectively.
parent ab1d5d40
Pipeline #1872 failed with stage
in 3 seconds
......@@ -3413,6 +3413,13 @@ if test "${HAVE_X11}" = "yes"; then
if test "${HAVE_FREETYPE}" = "yes"; then
AC_DEFINE(HAVE_FREETYPE, 1,
[Define to 1 if using the freetype and fontconfig libraries.])
OLD_CFLAGS=$CFLAGS
OLD_LIBS=$LIBS
CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
LIBS="$FREETYPE_LIBS $LIBS"
AC_CHECK_FUNCS(FT_Face_GetCharVariantIndex)
CFLAGS=$OLD_CFLAGS
LIBS=$OLD_LIBS
if test "${with_libotf}" != "no"; then
EMACS_CHECK_MODULES([LIBOTF], [libotf])
if test "$HAVE_LIBOTF" = "yes"; then
......
......@@ -455,7 +455,7 @@ ftcrfont_shape (Lisp_Object lgstring, Lisp_Object direction)
}
#endif
#ifdef HAVE_OTF_GET_VARIATION_GLYPHS
#if defined HAVE_OTF_GET_VARIATION_GLYPHS || defined HAVE_FT_FACE_GETCHARVARIANTINDEX
static int
ftcrfont_variation_glyphs (struct font *font, int c, unsigned variations[256])
{
......@@ -470,7 +470,7 @@ ftcrfont_variation_glyphs (struct font *font, int c, unsigned variations[256])
return result;
}
#endif /* HAVE_OTF_GET_VARIATION_GLYPHS */
#endif /* HAVE_OTF_GET_VARIATION_GLYPHS || HAVE_FT_FACE_GETCHARVARIANTINDEX */
static int
ftcrfont_draw (struct glyph_string *s,
......@@ -583,7 +583,7 @@ struct font_driver const ftcrfont_driver =
#if defined HAVE_M17N_FLT && defined HAVE_LIBOTF
.shape = ftcrfont_shape,
#endif
#ifdef HAVE_OTF_GET_VARIATION_GLYPHS
#if defined HAVE_OTF_GET_VARIATION_GLYPHS || defined HAVE_FT_FACE_GETCHARVARIANTINDEX
.get_variation_glyphs = ftcrfont_variation_glyphs,
#endif
.filter_properties = ftfont_filter_properties,
......
......@@ -2820,21 +2820,41 @@ ftfont_shape (Lisp_Object lgstring, Lisp_Object direction)
#endif /* HAVE_M17N_FLT */
#ifdef HAVE_OTF_GET_VARIATION_GLYPHS
#endif /* HAVE_LIBOTF */
#if defined HAVE_OTF_GET_VARIATION_GLYPHS || defined HAVE_FT_FACE_GETCHARVARIANTINDEX
int
ftfont_variation_glyphs (struct font *font, int c, unsigned variations[256])
{
struct font_info *ftfont_info = (struct font_info *) font;
#ifdef HAVE_OTF_GET_VARIATION_GLYPHS
OTF *otf = ftfont_get_otf (ftfont_info);
if (! otf)
return 0;
return OTF_get_variation_glyphs (otf, c, variations);
}
#else /* !HAVE_OTF_GET_VARIATION_GLYPHS */
FT_Face ft_face = ftfont_info->ft_size->face;
int i, n = 0;
#endif /* HAVE_OTF_GET_VARIATION_GLYPHS */
#endif /* HAVE_LIBOTF */
for (i = 0; i < 16; i++)
{
variations[i] = FT_Face_GetCharVariantIndex (ft_face, c, 0xFE00 + i);
if (variations[i])
n++;
}
for (; i < 256; i++)
{
variations[i] = FT_Face_GetCharVariantIndex (ft_face, c,
0xE0100 + (i - 16));
if (variations[i])
n++;
}
return n;
#endif /* !HAVE_OTF_GET_VARIATION_GLYPHS */
}
#endif /* HAVE_OTF_GET_VARIATION_GLYPHS || HAVE_FT_FACE_GETCHARVARIANTINDEX */
#ifdef HAVE_HARFBUZZ
......@@ -2936,7 +2956,7 @@ static struct font_driver const ftfont_driver =
#if defined HAVE_M17N_FLT && defined HAVE_LIBOTF
.shape = ftfont_shape,
#endif
#ifdef HAVE_OTF_GET_VARIATION_GLYPHS
#if defined HAVE_OTF_GET_VARIATION_GLYPHS || defined HAVE_FT_FACE_GETCHARVARIANTINDEX
.get_variation_glyphs = ftfont_variation_glyphs,
#endif
.filter_properties = ftfont_filter_properties,
......
......@@ -351,7 +351,7 @@ struct font_driver const ftxfont_driver =
#if defined HAVE_M17N_FLT && defined HAVE_LIBOTF
.shape = ftfont_shape,
#endif
#ifdef HAVE_OTF_GET_VARIATION_GLYPHS
#if defined HAVE_OTF_GET_VARIATION_GLYPHS || defined HAVE_FT_FACE_GETCHARVARIANTINDEX
.get_variation_glyphs = ftfont_variation_glyphs,
#endif
.filter_properties = ftfont_filter_properties,
......
......@@ -661,7 +661,7 @@ struct font_driver const xftfont_driver =
#if defined HAVE_M17N_FLT && defined HAVE_LIBOTF
.shape = xftfont_shape,
#endif
#ifdef HAVE_OTF_GET_VARIATION_GLYPHS
#if defined HAVE_OTF_GET_VARIATION_GLYPHS || defined HAVE_FT_FACE_GETCHARVARIANTINDEX
.get_variation_glyphs = ftfont_variation_glyphs,
#endif
.filter_properties = ftfont_filter_properties,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment