diff --git a/src/graphics.c b/src/graphics.c index 554c2b9..d6744da 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -185,26 +185,26 @@ static int const win32_bg_palette[] = #endif #if defined(USE_GL) -static float const gl_bgpal[][3] = -{ - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.5f }, - { 0.0f, 0.5f, 0.0f }, - { 0.0f, 0.5f, 0.5f }, - { 0.5f, 0.0f, 0.0f }, - { 0.5f, 0.0f, 0.5f }, - { 0.5f, 0.5f, 0.0f }, - { 0.5f, 0.5f, 0.5f }, +static unsigned int const gl_bgpal[] = + { + 0, + 0x0000007F, + 0x00007F00, + 0x00007F7F, + 0x007F0000, + 0x007F007F, + 0x007F7F00, + 0x007F7F7F, // + intensity - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, 1.0f }, - { 0.0f, 1.0f, 0.0f }, - { 0.0f, 1.0f, 1.0f }, - { 1.0f, 0.0f, 0.0f }, - { 1.0f, 0.0f, 1.0f }, - { 1.0f, 1.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, -}; + 0x00000000, + 0x000000FF, + 0x0000FF00, + 0x0000FFFF, + 0x00FF0000, + 0x00FF00FF, + 0x00FFFF00, + 0x00FFFFFF, + }; static caca_t *gl_kk; /* FIXME: we ought to get rid of this */ #endif @@ -917,7 +917,7 @@ void caca_display(caca_t *kk) int x, y; uint8_t *attr = kk->qq->attr; uint8_t *chars = kk->qq->chars; - for(y = 0; y < kk->qq->height; y++) + for(y = 0; y < (int)kk->qq->height; y++) { SLsmg_gotorc(y, 0); for(x = kk->qq->width; x--; ) @@ -962,7 +962,7 @@ void caca_display(caca_t *kk) int x, y; uint8_t *attr = kk->qq->attr; uint8_t *chars = kk->qq->chars; - for(y = 0; y < kk->qq->height; y++) + for(y = 0; y < (int)kk->qq->height; y++) { move(y, 0); for(x = kk->qq->width; x--; ) @@ -1094,15 +1094,11 @@ void caca_display(caca_t *kk) { uint8_t *attr = kk->qq->attr + offsetx + offsety * kk->qq->width; int offset; - float br, bg, bb; - offset = attr[0] >> 4; - br = gl_bgpal[offset][0]; - bg = gl_bgpal[offset][1]; - bb = gl_bgpal[offset][2]; + offset = attr[0] >> 4; glDisable(GL_TEXTURE_2D); - glColor3f(br, bg, bb); + glColor3uiv(&gl_bgpal[offset]); glBegin(GL_QUADS); glVertex2f(x, y); glVertex2f(x + kk->gl.font_width, y); @@ -1129,17 +1125,11 @@ void caca_display(caca_t *kk) { uint8_t *attr = kk->qq->attr + offsetx + offsety * kk->qq->width; unsigned char *chr = kk->qq->chars + offsetx + offsety * kk->qq->width; - float fr, fg, fb; - - fr = gl_bgpal[attr[0] & 0xf][0]; - fg = gl_bgpal[attr[0] & 0xf][1]; - fb = gl_bgpal[attr[0] & 0xf][2]; if(chr[0] != ' ') { glBindTexture(GL_TEXTURE_2D, kk->gl.id[chr[0]-32]); - - glColor3f(fr, fg, fb); + glColor3uiv(&gl_bgpal[attr[0] & 0xf]); glBegin(GL_QUADS); glTexCoord2f(0, kk->gl.sh); glVertex2f(x, y);