| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
| 6 | |
| 7 #ifndef CORE_FXGE_INCLUDE_FX_FREETYPE_H_ | |
| 8 #define CORE_FXGE_INCLUDE_FX_FREETYPE_H_ | |
| 9 | |
| 10 #include <ft2build.h> | |
| 11 #include FT_FREETYPE_H | |
| 12 #include FT_GLYPH_H | |
| 13 #include FT_LCD_FILTER_H | |
| 14 #include FT_MULTIPLE_MASTERS_H | |
| 15 #include FT_OUTLINE_H | |
| 16 #include FT_TRUETYPE_TABLES_H | |
| 17 | |
| 18 #ifdef __cplusplus | |
| 19 extern "C" { | |
| 20 #endif | |
| 21 | |
| 22 #define FXFT_ENCODING_UNICODE FT_ENCODING_UNICODE | |
| 23 #define FXFT_ENCODING_ADOBE_STANDARD FT_ENCODING_ADOBE_STANDARD | |
| 24 #define FXFT_ENCODING_ADOBE_EXPERT FT_ENCODING_ADOBE_EXPERT | |
| 25 #define FXFT_ENCODING_ADOBE_LATIN_1 FT_ENCODING_ADOBE_LATIN_1 | |
| 26 #define FXFT_ENCODING_APPLE_ROMAN FT_ENCODING_APPLE_ROMAN | |
| 27 #define FXFT_ENCODING_ADOBE_CUSTOM FT_ENCODING_ADOBE_CUSTOM | |
| 28 #define FXFT_ENCODING_MS_SYMBOL FT_ENCODING_MS_SYMBOL | |
| 29 #define FXFT_ENCODING_GB2312 FT_ENCODING_GB2312 | |
| 30 #define FXFT_ENCODING_BIG5 FT_ENCODING_BIG5 | |
| 31 #define FXFT_ENCODING_SJIS FT_ENCODING_SJIS | |
| 32 #define FXFT_ENCODING_JOHAB FT_ENCODING_JOHAB | |
| 33 #define FXFT_ENCODING_WANSUNG FT_ENCODING_WANSUNG | |
| 34 #define FXFT_LOAD_NO_SCALE FT_LOAD_NO_SCALE | |
| 35 #define FXFT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH \ | |
| 36 FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH | |
| 37 #define FXFT_RENDER_MODE_LCD FT_RENDER_MODE_LCD | |
| 38 #define FXFT_RENDER_MODE_MONO FT_RENDER_MODE_MONO | |
| 39 #define FXFT_RENDER_MODE_NORMAL FT_RENDER_MODE_NORMAL | |
| 40 #define FXFT_LOAD_IGNORE_TRANSFORM FT_LOAD_IGNORE_TRANSFORM | |
| 41 #define FXFT_LOAD_NO_BITMAP FT_LOAD_NO_BITMAP | |
| 42 #define FXFT_LOAD_NO_HINTING FT_LOAD_NO_HINTING | |
| 43 #define FXFT_PIXEL_MODE_MONO FT_PIXEL_MODE_MONO | |
| 44 #define FXFT_STYLE_FLAG_ITALIC FT_STYLE_FLAG_ITALIC | |
| 45 #define FXFT_STYLE_FLAG_BOLD FT_STYLE_FLAG_BOLD | |
| 46 #define FXFT_FACE_FLAG_SFNT FT_FACE_FLAG_SFNT | |
| 47 #define FXFT_FACE_FLAG_TRICKY (1L << 13) | |
| 48 typedef FT_MM_Var* FXFT_MM_Var; | |
| 49 typedef FT_Bitmap* FXFT_Bitmap; | |
| 50 #define FXFT_Matrix FT_Matrix | |
| 51 #define FXFT_Vector FT_Vector | |
| 52 #define FXFT_Outline_Funcs FT_Outline_Funcs | |
| 53 typedef FT_Open_Args FXFT_Open_Args; | |
| 54 typedef FT_StreamRec FXFT_StreamRec; | |
| 55 typedef FT_StreamRec* FXFT_Stream; | |
| 56 typedef FT_BBox FXFT_BBox; | |
| 57 typedef FT_Glyph FXFT_Glyph; | |
| 58 typedef FT_CharMap FXFT_CharMap; | |
| 59 #define FXFT_GLYPH_BBOX_PIXELS FT_GLYPH_BBOX_PIXELS | |
| 60 #define FXFT_Open_Face(library, args, index, face) \ | |
| 61 FT_Open_Face((FT_Library)(library), args, index, (FT_Face*)(face)) | |
| 62 #define FXFT_Done_Face(face) FT_Done_Face((FT_Face)(face)) | |
| 63 #define FXFT_Done_FreeType(library) FT_Done_FreeType((FT_Library)(library)) | |
| 64 #define FXFT_Init_FreeType(library) FT_Init_FreeType((FT_Library*)(library)) | |
| 65 #define FXFT_New_Memory_Face(library, base, size, index, face) \ | |
| 66 FT_New_Memory_Face((FT_Library)(library), base, size, index, (FT_Face*)(face)) | |
| 67 #define FXFT_New_Face(library, filename, index, face) \ | |
| 68 FT_New_Face((FT_Library)(library), filename, index, (FT_Face*)(face)) | |
| 69 #define FXFT_Get_Face_FreeType(face) ((FT_Face)face)->driver->root.library | |
| 70 #define FXFT_Select_Charmap(face, encoding) \ | |
| 71 FT_Select_Charmap((FT_Face)face, (FT_Encoding)encoding) | |
| 72 #define FXFT_Set_Charmap(face, charmap) \ | |
| 73 FT_Set_Charmap((FT_Face)face, (FT_CharMap)charmap) | |
| 74 #define FXFT_Load_Glyph(face, glyph_index, flags) \ | |
| 75 FT_Load_Glyph((FT_Face)face, glyph_index, flags) | |
| 76 #define FXFT_Get_Char_Index(face, code) FT_Get_Char_Index((FT_Face)face, code) | |
| 77 #define FXFT_Get_Glyph_Name(face, index, buffer, size) \ | |
| 78 FT_Get_Glyph_Name((FT_Face)face, index, buffer, size) | |
| 79 #define FXFT_Get_Name_Index(face, name) FT_Get_Name_Index((FT_Face)face, name) | |
| 80 #define FXFT_Has_Glyph_Names(face) \ | |
| 81 (((FT_Face)face)->face_flags & FT_FACE_FLAG_GLYPH_NAMES) | |
| 82 #define FXFT_Get_Postscript_Name(face) FT_Get_Postscript_Name((FT_Face)face) | |
| 83 #define FXFT_Load_Sfnt_Table(face, tag, offset, buffer, length) \ | |
| 84 FT_Load_Sfnt_Table((FT_Face)face, tag, offset, buffer, length) | |
| 85 #define FXFT_Get_First_Char(face, glyph_index) \ | |
| 86 FT_Get_First_Char((FT_Face)face, glyph_index) | |
| 87 #define FXFT_Get_Next_Char(face, code, glyph_index) \ | |
| 88 FT_Get_Next_Char((FT_Face)face, code, glyph_index) | |
| 89 #define FXFT_Clear_Face_External_Stream(face) \ | |
| 90 (((FT_Face)face)->face_flags &= ~FT_FACE_FLAG_EXTERNAL_STREAM) | |
| 91 #define FXFT_Get_Face_External_Stream(face) \ | |
| 92 (((FT_Face)face)->face_flags & FT_FACE_FLAG_EXTERNAL_STREAM) | |
| 93 #define FXFT_Is_Face_TT_OT(face) \ | |
| 94 (((FT_Face)face)->face_flags & FT_FACE_FLAG_SFNT) | |
| 95 #define FXFT_Is_Face_Tricky(face) \ | |
| 96 (((FT_Face)face)->face_flags & FXFT_FACE_FLAG_TRICKY) | |
| 97 #define FXFT_Is_Face_fixedwidth(face) \ | |
| 98 (((FT_Face)face)->face_flags & FT_FACE_FLAG_FIXED_WIDTH) | |
| 99 #define FXFT_Get_Face_Stream_Base(face) ((FT_Face)face)->stream->base | |
| 100 #define FXFT_Get_Face_Stream_Size(face) ((FT_Face)face)->stream->size | |
| 101 #define FXFT_Get_Face_Family_Name(face) ((FT_Face)face)->family_name | |
| 102 #define FXFT_Get_Face_Style_Name(face) ((FT_Face)face)->style_name | |
| 103 #define FXFT_Get_Face_Numfaces(face) ((FT_Face)face)->num_faces | |
| 104 #define FXFT_Get_Face_Faceindex(face) ((FT_Face)face)->face_index | |
| 105 #define FXFT_Is_Face_Italic(face) \ | |
| 106 (((FT_Face)face)->style_flags & FT_STYLE_FLAG_ITALIC) | |
| 107 #define FXFT_Is_Face_Bold(face) \ | |
| 108 (((FT_Face)face)->style_flags & FT_STYLE_FLAG_BOLD) | |
| 109 #define FXFT_Get_Face_Charmaps(face) ((FT_Face)face)->charmaps | |
| 110 #define FXFT_Get_Glyph_HoriBearingX(face) \ | |
| 111 ((FT_Face)face)->glyph->metrics.horiBearingX | |
| 112 #define FXFT_Get_Glyph_HoriBearingY(face) \ | |
| 113 ((FT_Face)face)->glyph->metrics.horiBearingY | |
| 114 #define FXFT_Get_Glyph_Width(face) ((FT_Face)face)->glyph->metrics.width | |
| 115 #define FXFT_Get_Glyph_Height(face) ((FT_Face)face)->glyph->metrics.height | |
| 116 #define FXFT_Get_Face_CharmapCount(face) ((FT_Face)face)->num_charmaps | |
| 117 #define FXFT_Get_Charmap_Encoding(charmap) ((FT_CharMap)charmap)->encoding | |
| 118 #define FXFT_Get_Face_Charmap(face) ((FT_Face)face)->charmap | |
| 119 #define FXFT_Get_Charmap_PlatformID(charmap) ((FT_CharMap)charmap)->platform_id | |
| 120 #define FXFT_Get_Charmap_EncodingID(charmap) ((FT_CharMap)charmap)->encoding_id | |
| 121 #define FXFT_Get_Face_UnitsPerEM(face) ((FT_Face)face)->units_per_EM | |
| 122 #define FXFT_Get_Face_xMin(face) ((FT_Face)face)->bbox.xMin | |
| 123 #define FXFT_Get_Face_xMax(face) ((FT_Face)face)->bbox.xMax | |
| 124 #define FXFT_Get_Face_yMin(face) ((FT_Face)face)->bbox.yMin | |
| 125 #define FXFT_Get_Face_yMax(face) ((FT_Face)face)->bbox.yMax | |
| 126 #define FXFT_Get_Face_Height(face) ((FT_Face)face)->height | |
| 127 #define FXFT_Get_Face_UnderLineThickness(face) \ | |
| 128 ((FT_Face)face)->underline_thickness | |
| 129 #define FXFT_Get_Face_UnderLinePosition(face) \ | |
| 130 ((FT_Face)face)->underline_position | |
| 131 #define FXFT_Get_Face_MaxAdvanceWidth(face) ((FT_Face)face)->max_advance_width | |
| 132 #define FXFT_Get_Face_Ascender(face) ((FT_Face)face)->ascender | |
| 133 #define FXFT_Get_Face_Descender(face) ((FT_Face)face)->descender | |
| 134 #define FXFT_Get_Glyph_HoriAdvance(face) \ | |
| 135 ((FT_Face)face)->glyph->metrics.horiAdvance | |
| 136 #define FXFT_Get_MM_Axis(var, index) &static_cast<FT_MM_Var*>(var)->axis[index] | |
| 137 #define FXFT_Get_MM_Axis_Min(axis) ((FT_Var_Axis*)axis)->minimum | |
| 138 #define FXFT_Get_MM_Axis_Max(axis) ((FT_Var_Axis*)axis)->maximum | |
| 139 #define FXFT_Get_MM_Axis_Def(axis) ((FT_Var_Axis*)axis)->def | |
| 140 #define FXFT_Alloc(library, size) \ | |
| 141 ((FT_Library)library)->memory->alloc(((FT_Library)library)->memory, size) | |
| 142 #define FXFT_Free(face, p) \ | |
| 143 ((FT_Face)face)->memory->free(((FT_Face)face)->memory, p) | |
| 144 #define FXFT_Get_Glyph_Outline(face) &static_cast<FT_Face>(face)->glyph->outline | |
| 145 #define FXFT_Get_Outline_Bbox(outline, cbox) FT_Outline_Get_CBox(outline, cbox) | |
| 146 #define FXFT_Render_Glyph(face, mode) \ | |
| 147 FT_Render_Glyph(((FT_Face)face)->glyph, (enum FT_Render_Mode_)mode) | |
| 148 #define FXFT_Get_MM_Var(face, p) FT_Get_MM_Var((FT_Face)face, p) | |
| 149 #define FXFT_Set_MM_Design_Coordinates(face, n, p) \ | |
| 150 FT_Set_MM_Design_Coordinates((FT_Face)face, n, p) | |
| 151 #define FXFT_Set_Pixel_Sizes(face, w, h) FT_Set_Pixel_Sizes((FT_Face)face, w, h) | |
| 152 #define FXFT_Set_Transform(face, m, d) FT_Set_Transform((FT_Face)face, m, d) | |
| 153 #define FXFT_Outline_Embolden(outline, s) FT_Outline_Embolden(outline, s) | |
| 154 #define FXFT_Get_Glyph_Bitmap(face) &static_cast<FT_Face>(face)->glyph->bitmap | |
| 155 #define FXFT_Get_Bitmap_Width(bitmap) ((FT_Bitmap*)bitmap)->width | |
| 156 #define FXFT_Get_Bitmap_Rows(bitmap) ((FT_Bitmap*)bitmap)->rows | |
| 157 #define FXFT_Get_Bitmap_PixelMode(bitmap) ((FT_Bitmap*)bitmap)->pixel_mode | |
| 158 #define FXFT_Get_Bitmap_Pitch(bitmap) ((FT_Bitmap*)bitmap)->pitch | |
| 159 #define FXFT_Get_Bitmap_Buffer(bitmap) ((FT_Bitmap*)bitmap)->buffer | |
| 160 #define FXFT_Get_Glyph_BitmapLeft(face) ((FT_Face)face)->glyph->bitmap_left | |
| 161 #define FXFT_Get_Glyph_BitmapTop(face) ((FT_Face)face)->glyph->bitmap_top | |
| 162 #define FXFT_Outline_Decompose(outline, funcs, params) \ | |
| 163 FT_Outline_Decompose(outline, funcs, params) | |
| 164 #define FXFT_Set_Char_Size(face, char_width, char_height, horz_resolution, \ | |
| 165 vert_resolution) \ | |
| 166 FT_Set_Char_Size(face, char_width, char_height, horz_resolution, \ | |
| 167 vert_resolution) | |
| 168 #define FXFT_Get_Glyph(slot, aglyph) FT_Get_Glyph(slot, aglyph) | |
| 169 #define FXFT_Glyph_Get_CBox(glyph, bbox_mode, acbox) \ | |
| 170 FT_Glyph_Get_CBox(glyph, bbox_mode, acbox) | |
| 171 #define FXFT_Done_Glyph(glyph) FT_Done_Glyph(glyph) | |
| 172 #define FXFT_Library_SetLcdFilter(library, filter) \ | |
| 173 FT_Library_SetLcdFilter((FT_Library)(library), filter) | |
| 174 int FXFT_unicode_from_adobe_name(const char* glyph_name); | |
| 175 void FXFT_adobe_name_from_unicode(char* name, wchar_t unicode); | |
| 176 #ifdef __cplusplus | |
| 177 }; | |
| 178 #endif | |
| 179 | |
| 180 #endif // CORE_FXGE_INCLUDE_FX_FREETYPE_H_ | |
| OLD | NEW |