[draw] Rename internal draw_helper_t to draw_session_t
This commit is contained in:
parent
f1a9a9ccaf
commit
c681331c3f
|
@ -167,12 +167,12 @@ struct hb_draw_funcs_t
|
|||
};
|
||||
DECLARE_NULL_INSTANCE (hb_draw_funcs_t);
|
||||
|
||||
struct draw_helper_t
|
||||
struct draw_session_t
|
||||
{
|
||||
draw_helper_t (hb_draw_funcs_t *funcs_, void *draw_data_)
|
||||
draw_session_t (hb_draw_funcs_t *funcs_, void *draw_data_)
|
||||
: funcs {funcs_}, draw_data {draw_data_}, st HB_DRAW_STATE_DEFAULT {}
|
||||
|
||||
~draw_helper_t () { close_path (); }
|
||||
~draw_session_t () { close_path (); }
|
||||
|
||||
void move_to (float to_x, float to_y)
|
||||
{
|
||||
|
|
|
@ -445,9 +445,9 @@ bool OT::cff1::accelerator_t::get_extents (hb_font_t *font, hb_codepoint_t glyph
|
|||
struct cff1_path_param_t
|
||||
{
|
||||
cff1_path_param_t (const OT::cff1::accelerator_t *cff_, hb_font_t *font_,
|
||||
draw_helper_t &draw_helper_, point_t *delta_)
|
||||
draw_session_t &draw_session_, point_t *delta_)
|
||||
{
|
||||
draw_helper = &draw_helper_;
|
||||
draw_session = &draw_session_;
|
||||
cff = cff_;
|
||||
font = font_;
|
||||
delta = delta_;
|
||||
|
@ -457,14 +457,14 @@ struct cff1_path_param_t
|
|||
{
|
||||
point_t point = p;
|
||||
if (delta) point.move (*delta);
|
||||
draw_helper->move_to (font->em_fscalef_x (point.x.to_real ()), font->em_fscalef_y (point.y.to_real ()));
|
||||
draw_session->move_to (font->em_fscalef_x (point.x.to_real ()), font->em_fscalef_y (point.y.to_real ()));
|
||||
}
|
||||
|
||||
void line_to (const point_t &p)
|
||||
{
|
||||
point_t point = p;
|
||||
if (delta) point.move (*delta);
|
||||
draw_helper->line_to (font->em_fscalef_x (point.x.to_real ()), font->em_fscalef_y (point.y.to_real ()));
|
||||
draw_session->line_to (font->em_fscalef_x (point.x.to_real ()), font->em_fscalef_y (point.y.to_real ()));
|
||||
}
|
||||
|
||||
void cubic_to (const point_t &p1, const point_t &p2, const point_t &p3)
|
||||
|
@ -476,15 +476,15 @@ struct cff1_path_param_t
|
|||
point2.move (*delta);
|
||||
point3.move (*delta);
|
||||
}
|
||||
draw_helper->cubic_to (font->em_fscalef_x (point1.x.to_real ()), font->em_fscalef_y (point1.y.to_real ()),
|
||||
draw_session->cubic_to (font->em_fscalef_x (point1.x.to_real ()), font->em_fscalef_y (point1.y.to_real ()),
|
||||
font->em_fscalef_x (point2.x.to_real ()), font->em_fscalef_y (point2.y.to_real ()),
|
||||
font->em_fscalef_x (point3.x.to_real ()), font->em_fscalef_y (point3.y.to_real ()));
|
||||
}
|
||||
|
||||
void end_path () { draw_helper->close_path (); }
|
||||
void end_path () { draw_session->close_path (); }
|
||||
|
||||
hb_font_t *font;
|
||||
draw_helper_t *draw_helper;
|
||||
draw_session_t *draw_session;
|
||||
point_t *delta;
|
||||
|
||||
const OT::cff1::accelerator_t *cff;
|
||||
|
@ -512,7 +512,7 @@ struct cff1_path_procs_path_t : path_procs_t<cff1_path_procs_path_t, cff1_cs_int
|
|||
};
|
||||
|
||||
static bool _get_path (const OT::cff1::accelerator_t *cff, hb_font_t *font, hb_codepoint_t glyph,
|
||||
draw_helper_t &draw_helper, bool in_seac = false, point_t *delta = nullptr);
|
||||
draw_session_t &draw_session, bool in_seac = false, point_t *delta = nullptr);
|
||||
|
||||
struct cff1_cs_opset_path_t : cff1_cs_opset_t<cff1_cs_opset_path_t, cff1_path_param_t, cff1_path_procs_path_t>
|
||||
{
|
||||
|
@ -529,14 +529,14 @@ struct cff1_cs_opset_path_t : cff1_cs_opset_t<cff1_cs_opset_path_t, cff1_path_pa
|
|||
hb_codepoint_t accent = param.cff->std_code_to_glyph (env.argStack[n-1].to_int ());
|
||||
|
||||
if (unlikely (!(!env.in_seac && base && accent
|
||||
&& _get_path (param.cff, param.font, base, *param.draw_helper, true)
|
||||
&& _get_path (param.cff, param.font, accent, *param.draw_helper, true, &delta))))
|
||||
&& _get_path (param.cff, param.font, base, *param.draw_session, true)
|
||||
&& _get_path (param.cff, param.font, accent, *param.draw_session, true, &delta))))
|
||||
env.set_error ();
|
||||
}
|
||||
};
|
||||
|
||||
bool _get_path (const OT::cff1::accelerator_t *cff, hb_font_t *font, hb_codepoint_t glyph,
|
||||
draw_helper_t &draw_helper, bool in_seac, point_t *delta)
|
||||
draw_session_t &draw_session, bool in_seac, point_t *delta)
|
||||
{
|
||||
if (unlikely (!cff->is_valid () || (glyph >= cff->num_glyphs))) return false;
|
||||
|
||||
|
@ -545,7 +545,7 @@ bool _get_path (const OT::cff1::accelerator_t *cff, hb_font_t *font, hb_codepoin
|
|||
const byte_str_t str = (*cff->charStrings)[glyph];
|
||||
interp.env.init (str, *cff, fd);
|
||||
interp.env.set_in_seac (in_seac);
|
||||
cff1_path_param_t param (cff, font, draw_helper, delta);
|
||||
cff1_path_param_t param (cff, font, draw_session, delta);
|
||||
if (unlikely (!interp.interpret (param))) return false;
|
||||
|
||||
/* Let's end the path specially since it is called inside seac also */
|
||||
|
@ -554,14 +554,14 @@ bool _get_path (const OT::cff1::accelerator_t *cff, hb_font_t *font, hb_codepoin
|
|||
return true;
|
||||
}
|
||||
|
||||
bool OT::cff1::accelerator_t::get_path (hb_font_t *font, hb_codepoint_t glyph, draw_helper_t &draw_helper) const
|
||||
bool OT::cff1::accelerator_t::get_path (hb_font_t *font, hb_codepoint_t glyph, draw_session_t &draw_session) const
|
||||
{
|
||||
#ifdef HB_NO_OT_FONT_CFF
|
||||
/* XXX Remove check when this code moves to .hh file. */
|
||||
return true;
|
||||
#endif
|
||||
|
||||
return _get_path (this, font, glyph, draw_helper);
|
||||
return _get_path (this, font, glyph, draw_session);
|
||||
}
|
||||
|
||||
struct get_seac_param_t
|
||||
|
|
|
@ -1347,7 +1347,7 @@ struct cff1
|
|||
|
||||
HB_INTERNAL bool get_extents (hb_font_t *font, hb_codepoint_t glyph, hb_glyph_extents_t *extents) const;
|
||||
HB_INTERNAL bool get_seac_components (hb_codepoint_t glyph, hb_codepoint_t *base, hb_codepoint_t *accent) const;
|
||||
HB_INTERNAL bool get_path (hb_font_t *font, hb_codepoint_t glyph, draw_helper_t &draw_helper) const;
|
||||
HB_INTERNAL bool get_path (hb_font_t *font, hb_codepoint_t glyph, draw_session_t &draw_session) const;
|
||||
|
||||
private:
|
||||
struct gname_t
|
||||
|
|
|
@ -145,27 +145,27 @@ bool OT::cff2::accelerator_t::get_extents (hb_font_t *font,
|
|||
|
||||
struct cff2_path_param_t
|
||||
{
|
||||
cff2_path_param_t (hb_font_t *font_, draw_helper_t &draw_helper_)
|
||||
cff2_path_param_t (hb_font_t *font_, draw_session_t &draw_session_)
|
||||
{
|
||||
draw_helper = &draw_helper_;
|
||||
draw_session = &draw_session_;
|
||||
font = font_;
|
||||
}
|
||||
|
||||
void move_to (const point_t &p)
|
||||
{ draw_helper->move_to (font->em_fscalef_x (p.x.to_real ()), font->em_fscalef_y (p.y.to_real ())); }
|
||||
{ draw_session->move_to (font->em_fscalef_x (p.x.to_real ()), font->em_fscalef_y (p.y.to_real ())); }
|
||||
|
||||
void line_to (const point_t &p)
|
||||
{ draw_helper->line_to (font->em_fscalef_x (p.x.to_real ()), font->em_fscalef_y (p.y.to_real ())); }
|
||||
{ draw_session->line_to (font->em_fscalef_x (p.x.to_real ()), font->em_fscalef_y (p.y.to_real ())); }
|
||||
|
||||
void cubic_to (const point_t &p1, const point_t &p2, const point_t &p3)
|
||||
{
|
||||
draw_helper->cubic_to (font->em_fscalef_x (p1.x.to_real ()), font->em_fscalef_y (p1.y.to_real ()),
|
||||
draw_session->cubic_to (font->em_fscalef_x (p1.x.to_real ()), font->em_fscalef_y (p1.y.to_real ()),
|
||||
font->em_fscalef_x (p2.x.to_real ()), font->em_fscalef_y (p2.y.to_real ()),
|
||||
font->em_fscalef_x (p3.x.to_real ()), font->em_fscalef_y (p3.y.to_real ()));
|
||||
}
|
||||
|
||||
protected:
|
||||
draw_helper_t *draw_helper;
|
||||
draw_session_t *draw_session;
|
||||
hb_font_t *font;
|
||||
};
|
||||
|
||||
|
@ -192,7 +192,7 @@ struct cff2_path_procs_path_t : path_procs_t<cff2_path_procs_path_t, cff2_cs_int
|
|||
|
||||
struct cff2_cs_opset_path_t : cff2_cs_opset_t<cff2_cs_opset_path_t, cff2_path_param_t, cff2_path_procs_path_t> {};
|
||||
|
||||
bool OT::cff2::accelerator_t::get_path (hb_font_t *font, hb_codepoint_t glyph, draw_helper_t &draw_helper) const
|
||||
bool OT::cff2::accelerator_t::get_path (hb_font_t *font, hb_codepoint_t glyph, draw_session_t &draw_session) const
|
||||
{
|
||||
#ifdef HB_NO_OT_FONT_CFF
|
||||
/* XXX Remove check when this code moves to .hh file. */
|
||||
|
@ -205,7 +205,7 @@ bool OT::cff2::accelerator_t::get_path (hb_font_t *font, hb_codepoint_t glyph, d
|
|||
cff2_cs_interpreter_t<cff2_cs_opset_path_t, cff2_path_param_t> interp;
|
||||
const byte_str_t str = (*charStrings)[glyph];
|
||||
interp.env.init (str, *this, fd, font->coords, font->num_coords);
|
||||
cff2_path_param_t param (font, draw_helper);
|
||||
cff2_path_param_t param (font, draw_session);
|
||||
if (unlikely (!interp.interpret (param))) return false;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -515,7 +515,7 @@ struct cff2
|
|||
HB_INTERNAL bool get_extents (hb_font_t *font,
|
||||
hb_codepoint_t glyph,
|
||||
hb_glyph_extents_t *extents) const;
|
||||
HB_INTERNAL bool get_path (hb_font_t *font, hb_codepoint_t glyph, draw_helper_t &draw_helper) const;
|
||||
HB_INTERNAL bool get_path (hb_font_t *font, hb_codepoint_t glyph, draw_session_t &draw_session) const;
|
||||
};
|
||||
|
||||
typedef accelerator_templ_t<cff2_private_dict_opset_subset_t, cff2_private_dict_values_subset_t> accelerator_subset_t;
|
||||
|
|
|
@ -265,11 +265,11 @@ hb_ot_get_glyph_shape (hb_font_t *font,
|
|||
hb_draw_funcs_t *draw_funcs, void *draw_data,
|
||||
void *user_data)
|
||||
{
|
||||
draw_helper_t draw_helper (draw_funcs, draw_data);
|
||||
if (font->face->table.glyf->get_path (font, glyph, draw_helper)) return;
|
||||
draw_session_t draw_session (draw_funcs, draw_data);
|
||||
if (font->face->table.glyf->get_path (font, glyph, draw_session)) return;
|
||||
#ifndef HB_NO_CFF
|
||||
if (font->face->table.cff1->get_path (font, glyph, draw_helper)) return;
|
||||
if (font->face->table.cff2->get_path (font, glyph, draw_helper)) return;
|
||||
if (font->face->table.cff1->get_path (font, glyph, draw_session)) return;
|
||||
if (font->face->table.cff2->get_path (font, glyph, draw_session)) return;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -1155,7 +1155,7 @@ struct glyf
|
|||
struct path_builder_t
|
||||
{
|
||||
hb_font_t *font;
|
||||
draw_helper_t *draw_helper;
|
||||
draw_session_t *draw_session;
|
||||
|
||||
struct optional_point_t
|
||||
{
|
||||
|
@ -1170,10 +1170,10 @@ struct glyf
|
|||
{ return optional_point_t (x + t * (p.x - x), y + t * (p.y - y)); }
|
||||
} first_oncurve, first_offcurve, last_offcurve;
|
||||
|
||||
path_builder_t (hb_font_t *font_, draw_helper_t &draw_helper_)
|
||||
path_builder_t (hb_font_t *font_, draw_session_t &draw_session_)
|
||||
{
|
||||
font = font_;
|
||||
draw_helper = &draw_helper_;
|
||||
draw_session = &draw_session_;
|
||||
first_oncurve = first_offcurve = last_offcurve = optional_point_t ();
|
||||
}
|
||||
|
||||
|
@ -1194,7 +1194,7 @@ struct glyf
|
|||
if (is_on_curve)
|
||||
{
|
||||
first_oncurve = p;
|
||||
draw_helper->move_to (font->em_fscalef_x (p.x), font->em_fscalef_y (p.y));
|
||||
draw_session->move_to (font->em_fscalef_x (p.x), font->em_fscalef_y (p.y));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1203,7 +1203,7 @@ struct glyf
|
|||
optional_point_t mid = first_offcurve.lerp (p, .5f);
|
||||
first_oncurve = mid;
|
||||
last_offcurve = p;
|
||||
draw_helper->move_to (font->em_fscalef_x (mid.x), font->em_fscalef_y (mid.y));
|
||||
draw_session->move_to (font->em_fscalef_x (mid.x), font->em_fscalef_y (mid.y));
|
||||
}
|
||||
else
|
||||
first_offcurve = p;
|
||||
|
@ -1215,14 +1215,14 @@ struct glyf
|
|||
{
|
||||
if (is_on_curve)
|
||||
{
|
||||
draw_helper->quadratic_to (font->em_fscalef_x (last_offcurve.x), font->em_fscalef_y (last_offcurve.y),
|
||||
draw_session->quadratic_to (font->em_fscalef_x (last_offcurve.x), font->em_fscalef_y (last_offcurve.y),
|
||||
font->em_fscalef_x (p.x), font->em_fscalef_y (p.y));
|
||||
last_offcurve = optional_point_t ();
|
||||
}
|
||||
else
|
||||
{
|
||||
optional_point_t mid = last_offcurve.lerp (p, .5f);
|
||||
draw_helper->quadratic_to (font->em_fscalef_x (last_offcurve.x), font->em_fscalef_y (last_offcurve.y),
|
||||
draw_session->quadratic_to (font->em_fscalef_x (last_offcurve.x), font->em_fscalef_y (last_offcurve.y),
|
||||
font->em_fscalef_x (mid.x), font->em_fscalef_y (mid.y));
|
||||
last_offcurve = p;
|
||||
}
|
||||
|
@ -1230,7 +1230,7 @@ struct glyf
|
|||
else
|
||||
{
|
||||
if (is_on_curve)
|
||||
draw_helper->line_to (font->em_fscalef_x (p.x), font->em_fscalef_y (p.y));
|
||||
draw_session->line_to (font->em_fscalef_x (p.x), font->em_fscalef_y (p.y));
|
||||
else
|
||||
last_offcurve = p;
|
||||
}
|
||||
|
@ -1241,24 +1241,24 @@ struct glyf
|
|||
if (first_offcurve.has_data && last_offcurve.has_data)
|
||||
{
|
||||
optional_point_t mid = last_offcurve.lerp (first_offcurve, .5f);
|
||||
draw_helper->quadratic_to (font->em_fscalef_x (last_offcurve.x), font->em_fscalef_y (last_offcurve.y),
|
||||
draw_session->quadratic_to (font->em_fscalef_x (last_offcurve.x), font->em_fscalef_y (last_offcurve.y),
|
||||
font->em_fscalef_x (mid.x), font->em_fscalef_y (mid.y));
|
||||
last_offcurve = optional_point_t ();
|
||||
/* now check the rest */
|
||||
}
|
||||
|
||||
if (first_offcurve.has_data && first_oncurve.has_data)
|
||||
draw_helper->quadratic_to (font->em_fscalef_x (first_offcurve.x), font->em_fscalef_y (first_offcurve.y),
|
||||
draw_session->quadratic_to (font->em_fscalef_x (first_offcurve.x), font->em_fscalef_y (first_offcurve.y),
|
||||
font->em_fscalef_x (first_oncurve.x), font->em_fscalef_y (first_oncurve.y));
|
||||
else if (last_offcurve.has_data && first_oncurve.has_data)
|
||||
draw_helper->quadratic_to (font->em_fscalef_x (last_offcurve.x), font->em_fscalef_y (last_offcurve.y),
|
||||
draw_session->quadratic_to (font->em_fscalef_x (last_offcurve.x), font->em_fscalef_y (last_offcurve.y),
|
||||
font->em_fscalef_x (first_oncurve.x), font->em_fscalef_y (first_oncurve.y));
|
||||
else if (first_oncurve.has_data)
|
||||
draw_helper->line_to (font->em_fscalef_x (first_oncurve.x), font->em_fscalef_y (first_oncurve.y));
|
||||
draw_session->line_to (font->em_fscalef_x (first_oncurve.x), font->em_fscalef_y (first_oncurve.y));
|
||||
|
||||
/* Getting ready for the next contour */
|
||||
first_oncurve = first_offcurve = last_offcurve = optional_point_t ();
|
||||
draw_helper->close_path ();
|
||||
draw_session->close_path ();
|
||||
}
|
||||
}
|
||||
void points_end () {}
|
||||
|
@ -1268,8 +1268,8 @@ struct glyf
|
|||
};
|
||||
|
||||
bool
|
||||
get_path (hb_font_t *font, hb_codepoint_t gid, draw_helper_t &draw_helper) const
|
||||
{ return get_points (font, gid, path_builder_t (font, draw_helper)); }
|
||||
get_path (hb_font_t *font, hb_codepoint_t gid, draw_session_t &draw_session) const
|
||||
{ return get_points (font, gid, path_builder_t (font, draw_session)); }
|
||||
|
||||
#ifndef HB_NO_VAR
|
||||
const gvar_accelerator_t *gvar;
|
||||
|
|
Loading…
Reference in New Issue