summaryrefslogtreecommitdiffstats
path: root/menu_demo/font.c
diff options
context:
space:
mode:
Diffstat (limited to 'menu_demo/font.c')
-rw-r--r--menu_demo/font.c43
1 files changed, 23 insertions, 20 deletions
diff --git a/menu_demo/font.c b/menu_demo/font.c
index e3773a5..0332174 100644
--- a/menu_demo/font.c
+++ b/menu_demo/font.c
@@ -1,12 +1,12 @@
#ifdef G_OS_WIN32
#define WIN32_LEAN_AND_MEAN 1
- #include <windows.h>
-#else
- #define FALSE 0
+ #include <windows.h>
+#else
+ #define FALSE 0
#define TRUE !FALSE
#endif
-#include <GL/gl.h>
+#include <GL/gl.h>
#include <string.h>
#include "font.h"
@@ -17,38 +17,39 @@ struct BitmapStruct g_sFont;
int g_iWinWidth;
int g_iWinHeight;
-GLuint base;
+GLuint g_iBase;
+
void FontInit(int f_iWinWidth, int f_iWinHeight)
{
float cx;
float cy;
+ int l_iImageId;
int i = 0;
+ float x = (float)(1.0f/FONT_XCHAR);
+
g_iWinWidth = f_iWinWidth;
g_iWinHeight = f_iWinHeight;
g_sFont = BitmapLoad("img/continuum_textured_alpha.bmp");
+ l_iImageId = g_sFont.m_iImageId;
- base = glGenLists(256);
- glBindTexture(GL_TEXTURE_2D, g_sFont.m_iImageId);
+ g_iBase = glGenLists(FONT_COUNT);
+ glBindTexture(GL_TEXTURE_2D, l_iImageId);
- for (i = 0; i < 256; i++)
+ for (i = 0; i < FONT_COUNT; i++)
{
cx = (float)(i % 16) / 16.0f;
cy = (float)(i / 16) / 16.0f;
- glNewList(base + i, GL_COMPILE);
+ glNewList(g_iBase + 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);
+ glTexCoord2f(cx, 1 - cy); glVertex2i(0, 0);
+ glTexCoord2f(cx + x, 1 - cy); glVertex2i(FONT_WIDTH, 0);
+ glTexCoord2f(cx, 1 - cy - x); glVertex2i(0, FONT_HEIGHT);
+ glTexCoord2f(cx + x, 1 - cy - x); glVertex2i(FONT_WIDTH, FONT_HEIGHT);
glEnd();
glTranslated(FONT_SPACING, 0, 0);
@@ -57,12 +58,14 @@ void FontInit(int f_iWinWidth, int f_iWinHeight)
} // BuildFont
+
void FontDelete(void)
{
- glDeleteLists(base, 256);
+ glDeleteLists(g_iBase, FONT_COUNT);
} // FontDelete
+
void glPrint(GLint x, GLint y, char *string, struct ColorStruct f_sColor)
{
glColor3d(f_sColor.m_dRed, f_sColor.m_dGreen, f_sColor.m_dBlue);
@@ -77,11 +80,11 @@ void glPrint(GLint x, GLint y, char *string, struct ColorStruct f_sColor)
glPushMatrix();
glLoadIdentity();
glTranslated(x, y, 0);
- glListBase(base - 32);
+ glListBase(g_iBase - 32);
glCallLists((GLsizei)strlen(string), GL_UNSIGNED_BYTE, string);
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
-} // glPrint
+} // glPrint