You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#define_XOPEN_SOURCE/* See feature_test_macros(7) */#include<wchar.h>#include<notcurses/notcurses.h>#include<stdio.h>#include<assert.h>#defineR 0xFF, 0x00, 0x00, 0xFF
#defineG 0x00, 0xFF, 0x00, 0xFF
#defineB 0x00, 0x00, 0xFF, 0xFF
#defineY 0xFF, 0xFF, 0x00, 0xFF
#defineW 0xFF, 0xFF, 0xFF, 0xFF
#define_ 0x00, 0x00, 0x00, 0xFF
#definesmall_bitmap_h 32
#definesmall_bitmap_w 32
staticunsigned charsmall_bitmap[ 4*small_bitmap_h*small_bitmap_w] =
{
W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, _, _, _, _, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, _, _, _, _, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, _, _, _, _, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, _, _, _, _, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, _, _, _, _, _, _, _, _, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, _, _, _, _, _, _, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, _, _, _, _, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, _, _, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, W,
W, B, B, B, B, B, B, B, R, R, R, R, R, R, R, R, Y, Y, Y, Y, Y, Y, Y, Y, G, G, G, G, G, G, G, _,
_, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W, _, W
};
staticintfill_plane_with_color(structncplane*n, uint32_tcolor)
{
uint64_tchannels=0;
uint64_tul, ur, ll, lr;
// Set the background colorncchannels_set_bg_rgb8( &channels,
(color >> 16) &0xFF,
(color >> 8) &0xFF,
color&0xFF);
// Use the same color for all cornersul=ur=ll=lr=channels;
// Fill the plane with the gradient (which is uniform in this case)returnncplane_gradient( n,
0, 0, // offx, offyncplane_dim_y( n), ncplane_dim_x( n),
" ", // Use space to fillNCSTYLE_NONE,
ul, ur, ll, lr);
}
intmain( intargc, char*argv[])
{
structncplane*imageview;
structncplane*std;
structnotcurses*nc;
structncvisual*image;
structncvgeomgeom;
structncvisual_optionsvopts;
structnotcurses_optionsoptions=
{
.flags=NCOPTION_SUPPRESS_BANNERS,
.loglevel=NCLOGLEVEL_WARNING
};
inty;
intx;
unsigned intcontent_w;
unsigned intcontent_h;
nc=notcurses_init( &options, NULL);
std=notcurses_stdplane( nc);
fill_plane_with_color( std, 0x202020);
image=ncvisual_from_rgba( small_bitmap, small_bitmap_h, small_bitmap_w*4, small_bitmap_w);
vopts= (structncvisual_options)
{
.n=std,
.flags=NCVISUAL_OPTION_CHILDPLANE,
.blitter=NCBLIT_PIXEL,
.scaling=NCSCALE_NONE
};
memset( &geom, 0, sizeof( geom));
if( ! ncvisual_geom( nc, image, &vopts, &geom))
{
vopts.y=0;
vopts.x=0;
vopts.begy=0;
vopts.begx=0;
vopts.leny=geom.pixy;
vopts.lenx=geom.pixy;
imageview=ncvisual_blit( nc, image, &vopts);
ncplane_dim_yx( std, &content_h, &content_w);
y= (int) content_h / 2- (int) geom.rcelly / 2;;
x= (int) content_w / 2- (int) geom.rcellx / 2;;
ncplane_move_yx( imageview, y, x);
}
notcurses_render( nc);
notcurses_get_blocking(nc, NULL);
notcurses_stop( nc);
return( 0);
}
Terminals: looks correct in xterm. Looks wrong in terminator and gnome terminal. Looks slightly off in cool retro term.
My guess is xterm is the only one, that does sixel or somesuch properly, and the downgraded blitter has a bug.
project(notcurses VERSION 3.0.11
The text was updated successfully, but these errors were encountered:
Terminals: looks correct in
xterm
. Looks wrong interminator
andgnome terminal
. Looks slightly off incool retro term
.My guess is
xterm
is the only one, that does sixel or somesuch properly, and the downgraded blitter has a bug.The text was updated successfully, but these errors were encountered: