X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=svrt_generator.cc;h=90f781d39910722ffd681a7965536512e029b5e0;hb=24368498f3065e8a4be34c5e8e2b68f9d1220f7d;hp=82b7c3b154c009e845b97c81ba4fccd5a3195527;hpb=f542d0542b1e51ca7dd12bc6b96f6a299371ae8d;p=pysvrt.git diff --git a/svrt_generator.cc b/svrt_generator.cc index 82b7c3b..90f781d 100644 --- a/svrt_generator.cc +++ b/svrt_generator.cc @@ -145,22 +145,35 @@ 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, long *labels, + 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(labels[i], &tmp); + int *r = tmp.content; + for(int k = 0; k < Vignette::width * Vignette::height; k++) { + *s++ = *r++; + } } + delete vg; +} + }