@@ -35,25 +35,31 @@ function hsl_to_rgb(h, s, L)
35
35
return _h2rgb (m1 , m2 , h + 1. / 3. ), _h2rgb (m1 , m2 , h ), _h2rgb (m1 , m2 , h - 1. / 3. )
36
36
end
37
37
function idxHelper (idx )
38
- local r ,g ,b = palette .getRGB (idx )
38
+ local ent = projects .current .palette [idx ]
39
+
40
+ local r = ent .r
41
+ local g = ent .g
42
+ local b = ent .b
43
+
39
44
local h ,s ,l = rgt .rgbToHsl (r / 255. ,g / 255. ,b / 255. )
40
45
r ,g ,b = hsl_to_rgb ((h + shift )% 1. ,s ,l )
41
46
return r * 255. // 1 ,g * 255. // 1 ,b * 255. // 1
42
47
end
43
48
function draw ()
49
+ local p = projects .current
44
50
win :baseDraw ()
45
51
if shift ~= nil then
46
- for row = 0 ,palette .rowCnt - 1 do
47
- for idx = 0 ,palette .perRow - 1 do
48
- local r ,g ,b = idxHelper (row * palette .perRow + idx )
52
+ for row = 0 ,p . palette .rowCnt - 1 do
53
+ for idx = 0 ,p . palette .perRow - 1 do
54
+ local r ,g ,b = idxHelper (row * p . palette .perRow + idx + 1 )
49
55
fl .rectf ((idx + 1 )* 16 ,(row + 1 )* 16 ,16 ,16 ,r ,g ,b )
50
56
end
51
57
end
52
- if palette .haveAlt ~= 0 then
53
- for row = 0 ,palette .rowCntAlt - 1 do
54
- for idx = 0 ,palette .perRowAlt - 1 do
55
- local r ,g ,b = idxHelper (row * palette .perRowAlt + idx + palette .cnt )
56
- fl .rectf ((idx + 1 )* 16 + (palette .perRow + 1 )* 16 ,(row + 1 )* 16 ,16 ,16 ,r ,g ,b )
58
+ if p . palette .haveAlt ~= 0 then
59
+ for row = 0 ,p . palette .rowCntAlt - 1 do
60
+ for idx = 0 ,p . palette .perRowAlt - 1 do
61
+ local r ,g ,b = idxHelper (row * p . palette .perRowAlt + idx + p . palette .cnt + 1 )
62
+ fl .rectf ((idx + 1 )* 16 + (p . palette .perRow + 1 )* 16 ,(row + 1 )* 16 ,16 ,16 ,r ,g ,b )
57
63
end
58
64
end
59
65
end
@@ -71,6 +77,7 @@ function btnCB(val)
71
77
end
72
78
local p = projects .current
73
79
if p :have (project .palMask ) then
80
+ local p = projects .current
74
81
win = Fl_Window .new (320 ,200 ,' Shift hue by' )
75
82
win :set_modal ()
76
83
win :setDrawFunction (" draw" )
@@ -88,9 +95,9 @@ if p:have(project.palMask) then
88
95
end
89
96
if ok ~= 0 then
90
97
undo .pushPaletteAll ()
91
- for ent = 0 ,palette . cnt + palette .cntAlt - 1 , 1 do
92
- local r ,g ,b = idxHelper (ent )
93
- palette . setRGB (ent , r ,g ,b )
98
+ for ent = 0 ,p . palette .cntTotal - 1 , 1 do
99
+ local r ,g ,b = idxHelper (ent + 1 )
100
+ p . palette [ ent + 1 ]: setRGB (r ,g ,b )
94
101
end
95
102
palette .fixSliders ()
96
103
rgt .damage ()
0 commit comments