Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Side by Side Diff: src/effects/gradients/SkTwoPointConicalGradient.cpp

Issue 1287263005: change asABitmap to isABitmap on shader (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkTwoPointConicalGradient.h" 8 #include "SkTwoPointConicalGradient.h"
9 #include "SkTwoPointConicalGradient_gpu.h" 9 #include "SkTwoPointConicalGradient_gpu.h"
10 10
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 TwoPtRadialContext rec(twoPointConicalGradient.fRec, srcPt.fX, srcPt .fY, 0, 0); 285 TwoPtRadialContext rec(twoPointConicalGradient.fRec, srcPt.fX, srcPt .fY, 0, 0);
286 (*shadeProc)(&rec, dstC, cache, toggle, 1); 286 (*shadeProc)(&rec, dstC, cache, toggle, 1);
287 287
288 dstX += SK_Scalar1; 288 dstX += SK_Scalar1;
289 toggle = next_dither_toggle(toggle); 289 toggle = next_dither_toggle(toggle);
290 dstC += 1; 290 dstC += 1;
291 } 291 }
292 } 292 }
293 } 293 }
294 294
295 SkShader::BitmapType SkTwoPointConicalGradient::asABitmap(
296 SkBitmap* bitmap, SkMatrix* matrix, SkShader::TileMode* xy) const {
297 SkPoint diff = fCenter2 - fCenter1;
298 SkScalar diffLen = 0;
299
300 if (bitmap) {
301 this->getGradientTableBitmap(bitmap);
302 }
303 if (matrix) {
304 diffLen = diff.length();
305 }
306 if (matrix) {
307 if (diffLen) {
308 SkScalar invDiffLen = SkScalarInvert(diffLen);
309 // rotate to align circle centers with the x-axis
310 matrix->setSinCos(-SkScalarMul(invDiffLen, diff.fY),
311 SkScalarMul(invDiffLen, diff.fX));
312 } else {
313 matrix->reset();
314 }
315 matrix->preTranslate(-fCenter1.fX, -fCenter1.fY);
316 }
317 if (xy) {
318 xy[0] = fTileMode;
319 xy[1] = kClamp_TileMode;
320 }
321 return kTwoPointConical_BitmapType;
322 }
323
324 // Returns the original non-sorted version of the gradient 295 // Returns the original non-sorted version of the gradient
325 SkShader::GradientType SkTwoPointConicalGradient::asAGradient( 296 SkShader::GradientType SkTwoPointConicalGradient::asAGradient(
326 GradientInfo* info) const { 297 GradientInfo* info) const {
327 if (info) { 298 if (info) {
328 commonAsAGradient(info, fFlippedGrad); 299 commonAsAGradient(info, fFlippedGrad);
329 info->fPoint[0] = fCenter1; 300 info->fPoint[0] = fCenter1;
330 info->fPoint[1] = fCenter2; 301 info->fPoint[1] = fCenter2;
331 info->fRadius[0] = fRadius1; 302 info->fRadius[0] = fRadius1;
332 info->fRadius[1] = fRadius2; 303 info->fRadius[1] = fRadius2;
333 if (fFlippedGrad) { 304 if (fFlippedGrad) {
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 str->appendScalar(fCenter2.fY); 406 str->appendScalar(fCenter2.fY);
436 str->append(") radius2: "); 407 str->append(") radius2: ");
437 str->appendScalar(fRadius2); 408 str->appendScalar(fRadius2);
438 str->append(" "); 409 str->append(" ");
439 410
440 this->INHERITED::toString(str); 411 this->INHERITED::toString(str);
441 412
442 str->append(")"); 413 str->append(")");
443 } 414 }
444 #endif 415 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698