aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/psxgpu/font.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpsn00b/psxgpu/font.c')
-rw-r--r--libpsn00b/psxgpu/font.c47
1 files changed, 44 insertions, 3 deletions
diff --git a/libpsn00b/psxgpu/font.c b/libpsn00b/psxgpu/font.c
index 4c715a9..7a8137c 100644
--- a/libpsn00b/psxgpu/font.c
+++ b/libpsn00b/psxgpu/font.c
@@ -21,14 +21,14 @@ static int _nstreams = 0;
u_short _font_tpage;
u_short _font_clut;
-extern u_char dbugfont[];
+extern u_char _gpu_debug_font[];
void FntLoad(int x, int y) {
RECT pos;
TIM_IMAGE tim;
- GetTimInfo( (u_long*)dbugfont, &tim );
+ GetTimInfo( (const u_long *) _gpu_debug_font, &tim );
// Load font image
pos = *tim.prect;
@@ -223,4 +223,45 @@ char *FntFlush(int id) {
return _stream[id].pribuff;
-} \ No newline at end of file
+}
+
+char *FntSort(u_long *ot, char *pri, int x, int y, const char *text) {
+
+ DR_TPAGE *tpage;
+ SPRT_8 *sprt = (SPRT_8*)pri;
+ int i;
+
+ while( *text != 0 ) {
+
+ i = toupper( *text )-32;
+
+ if( i > 0 ) {
+
+ i--;
+ setSprt8( sprt );
+ setRGB0( sprt, 128, 128, 128 );
+ setXY0( sprt, x, y );
+ setUV0( sprt, (i%16)<<3, (i>>4)<<3 );
+ sprt->clut = _font_clut;
+ addPrim( ot, sprt );
+ sprt++;
+
+ }
+
+ x += 8;
+ text++;
+
+ }
+
+ pri = (char*)sprt;
+
+ tpage = (DR_TPAGE*)pri;
+ tpage->code[0] = _font_tpage;
+ setlen( tpage, 1 );
+ setcode( tpage, 0xe1 );
+ addPrim( ot, pri );
+ pri += sizeof(DR_TPAGE);
+
+ return pri;
+
+}