123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /*
- * Copyright 2015 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #include "bench/Benchmark.h"
- #include "include/core/SkCanvas.h"
- #include "include/core/SkPictureRecorder.h"
- #include "include/core/SkRRect.h"
- class ClipOverheadRecordingBench : public Benchmark {
- public:
- ClipOverheadRecordingBench() {}
- private:
- const char* onGetName() override { return "clip_overhead_recording"; }
- bool isSuitableFor(Backend backend) override { return backend == kNonRendering_Backend; }
- void onDraw(int loops, SkCanvas*) override {
- SkPictureRecorder rec;
- for (int i = 0; i < loops; i++) {
- SkCanvas* canvas = rec.beginRecording({0,0, 2000,3000});
- SkPaint paint;
- SkRRect rrect;
- rrect.setOval({0, 0, 1000, 1000});
- for (int i = 0; i < 1000; i++) {
- canvas->save();
- canvas->translate(10, 10);
- canvas->clipRect({10,10, 1000, 1000});
- canvas->drawRRect(rrect, paint);
- canvas->restore();
- }
- (void)rec.finishRecordingAsPicture();
- }
- }
- };
- DEF_BENCH( return new ClipOverheadRecordingBench; )
|