Lines Matching defs:const
14 Sk4f pack_color(const SkColor4f& c4f, bool premul, const Sk4f& component_scale) {
31 IntervalIterator(const SkGradientShaderBase& shader, bool reverse)
39 void iterate(const SkColor4f* colors,
40 std::function<void(const SkColor4f&, const SkColor4f&,
41 SkScalar, SkScalar)> func) const {
47 const int end = fBegin + fAdvance * (fShader.fColorCount - 1);
52 const int curr = prev + fAdvance;
55 const SkScalar currPos = fShader.fOrigPos[curr];
67 void iterateImplicitPos(const SkColor4f* colors,
68 std::function<void(const SkColor4f&, const SkColor4f&,
69 SkScalar, SkScalar)> func) const {
73 const SkScalar dt = fAdvance * SK_Scalar1 / (fShader.fColorCount - 1);
74 const int end = fBegin + fAdvance * (fShader.fColorCount - 2);
79 const int curr = prev + fAdvance;
82 const SkScalar currPos = prevPos + dt;
92 const SkGradientShaderBase& fShader;
93 const SkScalar fFirstPos;
94 const int fBegin;
95 const int fAdvance;
98 void addMirrorIntervals(const SkGradientShaderBase& shader,
99 const SkColor4f* colors,
100 const Sk4f& componentScale,
103 const IntervalIterator iter(shader, reverse);
104 iter.iterate(colors, [&] (const SkColor4f& c0, const SkColor4f& c1, SkScalar t0, SkScalar t1) {
107 const auto mirror_t0 = 2 - t0;
108 const auto mirror_t1 = 2 - t1;
120 Sk4fGradientInterval::Sk4fGradientInterval(const Sk4f& c0, SkScalar t0,
121 const Sk4f& c1, SkScalar t1)
128 const auto dt = t1 - t0;
133 const Sk4f dc = SkScalarIsFinite(dt) ? (c1 - c0) / dt : 0;
134 const Sk4f bias = c0 - (SkScalarIsFinite(t0) ? t0 * dc : 0);
140 void Sk4fGradientIntervalBuffer::init(const SkGradientShaderBase& shader, SkColorSpace* dstCS,
184 const auto count = shader.fColorCount;
190 const Sk4f componentScale = premulColors
193 const int first_index = reverse ? count - 1 : 0;
194 const int last_index = count - 1 - first_index;
195 const SkScalar first_pos = reverse ? SK_Scalar1 : 0;
196 const SkScalar last_pos = SK_Scalar1 - first_pos;
203 const Sk4f clamp_color = pack_color(xformedColors.fColors[first_index],
205 const SkScalar clamp_pos = reverse ? SK_ScalarInfinity : SK_ScalarNegativeInfinity;
214 const IntervalIterator iter(shader, reverse);
216 [&] (const SkColor4f& c0, const SkColor4f& c1, SkScalar t0, SkScalar t1) {
225 const Sk4f clamp_color = pack_color(xformedColors.fColors[last_index],
227 const SkScalar clamp_pos = reverse ? SK_ScalarNegativeInfinity : SK_ScalarInfinity;
237 const Sk4fGradientInterval* Sk4fGradientIntervalBuffer::find(SkScalar t) const {
239 const auto* i0 = fIntervals.begin();
240 const auto* i1 = fIntervals.end() - 1;
246 const auto* i = i0 + ((i1 - i0) >> 1);
259 const Sk4fGradientInterval* Sk4fGradientIntervalBuffer::findNext(
260 SkScalar t, const Sk4fGradientInterval* prev, bool increasing) const {
266 const auto* i = prev;
290 GradientShaderBase4fContext::GradientShaderBase4fContext(const SkGradientShaderBase& shader,
291 const ContextRec& rec)
296 const SkMatrix& inverse = this->getTotalInverse();
311 GradientShaderBase4fContext::isValid() const {