Unify ShadowUtils interface
[platform/upstream/libSkiaSharp.git] / gm / srcmode.cpp
index ec2673f..e43933c 100644 (file)
@@ -6,30 +6,26 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
+#include "SkPath.h"
 #include "SkSurface.h"
 
-#if SK_SUPPORT_GPU
-    #include "SkGpuDevice.h"
-#endif
-
 #define W   SkIntToScalar(80)
 #define H   SkIntToScalar(60)
 
 typedef void (*PaintProc)(SkPaint*);
 
 static void identity_paintproc(SkPaint* paint) {
-    paint->setShader(NULL);
+    paint->setShader(nullptr);
 }
 
 static void gradient_paintproc(SkPaint* paint) {
     const SkColor colors[] = { SK_ColorGREEN, SK_ColorBLUE };
     const SkPoint pts[] = { { 0, 0 }, { W, H } };
-    SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL,
-                                                 SK_ARRAY_COUNT(colors),
-                                                 SkShader::kClamp_TileMode);
-    paint->setShader(s)->unref();
+    paint->setShader(SkGradientShader::MakeLinear(pts, colors, nullptr, SK_ARRAY_COUNT(colors),
+                                                  SkShader::kClamp_TileMode));
 }
 
 typedef void (*Proc)(SkCanvas*, const SkPaint&);
@@ -57,7 +53,7 @@ static void draw_oval(SkCanvas* canvas, const SkPaint& paint) {
 static void draw_text(SkCanvas* canvas, const SkPaint& paint) {
     SkPaint p(paint);
     p.setTextSize(H/4);
-    canvas->drawText("Hamburge", 8, 0, H*2/3, p);
+    canvas->drawString("Hamburge", 0, H*2/3, p);
 }
 
 class SrcModeGM : public skiagm::GM {
@@ -87,8 +83,8 @@ protected:
             draw_hair, draw_thick, draw_rect, draw_oval, draw_text
         };
 
-        const SkXfermode::Mode modes[] = {
-            SkXfermode::kSrcOver_Mode, SkXfermode::kSrc_Mode, SkXfermode::kClear_Mode
+        const SkBlendMode modes[] = {
+            SkBlendMode::kSrcOver, SkBlendMode::kSrc, SkBlendMode::kClear
         };
 
         const PaintProc paintProcs[] = {
@@ -101,7 +97,7 @@ protected:
             for (size_t i = 0; i < SK_ARRAY_COUNT(paintProcs); ++i) {
                 paintProcs[i](&paint);
                 for (size_t x = 0; x < SK_ARRAY_COUNT(modes); ++x) {
-                    paint.setXfermodeMode(modes[x]);
+                    paint.setBlendMode(modes[x]);
                     canvas->save();
                     for (size_t y = 0; y < SK_ARRAY_COUNT(procs); ++y) {
                         procs[y](canvas, paint);
@@ -116,7 +112,7 @@ protected:
         }
     }
 
-    static SkSurface* compat_surface(SkCanvas* canvas, const SkISize& size, bool skipGPU) {
+    static sk_sp<SkSurface> compat_surface(SkCanvas* canvas, const SkISize& size, bool skipGPU) {
         SkImageInfo info = SkImageInfo::MakeN32Premul(size);
 
         bool callNewSurface = true;
@@ -125,20 +121,19 @@ protected:
             callNewSurface = false;
         }
 #endif
-        SkSurface* surface = callNewSurface ? canvas->newSurface(info) : NULL;
-        if (NULL == surface) {
+        sk_sp<SkSurface> surface = callNewSurface ? canvas->makeSurface(info) : nullptr;
+        if (nullptr == surface) {
             // picture canvas will return null, so fall-back to raster
-            surface = SkSurface::NewRaster(info);
+            surface = SkSurface::MakeRaster(info);
         }
         return surface;
     }
 
     virtual void onDraw(SkCanvas* canvas) {
-        SkAutoTUnref<SkSurface> surf(compat_surface(canvas, this->getISize(),
-                                                    this->isCanvasDeferred()));
+        auto surf(compat_surface(canvas, this->getISize(), this->isCanvasDeferred()));
         surf->getCanvas()->drawColor(SK_ColorWHITE);
         this->drawContent(surf->getCanvas());
-        surf->draw(canvas, 0, 0, NULL);
+        surf->draw(canvas, 0, 0, nullptr);
     }
 
 private: