Files
Diddy-Kong-Racing/src/printf.h
T

65 lines
2.5 KiB
C
Raw Normal View History

#ifndef _PRINTF_H_
#define _PRINTF_H_
#include "types.h"
#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>
2023-04-12 07:55:53 -04:00
typedef struct TexFontCoords {
u8 u, v;
} TexFontCoords;
2022-11-17 22:25:32 +00:00
#define RENDER_PRINTF_CMD_ARG_BYTE(val) *gDebugPrintBufferEnd = val; gDebugPrintBufferEnd++;
#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.
#define RENDER_PRINTF_CMD_SET_POSITION(x, y) \
2023-01-23 12:54:17 +00:00
u16 tempX, tempY; \
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) \
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
char *_itoa(u64 n, char *outBuffer, u32 radix, s32 useUpperCase);
void func_800B4A08(s32 setting);
void debug_text_init(void);
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);
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, ...);
void debug_text_bounds(void);
void debug_text_origin(void);
void debug_text_newline(void);
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, ...);
#endif