]> git.lizzy.rs Git - plan9front.git/blob - sys/src/9/bitsy/gamma.c
merge
[plan9front.git] / sys / src / 9 / bitsy / gamma.c
1 #include <u.h>
2 #include <libc.h>
3 #include <stdio.h>
4
5 double  gamma = 1.6;
6
7 int
8 remap5(int i)
9 {
10         double v;
11
12         v = (double)i/31.0;
13         return 31.0*pow(v, gamma);
14 }
15
16 int
17 remap6(int i)
18 {
19         double v;
20
21         v = (double)i/63.0;
22         return 63.0*pow(v, gamma);
23 }
24
25 int
26 remap(int i)
27 {
28         int r, g, b;
29
30         b = i & 0x1F;
31         g = (i>>5) & 0x3F;
32         r = (i>>11) & 0x1F;
33         return (remap5(r)<<11) | (remap6(g)<<5) | (remap5(b)<<0);
34 }
35
36 void
37 main(void)
38 {
39         int i;
40
41         printf("/* gamma = %.2f */\n", gamma);
42         printf("ushort gamma[65536] = {\n");
43         for(i=0; i<65536; i++){
44                 if((i%8) == 0)
45                         printf("\t");
46                 printf("0x%.4x, ", remap(i));
47                 if((i%8) == 7)
48                         printf("\n");
49         }
50         printf("};\n");
51 }