|
|
@@ -1082,23 +1082,19 @@ void caca_display(caca_t *kk) |
|
|
|
#if defined(USE_GL) |
|
|
|
if(kk->driver == CACA_DRIVER_GL) |
|
|
|
{ |
|
|
|
unsigned int x, y, offsetx, offsety; |
|
|
|
unsigned int x, y, line; |
|
|
|
|
|
|
|
glClear(GL_COLOR_BUFFER_BIT); |
|
|
|
|
|
|
|
offsety = 0; |
|
|
|
line = 0; |
|
|
|
for(y = 0; y < kk->gl.height; y += kk->gl.font_height) |
|
|
|
{ |
|
|
|
offsetx = 0; |
|
|
|
uint8_t *attr = kk->qq->attr + line * kk->qq->width; |
|
|
|
|
|
|
|
for(x = 0; x < kk->gl.width; x += kk->gl.font_width) |
|
|
|
{ |
|
|
|
uint8_t *attr = kk->qq->attr + offsetx + offsety * kk->qq->width; |
|
|
|
int offset; |
|
|
|
|
|
|
|
offset = attr[0] >> 4; |
|
|
|
|
|
|
|
glDisable(GL_TEXTURE_2D); |
|
|
|
glColor4bv(gl_bgpal[offset]); |
|
|
|
glColor4bv(gl_bgpal[attr[0] >> 4]); |
|
|
|
glBegin(GL_QUADS); |
|
|
|
glVertex2f(x, y); |
|
|
|
glVertex2f(x + kk->gl.font_width, y); |
|
|
@@ -1106,10 +1102,10 @@ void caca_display(caca_t *kk) |
|
|
|
glVertex2f(x, y + kk->gl.font_height); |
|
|
|
glEnd(); |
|
|
|
|
|
|
|
offsetx++; |
|
|
|
attr++; |
|
|
|
} |
|
|
|
|
|
|
|
offsety++; |
|
|
|
line++; |
|
|
|
} |
|
|
|
|
|
|
|
/* 2nd pass, avoids changing render state too much */ |
|
|
@@ -1117,18 +1113,17 @@ void caca_display(caca_t *kk) |
|
|
|
glEnable(GL_TEXTURE_2D); |
|
|
|
glBlendFunc(GL_ONE, GL_ONE); |
|
|
|
|
|
|
|
offsety = 0; |
|
|
|
line = 0; |
|
|
|
for(y = 0; y < kk->gl.height; y += kk->gl.font_height) |
|
|
|
{ |
|
|
|
offsetx = 0; |
|
|
|
uint8_t *attr = kk->qq->attr + line * kk->qq->width; |
|
|
|
unsigned char *chars = kk->qq->chars + line * kk->qq->width; |
|
|
|
|
|
|
|
for(x = 0; x < kk->gl.width; x += kk->gl.font_width) |
|
|
|
{ |
|
|
|
uint8_t *attr = kk->qq->attr + offsetx + offsety * kk->qq->width; |
|
|
|
unsigned char *chr = kk->qq->chars + offsetx + offsety * kk->qq->width; |
|
|
|
|
|
|
|
if(chr[0] != ' ') |
|
|
|
if(chars[0] != ' ') |
|
|
|
{ |
|
|
|
glBindTexture(GL_TEXTURE_2D, kk->gl.id[chr[0]-32]); |
|
|
|
glBindTexture(GL_TEXTURE_2D, kk->gl.id[chars[0]-32]); |
|
|
|
glColor4bv(gl_bgpal[attr[0] & 0xf]); |
|
|
|
glBegin(GL_QUADS); |
|
|
|
glTexCoord2f(0, kk->gl.sh); |
|
|
@@ -1141,9 +1136,11 @@ void caca_display(caca_t *kk) |
|
|
|
glVertex2f(x, y + kk->gl.font_height); |
|
|
|
glEnd(); |
|
|
|
} |
|
|
|
offsetx++; |
|
|
|
|
|
|
|
attr++; |
|
|
|
chars++; |
|
|
|
} |
|
|
|
offsety++; |
|
|
|
line++; |
|
|
|
} |
|
|
|
glDisable(GL_BLEND); |
|
|
|
glDisable(GL_TEXTURE_2D); |
|
|
|