1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2015 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/SkPictureRecorder.h" 11cb93a386Sopenharmony_ci#include "include/core/SkRRect.h" 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_ciclass ClipOverheadRecordingBench : public Benchmark { 14cb93a386Sopenharmony_cipublic: 15cb93a386Sopenharmony_ci ClipOverheadRecordingBench() {} 16cb93a386Sopenharmony_ci 17cb93a386Sopenharmony_ciprivate: 18cb93a386Sopenharmony_ci const char* onGetName() override { return "clip_overhead_recording"; } 19cb93a386Sopenharmony_ci bool isSuitableFor(Backend backend) override { return backend == kNonRendering_Backend; } 20cb93a386Sopenharmony_ci 21cb93a386Sopenharmony_ci void onDraw(int loops, SkCanvas*) override { 22cb93a386Sopenharmony_ci SkPictureRecorder rec; 23cb93a386Sopenharmony_ci 24cb93a386Sopenharmony_ci for (int loop = 0; loop < loops; loop++) { 25cb93a386Sopenharmony_ci SkCanvas* canvas = rec.beginRecording({0,0, 2000,3000}); 26cb93a386Sopenharmony_ci 27cb93a386Sopenharmony_ci SkPaint paint; 28cb93a386Sopenharmony_ci SkRRect rrect; 29cb93a386Sopenharmony_ci rrect.setOval({0, 0, 1000, 1000}); 30cb93a386Sopenharmony_ci for (int i = 0; i < 1000; i++) { 31cb93a386Sopenharmony_ci canvas->save(); 32cb93a386Sopenharmony_ci canvas->translate(10, 10); 33cb93a386Sopenharmony_ci canvas->clipRect({10,10, 1000, 1000}); 34cb93a386Sopenharmony_ci canvas->drawRRect(rrect, paint); 35cb93a386Sopenharmony_ci canvas->restore(); 36cb93a386Sopenharmony_ci } 37cb93a386Sopenharmony_ci 38cb93a386Sopenharmony_ci (void)rec.finishRecordingAsPicture(); 39cb93a386Sopenharmony_ci } 40cb93a386Sopenharmony_ci } 41cb93a386Sopenharmony_ci}; 42cb93a386Sopenharmony_ciDEF_BENCH( return new ClipOverheadRecordingBench; ) 43