/* * Copyright 2015 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkPDFCanon_DEFINED #define SkPDFCanon_DEFINED #include "SkPDFGraphicState.h" #include "SkPDFShader.h" #include "SkPDFGradientShader.h" #include "SkPixelSerializer.h" #include "SkTDArray.h" #include "SkTHash.h" #include "SkBitmapKey.h" class SkPDFFont; struct SkAdvancedTypefaceMetrics; /** * The SkPDFCanon canonicalizes objects across PDF pages * (SkPDFDevices) and across draw calls. */ class SkPDFCanon { public: ~SkPDFCanon(); SkPDFCanon(); SkPDFCanon(const SkPDFCanon&) = delete; SkPDFCanon& operator=(const SkPDFCanon&) = delete; SkTHashMap> fImageShaderMap; SkPDFGradientShader::HashMap fGradientPatternMap; SkTHashMap> fPDFBitmapMap; SkTHashMap> fTypefaceMetrics; SkTHashMap> fFontDescriptors; SkTHashMap> fFontMap; SkTHashMap> fStrokeGSMap; SkTHashMap> fFillGSMap; sk_sp fPixelSerializer; sk_sp fInvertFunction; sk_sp fNoSmaskGraphicState; sk_sp fRangeObject; }; #endif // SkPDFCanon_DEFINED