From 0d0ee9b86a217e230f9194e23c453c28e34228e1 Mon Sep 17 00:00:00 2001 From: farisawan-2000 Date: Sat, 19 Dec 2020 14:16:59 -0500 Subject: [PATCH] optimized RDP command execution --- s2d_draw.c | 7 +++++-- s2d_draw.h | 2 ++ s2d_parse.c | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/s2d_draw.c b/s2d_draw.c index a2e571ce..fe34ac4b 100644 --- a/s2d_draw.c +++ b/s2d_draw.c @@ -26,14 +26,17 @@ Gfx s2d_text_init_dl[] = { gsSPEndDisplayList(), }; -void setup_font(int idx) { +void s2d_rdp_init(void) { gDPPipeSync(gdl_head++); gDPSetTextureFilter(gdl_head++, G_TF_POINT); gSPDisplayList(gdl_head++, s2d_text_init_dl); - gDPSetEnvColor(gdl_head++, s2d_red, s2d_green, s2d_blue, s2d_alpha); gDPSetCycleType(gdl_head++, G_CYC_1CYCLE); gDPSetRenderMode(gdl_head++, G_RM_XLU_SPRITE, G_RM_XLU_SPRITE2); gSPObjRenderMode(gdl_head++, G_OBJRM_XLU | G_OBJRM_BILERP); +} + +void setup_font(int idx) { + gDPSetEnvColor(gdl_head++, s2d_red, s2d_green, s2d_blue, s2d_alpha); gSPObjLoadTxtr(gdl_head++, &s2d_tex[idx]); } diff --git a/s2d_draw.h b/s2d_draw.h index 90831305..0257dc8f 100644 --- a/s2d_draw.h +++ b/s2d_draw.h @@ -9,6 +9,8 @@ extern uObjMtx final_mtx, rot_mtx; extern int s2d_red, s2d_green, s2d_blue, s2d_alpha; +extern void s2d_rdp_init(void); + extern void setup_font(int idx); extern void mtx_pipeline(uObjMtx *m, int x, int y); diff --git a/s2d_parse.c b/s2d_parse.c index 9de0df0c..e7f3dc40 100644 --- a/s2d_parse.c +++ b/s2d_parse.c @@ -18,6 +18,8 @@ void s2d_snprint(int x, int y, const char *str, uObjMtx *buf, int len) { if (*p == '\0') return; + s2d_rdp_init(); + // resets parameters s2d_red = s2d_green = s2d_blue = 255; s2d_alpha = 255;