The circular dependency is still there, but at least we no longer depend on the HarfBuzz API that is only present if HarfBuzz has been built with FreeType support, making the bootstrapping a bit easier. * src/autofit/ft-hb.c, src/autofit/ft-hb.h: New files, providing `_hb_ft_font_create`, which is more or less a verbatim copy of the corresponding HarfBuzz code from file `hb-ft.cc`. * src/autofit/afglobal.c (af_face_globals_new): Use it. * src/autofit/afshaper.h: Don't include `hb-ft.h` but `ft-hb.h`. * src/autofit/autofit.c: Include `ft-hb.c`. * LICENSE.TXT: Updated.
72 lines
1.6 KiB
C
72 lines
1.6 KiB
C
/****************************************************************************
|
|
*
|
|
* afshaper.h
|
|
*
|
|
* HarfBuzz interface for accessing OpenType features (specification).
|
|
*
|
|
* Copyright (C) 2013-2022 by
|
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
*
|
|
* This file is part of the FreeType project, and may only be used,
|
|
* modified, and distributed under the terms of the FreeType project
|
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
|
* this file you indicate that you have read the license and
|
|
* understand and accept it fully.
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef AFSHAPER_H_
|
|
#define AFSHAPER_H_
|
|
|
|
|
|
#include <freetype/freetype.h>
|
|
|
|
|
|
#ifdef FT_CONFIG_OPTION_USE_HARFBUZZ
|
|
|
|
#include <hb.h>
|
|
#include <hb-ot.h>
|
|
#include "ft-hb.h"
|
|
|
|
#endif
|
|
|
|
|
|
FT_BEGIN_HEADER
|
|
|
|
FT_Error
|
|
af_shaper_get_coverage( AF_FaceGlobals globals,
|
|
AF_StyleClass style_class,
|
|
FT_UShort* gstyles,
|
|
FT_Bool default_script );
|
|
|
|
|
|
void*
|
|
af_shaper_buf_create( FT_Face face );
|
|
|
|
void
|
|
af_shaper_buf_destroy( FT_Face face,
|
|
void* buf );
|
|
|
|
const char*
|
|
af_shaper_get_cluster( const char* p,
|
|
AF_StyleMetrics metrics,
|
|
void* buf_,
|
|
unsigned int* count );
|
|
|
|
FT_ULong
|
|
af_shaper_get_elem( AF_StyleMetrics metrics,
|
|
void* buf_,
|
|
unsigned int idx,
|
|
FT_Long* x_advance,
|
|
FT_Long* y_offset );
|
|
|
|
/* */
|
|
|
|
FT_END_HEADER
|
|
|
|
#endif /* AFSHAPER_H_ */
|
|
|
|
|
|
/* END */
|