2021-09-13 14:48:05 -04:00
|
|
|
#ifndef _PRINTF_H_
|
|
|
|
|
#define _PRINTF_H_
|
|
|
|
|
|
|
|
|
|
#include "types.h"
|
2022-09-20 09:42:30 -04:00
|
|
|
#include "structs.h"
|
2022-10-21 17:10:16 -06:00
|
|
|
#include "macros.h"
|
2022-03-10 09:01:18 -05:00
|
|
|
#include <PR/gu.h>
|
2021-09-13 14:48:05 -04:00
|
|
|
|
2023-04-12 07:55:53 -04:00
|
|
|
typedef struct TexFontCoords {
|
|
|
|
|
u8 u, v;
|
|
|
|
|
} TexFontCoords;
|
2021-09-13 14:48:05 -04:00
|
|
|
|
2022-11-17 22:25:32 +00:00
|
|
|
#define RENDER_PRINTF_CMD_ARG_BYTE(val) *gDebugPrintBufferEnd = val; gDebugPrintBufferEnd++;
|
2021-09-13 14:48:05 -04:00
|
|
|
#define RENDER_PRINTF_CMD_ARG_SHORT(val) RENDER_PRINTF_CMD_ARG_BYTE(val) RENDER_PRINTF_CMD_ARG_BYTE(val >> 8)
|
|
|
|
|
|
|
|
|
|
#define RENDER_PRINTF_CMD_END RENDER_PRINTF_CMD_ARG_BYTE(0)
|
|
|
|
|
|
|
|
|
|
#define RENDER_PRINTF_CMD_SET_COLOR(red, green, blue, alpha) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(0x81) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(red) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(green) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(blue) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(alpha) \
|
|
|
|
|
RENDER_PRINTF_CMD_END
|
|
|
|
|
|
2023-01-23 12:54:17 +00:00
|
|
|
// This is a bit hacky, but it matches.
|
2021-09-13 14:48:05 -04:00
|
|
|
#define RENDER_PRINTF_CMD_SET_POSITION(x, y) \
|
2023-01-23 12:54:17 +00:00
|
|
|
u16 tempX, tempY; \
|
2021-09-13 14:48:05 -04:00
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(0x82) \
|
2023-01-23 12:54:17 +00:00
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(x & 0xFF) \
|
|
|
|
|
tempX = x >> 8; \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(tempX) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(y & 0xFF) \
|
|
|
|
|
tempY = y >> 8; \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(tempY) \
|
2021-09-13 14:48:05 -04:00
|
|
|
RENDER_PRINTF_CMD_END
|
|
|
|
|
|
|
|
|
|
#define RENDER_PRINTF_CMD_SET_BACKGROUND_COLOR(red, green, blue, alpha) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(0x85) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(red) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(green) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(blue) \
|
|
|
|
|
RENDER_PRINTF_CMD_ARG_BYTE(alpha) \
|
|
|
|
|
RENDER_PRINTF_CMD_END
|
|
|
|
|
|
|
|
|
|
|
2023-10-04 11:57:53 -04:00
|
|
|
char *_itoa(u64 n, char *outBuffer, u32 radix, s32 useUpperCase);
|
2024-04-29 23:15:00 +01:00
|
|
|
void func_800B4A08(s32 setting);
|
|
|
|
|
void debug_text_init(void);
|
2022-02-07 15:22:04 -05:00
|
|
|
void set_render_printf_colour(u8 red, u8 green, u8 blue, u8 alpha);
|
|
|
|
|
void set_render_printf_background_colour(u8 red, u8 green, u8 blue, u8 alpha);
|
2024-04-29 23:15:00 +01:00
|
|
|
void debug_text_background(Gfx **dList, u32 ulx, u32 uly, u32 lrx, u32 lry);
|
|
|
|
|
s32 debug_text_character(Gfx **dList, s32 asciiVal);
|
|
|
|
|
void debug_text_print(Gfx **dList);
|
2023-01-23 12:54:17 +00:00
|
|
|
void set_render_printf_position(u16 x, u16 y);
|
2023-04-12 07:55:53 -04:00
|
|
|
s32 render_printf(const char *format, ...);
|
2024-04-29 23:15:00 +01:00
|
|
|
void debug_text_bounds(void);
|
|
|
|
|
void debug_text_origin(void);
|
|
|
|
|
void debug_text_newline(void);
|
2021-09-13 14:48:05 -04:00
|
|
|
|
2025-05-14 21:22:06 +02:00
|
|
|
s32 func_800B653C(Gfx**, u8*);
|
2023-04-12 07:55:53 -04:00
|
|
|
int vsprintf(char *s, const char *fmt, ...);
|
2021-09-13 14:48:05 -04:00
|
|
|
|
|
|
|
|
#endif
|