X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=svrt_generator.cc;h=80cfd1202fb13d32ebda1bbb2fbb3ee4d8efb168;hb=44bd6cf57f00009c7049dcd3e5600f12f2f41de5;hp=82b7c3b154c009e845b97c81ba4fccd5a3195527;hpb=f542d0542b1e51ca7dd12bc6b96f6a299371ae8d;p=pysvrt.git diff --git a/svrt_generator.cc b/svrt_generator.cc index 82b7c3b..80cfd12 100644 --- a/svrt_generator.cc +++ b/svrt_generator.cc @@ -145,22 +145,34 @@ VignetteGenerator *new_generator(int nb) { extern "C" { - struct VignetteSet { - int n_problem; - int nb_vignettes; - int width; - int height; - unsigned char *data; - }; - - void svrt_generate_vignettes(int n_problem, int nb_vignettes, VignetteSet *result) { - VignetteGenerator *vg = new_generator(n_problem); - result->n_problem = n_problem; - result->nb_vignettes = nb_vignettes; - result->width = Vignette::width; - result->height = Vignette::height; - result->data = (unsigned char *) malloc(sizeof(unsigned char) * result->nb_vignettes * result->width * result->height); - delete vg; +struct VignetteSet { + int n_problem; + int nb_vignettes; + int width; + int height; + unsigned char *data; +}; + +void svrt_generate_vignettes(int n_problem, int nb_vignettes, VignetteSet *result) { + Vignette tmp; + + VignetteGenerator *vg = new_generator(n_problem); + result->n_problem = n_problem; + result->nb_vignettes = nb_vignettes; + result->width = Vignette::width; + result->height = Vignette::height; + result->data = (unsigned char *) malloc(sizeof(unsigned char) * result->nb_vignettes * result->width * result->height); + + unsigned char *s = result->data; + for(int i = 0; i < nb_vignettes; i++) { + vg->generate(drand48() < 0.5 ? 1 : 0, &tmp); + int *r = tmp.content; + for(int k = 0; k < Vignette::width * Vignette::height; k++) { + *s++ = *r++; + } } + delete vg; +} + }