MCPcopy Create free account
hub / github.com/LibreSprite/LibreSprite / operator()

Method operator()

src/doc/sort_palette.cpp:42–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40 }
41
42 bool operator()(const PalEntryWithIndex& a, const PalEntryWithIndex& b) {
43 color_t c1 = a.color;
44 color_t c2 = b.color;
45 int value1 = 0, value2 = 0;
46
47 switch (channel) {
48
49 case SortPaletteBy::RED:
50 value1 = rgba_getr(c1);
51 value2 = rgba_getr(c2);
52 break;
53
54 case SortPaletteBy::GREEN:
55 value1 = rgba_getg(c1);
56 value2 = rgba_getg(c2);
57 break;
58
59 case SortPaletteBy::BLUE:
60 value1 = rgba_getb(c1);
61 value2 = rgba_getb(c2);
62 break;
63
64 case SortPaletteBy::ALPHA:
65 value1 = rgba_geta(c1);
66 value2 = rgba_geta(c2);
67 break;
68
69 case SortPaletteBy::HUE:
70 case SortPaletteBy::SATURATION:
71 case SortPaletteBy::VALUE: {
72 Hsv hsv1(Rgb(rgba_getr(c1),
73 rgba_getg(c1),
74 rgba_getb(c1)));
75 Hsv hsv2(Rgb(rgba_getr(c2),
76 rgba_getg(c2),
77 rgba_getb(c2)));
78
79 switch (channel) {
80 case SortPaletteBy::HUE:
81 value1 = hsv1.hueInt();
82 value2 = hsv2.hueInt();
83 break;
84 case SortPaletteBy::SATURATION:
85 value1 = hsv1.saturationInt();
86 value2 = hsv2.saturationInt();
87 break;
88 case SortPaletteBy::VALUE:
89 value1 = hsv1.valueInt();
90 value2 = hsv2.valueInt();
91 break;
92 default:
93 ASSERT(false);
94 break;
95 }
96 break;
97 }
98
99 case SortPaletteBy::LIGHTNESS: {

Callers

nothing calls this directly

Calls 9

rgba_getrFunction · 0.85
rgba_getgFunction · 0.85
rgba_getbFunction · 0.85
rgba_getaFunction · 0.85
rgb_lumaFunction · 0.85
hueIntMethod · 0.80
saturationIntMethod · 0.80
valueIntMethod · 0.80
RgbClass · 0.50

Tested by

no test coverage detected