/** * hb_draw_funcs_create: * * Creates a new draw callbacks object. * * Return value: (transfer full): * 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. * * Since: 4.0.0
**/
hb_draw_funcs_t *
hb_draw_funcs_create ()
{
hb_draw_funcs_t *dfuncs; if (unlikely (!(dfuncs = hb_object_create<hb_draw_funcs_t> ()))) returnconst_cast<hb_draw_funcs_t *> (&Null (hb_draw_funcs_t));
/** * hb_draw_funcs_reference: (skip) * @dfuncs: draw functions * * 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. * * Return value: (transfer full): * The referenced #hb_draw_funcs_t. * * Since: 4.0.0
**/
hb_draw_funcs_t *
hb_draw_funcs_reference (hb_draw_funcs_t *dfuncs)
{ return hb_object_reference (dfuncs);
}
/** * hb_draw_funcs_destroy: (skip) * @dfuncs: draw functions * * 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(). * * Since: 4.0.0
**/ void
hb_draw_funcs_destroy (hb_draw_funcs_t *dfuncs)
{ if (!hb_object_destroy (dfuncs)) return;
if (dfuncs->destroy)
{ #define HB_DRAW_FUNC_IMPLEMENT(name) \ if (dfuncs->destroy->name) dfuncs->destroy->name (!dfuncs->user_data ? nullptr : dfuncs->user_data->name);
HB_DRAW_FUNCS_IMPLEMENT_CALLBACKS #undef HB_DRAW_FUNC_IMPLEMENT
}
/** * hb_draw_funcs_set_user_data: (skip) * @dfuncs: The draw-functions structure * @key: The user-data key * @data: A pointer to the user data * @destroy: (nullable): A callback to call when @data is not needed anymore * @replace: Whether to replace an existing data with the same key * * Attaches a user-data key/data pair to the specified draw-functions structure. * * Return value: `true` if success, `false` otherwise * * Since: 7.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)
{ return hb_object_set_user_data (dfuncs, key, data, destroy, replace);
}
/** * hb_draw_funcs_get_user_data: (skip) * @dfuncs: The draw-functions structure * @key: The user-data key to query * * Fetches the user-data associated with the specified key, * attached to the specified draw-functions structure. * * Return value: (transfer none): A pointer to the user data * * Since: 7.0.0
**/ void *
hb_draw_funcs_get_user_data (const hb_draw_funcs_t *dfuncs,
hb_user_data_key_t *key)
{ return hb_object_get_user_data (dfuncs, key);
}
/** * hb_draw_move_to: * @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 * * Perform a "move-to" draw operation. * * 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)
{
dfuncs->move_to (draw_data, *st,
to_x, to_y);
}
/** * hb_draw_line_to: * @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 * * Perform a "line-to" draw operation. * * 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)
{
dfuncs->line_to (draw_data, *st,
to_x, to_y);
}
/** * hb_draw_quadratic_to: * @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 * * Perform a "quadratic-to" draw operation. * * 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)
{
dfuncs->quadratic_to (draw_data, *st,
control_x, control_y,
to_x, to_y);
}
/** * hb_draw_cubic_to: * @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 * * Perform a "cubic-to" draw operation. * * 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)
{
dfuncs->cubic_to (draw_data, *st,
control1_x, control1_y,
control2_x, control2_y,
to_x, to_y);
}
/** * hb_draw_close_path: * @dfuncs: draw functions * @draw_data: associated draw data passed by the caller * @st: current draw state * * Perform a "close-path" draw operation. * * Since: 4.0.0
**/ void
hb_draw_close_path (hb_draw_funcs_t *dfuncs, void *draw_data,
hb_draw_state_t *st)
{
dfuncs->close_path (draw_data, *st);
}
#endif
Messung V0.5
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.