layout adjustment
[open-ps2-loader.git] / include / fntsys.h
blobbb040e0865cacc3b5e3ffb0bb0a85df661a44343
1 #ifndef __FNTSYS_H
2 #define __FNTSYS_H
4 #include <gsToolkit.h>
6 /// default (built-in) font id
7 #define FNT_DEFAULT (0)
8 /// Value returned on errors
9 #define FNT_ERROR (-1)
11 /** Initializes the font subsystem */
12 void fntInit(void);
14 /** Terminates the font subsystem */
15 void fntEnd(void);
17 /** Loads a font
18 * @param buffer The memory buffer containing the font
19 * @param bufferSize Size of the buffer
20 * @param takeover Set to nonzero
21 * @return font slot id (negative value means error happened) */
22 int fntLoad(void* buffer, int bufferSize, int takeover);
24 /** Loads a font from a file path
25 * @param path The path to the font file
26 * @return font slot id (negative value means error happened) */
27 int fntLoadFile(char* path);
29 /** Replaces the given font slot with the defined font */
30 void fntReplace(int id, void* buffer, int bufferSize, int takeover, int asDefault);
32 /** Reloads the default font into the given font slot */
33 void fntSetDefault(int id);
35 /** Releases a font slot */
36 void fntRelease(int id);
38 /** Sets a new aspect ratio
39 * @note Invalidates the whole glyph cache for all fonts! */
40 void fntSetAspectRatio(float aw, float ah);
42 /** Renders a text with specified window dimensions */
43 int fntRenderString(int font, int x, int y, short aligned, size_t width, size_t height, const unsigned char* string, u64 colour);
45 /** replaces spaces with newlines so that the text fits into the specified width.
46 * @note A destrutive operation - modifies the given string!
48 void fntFitString(int font, unsigned char *string, size_t width);
50 /** Calculates the width of the given text string
51 * We can't use the height for alignment, as the horizontal center would depends of the contained text itself */
52 int fntCalcDimensions(int font, const unsigned char* str);
54 #endif