Lines Matching refs:components

100 static String mask_string(const ComponentArray& components) {
102 for (int8_t component : components) {
110 ComponentArray components) {
115 int swizzleSize = components.size();
160 for (int8_t c : components) {
183 for (int8_t c : components) {
202 // Since we know this argument uses components, it should already have at least one
239 ComponentArray components;
242 case '0': components.push_back(SwizzleComponent::ZERO); break;
243 case '1': components.push_back(SwizzleComponent::ONE); break;
244 case 'x': components.push_back(SwizzleComponent::X); break;
245 case 'r': components.push_back(SwizzleComponent::R); break;
246 case 's': components.push_back(SwizzleComponent::S); break;
247 case 'L': components.push_back(SwizzleComponent::UL); break;
248 case 'y': components.push_back(SwizzleComponent::Y); break;
249 case 'g': components.push_back(SwizzleComponent::G); break;
250 case 't': components.push_back(SwizzleComponent::T); break;
251 case 'T': components.push_back(SwizzleComponent::UT); break;
252 case 'z': components.push_back(SwizzleComponent::Z); break;
253 case 'b': components.push_back(SwizzleComponent::B); break;
254 case 'p': components.push_back(SwizzleComponent::P); break;
255 case 'R': components.push_back(SwizzleComponent::UR); break;
256 case 'w': components.push_back(SwizzleComponent::W); break;
257 case 'a': components.push_back(SwizzleComponent::A); break;
258 case 'q': components.push_back(SwizzleComponent::Q); break;
259 case 'B': components.push_back(SwizzleComponent::UB); break;
266 return Convert(context, std::move(base), std::move(components));
269 // Swizzles are complicated due to constant components. The most difficult case is a mask like
294 "too many components in swizzle mask '" + mask_string(inComponents) + "'");
438 ComponentArray components) {
442 SkASSERT(components.count() >= 1 && components.count() <= 4);
447 SkASSERT(std::all_of(components.begin(), components.end(), [](int8_t component) {
457 exprType.toCompound(context, components.size(), /*rows=*/1),
462 if (components.count() == exprType.columns()) {
464 for (int i = 0; i < components.count(); ++i) {
465 if (components[i] != i) {
479 for (int8_t c : components) {
480 combined.push_back(base.components()[c]);
493 // optimized to just `scalar`. The swizzle components don't actually matter, as every field
499 splat.type().componentType().toCompound(context, components.size(), /*rows=*/1),
506 if (auto replacement = optimize_constructor_swizzle(context, ctor, components)) {
512 return std::make_unique<Swizzle>(context, std::move(expr), components);