Jo Engine 2026.11.1
Jo Sega Saturn Engine
Loading...
Searching...
No Matches
font.h
Go to the documentation of this file.
1/*
2** Jo Sega Saturn Engine
3** Copyright (c) 2012-2026, Johannes Fetz (johannesfetz@gmail.com)
4** All rights reserved.
5**
6** Redistribution and use in source and binary forms, with or without
7** modification, are permitted provided that the following conditions are met:
8** * Redistributions of source code must retain the above copyright
9** notice, this list of conditions and the following disclaimer.
10** * Redistributions in binary form must reproduce the above copyright
11** notice, this list of conditions and the following disclaimer in the
12** documentation and/or other materials provided with the distribution.
13** * Neither the name of the Johannes Fetz nor the
14** names of its contributors may be used to endorse or promote products
15** derived from this software without specific prior written permission.
16**
17** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20** DISCLAIMED. IN NO EVENT SHALL Johannes Fetz BE LIABLE FOR ANY
21** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27*/
33
34#ifndef __JO_FONT_H__
35# define __JO_FONT_H__
36
37typedef struct
38{
42 char spacing;
44} jo_font;
45
52# define jo_font_printf(F, X, Y, S, ...) do {jo_sprintf(__jo_sprintf_buf, __VA_ARGS__); jo_font_print((F), (X), (Y), (S), __jo_sprintf_buf);} while(0)
53
60# define jo_font_printf_centered(F, X, Y, S, ...) do {jo_sprintf(__jo_sprintf_buf, __VA_ARGS__); jo_font_print_centered((F), (X), (Y), (S), __jo_sprintf_buf);} while(0)
61
62#ifdef JO_COMPILE_WITH_FS_SUPPORT
63
74jo_font *jo_font_load(const char * const sub_dir, const char * const filename, const jo_color transparent_color, const int letter_width, const int letter_height, const int letter_spacing, const char * const mapping);
75
76#endif
77
85void jo_font_print(const jo_font * const font, int x, int y, float scale, char * str);
86
94void jo_font_print_centered(const jo_font * const font, int x, int y, float scale, char * str);
95
100void jo_font_free(jo_font * const font);
101
102#endif /* !__JO_FONT_H__ */
103
104/*
105** END OF FILE
106*/
char start_ascii
Definition font.h:39
void jo_font_free(jo_font *const font)
Free a font loaded with jo_font_load().
char end_ascii
Definition font.h:40
int z_index
Definition font.h:43
short * lookup_table
Definition font.h:41
void jo_font_print(const jo_font *const font, int x, int y, float scale, char *str)
Print a string using a specific font (using top-left screen coordinates).
void jo_font_print_centered(const jo_font *const font, int x, int y, float scale, char *str)
Print a string using a specific font (using screen center coordinates).
char spacing
Definition font.h:42
jo_font * jo_font_load(const char *const sub_dir, const char *const filename, const jo_color transparent_color, const int letter_width, const int letter_height, const int letter_spacing, const char *const mapping)
Load a font.
Definition font.h:38
unsigned short jo_color
15 bits color type
Definition types.h:42