blob: c30316464eec8e7c25cccee37f062438e25099d5 [file] [log] [blame]
# SPDX-License-Identifier: (GPL-2.0+ OR MIT)
import sys
import struct
maxval = 4095
step = (maxval+1) / 16
with open('3dlut.bin', 'ab')as fb:
for m in range(0,17*17*17+1,2):
d0 = m / 289
d1 = (m - d0*289) / 17
d2 = m - d0*289 - d1*17
data_0 = min(maxval,d2*step) & 0xfff
data_1 = min(maxval, d1*step) & 0xfff
data_2 = min(maxval, d0*step) & 0xfff
d0 = (m+1) / 289
d1 = (m+1 - d0*289) / 17
d2 = m+1 - d0*289 - d1*17
data_3 = min(maxval,d2*step) & 0xfff
data_4 = min(maxval, d1*step) & 0xfff
data_5 = min(maxval, d0*step) & 0xfff
#print(data_0)
#print(data_1)
#print(data_2)
#print(data_3)
#print(data_4)
#print(data_5)
if sys.argv[1] == 'bypass':
combine0 = data_0 | (data_1 << 12)
combine1 = data_2 | (data_3 << 12)
combine2 = data_4 | (data_5 << 12)
else:
combine0 = int(sys.argv[1]) | (int(sys.argv[2]) << 12)
combine1 = int(sys.argv[3]) | (int(sys.argv[1]) << 12)
combine2 = int(sys.argv[2]) | (int(sys.argv[3]) << 12)
#print(combine0)
#print(combine1)
#print(combine2)
#print("---------------------------------")
a = struct.pack('BBBBBBBBB', combine0 & 0xff, (combine0 >> 8) & 0xff, (combine0 >> 16) & 0xff, combine1 & 0xff, (combine1 >> 8) & 0xff, (combine1 >> 16) & 0xff, combine2 & 0xff, (combine2 >> 8) & 0xff, (combine2 >> 16) & 0xff)
fb.write(a)
print('done')