Hi,
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.
Here's my code:
---------------------------------------------------------------------------------------
#define WIDTH 640
#define HEIGHT 480
FT_Stroker stroker;
FT_Outline outline;
FT_Vector v;
FT_Bitmap bm;
void *buffer = malloc(WIDTH * HEIGHT);
FT_Vector v;
FT_Bitmap bm;
void *buffer = malloc(WIDTH * HEIGHT);
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.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;
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
_______________________________________________ Freetype mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/freetype
