| 159 | }; |
| 160 | |
| 161 | static SelectorCoeffs Coeffs(DisplacementMapSource sel) { |
| 162 | // D = displacement input |
| 163 | // C = displacement coverage |
| 164 | static constexpr SelectorCoeffs gCoeffs[] = { |
| 165 | {1, 0, 0, 0, 0, 1, 0}, // kR: D = r, C = a |
| 166 | {0, 1, 0, 0, 0, 1, 0}, // kG: D = g, C = a |
| 167 | {0, 0, 1, 0, 0, 1, 0}, // kB: D = b, C = a |
| 168 | {0, 0, 0, 1, 0, 0, 1}, // kA: D = a, C = 1.0 |
| 169 | {.2126f, .7152f, .0722f, 0, 0, 1, 0}, // kLuminance: D = lum(rgb), C = a |
| 170 | {1, 0, 0, 0, 0, 0, 1}, // kH: D = h, C = 1.0 (HSLA) |
| 171 | {0, 1, 0, 0, 0, 0, 1}, // kL: D = l, C = 1.0 (HSLA) |
| 172 | {0, 0, 1, 0, 0, 0, 1}, // kS: D = s, C = 1.0 (HSLA) |
| 173 | {0, 0, 0, 0, 1, 0, 1}, // kFull: D = 1.0, C = 1.0 |
| 174 | {0, 0, 0, 0, .5f, 0, 1}, // kHalf: D = 0.5, C = 1.0 |
| 175 | {0, 0, 0, 0, 0, 0, 1}, // kOff: D = 0.0, C = 1.0 |
| 176 | }; |
| 177 | const auto i = static_cast<size_t>(sel); |
| 178 | return gCoeffs[i]; |
| 179 | } |
| 180 | |
| 181 | // 0.0: REPEAT |
| 182 | // 1.0: CLAMP_TO_BORDER |