Top |
hb_draw_funcs_t * | hb_draw_funcs_create () |
hb_draw_funcs_t * | hb_draw_funcs_get_empty () |
hb_draw_funcs_t * | hb_draw_funcs_reference () |
void | hb_draw_funcs_destroy () |
hb_bool_t | hb_draw_funcs_set_user_data () |
void * | hb_draw_funcs_get_user_data () |
void | hb_draw_funcs_make_immutable () |
hb_bool_t | hb_draw_funcs_is_immutable () |
void | (*hb_draw_move_to_func_t) () |
void | hb_draw_funcs_set_move_to_func () |
void | (*hb_draw_line_to_func_t) () |
void | hb_draw_funcs_set_line_to_func () |
void | (*hb_draw_quadratic_to_func_t) () |
void | hb_draw_funcs_set_quadratic_to_func () |
void | (*hb_draw_cubic_to_func_t) () |
void | hb_draw_funcs_set_cubic_to_func () |
void | (*hb_draw_close_path_func_t) () |
void | hb_draw_funcs_set_close_path_func () |
void | hb_draw_move_to () |
void | hb_draw_line_to () |
void | hb_draw_quadratic_to () |
void | hb_draw_cubic_to () |
void | hb_draw_close_path () |
Functions for drawing (extracting) glyph shapes.
The hb_draw_funcs_t struct can be used with hb_font_draw_glyph()
.
hb_draw_funcs_t *
hb_draw_funcs_create (void
);
Creates a new draw callbacks object.
A newly allocated hb_draw_funcs_t with a reference count of 1. The initial
reference count should be released with hb_draw_funcs_destroy when you are
done using the hb_draw_funcs_t. This function never returns NULL
. If
memory cannot be allocated, a special singleton hb_draw_funcs_t object will
be returned.
[transfer full]
Since: 4.0.0
hb_draw_funcs_t *
hb_draw_funcs_get_empty (void
);
Fetches the singleton empty draw-functions structure.
Since: 7.0.0
hb_draw_funcs_t *
hb_draw_funcs_reference (hb_draw_funcs_t *dfuncs
);
Increases the reference count on dfuncs
by one.
This prevents dfuncs
from being destroyed until a matching
call to hb_draw_funcs_destroy()
is made.
[skip]
Since: 4.0.0
void
hb_draw_funcs_destroy (hb_draw_funcs_t *dfuncs
);
Deallocate the dfuncs
.
Decreases the reference count on dfuncs
by one. If the result is zero, then
dfuncs
and all associated resources are freed. See hb_draw_funcs_reference()
.
[skip]
Since: 4.0.0
hb_bool_t hb_draw_funcs_set_user_data (hb_draw_funcs_t *dfuncs
,hb_user_data_key_t *key
,void *data
,hb_destroy_func_t destroy
,hb_bool_t replace
);
Attaches a user-data key/data pair to the specified draw-functions structure.
[skip]
dfuncs |
The draw-functions structure |
|
key |
The user-data key |
|
data |
A pointer to the user data |
|
destroy |
A callback to call when |
[nullable] |
replace |
Whether to replace an existing data with the same key |
Since: 7.0.0
void * hb_draw_funcs_get_user_data (const hb_draw_funcs_t *dfuncs
,hb_user_data_key_t *key
);
Fetches the user-data associated with the specified key, attached to the specified draw-functions structure.
[skip]
Since: 7.0.0
void
hb_draw_funcs_make_immutable (hb_draw_funcs_t *dfuncs
);
Makes dfuncs
object immutable.
Since: 4.0.0
hb_bool_t
hb_draw_funcs_is_immutable (hb_draw_funcs_t *dfuncs
);
Checks whether dfuncs
is immutable.
Since: 4.0.0
void (*hb_draw_move_to_func_t) (hb_draw_funcs_t *dfuncs
,void *draw_data
,hb_draw_state_t *st
,float to_x
,float to_y
,void *user_data
);
A virtual method for the hb_draw_funcs_t to perform a "move-to" draw operation.
dfuncs |
draw functions object |
|
draw_data |
The data accompanying the draw functions in |
|
st |
current draw state |
|
to_x |
X component of target point |
|
to_y |
Y component of target point |
|
user_data |
User data pointer passed to |
Since: 4.0.0
void hb_draw_funcs_set_move_to_func (hb_draw_funcs_t *dfuncs
,hb_draw_move_to_func_t func
,void *user_data
,hb_destroy_func_t destroy
);
Sets move-to callback to the draw functions object.
dfuncs |
draw functions object |
|
func |
move-to callback. |
[closure user_data][destroy destroy][scope notified] |
user_data |
Data to pass to |
|
destroy |
The function to call when |
[nullable] |
Since: 4.0.0
void (*hb_draw_line_to_func_t) (hb_draw_funcs_t *dfuncs
,void *draw_data
,hb_draw_state_t *st
,float to_x
,float to_y
,void *user_data
);
A virtual method for the hb_draw_funcs_t to perform a "line-to" draw operation.
dfuncs |
draw functions object |
|
draw_data |
The data accompanying the draw functions in |
|
st |
current draw state |
|
to_x |
X component of target point |
|
to_y |
Y component of target point |
|
user_data |
User data pointer passed to |
Since: 4.0.0
void hb_draw_funcs_set_line_to_func (hb_draw_funcs_t *dfuncs
,hb_draw_line_to_func_t func
,void *user_data
,hb_destroy_func_t destroy
);
Sets line-to callback to the draw functions object.
dfuncs |
draw functions object |
|
func |
line-to callback. |
[closure user_data][destroy destroy][scope notified] |
user_data |
Data to pass to |
|
destroy |
The function to call when |
[nullable] |
Since: 4.0.0
void (*hb_draw_quadratic_to_func_t) (hb_draw_funcs_t *dfuncs
,void *draw_data
,hb_draw_state_t *st
,float control_x
,float control_y
,float to_x
,float to_y
,void *user_data
);
A virtual method for the hb_draw_funcs_t to perform a "quadratic-to" draw operation.
dfuncs |
draw functions object |
|
draw_data |
The data accompanying the draw functions in |
|
st |
current draw state |
|
control_x |
X component of control point |
|
control_y |
Y component of control point |
|
to_x |
X component of target point |
|
to_y |
Y component of target point |
|
user_data |
User data pointer passed to |
Since: 4.0.0
void hb_draw_funcs_set_quadratic_to_func (hb_draw_funcs_t *dfuncs
,hb_draw_quadratic_to_func_t func
,void *user_data
,hb_destroy_func_t destroy
);
Sets quadratic-to callback to the draw functions object.
dfuncs |
draw functions object |
|
func |
quadratic-to callback. |
[closure user_data][destroy destroy][scope notified] |
user_data |
Data to pass to |
|
destroy |
The function to call when |
[nullable] |
Since: 4.0.0
void (*hb_draw_cubic_to_func_t) (hb_draw_funcs_t *dfuncs
,void *draw_data
,hb_draw_state_t *st
,float control1_x
,float control1_y
,float control2_x
,float control2_y
,float to_x
,float to_y
,void *user_data
);
A virtual method for the hb_draw_funcs_t to perform a "cubic-to" draw operation.
dfuncs |
draw functions object |
|
draw_data |
The data accompanying the draw functions in |
|
st |
current draw state |
|
control1_x |
X component of first control point |
|
control1_y |
Y component of first control point |
|
control2_x |
X component of second control point |
|
control2_y |
Y component of second control point |
|
to_x |
X component of target point |
|
to_y |
Y component of target point |
|
user_data |
User data pointer passed to |
Since: 4.0.0
void hb_draw_funcs_set_cubic_to_func (hb_draw_funcs_t *dfuncs
,hb_draw_cubic_to_func_t func
,void *user_data
,hb_destroy_func_t destroy
);
Sets cubic-to callback to the draw functions object.
dfuncs |
draw functions |
|
func |
cubic-to callback. |
[closure user_data][destroy destroy][scope notified] |
user_data |
Data to pass to |
|
destroy |
The function to call when |
[nullable] |
Since: 4.0.0
void (*hb_draw_close_path_func_t) (hb_draw_funcs_t *dfuncs
,void *draw_data
,hb_draw_state_t *st
,void *user_data
);
A virtual method for the hb_draw_funcs_t to perform a "close-path" draw operation.
dfuncs |
draw functions object |
|
draw_data |
The data accompanying the draw functions in |
|
st |
current draw state |
|
user_data |
User data pointer passed to |
Since: 4.0.0
void hb_draw_funcs_set_close_path_func (hb_draw_funcs_t *dfuncs
,hb_draw_close_path_func_t func
,void *user_data
,hb_destroy_func_t destroy
);
Sets close-path callback to the draw functions object.
dfuncs |
draw functions object |
|
func |
close-path callback. |
[closure user_data][destroy destroy][scope notified] |
user_data |
Data to pass to |
|
destroy |
The function to call when |
[nullable] |
Since: 4.0.0
void hb_draw_move_to (hb_draw_funcs_t *dfuncs
,void *draw_data
,hb_draw_state_t *st
,float to_x
,float to_y
);
Perform a "move-to" draw operation.
dfuncs |
draw functions |
|
draw_data |
associated draw data passed by the caller |
|
st |
current draw state |
|
to_x |
X component of target point |
|
to_y |
Y component of target point |
Since: 4.0.0
void hb_draw_line_to (hb_draw_funcs_t *dfuncs
,void *draw_data
,hb_draw_state_t *st
,float to_x
,float to_y
);
Perform a "line-to" draw operation.
dfuncs |
draw functions |
|
draw_data |
associated draw data passed by the caller |
|
st |
current draw state |
|
to_x |
X component of target point |
|
to_y |
Y component of target point |
Since: 4.0.0
void hb_draw_quadratic_to (hb_draw_funcs_t *dfuncs
,void *draw_data
,hb_draw_state_t *st
,float control_x
,float control_y
,float to_x
,float to_y
);
Perform a "quadratic-to" draw operation.
dfuncs |
draw functions |
|
draw_data |
associated draw data passed by the caller |
|
st |
current draw state |
|
control_x |
X component of control point |
|
control_y |
Y component of control point |
|
to_x |
X component of target point |
|
to_y |
Y component of target point |
Since: 4.0.0
void hb_draw_cubic_to (hb_draw_funcs_t *dfuncs
,void *draw_data
,hb_draw_state_t *st
,float control1_x
,float control1_y
,float control2_x
,float control2_y
,float to_x
,float to_y
);
Perform a "cubic-to" draw operation.
dfuncs |
draw functions |
|
draw_data |
associated draw data passed by the caller |
|
st |
current draw state |
|
control1_x |
X component of first control point |
|
control1_y |
Y component of first control point |
|
control2_x |
X component of second control point |
|
control2_y |
Y component of second control point |
|
to_x |
X component of target point |
|
to_y |
Y component of target point |
Since: 4.0.0
void hb_draw_close_path (hb_draw_funcs_t *dfuncs
,void *draw_data
,hb_draw_state_t *st
);
Perform a "close-path" draw operation.
dfuncs |
draw functions |
|
draw_data |
associated draw data passed by the caller |
|
st |
current draw state |
Since: 4.0.0
#define HB_DRAW_STATE_DEFAULT {0, 0.f, 0.f, 0.f, 0.f, {0.}, {0.}, {0.}, {0.}, {0.}, {0.}, {0.}}
The default hb_draw_state_t at the start of glyph drawing.
typedef struct hb_draw_funcs_t hb_draw_funcs_t;
Glyph draw callbacks.
hb_draw_move_to_func_t, hb_draw_line_to_func_t and hb_draw_cubic_to_func_t calls are necessary to be defined but we translate hb_draw_quadratic_to_func_t calls to hb_draw_cubic_to_func_t if the callback isn't defined.
Since: 4.0.0
typedef struct { hb_bool_t path_open; float path_start_x; float path_start_y; float current_x; float current_y; } hb_draw_state_t;
Current drawing state.
hb_bool_t |
Whether there is an open path |
|
X component of the start of current path |
||
Y component of the start of current path |
||
X component of current point |
||
Y component of current point |
Since: 4.0.0