sdk-world
v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Toggle main menu visibility
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
39
struct
gsKit_fontm_unpack
40
{
41
u32 size;
42
u32 data;
43
u32 ande;
44
u32 dif;
45
u32 shft;
46
u8 *ptr;
47
};
48
51
struct
gsKit_fontm_header
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
};
61
typedef
struct
gsKit_fontm_header
GSFONTMHDR;
62
66
struct
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
};
75
typedef
struct
gsFontM
GSFONTM;
76
77
78
#ifdef __cplusplus
79
extern
"C"
{
80
#endif
81
83
GSFONTM *
gsKit_init_fontm
();
85
void
gsKit_free_fontm
(GSGLOBAL *
gsGlobal
, GSFONTM *
gsFontM
);
86
87
int
gsKit_fontm_upload(GSGLOBAL *
gsGlobal
, GSFONTM *
gsFontM
);
88
int
gsKit_fontm_unpack
(GSFONTM *
gsFontM
);
89
void
gsKit_fontm_unpack_raw(u8 *base,
struct
gsKit_fontm_unpack
*oke);
90
void
gsKit_fontm_unpack_raw_1(
struct
gsKit_fontm_unpack
*oke);
91
void
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__ */
gsKit_free_fontm
void gsKit_free_fontm(GSGLOBAL *gsGlobal, GSFONTM *gsFontM)
Free Font Object.
Definition
gsFontM.c:41
gsKit_init_fontm
GSFONTM * gsKit_init_fontm()
Create Font Object.
Definition
gsFontM.c:29
gsKit.h
gsFontM
Definition
gsFontM.h:67
gsFontM::Header
GSFONTMHDR Header
FONTM Header.
Definition
gsFontM.h:69
gsFontM::Texture
GSTEXTURE * Texture[GS_FONTM_PAGE_COUNT]
Font Texture Objects.
Definition
gsFontM.h:68
gsFontM::VramIdx
u32 VramIdx
FONTM Current Double Buffer Index.
Definition
gsFontM.h:70
gsFontM::Spacing
float Spacing
FONTM Glyph Spacing.
Definition
gsFontM.h:72
gsFontM::Align
u8 Align
FONTM Line Alignment.
Definition
gsFontM.h:71
gsFontM::TexBase
void * TexBase
Glyphs Texture Base.
Definition
gsFontM.h:73
gsGlobal
Definition
gsInit.h:900
gsKit_fontm_header
Definition
gsFontM.h:52
gsKit_fontm_unpack
Definition
gsFontM.h:40
gskit
include
gsFontM.h
Generated by
1.18.0