blob: 45bf41ec2d3c433f1fb199e1b1b0e9c7d0a60294 [file] [log] [blame]
msarett2cee9022016-06-03 08:25:21 -07001/*
2 * Copyright 2016 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef ColorCodecBench_DEFINED
9#define ColorCodecBench_DEFINED
10
11#include "Benchmark.h"
12#include "SkData.h"
13#include "SkImageInfo.h"
14
msarett469f1c52016-06-06 08:20:37 -070015#if defined(SK_TEST_QCMS)
msarett2cee9022016-06-03 08:25:21 -070016#include "qcms.h"
17#endif
18
19class ColorCodecBench : public Benchmark {
20public:
21 ColorCodecBench(const char* name, sk_sp<SkData> encoded);
22
23protected:
24 const char* onGetName() override;
25 bool isSuitableFor(Backend backend) override;
26 void onDraw(int n, SkCanvas* canvas) override;
27 void onDelayedSetup() override;
28
29private:
30 void decodeAndXform();
31 void xformOnly();
32#if !defined(GOOGLE3)
33 void decodeAndXformQCMS();
34 void xformOnlyQCMS();
35#endif
36
37 SkString fName;
38 sk_sp<SkData> fEncoded;
msarett6bdbf442016-07-19 09:07:55 -070039 SkImageInfo fSrcInfo;
40 SkImageInfo fDstInfo;
msarett2cee9022016-06-03 08:25:21 -070041 SkAutoMalloc fDst;
42 SkAutoMalloc fSrc;
43 sk_sp<SkColorSpace> fDstSpace;
msarett469f1c52016-06-06 08:20:37 -070044#if defined(SK_TEST_QCMS)
msarett2cee9022016-06-03 08:25:21 -070045 SkAutoTCallVProc<qcms_profile, qcms_profile_release> fDstSpaceQCMS;
46#endif
47 sk_sp<SkData> fSrcData;
48
49 typedef Benchmark INHERITED;
50};
51#endif // ColorCodecBench_DEFINED