这段程序能处理中文吗??(菜鸟发问)
发表于 : 2006-07-26 10:28
while (*text) {
FT_Set_Transform(face, NULL, &pen);
index = FT_Get_Char_Index(face, *text);
error = FT_Load_Glyph(face, index, 0);
if (error) {
__E("Failed to load glyph for character %c\n", *text);
break;
}
if (face->glyph->format != FT_GLYPH_FORMAT_BITMAP) {
error = FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL);
if (error) {
__E("Failed to render glyph for character %c\n", *text);
break;
}
}
width = face->glyph->bitmap.width;
height = face->glyph->bitmap.rows;
x = face->glyph->bitmap_left;
y = scrp->h - face->glyph->bitmap_top;
x_max = x + width;
y_max = y + height;
src = face->glyph->bitmap.buffer;
for (i = x, p = 0; i < x_max; i++, p++) {
for (j = y, q = 0; j < y_max; j++, q++) {
if (i >= scrp->w || j >= scrp->h)
continue;
sp = q * width + p;
dp = j * scrp->w + i;
pixel = src[sp] * fade / 255;
dst[dp] |= _8to5bit[pixel] | _8to6bit[pixel] << 5 |
_8to5bit[pixel] << 11;
}
}
text++;
pen.x += face->glyph->advance.x;
pen.y += face->glyph->advance.y;
}
用的是Unicode 编码
请大家指教哦
FT_Set_Transform(face, NULL, &pen);
index = FT_Get_Char_Index(face, *text);
error = FT_Load_Glyph(face, index, 0);
if (error) {
__E("Failed to load glyph for character %c\n", *text);
break;
}
if (face->glyph->format != FT_GLYPH_FORMAT_BITMAP) {
error = FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL);
if (error) {
__E("Failed to render glyph for character %c\n", *text);
break;
}
}
width = face->glyph->bitmap.width;
height = face->glyph->bitmap.rows;
x = face->glyph->bitmap_left;
y = scrp->h - face->glyph->bitmap_top;
x_max = x + width;
y_max = y + height;
src = face->glyph->bitmap.buffer;
for (i = x, p = 0; i < x_max; i++, p++) {
for (j = y, q = 0; j < y_max; j++, q++) {
if (i >= scrp->w || j >= scrp->h)
continue;
sp = q * width + p;
dp = j * scrp->w + i;
pixel = src[sp] * fade / 255;
dst[dp] |= _8to5bit[pixel] | _8to6bit[pixel] << 5 |
_8to5bit[pixel] << 11;
}
}
text++;
pen.x += face->glyph->advance.x;
pen.y += face->glyph->advance.y;
}
用的是Unicode 编码
请大家指教哦