mirror of
https://gitlab.freedesktop.org/freetype/freetype.git
synced 2026-05-07 06:28:02 +02:00
[hvf] Correctly initialize driver if no HVF library is available.
Since this font driver is by default enabled in `modules.cfg` and its availability controlled by `FT_CONFIG_OPTION_HVF`, we need to provide some stubs so that HVF fonts can be correctly rejected if there is no HVF library available. Fixes issue #1409. * src/hvf/hvfdrv.c (hvf_driver_class): Provide `hvf_face_init` and `hvf_slot_load_glyph` unconditionally. * src/hvf/hvfload.c, src/hvf/hvfload.h (hvf_slot_load_glyph) [!FT_CONFIG_OPTION_HVF]: Define stub. * src/hvf/hvfobjs.c, src/hvf/hvfobjs.h (hvf_face_init) [!FT_CONFIG_OPTION_HVF]: Define stub.
This commit is contained in:
parent
675a94f5d0
commit
cc1adf8d64
5 changed files with 46 additions and 13 deletions
|
|
@ -700,14 +700,14 @@
|
|||
sizeof ( FT_SizeRec ),
|
||||
sizeof ( FT_GlyphSlotRec ),
|
||||
|
||||
PUT_HVF_MODULE( hvf_face_init ), /* FT_Face_InitFunc init_face */
|
||||
hvf_face_init, /* FT_Face_InitFunc init_face */
|
||||
PUT_HVF_MODULE( hvf_face_done ), /* FT_Face_DoneFunc done_face */
|
||||
NULL, /* FT_Size_InitFunc init_size */
|
||||
NULL, /* FT_Size_DoneFunc done_size */
|
||||
NULL, /* FT_Slot_InitFunc init_slot */
|
||||
NULL, /* FT_Slot_DoneFunc done_slot */
|
||||
|
||||
PUT_HVF_MODULE( hvf_slot_load_glyph ), /* FT_Slot_LoadFunc load_glyph */
|
||||
hvf_slot_load_glyph, /* FT_Slot_LoadFunc load_glyph */
|
||||
|
||||
PUT_HVF_MODULE( hvf_get_kerning ),
|
||||
/* FT_Face_GetKerningFunc get_kerning */
|
||||
|
|
|
|||
|
|
@ -556,7 +556,23 @@
|
|||
return error;
|
||||
}
|
||||
|
||||
#endif /* FT_CONFIG_OPTION_HVF */
|
||||
#else /* !FT_CONFIG_OPTION_HVF */
|
||||
|
||||
FT_LOCAL_DEF( FT_Error )
|
||||
hvf_slot_load_glyph( FT_GlyphSlot glyph,
|
||||
FT_Size size,
|
||||
FT_UInt glyph_index,
|
||||
FT_Int32 load_flags )
|
||||
{
|
||||
FT_UNUSED( glyph );
|
||||
FT_UNUSED( size );
|
||||
FT_UNUSED( glyph_index );
|
||||
FT_UNUSED( load_flags );
|
||||
|
||||
return FT_THROW( Unimplemented_Feature );
|
||||
}
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_HVF */
|
||||
|
||||
|
||||
/* END */
|
||||
|
|
|
|||
|
|
@ -27,13 +27,11 @@
|
|||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_HVF
|
||||
FT_LOCAL( FT_Error )
|
||||
hvf_slot_load_glyph( FT_GlyphSlot glyph,
|
||||
FT_Size size,
|
||||
FT_UInt glyph_index,
|
||||
FT_Int32 load_flags );
|
||||
#endif /* FT_CONFIG_OPTION_HVF */
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
|
|
|||
|
|
@ -486,7 +486,25 @@
|
|||
sfnt->done_face( tt_face );
|
||||
}
|
||||
|
||||
#endif /* FT_CONFIG_OPTION_HVF */
|
||||
#else /* !FT_CONFIG_OPTION_HVF */
|
||||
|
||||
FT_LOCAL_DEF( FT_Error )
|
||||
hvf_face_init( FT_Stream stream,
|
||||
FT_Face face,
|
||||
FT_Int typeface_index,
|
||||
FT_Int num_params,
|
||||
FT_Parameter* parameters )
|
||||
{
|
||||
FT_UNUSED( stream );
|
||||
FT_UNUSED( face );
|
||||
FT_UNUSED( typeface_index );
|
||||
FT_UNUSED( num_params );
|
||||
FT_UNUSED( parameters );
|
||||
|
||||
return FT_THROW( Unknown_File_Format );
|
||||
}
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_HVF */
|
||||
|
||||
|
||||
/* END */
|
||||
|
|
|
|||
|
|
@ -126,13 +126,6 @@ FT_BEGIN_HEADER
|
|||
|
||||
|
||||
/* Function declarations. */
|
||||
FT_LOCAL( FT_Error )
|
||||
hvf_face_init( FT_Stream stream,
|
||||
FT_Face face,
|
||||
FT_Int typeface_index,
|
||||
FT_Int num_params,
|
||||
FT_Parameter* parameters );
|
||||
|
||||
FT_LOCAL( void )
|
||||
hvf_face_done( FT_Face face );
|
||||
|
||||
|
|
@ -147,6 +140,14 @@ FT_BEGIN_HEADER
|
|||
#endif /* FT_CONFIG_OPTION_HVF */
|
||||
|
||||
|
||||
FT_LOCAL( FT_Error )
|
||||
hvf_face_init( FT_Stream stream,
|
||||
FT_Face face,
|
||||
FT_Int typeface_index,
|
||||
FT_Int num_params,
|
||||
FT_Parameter* parameters );
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* HVFOBJS_H_ */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue