FT_Bitmap *target,
FT_Int alignment );
+#ifdef __REACTOS__
+ /*************************************************************************/
+ /* */
+ /* <Function> */
+ /* FT_Bitmap_Convert_ReactOS_Hack */
+ /* */
+ /* <Description> */
+ /* Mainly same as @FT_Bitmap_Convert, but the bitmap will be */
+ /* ReactOS compatible when hack parameter is true. */
+ /* */
+ /* <Input> */
+ /* library :: A handle to a library object. */
+ /* */
+ /* source :: The source bitmap. */
+ /* */
+ /* alignment :: The pitch of the bitmap is a multiple of this */
+ /* parameter. Common values are 1, 2, or 4. */
+ /* */
+ /* hack :: If TRUE, the bitmap will be ReactOS compatible. */
+ /* If FALSE, the bitmap will be same as */
+ /* FT_Bitmap_Convert returns. */
+ /* */
+ /* <Output> */
+ /* target :: The target bitmap. */
+ /* */
+ /* <Return> */
+ /* FreeType error code. 0~means success. */
+ /* */
+ FT_EXPORT( FT_Error )
+ FT_Bitmap_Convert_ReactOS_Hack( FT_Library library,
+ const FT_Bitmap *source,
+ FT_Bitmap *target,
+ FT_Int alignment,
+ FT_Bool hack);
+#endif
/*************************************************************************/
/* */
/* documentation is in ftbitmap.h */
+#ifdef __REACTOS__
+ FT_EXPORT_DEF( FT_Error )
+ FT_Bitmap_Convert_ReactOS_Hack( FT_Library library,
+ const FT_Bitmap *source,
+ FT_Bitmap *target,
+ FT_Int alignment,
+ FT_Bool hack )
+#else
FT_EXPORT_DEF( FT_Error )
FT_Bitmap_Convert( FT_Library library,
const FT_Bitmap *source,
FT_Bitmap *target,
FT_Int alignment )
+#endif
{
FT_Error error = FT_Err_Ok;
FT_Memory memory;
FT_Int val = ss[0]; /* avoid a byte->int cast on each line */
#ifdef __REACTOS__
- tt[0] = (FT_Byte)( ( val & 0x80 ) ? 0xff : 0);
- tt[1] = (FT_Byte)( ( val & 0x40 ) ? 0xff : 0);
- tt[2] = (FT_Byte)( ( val & 0x20 ) ? 0xff : 0);
- tt[3] = (FT_Byte)( ( val & 0x10 ) ? 0xff : 0);
- tt[4] = (FT_Byte)( ( val & 0x08 ) ? 0xff : 0);
- tt[5] = (FT_Byte)( ( val & 0x04 ) ? 0xff : 0);
- tt[6] = (FT_Byte)( ( val & 0x02 ) ? 0xff : 0);
- tt[7] = (FT_Byte)( ( val & 0x01 ) ? 0xff : 0);
-#else
+ if (hack)
+ {
+ tt[0] = (FT_Byte)( ( val & 0x80 ) ? 0xff : 0);
+ tt[1] = (FT_Byte)( ( val & 0x40 ) ? 0xff : 0);
+ tt[2] = (FT_Byte)( ( val & 0x20 ) ? 0xff : 0);
+ tt[3] = (FT_Byte)( ( val & 0x10 ) ? 0xff : 0);
+ tt[4] = (FT_Byte)( ( val & 0x08 ) ? 0xff : 0);
+ tt[5] = (FT_Byte)( ( val & 0x04 ) ? 0xff : 0);
+ tt[6] = (FT_Byte)( ( val & 0x02 ) ? 0xff : 0);
+ tt[7] = (FT_Byte)( ( val & 0x01 ) ? 0xff : 0);
+ }
+ else
+ {
+#endif
tt[0] = (FT_Byte)( ( val & 0x80 ) >> 7 );
tt[1] = (FT_Byte)( ( val & 0x40 ) >> 6 );
tt[2] = (FT_Byte)( ( val & 0x20 ) >> 5 );
tt[5] = (FT_Byte)( ( val & 0x04 ) >> 2 );
tt[6] = (FT_Byte)( ( val & 0x02 ) >> 1 );
tt[7] = (FT_Byte)( val & 0x01 );
+#ifdef __REACTOS__
+ }
#endif
tt += 8;
for ( ; j > 0; j-- )
{
#ifdef __REACTOS__
- tt[0] = (FT_Byte)( ( val & 0x80 ) ? 0xff : 0);
-#else
- tt[0] = (FT_Byte)( ( val & 0x80 ) >> 7);
+ if (hack)
+ tt[0] = (FT_Byte)( ( val & 0x80 ) ? 0xff : 0);
+ else
#endif
+ tt[0] = (FT_Byte)( ( val & 0x80 ) >> 7);
val <<= 1;
tt += 1;
}
return error;
}
+#ifdef __REACTOS__
+ /* documentation is in ftbitmap.h */
+
+ FT_EXPORT_DEF( FT_Error )
+ FT_Bitmap_Convert( FT_Library library,
+ const FT_Bitmap *source,
+ FT_Bitmap *target,
+ FT_Int alignment )
+ {
+ return FT_Bitmap_Convert_ReactOS_Hack(library, source, target, alignment, FALSE);
+ }
+#endif
/* documentation is in ftbitmap.h */
BitmapGlyph = (FT_BitmapGlyph)GlyphCopy;
FT_Bitmap_New(&AlignedBitmap);
- if(FT_Bitmap_Convert(GlyphSlot->library, &BitmapGlyph->bitmap, &AlignedBitmap, 4))
+ if (FT_Bitmap_Convert_ReactOS_Hack(GlyphSlot->library, &BitmapGlyph->bitmap,
+ &AlignedBitmap, 4, TRUE))
{
DPRINT1("Conversion failed\n");
ExFreePoolWithTag(NewEntry, TAG_FONT);