Lines Matching defs:swizzle

1216         // lvalue cannot simply be read and written via a pointer (e.g. it's a swizzle). We need to
1548 // dst column is smaller, need to swizzle the src column
1646 SpvId swizzle = this->nextId(&argType);
1647 this->writeInstruction(SpvOpCompositeExtract, componentType, swizzle,
1649 this->addColumnEntry(columnType, &currentColumn, &columnIds, rows, swizzle, out);
1939 SkDEBUGFAILF("swizzle accessed nonexistent component %d", (int)component);
2054 const Swizzle& swizzle = expr.as<Swizzle>();
2055 std::unique_ptr<LValue> lvalue = this->getLValue(*swizzle.base(), out);
2056 if (lvalue->applySwizzle(swizzle.components(), type)) {
2061 fContext.fErrors->error(swizzle.fLine, "unable to retrieve lvalue from swizzle");
2063 if (swizzle.components().size() == 1) {
2065 SpvId typeId = this->getPointerType(type, get_storage_class(*swizzle.base()));
2066 SpvId indexId = this->writeLiteral(swizzle.components()[0], *fContext.fTypes.fInt);
2074 return std::make_unique<SwizzleLValue>(*this, base, swizzle.components(),
2075 swizzle.base()->type(), type);
2199 SpvId SPIRVCodeGenerator::writeSwizzle(const Swizzle& swizzle, OutputStream& out) {
2200 SpvId base = this->writeExpression(*swizzle.base(), out);
2201 SpvId result = this->nextId(&swizzle.type());
2202 size_t count = swizzle.components().size();
2204 this->writeInstruction(SpvOpCompositeExtract, this->getType(swizzle.type()), result, base,
2205 swizzle.components()[0], out);
2208 this->writeWord(this->getType(swizzle.type()), out);
2212 for (int component : swizzle.components()) {