hb-font-private.hh revision bf36a1074ab23abeab0a7a6c47db26770dc1ab0a
1/* 2 * Copyright (C) 2009 Red Hat, Inc. 3 * 4 * This is part of HarfBuzz, a text shaping library. 5 * 6 * Permission is hereby granted, without written agreement and without 7 * license or royalty fees, to use, copy, modify, and distribute this 8 * software and its documentation for any purpose, provided that the 9 * above copyright notice and the following two paragraphs appear in 10 * all copies of this software. 11 * 12 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 13 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 14 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 15 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 16 * DAMAGE. 17 * 18 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 19 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 20 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 21 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 22 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 23 * 24 * Red Hat Author(s): Behdad Esfahbod 25 */ 26 27#ifndef HB_FONT_PRIVATE_H 28#define HB_FONT_PRIVATE_H 29 30#include "hb-private.h" 31 32#include "hb-font.h" 33 34#include "hb-ot-head-private.hh" 35 36HB_BEGIN_DECLS 37 38/* 39 * hb_font_funcs_t 40 */ 41 42struct _hb_font_funcs_t { 43 hb_reference_count_t ref_count; 44 45 hb_bool_t immutable; 46 47 struct { 48 hb_font_get_glyph_func_t get_glyph; 49 hb_font_get_contour_point_func_t get_contour_point; 50 hb_font_get_glyph_metrics_func_t get_glyph_metrics; 51 hb_font_get_kerning_func_t get_kerning; 52 } v; 53}; 54 55extern HB_INTERNAL hb_font_funcs_t _hb_font_funcs_nil; 56 57 58/* 59 * hb_face_t 60 */ 61 62struct _hb_face_t { 63 hb_reference_count_t ref_count; 64 65 hb_get_table_func_t get_table; 66 hb_destroy_func_t destroy; 67 void *user_data; 68 69 hb_blob_t *head_blob; 70 const struct head *head_table; 71 72 struct hb_ot_layout_t *ot_layout; 73}; 74 75 76/* 77 * hb_font_t 78 */ 79 80struct _hb_font_t { 81 hb_reference_count_t ref_count; 82 83 unsigned int x_scale; 84 unsigned int y_scale; 85 86 unsigned int x_ppem; 87 unsigned int y_ppem; 88 89 hb_font_funcs_t *klass; 90 hb_destroy_func_t destroy; 91 void *user_data; 92}; 93 94 95HB_END_DECLS 96 97#endif /* HB_FONT_PRIVATE_H */ 98