2 Copyright 2004-2005 Chris Tallon
4 This file is part of VOMP.
6 VOMP is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 VOMP is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with VOMP; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26 Surface* Surface::screen = NULL;
27 osd_font_t* Surface::font = &font_helvB18;
29 Surface::Surface(int id)
31 if (id == SCREEN) screen = this;
38 Surface* Surface::getScreen()
43 int Surface::drawText(const char* text, int x, int y, ULONG rgba)
55 unsigned char c = text[i];
56 unsigned long *character = &font->content[font->offset[c]];
57 int w = font->width[c];
64 if ((character[Y] >> (32 - X)) & 0x1)
66 drawPixel(x+X+cx, y+Y, rgba);
76 int Surface::drawTextRJ(const char* text, int x, int y, ULONG rgba)
83 for (i = 0; i < n; i++)
85 w += font->width[text[i]];
91 else return drawText(text, x, y, rgba);
94 int Surface::drawTextCentre(const char* text, int x, int y, ULONG rgba)
101 for (i = 0; i < n; i++)
103 w += font->width[text[i]];
109 else return drawText(text, x, y, rgba);
112 int Surface::getCharWidth(char c)
114 return font->width[(unsigned char) c];
117 int Surface::getFontHeight()
119 return font->spacing;