1#!/usr/bin/python3 2 3import pykms 4 5# This hack makes drm initialize the fbcon, setting up the default connector 6card = pykms.Card() 7card = 0 8 9card = pykms.Card() 10res = pykms.ResourceManager(card) 11conn = res.reserve_connector() 12crtc = res.reserve_crtc(conn) 13mode = conn.get_default_mode() 14 15fb = pykms.DumbFramebuffer(card, mode.hdisplay, mode.vdisplay, "XR24"); 16pykms.draw_test_pattern(fb); 17 18crtc.set_mode(conn, fb, mode) 19 20len=256 21arr = bytearray(len*2*4) 22view = memoryview(arr).cast("H") 23 24for i in range(len): 25 g = round(65535 * pow(i / float(len), 1 / 2.2)) 26 27 view[i * 4 + 0] = g 28 view[i * 4 + 1] = g 29 view[i * 4 + 2] = g 30 view[i * 4 + 3] = 0 31 32gamma = pykms.Blob(card, arr); 33 34crtc.set_prop("GAMMA_LUT", gamma.id) 35 36input("press enter to remove gamma\n") 37 38crtc.set_prop("GAMMA_LUT", 0) 39 40input("press enter to exit\n") 41