Changeset 1008 for libcaca/trunk/caca/driver_gl.c
- Timestamp:
- Aug 13, 2006, 7:30:34 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/caca/driver_gl.c
r973 r1008 327 327 328 328 /* 2nd pass, avoids changing render state too much */ 329 glEnable(GL_TEXTURE_2D); 329 330 glEnable(GL_BLEND); 330 glEnable(GL_TEXTURE_2D);331 331 glBlendFunc(GL_ONE, GL_ONE); 332 332 333 333 line = 0; 334 for(y = 0; y < dp->drv.p->height; y += dp->drv.p->font_height )334 for(y = 0; y < dp->drv.p->height; y += dp->drv.p->font_height, line++) 335 335 { 336 336 uint32_t *attr = dp->cv->attr + line * dp->cv->width; 337 337 uint32_t *chars = dp->cv->chars + line * dp->cv->width; 338 338 339 for(x = 0; x < dp->drv.p->width; x += dp->drv.p->font_width )339 for(x = 0; x < dp->drv.p->width; x += dp->drv.p->font_width, attr++) 340 340 { 341 341 uint32_t cv = *chars++; 342 uint16_t fg; 343 344 if(cv == ' ') 345 continue; 342 346 343 347 if(cv > 0x00000020 && cv < 0x00000080) 344 348 { 345 uint16_t fg = _cucul_argb32_to_rgb12fg(*attr);346 349 glBindTexture(GL_TEXTURE_2D, dp->drv.p->id[cv - 32]); 347 glColor3b(((fg & 0xf00) >> 8) * 8,348 ((fg & 0x0f0) >> 4) * 8,349 (fg & 0x00f) * 8);350 glBegin(GL_QUADS);351 glTexCoord2f(0, dp->drv.p->sh);352 glVertex2f(x, y);353 glTexCoord2f(dp->drv.p->sw, dp->drv.p->sh);354 glVertex2f(x + dp->drv.p->font_width, y);355 glTexCoord2f(dp->drv.p->sw, 0);356 glVertex2f(x + dp->drv.p->font_width,357 y + dp->drv.p->font_height);358 glTexCoord2f(0, 0);359 glVertex2f(x, y + dp->drv.p->font_height);360 glEnd();361 350 } 362 else if(cv!=' ')351 else switch(cv) 363 352 { 364 switch(cv)365 {366 353 case 0x00002580: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[0]); break; 367 354 case 0x00002584: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[1]); break; … … 373 360 case 0x00002593: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id_uni[7]); break; 374 361 default: glBindTexture(GL_TEXTURE_2D, dp->drv.p->id['?' - 32]); break; 375 }376 377 uint16_t fg = _cucul_argb32_to_rgb12fg(*attr);378 glColor3b(((fg & 0xf00) >> 8) * 8,379 ((fg & 0x0f0) >> 4) * 8,380 (fg & 0x00f) * 8);381 glBegin(GL_QUADS);382 glTexCoord2f(0, dp->drv.p->sh);383 glVertex2f(x, y);384 glTexCoord2f(dp->drv.p->sw, dp->drv.p->sh);385 glVertex2f(x + dp->drv.p->font_width, y);386 glTexCoord2f(dp->drv.p->sw, 0);387 glVertex2f(x + dp->drv.p->font_width,388 y + dp->drv.p->font_height);389 glTexCoord2f(0, 0);390 glVertex2f(x, y + dp->drv.p->font_height);391 glEnd();392 393 362 } 394 363 395 attr++; 364 fg = _cucul_argb32_to_rgb12fg(*attr); 365 glColor3b(((fg & 0xf00) >> 8) * 8, 366 ((fg & 0x0f0) >> 4) * 8, 367 (fg & 0x00f) * 8); 368 glBegin(GL_QUADS); 369 glTexCoord2f(0, dp->drv.p->sh); 370 glVertex2f(x, y); 371 glTexCoord2f(dp->drv.p->sw, dp->drv.p->sh); 372 glVertex2f(x + dp->drv.p->font_width, y); 373 glTexCoord2f(dp->drv.p->sw, 0); 374 glVertex2f(x + dp->drv.p->font_width, 375 y + dp->drv.p->font_height); 376 glTexCoord2f(0, 0); 377 glVertex2f(x, y + dp->drv.p->font_height); 378 glEnd(); 396 379 } 397 line++;398 }380 } 381 glBlendFunc(GL_ONE, GL_ZERO); 399 382 glDisable(GL_BLEND); 400 383 glDisable(GL_TEXTURE_2D);
Note: See TracChangeset
for help on using the changeset viewer.