mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
Gfxprint OK (#826)
* Match last two functions as well as some cleanup * One more small cleanup * Reviews * format * Move internal GFXP_FLAG defines to c file * Format
This commit is contained in:
+6
-6
@@ -3878,7 +3878,7 @@ _DW({ \
|
||||
|
||||
#define gDPLoadTextureBlock_4b(pkt, timg, fmt, width, height, \
|
||||
pal, cms, cmt, masks, maskt, shifts, shiftt) \
|
||||
{ \
|
||||
_DW({ \
|
||||
gDPSetTextureImage(pkt, fmt, G_IM_SIZ_16b, 1, timg); \
|
||||
gDPSetTile(pkt, fmt, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, \
|
||||
cmt, maskt, shiftt, cms, masks, shifts); \
|
||||
@@ -3893,7 +3893,7 @@ _DW({ \
|
||||
gDPSetTileSize(pkt, G_TX_RENDERTILE, 0, 0, \
|
||||
((width)-1) << G_TEXTURE_IMAGE_FRAC, \
|
||||
((height)-1) << G_TEXTURE_IMAGE_FRAC); \
|
||||
}
|
||||
})
|
||||
|
||||
/* Load fix rww 27jun95 */
|
||||
/* The S at the end means odd lines are already word Swapped */
|
||||
@@ -4246,7 +4246,7 @@ _DW({ \
|
||||
#define gDPLoadMultiTile_4b(pkt, timg, tmem, rtile, fmt, width, height, \
|
||||
uls, ult, lrs, lrt, pal, \
|
||||
cms, cmt, masks, maskt, shifts, shiftt) \
|
||||
{ \
|
||||
_DW({ \
|
||||
gDPSetTextureImage(pkt, fmt, G_IM_SIZ_8b, ((width)>>1), timg); \
|
||||
gDPSetTile(pkt, fmt, G_IM_SIZ_8b, \
|
||||
(((((lrs)-(uls)+1)>>1)+7)>>3), tmem, \
|
||||
@@ -4268,7 +4268,7 @@ _DW({ \
|
||||
(ult)<<G_TEXTURE_IMAGE_FRAC, \
|
||||
(lrs)<<G_TEXTURE_IMAGE_FRAC, \
|
||||
(lrt)<<G_TEXTURE_IMAGE_FRAC); \
|
||||
}
|
||||
})
|
||||
|
||||
#define gsDPLoadTextureTile_4b(timg, fmt, width, height, \
|
||||
uls, ult, lrs, lrt, pal, \
|
||||
@@ -4431,7 +4431,7 @@ _DW({ \
|
||||
#ifndef _HW_VERSION_1
|
||||
|
||||
#define gDPLoadTLUT(pkt, count, tmemaddr, dram) \
|
||||
{ \
|
||||
_DW({ \
|
||||
gDPSetTextureImage(pkt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, dram); \
|
||||
gDPTileSync(pkt); \
|
||||
gDPSetTile(pkt, 0, 0, 0, tmemaddr, \
|
||||
@@ -4439,7 +4439,7 @@ _DW({ \
|
||||
gDPLoadSync(pkt); \
|
||||
gDPLoadTLUTCmd(pkt, G_TX_LOADTILE, ((count)-1)); \
|
||||
gDPPipeSync(pkt); \
|
||||
}
|
||||
})
|
||||
|
||||
#else /* **** WORKAROUND hardware 1 load_tlut bug ****** */
|
||||
|
||||
|
||||
+1
-16
@@ -132,22 +132,7 @@ void StackCheck_Cleanup(StackEntry* entry);
|
||||
StackStatus StackCheck_GetState(StackEntry* entry);
|
||||
u32 StackCheck_CheckAll(void);
|
||||
u32 StackCheck_Check(StackEntry* entry);
|
||||
void GfxPrint_InitDlist(GfxPrint* printer);
|
||||
void GfxPrint_SetColor(GfxPrint* printer, u32 r, u32 g, u32 b, u32 a);
|
||||
void GfxPrint_SetPosPx(GfxPrint* printer, s32 x, s32 y);
|
||||
void GfxPrint_SetPos(GfxPrint* printer, s32 x, s32 y);
|
||||
void GfxPrint_SetBasePosPx(GfxPrint* printer, s32 x, s32 y);
|
||||
void GfxPrint_PrintCharImpl(GfxPrint* printer, u8 c);
|
||||
void GfxPrint_PrintChar(GfxPrint* printer, u8 c);
|
||||
void GfxPrint_PrintStringWithSize(GfxPrint* printer, const void* buffer, size_t charSize, size_t charCount);
|
||||
void GfxPrint_PrintString(GfxPrint* printer, const char* str);
|
||||
GfxPrint* GfxPrint_Callback(GfxPrint* printer, const char* str, size_t size);
|
||||
void GfxPrint_Init(GfxPrint* printer);
|
||||
void GfxPrint_Destroy(GfxPrint* printer);
|
||||
void GfxPrint_Open(GfxPrint* printer, Gfx* dList);
|
||||
Gfx* GfxPrint_Close(GfxPrint* printer);
|
||||
s32 GfxPrint_VPrintf(GfxPrint* printer, const char* fmt, va_list args);
|
||||
s32 GfxPrint_Printf(GfxPrint* printer, const char* fmt, ...);
|
||||
|
||||
void MtxConv_F2L(Mtx* m1, MtxF* m2);
|
||||
void MtxConv_L2F(MtxF* m1, Mtx* m2);
|
||||
void __assert(const char* file, u32 lineNum);
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
#ifndef GFXPRINT_H
|
||||
#define GFXPRINT_H
|
||||
|
||||
#include "color.h"
|
||||
#include "PR/gbi.h"
|
||||
#include "PR/ultratypes.h"
|
||||
#include "xstdio.h"
|
||||
|
||||
#define GFXP_UNUSED "\x8E"
|
||||
#define GFXP_UNUSED_CHAR 0x8E
|
||||
#define GFXP_HIRAGANA "\x8D"
|
||||
#define GFXP_HIRAGANA_CHAR 0x8D
|
||||
#define GFXP_KATAKANA "\x8C"
|
||||
#define GFXP_KATAKANA_CHAR 0x8C
|
||||
#define GFXP_RAINBOW_ON "\x8B"
|
||||
#define GFXP_RAINBOW_ON_CHAR 0x8B
|
||||
#define GFXP_RAINBOW_OFF "\x8A"
|
||||
#define GFXP_RAINBOW_OFF_CHAR 0x8A
|
||||
|
||||
typedef struct GfxPrint {
|
||||
/* 0x00 */ PrintCallback callback;
|
||||
/* 0x04 */ Gfx* dList;
|
||||
/* 0x08 */ u16 posX;
|
||||
/* 0x0A */ u16 posY;
|
||||
/* 0x0C */ u16 baseX;
|
||||
/* 0x0E */ u8 baseY;
|
||||
/* 0x0F */ u8 flags;
|
||||
/* 0x10 */ Color_RGBA8_u32 color;
|
||||
/* 0x14 */ UNK_TYPE1 unk_14[0x1C]; // unused
|
||||
} GfxPrint; // size = 0x30
|
||||
|
||||
void GfxPrint_Setup(GfxPrint* printer);
|
||||
void GfxPrint_SetColor(GfxPrint* printer, u32 r, u32 g, u32 b, u32 a);
|
||||
void GfxPrint_SetPosPx(GfxPrint* printer, s32 x, s32 y);
|
||||
void GfxPrint_SetPos(GfxPrint* printer, s32 x, s32 y);
|
||||
void GfxPrint_SetBasePosPx(GfxPrint* printer, s32 x, s32 y);
|
||||
void GfxPrint_PrintCharImpl(GfxPrint* printer, u8 c);
|
||||
void GfxPrint_PrintChar(GfxPrint* printer, u8 c);
|
||||
void GfxPrint_PrintStringWithSize(GfxPrint* printer, const void* buffer, size_t charSize, size_t charCount);
|
||||
void GfxPrint_PrintString(GfxPrint* printer, const char* str);
|
||||
void* GfxPrint_Callback(void* arg, const char* str, size_t size);
|
||||
void GfxPrint_Init(GfxPrint* printer);
|
||||
void GfxPrint_Destroy(GfxPrint* printer);
|
||||
void GfxPrint_Open(GfxPrint* printer, Gfx* dList);
|
||||
Gfx* GfxPrint_Close(GfxPrint* printer);
|
||||
s32 GfxPrint_VPrintf(GfxPrint* printer, const char* fmt, va_list args);
|
||||
s32 GfxPrint_Printf(GfxPrint* printer, const char* fmt, ...);
|
||||
|
||||
#endif
|
||||
+2
-2
@@ -40,8 +40,8 @@ extern UNK_TYPE4 D_80096C30;
|
||||
extern StackEntry* sStackInfoListStart;
|
||||
extern StackEntry* sStackInfoListEnd;
|
||||
// extern UNK_TYPE1 sGfxPrintFontTLUT;
|
||||
// extern UNK_TYPE1 sGfxPrintUnkTLUT;
|
||||
// extern UNK_TYPE1 sGfxPrintUnkData;
|
||||
// extern UNK_TYPE1 sGfxPrintRainbowTLUT;
|
||||
// extern UNK_TYPE1 sGfxPrintRainbowData;
|
||||
// extern UNK_TYPE1 sGfxPrintFontData;
|
||||
// extern UNK_TYPE4 D_80097524;
|
||||
// extern u32 sRandInt;
|
||||
|
||||
+1
-21
@@ -23,6 +23,7 @@
|
||||
#include "sfx.h"
|
||||
#include "message_data_static.h"
|
||||
|
||||
#include "gfxprint.h"
|
||||
#include "sys_matrix.h"
|
||||
#include "z64actor.h"
|
||||
#include "z64animation.h"
|
||||
@@ -416,27 +417,6 @@ typedef struct {
|
||||
/* 0x38 */ FaultDrawerCallback inputCallback;
|
||||
} FaultDrawer; // size = 0x3C
|
||||
|
||||
typedef struct GfxPrint {
|
||||
/* 0x00 */ struct GfxPrint *(*callback)(struct GfxPrint*, const char*, size_t);
|
||||
/* 0x04 */ Gfx* dlist;
|
||||
/* 0x08 */ u16 posX;
|
||||
/* 0x0A */ u16 posY;
|
||||
/* 0x0C */ u16 baseX;
|
||||
/* 0x0E */ u8 baseY;
|
||||
/* 0x0F */ u8 flag;
|
||||
/* 0x10 */ Color_RGBA8_u32 color;
|
||||
/* 0x14 */ char unk_14[0x1C]; // unused
|
||||
} GfxPrint; // size = 0x30
|
||||
|
||||
typedef enum {
|
||||
GFXPRINT_FLAG1 = 1,
|
||||
GFXPRINT_USE_RGBA16 = 2,
|
||||
GFXPRINT_FLAG4 = 4,
|
||||
GFXPRINT_UPDATE_MODE = 8,
|
||||
GFXPRINT_FLAG64 = 0x40,
|
||||
GFXPRINT_OPEN = 0x80
|
||||
} GfxPrintFlag;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 countdown;
|
||||
/* 0x01 */ u8 playSfxEachFrame;
|
||||
|
||||
Reference in New Issue
Block a user