From 5a25ec324e99d36b2cd76834864790531df69b27 Mon Sep 17 00:00:00 2001 From: Darks Date: Sun, 31 May 2020 00:12:26 +0200 Subject: [PATCH] Worked on some tests. Performance should not be a problem o/ --- .gitignore | 8 ++++++++ Makefile | 11 +++++++---- Touhou.g3a | Bin 76392 -> 151996 bytes project.cfg | 6 +++--- src/main.c | 42 ++++++++++++++++++++++++++++++++++++------ 5 files changed, 54 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index f47f8fe..bd44142 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,9 @@ +# Gimp tests files assets-raw/*.xcf + +# Auto-built sprites +*_tmp.png + +# Build directories +build-fx/* +build-cg/* diff --git a/Makefile b/Makefile index 861a60b..aab0bac 100644 --- a/Makefile +++ b/Makefile @@ -66,8 +66,10 @@ src := $(wildcard src/*.[csS] \ src/*/*.[csS] \ src/*/*/*.[csS] \ src/*/*/*/*.[csS]) -assets-fx := $(wildcard assets-fx/*/*) -assets-cg := $(wildcard assets-cg/*/*) +assets-fx := $(wildcard assets-fx/*/*.png \ + assets-fx/*/*/*.png) +assets-cg := $(wildcard assets-cg/*/*.png \ + assets-cg/*/*/*.png) # Object files obj-fx := $(src:%=build-fx/%.o) \ @@ -139,7 +141,7 @@ build-fx/assets/img/%.o: assets-fx/img/% fxconv --bopti-image $< -o $@ $(FXCONVFX) name:img_$(basename $*) $(IMG.$*) build-cg/assets/img/%.o: assets-cg/img/% @ mkdir -p $(dir $@) - fxconv --bopti-image $< -o $@ $(FXCONVCG) name:img_$(basename $*) $(IMG.$*) profile:p4 + fxconv --bopti-image $< -o $@ $(FXCONVCG) name:img_$(notdir $(basename $*)) $(IMG.$*) profile:p4 # Fonts build-fx/assets/fonts/%.o: assets-fx/fonts/% @@ -147,7 +149,8 @@ build-fx/assets/fonts/%.o: assets-fx/fonts/% fxconv -f $< -o $@ $(FXCONVFX) name:font_$(basename $*) $(FONT.$*) build-cg/assets/fonts/%.o: assets-cg/fonts/% @ mkdir -p $(dir $@) - fxconv -f $< -o $@ $(FXCONVCG) name:font_$(basename $*) $(FONT.$*) + fxconv -f $< -o $@ $(FXCONVCG) name:font_$(basename $*) $(FONT.$*) \ + charset:print grid.size:14x14 grid.padding:0 propotional:true profile:p4 # Binaries build-fx/assets/bin/%.o: assets-fx/bin/% diff --git a/Touhou.g3a b/Touhou.g3a index 7a0e4da1b341e338047ddeea4186ef9335dc88dc..ef5e64a3d19d778a9414e6780a970f20c9627afc 100644 GIT binary patch literal 151996 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 literal 76392 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 D6}R}1 diff --git a/project.cfg b/project.cfg index ae722a9..e883742 100644 --- a/project.cfg +++ b/project.cfg @@ -9,7 +9,7 @@ NAME := Touhou # Internal name, should be '@' followed by at most 7 uppercase letters. # WARNING: If this convention is not followed, the add-in might not appear in # the main menu of the calculator! -INTERNAL := TOUHOU +INTERNAL := @TOUHOU # Output file name. The default is to take , replace spaces with dashes, # and add .g1a (or .g3a). You can specify a different folder if you want. @@ -60,8 +60,8 @@ INCLUDE := -I include # Libraries. Add one -l option for each library you are using, and also # suitable -L options if you have library files in custom folders. To use # fxlib, add libfx.a to the project directory and use "-L . -lfx". -LIBS_FX := -LIBS_CG := +LIBS_FX := -lprof +LIBS_CG := -lprof # Base linker flags for the fxSDK, you usually want to keep these. LDFLAGS_FX := -T fx9860g.ld -lgint-fx $(LIBS_FX) -lgint-fx -lgcc diff --git a/src/main.c b/src/main.c index f30ff85..7bf7ff0 100644 --- a/src/main.c +++ b/src/main.c @@ -1,17 +1,47 @@ #include #include +#include + +void draw() { + extern image_t img_battlefield1; + extern image_t img_battlefield2; + extern image_t img_battlefield3; + extern image_t img_bullet3_2; + + prof_clear(0); + prof_enter(0); + + dclear(C_BLACK); + // dimage(0, 0, &img_battlefield1); + // dimage(0, 0, &img_battlefield2); + dimage(0, 0, &img_battlefield3); + + for(int i = 0; i < 2000; i++) { + dimage((i*79) % 216, (i*41) % 216, &img_bullet3_2); + } + + prof_leave(0); + + dprint(300, 10, C_NONE, C_NONE, "%i us", prof_time(0)); + dprint(300, 40, C_WHITE, C_NONE, "%i us", prof_time(0)); + dprint(300, 70, C_BLACK, C_NONE, "%i us", prof_time(0)); + dupdate(); +} int main(void) { - extern image_t img_bg; + extern font_t font_touhou; + prof_init(1, 0); - dclear(C_WHITE); - dtext(1, 1, "Sample fxSDK add-in.", C_BLACK, C_NONE); + // dfont(&font_touhou); - dimage(20, 0, &img_bg); - - dupdate(); + for(int i = 0; i < 100; i++) { + draw(); + } getkey(); + + prof_quit(); + return 1; }