diff options
author | Stijn Buys <ingar@osirion.org> | 2008-02-04 00:54:30 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-02-04 00:54:30 +0000 |
commit | 840f9b8678f607aecc15d47bc77248c4ac8b8574 (patch) | |
tree | f90688ca7afabb8e4123e1a811dd168a86717a3c /src/render/text.cc | |
parent | 43b994017a560a2fa97894ebfe121375d6614b6f (diff) |
tweaked console
client status with timer and fps
core connect/disconnect
Diffstat (limited to 'src/render/text.cc')
-rw-r--r-- | src/render/text.cc | 78 |
1 files changed, 52 insertions, 26 deletions
diff --git a/src/render/text.cc b/src/render/text.cc index f97aff6..768ebf8 100644 --- a/src/render/text.cc +++ b/src/render/text.cc @@ -5,37 +5,63 @@ */ #include "render/render.h" -#include "GL/glut.h" +#include "sys/sys.h" namespace render { -void draw_text(float x, float y, std::string text) +void draw_text(float x, float y, const char ascii) +{ + if (ascii != ' ') { + int row = (int) ascii >> 4; + int col = (int) ascii & 15; + + float frow = row * 0.0625f; + float fcol = col * 0.0625f; + + gl::begin(gl::Quads); + + glTexCoord2f(fcol, frow); + gl::vertex(x,y,0); + + glTexCoord2f(fcol + 0.0625f, frow); + gl::vertex(x+CHARWIDTH,y,0); + + glTexCoord2f(fcol +0.0625f, frow + 0.0625f); + gl::vertex(x+CHARWIDTH,y+CHARHEIGHT,0); + + glTexCoord2f(fcol, frow+0.0625f); + gl::vertex(x,y+CHARHEIGHT,0); + + gl::end(); + } +} + + +void draw_text(float x, float y, const char *text) +{ + const char *c = text; + while (*c) { + draw_text(x, y, *c); + c++; + x += CHARWIDTH; + } +} + +void draw_text(float x, float y, std::stringstream & textstream) +{ + char line[MAXCMDSIZE]; + while (textstream.getline(line, MAXCMDSIZE-1)) { + draw_text(x, y, line); + y += CHARHEIGHT; + } + textstream.clear(); +} + +void draw_text(float x, float y, const std::string & text) { for (size_t i =0; i < text.size(); i++) { - if (text[i] != ' ') { - int row = (int) text[i] >> 4; - int col = (int) text[i] & 15; - - float frow = row * 0.0625f; - float fcol = col * 0.0625f; - - gl::begin(gl::Quads); - - glTexCoord2f(fcol, frow); - gl::vertex(x,y,0); - - glTexCoord2f(fcol + 0.0625f, frow); - gl::vertex(x+CHARSIZE,y,0); - - glTexCoord2f(fcol +0.0625f, frow + 0.0625f); - gl::vertex(x+CHARSIZE,y+CHARSIZE,0); - - glTexCoord2f(fcol, frow+0.0625f); - gl::vertex(x,y+CHARSIZE,0); - - gl::end(); - } - x += CHARSIZE; + draw_text(x, y, text[i]); + x += CHARWIDTH; } } |