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
24 Surface* Surface::screen = NULL;
25 osd_font_t* Surface::font = &font_helvB18;
27 Surface::Surface(int id)
29 if (id == SCREEN) screen = this;
36 Surface* Surface::getScreen()
41 int Surface::drawText(char* text, int x, int y, ULONG rgba)
53 unsigned char c = text[i];
54 unsigned long *character = &font->content[font->offset[c]];
55 int w = font->width[c];
62 if ((character[Y] >> (32 - X)) & 0x1)
64 drawPixel(x+X+cx, y+Y, rgba);
74 int Surface::drawTextRJ(char* text, int x, int y, ULONG rgba)
81 for (i = 0; i < n; i++)
83 w += font->width[text[i]];
89 else return drawText(text, x, y, rgba);
92 int Surface::drawTextCentre(char* text, int x, int y, ULONG rgba)
99 for (i = 0; i < n; i++)
101 w += font->width[text[i]];
107 else return drawText(text, x, y, rgba);
110 int Surface::getCharWidth(char c)
112 return font->width[(unsigned char) c];
115 int Surface::getFontHeight()
117 return font->spacing;