|
Packit Service |
5bcba8 |
/*
|
|
Packit Service |
5bcba8 |
* Copyright © 2009 Red Hat, Inc.
|
|
Packit Service |
5bcba8 |
* Copyright © 2015 Google, Inc.
|
|
Packit Service |
5bcba8 |
*
|
|
Packit Service |
5bcba8 |
* This is part of HarfBuzz, a text shaping library.
|
|
Packit Service |
5bcba8 |
*
|
|
Packit Service |
5bcba8 |
* Permission is hereby granted, without written agreement and without
|
|
Packit Service |
5bcba8 |
* license or royalty fees, to use, copy, modify, and distribute this
|
|
Packit Service |
5bcba8 |
* software and its documentation for any purpose, provided that the
|
|
Packit Service |
5bcba8 |
* above copyright notice and the following two paragraphs appear in
|
|
Packit Service |
5bcba8 |
* all copies of this software.
|
|
Packit Service |
5bcba8 |
*
|
|
Packit Service |
5bcba8 |
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
|
Packit Service |
5bcba8 |
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
|
Packit Service |
5bcba8 |
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
|
Packit Service |
5bcba8 |
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
Packit Service |
5bcba8 |
* DAMAGE.
|
|
Packit Service |
5bcba8 |
*
|
|
Packit Service |
5bcba8 |
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
|
Packit Service |
5bcba8 |
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
Packit Service |
5bcba8 |
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
Packit Service |
5bcba8 |
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
|
Packit Service |
5bcba8 |
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
Packit Service |
5bcba8 |
*
|
|
Packit Service |
5bcba8 |
* Red Hat Author(s): Behdad Esfahbod
|
|
Packit Service |
5bcba8 |
* Google Author(s): Behdad Esfahbod
|
|
Packit Service |
5bcba8 |
*/
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
#ifndef HB_FT_H
|
|
Packit Service |
5bcba8 |
#define HB_FT_H
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
#include "hb.h"
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
#include <ft2build.h>
|
|
Packit Service |
5bcba8 |
#include FT_FREETYPE_H
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
HB_BEGIN_DECLS
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
/*
|
|
Packit Service |
5bcba8 |
* Note: FreeType is not thread-safe.
|
|
Packit Service |
5bcba8 |
* Hence, these functions are not either.
|
|
Packit Service |
5bcba8 |
*/
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
/*
|
|
Packit Service |
5bcba8 |
* hb-face from ft-face.
|
|
Packit Service |
5bcba8 |
*/
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
/* This one creates a new hb-face for given ft-face.
|
|
Packit Service |
5bcba8 |
* When the returned hb-face is destroyed, the destroy
|
|
Packit Service |
5bcba8 |
* callback is called (if not NULL), with the ft-face passed
|
|
Packit Service |
5bcba8 |
* to it.
|
|
Packit Service |
5bcba8 |
*
|
|
Packit Service |
5bcba8 |
* The client is responsible to make sure that ft-face is
|
|
Packit Service |
5bcba8 |
* destroyed after hb-face is destroyed.
|
|
Packit Service |
5bcba8 |
*
|
|
Packit Service |
5bcba8 |
* Most often you don't want this function. You should use either
|
|
Packit Service |
5bcba8 |
* hb_ft_face_create_cached(), or hb_ft_face_create_referenced().
|
|
Packit Service |
5bcba8 |
* In particular, if you are going to pass NULL as destroy, you
|
|
Packit Service |
5bcba8 |
* probably should use (the more recent) hb_ft_face_create_referenced()
|
|
Packit Service |
5bcba8 |
* instead.
|
|
Packit Service |
5bcba8 |
*/
|
|
Packit Service |
5bcba8 |
HB_EXTERN hb_face_t *
|
|
Packit Service |
5bcba8 |
hb_ft_face_create (FT_Face ft_face,
|
|
Packit Service |
5bcba8 |
hb_destroy_func_t destroy);
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
/* This version is like hb_ft_face_create(), except that it caches
|
|
Packit Service |
5bcba8 |
* the hb-face using the generic pointer of the ft-face. This means
|
|
Packit Service |
5bcba8 |
* that subsequent calls to this function with the same ft-face will
|
|
Packit Service |
5bcba8 |
* return the same hb-face (correctly referenced).
|
|
Packit Service |
5bcba8 |
*
|
|
Packit Service |
5bcba8 |
* Client is still responsible for making sure that ft-face is destroyed
|
|
Packit Service |
5bcba8 |
* after hb-face is.
|
|
Packit Service |
5bcba8 |
*/
|
|
Packit Service |
5bcba8 |
HB_EXTERN hb_face_t *
|
|
Packit Service |
5bcba8 |
hb_ft_face_create_cached (FT_Face ft_face);
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
/* This version is like hb_ft_face_create(), except that it calls
|
|
Packit Service |
5bcba8 |
* FT_Reference_Face() on ft-face, as such keeping ft-face alive
|
|
Packit Service |
5bcba8 |
* as long as the hb-face is.
|
|
Packit Service |
5bcba8 |
*
|
|
Packit Service |
5bcba8 |
* This is the most convenient version to use. Use it unless you have
|
|
Packit Service |
5bcba8 |
* very good reasons not to.
|
|
Packit Service |
5bcba8 |
*/
|
|
Packit Service |
5bcba8 |
HB_EXTERN hb_face_t *
|
|
Packit Service |
5bcba8 |
hb_ft_face_create_referenced (FT_Face ft_face);
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
/*
|
|
Packit Service |
5bcba8 |
* hb-font from ft-face.
|
|
Packit Service |
5bcba8 |
*/
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
/*
|
|
Packit Service |
5bcba8 |
* Note:
|
|
Packit Service |
5bcba8 |
*
|
|
Packit Service |
5bcba8 |
* Set face size on ft-face before creating hb-font from it.
|
|
Packit Service |
5bcba8 |
* Otherwise hb-ft would NOT pick up the font size correctly.
|
|
Packit Service |
5bcba8 |
*/
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
/* See notes on hb_ft_face_create(). Same issues re lifecycle-management
|
|
Packit Service |
5bcba8 |
* apply here. Use hb_ft_font_create_referenced() if you can. */
|
|
Packit Service |
5bcba8 |
HB_EXTERN hb_font_t *
|
|
Packit Service |
5bcba8 |
hb_ft_font_create (FT_Face ft_face,
|
|
Packit Service |
5bcba8 |
hb_destroy_func_t destroy);
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
/* See notes on hb_ft_face_create_referenced() re lifecycle-management
|
|
Packit Service |
5bcba8 |
* issues. */
|
|
Packit Service |
5bcba8 |
HB_EXTERN hb_font_t *
|
|
Packit Service |
5bcba8 |
hb_ft_font_create_referenced (FT_Face ft_face);
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
HB_EXTERN FT_Face
|
|
Packit Service |
5bcba8 |
hb_ft_font_get_face (hb_font_t *font);
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
HB_EXTERN void
|
|
Packit Service |
5bcba8 |
hb_ft_font_set_load_flags (hb_font_t *font, int load_flags);
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
HB_EXTERN int
|
|
Packit Service |
5bcba8 |
hb_ft_font_get_load_flags (hb_font_t *font);
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
/* Makes an hb_font_t use FreeType internally to implement font functions. */
|
|
Packit Service |
5bcba8 |
HB_EXTERN void
|
|
Packit Service |
5bcba8 |
hb_ft_font_set_funcs (hb_font_t *font);
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
HB_END_DECLS
|
|
Packit Service |
5bcba8 |
|
|
Packit Service |
5bcba8 |
#endif /* HB_FT_H */
|