Update the Python module
This commit is contained in:
parent
83f34677bc
commit
3ba6818ba9
|
@ -27,6 +27,7 @@ cdef extern from "hb-common.h" :
|
|||
ctypedef long hb_position_t
|
||||
ctypedef unsigned long hb_mask_t
|
||||
ctypedef unsigned long hb_tag_t
|
||||
hb_tag_t hb_tag_from_string (char *s)
|
||||
ctypedef void (*hb_destroy_func_t) (void *user_data)
|
||||
|
||||
cdef extern from "hb-unicode.h" :
|
||||
|
@ -113,6 +114,22 @@ cdef extern from "hb-unicode.h" :
|
|||
HB_SCRIPT_CARIAN,
|
||||
HB_SCRIPT_LYCIAN,
|
||||
HB_SCRIPT_LYDIAN
|
||||
# Unicode-5.2
|
||||
HB_SCRIPT_AVESTAN
|
||||
HB_SCRIPT_BAMUM
|
||||
HB_SCRIPT_EGYPTIAN_HIEROGLYPHS
|
||||
HB_SCRIPT_IMPERIAL_ARAMAIC
|
||||
HB_SCRIPT_INSCRIPTIONAL_PAHLAVI
|
||||
HB_SCRIPT_INSCRIPTIONAL_PARTHIAN
|
||||
HB_SCRIPT_JAVANESE
|
||||
HB_SCRIPT_KAITHI
|
||||
HB_SCRIPT_LISU
|
||||
HB_SCRIPT_MEITEI_MAYEK
|
||||
HB_SCRIPT_OLD_SOUTH_ARABIAN
|
||||
HB_SCRIPT_OLD_TURKIC
|
||||
HB_SCRIPT_SAMARITAN
|
||||
HB_SCRIPT_TAI_THAM
|
||||
HB_SCRIPT_TAI_VIET
|
||||
|
||||
cdef extern from "hb-language.h" :
|
||||
ctypedef void *hb_language_t
|
||||
|
@ -120,7 +137,7 @@ cdef extern from "hb-language.h" :
|
|||
char * hb_language_to_string(hb_language_t language)
|
||||
|
||||
cdef extern from "hb-ot-tag.h" :
|
||||
hb_script_t hb_ot_string_to_script (char *sname)
|
||||
hb_script_t hb_ot_tag_to_script (char *sname)
|
||||
|
||||
cdef extern from "hb-buffer.h" :
|
||||
ctypedef struct hb_buffer_t :
|
||||
|
@ -178,7 +195,6 @@ cdef extern from "hb-font.h" :
|
|||
void hb_face_destroy(hb_face_t *face)
|
||||
void hb_font_destroy(hb_font_t *font)
|
||||
hb_blob_t * hb_face_get_table(hb_face_t *face, hb_tag_t tag)
|
||||
void hb_font_set_tracecallback(hb_font_t *font, void (*cb)(char *type, int index, hb_buffer_t *))
|
||||
|
||||
|
||||
cdef extern from "hb-shape.h" :
|
||||
|
@ -208,10 +224,6 @@ class glyphinfo :
|
|||
if self.internal : res += "/i=" + str(self.internal)
|
||||
return res
|
||||
|
||||
gcb = None
|
||||
cdef void hb_python_trace(char *aType, int i, hb_buffer_t *aBuffer) :
|
||||
gcb(aType, i)
|
||||
|
||||
cdef class buffer :
|
||||
cdef hb_buffer_t *buffer
|
||||
|
||||
|
@ -260,10 +272,8 @@ cdef class ft :
|
|||
cdef FT_Face face
|
||||
cdef hb_face_t *hbface
|
||||
cdef hb_font_t *hbfont
|
||||
cdef object tracefn
|
||||
|
||||
def __init__(self, char *fname, size, trace = None) :
|
||||
global gcb
|
||||
def __init__(self, char *fname, size) :
|
||||
cdef FT_Library engine
|
||||
FT_Init_FreeType(&engine)
|
||||
self.engine = engine
|
||||
|
@ -273,13 +283,6 @@ cdef class ft :
|
|||
self.face = face
|
||||
self.hbface = hb_ft_face_create(face, <void (*)(void *)>hb_face_destroy)
|
||||
self.hbfont = hb_ft_font_create(face, <void (*)(void *)>hb_font_destroy)
|
||||
if trace :
|
||||
self.tracefn = trace
|
||||
gcb = self.trace
|
||||
hb_font_set_tracecallback(self.hbfont, hb_python_trace)
|
||||
|
||||
def trace(self, aType, index) :
|
||||
self.tracefn(self, aType, index)
|
||||
|
||||
def __del__(self) :
|
||||
cdef FT_Library engine
|
||||
|
@ -295,8 +298,7 @@ cdef class ft :
|
|||
feats = <hb_feature_t *>malloc(sizeof(hb_feature_t) * len(features))
|
||||
aFeat = feats
|
||||
for k,v in features.items() :
|
||||
k = k + " "
|
||||
aFeat.tag = (ord(k[0]) << 24) + (ord(k[1]) << 16) + (ord(k[2]) << 8) + ord(k[3])
|
||||
aFeat.tag = hb_tag_from_string (k)
|
||||
aFeat.value = int(v)
|
||||
aFeat.start = 0
|
||||
aFeat.end = -1
|
||||
|
|
Loading…
Reference in New Issue