ScummVM API documentation
xeen_font.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef MM_UTILS_XEEN_FONT_H
23#define MM_UTILS_XEEN_FONT_H
24
25#include "common/array.h"
26#include "common/rect.h"
27#include "graphics/font.h"
28#include "graphics/managed_surface.h"
29
30namespace MM {
31
35class XeenFont : public Graphics::Font {
36private:
38 Common::Array<byte> _widths;
39private:
40 static byte _colors[4];
41 static byte _colorsSet[40][4];
42public:
43 static void loadColors(Common::SeekableReadStream *src);
44
48 static void setColors(uint index);
49public:
50 XeenFont() {}
51
56 size_t charsOffset, size_t charWidthsOffset);
57
61 int getFontHeight() const override { return 8 + 1; }
62
66 int getMaxCharWidth() const override { return 8; }
67
71 int getCharWidth(uint32 chr) const override;
72
76 int getStringWidth(const Common::String &str) const;
77
81 void drawChar(Graphics::Surface *dst, uint32 chr, int x, int y, uint32 color) const override;
82 void drawChar(Graphics::ManagedSurface *dst, uint32 chr, int x, int y, uint32 color) const override {
83 return Graphics::Font::drawChar(dst, chr, x, y, color);
84 }
85};
86
87} // namespace MM
88
89#endif
Definition: stream.h:745
Definition: str.h:59
Definition: font.h:83
virtual void drawChar(Surface *dst, uint32 chr, int x, int y, uint32 color) const =0
Definition: managed_surface.h:51
Definition: xeen_font.h:35
int getCharWidth(uint32 chr) const override
int getMaxCharWidth() const override
Definition: xeen_font.h:66
static void setColors(uint index)
int getStringWidth(const Common::String &str) const
int getFontHeight() const override
Definition: xeen_font.h:61
void load(Common::SeekableReadStream *src, size_t charsOffset, size_t charWidthsOffset)
void drawChar(Graphics::Surface *dst, uint32 chr, int x, int y, uint32 color) const override
Definition: detection.h:27
Definition: surface.h:67