9 Commits

Author SHA1 Message Date
klemek 0c5ab7b44e margen v1.0.2 2025-06-04 16:23:25 +02:00
klemek 022b403670 better starting parameters (#2) 2025-06-04 16:22:36 +02:00
klemek 3d384416fa feat: release tool (#3)
* untested release tool

* update PHONY

* show diff and fix v
2025-06-04 16:21:44 +02:00
klemek 61d1b0f7e4 fix: hide broken monochrome (#4) 2025-06-04 16:21:26 +02:00
klemek 2a8c296b63 Merge pull request #5 from klemek/f-time
feat: show generation time
2025-06-04 16:18:27 +02:00
klemek 3146507c62 Merge pull request #6 from klemek/f-var-range
feat: variation range
2025-06-04 16:17:53 +02:00
klemek 112c6738c4 feat: variation range 2025-06-04 16:13:57 +02:00
klemek 8629b2ff05 feat: show generation time 2025-06-04 16:09:19 +02:00
klemek c8ac15891e update TODO list 2025-06-04 15:20:34 +02:00
5 changed files with 45 additions and 15 deletions
+11
View File
@@ -22,3 +22,14 @@ time: build
.PHONY: valgrind
valgrind: build
valgrind --leak-check=full -s ./build/$(TARGET) $(TEST_ARGS)
.PHONY: release
release: clean build time
@echo -n "Version (x.y.z): "
@read VERSION; \
sed -i "s/#define VERSION.*/#define VERSION \"v$$VERSION\"/g" ./src/const.h; \
git add ./src/const.h; \
git diff origin/master; \
git commit -m "$(TARGET) v$$VERSION"; \
git tag v$$VERSION -m "$(TARGET) v$$VERSION"
@echo updated ./src/const.h and tagged version
+3 -2
View File
@@ -35,11 +35,12 @@ options:
-s, --slope slope [0-255] (default: random)
-c, --color base color [0-255,0-255,0-255] (default: random)
-v, --variation base variation [0-255,0-255,0-255] (default: random)
-m, --monochrome black & white generation
```
## TODO
- monochrome
- fix monochrome
- select corner (currently bottom left)
- better starting parameters for convergeance
- add range arg for variation
- add timer
+18 -10
View File
@@ -21,7 +21,9 @@ void print_help(int status_code) {
"[-s=SLOPE] "
"[-c=R,G,B] "
"[--var=R,G,B] "
"[-m]\n\n"
"[-vr=VAR_RANGE]"
// "[-m]"
"\n\n"
"generate a marble-like pattern bitmap image, blazing fast.\n\n"
"options:\n"
" --help show this help message and exit\n"
@@ -33,9 +35,11 @@ void print_help(int status_code) {
" -p, --pixel pixel size (default: random)\n"
" -s, --slope slope [0-255] (default: random)\n"
" -c, --color base color [0-255,0-255,0-255] (default: random)\n"
" -v, --variation base variation [0-255,0-255,0-255] (default: "
" -va, --variation fixed variation [0-255,0-255,0-255] (default: "
"random)\n"
" -m, --monochrome black & white generation");
" -vr, --var-range random variation range [0-255] (default: 30)\n"
// " -m, --monochrome black & white generation\n"
);
exit(status_code);
}
@@ -121,6 +125,8 @@ parameters parse_args(int argc, char **argv) {
params.file_path = "output.bmp";
params.monochrome = false;
unsigned char var_range = 30;
bool size_set = false;
bool slope_set = false;
bool start_set = false;
@@ -171,11 +177,13 @@ parameters parse_args(int argc, char **argv) {
} else if (is_arg(arg, "-c") || is_arg(arg, "--color")) {
parse_color(arg, value, params.start);
start_set = true;
} else if (is_arg(arg, "-v") || is_arg(arg, "--variation")) {
} else if (is_arg(arg, "-va") || is_arg(arg, "--variation")) {
parse_color(arg, value, params.var);
var_set = true;
} else if (is_arg(arg, "-m") || is_arg(arg, "--monochrome")) {
params.monochrome = true;
} else if (is_arg(arg, "-vr") || is_arg(arg, "--var-range")) {
var_range = parse_char(arg, value);
// } else if (is_arg(arg, "-m") || is_arg(arg, "--monochrome")) {
// params.monochrome = true;
} else {
invalid_arg(arg);
}
@@ -189,7 +197,7 @@ parameters parse_args(int argc, char **argv) {
set_seed(params.seed);
if (!size_set) {
params.size = rand_ushort(10) + 3;
params.size = rand_ushort(6) + 6;
}
if (!slope_set) {
@@ -203,9 +211,9 @@ parameters parse_args(int argc, char **argv) {
}
if (!var_set) {
params.var[0] = rand_uchar(20);
params.var[1] = rand_uchar(20);
params.var[2] = rand_uchar(20);
params.var[0] = rand_uchar(var_range);
params.var[1] = rand_uchar(var_range);
params.var[2] = rand_uchar(var_range);
}
return params;
+1 -1
View File
@@ -2,6 +2,6 @@
#define CONST_H
#define NAME "margen"
#define VERSION "v1.0.1"
#define VERSION "v1.0.2"
#endif
+10
View File
@@ -5,6 +5,7 @@
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
parameters global_params;
float slope;
@@ -91,12 +92,21 @@ void clean() {
free(current_line);
}
void print_time(parameters params, clock_t start) {
if (!params.quiet) {
clock_t now = clock();
printf("time: %.3fs\n", (float)(now - start) / CLOCKS_PER_SEC);
}
}
void generate(parameters params) {
if (!params.quiet) {
puts(NAME " " VERSION);
}
clock_t start = clock();
init(params);
bmp_generate(params.width, params.height, color_depth, params.file_path,
generate_bmp_line);
clean();
print_time(params, start);
}