[ot-color] Add public API for CBDT/sbix/SVG color Emojis
This commit is contained in:
parent
6ce49a921a
commit
dbd419bede
|
@ -459,8 +459,12 @@ hb_color_get_blue
|
||||||
hb_color_get_green
|
hb_color_get_green
|
||||||
hb_color_get_red
|
hb_color_get_red
|
||||||
hb_ot_color_glyph_get_layers
|
hb_ot_color_glyph_get_layers
|
||||||
|
hb_ot_color_glyph_reference_blob_png
|
||||||
|
hb_ot_color_glyph_reference_blob_svg
|
||||||
hb_ot_color_has_layers
|
hb_ot_color_has_layers
|
||||||
hb_ot_color_has_palettes
|
hb_ot_color_has_palettes
|
||||||
|
hb_ot_color_has_png
|
||||||
|
hb_ot_color_has_svg
|
||||||
hb_ot_color_layer_t
|
hb_ot_color_layer_t
|
||||||
hb_ot_color_palette_color_get_name_id
|
hb_ot_color_palette_color_get_name_id
|
||||||
hb_ot_color_palette_flags_t
|
hb_ot_color_palette_flags_t
|
||||||
|
|
|
@ -295,7 +295,7 @@ main (int argc, char **argv)
|
||||||
|
|
||||||
sbix_dump (face);
|
sbix_dump (face);
|
||||||
|
|
||||||
// if (hb_ot_color_has_svg (face))
|
if (hb_ot_color_has_svg (face))
|
||||||
svg_dump (face);
|
svg_dump (face);
|
||||||
|
|
||||||
cairo_font_face_t *cairo_face;
|
cairo_font_face_t *cairo_face;
|
||||||
|
|
|
@ -57,14 +57,12 @@ _get_colr (hb_face_t *face)
|
||||||
return *(hb_ot_face_data (face)->COLR.get ());
|
return *(hb_ot_face_data (face)->COLR.get ());
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static inline const OT::CBDT_accelerator_t&
|
static inline const OT::CBDT_accelerator_t&
|
||||||
_get_cbdt (hb_face_t *face)
|
_get_cbdt (hb_face_t *face)
|
||||||
{
|
{
|
||||||
if (unlikely (!hb_ot_shaper_face_data_ensure (face))) return Null(OT::CBDT_accelerator_t);
|
if (unlikely (!hb_ot_shaper_face_data_ensure (face))) return Null(OT::CBDT_accelerator_t);
|
||||||
return *(hb_ot_face_data (face)->CBDT.get ());
|
return *(hb_ot_face_data (face)->CBDT.get ());
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static inline const OT::CPAL&
|
static inline const OT::CPAL&
|
||||||
_get_cpal (hb_face_t *face)
|
_get_cpal (hb_face_t *face)
|
||||||
|
@ -73,7 +71,6 @@ _get_cpal (hb_face_t *face)
|
||||||
return *(hb_ot_face_data (face)->CPAL.get ());
|
return *(hb_ot_face_data (face)->CPAL.get ());
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static inline const OT::sbix_accelerator_t&
|
static inline const OT::sbix_accelerator_t&
|
||||||
_get_sbix (hb_face_t *face)
|
_get_sbix (hb_face_t *face)
|
||||||
{
|
{
|
||||||
|
@ -87,7 +84,6 @@ _get_svg (hb_face_t *face)
|
||||||
if (unlikely (!hb_ot_shaper_face_data_ensure (face))) return Null(OT::SVG_accelerator_t);
|
if (unlikely (!hb_ot_shaper_face_data_ensure (face))) return Null(OT::SVG_accelerator_t);
|
||||||
return *(hb_ot_face_data (face)->SVG.get ());
|
return *(hb_ot_face_data (face)->SVG.get ());
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -253,7 +249,6 @@ hb_ot_color_glyph_get_layers (hb_face_t *face,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
/*
|
/*
|
||||||
* SVG
|
* SVG
|
||||||
*/
|
*/
|
||||||
|
@ -264,7 +259,7 @@ hb_ot_color_glyph_get_layers (hb_face_t *face,
|
||||||
*
|
*
|
||||||
* Returns: whether SVG table is available.
|
* Returns: whether SVG table is available.
|
||||||
*
|
*
|
||||||
* Since: DONTREPLACEME
|
* Since: REPLACEME
|
||||||
*/
|
*/
|
||||||
hb_bool_t
|
hb_bool_t
|
||||||
hb_ot_color_has_svg (hb_face_t *face)
|
hb_ot_color_has_svg (hb_face_t *face)
|
||||||
|
@ -279,7 +274,7 @@ hb_ot_color_has_svg (hb_face_t *face)
|
||||||
*
|
*
|
||||||
* Returns: respective svg blob of the glyph, if available.
|
* Returns: respective svg blob of the glyph, if available.
|
||||||
*
|
*
|
||||||
* Since: DONTREPLACEME
|
* Since: REPLACEME
|
||||||
*/
|
*/
|
||||||
hb_blob_t *
|
hb_blob_t *
|
||||||
hb_ot_color_glyph_reference_blob_svg (hb_face_t *face, hb_codepoint_t glyph)
|
hb_ot_color_glyph_reference_blob_svg (hb_face_t *face, hb_codepoint_t glyph)
|
||||||
|
@ -298,7 +293,7 @@ hb_ot_color_glyph_reference_blob_svg (hb_face_t *face, hb_codepoint_t glyph)
|
||||||
*
|
*
|
||||||
* Returns: whether either of CBDT or sbix tables is available.
|
* Returns: whether either of CBDT or sbix tables is available.
|
||||||
*
|
*
|
||||||
* Since: DONTREPLACEME
|
* Since: REPLACEME
|
||||||
*/
|
*/
|
||||||
hb_bool_t
|
hb_bool_t
|
||||||
hb_ot_color_has_png (hb_face_t *face)
|
hb_ot_color_has_png (hb_face_t *face)
|
||||||
|
@ -317,7 +312,7 @@ hb_ot_color_has_png (hb_face_t *face)
|
||||||
*
|
*
|
||||||
* Returns: respective png blob of the glyph, if available.
|
* Returns: respective png blob of the glyph, if available.
|
||||||
*
|
*
|
||||||
* Since: DONTREPLACEME
|
* Since: REPLACEME
|
||||||
*/
|
*/
|
||||||
hb_blob_t *
|
hb_blob_t *
|
||||||
hb_ot_color_glyph_reference_blob_png (hb_font_t *font,
|
hb_ot_color_glyph_reference_blob_png (hb_font_t *font,
|
||||||
|
@ -343,29 +338,3 @@ hb_ot_color_glyph_reference_blob_png (hb_font_t *font,
|
||||||
|
|
||||||
return blob;
|
return blob;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* To be moved to public header */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* SVG
|
|
||||||
*/
|
|
||||||
|
|
||||||
HB_EXTERN hb_bool_t
|
|
||||||
hb_ot_color_has_svg (hb_face_t *face);
|
|
||||||
|
|
||||||
HB_EXTERN hb_blob_t *
|
|
||||||
hb_ot_color_glyph_reference_blob_svg (hb_face_t *face, hb_codepoint_t glyph);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* PNG: CBDT or sbix
|
|
||||||
*/
|
|
||||||
|
|
||||||
HB_EXTERN hb_bool_t
|
|
||||||
hb_ot_color_has_png (hb_face_t *face);
|
|
||||||
|
|
||||||
HB_EXTERN hb_blob_t *
|
|
||||||
hb_ot_color_glyph_reference_blob_png (hb_font_t *font,
|
|
||||||
hb_codepoint_t glyph,
|
|
||||||
unsigned int *strike_x_ppem,
|
|
||||||
unsigned int *strike_y_ppem);
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -111,6 +111,30 @@ hb_ot_color_glyph_get_layers (hb_face_t *face,
|
||||||
unsigned int *count, /* IN/OUT. May be NULL. */
|
unsigned int *count, /* IN/OUT. May be NULL. */
|
||||||
hb_ot_color_layer_t *layers /* OUT. May be NULL. */);
|
hb_ot_color_layer_t *layers /* OUT. May be NULL. */);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SVG
|
||||||
|
*/
|
||||||
|
|
||||||
|
HB_EXTERN hb_bool_t
|
||||||
|
hb_ot_color_has_svg (hb_face_t *face);
|
||||||
|
|
||||||
|
HB_EXTERN hb_blob_t *
|
||||||
|
hb_ot_color_glyph_reference_blob_svg (hb_face_t *face, hb_codepoint_t glyph);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PNG: CBDT or sbix
|
||||||
|
*/
|
||||||
|
|
||||||
|
HB_EXTERN hb_bool_t
|
||||||
|
hb_ot_color_has_png (hb_face_t *face);
|
||||||
|
|
||||||
|
HB_EXTERN hb_blob_t *
|
||||||
|
hb_ot_color_glyph_reference_blob_png (hb_font_t *font,
|
||||||
|
hb_codepoint_t glyph,
|
||||||
|
unsigned int *strike_x_ppem,
|
||||||
|
unsigned int *strike_y_ppem);
|
||||||
|
|
||||||
|
|
||||||
HB_END_DECLS
|
HB_END_DECLS
|
||||||
|
|
||||||
#endif /* HB_OT_COLOR_H */
|
#endif /* HB_OT_COLOR_H */
|
||||||
|
|
|
@ -363,7 +363,6 @@ test_hb_ot_color_has_data (void)
|
||||||
g_assert (hb_ot_color_has_palettes (sbix) == FALSE);
|
g_assert (hb_ot_color_has_palettes (sbix) == FALSE);
|
||||||
g_assert (hb_ot_color_has_palettes (svg) == FALSE);
|
g_assert (hb_ot_color_has_palettes (svg) == FALSE);
|
||||||
|
|
||||||
#if 0
|
|
||||||
g_assert (hb_ot_color_has_svg (empty) == FALSE);
|
g_assert (hb_ot_color_has_svg (empty) == FALSE);
|
||||||
g_assert (hb_ot_color_has_svg (cpal_v0) == FALSE);
|
g_assert (hb_ot_color_has_svg (cpal_v0) == FALSE);
|
||||||
g_assert (hb_ot_color_has_svg (cpal_v1) == FALSE);
|
g_assert (hb_ot_color_has_svg (cpal_v1) == FALSE);
|
||||||
|
@ -379,10 +378,8 @@ test_hb_ot_color_has_data (void)
|
||||||
g_assert (hb_ot_color_has_png (cbdt) == TRUE);
|
g_assert (hb_ot_color_has_png (cbdt) == TRUE);
|
||||||
g_assert (hb_ot_color_has_png (sbix) == TRUE);
|
g_assert (hb_ot_color_has_png (sbix) == TRUE);
|
||||||
g_assert (hb_ot_color_has_png (svg) == FALSE);
|
g_assert (hb_ot_color_has_png (svg) == FALSE);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void
|
static void
|
||||||
test_hb_ot_color_svg (void)
|
test_hb_ot_color_svg (void)
|
||||||
{
|
{
|
||||||
|
@ -444,7 +441,6 @@ test_hb_ot_color_png (void)
|
||||||
hb_blob_destroy (blob);
|
hb_blob_destroy (blob);
|
||||||
hb_font_destroy (cbdt_font);
|
hb_font_destroy (cbdt_font);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char **argv)
|
main (int argc, char **argv)
|
||||||
|
@ -472,8 +468,8 @@ main (int argc, char **argv)
|
||||||
hb_test_add (test_hb_ot_color_palette_color_get_name_id);
|
hb_test_add (test_hb_ot_color_palette_color_get_name_id);
|
||||||
hb_test_add (test_hb_ot_color_glyph_get_layers);
|
hb_test_add (test_hb_ot_color_glyph_get_layers);
|
||||||
hb_test_add (test_hb_ot_color_has_data);
|
hb_test_add (test_hb_ot_color_has_data);
|
||||||
// hb_test_add (test_hb_ot_color_png);
|
hb_test_add (test_hb_ot_color_png);
|
||||||
// hb_test_add (test_hb_ot_color_svg);
|
hb_test_add (test_hb_ot_color_svg);
|
||||||
status = hb_test_run();
|
status = hb_test_run();
|
||||||
hb_face_destroy (cpal_v0);
|
hb_face_destroy (cpal_v0);
|
||||||
hb_face_destroy (cpal_v1);
|
hb_face_destroy (cpal_v1);
|
||||||
|
|
Loading…
Reference in New Issue