Surface_draw_2.cpp 1.1 KB

123456789101112131415161718192021222324252627
  1. #if 0 // Disabled until updated to use current API.
  2. // Copyright 2019 Google LLC.
  3. // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
  4. #include "tools/fiddle/examples.h"
  5. // HASH=46d9bacf593deaaeabd74ff42f2571a0
  6. REG_FIDDLE(Surface_draw_2, 256, 64, false, 0) {
  7. void draw(SkCanvas* canvas) {
  8. SkPaint paint;
  9. paint.setTextSize(16);
  10. sk_sp<SkSurface> gpuSurface = SkSurface::MakeRasterN32Premul(64, 64);
  11. SkSurfaceCharacterization characterization;
  12. if (!gpuSurface->characterize(&characterization)) {
  13. canvas->drawString("characterization unsupported", 20, 40, paint);
  14. return;
  15. }
  16. // start of threadable work
  17. SkDeferredDisplayListRecorder recorder(characterization);
  18. SkCanvas* subCanvas = recorder.getCanvas();
  19. subCanvas->clear(SK_ColorGREEN);
  20. std::unique_ptr<SkDeferredDisplayList> displayList = recorder.detach();
  21. // end of threadable work
  22. gpuSurface->draw(displayList.get());
  23. sk_sp<SkImage> img = gpuSurface->makeImageSnapshot();
  24. canvas->drawImage(std::move(img), 0, 0);
  25. }
  26. } // END FIDDLE
  27. #endif // Disabled until updated to use current API.