GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
gp_gamma_correction.gen.h
1// SPDX-License-Identifier: GPL-2.1-or-later
2/*
3 * gp_gamma_correction.gen.h
4 *
5 * GENERATED on 2024 04 14 13:01:17 from gp_gamma_correction.gen.h.t
6 *
7 * DO NOT MODIFY THIS FILE DIRECTLY!
8 */
9#ifndef GP_GAMMA_CORRECTION_GEN_H
10#define GP_GAMMA_CORRECTION_GEN_H
11
12/*
13 * Gamma corrections
14 *
15 * Copyright (C) 2012-2014 Cyril Hrubis <metan@ucw.cz>
16 */
17
18extern uint16_t *gp_gamma8_linear10;
19extern uint8_t *gp_linear10_gamma8;
20
21static inline uint16_t gp_gamma1_to_linear10(uint8_t val)
22{
23 return gp_gamma8_linear10[val<<7];
24}
25
26static inline uint16_t gp_gamma2_to_linear10(uint8_t val)
27{
28 return gp_gamma8_linear10[val<<6];
29}
30
31static inline uint16_t gp_gamma3_to_linear10(uint8_t val)
32{
33 return gp_gamma8_linear10[val<<5];
34}
35
36static inline uint16_t gp_gamma4_to_linear10(uint8_t val)
37{
38 return gp_gamma8_linear10[val<<4];
39}
40
41static inline uint16_t gp_gamma5_to_linear10(uint8_t val)
42{
43 return gp_gamma8_linear10[val<<3];
44}
45
46static inline uint16_t gp_gamma6_to_linear10(uint8_t val)
47{
48 return gp_gamma8_linear10[val<<2];
49}
50
51static inline uint16_t gp_gamma7_to_linear10(uint8_t val)
52{
53 return gp_gamma8_linear10[val<<1];
54}
55
56static inline uint16_t gp_gamma8_to_linear10(uint8_t val)
57{
58 return gp_gamma8_linear10[val<<0];
59}
60
61static inline uint8_t gp_linear10_to_gamma1(uint16_t val)
62{
63 return (gp_linear10_gamma8[val] + 64)>>7;
64}
65
66static inline uint8_t gp_linear16_to_gamma1(uint16_t val)
67{
68 return (gp_linear10_gamma8[val>>6] + 64)>>7;
69}
70
71static inline uint8_t gp_linear10_to_gamma2(uint16_t val)
72{
73 return (gp_linear10_gamma8[val] + 32)>>6;
74}
75
76static inline uint8_t gp_linear16_to_gamma2(uint16_t val)
77{
78 return (gp_linear10_gamma8[val>>6] + 32)>>6;
79}
80
81static inline uint8_t gp_linear10_to_gamma3(uint16_t val)
82{
83 return (gp_linear10_gamma8[val] + 16)>>5;
84}
85
86static inline uint8_t gp_linear16_to_gamma3(uint16_t val)
87{
88 return (gp_linear10_gamma8[val>>6] + 16)>>5;
89}
90
91static inline uint8_t gp_linear10_to_gamma4(uint16_t val)
92{
93 return (gp_linear10_gamma8[val] + 8)>>4;
94}
95
96static inline uint8_t gp_linear16_to_gamma4(uint16_t val)
97{
98 return (gp_linear10_gamma8[val>>6] + 8)>>4;
99}
100
101static inline uint8_t gp_linear10_to_gamma5(uint16_t val)
102{
103 return (gp_linear10_gamma8[val] + 4)>>3;
104}
105
106static inline uint8_t gp_linear16_to_gamma5(uint16_t val)
107{
108 return (gp_linear10_gamma8[val>>6] + 4)>>3;
109}
110
111static inline uint8_t gp_linear10_to_gamma6(uint16_t val)
112{
113 return (gp_linear10_gamma8[val] + 2)>>2;
114}
115
116static inline uint8_t gp_linear16_to_gamma6(uint16_t val)
117{
118 return (gp_linear10_gamma8[val>>6] + 2)>>2;
119}
120
121static inline uint8_t gp_linear10_to_gamma7(uint16_t val)
122{
123 return (gp_linear10_gamma8[val] + 1)>>1;
124}
125
126static inline uint8_t gp_linear16_to_gamma7(uint16_t val)
127{
128 return (gp_linear10_gamma8[val>>6] + 1)>>1;
129}
130
131static inline uint8_t gp_linear10_to_gamma8(uint16_t val)
132{
133 return (gp_linear10_gamma8[val] + 0)>>0;
134}
135
136static inline uint8_t gp_linear16_to_gamma8(uint16_t val)
137{
138 return (gp_linear10_gamma8[val>>6] + 0)>>0;
139}
140
141#endif /* GP_GAMMA_CORRECTION_GEN_H */