Add buildsys
FossilOrigin-Name: e5461ff8527693d6fead8581236f625852d55c2a3d7577e4eac219c7031e774f
This commit is contained in:
parent
acb5cb42f3
commit
cbf07a9ef5
48 changed files with 6326 additions and 14 deletions
|
@ -1,222 +0,0 @@
|
|||
// rendertext.cpp: based on Don's gl_text.cpp
|
||||
|
||||
#include "cube.h"
|
||||
|
||||
short char_coords[96][4] =
|
||||
{
|
||||
{0,0,25,64}, //!
|
||||
{25,0,54,64}, //"
|
||||
{54,0,107,64}, //#
|
||||
{107,0,148,64}, //$
|
||||
{148,0,217,64}, //%
|
||||
{217,0,263,64}, //&
|
||||
{263,0,280,64}, //'
|
||||
{280,0,309,64}, //(
|
||||
{309,0,338,64}, //)
|
||||
{338,0,379,64}, //*
|
||||
{379,0,432,64}, //+
|
||||
{432,0,455,64}, //,
|
||||
{455,0,484,64}, //-
|
||||
{0,64,21,128}, //.
|
||||
{23,64,52,128}, ///
|
||||
{52,64,93,128}, //0
|
||||
{93,64,133,128}, //1
|
||||
{133,64,174,128}, //2
|
||||
{174,64,215,128}, //3
|
||||
{215,64,256,128}, //4
|
||||
{256,64,296,128}, //5
|
||||
{296,64,337,128}, //6
|
||||
{337,64,378,128}, //7
|
||||
{378,64,419,128}, //8
|
||||
{419,64,459,128}, //9
|
||||
{459,64,488,128}, //:
|
||||
{0,128,29,192}, //;
|
||||
{29,128,81,192}, //<
|
||||
{81,128,134,192}, //=
|
||||
{134,128,186,192}, //>
|
||||
{186,128,221,192}, //?
|
||||
{221,128,285,192}, //@
|
||||
{285,128,329,192}, //A
|
||||
{329,128,373,192}, //B
|
||||
{373,128,418,192}, //C
|
||||
{418,128,467,192}, //D
|
||||
{0,192,40,256}, //E
|
||||
{40,192,77,256}, //F
|
||||
{77,192,127,256}, //G
|
||||
{127,192,175,256}, //H
|
||||
{175,192,202,256}, //I
|
||||
{202,192,231,256}, //J
|
||||
{231,192,275,256}, //K
|
||||
{275,192,311,256}, //L
|
||||
{311,192,365,256}, //M
|
||||
{365,192,413,256}, //N
|
||||
{413,192,463,256}, //O
|
||||
{1,256,38,320}, //P
|
||||
{38,256,89,320}, //Q
|
||||
{89,256,133,320}, //R
|
||||
{133,256,176,320}, //S
|
||||
{177,256,216,320}, //T
|
||||
{217,256,263,320}, //U
|
||||
{263,256,307,320}, //V
|
||||
{307,256,370,320}, //W
|
||||
{370,256,414,320}, //X
|
||||
{414,256,453,320}, //Y
|
||||
{453,256,497,320}, //Z
|
||||
{0,320,29,384}, //[
|
||||
{29,320,58,384}, //"\"
|
||||
{59,320,87,384}, //]
|
||||
{87,320,139,384}, //^
|
||||
{139,320,180,384}, //_
|
||||
{180,320,221,384}, //`
|
||||
{221,320,259,384}, //a
|
||||
{259,320,299,384}, //b
|
||||
{299,320,332,384}, //c
|
||||
{332,320,372,384}, //d
|
||||
{372,320,411,384}, //e
|
||||
{411,320,433,384}, //f
|
||||
{435,320,473,384}, //g
|
||||
{0,384,40,448}, //h
|
||||
{40,384,56,448}, //i
|
||||
{58,384,80,448}, //j
|
||||
{80,384,118,448}, //k
|
||||
{118,384,135,448}, //l
|
||||
{135,384,197,448}, //m
|
||||
{197,384,238,448}, //n
|
||||
{238,384,277,448}, //o
|
||||
{277,384,317,448}, //p
|
||||
{317,384,356,448}, //q
|
||||
{357,384,384,448}, //r
|
||||
{385,384,417,448}, //s
|
||||
{417,384,442,448}, //t
|
||||
{443,384,483,448}, //u
|
||||
{0,448,38,512}, //v
|
||||
{38,448,90,512}, //w
|
||||
{90,448,128,512}, //x
|
||||
{128,448,166,512}, //y
|
||||
{166,448,200,512}, //z
|
||||
{200,448,241,512}, //{
|
||||
{241,448,270,512}, //|
|
||||
{270,448,310,512}, //}
|
||||
{310,448,363,512}, //~
|
||||
};
|
||||
|
||||
int text_width(char *str)
|
||||
{
|
||||
int x = 0;
|
||||
for (int i = 0; str[i] != 0; i++)
|
||||
{
|
||||
int c = str[i];
|
||||
if(c=='\t') { x = (x+PIXELTAB)/PIXELTAB*PIXELTAB; continue; };
|
||||
if(c=='\f') continue;
|
||||
if(c==' ') { x += FONTH/2; continue; };
|
||||
c -= 33;
|
||||
if(c<0 || c>=95) continue;
|
||||
int in_width = char_coords[c][2] - char_coords[c][0];
|
||||
x += in_width + 1;
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
void draw_textf(char *fstr, int left, int top, int gl_num, ...)
|
||||
{
|
||||
sprintf_sdlv(str, gl_num, fstr);
|
||||
draw_text(str, left, top, gl_num);
|
||||
};
|
||||
|
||||
void draw_text(char *str, int left, int top, int gl_num)
|
||||
{
|
||||
glBlendFunc(GL_ONE, GL_ONE);
|
||||
glBindTexture(GL_TEXTURE_2D, gl_num);
|
||||
glColor3ub(255,255,255);
|
||||
|
||||
int x = left;
|
||||
int y = top;
|
||||
|
||||
int i;
|
||||
float in_left, in_top, in_right, in_bottom;
|
||||
int in_width, in_height;
|
||||
|
||||
for (i = 0; str[i] != 0; i++)
|
||||
{
|
||||
int c = str[i];
|
||||
if(c=='\t') { x = (x-left+PIXELTAB)/PIXELTAB*PIXELTAB+left; continue; };
|
||||
if(c=='\f') { glColor3ub(64,255,128); continue; };
|
||||
if(c==' ') { x += FONTH/2; continue; };
|
||||
c -= 33;
|
||||
if(c<0 || c>=95) continue;
|
||||
|
||||
in_left = ((float) char_coords[c][0]) / 512.0f;
|
||||
in_top = ((float) char_coords[c][1]+2) / 512.0f;
|
||||
in_right = ((float) char_coords[c][2]) / 512.0f;
|
||||
in_bottom = ((float) char_coords[c][3]-2) / 512.0f;
|
||||
|
||||
in_width = char_coords[c][2] - char_coords[c][0];
|
||||
in_height = char_coords[c][3] - char_coords[c][1];
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(in_left, in_top ); glVertex2i(x, y);
|
||||
glTexCoord2f(in_right, in_top ); glVertex2i(x + in_width, y);
|
||||
glTexCoord2f(in_right, in_bottom); glVertex2i(x + in_width, y + in_height);
|
||||
glTexCoord2f(in_left, in_bottom); glVertex2i(x, y + in_height);
|
||||
glEnd();
|
||||
|
||||
xtraverts += 4;
|
||||
x += in_width + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// also Don's code, so goes in here too :)
|
||||
|
||||
void draw_envbox_aux(float s0, float t0, int x0, int y0, int z0,
|
||||
float s1, float t1, int x1, int y1, int z1,
|
||||
float s2, float t2, int x2, int y2, int z2,
|
||||
float s3, float t3, int x3, int y3, int z3,
|
||||
int texture)
|
||||
{
|
||||
glBindTexture(GL_TEXTURE_2D, texture);
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(s3, t3); glVertex3d(x3, y3, z3);
|
||||
glTexCoord2f(s2, t2); glVertex3d(x2, y2, z2);
|
||||
glTexCoord2f(s1, t1); glVertex3d(x1, y1, z1);
|
||||
glTexCoord2f(s0, t0); glVertex3d(x0, y0, z0);
|
||||
glEnd();
|
||||
xtraverts += 4;
|
||||
}
|
||||
|
||||
void draw_envbox(int t, int w)
|
||||
{
|
||||
glDepthMask(GL_FALSE);
|
||||
|
||||
draw_envbox_aux(1.0f, 1.0f, -w, -w, w,
|
||||
0.0f, 1.0f, w, -w, w,
|
||||
0.0f, 0.0f, w, -w, -w,
|
||||
1.0f, 0.0f, -w, -w, -w, t);
|
||||
|
||||
draw_envbox_aux(1.0f, 1.0f, +w, w, w,
|
||||
0.0f, 1.0f, -w, w, w,
|
||||
0.0f, 0.0f, -w, w, -w,
|
||||
1.0f, 0.0f, +w, w, -w, t+1);
|
||||
|
||||
draw_envbox_aux(0.0f, 0.0f, -w, -w, -w,
|
||||
1.0f, 0.0f, -w, w, -w,
|
||||
1.0f, 1.0f, -w, w, w,
|
||||
0.0f, 1.0f, -w, -w, w, t+2);
|
||||
|
||||
draw_envbox_aux(1.0f, 1.0f, +w, -w, w,
|
||||
0.0f, 1.0f, +w, w, w,
|
||||
0.0f, 0.0f, +w, w, -w,
|
||||
1.0f, 0.0f, +w, -w, -w, t+3);
|
||||
|
||||
draw_envbox_aux(0.0f, 1.0f, -w, w, w,
|
||||
0.0f, 0.0f, +w, w, w,
|
||||
1.0f, 0.0f, +w, -w, w,
|
||||
1.0f, 1.0f, -w, -w, w, t+4);
|
||||
|
||||
draw_envbox_aux(0.0f, 1.0f, +w, w, -w,
|
||||
0.0f, 0.0f, -w, w, -w,
|
||||
1.0f, 0.0f, -w, -w, -w,
|
||||
1.0f, 1.0f, +w, -w, -w, t+5);
|
||||
|
||||
glDepthMask(GL_TRUE);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue