Fix scale issues
[profile/ivi/org.tizen.video-player.git] / src / hb-font.h
index 5bce0d4..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
@@ -92,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;
@@ -101,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);
@@ -131,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
  */
@@ -150,26 +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"