55 lines
1.2 KiB
Python
55 lines
1.2 KiB
Python
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
import math
|
|
|
|
import adafruit_framebuf
|
|
|
|
print("framebuf test will draw to the REPL")
|
|
|
|
WIDTH = 32
|
|
HEIGHT = 8
|
|
|
|
buffer = bytearray(round(WIDTH * math.ceil(HEIGHT / 8)))
|
|
fb = adafruit_framebuf.FrameBuffer(buffer, WIDTH, HEIGHT, buf_format=adafruit_framebuf.MVLSB)
|
|
|
|
|
|
# Ascii printer for very small framebufs!
|
|
def print_buffer(the_fb):
|
|
print("." * (the_fb.width + 2))
|
|
for y in range(the_fb.height):
|
|
print(".", end="")
|
|
for x in range(the_fb.width):
|
|
if fb.pixel(x, y):
|
|
print("*", end="")
|
|
else:
|
|
print(" ", end="")
|
|
print(".")
|
|
print("." * (the_fb.width + 2))
|
|
|
|
|
|
# Small function to clear the buffer
|
|
def clear_buffer():
|
|
for i, _ in enumerate(buffer):
|
|
buffer[i] = 0
|
|
|
|
|
|
print("Shapes test: ")
|
|
fb.pixel(3, 5, True)
|
|
fb.rect(0, 0, fb.width, fb.height, True)
|
|
fb.line(1, 1, fb.width - 2, fb.height - 2, True)
|
|
fb.fill_rect(25, 2, 2, 2, True)
|
|
print_buffer(fb)
|
|
|
|
print("Text test: ")
|
|
# empty
|
|
fb.fill_rect(0, 0, WIDTH, HEIGHT, False)
|
|
|
|
# write some text
|
|
fb.text("hello", 0, 0, True)
|
|
print_buffer(fb)
|
|
clear_buffer()
|
|
|
|
# write some larger text
|
|
fb.text("hello", 8, 0, True, size=2)
|
|
print_buffer(fb)
|