28 #if !(defined(ENABLE_KYRA) || defined(ENABLE_SCI) || defined(ENABLE_SCUMM) || defined(ENABLE_SAGA) || defined(ENABLE_AGOS) || defined(DYNAMIC_MODULES)) 34 #ifndef GRAPHICS_SJIS_H 35 #define GRAPHICS_SJIS_H 42 #define DISABLE_FLIPPED_MODE 45 #include "common/scummsys.h" 46 #include "common/platform.h" 66 virtual ~FontSJIS() {}
79 static FontSJIS *createFont(
const Common::Platform platform = Common::kPlatformUnknown);
84 virtual bool loadData() = 0;
100 virtual void setDrawingMode(DrawingMode mode) {}
105 virtual void toggleFatPrint(
bool enable) {}
110 virtual void toggleFlippedMode(
bool enable) {}
115 virtual void setCharSpacing(
int spacing) {}
116 virtual void setLineSpacing(
int spacing) {}
121 virtual uint getFontHeight()
const = 0;
126 virtual uint getMaxFontWidth()
const = 0;
131 virtual uint getCharWidth(uint16 ch)
const = 0;
136 void drawChar(
Graphics::Surface &dst, uint16 ch,
int x,
int y, uint32 c1, uint32 c2)
const;
150 virtual void drawChar(
void *dst, uint16 ch,
int pitch,
int bpp, uint32 c1, uint32 c2,
int maxW,
int maxH)
const = 0;
156 class FontSJISBase :
public FontSJIS {
160 virtual void setDrawingMode(DrawingMode mode);
162 virtual void toggleFlippedMode(
bool enable);
164 virtual void toggleFatPrint(
bool enable);
166 virtual uint getFontHeight()
const;
168 virtual uint getMaxFontWidth()
const;
170 virtual uint getCharWidth(uint16 ch)
const;
172 virtual void drawChar(
void *dst, uint16 ch,
int pitch,
int bpp, uint32 c1, uint32 c2,
int maxW,
int maxH)
const;
174 template<
typename Color>
175 void blitCharacter(
const uint8 *glyph,
const int w,
const int h, uint8 *dst,
int pitch, Color c)
const;
176 void createOutline(uint8 *outline,
const uint8 *glyph,
const int w,
const int h)
const;
178 #ifndef DISABLE_FLIPPED_MODE 181 const uint8 *flipCharacter(
const uint8 *glyph,
const int w)
const;
182 mutable uint8 _tempGlyph[32];
184 const uint8 *makeFatCharacter(
const uint8 *glyph,
const int w)
const;
185 mutable uint8 _tempGlyph2[32];
187 DrawingMode _drawMode;
188 bool _flippedMode, _fatPrint;
189 int _fontWidth, _fontHeight;
190 uint8 _bitPosNewLineMask;
192 bool isASCII(uint16 ch)
const;
194 virtual const uint8 *getCharData(uint16 c)
const = 0;
196 enum DrawingFeature {
197 kFeatDefault = 1 << 0,
198 kFeatOutline = 1 << 1,
199 kFeatShadow = 1 << 2,
200 kFeatFMTownsShadow = 1 << 3,
201 kFeatFlipped = 1 << 4,
202 kFeatFatPrint = 1 << 5
205 virtual bool hasFeature(
int feat)
const = 0;
213 class FontTowns :
public FontSJISBase {
220 static int getCharFMTChunk(uint16 ch);
224 kFont16x16Chars = 7808,
228 uint8 _fontData16x16[kFont16x16Chars * 32];
229 uint8 _fontData8x16[kFont8x16Chars * 32];
231 virtual const uint8 *getCharData(uint16 c)
const;
233 bool hasFeature(
int feat)
const;
241 class FontPC98 :
public FontSJISBase {
246 bool loadData()
override;
254 const uint8 *getCharData(uint16 c)
const override;
258 kFont16x16Chars = 8831,
262 uint8 _fontData16x16[kFont16x16Chars * 32];
263 uint8 _fontData8x16[kFont8x16Chars * 16];
265 bool hasFeature(
int feat)
const override;
273 class FontPCEngine :
public FontSJISBase {
281 kFont12x12Chars = 3418
284 uint8 _fontData12x12[kFont12x12Chars * 18];
286 virtual const uint8 *getCharData(uint16 c)
const;
288 bool hasFeature(
int feat)
const;
294 class FontSjisSVM :
public FontSJISBase {
304 uint8 *_fontData16x16;
305 uint _fontData16x16Size;
307 uint8 *_fontData8x16;
308 uint _fontData8x16Size;
310 uint8 *_fontData12x12;
311 uint _fontData12x12Size;
313 virtual const uint8 *getCharData(uint16 c)
const;
315 bool hasFeature(
int feat)
const;
317 const uint8 *getCharDataPCE(uint16 c)
const;
318 const uint8 *getCharDataDefault(uint16 c)
const;
320 void mapKANJIChar(
const uint8 fB,
const uint8 sB,
int &base,
int &index)
const;
333 #endif // engine and dynamic plugins guard
Definition: formatinfo.h:28