/*1* Copyright © 2022 Red Hat, Inc.2*3* This is part of HarfBuzz, a text shaping library.4*5* Permission is hereby granted, without written agreement and without6* license or royalty fees, to use, copy, modify, and distribute this7* software and its documentation for any purpose, provided that the8* above copyright notice and the following two paragraphs appear in9* all copies of this software.10*11* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR12* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES13* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN14* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH15* DAMAGE.16*17* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,18* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND19* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS20* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO21* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.22*23* Red Hat Author(s): Matthias Clasen24*/2526#ifndef HB_CAIRO_H27#define HB_CAIRO_H2829#include "hb.h"3031#include <cairo.h>3233HB_BEGIN_DECLS3435HB_EXTERN cairo_font_face_t *36hb_cairo_font_face_create_for_font (hb_font_t *font);3738HB_EXTERN hb_font_t *39hb_cairo_font_face_get_font (cairo_font_face_t *font_face);4041HB_EXTERN cairo_font_face_t *42hb_cairo_font_face_create_for_face (hb_face_t *face);4344HB_EXTERN hb_face_t *45hb_cairo_font_face_get_face (cairo_font_face_t *font_face);4647/**48* hb_cairo_font_init_func_t:49* @font: The #hb_font_t being created50* @scaled_font: The respective #cairo_scaled_font_t51* @user_data: User data accompanying this method52*53* The type of a virtual method to be called when a cairo54* face created using hb_cairo_font_face_create_for_face()55* creates an #hb_font_t for a #cairo_scaled_font_t.56*57* Return value: the #hb_font_t value to use; in most cases same as @font58*59* Since: 7.0.060*/61typedef hb_font_t * (*hb_cairo_font_init_func_t) (hb_font_t *font,62cairo_scaled_font_t *scaled_font,63void *user_data);6465HB_EXTERN void66hb_cairo_font_face_set_font_init_func (cairo_font_face_t *font_face,67hb_cairo_font_init_func_t func,68void *user_data,69hb_destroy_func_t destroy);7071HB_EXTERN hb_font_t *72hb_cairo_scaled_font_get_font (cairo_scaled_font_t *scaled_font);7374HB_EXTERN void75hb_cairo_font_face_set_scale_factor (cairo_font_face_t *font_face,76unsigned int scale_factor);7778HB_EXTERN unsigned int79hb_cairo_font_face_get_scale_factor (cairo_font_face_t *font_face);8081HB_EXTERN void82hb_cairo_glyphs_from_buffer (hb_buffer_t *buffer,83hb_bool_t utf8_clusters,84double x_scale_factor,85double y_scale_factor,86double x,87double y,88const char *utf8,89int utf8_len,90cairo_glyph_t **glyphs,91unsigned int *num_glyphs,92cairo_text_cluster_t **clusters,93unsigned int *num_clusters,94cairo_text_cluster_flags_t *cluster_flags);9596HB_END_DECLS9798#endif /* HB_CAIRO_H */99100101