mirror of
https://github.com/kovidgoyal/kitty.git
synced 2024-09-22 03:57:30 +03:00
49 lines
1.0 KiB
Python
Executable File
49 lines
1.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# vim:fileencoding=utf-8
|
|
|
|
import os
|
|
from typing import List
|
|
|
|
|
|
def to_linear(a: float) -> float:
|
|
if a <= 0.04045:
|
|
return a / 12.92
|
|
else:
|
|
return float(pow((a + 0.055) / 1.055, 2.4))
|
|
|
|
|
|
def generate_srgb_lut(line_prefix: str = '') -> List[str]:
|
|
values: List[str] = []
|
|
lines: List[str] = []
|
|
|
|
for i in range(256):
|
|
values.append('{:1.5f}f'.format(to_linear(i / 255.0)))
|
|
|
|
for i in range(16):
|
|
lines.append(line_prefix + ', '.join(values[i * 16:(i + 1) * 16]) + ',')
|
|
|
|
return lines
|
|
|
|
|
|
def generate_srgb_gamma_c() -> str:
|
|
lines: List[str] = []
|
|
|
|
lines.append('// Generated by gen-srgb-lut.py DO NOT edit')
|
|
lines.append('#include "srgb_gamma.h"')
|
|
lines.append('')
|
|
lines.append('const GLfloat srgb_lut[256] = {')
|
|
lines += generate_srgb_lut(' ')
|
|
lines.append('};')
|
|
|
|
return "\n".join(lines)
|
|
|
|
|
|
def main() -> None:
|
|
c = generate_srgb_gamma_c()
|
|
with open(os.path.join('kitty', 'srgb_gamma.c'), 'w') as f:
|
|
f.write(f'{c}\n')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|