Fix up gobject-introspection a bit
Minimal shaping works now!
This commit is contained in:
parent
3d1a666a86
commit
b632e7997d
|
@ -79,11 +79,11 @@ _hb_blob_destroy_user_data (hb_blob_t *blob)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hb_blob_create: (Xconstructor)
|
* hb_blob_create: (Xconstructor)
|
||||||
* @data: (array length=length) (closure user_data) (destroy destroy) (scope notified) (transfer none): Pointer to blob data.
|
* @data: (array length=length) (element-type uint8_t) (closure user_data) (destroy destroy) (scope notified) (transfer none): Pointer to blob data.
|
||||||
* @length: Length of @data in bytes.
|
* @length: Length of @data in bytes.
|
||||||
* @mode: Memory mode for @data.
|
* @mode: Memory mode for @data.
|
||||||
* @user_data: Data parameter to pass to @destroy.
|
* @user_data: (allow-none): Data parameter to pass to @destroy.
|
||||||
* @destroy: Callback to call when @data is not needed anymore.
|
* @destroy: (allow-none): Callback to call when @data is not needed anymore.
|
||||||
*
|
*
|
||||||
* Creates a new "blob" object wrapping @data. The @mode parameter is used
|
* Creates a new "blob" object wrapping @data. The @mode parameter is used
|
||||||
* to negotiate ownership and lifecycle of @data.
|
* to negotiate ownership and lifecycle of @data.
|
||||||
|
|
|
@ -1400,7 +1400,7 @@ hb_buffer_add_utf (hb_buffer_t *buffer,
|
||||||
/**
|
/**
|
||||||
* hb_buffer_add_utf8:
|
* hb_buffer_add_utf8:
|
||||||
* @buffer: a buffer.
|
* @buffer: a buffer.
|
||||||
* @text: (array length=text_length):
|
* @text: (array length=text_length) (element-type uint8_t):
|
||||||
* @text_length:
|
* @text_length:
|
||||||
* @item_offset:
|
* @item_offset:
|
||||||
* @item_length:
|
* @item_length:
|
||||||
|
|
|
@ -1,13 +1,35 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
import sys
|
import sys
|
||||||
from gi.repository import HarfBuzz as hb
|
from gi.repository import HarfBuzz as hb
|
||||||
|
|
||||||
def nothing():
|
def nothing(data):
|
||||||
pass
|
print(data)
|
||||||
|
|
||||||
fontdata = file (sys.argv[1]).read ()
|
fontdata = open (sys.argv[1], 'rb').read ()
|
||||||
blob = hb.blob_create (fontdata, hb.memory_mode_t.WRITABLE, None, nothing)
|
|
||||||
print blob
|
|
||||||
buffer = hb.buffer_create ()
|
|
||||||
|
|
||||||
|
blob = hb.blob_create (fontdata, hb.memory_mode_t.DUPLICATE, 1234, None)
|
||||||
|
buf = hb.buffer_create ()
|
||||||
|
hb.buffer_add_utf8 (buf, "Hello بهداد", 0, -1)
|
||||||
|
hb.buffer_guess_segment_properties (buf)
|
||||||
|
|
||||||
|
face = hb.face_create (blob, 0)
|
||||||
|
font = hb.font_create (face)
|
||||||
|
upem = hb.face_get_upem (face)
|
||||||
|
hb.font_set_scale (font, upem, upem)
|
||||||
|
#hb.ft_font_set_funcs (font)
|
||||||
|
hb.ot_font_set_funcs (font)
|
||||||
|
|
||||||
|
hb.shape (font, buf, [])
|
||||||
|
|
||||||
|
infos = hb.buffer_get_glyph_infos (buf)
|
||||||
|
positions = hb.buffer_get_glyph_positions (buf)
|
||||||
|
|
||||||
|
for info,pos in zip(infos, positions):
|
||||||
|
gid = info.codepoint
|
||||||
|
cluster = info.cluster
|
||||||
|
advance = pos.x_advance
|
||||||
|
|
||||||
|
print(gid, cluster, advance)
|
||||||
|
|
Loading…
Reference in New Issue