From 039bef575547b29ad23c76b538128da641b6c0e9 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Fri, 27 May 2016 11:45:58 +1200 Subject: Initial roughing of custom image location, mandelbrot only --- fractal-gen.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'fractal-gen.c') diff --git a/fractal-gen.c b/fractal-gen.c index 0d2e1a3..c4be171 100644 --- a/fractal-gen.c +++ b/fractal-gen.c @@ -37,6 +37,8 @@ #include #include +struct frame f; + static struct section_generator generators[] = { { "mandelbrot-gen" , &generate_mandelbrot_section }, { "burning-ship-gen" , &generate_burning_ship_section }, @@ -48,6 +50,13 @@ char *ram_units[] = { }; +void +defaultsd(double *who, double def) +{ + if (isnan(*who)) + *who = def; +} + int main(int argc, char **argv) { @@ -129,8 +138,12 @@ main(int argc, char **argv) munmap(sections, sizeof(data_section)*cores); return 1; } + /* FIXME repetition */ sections[i].core = i; sections[i].width = width; + sections[i].parent_frame.top = f.top; + sections[i].parent_frame.left = f.left; + sections[i].parent_frame.scale = f.scale; sections[i].datasize = toalloc; fprintf(stderr, " -> Thread %lu\r", i); pthread_create(§ions[i].thread, NULL, generator, &(sections[i])); @@ -195,20 +208,31 @@ parse_args(int argc, char **argv) clust_id = 0; clust_total = 1; + f.left = nan(""); + f.top = nan(""); + f.scale = nan(""); + /* bail out early if no arguments are supplied */ if (argc <= 1) return 1; - while ( (opt = getopt(argc, argv, "s:i:e:c:t:N:T:")) != -1 ) { + while ( (opt = getopt(argc, argv, "s:i:e:c:t:N:T:x:y:z:")) != -1 ) { switch (opt) { case 's': size = atoi(optarg); break; case 'i': iterat = atoi(optarg); break; case 'e': power = atof(optarg); break; + case 'c': cores = atoi(optarg); break; case 't': thread_mult = atof(optarg); break; + case 'N': clust_id = atoi(optarg); break; case 'T': clust_total = atoi(optarg); break; + + case 'x': f.left = atof(optarg); break; + case 'y': f.top = atof(optarg); break; + case 'z': f.scale = atof(optarg); break; + /* redundant case for '?', but explicitness is best */ case '?': default: -- cgit v1.1 From 7c3082e934b79f26afaa53c8b72cfbaaa76bdae4 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Tue, 31 May 2016 12:53:40 +1200 Subject: Push position+scale changes to burning ship and as a result, remove specific algorithm for lattice bship --- fractal-gen.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'fractal-gen.c') diff --git a/fractal-gen.c b/fractal-gen.c index c4be171..e80c96a 100644 --- a/fractal-gen.c +++ b/fractal-gen.c @@ -41,8 +41,7 @@ struct frame f; static struct section_generator generators[] = { { "mandelbrot-gen" , &generate_mandelbrot_section }, - { "burning-ship-gen" , &generate_burning_ship_section }, - { "burning-ship-lattice-gen" , &generate_burning_ship_lattice_section } + { "burning-ship-gen" , &generate_burning_ship_section } }; char *ram_units[] = { -- cgit v1.1