diff options
author | 2016-07-15 13:41:27 -0700 | |
---|---|---|
committer | 2016-07-15 13:41:28 -0700 | |
commit | eb92cb3e84f49b5eedb22b36acffd895d6a90e5a (patch) | |
tree | 0735e84978ab91cfbf507573ac0726d9ea4cc50e /bench/PDFBench.cpp | |
parent | f0c30f55665eb3555ca438855d4995baed182e97 (diff) |
SkPdf: smaller color serialization
SkPDFUtils now has a special function (SkPDFUtils::AppendColorComponent)
just for writing out (color/255) as a decimal with three digits of
precision.
SkPDFUnion now has a type to represent a color component. It holds a
utint_8, but calls into AppendColorComponent to serialize.
Added a unit test that tests all possible input values.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2151863003
Review-Url: https://codereview.chromium.org/2151863003
Diffstat (limited to 'bench/PDFBench.cpp')
-rw-r--r-- | bench/PDFBench.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/bench/PDFBench.cpp b/bench/PDFBench.cpp index 8f5d2db5b4..19f8e2f8cd 100644 --- a/bench/PDFBench.cpp +++ b/bench/PDFBench.cpp @@ -164,6 +164,21 @@ struct PDFScalarBench : public Benchmark { } }; +struct PDFColorComponentBench : public Benchmark { + bool isSuitableFor(Backend b) override { + return b == kNonRendering_Backend; + } + const char* onGetName() override { return "PDFColorComponent"; } + void onDraw(int loops, SkCanvas*) override { + char dst[5]; + while (loops-- > 0) { + for (int i = 0; i < 256; ++i) { + (void)SkPDFUtils::ColorToDecimal(SkToU8(i), dst); + } + } + } +}; + struct PDFShaderBench : public Benchmark { sk_sp<SkShader> fShader; const char* onGetName() final { return "PDFShader"; } @@ -232,6 +247,7 @@ DEF_BENCH(return new PDFImageBench;) DEF_BENCH(return new PDFJpegImageBench;) DEF_BENCH(return new PDFCompressionBench;) DEF_BENCH(return new PDFScalarBench;) +DEF_BENCH(return new PDFColorComponentBench;) DEF_BENCH(return new PDFShaderBench;) DEF_BENCH(return new WStreamWriteTextBenchmark;) DEF_BENCH(return new WritePDFTextBenchmark;) |