[base] Make necessary changes to allow renderers of different formats.
* src/base/ftobjs.c (FT_Render_Glyph_Internal): Do not return if the glyph's slot format is `FT_GLYPH_FORMAT_BITMAP'. The `bsdf' renderer will require bitmaps for processing. * src/base/ftobjs.c (ft_add_renderer, ft_remove_renderer): Remove renderer's glyph format check before adding and removing them. The `bsdf' renderer will have a format of `FT_GLYPH_FORMAT_BITMAP'. So, if we do not remove this check it will not get initialized and will not work.
This commit is contained in:
parent
f9f6adb625
commit
6ed3c34a0e
|
@ -4393,8 +4393,7 @@
|
||||||
render->glyph_format = clazz->glyph_format;
|
render->glyph_format = clazz->glyph_format;
|
||||||
|
|
||||||
/* allocate raster object if needed */
|
/* allocate raster object if needed */
|
||||||
if ( clazz->glyph_format == FT_GLYPH_FORMAT_OUTLINE &&
|
if ( clazz->raster_class->raster_new )
|
||||||
clazz->raster_class->raster_new )
|
|
||||||
{
|
{
|
||||||
error = clazz->raster_class->raster_new( memory, &render->raster );
|
error = clazz->raster_class->raster_new( memory, &render->raster );
|
||||||
if ( error )
|
if ( error )
|
||||||
|
@ -4441,8 +4440,7 @@
|
||||||
|
|
||||||
|
|
||||||
/* release raster object, if any */
|
/* release raster object, if any */
|
||||||
if ( render->clazz->glyph_format == FT_GLYPH_FORMAT_OUTLINE &&
|
if ( render->raster )
|
||||||
render->raster )
|
|
||||||
render->clazz->raster_class->raster_done( render->raster );
|
render->clazz->raster_class->raster_done( render->raster );
|
||||||
|
|
||||||
/* remove from list */
|
/* remove from list */
|
||||||
|
@ -4537,9 +4535,6 @@
|
||||||
|
|
||||||
switch ( slot->format )
|
switch ( slot->format )
|
||||||
{
|
{
|
||||||
case FT_GLYPH_FORMAT_BITMAP: /* already a bitmap, don't do anything */
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if ( slot->internal->load_flags & FT_LOAD_COLOR )
|
if ( slot->internal->load_flags & FT_LOAD_COLOR )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue