fixing up font stuff
parent
0e2c8e8ae0
commit
75b56c94c3
|
@ -585,7 +585,9 @@ font_load_freetype(Partition *part,
|
||||||
memset(pixels, 0, tex_width * tex_height * sizeof(u32));
|
memset(pixels, 0, tex_width * tex_height * sizeof(u32));
|
||||||
|
|
||||||
// XXX: test if AUTOHINT looks better or not
|
// XXX: test if AUTOHINT looks better or not
|
||||||
const u32 ft_extra_flags = use_lcd_filter ? FT_LOAD_TARGET_LCD : 0; // FT_LOAD_FORCE_AUTOHINT;
|
// NOTE(allen): As of now FT_LOAD_FORCE_AUTOHINT looks much better for
|
||||||
|
// Liberation Mono which is one of the included 4coder fonts.
|
||||||
|
const u32 ft_extra_flags = use_lcd_filter ? FT_LOAD_TARGET_LCD : FT_LOAD_FORCE_AUTOHINT;
|
||||||
|
|
||||||
for(int i = 0; i < NUM_GLYPHS; ++i){
|
for(int i = 0; i < NUM_GLYPHS; ++i){
|
||||||
if(FT_Load_Char(face, i, FT_LOAD_RENDER | ft_extra_flags) != 0) continue;
|
if(FT_Load_Char(face, i, FT_LOAD_RENDER | ft_extra_flags) != 0) continue;
|
||||||
|
@ -632,11 +634,22 @@ font_load_freetype(Partition *part,
|
||||||
int y = pen_y + j;
|
int y = pen_y + j;
|
||||||
|
|
||||||
if(use_lcd_filter){
|
if(use_lcd_filter){
|
||||||
|
#if 1
|
||||||
u8 a = face->glyph->bitmap.buffer[j * pitch + i * 3 + 1];
|
u8 a = face->glyph->bitmap.buffer[j * pitch + i * 3 + 1];
|
||||||
u8 r = face->glyph->bitmap.buffer[j * pitch + i * 3 + 0];
|
u8 r = face->glyph->bitmap.buffer[j * pitch + i * 3 + 0];
|
||||||
u8 b = face->glyph->bitmap.buffer[j * pitch + i * 3 + 2];
|
u8 b = face->glyph->bitmap.buffer[j * pitch + i * 3 + 2];
|
||||||
|
|
||||||
pixels[y * tex_width + x] = (a << 24) | (b << 16) | (a << 8) | r;
|
pixels[y * tex_width + x] = (a << 24) | (b << 16) | (a << 8) | r;
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
u8 r = face->glyph->bitmap.buffer[j * pitch + i * 3];
|
||||||
|
u8 g = face->glyph->bitmap.buffer[j * pitch + i * 3 + 1];
|
||||||
|
u8 b = face->glyph->bitmap.buffer[j * pitch + i * 3 + 2];
|
||||||
|
u8 a = (u8)ROUND32((r + g + b) / 3.0f);
|
||||||
|
|
||||||
|
pixels[y * tex_width + x] = (a << 24) | (r << 16) | (g << 8) | b;
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
pixels[y * tex_width + x] = face->glyph->bitmap.buffer[j * pitch + i] * 0x1010101;
|
pixels[y * tex_width + x] = face->glyph->bitmap.buffer[j * pitch + i] * 0x1010101;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue