1 2 // Copyright Michael D. Parker 2018. 3 // Distributed under the Boost Software License, Version 1.0. 4 // (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt) 6 7 module bindbc.freetype.bind.ftgxval; 8 9 import bindbc.freetype.bind.freetype, 10 bindbc.freetype.bind.fttypes; 11 12 enum { 13 FT_VALIDATE_feat_INDEX = 0, 14 FT_VALIDATE_mort_INDEX = 1, 15 FT_VALIDATE_morx_INDEX = 2, 16 FT_VALIDATE_bsln_INDEX = 3, 17 FT_VALIDATE_just_INDEX = 4, 18 FT_VALIDATE_kern_INDEX = 5, 19 FT_VALIDATE_opbd_INDEX = 6, 20 FT_VALIDATE_trak_INDEX = 7, 21 FT_VALIDATE_prop_INDEX = 8, 22 FT_VALIDATE_lcar_INDEX = 9, 23 FT_VALIDATE_GX_LAST_INDEX = FT_VALIDATE_lcar_INDEX, 24 FT_VALIDATE_GX_LENGTH = FT_VALIDATE_GX_LAST_INDEX + 1, 25 26 FT_VALIDATE_GX_START = 0x4000, 27 FT_VALIDATE_feat = FT_VALIDATE_GX_START << FT_VALIDATE_feat_INDEX, 28 FT_VALIDATE_mort = FT_VALIDATE_GX_START << FT_VALIDATE_mort_INDEX, 29 FT_VALIDATE_morx = FT_VALIDATE_GX_START << FT_VALIDATE_morx_INDEX, 30 FT_VALIDATE_bsln = FT_VALIDATE_GX_START << FT_VALIDATE_bsln_INDEX, 31 FT_VALIDATE_just = FT_VALIDATE_GX_START << FT_VALIDATE_just_INDEX, 32 FT_VALIDATE_kern = FT_VALIDATE_GX_START << FT_VALIDATE_kern_INDEX, 33 FT_VALIDATE_opbd = FT_VALIDATE_GX_START << FT_VALIDATE_opbd_INDEX, 34 FT_VALIDATE_trak = FT_VALIDATE_GX_START << FT_VALIDATE_trak_INDEX, 35 FT_VALIDATE_prop = FT_VALIDATE_GX_START << FT_VALIDATE_prop_INDEX, 36 FT_VALIDATE_lcar = FT_VALIDATE_GX_START << FT_VALIDATE_lcar_INDEX, 37 38 FT_VALIDATE_GX = (FT_VALIDATE_feat | 39 FT_VALIDATE_mort | 40 FT_VALIDATE_morx | 41 FT_VALIDATE_bsln | 42 FT_VALIDATE_just | 43 FT_VALIDATE_kern | 44 FT_VALIDATE_opbd | 45 FT_VALIDATE_trak | 46 FT_VALIDATE_prop | 47 FT_VALIDATE_lcar), 48 49 FT_VALIDATE_MS = FT_VALIDATE_GX_START << 0, 50 FT_VALIDATE_APPLE = FT_VALIDATE_GX_START << 1, 51 FT_VALIDATE_CKERN = FT_VALIDATE_MS | FT_VALIDATE_APPLE, 52 } 53 54 version(BindFT_Static) { 55 extern(C) @nogc nothrow { 56 FT_Error FT_TrueTypeGX_Validate(FT_Face,FT_UInt,FT_Bytes,FT_UInt); 57 void FT_TrueTypeGX_Free(FT_Face,FT_Bytes); 58 FT_Error FT_ClassicKern_Validate(FT_Face,FT_UInt,FT_Bytes*); 59 void FT_ClassicKern_Free(FT_Face,FT_Bytes); 60 } 61 } 62 else { 63 extern(C) @nogc nothrow { 64 alias pFT_TrueTypeGX_Validate = FT_Error function(FT_Face,FT_UInt,FT_Bytes,FT_UInt); 65 alias pFT_TrueTypeGX_Free = void function(FT_Face,FT_Bytes); 66 alias pFT_ClassicKern_Validate = FT_Error function(FT_Face,FT_UInt,FT_Bytes*); 67 alias pFT_ClassicKern_Free = void function(FT_Face,FT_Bytes); 68 } 69 70 __gshared { 71 pFT_TrueTypeGX_Validate FT_TrueTypeGX_Validate; 72 pFT_TrueTypeGX_Free FT_TrueTypeGX_Free; 73 pFT_ClassicKern_Validate FT_ClassicKern_Validate; 74 pFT_ClassicKern_Free FT_ClassicKern_Free; 75 } 76 }