Rename hb_outline_decompose to hb_font_draw_glyph and hb_outline_decompose_funcs_t to hb_draw_funcs_t
diff --git a/src/Makefile.sources b/src/Makefile.sources
index a464f28..81b5cde 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -35,13 +35,13 @@
hb-config.hh \
hb-debug.hh \
hb-dispatch.hh \
+ hb-draw.cc \
+ hb-draw.hh \
hb-face.cc \
hb-face.hh \
hb-fallback-shape.cc \
hb-font.cc \
hb-font.hh \
- hb-outline.cc \
- hb-outline.hh \
hb-iter.hh \
hb-kern.hh \
hb-machinery.hh \
@@ -195,9 +195,9 @@
hb-buffer.h \
hb-common.h \
hb-deprecated.h \
+ hb-draw.h \
hb-face.h \
hb-font.h \
- hb-outline.h \
hb-map.h \
hb-ot-color.h \
hb-ot-deprecated.h \
diff --git a/src/harfbuzz.cc b/src/harfbuzz.cc
index 9da30df..6a07a9e 100644
--- a/src/harfbuzz.cc
+++ b/src/harfbuzz.cc
@@ -4,10 +4,10 @@
#include "hb-buffer-serialize.cc"
#include "hb-buffer.cc"
#include "hb-common.cc"
+#include "hb-draw.cc"
#include "hb-face.cc"
#include "hb-fallback-shape.cc"
#include "hb-font.cc"
-#include "hb-outline.cc"
#include "hb-map.cc"
#include "hb-number.cc"
#include "hb-ot-cff1-table.cc"
diff --git a/src/hb-config.hh b/src/hb-config.hh
index 41bd6c6..07659fa 100644
--- a/src/hb-config.hh
+++ b/src/hb-config.hh
@@ -58,6 +58,7 @@
#define HB_NO_BITMAP
#define HB_NO_CFF
#define HB_NO_COLOR
+#define HB_NO_DRAW
#define HB_NO_ERRNO
#define HB_NO_FACE_COLLECT_UNICODES
#define HB_NO_GETENV
@@ -72,7 +73,6 @@
#define HB_NO_MMAP
#define HB_NO_NAME
#define HB_NO_OPEN
-#define HB_NO_OUTLINE
#define HB_NO_SETLOCALE
#define HB_NO_OT_FONT_GLYPH_NAMES
#define HB_NO_OT_SHAPE_FRACTIONS
diff --git a/src/hb-outline.cc b/src/hb-draw.cc
similarity index 61%
rename from src/hb-outline.cc
rename to src/hb-draw.cc
index d2d3061..a19d46a 100644
--- a/src/hb-outline.cc
+++ b/src/hb-draw.cc
@@ -24,16 +24,16 @@
#include "hb.hh"
-#ifndef HB_NO_OUTLINE
+#ifndef HB_NO_DRAW
+#include "hb-draw.hh"
#include "hb-ot.h"
#include "hb-ot-glyf-table.hh"
#include "hb-ot-cff1-table.hh"
#include "hb-ot-cff2-table.hh"
-#include "hb-outline.hh"
/**
- * hb_outline_decompose_funcs_set_move_to_func:
+ * hb_draw_funcs_set_move_to_func:
* @funcs: decompose functions object
* @move_to: move-to callback
*
@@ -42,15 +42,15 @@
* Since: REPLACEME
**/
void
-hb_outline_decompose_funcs_set_move_to_func (hb_outline_decompose_funcs_t *funcs,
- hb_outline_decompose_move_to_func_t move_to)
+hb_draw_funcs_set_move_to_func (hb_draw_funcs_t *funcs,
+ hb_draw_move_to_func_t move_to)
{
if (unlikely (hb_object_is_immutable (funcs))) return;
funcs->move_to = move_to;
}
/**
- * hb_outline_decompose_funcs_set_line_to_func:
+ * hb_draw_funcs_set_line_to_func:
* @funcs: decompose functions object
* @line_to: line-to callback
*
@@ -59,32 +59,32 @@
* Since: REPLACEME
**/
void
-hb_outline_decompose_funcs_set_line_to_func (hb_outline_decompose_funcs_t *funcs,
- hb_outline_decompose_line_to_func_t line_to)
+hb_draw_funcs_set_line_to_func (hb_draw_funcs_t *funcs,
+ hb_draw_line_to_func_t line_to)
{
if (unlikely (hb_object_is_immutable (funcs))) return;
funcs->line_to = line_to;
}
/**
- * hb_outline_decompose_funcs_set_conic_to_func:
+ * hb_draw_funcs_set_conic_to_func:
* @funcs: decompose functions object
- * @move_to: conic-to callback
+ * @move_to: quadratic-to callback
*
- * Sets conic-to callback to the decompose functions object.
+ * Sets quadratic-to callback to the decompose functions object.
*
* Since: REPLACEME
**/
void
-hb_outline_decompose_funcs_set_conic_to_func (hb_outline_decompose_funcs_t *funcs,
- hb_outline_decompose_conic_to_func_t conic_to)
+hb_draw_funcs_set_conic_to_func (hb_draw_funcs_t *funcs,
+ hb_draw_conic_to_func_t conic_to)
{
if (unlikely (hb_object_is_immutable (funcs))) return;
funcs->conic_to = conic_to;
}
/**
- * hb_outline_decompose_funcs_set_cubic_to_func:
+ * hb_draw_funcs_set_cubic_to_func:
* @funcs: decompose functions
* @cubic_to: cubic-to callback
*
@@ -93,15 +93,15 @@
* Since: REPLACEME
**/
void
-hb_outline_decompose_funcs_set_cubic_to_func (hb_outline_decompose_funcs_t *funcs,
- hb_outline_decompose_cubic_to_func_t cubic_to)
+hb_draw_funcs_set_cubic_to_func (hb_draw_funcs_t *funcs,
+ hb_draw_cubic_to_func_t cubic_to)
{
if (unlikely (hb_object_is_immutable (funcs))) return;
funcs->cubic_to = cubic_to;
}
/**
- * hb_outline_decompose_funcs_set_close_path_func:
+ * hb_draw_funcs_set_close_path_func:
* @funcs: decompose functions object
* @close_path: close-path callback
*
@@ -110,8 +110,8 @@
* Since: REPLACEME
**/
void
-hb_outline_decompose_funcs_set_close_path_func (hb_outline_decompose_funcs_t *funcs,
- hb_outline_decompose_close_path_func_t close_path)
+hb_draw_funcs_set_close_path_func (hb_draw_funcs_t *funcs,
+ hb_draw_close_path_func_t close_path)
{
if (unlikely (hb_object_is_immutable (funcs))) return;
funcs->close_path = close_path;
@@ -125,41 +125,42 @@
static void
_conic_to_nil (hb_position_t control_x HB_UNUSED, hb_position_t control_y HB_UNUSED,
- hb_position_t to_x HB_UNUSED, hb_position_t to_y HB_UNUSED,
- void *user_data HB_UNUSED) {}
+ hb_position_t to_x HB_UNUSED, hb_position_t to_y HB_UNUSED,
+ void *user_data HB_UNUSED) {}
+
static void
_cubic_to_nil (hb_position_t control1_x HB_UNUSED, hb_position_t control1_y HB_UNUSED,
- hb_position_t control2_x HB_UNUSED, hb_position_t control2_y HB_UNUSED,
- hb_position_t to_x HB_UNUSED, hb_position_t to_y HB_UNUSED,
- void *user_data HB_UNUSED) {}
+ hb_position_t control2_x HB_UNUSED, hb_position_t control2_y HB_UNUSED,
+ hb_position_t to_x HB_UNUSED, hb_position_t to_y HB_UNUSED,
+ void *user_data HB_UNUSED) {}
static void
_close_path_nil (void *user_data HB_UNUSED) {}
/**
- * hb_outline_decompose_funcs_create:
+ * hb_draw_funcs_create:
*
* Creates a new decompose callbacks object.
*
* Since: REPLACEME
**/
-hb_outline_decompose_funcs_t *
-hb_outline_decompose_funcs_create ()
+hb_draw_funcs_t *
+hb_draw_funcs_create ()
{
- hb_outline_decompose_funcs_t *funcs;
- if (unlikely (!(funcs = hb_object_create<hb_outline_decompose_funcs_t> ())))
- return const_cast<hb_outline_decompose_funcs_t *> (&Null (hb_outline_decompose_funcs_t));
+ hb_draw_funcs_t *funcs;
+ if (unlikely (!(funcs = hb_object_create<hb_draw_funcs_t> ())))
+ return const_cast<hb_draw_funcs_t *> (&Null (hb_draw_funcs_t));
- funcs->move_to = (hb_outline_decompose_move_to_func_t) _move_to_nil;
- funcs->line_to = (hb_outline_decompose_line_to_func_t) _line_to_nil;
- funcs->conic_to = (hb_outline_decompose_conic_to_func_t) _conic_to_nil;
- funcs->cubic_to = (hb_outline_decompose_cubic_to_func_t) _cubic_to_nil;
- funcs->close_path = (hb_outline_decompose_close_path_func_t) _close_path_nil;
+ funcs->move_to = (hb_draw_move_to_func_t) _move_to_nil;
+ funcs->line_to = (hb_draw_line_to_func_t) _line_to_nil;
+ funcs->conic_to = (hb_draw_conic_to_func_t) _conic_to_nil;
+ funcs->cubic_to = (hb_draw_cubic_to_func_t) _cubic_to_nil;
+ funcs->close_path = (hb_draw_close_path_func_t) _close_path_nil;
return funcs;
}
/**
- * hb_outline_decompose_funcs_reference:
+ * hb_draw_funcs_reference:
* @funcs: decompose functions
*
* Add to callbacks object refcount.
@@ -167,14 +168,14 @@
* Returns: The same object.
* Since: REPLACEME
**/
-hb_outline_decompose_funcs_t *
-hb_outline_decompose_funcs_reference (hb_outline_decompose_funcs_t *funcs)
+hb_draw_funcs_t *
+hb_draw_funcs_reference (hb_draw_funcs_t *funcs)
{
return hb_object_reference (funcs);
}
/**
- * hb_outline_decompose_funcs_destroy:
+ * hb_draw_funcs_destroy:
* @funcs: decompose functions
*
* Decreases refcount of callbacks object and deletes the object if it reaches
@@ -183,7 +184,7 @@
* Since: REPLACEME
**/
void
-hb_outline_decompose_funcs_destroy (hb_outline_decompose_funcs_t *funcs)
+hb_draw_funcs_destroy (hb_draw_funcs_t *funcs)
{
if (!hb_object_destroy (funcs)) return;
@@ -191,7 +192,7 @@
}
/**
- * hb_outline_decompose:
+ * hb_draw:
* @font: a font object
* @glyph: a glyph id
* @funcs: decompose callbacks object
@@ -203,11 +204,11 @@
* Since: REPLACEME
**/
hb_bool_t
-hb_outline_decompose (hb_font_t *font, hb_codepoint_t glyph,
- const hb_outline_decompose_funcs_t *funcs,
+hb_font_draw_glyph (hb_font_t *font, hb_codepoint_t glyph,
+ const hb_draw_funcs_t *funcs,
void *user_data)
{
- if (unlikely (funcs == &Null (hb_outline_decompose_funcs_t) ||
+ if (unlikely (funcs == &Null (hb_draw_funcs_t) ||
glyph >= font->face->get_num_glyphs ()))
return false;
diff --git a/src/hb-draw.h b/src/hb-draw.h
new file mode 100644
index 0000000..3f386ce
--- /dev/null
+++ b/src/hb-draw.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright © 2019-2020 Ebrahim Byagowi
+ *
+ * This is part of HarfBuzz, a text shaping library.
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that the
+ * above copyright notice and the following two paragraphs appear in
+ * all copies of this software.
+ *
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ */
+
+#ifndef HB_H_IN
+#error "Include <hb.h> instead."
+#endif
+
+#ifndef HB_DRAW_H
+#define HB_DRAW_H
+
+#include "hb.h"
+
+HB_BEGIN_DECLS
+
+typedef void (*hb_draw_move_to_func_t) (hb_position_t to_x, hb_position_t to_y, void *user_data);
+typedef void (*hb_draw_line_to_func_t) (hb_position_t to_x, hb_position_t to_y, void *user_data);
+typedef void (*hb_draw_conic_to_func_t) (hb_position_t control_x, hb_position_t control_y,
+ hb_position_t to_x, hb_position_t to_y,
+ void *user_data);
+typedef void (*hb_draw_cubic_to_func_t) (hb_position_t control1_x, hb_position_t control1_y,
+ hb_position_t control2_x, hb_position_t control2_y,
+ hb_position_t to_x, hb_position_t to_y,
+ void *user_data);
+typedef void (*hb_draw_close_path_func_t) (void *user_data);
+
+/**
+ * hb_draw_funcs_t:
+ *
+ * Glyph decompose callbacks.
+ *
+ * Since: REPLACEME
+ **/
+typedef struct hb_draw_funcs_t hb_draw_funcs_t;
+
+HB_EXTERN void
+hb_draw_funcs_set_move_to_func (hb_draw_funcs_t *funcs,
+ hb_draw_move_to_func_t move_to);
+
+HB_EXTERN void
+hb_draw_funcs_set_line_to_func (hb_draw_funcs_t *funcs,
+ hb_draw_move_to_func_t line_to);
+
+HB_EXTERN void
+hb_draw_funcs_set_conic_to_func (hb_draw_funcs_t *funcs,
+ hb_draw_conic_to_func_t conic_to);
+
+HB_EXTERN void
+hb_draw_funcs_set_cubic_to_func (hb_draw_funcs_t *funcs,
+ hb_draw_cubic_to_func_t cubic_to);
+
+HB_EXTERN void
+hb_draw_funcs_set_close_path_func (hb_draw_funcs_t *funcs,
+ hb_draw_close_path_func_t close_path);
+
+HB_EXTERN hb_draw_funcs_t *
+hb_draw_funcs_create (void);
+
+HB_EXTERN hb_draw_funcs_t *
+hb_draw_funcs_reference (hb_draw_funcs_t *funcs);
+
+HB_EXTERN void
+hb_draw_funcs_destroy (hb_draw_funcs_t *funcs);
+
+HB_END_DECLS
+
+#endif /* HB_DRAW_H */
diff --git a/src/hb-outline.hh b/src/hb-draw.hh
similarity index 76%
rename from src/hb-outline.hh
rename to src/hb-draw.hh
index a66b2d9..6b4c592 100644
--- a/src/hb-outline.hh
+++ b/src/hb-draw.hh
@@ -22,21 +22,21 @@
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
*/
-#ifndef HB_OUTLINE_HH
-#define HB_OUTLINE_HH
+#ifndef HB_DRAW_HH
+#define HB_DRAW_HH
#include "hb.hh"
-struct hb_outline_decompose_funcs_t
+struct hb_draw_funcs_t
{
hb_object_header_t header;
- hb_outline_decompose_move_to_func_t move_to;
- hb_outline_decompose_line_to_func_t line_to;
- hb_outline_decompose_conic_to_func_t conic_to;
- hb_outline_decompose_cubic_to_func_t cubic_to;
- hb_outline_decompose_close_path_func_t close_path;
+ hb_draw_move_to_func_t move_to;
+ hb_draw_line_to_func_t line_to;
+ hb_draw_conic_to_func_t conic_to;
+ hb_draw_cubic_to_func_t cubic_to;
+ hb_draw_close_path_func_t close_path;
};
-#endif /* HB_OUTLINE_HH */
+#endif /* HB_DRAW_HH */
diff --git a/src/hb-font.h b/src/hb-font.h
index 01ff201..ca4627f 100644
--- a/src/hb-font.h
+++ b/src/hb-font.h
@@ -33,6 +33,7 @@
#include "hb-common.h"
#include "hb-face.h"
+#include "hb-draw.h"
HB_BEGIN_DECLS
@@ -717,6 +718,10 @@
hb_font_set_var_named_instance (hb_font_t *font,
unsigned instance_index);
+HB_EXTERN hb_bool_t
+hb_font_draw_glyph (hb_font_t *font, hb_codepoint_t glyph,
+ const hb_draw_funcs_t *funcs, void *user_data);
+
HB_END_DECLS
#endif /* HB_FONT_H */
diff --git a/src/hb-ot-cff1-table.cc b/src/hb-ot-cff1-table.cc
index 878a022..83bf919 100644
--- a/src/hb-ot-cff1-table.cc
+++ b/src/hb-ot-cff1-table.cc
@@ -28,7 +28,7 @@
#ifndef HB_NO_CFF
-#include "hb-outline.hh"
+#include "hb-draw.hh"
#include "hb-ot-cff1-table.hh"
#include "hb-cff1-interp-cs.hh"
@@ -346,7 +346,7 @@
struct cff1_path_param_t
{
cff1_path_param_t (const OT::cff1::accelerator_t *cff_, hb_font_t *font_,
- const hb_outline_decompose_funcs_t *funcs_, void *user_data_,
+ const hb_draw_funcs_t *funcs_, void *user_data_,
point_t *delta_)
{
path_open = false;
@@ -395,7 +395,7 @@
bool path_open;
hb_font_t *font;
- const hb_outline_decompose_funcs_t *funcs;
+ const hb_draw_funcs_t *funcs;
void *user_data;
point_t *delta;
@@ -427,7 +427,7 @@
};
static bool _get_path (const OT::cff1::accelerator_t *cff, hb_font_t *font, hb_codepoint_t glyph,
- const hb_outline_decompose_funcs_t *funcs, void *user_data,
+ const hb_draw_funcs_t *funcs, void *user_data,
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>
@@ -449,7 +449,7 @@
};
bool _get_path (const OT::cff1::accelerator_t *cff, hb_font_t *font, hb_codepoint_t glyph,
- const hb_outline_decompose_funcs_t *funcs, void *user_data, bool in_seac, point_t *delta)
+ const hb_draw_funcs_t *funcs, void *user_data, bool in_seac, point_t *delta)
{
if (unlikely (!cff->is_valid () || (glyph >= cff->num_glyphs))) return false;
@@ -464,7 +464,7 @@
}
bool OT::cff1::accelerator_t::get_path (hb_font_t *font, hb_codepoint_t glyph,
- const hb_outline_decompose_funcs_t *funcs, void *user_data) const
+ const hb_draw_funcs_t *funcs, void *user_data) const
{
#ifdef HB_NO_OT_FONT_CFF
/* XXX Remove check when this code moves to .hh file. */
diff --git a/src/hb-ot-cff1-table.hh b/src/hb-ot-cff1-table.hh
index 3eb254f..08e507c 100644
--- a/src/hb-ot-cff1-table.hh
+++ b/src/hb-ot-cff1-table.hh
@@ -1348,7 +1348,7 @@
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,
- const hb_outline_decompose_funcs_t *funcs, void *user_data) const;
+ const hb_draw_funcs_t *funcs, void *user_data) const;
private:
struct gname_t
diff --git a/src/hb-ot-cff2-table.cc b/src/hb-ot-cff2-table.cc
index 847e71a..d772f77 100644
--- a/src/hb-ot-cff2-table.cc
+++ b/src/hb-ot-cff2-table.cc
@@ -30,7 +30,7 @@
#include "hb-ot-cff2-table.hh"
#include "hb-cff2-interp-cs.hh"
-#include "hb-outline.hh"
+#include "hb-draw.hh"
using namespace CFF;
@@ -145,7 +145,7 @@
struct cff2_path_param_t
{
- cff2_path_param_t (hb_font_t *font_, const hb_outline_decompose_funcs_t *funcs_, void *user_data_)
+ cff2_path_param_t (hb_font_t *font_, const hb_draw_funcs_t *funcs_, void *user_data_)
{
path_open = false;
font = font_;
@@ -180,7 +180,7 @@
bool path_open;
hb_font_t *font;
- const hb_outline_decompose_funcs_t *funcs;
+ const hb_draw_funcs_t *funcs;
void *user_data;
};
@@ -211,7 +211,7 @@
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,
- const hb_outline_decompose_funcs_t *funcs, void *user_data) const
+ const hb_draw_funcs_t *funcs, void *user_data) const
{
#ifdef HB_NO_OT_FONT_CFF
/* XXX Remove check when this code moves to .hh file. */
diff --git a/src/hb-ot-cff2-table.hh b/src/hb-ot-cff2-table.hh
index f77fc70..51867a5 100644
--- a/src/hb-ot-cff2-table.hh
+++ b/src/hb-ot-cff2-table.hh
@@ -534,7 +534,7 @@
hb_codepoint_t glyph,
hb_glyph_extents_t *extents) const;
HB_INTERNAL bool get_path (hb_font_t *font, hb_codepoint_t glyph,
- const hb_outline_decompose_funcs_t *funcs, void *user_data) const;
+ const hb_draw_funcs_t *funcs, void *user_data) const;
};
typedef accelerator_templ_t<cff2_private_dict_opset_subset_t, cff2_private_dict_values_subset_t> accelerator_subset_t;
diff --git a/src/hb-ot-glyf-table.hh b/src/hb-ot-glyf-table.hh
index 7567c98..99f54ab 100644
--- a/src/hb-ot-glyf-table.hh
+++ b/src/hb-ot-glyf-table.hh
@@ -34,7 +34,7 @@
#include "hb-ot-head-table.hh"
#include "hb-ot-hmtx-table.hh"
#include "hb-ot-var-gvar-table.hh"
-#include "hb-outline.hh"
+#include "hb-draw.hh"
#include <float.h>
@@ -1045,7 +1045,7 @@
bool
get_path (hb_font_t *font, hb_codepoint_t gid,
- const hb_outline_decompose_funcs_t *funcs, void *user_data) const
+ const hb_draw_funcs_t *funcs, void *user_data) const
{
/* Making this completely alloc free is not that easy
https://github.com/harfbuzz/harfbuzz/issues/2095
diff --git a/src/hb-outline.h b/src/hb-outline.h
deleted file mode 100644
index ab123ca..0000000
--- a/src/hb-outline.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright © 2019-2020 Ebrahim Byagowi
- *
- * This is part of HarfBuzz, a text shaping library.
- *
- * Permission is hereby granted, without written agreement and without
- * license or royalty fees, to use, copy, modify, and distribute this
- * software and its documentation for any purpose, provided that the
- * above copyright notice and the following two paragraphs appear in
- * all copies of this software.
- *
- * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
- * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
- * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- */
-
-#ifndef HB_H_IN
-#error "Include <hb.h> instead."
-#endif
-
-#ifndef HB_OUTLINE_H
-#define HB_OUTLINE_H
-
-#include "hb.h"
-
-HB_BEGIN_DECLS
-
-typedef void (*hb_outline_decompose_move_to_func_t) (hb_position_t to_x, hb_position_t to_y, void *user_data);
-typedef void (*hb_outline_decompose_line_to_func_t) (hb_position_t to_x, hb_position_t to_y, void *user_data);
-typedef void (*hb_outline_decompose_conic_to_func_t) (hb_position_t control_x, hb_position_t control_y,
- hb_position_t to_x, hb_position_t to_y,
- void *user_data);
-typedef void (*hb_outline_decompose_cubic_to_func_t) (hb_position_t control1_x, hb_position_t control1_y,
- hb_position_t control2_x, hb_position_t control2_y,
- hb_position_t to_x, hb_position_t to_y,
- void *user_data);
-typedef void (*hb_outline_decompose_close_path_func_t) (void *user_data);
-
-/**
- * hb_outline_decompose_funcs_t:
- *
- * Glyph decompose callbacks.
- *
- * Since: REPLACEME
- **/
-typedef struct hb_outline_decompose_funcs_t hb_outline_decompose_funcs_t;
-
-HB_EXTERN void
-hb_outline_decompose_funcs_set_move_to_func (hb_outline_decompose_funcs_t *funcs,
- hb_outline_decompose_move_to_func_t move_to);
-
-HB_EXTERN void
-hb_outline_decompose_funcs_set_line_to_func (hb_outline_decompose_funcs_t *funcs,
- hb_outline_decompose_move_to_func_t line_to);
-
-HB_EXTERN void
-hb_outline_decompose_funcs_set_conic_to_func (hb_outline_decompose_funcs_t *funcs,
- hb_outline_decompose_conic_to_func_t conic_to);
-
-HB_EXTERN void
-hb_outline_decompose_funcs_set_cubic_to_func (hb_outline_decompose_funcs_t *funcs,
- hb_outline_decompose_cubic_to_func_t cubic_to);
-
-HB_EXTERN void
-hb_outline_decompose_funcs_set_close_path_func (hb_outline_decompose_funcs_t *funcs,
- hb_outline_decompose_close_path_func_t close_path);
-
-HB_EXTERN hb_outline_decompose_funcs_t *
-hb_outline_decompose_funcs_create (void);
-
-HB_EXTERN hb_outline_decompose_funcs_t *
-hb_outline_decompose_funcs_reference (hb_outline_decompose_funcs_t *funcs);
-
-HB_EXTERN void
-hb_outline_decompose_funcs_destroy (hb_outline_decompose_funcs_t *funcs);
-
-HB_EXTERN hb_bool_t
-hb_outline_decompose (hb_font_t *font, hb_codepoint_t glyph,
- const hb_outline_decompose_funcs_t *funcs,
- void *user_data);
-
-HB_END_DECLS
-
-#endif /* HB_OUTLINE_H */
diff --git a/src/hb.h b/src/hb.h
index 0d1eed0..b0cc06c 100644
--- a/src/hb.h
+++ b/src/hb.h
@@ -32,9 +32,9 @@
#include "hb-buffer.h"
#include "hb-common.h"
#include "hb-deprecated.h"
+#include "hb-draw.h"
#include "hb-face.h"
#include "hb-font.h"
-#include "hb-outline.h"
#include "hb-map.h"
#include "hb-set.h"
#include "hb-shape.h"
diff --git a/src/main.cc b/src/main.cc
index 31ca250..1310a7c 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -37,7 +37,7 @@
#define hb_blob_create_from_file(x) hb_blob_get_empty ()
#endif
-#if !defined(HB_NO_COLOR) && !defined(HB_NO_OUTLINE)
+#if !defined(HB_NO_COLOR) && !defined(HB_NO_DRAW)
static void
svg_dump (hb_face_t *face, unsigned face_index)
{
@@ -169,7 +169,7 @@
}
static void
-layered_glyph_dump (hb_font_t *font, hb_outline_decompose_funcs_t *funcs, unsigned face_index)
+layered_glyph_dump (hb_font_t *font, hb_draw_funcs_t *funcs, unsigned face_index)
{
hb_face_t *face = hb_font_get_face (font);
unsigned num_glyphs = hb_face_get_glyph_count (face);
@@ -224,7 +224,7 @@
if (hb_color_get_alpha (color) != 255)
fprintf (f, "fill-opacity=\"%.3f\"", (double) hb_color_get_alpha (color) / 255.);
fprintf (f, "d=\"");
- if (!hb_outline_decompose (font, layers[layer].glyph, funcs, &user_data))
+ if (!hb_font_draw_glyph (font, layers[layer].glyph, funcs, &user_data))
printf ("Failed to decompose layer %d while %d\n", layers[layer].glyph, gid);
fprintf (f, "\"/>\n");
}
@@ -242,7 +242,7 @@
}
static void
-dump_glyphs (hb_font_t *font, hb_outline_decompose_funcs_t *funcs, unsigned face_index)
+dump_glyphs (hb_font_t *font, hb_draw_funcs_t *funcs, unsigned face_index)
{
unsigned num_glyphs = hb_face_get_glyph_count (hb_font_get_face (font));
for (unsigned gid = 0; gid < num_glyphs; ++gid)
@@ -266,7 +266,7 @@
user_data_t user_data;
user_data.ascender = font_extents.ascender;
user_data.f = f;
- if (!hb_outline_decompose (font, gid, funcs, &user_data))
+ if (!hb_font_draw_glyph (font, gid, funcs, &user_data))
printf ("Failed to decompose gid: %d\n", gid);
fprintf (f, "\"/></svg>");
fclose (f);
@@ -293,12 +293,12 @@
fwrite (font_name, 1, strlen (font_name), font_name_file);
fclose (font_name_file);
- hb_outline_decompose_funcs_t *funcs = hb_outline_decompose_funcs_create ();
- hb_outline_decompose_funcs_set_move_to_func (funcs, (hb_outline_decompose_move_to_func_t) move_to);
- hb_outline_decompose_funcs_set_line_to_func (funcs, (hb_outline_decompose_line_to_func_t) line_to);
- hb_outline_decompose_funcs_set_conic_to_func (funcs, (hb_outline_decompose_conic_to_func_t) conic_to);
- hb_outline_decompose_funcs_set_cubic_to_func (funcs, (hb_outline_decompose_cubic_to_func_t) cubic_to);
- hb_outline_decompose_funcs_set_close_path_func (funcs, (hb_outline_decompose_close_path_func_t) close_path);
+ hb_draw_funcs_t *funcs = hb_draw_funcs_create ();
+ hb_draw_funcs_set_move_to_func (funcs, (hb_draw_move_to_func_t) move_to);
+ hb_draw_funcs_set_line_to_func (funcs, (hb_draw_line_to_func_t) line_to);
+ hb_draw_funcs_set_conic_to_func (funcs, (hb_draw_conic_to_func_t) conic_to);
+ hb_draw_funcs_set_cubic_to_func (funcs, (hb_draw_cubic_to_func_t) cubic_to);
+ hb_draw_funcs_set_close_path_func (funcs, (hb_draw_close_path_func_t) close_path);
unsigned num_faces = hb_face_count (blob);
for (unsigned face_index = 0; face_index < num_faces; ++face_index)
@@ -324,7 +324,7 @@
hb_face_destroy (face);
}
- hb_outline_decompose_funcs_destroy (funcs);
+ hb_draw_funcs_destroy (funcs);
}
#endif
@@ -501,7 +501,7 @@
hb_blob_t *blob = hb_blob_create_from_file (argv[1]);
printf ("Opened font file %s: %d bytes long\n", argv[1], hb_blob_get_length (blob));
print_layout_info_using_private_api (blob);
-#if !defined(HB_NO_COLOR) && !defined(HB_NO_OUTLINE)
+#if !defined(HB_NO_COLOR) && !defined(HB_NO_DRAW)
dump_glyphs (blob, argv[1]);
#endif
hb_blob_destroy (blob);