94fd66cc25
my tests run ~14% faster. - Split out gradient shaders from image shaders. new compilation unit: SkPDFGradientShader - Common functions InverseTransformBBox and PopulateTilingPatternDict moved to SkPDFUtils - Split SkPDFShader::State into image and gradient structures. - SkPDFCanon is now a simpler structure, with no logic of its own. I am considering just moving all of its fields into SkPDFDocument - SkPDFShader::State (the image/fallback shader) now is POD, making the use of a hashmap for canonicalization straightforward. Formerly, we used a linear search. - Do not bother trying to canonicalize the falback image shader. - SkPDFGradientShader::Key is not POD; comparison of two objects requires looking at the contents of two variable-sized arrays. We now pre-calculate the hash of the arrays using SkOpts::hash and store a hash for the object in the fHash field. Using that hash, we can now canonicalize using a hashmap instead of a linar search! - several static functions renamed to follow style guidelines - stop using codeFunction function pointer; I find that less clear than it could be. - operator==() for SkPDFShader::State and SkPDFGradientShader::Key is now much simpler and can now be inlined. - SkArrayEqual template in SkPDFUtils.h No change to PDF output. BUG=skia:3585 Change-Id: I354ad1b600be6d6749abccb58d13db257370bc0b Reviewed-on: https://skia-review.googlesource.com/21376 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
50 lines
1.5 KiB
Plaintext
50 lines
1.5 KiB
Plaintext
# Copyright 2016 Google Inc.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# Things are easiest for everyone if these source paths are absolute.
|
|
_src = get_path_info("../src", "abspath")
|
|
|
|
skia_pdf_sources = [
|
|
"$_src/pdf/SkBitmapKey.h",
|
|
"$_src/pdf/SkDeflate.cpp",
|
|
"$_src/pdf/SkDeflate.h",
|
|
"$_src/pdf/SkJpegInfo.cpp",
|
|
"$_src/pdf/SkJpegInfo.h",
|
|
"$_src/pdf/SkPDFBitmap.cpp",
|
|
"$_src/pdf/SkPDFBitmap.h",
|
|
"$_src/pdf/SkPDFCanon.cpp",
|
|
"$_src/pdf/SkPDFCanon.h",
|
|
"$_src/pdf/SkPDFCanvas.cpp",
|
|
"$_src/pdf/SkPDFCanvas.h",
|
|
"$_src/pdf/SkPDFConvertType1FontStream.cpp",
|
|
"$_src/pdf/SkPDFConvertType1FontStream.h",
|
|
"$_src/pdf/SkPDFDevice.cpp",
|
|
"$_src/pdf/SkPDFDevice.h",
|
|
"$_src/pdf/SkPDFDocument.cpp",
|
|
"$_src/pdf/SkPDFDocument.h",
|
|
"$_src/pdf/SkPDFFont.cpp",
|
|
"$_src/pdf/SkPDFFont.h",
|
|
"$_src/pdf/SkPDFFormXObject.cpp",
|
|
"$_src/pdf/SkPDFFormXObject.h",
|
|
"$_src/pdf/SkPDFGradientShader.cpp",
|
|
"$_src/pdf/SkPDFGradientShader.h",
|
|
"$_src/pdf/SkPDFGraphicState.cpp",
|
|
"$_src/pdf/SkPDFGraphicState.h",
|
|
"$_src/pdf/SkPDFMakeCIDGlyphWidthsArray.cpp",
|
|
"$_src/pdf/SkPDFMakeCIDGlyphWidthsArray.h",
|
|
"$_src/pdf/SkPDFMakeToUnicodeCmap.cpp",
|
|
"$_src/pdf/SkPDFMakeToUnicodeCmap.h",
|
|
"$_src/pdf/SkPDFMetadata.cpp",
|
|
"$_src/pdf/SkPDFMetadata.h",
|
|
"$_src/pdf/SkPDFResourceDict.cpp",
|
|
"$_src/pdf/SkPDFResourceDict.h",
|
|
"$_src/pdf/SkPDFShader.cpp",
|
|
"$_src/pdf/SkPDFShader.h",
|
|
"$_src/pdf/SkPDFTypes.cpp",
|
|
"$_src/pdf/SkPDFTypes.h",
|
|
"$_src/pdf/SkPDFUtils.cpp",
|
|
"$_src/pdf/SkPDFUtils.h",
|
|
]
|