| Index: bench/BlurOccludedRRectBench.cpp
|
| diff --git a/bench/BlurOccludedRRectBench.cpp b/bench/BlurOccludedRRectBench.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a2e8276776b11023a86aa1329102748fbd694a0d
|
| --- /dev/null
|
| +++ b/bench/BlurOccludedRRectBench.cpp
|
| @@ -0,0 +1,87 @@
|
| +/*
|
| + * Copyright 2016 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#include "Benchmark.h"
|
| +#include "SkBlurMaskFilter.h"
|
| +#include "SkCanvas.h"
|
| +#include "SkPaint.h"
|
| +#include "SkRRect.h"
|
| +#include "SkRect.h"
|
| +#include "sk_tool_utils.h"
|
| +
|
| +class BlurOccludedRRectBench : public Benchmark {
|
| +public:
|
| + BlurOccludedRRectBench() {}
|
| +
|
| + const char* onGetName() override {
|
| + return "bluroccludedrrect";
|
| + }
|
| +
|
| + SkIPoint onGetSize() override {
|
| + return SkIPoint::Make(1024, 2048);
|
| + }
|
| +
|
| + void onDraw(int loops, SkCanvas* canvas) override {
|
| + for (int l = 0; l < loops; ++l) {
|
| + canvas->clear(0xFFFAFAFA);
|
| +
|
| + SkPaint opaque;
|
| + opaque.setAntiAlias(true);
|
| + opaque.setColor(SK_ColorWHITE);
|
| +
|
| + const SkRect r = SkRect::MakeWH(480, 230);
|
| + const SkRRect rr = SkRRect::MakeRectXY(r, 8, 8);
|
| + //SkRect occRect = sk_tool_utils::compute_central_occluder(rr);
|
| +
|
| + for (int i = 0; i < 2; ++i) {
|
| + canvas->save();
|
| +
|
| + canvas->translate(i*502.0f+20, 10.0f);
|
| +
|
| + for (int j = 0; j < 8; ++j) {
|
| + canvas->save();
|
| +
|
| + canvas->translate(0.0f, j*256.0f);
|
| +
|
| + SkPaint firstBlur;
|
| + firstBlur.setAntiAlias(true);
|
| + firstBlur.setColor(0x09000000);
|
| + firstBlur.setMaskFilter(SkBlurMaskFilter::Make(kNormal_SkBlurStyle,
|
| + 2.5f));
|
| + //, occRect));
|
| +
|
| + canvas->drawRRect(rr, firstBlur);
|
| +
|
| + canvas->save();
|
| + canvas->translate(1.5f, 1.5f);
|
| +
|
| + SkPaint secondBlur;
|
| + secondBlur.setAntiAlias(true);
|
| + secondBlur.setColor(0x30000000);
|
| + secondBlur.setMaskFilter(SkBlurMaskFilter::Make(kNormal_SkBlurStyle,
|
| + 6.0f));
|
| + //, occRect));
|
| +
|
| + canvas->drawRRect(rr, secondBlur);
|
| +
|
| + canvas->restore();
|
| +
|
| + canvas->drawRRect(rr, opaque);
|
| +
|
| + canvas->restore();
|
| + }
|
| +
|
| + canvas->restore();
|
| + }
|
| + }
|
| + }
|
| +
|
| +private:
|
| + typedef Benchmark INHERITED;
|
| +};
|
| +
|
| +DEF_BENCH(return new BlurOccludedRRectBench();)
|
|
|