1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2017 Google Inc. 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci#include "bench/Benchmark.h" 9cb93a386Sopenharmony_ci#include "include/core/SkCanvas.h" 10cb93a386Sopenharmony_ci#include "include/core/SkColorSpace.h" 11cb93a386Sopenharmony_ci#include "include/core/SkImage.h" 12cb93a386Sopenharmony_ci#include "include/core/SkPictureRecorder.h" 13cb93a386Sopenharmony_ci#include "include/core/SkString.h" 14cb93a386Sopenharmony_ci#include "include/core/SkSurface.h" 15cb93a386Sopenharmony_ci#include "tools/ToolUtils.h" 16cb93a386Sopenharmony_ci 17cb93a386Sopenharmony_ci#include "include/core/SkPath.h" 18cb93a386Sopenharmony_ci#include "include/core/SkSurface.h" 19cb93a386Sopenharmony_ci 20cb93a386Sopenharmony_ciclass RasterTileBench : public Benchmark { 21cb93a386Sopenharmony_ci sk_sp<SkSurface> fSurf; 22cb93a386Sopenharmony_ci SkPath fPath; 23cb93a386Sopenharmony_ci SkString fName; 24cb93a386Sopenharmony_cipublic: 25cb93a386Sopenharmony_ci RasterTileBench() : fName("rastertile") { 26cb93a386Sopenharmony_ci int W = 2014 * 20; 27cb93a386Sopenharmony_ci int H = 20; 28cb93a386Sopenharmony_ci fSurf = SkSurface::MakeRasterN32Premul(W, H); 29cb93a386Sopenharmony_ci 30cb93a386Sopenharmony_ci fPath.moveTo(0, 0); 31cb93a386Sopenharmony_ci fPath.cubicTo(20, 10, 10, 15, 30, 5); 32cb93a386Sopenharmony_ci } 33cb93a386Sopenharmony_ci 34cb93a386Sopenharmony_ciprotected: 35cb93a386Sopenharmony_ci const char* onGetName() override { return fName.c_str(); } 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_ci void onDraw(int loops, SkCanvas* canvas) override { 38cb93a386Sopenharmony_ci SkPaint paint; 39cb93a386Sopenharmony_ci paint.setStyle(SkPaint::kStroke_Style); 40cb93a386Sopenharmony_ci paint.setStrokeWidth(1.1f); 41cb93a386Sopenharmony_ci paint.setAntiAlias(true); 42cb93a386Sopenharmony_ci 43cb93a386Sopenharmony_ci for (int i = 0; i < loops; ++i) { 44cb93a386Sopenharmony_ci for (int j = 0; j < 1000; ++j) { 45cb93a386Sopenharmony_ci fSurf->getCanvas()->drawPath(fPath, paint); 46cb93a386Sopenharmony_ci } 47cb93a386Sopenharmony_ci } 48cb93a386Sopenharmony_ci } 49cb93a386Sopenharmony_ci 50cb93a386Sopenharmony_ciprivate: 51cb93a386Sopenharmony_ci}; 52cb93a386Sopenharmony_ciDEF_BENCH(return new RasterTileBench;) 53