From b2d745834cad05c155c2e8d39e895be3b04befb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?joseLu=C3=ADs?= Date: Wed, 13 Oct 2021 12:00:43 +0200 Subject: [PATCH] add minimal example for #2266 --- src/poc/issue-2266.c | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/poc/issue-2266.c diff --git a/src/poc/issue-2266.c b/src/poc/issue-2266.c new file mode 100644 index 000000000..0da7e82d6 --- /dev/null +++ b/src/poc/issue-2266.c @@ -0,0 +1,51 @@ +#include + +int main(void){ + // init notcurses + struct notcurses_options nopts = { + // .loglevel = NCLOGLEVEL_TRACE, + }; + struct notcurses* nc = notcurses_init(&nopts, NULL); + if(nc == NULL){ + return EXIT_FAILURE; + } + + // fill buffer with random pixels + int x = 2; int y = 2; + size_t bufferlen = y * x * 3; + unsigned char* buffer = malloc(bufferlen); + if(buffer == NULL){ + return -1; + } + for(size_t r = 0 ; r < bufferlen ; ++r){ + buffer[r] = rand() % 256; + buffer[r] = rand() % 256; + } + + // prepare visual + struct ncvisual* ncv = ncvisual_from_rgb_packed(buffer, y, x * 3, x, 0xff); + if(ncv == NULL){ + free(buffer); + return -1; + } + struct ncvisual_options vopts = { + .y = 1, + .blitter = NCBLIT_PIXEL, + }; + + // render visual + struct ncplane* ncvp = ncvisual_render(nc, ncv, &vopts); + if(ncvp == NULL){ + free(buffer); + return -1; + } + notcurses_render(nc); + + // wait for input to clean up & exit + ncinput ni; + notcurses_getc_blocking(nc, &ni); + ncplane_destroy(ncvp); + ncvisual_destroy(ncv); + notcurses_stop(nc); + return EXIT_SUCCESS; +}