Fix scale issues
[profile/ivi/org.tizen.video-player.git] / src / hb-font.h
index e020bd8..433d31a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2009  Red Hat, Inc.
  *
- *  This is part of HarfBuzz, an OpenType Layout engine library.
+ *  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
@@ -29,7 +29,6 @@
 
 #include "hb-common.h"
 #include "hb-blob.h"
-#include "hb-unicode.h"
 
 HB_BEGIN_DECLS
 
@@ -61,10 +60,6 @@ hb_face_get_reference_count (hb_face_t *face);
 void
 hb_face_destroy (hb_face_t *face);
 
-void
-hb_face_set_unicode_funcs (hb_face_t *face,
-                          hb_unicode_funcs_t *unicode_funcs);
-
 hb_blob_t *
 hb_face_get_table (hb_face_t *face,
                   hb_tag_t   tag);
@@ -97,8 +92,7 @@ hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs);
 
 /* funcs */
 
-typedef struct _hb_glyph_metrics_t hb_glyph_metrics_t;
-struct _hb_glyph_metrics_t
+typedef struct _hb_glyph_metrics_t
 {
     hb_position_t x_advance;
     hb_position_t y_advance;
@@ -106,10 +100,10 @@ struct _hb_glyph_metrics_t
     hb_position_t y_offset;
     hb_position_t width;
     hb_position_t height;
-};
+} hb_glyph_metrics_t;
 
 typedef hb_codepoint_t (*hb_font_get_glyph_func_t) (hb_font_t *font, hb_face_t *face, const void *user_data,
-                                                   hb_codepoint_t unicode, hb_codepoint_t variant_selector);
+                                                   hb_codepoint_t unicode, hb_codepoint_t variation_selector);
 typedef hb_bool_t (*hb_font_get_contour_point_func_t) (hb_font_t *font, hb_face_t *face, const void *user_data,
                                                       unsigned int point_index,
                                                       hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y);
@@ -136,6 +130,24 @@ hb_font_funcs_set_kerning_func (hb_font_funcs_t *ffuncs,
                                hb_font_get_kerning_func_t kerning_func);
 
 
+hb_codepoint_t
+hb_font_get_glyph (hb_font_t *font, hb_face_t *face,
+                  hb_codepoint_t unicode, hb_codepoint_t variation_selector);
+
+hb_bool_t
+hb_font_get_contour_point (hb_font_t *font, hb_face_t *face,
+                          unsigned int point_index,
+                          hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y);
+
+void
+hb_font_get_glyph_metrics (hb_font_t *font, hb_face_t *face,
+                          hb_codepoint_t glyph, hb_glyph_metrics_t *metrics);
+
+hb_position_t
+hb_font_get_kerning (hb_font_t *font, hb_face_t *face,
+                    hb_codepoint_t first_glyph, hb_codepoint_t second_glyph);
+
+
 /*
  * hb_font_t
  */
@@ -155,22 +167,22 @@ void
 hb_font_destroy (hb_font_t *font);
 
 void
-hb_font_set_funcs (hb_font_t       *font,
-                  hb_font_funcs_t *klass);
+hb_font_set_funcs (hb_font_t         *font,
+                  hb_font_funcs_t   *klass,
+                  hb_destroy_func_t  destroy,
+                  void              *user_data);
+
+hb_font_funcs_t *
+hb_font_get_funcs (hb_font_t       *font);
+
 
 /*
- * XXX
- * should we decompose this to units_per_EM and font-size?
- * units_per_EM setting then can go into the face, or better,
- * read from the 'head' table.
- *
- * Then we either need size+shape like freetype does, or a full
- * matrix.
+ * We should add support for full matrices.
  */
 void
 hb_font_set_scale (hb_font_t *font,
-                  hb_16dot16_t x_scale,
-                  hb_16dot16_t y_scale);
+                  unsigned int x_scale,
+                  unsigned int y_scale);
 
 /*
  * A zero value means "no hinting in that direction"