new 'gradients' PoC #920
parent
9b827f22b6
commit
1e334fa63e
@ -0,0 +1,79 @@
|
|||||||
|
#include <unistd.h>
|
||||||
|
#include <locale.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <notcurses/notcurses.h>
|
||||||
|
|
||||||
|
// gradient of 'A's changing color and background changing in reverse
|
||||||
|
static int
|
||||||
|
gradientA(struct notcurses* nc){
|
||||||
|
int dimy, dimx;
|
||||||
|
struct ncplane* stdn = notcurses_stddim_yx(nc, &dimy, &dimx);
|
||||||
|
uint64_t ul = CHANNELS_RGB_INITIALIZER(0, 0, 0, 0xff, 0xff, 0xff);
|
||||||
|
uint64_t ur = CHANNELS_RGB_INITIALIZER(0, 0xff, 0xff, 0xff, 0, 0);
|
||||||
|
uint64_t ll = CHANNELS_RGB_INITIALIZER(0xff, 0, 0, 0, 0xff, 0xff);
|
||||||
|
uint64_t lr = CHANNELS_RGB_INITIALIZER(0xff, 0xff, 0xff, 0, 0, 0);
|
||||||
|
if(ncplane_gradient(stdn, "A", NCSTYLE_NONE, ul, ur, ll, lr, dimy - 1, dimx - 1) <= 0){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if(notcurses_render(nc)){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
sleep(3);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
gradStriations(struct notcurses* nc){
|
||||||
|
int dimy, dimx;
|
||||||
|
struct ncplane* stdn = notcurses_stddim_yx(nc, &dimy, &dimx);
|
||||||
|
uint64_t ul = CHANNELS_RGB_INITIALIZER(0, 0, 0, 0xff, 0xff, 0xff);
|
||||||
|
uint64_t ur = CHANNELS_RGB_INITIALIZER(0, 0xff, 0xff, 0xff, 0, 0);
|
||||||
|
uint64_t ll = CHANNELS_RGB_INITIALIZER(0xff, 0, 0, 0, 0xff, 0xff);
|
||||||
|
uint64_t lr = CHANNELS_RGB_INITIALIZER(0xff, 0xff, 0xff, 0, 0, 0);
|
||||||
|
if(ncplane_gradient(stdn, "▀", NCSTYLE_NONE, ul, ur, ll, lr, dimy - 1, dimx - 1) <= 0){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if(notcurses_render(nc)){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
sleep(3);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// gradient of 'A's changing color and background changing in reverse
|
||||||
|
static int
|
||||||
|
gradHigh(struct notcurses* nc){
|
||||||
|
int dimy, dimx;
|
||||||
|
struct ncplane* stdn = notcurses_stddim_yx(nc, &dimy, &dimx);
|
||||||
|
uint64_t ul = CHANNEL_RGB_INITIALIZER(0, 0, 0);
|
||||||
|
uint64_t ur = CHANNEL_RGB_INITIALIZER(0, 0xff, 0xff);
|
||||||
|
uint64_t ll = CHANNEL_RGB_INITIALIZER(0xff, 0, 0);
|
||||||
|
uint64_t lr = CHANNEL_RGB_INITIALIZER(0xff, 0xff, 0xff);
|
||||||
|
if(ncplane_highgradient(stdn, ul, ur, ll, lr, dimy - 1, dimx - 1) <= 0){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if(notcurses_render(nc)){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
sleep(3);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
if(setlocale(LC_ALL, "") == NULL){
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
struct notcurses_options opts = {
|
||||||
|
.flags = NCOPTION_INHIBIT_SETLOCALE,
|
||||||
|
};
|
||||||
|
struct notcurses* nc = notcurses_init(&opts, NULL);
|
||||||
|
if(nc == NULL){
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
// no short-circuiting, intentional |
|
||||||
|
int ret = gradientA(nc) | gradStriations(nc) | gradHigh(nc);
|
||||||
|
if(notcurses_stop(nc) || ret){
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
Loading…
Reference in New Issue