new defines for font changing; regenerated impact/comic sans; dropshadow WIP pixel offset

This commit is contained in:
farisawan-2000
2021-04-20 03:00:55 -04:00
parent bd29ff7f70
commit b41e9ca3bb
8 changed files with 37 additions and 11 deletions

View File

@@ -6,7 +6,7 @@
/**
* SET YOUR FONT NAME HERE
*/
#define FONTNAME impact
#define FONTNAME comicsans
/***********
@@ -29,12 +29,13 @@
#define STR2(x) STR(x)
#define __headername(hd) fonts/hd.h
#define __fontinclude(f) src/s2d_engine/fonts/f.c
#define _FONT_HEADER STR2(__headername(FONTNAME))
#define FONT_C_FILE STR2(__fontinclude(FONTNAME))
#include _FONT_HEADER
// get your font symbols defined here
#define s2d_font GLUE2(FONTNAME, _obj)
#define s2d_dropshadow GLUE2(FONTNAME, _obj_dropshadow)

View File

@@ -1673,8 +1673,8 @@ uObjMtx comicsans_mtx = {
1<<10, 1<<10 /* BaseScaleX, BaseScaleY */
};
uObjSprite comicsans_obj = {
0<<2, 1<<10, 64<<5, 0, /* objX, scaleX, imageW, unused */
0<<2, 1<<10, 64<<5, 0, /* objY, scaleY, imageH, unused */
-32<<2, 1<<10, 64<<5, 0, /* objX, scaleX, imageW, unused */
-32<<2, 1<<10, 64<<5, 0, /* objY, scaleY, imageH, unused */
GS_PIX2TMEM(64, G_IM_SIZ_8b), /* imageStride */
GS_PIX2TMEM(0, G_IM_SIZ_8b), /* imageAdrs */
G_IM_FMT_IA, /* imageFmt */
@@ -1683,8 +1683,8 @@ uObjSprite comicsans_obj = {
0, /* imageFlags */
};
uObjSprite comicsans_obj_dropshadow = {
-32<<2, 1<<10, 64<<5, 0, /* objX, scaleX, imageW, unused */
-32<<2, 1<<10, 64<<5, 0, /* objY, scaleY, imageH, unused */
-24<<2, 1<<10, 64<<5, 0, /* objX, scaleX, imageW, unused */
-24<<2, 1<<10, 64<<5, 0, /* objY, scaleY, imageH, unused */
GS_PIX2TMEM(64, G_IM_SIZ_8b), /* imageStride */
GS_PIX2TMEM(0, G_IM_SIZ_8b), /* imageAdrs */
G_IM_FMT_IA, /* imageFmt */

View File

@@ -1,6 +1,6 @@
#include <PR/ultratypes.h>
#include <PR/gs2dex.h>
extern uObjTxtrBlock_t comicsans_tex[];
extern uObjTxtr comicsans_tex[];
extern uObjMtx comicsans_mtx;
extern uObjSprite comicsans_obj;
extern void call_comicsans_sprite_dl(int idx, int x, int y, uObjMtx *buffer, int buf_idx);
@@ -133,4 +133,4 @@ extern u8 comicsans_tex_125[];
extern u8 comicsans_tex_126[];
extern u8 comicsans_tex_127[];
extern char comicsans_obj_dropshadow[];
extern uObjSprite comicsans_obj_dropshadow;

View File

@@ -1683,8 +1683,8 @@ uObjSprite impact_obj = {
0, /* imageFlags */
};
uObjSprite impact_obj_dropshadow = {
-31<<2, 1<<10, 64<<5, 0, /* objX, scaleX, imageW, unused */
-31<<2, 1<<10, 64<<5, 0, /* objY, scaleY, imageH, unused */
-24<<2, 1<<10, 64<<5, 0, /* objX, scaleX, imageW, unused */
-24<<2, 1<<10, 64<<5, 0, /* objY, scaleY, imageH, unused */
GS_PIX2TMEM(64, G_IM_SIZ_8b), /* imageStride */
GS_PIX2TMEM(0, G_IM_SIZ_8b), /* imageAdrs */
G_IM_FMT_IA, /* imageFmt */

View File

@@ -7,6 +7,8 @@ int myDegrees = 0;
uObjMtx final_mtx, rot_mtx;
int s2d_red = 255, s2d_green = 255, s2d_blue = 255, s2d_alpha = 255;
int drop_shadow = FALSE;
int drop_x = 0;
int drop_y = 0;
Gfx s2d_text_init_dl[] = {
gsDPPipeSync(),
@@ -94,6 +96,12 @@ void draw_s2d_glyph(char c, int x, int y, uObjMtx *mt) {
mtx_pipeline2(mt, x, y);
if (drop_shadow) {
// uObjSprite *tmp = (uObjSprite *)segmented_to_virtual(&s2d_dropshadow);
// uObjSprite *orig = (uObjSprite *)segmented_to_virtual(&s2d_font);
// tmp->s.objX = orig->s.objX + drop_x;
// tmp->s.objY = orig->s.objY + drop_y;
gDPPipeSync(gdl_head++);
gDPSetEnvColor(gdl_head++,
CLAMP_0(s2d_red - 100),

View File

@@ -5,6 +5,8 @@
extern float myScale;
extern int myDegrees;
extern int drop_shadow;
extern int drop_x, drop_y;
extern uObjMtx final_mtx, rot_mtx;
extern int s2d_red, s2d_green, s2d_blue, s2d_alpha;

View File

@@ -82,7 +82,17 @@ static void s2d_snprint(int x, int y, int align, const char *str, uObjMtx *buf,
break;
case CH_DROPSHADOW:
drop_shadow ^= 1;
// WIP: drop shadow custom offset
// TODO: unique offset per string; fix negative offsets
// CH_SKIP(p);
// drop_x = s2d_atoi(p, &p);
// CH_SKIP(p); CH_SKIP(p);
// drop_y = s2d_atoi(p, &p);
// drop_x <<= 2;
// drop_y <<= 2;
break;
case '\n':
line++;
@@ -112,6 +122,8 @@ static void s2d_snprint(int x, int y, int align, const char *str, uObjMtx *buf,
s2d_red = s2d_green = s2d_blue = 255;
s2d_alpha = 255;
drop_shadow = FALSE;
drop_x = 0;
drop_y = 0;
myScale = 1;
myDegrees = 0;
break;
@@ -129,6 +141,9 @@ static void s2d_snprint(int x, int y, int align, const char *str, uObjMtx *buf,
} while (tmp_len < len);
myScale = 1.0f;
myDegrees = 0;
drop_shadow = FALSE;
drop_x = 0;
drop_y = 0;
}
void s2d_print(int x, int y, int align, const char *str, uObjMtx *buf) {

View File

@@ -5,7 +5,7 @@
#define ROTATE "\x81" // ROTATE (degrees) // TODO: maybe add axis?
#define TRANSLATE "\x82" // TRANSLATE (x) (y)
#define COLOR "\x83" // COLOR (r) (g) (b) (a)
#define DROPSHADOW "\x84" // DROPSHADOW (no params)
#define DROPSHADOW "\x84" // DROPSHADOW (no args)
#define BACKGROUND "\x85" // BACKGROUND (w) (h) (alpha)
#define SEPARATOR "\x86"
#define RESET "\x87"