mirror of
https://gitlab.freedesktop.org/freetype/freetype.git
synced 2026-05-01 05:47:57 +02:00
Add 'mini' HarfBuzz declarations to make FreeType independent on HarfBuzz header files. The files get activated in a follow-up commit. * src/autofit/ft-hb-decls.h, src/autofit/ft-hb-types.h: New files, holding verbatim (or slightly massaged) entries from public HarfBuzz header files. * src/autofit/hb-script: New file. A verbatim copy of a public HarfBuzz header file.
211 lines
5.5 KiB
C
211 lines
5.5 KiB
C
/*
|
|
* Copyright © 2009, 2023 Red Hat, Inc.
|
|
* Copyright © 2015 Google, Inc.
|
|
*
|
|
* Permission is hereby granted, without written agreement and without
|
|
* license or royalty fees, to use, copy, modify, and distribute this
|
|
* software and its documentation for any purpose, provided that the
|
|
* above copyright notice and the following two paragraphs appear in
|
|
* all copies of this software.
|
|
*
|
|
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
|
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
|
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
|
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
* DAMAGE.
|
|
*
|
|
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
|
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
|
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
*
|
|
* Red Hat Author(s): Behdad Esfahbod, Matthias Clasen
|
|
* Google Author(s): Behdad Esfahbod
|
|
*/
|
|
|
|
|
|
/* All HarfBuzz function declarations used by FreeType, taken */
|
|
/* from various public HarfBuzz header files. The wrapper macro */
|
|
/* `HB_EXTERN` is defined in `ft-hb.h`. */
|
|
|
|
|
|
/* hb-blob.h */
|
|
|
|
HB_EXTERN(hb_blob_t *,
|
|
hb_blob_create,(const char *data,
|
|
unsigned int length,
|
|
hb_memory_mode_t mode,
|
|
void *user_data,
|
|
hb_destroy_func_t destroy))
|
|
|
|
HB_EXTERN(void,
|
|
hb_blob_destroy,(hb_blob_t *blob))
|
|
|
|
|
|
/* hb-buffer.h */
|
|
|
|
HB_EXTERN(void,
|
|
hb_buffer_add_utf8,(hb_buffer_t *buffer,
|
|
const char *text,
|
|
int text_length,
|
|
unsigned int item_offset,
|
|
int item_length))
|
|
|
|
HB_EXTERN(void,
|
|
hb_buffer_clear_contents,(hb_buffer_t *buffer))
|
|
|
|
HB_EXTERN(hb_buffer_t *,
|
|
hb_buffer_create,(void))
|
|
|
|
HB_EXTERN(void,
|
|
hb_buffer_destroy,(hb_buffer_t *buffer))
|
|
|
|
HB_EXTERN(hb_glyph_info_t *,
|
|
hb_buffer_get_glyph_infos,(hb_buffer_t *buffer,
|
|
unsigned int *length))
|
|
|
|
HB_EXTERN(hb_glyph_position_t *,
|
|
hb_buffer_get_glyph_positions,(hb_buffer_t *buffer,
|
|
unsigned int *length))
|
|
|
|
HB_EXTERN(unsigned int,
|
|
hb_buffer_get_length,(const hb_buffer_t *buffer))
|
|
|
|
HB_EXTERN(void,
|
|
hb_buffer_guess_segment_properties,(hb_buffer_t *buffer))
|
|
|
|
|
|
/* hb-face.h */
|
|
|
|
HB_EXTERN(hb_face_t *,
|
|
hb_face_create,(hb_blob_t *blob,
|
|
unsigned int index))
|
|
|
|
HB_EXTERN(hb_face_t *,
|
|
hb_face_create_for_tables,(hb_reference_table_func_t reference_table_func,
|
|
void *user_data,
|
|
hb_destroy_func_t destroy))
|
|
|
|
HB_EXTERN(void,
|
|
hb_face_destroy,(hb_face_t *face))
|
|
|
|
HB_EXTERN(void,
|
|
hb_face_set_index,(hb_face_t *face,
|
|
unsigned int index))
|
|
|
|
HB_EXTERN(void,
|
|
hb_face_set_upem,(hb_face_t *face,
|
|
unsigned int upem))
|
|
|
|
|
|
/* hb-font.h */
|
|
|
|
HB_EXTERN(hb_font_t *,
|
|
hb_font_create,(hb_face_t *face))
|
|
|
|
HB_EXTERN(void,
|
|
hb_font_destroy,(hb_font_t *font))
|
|
|
|
HB_EXTERN(hb_face_t *,
|
|
hb_font_get_face,(hb_font_t *font))
|
|
|
|
HB_EXTERN(void,
|
|
hb_font_set_scale,(hb_font_t *font,
|
|
int x_scale,
|
|
int y_scale))
|
|
|
|
|
|
/* hb-ot-layout.h */
|
|
|
|
HB_EXTERN(void,
|
|
hb_ot_layout_collect_lookups,(hb_face_t *face,
|
|
hb_tag_t table_tag,
|
|
const hb_tag_t *scripts,
|
|
const hb_tag_t *languages,
|
|
const hb_tag_t *features,
|
|
hb_set_t *lookup_indexes /* OUT */))
|
|
|
|
HB_EXTERN(void,
|
|
hb_ot_layout_lookup_collect_glyphs,(hb_face_t *face,
|
|
hb_tag_t table_tag,
|
|
unsigned int lookup_index,
|
|
hb_set_t *glyphs_before, /* OUT. May be NULL */
|
|
hb_set_t *glyphs_input, /* OUT. May be NULL */
|
|
hb_set_t *glyphs_after, /* OUT. May be NULL */
|
|
hb_set_t *glyphs_output /* OUT. May be NULL */))
|
|
|
|
HB_EXTERN(unsigned,
|
|
hb_ot_layout_lookup_get_glyph_alternates,(hb_face_t *face,
|
|
unsigned lookup_index,
|
|
hb_codepoint_t glyph,
|
|
unsigned start_offset,
|
|
unsigned *alternate_count /* IN/OUT */,
|
|
hb_codepoint_t *alternate_glyphs /* OUT */))
|
|
|
|
HB_EXTERN(hb_bool_t,
|
|
hb_ot_layout_lookup_would_substitute,(hb_face_t *face,
|
|
unsigned int lookup_index,
|
|
const hb_codepoint_t *glyphs,
|
|
unsigned int glyphs_length,
|
|
hb_bool_t zero_context))
|
|
|
|
HB_EXTERN(void,
|
|
hb_ot_tags_from_script_and_language,(hb_script_t script,
|
|
hb_language_t language,
|
|
unsigned int *script_count /* IN/OUT */,
|
|
hb_tag_t *script_tags /* OUT */,
|
|
unsigned int *language_count /* IN/OUT */,
|
|
hb_tag_t *language_tags /* OUT */))
|
|
|
|
|
|
/* hb-set.h */
|
|
|
|
HB_EXTERN(void,
|
|
hb_set_add,(hb_set_t *set,
|
|
hb_codepoint_t codepoint))
|
|
|
|
HB_EXTERN(void,
|
|
hb_set_clear,(hb_set_t *set))
|
|
|
|
HB_EXTERN(hb_set_t *,
|
|
hb_set_create,(void))
|
|
|
|
HB_EXTERN(void,
|
|
hb_set_destroy,(hb_set_t *set))
|
|
|
|
HB_EXTERN(void,
|
|
hb_set_del,(hb_set_t *set,
|
|
hb_codepoint_t codepoint))
|
|
|
|
HB_EXTERN(hb_bool_t,
|
|
hb_set_has,(const hb_set_t *set,
|
|
hb_codepoint_t codepoint))
|
|
|
|
HB_EXTERN(hb_bool_t,
|
|
hb_set_is_empty,(const hb_set_t *set))
|
|
|
|
HB_EXTERN(hb_bool_t,
|
|
hb_set_next,(const hb_set_t *set,
|
|
hb_codepoint_t *codepoint))
|
|
|
|
HB_EXTERN(void,
|
|
hb_set_subtract,(hb_set_t *set,
|
|
const hb_set_t *other))
|
|
|
|
|
|
/* hb-shape.h */
|
|
|
|
HB_EXTERN(void,
|
|
hb_shape,(hb_font_t *font,
|
|
hb_buffer_t *buffer,
|
|
const hb_feature_t *features,
|
|
unsigned int num_features))
|
|
|
|
HB_EXTERN(hb_bool_t,
|
|
hb_version_atleast,(unsigned int major,
|
|
unsigned int minor,
|
|
unsigned int micro))
|
|
|
|
|
|
/* END */
|