Bitmap_notifyPixelsChanged.cpp 811 B

12345678910111213141516171819
  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=8f463ed17b0ed4fb9c503a0ec71706f9
  5. REG_FIDDLE(Bitmap_notifyPixelsChanged, 256, 20, false, 0) {
  6. void draw(SkCanvas* canvas) {
  7. SkBitmap bitmap;
  8. bitmap.setInfo(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
  9. bitmap.allocPixels();
  10. bitmap.eraseColor(SK_ColorRED);
  11. canvas->scale(16, 16);
  12. canvas->drawBitmap(bitmap, 0, 0);
  13. *(SkPMColor*) bitmap.getPixels() = SkPreMultiplyColor(SK_ColorBLUE);
  14. canvas->drawBitmap(bitmap, 2, 0);
  15. bitmap.notifyPixelsChanged();
  16. *(SkPMColor*) bitmap.getPixels() = SkPreMultiplyColor(SK_ColorGREEN);
  17. canvas->drawBitmap(bitmap, 4, 0);
  18. }
  19. } // END FIDDLE