/* * mogltk * Copyright (C) 1999-2004 Nicolas "Pixel" Noble * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: glfont.cc,v 1.23 2004-07-15 14:21:31 pixel Exp $ */ #include "engine.h" #include "glbase.h" #include "glfont.h" #ifdef HAVE_CONFIG_H #include "config.h" #endif mogltk::glfont::glfont(Handle * ffont) : font(ffont) { } mogltk::glfont::~glfont() { } void mogltk::glfont::drawentry(Uint16 entry, int x, int y, ColorP c) { bool was2D; int trueentry, cx, cy, px, py; was2D = mogltk::engine::glbase_o->is2D(); if (!was2D) mogltk::engine::glbase_o->Enter2DMode(); if (shadow) { int os = shadow; shadow = 0; drawentry(entry, x + os, y + os, BLACK); shadow = os; } y -= base; Bind(entry / nbcT); c.Bind(); trueentry = entry % nbcT; cx = trueentry % nbcU; cy = trueentry / nbcU; px = cx * maxX; py = cy * maxY; glBegin(GL_TRIANGLE_STRIP); glTexCoord2i(px , py ); glVertex2i(x , y ); glTexCoord2i(px + maxX , py ); glVertex2i(x + maxX , y ); glTexCoord2i(px , py + maxY ); glVertex2i(x , y + maxY ); glTexCoord2i(px + maxX , py + maxY ); glVertex2i(x + maxX , y + maxY ); glEnd(); if (!was2D) mogltk::engine::glbase_o->Leave2DMode(); }