sdk-world v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Loading...
Searching...
No Matches
gsFontM.h
Go to the documentation of this file.
1
5// ____ ___ | / _____ _____
6// | __ | |___/ | |
7// |___| ___| | \ __|__ | gsKit Open Source Project.
8// ----------------------------------------------------------------------
9// Copyright 2004 - Chris "Neovanglist" Gilbert <Neovanglist@LainOS.org>
10// Licenced under Academic Free License version 2.0
11// Review gsKit README & LICENSE files for further details.
12//
13// gsFontM.h - Header for gsFontM.c
14//
15
16#ifndef __GSFONTM_H__
17#define __GSFONTM_H__
18
19#include "gsKit.h"
20
21#define GSKIT_FONTM_MAXLINES 255
22
23#define GSKIT_FALIGN_LEFT 0x00
24#define GSKIT_FALIGN_CENTER 0x01
25#define GSKIT_FALIGN_RIGHT 0x02
26
27#define ALPHA_SRC 0
28#define ALPHA_DST 1
29#define ALPHA_ZERO 2
30#define ALPHA_FIX 2
31#define ALPHA(A,B,C,D,FIX) ( (((u64)(A))&3) | ((((u64)(B))&3)<<2) | ((((u64)(C))&3)<<4) | ((((u64)(D))&3)<<6) | ((((u64)(FIX)))<<32UL) )//(A - B)*C >> 7 + D
32
33#define ALPHA_BLEND_NORMAL (ALPHA(ALPHA_SRC,ALPHA_DST,ALPHA_SRC,ALPHA_DST,0x00))
34#define ALPHA_BLEND_ADD_NOALPHA (ALPHA(ALPHA_SRC,ALPHA_ZERO,ALPHA_FIX,ALPHA_DST,0x80))
35#define ALPHA_BLEND_ADD (ALPHA(ALPHA_SRC,ALPHA_ZERO,ALPHA_SRC,ALPHA_DST,0x00))
36
37#define GS_FONTM_PAGE_COUNT 8
38
40{
41 u32 size;
42 u32 data;
43 u32 ande;
44 u32 dif;
45 u32 shft;
46 u8 *ptr;
47};
48
52{
53 u32 sig;
54 u32 version;
55 u32 bitsize;
56 u32 baseoffset;
57 u32 num_entries;
58 u32 eof;
59 u32 *offset_table;
60};
61typedef struct gsKit_fontm_header GSFONTMHDR;
62
66struct gsFontM
67{
68 GSTEXTURE *Texture[GS_FONTM_PAGE_COUNT];
69 GSFONTMHDR Header;
70 u32 VramIdx;
71 u8 Align;
72 float Spacing;
73 void *TexBase;
74};
75typedef struct gsFontM GSFONTM;
76
77
78#ifdef __cplusplus
79extern "C" {
80#endif
81
83GSFONTM *gsKit_init_fontm();
85void gsKit_free_fontm(GSGLOBAL *gsGlobal, GSFONTM *gsFontM);
86
87int gsKit_fontm_upload(GSGLOBAL *gsGlobal, GSFONTM *gsFontM);
88int gsKit_fontm_unpack(GSFONTM *gsFontM);
89void gsKit_fontm_unpack_raw(u8 *base, struct gsKit_fontm_unpack *oke);
90void gsKit_fontm_unpack_raw_1(struct gsKit_fontm_unpack *oke);
91void gsKit_fontm_print_scaled(GSGLOBAL *gsGlobal, GSFONTM *gsFontM, float X, float Y, int Z,
92 float scale, unsigned long color, const char *String);
93
94#define gsKit_fontm_print(gsGlobal, gsFontM, X, Y, Z, color, String) \
95 gsKit_fontm_print_scaled(gsGlobal, gsFontM, X, Y, Z, 1.0f, color, String);
96
97#ifdef __cplusplus
98}
99#endif
100
101#endif /* __GSFONT_H__ */
void gsKit_free_fontm(GSGLOBAL *gsGlobal, GSFONTM *gsFontM)
Free Font Object.
Definition gsFontM.c:41
GSFONTM * gsKit_init_fontm()
Create Font Object.
Definition gsFontM.c:29
GSFONTMHDR Header
FONTM Header.
Definition gsFontM.h:69
GSTEXTURE * Texture[GS_FONTM_PAGE_COUNT]
Font Texture Objects.
Definition gsFontM.h:68
u32 VramIdx
FONTM Current Double Buffer Index.
Definition gsFontM.h:70
float Spacing
FONTM Glyph Spacing.
Definition gsFontM.h:72
u8 Align
FONTM Line Alignment.
Definition gsFontM.h:71
void * TexBase
Glyphs Texture Base.
Definition gsFontM.h:73