Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-02-04 00:54:30 +0000
committerStijn Buys <ingar@osirion.org>2008-02-04 00:54:30 +0000
commit840f9b8678f607aecc15d47bc77248c4ac8b8574 (patch)
treef90688ca7afabb8e4123e1a811dd168a86717a3c /src/render/text.cc
parent43b994017a560a2fa97894ebfe121375d6614b6f (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.cc78
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;
}
}