Details
[Home]
Issue of the Implementation # V0020
Brief
FT_Bitmap_Convert does not handle pixel modes FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V
Detailed Description
The description of FT_Bitmap_Convert states the following:
FT_Bitmap_Convert
FT_EXPORT( FT_Error ) FT_Bitmap_Convert(
FT_Library library,
const FT_Bitmap *source,
FT_Bitmap *target,
FT_Int alignment );
This function converts a bitmap object with depth 1bpp, 2bpp, 4bpp, or 8bpp
to a bitmap object with depth 8bpp., making the number of used bytes per
line (a.k.a. the `pitch') a multiple of `alignment'.The return value of this function is described as follows:
return
FreeType error code. 0 means success.
Allowed pixel modes are listed in the following enum:
typedef enum FT_Pixel_Mode_
{
FT_PIXEL_MODE_NONE = 0,
FT_PIXEL_MODE_MONO,
FT_PIXEL_MODE_GRAY,
FT_PIXEL_MODE_GRAY2,
FT_PIXEL_MODE_GRAY4,
FT_PIXEL_MODE_LCD,
FT_PIXEL_MODE_LCD_V,
FT_PIXEL_MODE_MAX /* do not remove */
} FT_Pixel_Mode;
However, when this function is called to convert a bitmap with pixel mode of the type FT_PIXEL_MODE_LCD or FT_PIXEL_MODE_LCD_V, the error code 6 (FT_Err_Invalid_Argument) is returned.
It looks like FT_Bitmap_Convert() does not handle pixel modes FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V.
Problem location(s) in the standard
Linux Standard Base Desktop Specification 3.2, Chapter 12. Libraries, 12.1 Interfaces for libfreetype that refers FreeType-2.1.10 API Reference, section "Bitmap Handling"
Reproducing
- Unpack the attached archive
- Build the sample C program contained in it
- Run the program as follows:
./bitmap_convert fonts/FreeMono.ttf M FT_RENDER_MODE_LCD 4
./bitmap_convert fonts/FreeMono.ttf M FT_RENDER_MODE_LCD_V 4
Component
freetype 2.1.10 or later
Accepted
freetype-devel mailing list, #2, 2009.01
Status
Fixed in freetype 2.3.8
[Home]