From 8fd776182fd375b5880680261d6060750011e607 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Wed, 28 Aug 2024 21:03:32 +0200 Subject: [PATCH] performance test (500FPS) + configurable neighbor check --- Makefile | 11 ++- bin/back | Bin 107264 -> 114016 bytes src/display.c | 22 ++--- src/generation.c | 17 +++- src/generation.h | 2 + src/main.c | 7 +- src/move.c | 3 + src/structure.h | 2 + templates_lv0.txt | 244 ++++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 284 insertions(+), 24 deletions(-) create mode 100644 templates_lv0.txt diff --git a/Makefile b/Makefile index f77cad8..3b547e0 100644 --- a/Makefile +++ b/Makefile @@ -4,17 +4,20 @@ LFLAGS = -lSDL2 -lSDL2_image -lm -lncurses all: bin/back +test-1: bin/back + bin/back templates_lv0.txt 27 0 + test0: bin/back - bin/back templates.txt 47 + bin/back templates.txt 47 1 test1: bin/back - bin/back templates_lv1.txt 14 + bin/back templates_lv1.txt 14 1 test2: bin/back - bin/back templates_lv2.txt 52 + bin/back templates_lv2.txt 52 1 test3: bin/back - bin/back templates_lv3.txt 33 + bin/back templates_lv3.txt 33 1 bin/back: obj/main.o obj/generation.o obj/display.o obj/base.o obj/hash.o obj/move.o mkdir -p bin diff --git a/bin/back b/bin/back index f27538c6d469d3d4554935c31bfebdecba059877..3d7bfcae0f1bcc4f4faf8c46c9cf937c74857f08 100755 GIT binary patch literal 114016 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 JT}N=<>@Pdn>TUo4 delta 44529 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 diff --git a/src/display.c b/src/display.c index ff17c0c..8b8fc32 100644 --- a/src/display.c +++ b/src/display.c @@ -146,24 +146,18 @@ void drawChunkToRenderer(SDL_Renderer* renderer, chunk* ch, int xmin, int xmax, int cuy = 50*(8*ch->chy + i); int cux2 = 50*(8*ch->chx + j+1); int cuy2 = 50*(8*ch->chy + i+1); - if(true) { - if(cur%2 == 1) { - int nxmin = to_int((to_double(cux) - to_double(xmin)) * to_double(__width__)) / (to_double(xmax) - to_double(xmin)) ; - int nymin = to_int((to_double(cuy) - to_double(ymin)) * to_double(__height__)) / (to_double(ymax) - to_double(ymin)) ; - int nxmin2 = to_int((to_double(cux2) - to_double(xmin)) * to_double(__width__)) / (to_double(xmax) - to_double(xmin)) ; - int nymin2 = to_int((to_double(cuy2) - to_double(ymin)) * to_double(__height__)) / (to_double(ymax) - to_double(ymin)) ; - if(abs(ch->chx + ch->chy)%2 == 0) { - placeRectToRenderer(renderer, nxmin, nymin, nxmin2 - nxmin, nymin2 - nymin, 255, 192, 192, SDL_ALPHA_OPAQUE); - } else { - placeRectToRenderer(renderer, nxmin, nymin, nxmin2 - nxmin, nymin2 - nymin, 192, 192, 255, SDL_ALPHA_OPAQUE); - } - }; - cur = cur / 2 ; - } + int nxmin = to_int((to_double(cux) - to_double(xmin)) * to_double(__width__)) / (to_double(xmax) - to_double(xmin)) ; + int nymin = to_int((to_double(cuy) - to_double(ymin)) * to_double(__height__)) / (to_double(ymax) - to_double(ymin)) ; + int nxmin2 = to_int((to_double(cux2) - to_double(xmin)) * to_double(__width__)) / (to_double(xmax) - to_double(xmin)) ; + int nymin2 = to_int((to_double(cuy2) - to_double(ymin)) * to_double(__height__)) / (to_double(ymax) - to_double(ymin)) ; + bool x = abs(ch->chx + ch->chy)%2 == 0 ; + placeRectToRenderer(renderer, nxmin, nymin, nxmin2 - nxmin, nymin2 - nymin, 255-64*(1-x), 192, 255-64*x, SDL_ALPHA_OPAQUE/(1+3*(cur%2 == 0))); + cur = cur / 2 ; } } } } +// branchless goes brrr void drawHashToRenderer(SDL_Renderer* renderer, int chx, int chy, int xmin, int xmax, int ymin, int ymax, int distx, int disty) { if(distx < render_distance && disty < render_distance) { diff --git a/src/generation.c b/src/generation.c index e538418..822313b 100644 --- a/src/generation.c +++ b/src/generation.c @@ -209,6 +209,7 @@ void generate_chunk_all(int cx, int cy) { if(is_compat_with_spins_uno(cx, cy, idx)) { i -= 1; if(i != 0) { + rotateTemplateClockWise(idx); if(k == 3) { idx = (idx+1)%n_configs; k = 0 ; @@ -230,10 +231,7 @@ void generate_chunk_all(int cx, int cy) { } } }; - //printf("generating %d at (%d, %d)...\n", idx, cx, cy); - //print_template(idx); int R = rand()%emptyChance; - //printf("%d/%d\n", R, emptyChance); if(R != 0) { generate_chunk(cx, cy, idx); } else { @@ -346,7 +344,7 @@ void parse_configs(char* filename, int n_conf) { configs[i].id = i; configs[i].eastsig = 0 ; configs[i].westsig = 0 ; - configs[i].checkCompat = true ; + configs[i].checkCompat = doCheck ; configs[i].lines = malloc(sizeof(uint8_t)*8); for(int j = 0; j < 8; j++) { configs[i].lines[j] = 0; @@ -357,7 +355,18 @@ void parse_configs(char* filename, int n_conf) { FILE* ptr = fopen(filename, "r"); FILE* ptr2 = fopen(filename, "r"); + // one pointer for data + // one pointer for counting + for(int k = 0; k < n_conf; k++) { parse_one(ptr, ptr2, k); } +} + +void change_configs(char* new_filename, int n_conf) { + for(int i = 0; i < n_conf; i++) { + free(configs[i].lines); + } + free(configs); + parse_configs(new_filename, n_conf); } \ No newline at end of file diff --git a/src/generation.h b/src/generation.h index 4b635b2..3e0bcb6 100644 --- a/src/generation.h +++ b/src/generation.h @@ -23,4 +23,6 @@ void destroy(); void parse_configs(char* filename, int n_conf); +void change_configs(char* new_filename, int n_conf); + #endif \ No newline at end of file diff --git a/src/main.c b/src/main.c index 98bedf3..c75287f 100644 --- a/src/main.c +++ b/src/main.c @@ -18,15 +18,18 @@ #include "generation.h" #include "move.h" +bool doCheck ; + int main(int argc, char** argv) { - if(argc != 3) { - fprintf(stderr, "usage : bin/back \n"); + if(argc != 4) { + fprintf(stderr, "usage : bin/back \n"); exit(1); }; char* filename = argv[1]; int length = str_to_int(argv[2]); + doCheck = (bool)((int)argv[3][0] - 48); srand(time(NULL)); diff --git a/src/move.c b/src/move.c index 4133680..b956f2e 100644 --- a/src/move.c +++ b/src/move.c @@ -174,6 +174,7 @@ void moveControl(bool* halt) { void moveFunctionMaster(SDL_Renderer* renderer) { bool halt = false ; while(!halt) { + //clock_t start = clock(); moveControl(&halt); resetRenderer(renderer); drawMapToRenderer(renderer, -300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), 300 * 250/zoom + to_int(50 * (8*player_cx + player_x + εx)), -300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy)), 300 * 250/zoom + to_int(50 * (8*player_cy + player_y + εy))); @@ -185,6 +186,8 @@ void moveFunctionMaster(SDL_Renderer* renderer) { drawNumberToRenderer(renderer, digits, to_int(εy*100), 2 * __width__ / 3, 80, 50, 70, 0); updateRenderer(renderer); draw_par += 1 ; + //clock_t end = clock(); + //printf("Time(ms) : %f | FPS : %d\n", 1000.0f * (float)(end - start) / CLOCKS_PER_SEC, (int)(CLOCKS_PER_SEC / (float)(end - start))); usleep(20000); } } \ No newline at end of file diff --git a/src/structure.h b/src/structure.h index b210eb6..05bfae3 100644 --- a/src/structure.h +++ b/src/structure.h @@ -15,6 +15,8 @@ typedef enum cardinal {NORTH, EAST, SOUTH, WEST} cardinal ; extern Grid map ; +extern bool doCheck ; + extern int emptyChance ; extern int sizeIncreaseChance ; diff --git a/templates_lv0.txt b/templates_lv0.txt new file mode 100644 index 0000000..b2a62fe --- /dev/null +++ b/templates_lv0.txt @@ -0,0 +1,244 @@ +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 + +0 0 0 0 0 0 1 0 +0 0 0 0 0 0 1 0 +0 1 1 1 1 1 1 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 0 0 0 0 + +0 0 0 0 0 0 0 0 +1 1 1 1 1 1 1 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 1 1 +0 0 0 0 0 0 0 0 + +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 1 1 1 1 1 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 1 1 0 0 0 +0 0 0 0 0 0 0 0 + +0 0 0 0 0 0 1 0 +0 0 0 0 0 0 1 0 +0 1 1 1 1 1 1 0 +0 0 1 0 0 0 0 0 +0 0 1 0 0 0 0 0 +0 0 1 0 0 0 0 0 +0 0 1 0 0 0 0 0 +0 0 0 0 0 0 0 0 + +0 0 0 0 0 0 1 0 +0 0 0 0 0 0 1 0 +0 1 1 1 1 1 1 0 +0 0 0 0 0 0 1 0 +0 0 0 0 0 0 1 0 +0 0 0 0 0 0 1 0 +0 0 1 1 1 1 1 0 +0 0 0 0 0 0 0 0 + +0 1 1 1 1 1 1 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 1 0 + +0 1 1 1 1 1 1 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 1 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 + +0 1 1 1 1 1 1 0 +0 0 0 0 0 0 0 0 +0 0 0 1 0 0 0 0 +0 0 0 1 0 0 0 0 +0 0 0 1 0 0 0 0 +0 0 0 1 0 0 0 0 +0 0 0 1 0 0 0 0 +0 0 0 1 0 0 0 0 + +0 1 1 1 1 1 1 0 +0 0 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 + +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 1 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 + +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 1 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 + +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 1 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 + +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 1 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 1 1 1 1 0 0 0 + +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 0 0 0 + +0 0 0 0 0 0 0 0 +1 1 1 1 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 0 0 0 0 + +0 0 0 0 0 0 0 0 +1 1 1 1 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 1 +0 0 0 0 1 0 0 1 +0 0 0 0 1 0 0 1 +0 0 0 0 1 0 0 1 +0 0 0 0 0 0 0 1 + +0 0 0 0 0 0 0 0 +1 1 1 1 1 0 0 0 +0 0 0 0 1 0 0 0 +0 0 0 0 1 0 0 1 +0 0 0 0 1 0 0 1 +0 0 0 0 1 0 0 1 +0 1 1 1 1 0 0 1 +0 0 0 0 0 0 0 1 + +1 1 1 1 1 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 1 1 1 1 1 + +1 1 1 1 1 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 1 1 + +1 1 1 1 1 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 0 0 +0 0 1 0 0 0 0 0 +0 0 1 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 1 1 1 1 1 + +1 1 1 1 1 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 1 1 1 1 1 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 1 +0 0 0 0 0 0 0 1 +0 1 1 1 1 1 1 1 + +1 1 1 1 1 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 0 0 1 0 0 +0 0 0 1 1 1 1 1 + +1 1 1 1 1 0 0 0 +0 0 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 1 1 1 1 1 + +1 1 1 1 1 1 1 1 +0 0 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 1 1 1 1 1 + +1 1 1 1 1 0 0 0 +0 0 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 1 1 1 1 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 1 1 1 1 1 + +1 1 1 1 1 1 1 1 +0 0 0 0 0 0 0 0 +0 1 0 0 1 0 0 0 +0 1 0 0 1 0 0 0 +0 1 0 0 1 1 0 0 +0 1 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 +0 1 0 1 1 1 1 1 + +$ \ No newline at end of file