10000 remove if, remove +/- 1, add blit test · rsbohn/circuitpython@3c969c4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3c969c4

Browse files
committed
remove if, remove +/- 1, add blit test
1 parent 00a3114 commit 3c969c4

File tree

3 files changed

+86
-11
lines changed

3 files changed

+86
-11
lines changed

shared-bindings/bitmaptools/__init__.c

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,20 +45,11 @@
4545

4646
// This assigns to [0] and [2] because the order is x1, y1, x2, y2
4747
STATIC void bitmaptools_validate_coord_range(int16_t out[3], const mp_arg_val_t in[3], int lim, const qstr what[2]) {
48-
if (lim - 1 > 0) {
49-
out[0] = mp_arg_validate_int_range(mp_arg_validate_type_int(in[0].u_obj, what[0]), 0, lim - 1, what[0]);
50-
} else {
51-
out[0] = mp_arg_validate_type_int(in[0].u_obj, what[0]);
52-
}
53-
48+
out[0] = mp_arg_validate_int_range(mp_arg_validate_type_int(in[0].u_obj, what[0]), 0, lim, what[0]);
5449
if (in[2].u_obj == mp_const_none) {
5550
out[2] = lim;
5651
} else {
57-
if (lim > out[0] + 1) {
58-
out[2] = mp_arg_validate_int_range(mp_arg_validate_type_int(in[2].u_obj, what[1]), out[0] + 1, lim, what[1]);
59-
} else {
60-
out[2] = mp_arg_validate_type_int(in[2].u_obj, what[1]);
61-
}
52+
out[2] = mp_arg_validate_int_range(mp_arg_validate_type_int(in[2].u_obj, what[1]), out[0], lim, what[1]);
6253
}
6354
}
6455

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import displayio
2+
import bitmaptools
3+
4+
src_bmp = displayio.Bitmap(10, 10, 2)
5+
src_bmp.fill(1)
6+
7+
dest_bmp = displayio.Bitmap(10, 10, 2)
8+
dest_bmp.fill(0)
9+
10+
# valid values, non-zero size
11+
bitmaptools.blit(dest_bmp, src_bmp, x=0, y=0, x1=0, y1=0, x2=2, y2=2)
12+
print("blit 1 successful")
13+
14+
# valid values, zero width (no effect)
15+
bitmaptools.blit(dest_bmp, src_bmp, x=5, y=5, x1=1, y1=1, x2=1, y2=6)
16+
print("blit 2 successful")
17+
18+
# valid values, zero height (no effect)
19+
bitmaptools.blit(dest_bmp, src_bmp, x=5, y=5, x1=1, y1=1, x2=2, y2=1)
20+
print("blit 3 successful")
21+
22+
try:
23+
# invalid values, x too large
24+
bitmaptools.blit(dest_bmp, src_bmp, x=20, y=5)
25+
print("blit 4 successful")
26+
except ValueError as e:
27+
print(f"Error: {e}")
28+
29+
try:
30+
# invalid values, y too large
31+
bitmaptools.blit(dest_bmp, src_bmp, x=5, y=25)
32+
print("blit 5 successful")
33+
except ValueError as e:
34+
print(f"Error: {e}")
35+
36+
try:
37+ # invalid values, x2 too large
38+
bitmaptools.blit(dest_bmp, src_bmp, x=5, y=5, x1=0, y1=0, x2=12, y2=5)
39+
print("blit 6 successful")
40+
except ValueError as e:
41+
print(f"Error: {e}")
42+
43+
try:
44+
# invalid values, x2 too small
45+
bitmaptools.blit(dest_bmp, src_bmp, x=5, y=5, x1=3, y1=3, x2=0, y2=5)
46+
print("blit 7 successful")
47+
except ValueError as e:
48+
print(f"Error: {e}")
49+
50+
try:
51+
# invalid values, y2 too small
52+
bitmaptools.blit(dest_bmp, src_bmp, x=5, y=5, x1=3, y1=3, x2=5, y2=0)
53+
print("blit 8 successful")
54+
except ValueError as e:
55+
print(f"Error: {e}")
56+
57+
try:
58+
# invalid values, y2 too large
59+
bitmaptools.blit(dest_bmp, src_bmp, x=5, y=5, x1=3, y1=3, x2=5, y2=20)
60+
print("blit 9 successful")
61+
except ValueError as e:
62+
print(f"Error: {e}")
63+
64+
# import board
65+
# p = displayio.Palette(2)
66+
# p[0] = 0xffffff
67+
# p[1] = 0x0000ff
68+
# dest_tg = displayio.TileGrid(bitmap=dest_bmp, pixel_shader=p)
69+
#
70+
# main_group = displayio.Group(scale=5)
71+
# main_group.append(dest_tg)
72+
#
73+
# board.DISPLAY.root_group = main_group
74+
# while True:
75+
# pass
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
blit 1 successful
2+
blit 2 successful
3+
blit 3 successful
4+
Error: x must be 0-10
5+
Error: y must be 0-10
6+
Error: x2 must be 0-10
7+
Error: x2 must be 3-10
8+
Error: y2 must be 3-10
9+
Error: y2 must be 3-10

0 commit comments

Comments
 (0)
0