MCPcopy Create free account
hub / github.com/TranslucentTB/TranslucentTB / GetChannelPixelColor

Function GetChannelPixelColor

Xaml/Controls/colorpickerrendering.cpp:103–175  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

101}
102
103Util::Color GetChannelPixelColor(double channelValue, txmp::ColorChannel channel, txmp::ColorRepresentation representation, Util::HsvColor baseHsvColor, Util::Color baseRgbColor)
104{
105 Util::Color newRgbColor = { 0xFF, 0xFF, 0xFF, 0xFF };
106
107 switch (channel)
108 {
109 case txmp::ColorChannel::Channel1:
110 if (representation == txmp::ColorRepresentation::Hsva)
111 {
112 // Sweep hue
113 baseHsvColor.H = std::clamp(channelValue, 0.0, 360.0);
114 newRgbColor = Util::Color::FromHSV(baseHsvColor);
115 }
116 else
117 {
118 // Sweep red
119 baseRgbColor.R = static_cast<uint8_t>(std::clamp(channelValue, 0.0, 255.0));
120 newRgbColor = baseRgbColor;
121 }
122
123 break;
124
125 case txmp::ColorChannel::Channel2:
126 if (representation == txmp::ColorRepresentation::Hsva)
127 {
128 // Sweep saturation
129 baseHsvColor.S = std::clamp(channelValue, 0.0, 1.0);
130 newRgbColor = Util::Color::FromHSV(baseHsvColor);
131 }
132 else
133 {
134 // Sweep green
135 baseRgbColor.G = static_cast<uint8_t>(std::clamp(channelValue, 0.0, 255.0));
136 newRgbColor = baseRgbColor;
137 }
138
139 break;
140
141 case txmp::ColorChannel::Channel3:
142 if (representation == txmp::ColorRepresentation::Hsva)
143 {
144 // Sweep value
145 baseHsvColor.V = std::clamp(channelValue, 0.0, 1.0);
146 newRgbColor = Util::Color::FromHSV(baseHsvColor);
147 }
148 else
149 {
150 // Sweep blue
151 baseRgbColor.B = static_cast<uint8_t>(std::clamp(channelValue, 0.0, 255.0));
152 newRgbColor = baseRgbColor;
153 }
154
155 break;
156
157 case txmp::ColorChannel::Alpha:
158 if (representation == txmp::ColorRepresentation::Hsva)
159 {
160 // Sweep alpha

Callers 1

FillChannelBitmapFunction · 0.85

Calls 1

PremultiplyMethod · 0.80

Tested by

no test coverage detected