[autofit] Use `global' HarfBuzz font object.
We now use `hb_font' instead of `hb_face' since yet-to-come changes need this. * src/autofit/afglobal.h: Include `hbshim.h'. (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member `hb_font'. * src/autofit/afglobal.c (af_face_globals_new) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'. (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy `hb_font'. * src/autofit/hbshim.h: Include HarfBuzz headers. * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz headers. (af_get_coverage): Updated.
This commit is contained in:
parent
d32a7d32e4
commit
6af01a04b1
22
ChangeLog
22
ChangeLog
|
@ -1,3 +1,25 @@
|
|||
2013-12-28 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
[autofit] Use `global' HarfBuzz font object.
|
||||
|
||||
We now use `hb_font' instead of `hb_face' since yet-to-come changes
|
||||
need this.
|
||||
|
||||
* src/autofit/afglobal.h: Include `hbshim.h'.
|
||||
(AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
|
||||
`hb_font'.
|
||||
|
||||
* src/autofit/afglobal.c (af_face_globals_new)
|
||||
[FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
|
||||
(af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
|
||||
`hb_font'.
|
||||
|
||||
* src/autofit/hbshim.h: Include HarfBuzz headers.
|
||||
|
||||
* src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
|
||||
headers.
|
||||
(af_get_coverage): Updated.
|
||||
|
||||
2013-12-27 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
[autofit] Handle `DFLT' OpenType script for coverages.
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "afranges.h"
|
||||
#include "hbshim.h"
|
||||
|
||||
|
||||
/* get writing system specific header files */
|
||||
#undef WRITING_SYSTEM
|
||||
#define WRITING_SYSTEM( ws, WS ) /* empty */
|
||||
|
@ -254,6 +255,10 @@
|
|||
globals->glyph_styles = (FT_Byte*)( globals + 1 );
|
||||
globals->module = module;
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_HARFBUZZ
|
||||
globals->hb_font = hb_ft_font_create( face, NULL );
|
||||
#endif
|
||||
|
||||
error = af_face_globals_compute_style_coverage( globals );
|
||||
if ( error )
|
||||
{
|
||||
|
@ -295,6 +300,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_HARFBUZZ
|
||||
hb_font_destroy( globals->hb_font );
|
||||
globals->hb_font = NULL;
|
||||
#endif
|
||||
|
||||
globals->glyph_count = 0;
|
||||
globals->glyph_styles = NULL; /* no need to free this one! */
|
||||
globals->face = NULL;
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "aftypes.h"
|
||||
#include "afmodule.h"
|
||||
#include "hbshim.h"
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
@ -101,6 +102,10 @@ FT_BEGIN_HEADER
|
|||
FT_Long glyph_count; /* same as face->num_glyphs */
|
||||
FT_Byte* glyph_styles;
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_HARFBUZZ
|
||||
hb_font_t* hb_font;
|
||||
#endif
|
||||
|
||||
/* per-face auto-hinter properties */
|
||||
FT_UInt increase_x_height;
|
||||
|
||||
|
|
|
@ -18,14 +18,10 @@
|
|||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
|
||||
#include "hbshim.h"
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_HARFBUZZ
|
||||
|
||||
#include <hb.h>
|
||||
#include <hb-ot.h>
|
||||
#include <hb-ft.h>
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
|
@ -160,7 +156,7 @@
|
|||
if ( !globals || !style_class || !gstyles )
|
||||
return FT_THROW( Invalid_Argument );
|
||||
|
||||
face = hb_ft_face_create( globals->face, NULL );
|
||||
face = hb_font_get_face( globals->hb_font );
|
||||
|
||||
lookups = hb_set_create();
|
||||
glyphs = hb_set_create();
|
||||
|
@ -267,8 +263,6 @@
|
|||
hb_set_destroy( lookups );
|
||||
hb_set_destroy( glyphs );
|
||||
|
||||
hb_face_destroy( face );
|
||||
|
||||
return FT_Err_Ok;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,10 @@
|
|||
|
||||
#ifdef FT_CONFIG_OPTION_USE_HARFBUZZ
|
||||
|
||||
#include <hb.h>
|
||||
#include <hb-ot.h>
|
||||
#include <hb-ft.h>
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
|
Loading…
Reference in New Issue