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