py/gamma.py: Make gamma table calculations more generic
[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 len=256
23 arr = bytearray(len*2*4)
24 view = memoryview(arr).cast("H")
26 for i in range(len):
27     g = round(65535 * pow(i / float(len), 1 / 2.2))
29     view[i * 4 + 0] = g
30     view[i * 4 + 1] = g
31     view[i * 4 + 2] = g
32     view[i * 4 + 3] = 0
34 gamma = pykms.Blob(card, arr);
36 set_prop(crtc, "GAMMA_LUT", gamma.id)
38 input("press enter to remove gamma\n")
40 set_prop(crtc, "GAMMA_LUT", 0)
42 input("press enter to exit\n")