From 7ec9a3d7e0bd3e3c65617cccfb4c1f11dab4f645 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 22 Nov 2021 22:29:58 +0100 Subject: framebuffer: add scroll function --- src/os/object/framebuffer.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/os/object/framebuffer.cc') diff --git a/src/os/object/framebuffer.cc b/src/os/object/framebuffer.cc index f23cd84..e8b0ee0 100644 --- a/src/os/object/framebuffer.cc +++ b/src/os/object/framebuffer.cc @@ -71,6 +71,19 @@ void Framebuffer::drawAt(unsigned int x, unsigned int y, unsigned int w, unsigne } } +void Framebuffer::scroll() +{ + for (unsigned int pos_x = 0; pos_x < width; pos_x++) { + for (unsigned int pos_y = 1; pos_y < height/8; pos_y++) { + data[pos_x * (height/8) + pos_y - 1] = data[pos_x * (height/8) + pos_y]; + } + data[pos_x * (height/8) + height/8 - 1] = 0; + } + if (fontY >= 8) { + fontY -= 8; + } +} + void Framebuffer::put(char c) { if (font == 0) { @@ -96,7 +109,7 @@ void Framebuffer::put(char c) put('\n'); } if (fontY >= height) { - return; + scroll(); } for (unsigned char i = 0; i < glyph_w; i++) { #ifdef MULTIPASS_ARCH_arduino_nano -- cgit v1.2.3