<div dir="ltr"><div>So in reference to <a href="https://github.com/behdad/harfbuzz/issues/287">#287</a> I'm struggling to add this function into harfbuzz which would package glyph position and info into a compact, positional format:<br><br></div><span style="font-family:monospace,monospace">// hb-buffer.cc<br></span><div><span style="font-family:monospace,monospace"><br>void<br>hb_buffer_get_glyphs_horiz (hb_buffer_t * buffer, int length, int ** serialized_glyphs)<br>{<br>    assert (buffer->have_positions);<br>    assert (buffer->content_type == HB_BUFFER_CONTENT_TYPE_GLYPHS);<br>    <br>    unsigned int count = buffer->len;<br>    if (length < count)<br>        count = length;<br>    hb_glyph_info_t     *info = buffer->info;<br>    hb_glyph_position_t *pos  = buffer->pos;<br>    <br>    for (unsigned int i = 0; i < count; i++)<br>    {<br>        serialized_glyphs[i][0] = info[i].codepoint;<br>        serialized_glyphs[i][1] = info[i].cluster;<br>        serialized_glyphs[i][2] = pos [i].x_advance;<br>        serialized_glyphs[i][3] = pos [i].x_offset;<br>    }<br>}</span><br><br><br></div><div>Is what I have right now. But making it work with the gobject introspection API is in the way. The expected output is an array of 4-tuples, but I don’t know how to make this happen with gobject. I can only make this work with a one-dimensional array, when I need a two-dimensional array to store the four <span style="font-family:monospace,monospace">int</span><span style="font-family:arial,helvetica,sans-serif">s</span> (<span style="font-family:monospace,monospace">Item 0: Must be number, not list</span> when i call from python). Can somebody please help? I don’t have much experience with C/C++ at this level, and very little with gobject.<br></div></div>