35 #define HB_DRAW_FUNCS_IMPLEMENT_CALLBACKS \
36 HB_DRAW_FUNC_IMPLEMENT (move_to) \
37 HB_DRAW_FUNC_IMPLEMENT (line_to) \
38 HB_DRAW_FUNC_IMPLEMENT (quadratic_to) \
39 HB_DRAW_FUNC_IMPLEMENT (cubic_to) \
40 HB_DRAW_FUNC_IMPLEMENT (close_path) \
48 #define HB_DRAW_FUNC_IMPLEMENT(name) hb_draw_##name##_func_t name;
50 #undef HB_DRAW_FUNC_IMPLEMENT
54 #define HB_DRAW_FUNC_IMPLEMENT(name) void *name;
56 #undef HB_DRAW_FUNC_IMPLEMENT
60 #define HB_DRAW_FUNC_IMPLEMENT(name) hb_destroy_func_t name;
62 #undef HB_DRAW_FUNC_IMPLEMENT
66 float to_x,
float to_y)
67 {
func.move_to (
this, draw_data, &st,
71 float to_x,
float to_y)
72 {
func.line_to (
this, draw_data, &st,
76 float control_x,
float control_y,
77 float to_x,
float to_y)
78 {
func.quadratic_to (
this, draw_data, &st,
83 float control1_x,
float control1_y,
84 float control2_x,
float control2_y,
85 float to_x,
float to_y)
86 {
func.cubic_to (
this, draw_data, &st,
87 control1_x, control1_y,
88 control2_x, control2_y,
92 {
func.close_path (
this, draw_data, &st,
97 float to_x,
float to_y)
105 float to_x,
float to_y)
115 float control_x,
float control_y,
116 float to_x,
float to_y)
126 float control1_x,
float control1_y,
127 float control2_x,
float control2_y,
128 float to_x,
float to_y)
131 emit_cubic_to (draw_data, st, control1_x, control1_y, control2_x, control2_y, to_x, to_y);
178 to_x + to_y *
slant, to_y);
187 to_x + to_y *
slant, to_y);
191 float to_x,
float to_y)
195 control_x, control_y,
199 control_x + control_y *
slant, control_y,
200 to_x + to_y *
slant, to_y);
204 float control2_x,
float control2_y,
205 float to_x,
float to_y)
209 control1_x, control1_y,
210 control2_x, control2_y,
214 control1_x + control1_y *
slant, control1_y,
215 control2_x + control2_y *
slant, control2_y,
216 to_x + to_y *
slant, to_y);
#define HB_DRAW_STATE_DEFAULT
DECLARE_NULL_INSTANCE(hb_draw_funcs_t)
#define HB_DRAW_FUNCS_IMPLEMENT_CALLBACKS
void quadratic_to(void *draw_data, hb_draw_state_t &st, float control_x, float control_y, float to_x, float to_y)
void move_to(void *draw_data, hb_draw_state_t &st, float to_x, float to_y)
struct hb_draw_funcs_t::@113 func
void emit_close_path(void *draw_data, hb_draw_state_t &st)
void emit_cubic_to(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 close_path(void *draw_data, hb_draw_state_t &st)
struct hb_draw_funcs_t::@115 destroy
void line_to(void *draw_data, hb_draw_state_t &st, float to_x, float to_y)
void emit_move_to(void *draw_data, hb_draw_state_t &st, float to_x, float to_y)
void emit_quadratic_to(void *draw_data, hb_draw_state_t &st, float control_x, float control_y, float to_x, float to_y)
void cubic_to(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)
hb_object_header_t header
void start_path(void *draw_data, hb_draw_state_t &st)
struct hb_draw_funcs_t::@114 user_data
void emit_line_to(void *draw_data, hb_draw_state_t &st, float to_x, float to_y)
void line_to(float to_x, float to_y)
void move_to(float to_x, float to_y)
void cubic_to(float control1_x, float control1_y, float control2_x, float control2_y, float to_x, float to_y)
hb_draw_session_t(hb_draw_funcs_t *funcs_, void *draw_data_, float slant_=0.f)
void quadratic_to(float control_x, float control_y, float to_x, float to_y)