Add a simple and hackish plane scaling test.
authorJyri Sarha <jsarha@ti.com>
Mon, 6 Mar 2017 13:18:12 +0000 (15:18 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 17 Mar 2017 13:07:00 +0000 (15:07 +0200)
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
py/tests/scale.py [new file with mode: 0755]

diff --git a/py/tests/scale.py b/py/tests/scale.py
new file mode 100755 (executable)
index 0000000..0b97051
--- /dev/null
@@ -0,0 +1,60 @@
+#!/usr/bin/python3
+
+import pykms
+import time
+import random
+
+card = pykms.Card()
+res = pykms.ResourceManager(card)
+conn = res.reserve_connector("hdmi")
+crtc = res.reserve_crtc(conn)
+plane = res.reserve_overlay_plane(crtc)
+
+mode = conn.get_default_mode()
+#mode = conn.get_mode(1920, 1080, 60, False)
+
+# Blank framefuffer for primary plane
+fb0 = pykms.DumbFramebuffer(card, mode.hdisplay, mode.vdisplay, "AR24");
+
+crtc.set_mode(conn, fb0, mode)
+
+# Initialize framebuffer for the scaled plane
+fbX = 1920
+fbY = 1080
+fb = pykms.DumbFramebuffer(card, fbX, fbY, "RG16");
+pykms.draw_test_pattern(fb);
+
+# Plane's scaled size and size increments
+W = 72
+H = 54
+Winc = 1
+Hinc = 1
+
+# Plane's position and position increments
+X = 0
+Y = 0
+Xinc = 1
+Yinc = 1
+while True:
+       print("+%d+%d %dx%d" % (X, Y, W, H))
+       crtc.set_plane(plane, fb, X, Y, W, H, 0, 0, fbX, fbY)
+       W = W + Winc
+       H = H + Hinc
+       if (Winc == 1 and W >= mode.hdisplay - X):
+               Winc = -1
+       if (Winc == -1 and W <= fbX/32):
+               Winc = 1
+       if (Hinc == 1 and H >= mode.vdisplay - Y):
+               Hinc = -1
+       if (Hinc == -1 and H <= fbY/32):
+               Hinc = 1
+       X = X + Xinc
+       Y = Y + Yinc
+       if (Xinc == 1 and X >= mode.hdisplay - W):
+               Xinc = -1
+       if (Xinc == -1 and X <= 0):
+               Xinc = 1
+       if (Yinc == 1 and Y >= mode.vdisplay - H):
+               Yinc = -1
+       if (Yinc == -1 and Y <= 0):
+               Yinc = 1