it almost works
This commit is contained in:
@@ -161,22 +161,6 @@ ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,
|
|||||||
al_unlock_bitmap(gtex);
|
al_unlock_bitmap(gtex);
|
||||||
ALLEGRO_INFO("blit raster to vram\n");
|
ALLEGRO_INFO("blit raster to vram\n");
|
||||||
|
|
||||||
block = al_lock_bitmap(gtex, ALLEGRO_PIXEL_FORMAT_RGBA_8888, ALLEGRO_LOCK_WRITEONLY);
|
|
||||||
assert(block->pixel_size == 4);
|
|
||||||
const unsigned int gtexw = al_get_bitmap_width(gtex), gtexh = al_get_bitmap_height(gtex);
|
|
||||||
unsigned int pixiw = 0, pixih = 0, pixi = 0;
|
|
||||||
while (pixi < gtexh * gtexw) {
|
|
||||||
uint32_t* pixel = (uint32_t*)((uint8_t*)block->data + (block->pitch * pixih)) + pixiw; // fixme
|
|
||||||
*pixel = (*pixel & 0xffu) * 0x01010101u;
|
|
||||||
pixi++;
|
|
||||||
if (pixiw++ >= gtexw) {
|
|
||||||
pixiw = 0;
|
|
||||||
pixih++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
al_unlock_bitmap(gtex);
|
|
||||||
ALLEGRO_INFO("converted colors\n");
|
|
||||||
|
|
||||||
woff += geom.minWidth + 1;
|
woff += geom.minWidth + 1;
|
||||||
i++; continue;
|
i++; continue;
|
||||||
|
|
||||||
@@ -189,6 +173,24 @@ ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,
|
|||||||
FAIL;
|
FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// a shader would be better, but we don't know the target platform.
|
||||||
|
ALLEGRO_LOCKED_REGION *glock = al_lock_bitmap(gtex, ALLEGRO_PIXEL_FORMAT_ABGR_8888, ALLEGRO_LOCK_READWRITE);
|
||||||
|
assert(glock->pixel_size == 4);
|
||||||
|
const unsigned int gtexw = al_get_bitmap_width(gtex), gtexh = al_get_bitmap_height(gtex);
|
||||||
|
unsigned int pixiw = 0, pixih = 0, pixi = 0;
|
||||||
|
while (pixi < gtexh * gtexw) {
|
||||||
|
uint32_t* pixel = (uint32_t*)((uint8_t*)glock->data + (glock->pitch * (signed)pixih)) + pixiw; // fixme
|
||||||
|
if (*pixel == 0xFFFF0000) *pixel = 0xFF000000;
|
||||||
|
else *pixel = (*pixel & 0xffu) * 0x01010101u;
|
||||||
|
pixi++; pixiw++;
|
||||||
|
if (pixiw >= gtexw) {
|
||||||
|
pixiw = 0;
|
||||||
|
pixih++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
al_unlock_bitmap(gtex);
|
||||||
|
ALLEGRO_INFO("converted colors\n");
|
||||||
|
|
||||||
// debug
|
// debug
|
||||||
al_save_bitmap("schrift_test.png", gtex);
|
al_save_bitmap("schrift_test.png", gtex);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user