mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-29 19:40:35 +00:00
with CAP_FONT text works better on white background
This commit is contained in:
parent
ec84643070
commit
099349cafd
@ -335,11 +335,7 @@ struct glfont_t {
|
|||||||
|
|
||||||
glfont_t *glfont[256];
|
glfont_t *glfont[256];
|
||||||
|
|
||||||
#if CAP_TABFONT
|
|
||||||
typedef int texturepixel;
|
|
||||||
#else
|
|
||||||
typedef Uint16 texturepixel;
|
typedef Uint16 texturepixel;
|
||||||
#endif
|
|
||||||
|
|
||||||
#define FONTTEXTURESIZE 2048
|
#define FONTTEXTURESIZE 2048
|
||||||
|
|
||||||
@ -349,7 +345,8 @@ texturepixel fontdata[FONTTEXTURESIZE][FONTTEXTURESIZE];
|
|||||||
void sdltogl(SDL_Surface *txt, glfont_t& f, int ch) {
|
void sdltogl(SDL_Surface *txt, glfont_t& f, int ch) {
|
||||||
#if CAP_TABFONT
|
#if CAP_TABFONT
|
||||||
if(ch < 32) return;
|
if(ch < 32) return;
|
||||||
int otwidth, otheight, tpix[3000], tpixindex = 0;
|
int otwidth, otheight, tpixindex = 0;
|
||||||
|
unsigned char tpix[3000];
|
||||||
loadCompressedChar(otwidth, otheight, tpix);
|
loadCompressedChar(otwidth, otheight, tpix);
|
||||||
#else
|
#else
|
||||||
if(!txt) return;
|
if(!txt) return;
|
||||||
@ -364,7 +361,7 @@ void sdltogl(SDL_Surface *txt, glfont_t& f, int ch) {
|
|||||||
for(int j=0; j<otheight;j++) for(int i=0; i<otwidth; i++) {
|
for(int j=0; j<otheight;j++) for(int i=0; i<otwidth; i++) {
|
||||||
fontdata[j+cury][i+curx] =
|
fontdata[j+cury][i+curx] =
|
||||||
#if CAP_TABFONT
|
#if CAP_TABFONT
|
||||||
(i>=otwidth || j>=otheight) ? 0 : tpix[tpixindex++];
|
(i>=otwidth || j>=otheight) ? 0 : (tpix[tpixindex++] * 0x100) | 0xFF;
|
||||||
#else
|
#else
|
||||||
((i>=txt->w || j>=txt->h) ? 0 : ((qpixel(txt, i, j)>>24)&0xFF) * 0x100) | 0x00FF;
|
((i>=txt->w || j>=txt->h) ? 0 : ((qpixel(txt, i, j)>>24)&0xFF) * 0x100) | 0x00FF;
|
||||||
#endif
|
#endif
|
||||||
@ -442,12 +439,8 @@ void init_glfont(int size) {
|
|||||||
|
|
||||||
theight = next_p2(cury + theight);
|
theight = next_p2(cury + theight);
|
||||||
|
|
||||||
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, FONTTEXTURESIZE, theight, 0,
|
glTexImage2D( GL_TEXTURE_2D, 0, GL_LUMINANCE_ALPHA, FONTTEXTURESIZE, theight, 0,
|
||||||
#if CAP_TABFONT
|
|
||||||
GL_RGBA, GL_UNSIGNED_BYTE,
|
|
||||||
#else
|
|
||||||
GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE,
|
GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE,
|
||||||
#endif
|
|
||||||
fontdata);
|
fontdata);
|
||||||
|
|
||||||
for(int ch=0; ch<CHARS; ch++) f.ty0[ch] /= theight, f.ty1[ch] /= theight;
|
for(int ch=0; ch<CHARS; ch++) f.ty0[ch] /= theight, f.ty1[ch] /= theight;
|
||||||
|
@ -122,7 +122,7 @@ void resetTabFont() {
|
|||||||
ftv = fonttable;
|
ftv = fonttable;
|
||||||
}
|
}
|
||||||
|
|
||||||
void loadCompressedChar(int &otwidth, int &otheight, int *tpix) {
|
void loadCompressedChar(int &otwidth, int &otheight, unsigned char *tpix) {
|
||||||
if(*ftv == 255) {
|
if(*ftv == 255) {
|
||||||
fprintf(stderr, "There is something wrong with the font table\n");
|
fprintf(stderr, "There is something wrong with the font table\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
@ -139,7 +139,7 @@ void loadCompressedChar(int &otwidth, int &otheight, int *tpix) {
|
|||||||
while(q--) *(tpix++) = x;
|
while(q--) *(tpix++) = x;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
*(tpix++) = (x << 24) | 0xFFFFFF;
|
*(tpix++) = x;
|
||||||
left--;
|
left--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user