From 210052906ed7f594fc1167ffb00550142ff0fb3c Mon Sep 17 00:00:00 2001 From: nick black Date: Sun, 7 Mar 2021 19:06:42 -0500 Subject: [PATCH] sixel: write pixelon/off from tcache #1095 --- src/lib/notcurses.c | 4 ++-- src/lib/sixel.c | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/lib/notcurses.c b/src/lib/notcurses.c index 9eb46b05c..8efafd5c5 100644 --- a/src/lib/notcurses.c +++ b/src/lib/notcurses.c @@ -821,10 +821,10 @@ static void init_banner(const notcurses* nc, const char* shortname_term){ if(!nc->suppress_banner){ char prefixbuf[BPREFIXSTRLEN + 1]; - term_fg_palindex(nc, stdout, nc->tcache.colors <= 256 ? 50 % nc->tcache.colors : 0x20e080); + term_fg_palindex(nc, stdout, 50 % nc->tcache.colors); printf("\n notcurses %s by nick black et al", notcurses_version()); printf(" on %s", shortname_term ? shortname_term : "?"); - term_fg_palindex(nc, stdout, nc->tcache.colors <= 256 ? 12 % nc->tcache.colors : 0x2080e0); + term_fg_palindex(nc, stdout, 12 % nc->tcache.colors); if(nc->tcache.cellpixy && nc->tcache.cellpixx){ printf("\n %d rows (%dpx) %d cols (%dpx) (%sB) %d colors", nc->stdplane->leny, nc->tcache.cellpixy, diff --git a/src/lib/sixel.c b/src/lib/sixel.c index daea7eae8..74c7a86ea 100644 --- a/src/lib/sixel.c +++ b/src/lib/sixel.c @@ -161,10 +161,11 @@ write_rle(FILE* fp, int seenrle, unsigned char crle){ // Emit the sprixel in its entirety, plus enable and disable pixel mode. static int -write_sixel_data(FILE* fp, int lenx, sixeltable* stab){ +write_sixel_data(ncplane* n, FILE* fp, int lenx, sixeltable* stab){ + notcurses* nc = ncplane_notcurses(n); // DECSDM (sixel scrolling enable) plus enter sixel mode // FIXME i think we can print DESDM on the first one, and never again - fprintf(fp, "\e[?80h\ePq"); // FIXME pixelon + fprintf(fp, nc->tcache.pixelon); // Set Raster Attributes - pan/pad=1 (pixel aspect ratio), Ph=lenx, Pv=leny // using Ph/Pv causes a background to be drawn using color register 0 for all @@ -209,7 +210,7 @@ write_sixel_data(FILE* fp, int lenx, sixeltable* stab){ } p += lenx; } - fprintf(fp, "\e\\"); // FIXME pixeloff + fprintf(fp, nc->tcache.pixeloff); if(fclose(fp) == EOF){ return -1; } @@ -228,7 +229,7 @@ int sixel_blit_inner(ncplane* nc, int placey, int placex, int lenx, if(fp == NULL){ return -1; } - if(write_sixel_data(fp, lenx, stab)){ + if(write_sixel_data(nc, fp, lenx, stab)){ fclose(fp); free(buf); return -1;