7ecd19de1212f541f9fc412ff0629dedf03f0b33
[android/external-libkmsxx.git] / py / gamma.py
1 #!/usr/bin/python3
3 import pykms
4 from helpers import *
6 # This hack makes drm initialize the fbcon, setting up the default connector
7 card = pykms.Card()
8 card = 0
10 card = pykms.Card()
12 conn = card.get_first_connected_connector()
13 mode = conn.get_default_mode()
14 crtc = conn.get_current_crtc()
15 mode = conn.get_default_mode()
17 fb = pykms.DumbFramebuffer(card, mode.hdisplay, mode.vdisplay, "XR24");
18 pykms.draw_test_pattern(fb);
20 crtc.set_mode(conn, fb, mode)
22 arr = bytearray(256*2*4)
23 view = memoryview(arr).cast("H")
25 for i in range(256):
26     g = round(255 * pow(i / 255.0, 1 / 2.2))
28     view[i * 4 + 0] = g << 8
29     view[i * 4 + 1] = g << 8
30     view[i * 4 + 2] = g << 8
31     view[i * 4 + 3] = 0
33 gamma = pykms.Blob(card, arr);
35 set_prop(crtc, "GAMMA_LUT", gamma.id)
37 input("press enter to remove gamma\n")
39 set_prop(crtc, "GAMMA_LUT", 0)
41 input("press enter to exit\n")