aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/PDFBench.cpp
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2016-07-15 13:41:27 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-07-15 13:41:28 -0700
commiteb92cb3e84f49b5eedb22b36acffd895d6a90e5a (patch)
tree0735e84978ab91cfbf507573ac0726d9ea4cc50e /bench/PDFBench.cpp
parentf0c30f55665eb3555ca438855d4995baed182e97 (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.cpp16
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;)