mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
#ifndef JUTDIRECTPRINT_H
|
|
#define JUTDIRECTPRINT_H
|
|
|
|
#include "types.h"
|
|
#include "libc/stdarg.h"
|
|
|
|
#ifdef __cplusplus
|
|
|
|
class JUTDirectPrint {
|
|
private:
|
|
JUTDirectPrint();
|
|
|
|
public:
|
|
static JUTDirectPrint* start();
|
|
void erase(int x, int y, int w, int h);
|
|
void drawChar(int, int, int);
|
|
void drawString(u16 x, u16 y, char* text);
|
|
void drawString_f(u16 x, u16 y, const char* text, ...);
|
|
void changeFrameBuffer(void* framebuffer, u16 w, u16 h);
|
|
void printSub(u16, u16, const char*, va_list, bool); // TODO: Function signature
|
|
void print(u16, u16, const char*, ...);
|
|
|
|
bool isActive() const {
|
|
return mFramebuffer != nullptr;
|
|
}
|
|
void* getFrameBuffer() {
|
|
return mFramebuffer;
|
|
}
|
|
|
|
void changeFrameBuffer(void* fb) {
|
|
changeFrameBuffer(fb, mFbWidth, mFbHeight);
|
|
}
|
|
|
|
static JUTDirectPrint* getManager() {
|
|
return sDirectPrint;
|
|
}
|
|
|
|
private:
|
|
static u8 sAsciiTable[128];
|
|
static u32 sFontData[64];
|
|
static u32 sFontData2[77];
|
|
static JUTDirectPrint* sDirectPrint;
|
|
|
|
void* mFramebuffer; // _00
|
|
u16 mFbWidth; // _04
|
|
u16 mFbHeight; // _06
|
|
u16 mStride; // _08
|
|
size_t mFbSize; // _0C
|
|
u8 _10[0x4]; // _10 - unknown
|
|
u16* mFrameMemory; // _14
|
|
};
|
|
|
|
inline void JUTChangeFrameBuffer(void* buffer, u16 height, u16 width) {
|
|
JUTDirectPrint::getManager()->changeFrameBuffer(buffer, width, height);
|
|
}
|
|
#endif
|
|
|
|
#endif
|