summaryrefslogtreecommitdiff
path: root/contrib/python/lib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/python/lib')
-rw-r--r--contrib/python/lib/fontconfig.pyx47
-rw-r--r--contrib/python/lib/harfbuzz.pyx215
2 files changed, 0 insertions, 262 deletions
diff --git a/contrib/python/lib/fontconfig.pyx b/contrib/python/lib/fontconfig.pyx
deleted file mode 100644
index 16e0289..0000000
--- a/contrib/python/lib/fontconfig.pyx
+++ /dev/null
@@ -1,47 +0,0 @@
-cdef extern from "fontconfig/fontconfig.h" :
- ctypedef struct FcPattern :
- pass
- ctypedef struct FcConfig :
- pass
- cdef enum FcResult '_FcResult' :
- FcResultMatch = 0, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId,
- FcResultOutOfMemory
-
- ctypedef char FcChar8
- FcPattern *FcNameParse(FcChar8 *name)
- FcPattern *FcFontMatch(FcConfig *config, FcPattern *match, FcResult *res)
- FcResult FcPatternGetInteger(FcPattern *pattern, char *typeid, int index, int *res)
- FcResult FcPatternGetString(FcPattern *pattern, char *typeid, int index, FcChar8 **res)
- void FcPatternPrint(FcPattern *pattern)
- void FcPatternDestroy(FcPattern *pattern)
-
- FcConfig *FcConfigGetCurrent()
-
-cdef class fcPattern :
- cdef FcPattern *_pattern
-
- def __init__(self, char *name) :
- cdef FcPattern *temp
- cdef FcResult res
-
- temp = FcNameParse(<FcChar8 *>name)
- self._pattern = FcFontMatch(FcConfigGetCurrent(), temp, &res)
- if res != FcResultMatch :
- print "Failed to match" + str(res)
- self._pattern = <FcPattern *>0
-
- def __destroy__(self) :
- FcPatternDestroy(self._pattern)
-
- def getInteger(self, char *typeid, int index) :
- cdef int res
- if self._pattern == <FcPattern *>0 or FcPatternGetInteger(self._pattern, typeid, index, &res) != FcResultMatch : return None
- return res
-
- def getString(self, char *typeid, int index) :
- cdef FcChar8 *res
- if self._pattern == <FcPattern *>0 or FcPatternGetString(self._pattern, typeid, index, &res) != FcResultMatch : return None
- return <char *>res
-
- def debugPrint(self) :
- FcPatternPrint(self._pattern)
diff --git a/contrib/python/lib/harfbuzz.pyx b/contrib/python/lib/harfbuzz.pyx
deleted file mode 100644
index f483fd6..0000000
--- a/contrib/python/lib/harfbuzz.pyx
+++ /dev/null
@@ -1,215 +0,0 @@
-cdef extern from "stdlib.h":
- ctypedef int size_t
- void *malloc(size_t size)
- void free(void* ptr)
-
-cdef extern from "ft2build.h" :
- pass
-
-cdef extern from "freetype/freetype.h" :
- ctypedef void *FT_Library
- ctypedef void *FT_Face
- ctypedef int FT_Error
-
- FT_Error FT_Init_FreeType (FT_Library *alib)
- FT_Error FT_Done_FreeType (FT_Library alib)
- FT_Error FT_Done_Face (FT_Face alib)
- FT_Error FT_New_Face( FT_Library library, char *path, unsigned long index, FT_Face *aface)
- FT_Error FT_Set_Char_Size (FT_Face aFace, unsigned int size_x, unsigned int size_y, unsigned int res_x, unsigned int res_y)
-
-cdef extern from "hb-common.h" :
- cdef enum hb_direction_t :
- HB_DIRECTION_LTR
- HB_DIRECTION_RTL
- HB_DIRECTION_TTB
- HB_DIRECTION_BTT
- ctypedef unsigned long hb_codepoint_t
- 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" :
-# there must be a better way of syncing this list with the true source
- ctypedef enum hb_script_t :
- HB_SCRIPT_COMMON = 0
-
-cdef extern from "hb-language.h" :
- ctypedef void *hb_language_t
- hb_language_t hb_language_from_string(char *str)
- char * hb_language_to_string(hb_language_t language)
-
-cdef extern from "hb-ot-tag.h" :
- hb_script_t hb_ot_tag_to_script (hb_tag_t tag)
-
-cdef extern from "hb-buffer.h" :
- ctypedef struct hb_buffer_t :
- pass
-
- ctypedef struct hb_glyph_info_t :
- hb_codepoint_t codepoint
- hb_mask_t mask
- unsigned long cluster
-
- ctypedef union hb_var_int_t:
- unsigned long u32
-
- ctypedef struct hb_glyph_position_t :
- hb_position_t x_advance
- hb_position_t y_advance
- hb_position_t x_offset
- hb_position_t y_offset
- hb_var_int_t var
-
- hb_buffer_t *hb_buffer_create(unsigned int size)
- hb_buffer_t *hb_buffer_reference(hb_buffer_t *buffer)
- unsigned int hb_buffer_get_reference_count(hb_buffer_t *buffer)
- void hb_buffer_destroy(hb_buffer_t *buffer)
- void hb_buffer_set_direction(hb_buffer_t *buffer, hb_direction_t direction)
- hb_direction_t hb_buffer_get_direction(hb_buffer_t *buffer)
- void hb_buffer_set_script(hb_buffer_t *buffer, hb_script_t script)
- hb_script_t hb_buffer_get_script(hb_buffer_t *buffer)
- void hb_buffer_set_language(hb_buffer_t *buffer, hb_language_t language)
- hb_language_t hb_buffer_get_language(hb_buffer_t *buffer)
- void hb_buffer_clear(hb_buffer_t *)
- void hb_buffer_clear_positions(hb_buffer_t *buffer)
- void hb_buffer_ensure(hb_buffer_t *buffer, unsigned int size)
- void hb_buffer_reverse(hb_buffer_t *buffer)
- void hb_buffer_reverse_clusters(hb_buffer_t *buffer)
- void hb_buffer_add_glyph(hb_buffer_t *buffer, hb_codepoint_t codepoint, hb_mask_t mask, unsigned int cluster)
- void hb_buffer_add_utf8(hb_buffer_t *buffer, char *text, unsigned int text_length, unsigned int item_offset, unsigned int item_length)
- unsigned int hb_buffer_get_length(hb_buffer_t *buffer)
- hb_glyph_info_t *hb_buffer_get_glyph_infos(hb_buffer_t *buffer)
- hb_glyph_position_t *hb_buffer_get_glyph_positions(hb_buffer_t *buffer)
-
-cdef extern from "hb-blob.h" :
- cdef struct hb_blob_t :
- pass
-# do I need blob functions here?
-
-cdef extern from "hb-font.h" :
- ctypedef struct hb_face_t :
- pass
- ctypedef struct hb_font_t :
- pass
-
- ctypedef hb_blob_t * (*hb_get_table_func_t) (hb_tag_t tag, void *user_data)
- hb_face_t * hb_face_create_for_data(hb_blob_t *blob, unsigned int index)
- hb_face_t * hb_face_create_for_tables(hb_get_table_func_t get_table, hb_destroy_func_t destroy, void *user_data)
- hb_face_t * hb_face_reference(hb_face_t *face)
- unsigned int hb_face_get_reference_count(hb_face_t *face)
- 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)
-
-
-cdef extern from "hb-shape.h" :
- ctypedef struct hb_feature_t :
- int tag
- unsigned int value
- unsigned int start
- unsigned int end
-
- void hb_shape (hb_font_t *font, hb_face_t *face, hb_buffer_t *buffer, hb_feature_t *features, unsigned int num_features)
-
-cdef extern from "hb-ft.h" :
- hb_face_t *hb_ft_face_create (FT_Face ft_face, hb_destroy_func_t destroy)
- hb_font_t *hb_ft_font_create (FT_Face ft_face, hb_destroy_func_t destroy)
-
-class glyphinfo :
-
- def __init__(self, gid, cluster, advance, offset, internal = 0) :
- self.gid = gid
- self.cluster = cluster
- self.advance = advance
- self.offset = offset
- self.internal = internal
-
- def __repr__(self) :
- res = "{0:d}>{1:d}@({2:.2f},{3:.2f})+({4:.2f},{5:.2f})".format(self.gid, self.cluster, self.offset[0], self.offset[1], self.advance[0], self.advance[1])
- if self.internal : res += "/i=" + str(self.internal)
- return res
-
-cdef class buffer :
- cdef hb_buffer_t *buffer
-
- def __init__(self, char *text, unsigned int length) :
- """Note text must be a utf-8 string and length is number of chars"""
- self.buffer = hb_buffer_create(length)
- hb_buffer_add_utf8(self.buffer, text, length, 0, len(text))
-
- def set_scriptlang(self, char *script, char *lang) :
- cdef hb_language_t language
- cdef hb_script_t scriptnum
-
- language = hb_language_from_string(lang)
- scriptnum = hb_ot_tag_to_script(hb_tag_from_string(script))
- hb_buffer_set_script(self.buffer, scriptnum)
- hb_buffer_set_language(self.buffer, language)
-
- def get_info(self, scale = 1) :
- cdef hb_glyph_info_t *infos
- cdef hb_glyph_position_t *positions
- cdef unsigned int num
- cdef unsigned int i
- res = []
-
- num = hb_buffer_get_length(self.buffer)
- infos = hb_buffer_get_glyph_infos(self.buffer)
- positions = hb_buffer_get_glyph_positions(self.buffer)
- for 0 <= i < num :
- temp = glyphinfo(infos[i].codepoint, infos[i].cluster, (positions[i].x_advance / scale, positions[i].y_advance / scale), (positions[i].x_offset / scale, positions[i].y_offset / scale), positions[i].var.u32)
- res.append(temp)
- return res
-
- def get_settings(self) :
- cdef hb_script_t script
- cdef hb_language_t lang
-
- script = hb_buffer_get_script(self.buffer)
- lang = hb_buffer_get_language(self.buffer)
- return {'script' : script, 'language' : hb_language_to_string(lang)}
-
- def __del__(self) :
- hb_buffer_destroy(self.buffer)
-
-cdef class ft :
- cdef FT_Library engine
- cdef FT_Face face
- cdef hb_face_t *hbface
- cdef hb_font_t *hbfont
-
- def __init__(self, char *fname, size) :
- cdef FT_Library engine
- FT_Init_FreeType(&engine)
- self.engine = engine
- cdef FT_Face face
- FT_New_Face(engine, fname, 0, &face)
- FT_Set_Char_Size(face, size << 6, size << 6, 72, 72)
- 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)
-
- def __del__(self) :
- cdef FT_Library engine
- engine = self.engine
- cdef FT_Face face
- face = self.face
- FT_Done_Face(face)
- FT_Done_FreeType(engine)
-
- def shape(self, buffer aBuffer, features = {}) :
- cdef hb_feature_t *feats
- cdef hb_feature_t *aFeat
- feats = <hb_feature_t *>malloc(sizeof(hb_feature_t) * len(features))
- aFeat = feats
- for k,v in features.items() :
- aFeat.tag = hb_tag_from_string (k)
- aFeat.value = int(v)
- aFeat.start = 0
- aFeat.end = -1
- aFeat += 1
- hb_shape(self.hbfont, self.hbface, aBuffer.buffer, feats, len(features))
-
-