diff options
Diffstat (limited to 'gfx/skia/skia/src/pdf/SkPDFResourceDict.h')
-rw-r--r-- | gfx/skia/skia/src/pdf/SkPDFResourceDict.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/gfx/skia/skia/src/pdf/SkPDFResourceDict.h b/gfx/skia/skia/src/pdf/SkPDFResourceDict.h new file mode 100644 index 000000000..a9618b242 --- /dev/null +++ b/gfx/skia/skia/src/pdf/SkPDFResourceDict.h @@ -0,0 +1,60 @@ +/* + * Copyright 2013 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkPDFResourceDict_DEFINED +#define SkPDFResourceDict_DEFINED + +#include "SkRefCnt.h" +#include "SkTDArray.h" + +class SkPDFDict; +class SkPDFObject; + +/** \class SkPDFResourceDict + + A resource dictionary, which maintains the relevant sub-dicts and + allows generation of a list of referenced SkPDFObjects inserted with + insertResourceAsRef. +*/ +class SkPDFResourceDict { +public: + enum SkPDFResourceType { + kExtGState_ResourceType, + kPattern_ResourceType, + kXObject_ResourceType, + kFont_ResourceType, + // These additional types are defined by the spec, but not + // currently used by Skia: ColorSpace, Shading, Properties + kResourceTypeCount + }; + + static char GetResourceTypePrefix(SkPDFResourceDict::SkPDFResourceType type); + + /** Create a PDF resource dictionary. + * The full set of ProcSet entries is automatically created for backwards + * compatibility, as recommended by the PDF spec. + * + * Any arguments can be nullptr. + */ + static sk_sp<SkPDFDict> Make( + const SkTDArray<SkPDFObject*>* gStateResources, + const SkTDArray<SkPDFObject*>* patternResources, + const SkTDArray<SkPDFObject*>* xObjectResources, + const SkTDArray<SkPDFObject*>* fontResources); + + /** + * Returns the name for the resource that will be generated by the resource + * dict. + * + * @param type The type of resource being entered, like + * kPattern_ResourceType or kExtGState_ResourceType. + * @param key The resource key, should be unique within its type. + */ + static SkString getResourceName(SkPDFResourceType type, int key); +}; + +#endif |