Difference.cpp 896 B

123456789101112131415161718192021
  1. // Copyright 2019 Google LLC.
  2. // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
  3. #include "tools/fiddle/examples.h"
  4. // HASH=52d2c8d1b9b428de4477b4caa1543a3d
  5. REG_FIDDLE(Difference, 256, 256, false, 5) {
  6. void draw(SkCanvas* canvas) {
  7. canvas->drawImage(image, 0, 0);
  8. canvas->drawImage(image, 128, 0);
  9. canvas->drawImage(image, 0, 128);
  10. canvas->drawImage(image, 128, 128);
  11. SkPaint paint;
  12. paint.setBlendMode(SkBlendMode::kDstATop);
  13. SkColor alphas[] = { SK_ColorBLACK, SK_ColorTRANSPARENT };
  14. SkPoint vert[] = { { 0, 0 }, { 0, 256 } };
  15. paint.setShader(SkGradientShader::MakeLinear(vert, alphas, nullptr, SK_ARRAY_COUNT(alphas),
  16. SkTileMode::kClamp));
  17. canvas->drawPaint(paint);
  18. canvas->clipRect( { 30, 30, 226, 226 } );
  19. canvas->drawColor(0x80bb9977, SkBlendMode::kDifference);
  20. }
  21. } // END FIDDLE