-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcolor.go
103 lines (85 loc) · 2.09 KB
/
color.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package glitch
import "github.com/unitoftime/flow/glm"
var (
White = glm.White
Black = glm.Black
)
// var (
// White = RGBA{1, 1, 1, 1}
// Black = RGBA{0, 0, 0, 1}
// )
// // Premultipled RGBA value scaled from [0, 1.0]
// type RGBA struct {
// R,G,B,A float64
// }
// // TODO - conversion from golang colors
// func FromUint8(r, g, b, a uint8) RGBA {
// return RGBA{
// float64(r) / float64(math.MaxUint8),
// float64(g) / float64(math.MaxUint8),
// float64(b) / float64(math.MaxUint8),
// float64(a) / float64(math.MaxUint8),
// }
// }
// func Alpha(a float64) RGBA {
// return RGBA{a, a, a, a}
// }
// func Greyscale(g float64) RGBA {
// return RGBA{g, g, g, 1.0}
// }
// func FromStraightRGBA(r, g, b float64, a float64) RGBA {
// return RGBA{r * a, g * a, b * a, a}
// }
// func FromNRGBA(c color.NRGBA) RGBA {
// r, g, b, a := c.RGBA()
// return RGBA{
// float64(r) / float64(math.MaxUint16),
// float64(g) / float64(math.MaxUint16),
// float64(b) / float64(math.MaxUint16),
// float64(a) / float64(math.MaxUint16),
// }
// }
// func FromRGBA(c color.RGBA) RGBA {
// return FromUint8(c.R, c.G, c.B, c.A)
// }
// func FromColor(c color.Color) RGBA {
// r, g, b, a := c.RGBA()
// return RGBA{
// float64(r) / float64(math.MaxUint16),
// float64(g) / float64(math.MaxUint16),
// float64(b) / float64(math.MaxUint16),
// float64(a) / float64(math.MaxUint16),
// }
// }
// func (c1 RGBA) Mult(c2 RGBA) RGBA {
// return RGBA{
// c1.R * c2.R,
// c1.G * c2.G,
// c1.B * c2.B,
// c1.A * c2.A,
// }
// }
// func (c1 RGBA) Add(c2 RGBA) RGBA {
// return RGBA{
// c1.R + c2.R,
// c1.G + c2.G,
// c1.B + c2.B,
// c1.A + c2.A,
// }
// }
// func (c RGBA) Desaturate(val float64) RGBA {
// // https://stackoverflow.com/questions/70966873/algorithm-to-desaturate-rgb-color
// i := (c.R + c.G + c.B) / 3
// dr := i - c.R
// dg := i - c.G
// db := i - c.B
// return RGBA{
// c.R + (dr * val),
// c.G + (dg * val),
// c.B + (db * val),
// c.A,
// }
// }
// func (c RGBA) gl() glVec4 {
// return glVec4{float32(c.R), float32(c.G), float32(c.B), float32(c.A)}
// }