Lines Matching defs:shader
882 void ClipStack::SaveRecord::addShader(sk_sp<SkShader> shader) {
883 SkASSERT(shader);
886 fShader = std::move(shader);
889 // shader), but since multiplication is associative, we can use kSrcIn blending to make
890 // a new shader that represents 'shader' * 'fShader'
891 fShader = SkShaders::Blend(SkBlendMode::kSrcIn, std::move(shader), fShader);
1213 SkASSERT(!cs.shader());
1220 // Can ignore the shader since the geometry removed everything already
1224 // Geometrically, the draw is unclipped, but can't ignore a shader
1225 return cs.shader() ? GrClip::Effect::kClipped : GrClip::Effect::kUnclipped;
1244 // The clip stack has complex shapes, multiple elements, or a shader; we could
1282 SkASSERT(!cs.shader());
1286 // Convert any clip shader first, since it's not geometrically related to the draw bounds
1288 if (cs.shader()) {
1292 clipFP = as_SB(cs.shader())->asFragmentProcessor(args);
1295 // is multiplied properly with the alpha of the clip shader.
1306 // Geometrically unclipped, but may need to add the shader as a coverage FP
1343 bool scissorIsNeeded = SkToBool(cs.shader());
1519 void ClipStack::clipShader(sk_sp<SkShader> shader) {
1526 this->writableSaveRecord(&wasDeferred).addShader(std::move(shader));
1527 // Masks and geometry elements are not invalidated by updating the clip shader