I'd like to use FreeType2 to draw some filled shapes (graphics primitives). To get started, I thought let's just try something very simple and have FreeType2 draw a filled rectangle. Unfortunately, it doesn't work. The code is supposed to draw a 640x480 filled rectangle into a memory buffer. However, FreeType2 draws only a very small rectangle that is maybe 16x16 into my memory buffer.
FT_Stroker_New(freetype_library, &stroker);
v.x = 0; v.y = 0; FT_Stroker_BeginSubPath(stroker, &v, FALSE);
v.x = WIDTH; FT_Stroker_LineTo(stroker, &v);
v.y = HEIGHT; FT_Stroker_LineTo(stroker, &v);
v.x = 0; FT_Stroker_LineTo(stroker, &v);
v.y = 0; FT_Stroker_LineTo(stroker, &v);
FT_Stroker_EndSubPath(stroker);
FT_Outline_New(freetype_library, 1024, 512, &outline);
FT_Stroker_Export(stroker, &outline);
memset(&bm, 0, sizeof(FT_Bitmap));
bm.rows = HEIGHT;
bm.width = WIDTH;
bm.pitch = WIDTH;
bm.buffer = buffer;
bm.num_grays = 256;
bm.pixel_mode = FT_PIXEL_MODE_GRAY;
FT_Outline_Get_Bitmap(freetype_library, &outline, &bm);
---------------------------------------------------------------------------------------
Can anybody say what's wrong there? I've checked out the documentation already but I don't see what's wrong there... I've also checked the outline's boundaries using FT_Outline_Get_BBox() and it returns the correct dimensions, i.e. 0/0/640/480. However, FreeType2 only draws a few pixels.... why?
Thanks!
Marco