468c6f9da1
MONO_xxx is much easier to read if you're not familiar with the code. MVLSB is deprecated but kept for backwards compatibility, for the time being. This patch also updates the associated docs and tests.
111 lines
2.1 KiB
Python
111 lines
2.1 KiB
Python
try:
|
|
import framebuf
|
|
except ImportError:
|
|
print("SKIP")
|
|
import sys
|
|
sys.exit()
|
|
|
|
w = 5
|
|
h = 16
|
|
size = w * h // 8
|
|
buf = bytearray(size)
|
|
maps = {framebuf.MONO_VLSB : 'MONO_VLSB',
|
|
framebuf.MONO_HLSB : 'MONO_HLSB',
|
|
framebuf.MONO_HMSB : 'MONO_HMSB'}
|
|
|
|
for mapping in maps.keys():
|
|
for x in range(size):
|
|
buf[x] = 0
|
|
fbuf = framebuf.FrameBuffer(buf, w, h, mapping)
|
|
print(maps[mapping])
|
|
# access as buffer
|
|
print(memoryview(fbuf)[0])
|
|
|
|
# fill
|
|
fbuf.fill(1)
|
|
print(buf)
|
|
fbuf.fill(0)
|
|
print(buf)
|
|
|
|
# put pixel
|
|
fbuf.pixel(0, 0, 1)
|
|
fbuf.pixel(4, 0, 1)
|
|
fbuf.pixel(0, 15, 1)
|
|
fbuf.pixel(4, 15, 1)
|
|
print(buf)
|
|
|
|
# clear pixel
|
|
fbuf.pixel(4, 15, 0)
|
|
print(buf)
|
|
|
|
# get pixel
|
|
print(fbuf.pixel(0, 0), fbuf.pixel(1, 1))
|
|
|
|
# hline
|
|
fbuf.fill(0)
|
|
fbuf.hline(0, 1, w, 1)
|
|
print('hline', buf)
|
|
|
|
# vline
|
|
fbuf.fill(0)
|
|
fbuf.vline(1, 0, h, 1)
|
|
print('vline', buf)
|
|
|
|
# rect
|
|
fbuf.fill(0)
|
|
fbuf.rect(1, 1, 3, 3, 1)
|
|
print('rect', buf)
|
|
|
|
#fill rect
|
|
fbuf.fill(0)
|
|
fbuf.fill_rect(0, 0, 0, 3, 1) # zero width, no-operation
|
|
fbuf.fill_rect(1, 1, 3, 3, 1)
|
|
print('fill_rect', buf)
|
|
|
|
# line
|
|
fbuf.fill(0)
|
|
fbuf.line(1, 1, 3, 3, 1)
|
|
print('line', buf)
|
|
|
|
# line steep negative gradient
|
|
fbuf.fill(0)
|
|
fbuf.line(3, 3, 2, 1, 1)
|
|
print('line', buf)
|
|
|
|
# scroll
|
|
fbuf.fill(0)
|
|
fbuf.pixel(2, 7, 1)
|
|
fbuf.scroll(0, 1)
|
|
print(buf)
|
|
fbuf.scroll(0, -2)
|
|
print(buf)
|
|
fbuf.scroll(1, 0)
|
|
print(buf)
|
|
fbuf.scroll(-1, 0)
|
|
print(buf)
|
|
fbuf.scroll(2, 2)
|
|
print(buf)
|
|
|
|
# print text
|
|
fbuf.fill(0)
|
|
fbuf.text("hello", 0, 0, 1)
|
|
print(buf)
|
|
fbuf.text("hello", 0, 0, 0) # clear
|
|
print(buf)
|
|
|
|
# char out of font range set to chr(127)
|
|
fbuf.text(str(chr(31)), 0, 0)
|
|
print(buf)
|
|
print()
|
|
|
|
# test invalid constructor, and stride argument
|
|
try:
|
|
fbuf = framebuf.FrameBuffer(buf, w, h, -1, w)
|
|
except ValueError:
|
|
print("ValueError")
|
|
|
|
# test legacy constructor
|
|
fbuf = framebuf.FrameBuffer1(buf, w, h)
|
|
fbuf = framebuf.FrameBuffer1(buf, w, h, w)
|
|
print(framebuf.MVLSB == framebuf.MONO_VLSB)
|