mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-29 17:54:50 +01:00
An underscore followed by a capital letter used as a prefix might cause undefined behaviour
70 lines
2.0 KiB
C++
70 lines
2.0 KiB
C++
/*****************************************************************************
|
|
* Copyright (c) 2014-2020 OpenRCT2 developers
|
|
*
|
|
* For a complete list of all authors, please refer to contributors.md
|
|
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
|
*
|
|
* OpenRCT2 is licensed under the GNU General Public License version 3.
|
|
*****************************************************************************/
|
|
|
|
#pragma once
|
|
|
|
#include "../common.h"
|
|
|
|
constexpr const uint16_t FONT_SPRITE_GLYPH_COUNT = 224;
|
|
|
|
enum
|
|
{
|
|
FONT_SIZE_TINY = 2,
|
|
FONT_SIZE_SMALL = 0,
|
|
FONT_SIZE_MEDIUM = 1,
|
|
FONT_SIZE_COUNT = 3
|
|
};
|
|
|
|
enum class FontSpriteBase : int16_t
|
|
{
|
|
MEDIUM_EXTRA_DARK = -2,
|
|
MEDIUM_DARK = -1,
|
|
|
|
TINY = FONT_SIZE_TINY * FONT_SPRITE_GLYPH_COUNT,
|
|
SMALL = FONT_SIZE_SMALL * FONT_SPRITE_GLYPH_COUNT,
|
|
MEDIUM = FONT_SIZE_MEDIUM * FONT_SPRITE_GLYPH_COUNT,
|
|
};
|
|
|
|
#ifndef NO_TTF
|
|
|
|
struct InternalTTFFont;
|
|
using TTF_Font = InternalTTFFont;
|
|
struct TTFFontDescriptor
|
|
{
|
|
const utf8* filename;
|
|
const utf8* font_name;
|
|
int32_t ptSize;
|
|
int32_t offset_x;
|
|
int32_t offset_y;
|
|
int32_t line_height;
|
|
int32_t hinting_threshold;
|
|
TTF_Font* font;
|
|
};
|
|
|
|
struct TTFFontSetDescriptor
|
|
{
|
|
TTFFontDescriptor size[FONT_SIZE_COUNT];
|
|
};
|
|
|
|
extern TTFFontSetDescriptor* gCurrentTTFFontSet;
|
|
|
|
#endif // NO_TTF
|
|
|
|
void font_sprite_initialise_characters();
|
|
int32_t font_sprite_get_codepoint_offset(int32_t codepoint);
|
|
int32_t font_sprite_get_codepoint_width(FontSpriteBase fontSpriteBase, int32_t codepoint);
|
|
int32_t font_sprite_get_codepoint_sprite(FontSpriteBase fontSpriteBase, int32_t codepoint);
|
|
int32_t font_get_font_index_from_sprite_base(FontSpriteBase spriteBase);
|
|
int32_t font_get_size_from_sprite_base(FontSpriteBase spriteBase);
|
|
int32_t font_get_line_height(FontSpriteBase fontSpriteBase);
|
|
int32_t font_get_line_height_small(FontSpriteBase fontSpriteBase);
|
|
bool font_supports_string_sprite(const utf8* text);
|
|
bool font_supports_string_ttf(const utf8* text, int32_t fontSize);
|
|
bool font_supports_string(const utf8* text, int32_t fontSize);
|