343 {
344 auto dict = keyContext.dict();
345
347 SkASSERT(gradData.fColorsAndOffsetsProxy);
348
351 gatherer->add(
kNearest, kClampTiling, gradData.fColorsAndOffsetsProxy);
352 }
353
355 switch (gradData.fType) {
356 case SkShaderBase::GradientType::kLinear:
357 codeSnippetID =
361 add_linear_gradient_uniform_data(dict, codeSnippetID, gradData, gatherer);
362 break;
363 case SkShaderBase::GradientType::kRadial:
364 codeSnippetID =
368 add_radial_gradient_uniform_data(dict, codeSnippetID, gradData, gatherer);
369 break;
370 case SkShaderBase::GradientType::kSweep:
371 codeSnippetID =
375 add_sweep_gradient_uniform_data(dict, codeSnippetID, gradData, gatherer);
376 break;
377 case SkShaderBase::GradientType::kConical:
378 codeSnippetID =
382 add_conical_gradient_uniform_data(dict, codeSnippetID, gradData, gatherer);
383 break;
385 default:
386 SkDEBUGFAIL(
"Expected a gradient shader, but it wasn't one.");
387 break;
388 }
389
390 builder->addBlock(codeSnippetID);
391}
#define SkDEBUGFAIL(message)
@ kConicalGradientShader8
@ kSweepGradientShaderTexture
@ kConicalGradientShader4
@ kLinearGradientShaderTexture
@ kConicalGradientShaderTexture
@ kRadialGradientShaderTexture
static constexpr int kNumInternalStorageStops