fbcon_scroll: only defined on linux

pull/2041/head
nick black 3 years ago
parent 51e4f63b25
commit a07a116942
No known key found for this signature in database
GPG Key ID: 5F43400C21CBFACC

@ -1,25 +1,6 @@
#include "linux.h"
#include "internal.h"
void fbcon_scroll(const struct ncpile* p, tinfo* ti, int rows){
if(ti->cellpixy){
return;
}
int totalrows = ti->cellpixy * p->dimy;
int srows = rows * ti->cellpixy; // number of lines being scrolled
uint8_t* targ = ti->linux_fbuffer;
uint8_t* src = ti->linux_fbuffer + srows * ti->cellpixx * p->dimx * 4;
for(int r = 0 ; r < totalrows - srows ; ++r){
memcpy(targ, src, ti->cellpixx * p->dimx * 4);
targ += ti->cellpixx * p->dimx * 4;
src += ti->cellpixx * p->dimx * 4;
}
for(int r = totalrows - srows ; r < totalrows ; ++r){
memset(targ, 0, ti->cellpixx * p->dimx * 4);
targ += ti->cellpixx * p->dimx * 4;
}
}
// auxvecs for framebuffer are 1B each for s->cellpxx * s->cellpxy elements,
// and store the original alpha value.
int fbcon_wipe(sprixel* s, int ycell, int xcell){
@ -211,6 +192,25 @@ int fbcon_draw(const tinfo* ti, const struct ncpile *p, sprixel* s, fbuf* f, int
return wrote;
}
void fbcon_scroll(const struct ncpile* p, tinfo* ti, int rows){
if(ti->cellpixy){
return;
}
int totalrows = ti->cellpixy * p->dimy;
int srows = rows * ti->cellpixy; // number of lines being scrolled
uint8_t* targ = ti->linux_fbuffer;
uint8_t* src = ti->linux_fbuffer + srows * ti->cellpixx * p->dimx * 4;
for(int r = 0 ; r < totalrows - srows ; ++r){
memcpy(targ, src, ti->cellpixx * p->dimx * 4);
targ += ti->cellpixx * p->dimx * 4;
src += ti->cellpixx * p->dimx * 4;
}
for(int r = totalrows - srows ; r < totalrows ; ++r){
memset(targ, 0, ti->cellpixx * p->dimx * 4);
targ += ti->cellpixx * p->dimx * 4;
}
}
// each row is a contiguous set of bits, starting at the msb
static inline size_t
row_bytes(const struct console_font_op* cfo){
@ -698,6 +698,12 @@ int fbcon_draw(const tinfo* ti, const struct ncpile *p, sprixel* s, fbuf* f, int
return 0;
}
void fbcon_scroll(const struct ncpile* p, tinfo* ti, int rows){
(void)p;
(void)ti;
(void)rows;
}
int get_linux_fb_pixelgeom(tinfo* ti, unsigned* ypix, unsigned *xpix){
(void)ti;
(void)ypix;

Loading…
Cancel
Save