22#ifndef AGS_SHARED_FONT_FONTS_H
23#define AGS_SHARED_FONT_FONTS_H
25#include "common/std/vector.h"
26#include "ags/shared/ac/game_struct_defines.h"
27#include "ags/shared/util/string.h"
28#include "ags/shared/ac/game_struct_defines.h"
29#include "ags/shared/font/ags_font_renderer.h"
30#include "ags/shared/gfx/allegro_bitmap.h"
34class IAGSFontRenderer;
35class IAGSFontRenderer2;
36class IAGSFontRendererInternal;
38struct FontRenderParams;
54 int LineSpacingCalc = 0;
57 Bitmap TextStencil, TextStencilSub;
58 Bitmap OutlineStencil, OutlineStencilSub;
68void init_font_renderer();
69void shutdown_font_renderer();
70void adjust_y_coordinate_for_text(
int *ypos,
size_t fontnum);
73 void font_recalc_metrics(
size_t fontNumber);
74bool font_first_renderer_loaded();
75bool is_font_loaded(
size_t fontNumber);
76bool is_bitmap_font(
size_t fontNumber);
77bool font_supports_extended_characters(
size_t fontNumber);
79const char *get_font_name(
size_t fontNumber);
81int get_font_flags(
size_t fontNumber);
88void ensure_text_valid_for_font(
char *text,
size_t fontnum);
90int get_font_scaling_mul(
size_t fontNumber);
92int get_text_width(
const char *texx,
size_t fontNumber);
94int get_text_width_outlined(
const char *text,
size_t font_number);
97int get_text_height(
const char *text,
size_t font_number);
101int get_font_height(
size_t fontNumber);
103int get_font_height_outlined(
size_t fontNumber);
106int get_font_surface_height(
size_t fontNumber);
112int get_font_linespacing(
size_t fontNumber);
114void set_font_linespacing(
size_t fontNumber,
int spacing);
116int get_font_outline(
size_t font_number);
118int get_font_outline_thickness(
size_t font_number);
121int get_text_lines_height(
size_t fontNumber,
size_t numlines);
124int get_text_lines_surf_height(
size_t fontNumber,
size_t numlines);
126void set_font_outline(
size_t font_number,
int outline_type,
127 enum FontInfo::AutoOutlineStyle style = FontInfo::kSquared,
int thickness = 1);
128bool is_font_antialiased(
size_t font_number);
130void wouttextxy(
Shared::Bitmap *ds,
int xxx,
int yyy,
size_t fontNumber, color_t text_color,
const char *texx);
132void set_fontinfo(
size_t fontNumber,
const FontInfo &finfo);
134FontInfo get_fontinfo(
size_t font_number);
136bool load_font_size(
size_t fontNumber,
const FontInfo &font_info);
void wgtprintf(
Shared::Bitmap *ds,
int xxx,
int yyy,
size_t fontNumber, color_t text_color,
char *fmt, ...);
139void alloc_font_outline_buffers(
size_t font_number,
141 int text_width,
int text_height,
int color_depth);
143void adjust_fonts_for_render_mode(
bool aa_mode);
145void wfreefont(
size_t fontNumber);
147void free_all_fonts();
150bool ShouldAntiAliasText();
159 inline size_t Count()
const {
168 inline void Clear() {
172 inline void Reset() {
175 inline void Add(
const char *cstr) {
176 if (_pool.size() == _count) _pool.resize(_count + 1);
177 _pool[_count++].SetString(cstr);
190size_t split_lines(
const char *texx,
SplitLines &lines,
int width,
int fontNumber,
size_t max_lines = -1);
Definition: allegro_bitmap.h:44
Definition: ags_font_renderer.h:51
Definition: ags_font_renderer.h:33
Definition: ags_font_renderer.h:107
Definition: game_struct_defines.h:268
Definition: ags_font_renderer.h:82