From 3f0c80bb6069ac6ac6b66704f5035bcc7e979dd5 Mon Sep 17 00:00:00 2001 From: Wilrik de Loose Date: Fri, 25 Apr 2008 19:55:15 +0000 Subject: 2 font files (.c + .h) toegevoegd --- menu_demo/font.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++ menu_demo/font.h | 12 +++++++ menu_demo/menu_demo.ncb | Bin 7891968 -> 7891968 bytes menu_demo/menu_demo.suo | Bin 28672 -> 28672 bytes 4 files changed, 95 insertions(+) create mode 100644 menu_demo/font.c create mode 100644 menu_demo/font.h diff --git a/menu_demo/font.c b/menu_demo/font.c new file mode 100644 index 0000000..620ec19 --- /dev/null +++ b/menu_demo/font.c @@ -0,0 +1,83 @@ +#ifdef G_OS_WIN32 + #define WIN32_LEAN_AND_MEAN 1 + #include +#endif + +#include + +#include "font.h" +#include "bitmap.h" + +struct BitmapStruct g_sFont; + +int g_iWinWidth; +int g_iWinHeight; + +GLuint base; + +void FontInit(int f_iWinWidth, int f_iWinHeight) +{ + float cx; + float cy; + int i = 0; + + g_iWinWidth = f_iWinWidth; + g_iWinHeight = f_iWinHeight; + + g_sFont = BitmapLoad("img/continuum_textured_alpha.bmp"); + + base = glGenLists(256); + glBindTexture(GL_TEXTURE_2D, g_sFont.m_iImageId); + + for (i = 0; i < 256; i++) + { + cx = (float)(i % 16) / 16.0f; + cy = (float)(i / 16) / 16.0f; + + glNewList(base + i, GL_COMPILE); + + glBegin(GL_TRIANGLE_STRIP); + glTexCoord2f(cx, 1 - cy); + glVertex2i(0, 0); + glTexCoord2f(cx + 0.0625f, 1 - cy); + glVertex2i(FONT_WIDTH, 0); + glTexCoord2f(cx, 1 - cy - 0.0625f); + glVertex2i(0, FONT_HEIGHT); + glTexCoord2f(cx + 0.0625f, 1 - cy - 0.0625f); + glVertex2i(FONT_WIDTH, FONT_HEIGHT); + glEnd(); + + glTranslated(FONT_SPACING, 0, 0); + glEndList(); + } + +} // BuildFont + +void FontDelete(GLvoid) +{ + glDeleteLists(base, 256); + +} // FontDelete + +void glPrint(GLint x, GLint y, char *string) +{ + glColor3d(0, 0, 0); + glBindTexture(GL_TEXTURE_2D, g_sFont.m_iImageId); + glDisable(GL_DEPTH_TEST); + glMatrixMode(GL_PROJECTION); + + glPushMatrix(); + glLoadIdentity(); + glOrtho(0, g_iWinWidth, g_iWinHeight, 0, 0, 1); + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); + glTranslated(x, y, 0); + glListBase(base - 32); + glCallLists((GLsizei)strlen(string), GL_UNSIGNED_BYTE, string); + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + +} // glPrint \ No newline at end of file diff --git a/menu_demo/font.h b/menu_demo/font.h new file mode 100644 index 0000000..817c8a4 --- /dev/null +++ b/menu_demo/font.h @@ -0,0 +1,12 @@ +#ifndef _CFONT_H +#define _CFONT_H + +#define FONT_WIDTH 32 +#define FONT_HEIGHT 32 +#define FONT_SPACING 20 + +void FontInit(int f_iWinWidth, int f_iWinHeight); +void FontDelete(GLvoid); +void glPrint(GLint x, GLint y, char *string); + +#endif \ No newline at end of file diff --git a/menu_demo/menu_demo.ncb b/menu_demo/menu_demo.ncb index 3e54d2d..7c51dfb 100644 Binary files a/menu_demo/menu_demo.ncb and b/menu_demo/menu_demo.ncb differ diff --git a/menu_demo/menu_demo.suo b/menu_demo/menu_demo.suo index ddcf217..9880990 100644 Binary files a/menu_demo/menu_demo.suo and b/menu_demo/menu_demo.suo differ -- cgit v0.12