This commit is contained in:
Jcw87
2023-09-30 04:10:06 -07:00
committed by GitHub
parent f5f0e57116
commit 1b5fb60a98
17 changed files with 467 additions and 974 deletions
+49 -7
View File
@@ -16,23 +16,65 @@ typedef struct GDLObj {
extern GDLObj* __GDCurrentDL;
inline void GDSetCurrent(GDLObj* obj) {
__GDCurrentDL = obj;
}
typedef void (*GDOverflowCallback)(void);
void GDInitGDLObj(GDLObj*, u8*, u32);
void GDFlushCurrToMem();
void GDPadCurr32();
void GDOverflowed(void);
inline void __GDWrite(u8 data) {
*__GDCurrentDL->ptr++ = data;
}
inline void GDSetCurrent(GDLObj* obj) {
__GDCurrentDL = obj;
}
inline u32 GDGetGDLObjOffset(GDLObj* obj) {
return (u32)(obj->ptr - obj->start);
}
void GDInitGDLObj(GDLObj*, u8*, u32);
void GDFlushCurrToMem();
void GDPadCurr32();
inline u8* GDGetCurrPointer() {
return __GDCurrentDL->ptr;
}
typedef void (*GDOverflowCallback)(void);
inline s32 GDGetCurrOffset() {
return __GDCurrentDL->ptr - __GDCurrentDL->start;
}
inline void GDSetCurrOffset(s32 offs) {
__GDCurrentDL->ptr = __GDCurrentDL->start + offs;
}
inline void GDAdvCurrOffset(s32 offs) {
__GDCurrentDL->ptr += offs;
}
inline void GDOverflowCheck(u32 len) {
if (__GDCurrentDL->ptr + len > __GDCurrentDL->end) {
GDOverflowed();
}
}
inline void GDWrite_u32(u32 v) {
GDOverflowCheck(4);
__GDWrite((v >> 24) & 0xff);
__GDWrite((v >> 16) & 0xff);
__GDWrite((v >> 8) & 0xff);
__GDWrite((v >> 0) & 0xff);
}
inline void GDWrite_u16(u16 v) {
GDOverflowCheck(2);
__GDWrite(v >> 8);
__GDWrite(v & 0xff);
}
inline void GDWrite_u8(u8 v) {
GDOverflowCheck(1);
__GDWrite(v);
}
#ifdef __cplusplus
};