#!/usr/bin/python3 import sys import pykms import argparse parser = argparse.ArgumentParser() parser.add_argument("-c", "--connector", default="") parser.add_argument("--dmabuf", action="store_true", help="use dmabuf") parser.add_argument("--omap", action="store_true", help="use omapcard") args = parser.parse_args() if args.omap: card = pykms.OmapCard() else: card = pykms.Card() res = pykms.ResourceManager(card) conn = res.reserve_connector(args.connector) crtc = res.reserve_crtc(conn) plane = res.reserve_generic_plane(crtc) mode = conn.get_default_mode() modeb = mode.to_blob(card) if args.omap: origfb = pykms.OmapFramebuffer(card, mode.hdisplay, mode.vdisplay, "XR24"); else: origfb = pykms.DumbFramebuffer(card, mode.hdisplay, mode.vdisplay, "XR24"); if args.dmabuf: fb = pykms.DmabufFramebuffer(card, origfb.width, origfb.height, origfb.format, [origfb.fd(0)], [origfb.stride(0)], [origfb.offset(0)]) else: fb = origfb pykms.draw_test_pattern(fb); card.disable_planes() req = pykms.AtomicReq(card) req.add_connector(conn, crtc) req.add_crtc(crtc, modeb) req.add_plane(plane, fb, crtc, dst=(0, 0, mode.hdisplay, mode.vdisplay)) req.commit_sync(allow_modeset = True) input("press enter to exit\n")