commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2013 Google Inc. |
| 3 | * |
| 4 | * Use of this source code is governed by a BSD-style license that can be |
| 5 | * found in the LICENSE file. |
| 6 | */ |
| 7 | |
| 8 | #ifndef SkPDFResourceDict_DEFINED |
| 9 | #define SkPDFResourceDict_DEFINED |
| 10 | |
martina.kollarova | b8d6af1 | 2016-06-29 05:12:31 -0700 | [diff] [blame] | 11 | #include "SkRefCnt.h" |
commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 12 | #include "SkTDArray.h" |
martina.kollarova | b8d6af1 | 2016-06-29 05:12:31 -0700 | [diff] [blame] | 13 | |
| 14 | class SkPDFDict; |
| 15 | class SkPDFObject; |
commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 16 | |
| 17 | /** \class SkPDFResourceDict |
| 18 | |
| 19 | A resource dictionary, which maintains the relevant sub-dicts and |
| 20 | allows generation of a list of referenced SkPDFObjects inserted with |
| 21 | insertResourceAsRef. |
| 22 | */ |
halcanary | 2b86155 | 2015-04-09 13:27:40 -0700 | [diff] [blame] | 23 | class SkPDFResourceDict { |
commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 24 | public: |
halcanary | 2b86155 | 2015-04-09 13:27:40 -0700 | [diff] [blame] | 25 | enum SkPDFResourceType { |
commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 26 | kExtGState_ResourceType, |
| 27 | kPattern_ResourceType, |
| 28 | kXObject_ResourceType, |
| 29 | kFont_ResourceType, |
| 30 | // These additional types are defined by the spec, but not |
| 31 | // currently used by Skia: ColorSpace, Shading, Properties |
| 32 | kResourceTypeCount |
halcanary | 2b86155 | 2015-04-09 13:27:40 -0700 | [diff] [blame] | 33 | }; |
commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 34 | |
halcanary | c2f9ec1 | 2016-09-12 08:55:29 -0700 | [diff] [blame] | 35 | static char GetResourceTypePrefix(SkPDFResourceDict::SkPDFResourceType type); |
| 36 | |
commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 37 | /** Create a PDF resource dictionary. |
| 38 | * The full set of ProcSet entries is automatically created for backwards |
| 39 | * compatibility, as recommended by the PDF spec. |
halcanary | 2b86155 | 2015-04-09 13:27:40 -0700 | [diff] [blame] | 40 | * |
halcanary | 96fcdcc | 2015-08-27 07:41:13 -0700 | [diff] [blame] | 41 | * Any arguments can be nullptr. |
commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 42 | */ |
halcanary | 8103a34 | 2016-03-08 15:10:16 -0800 | [diff] [blame] | 43 | static sk_sp<SkPDFDict> Make( |
halcanary | 2b86155 | 2015-04-09 13:27:40 -0700 | [diff] [blame] | 44 | const SkTDArray<SkPDFObject*>* gStateResources, |
| 45 | const SkTDArray<SkPDFObject*>* patternResources, |
| 46 | const SkTDArray<SkPDFObject*>* xObjectResources, |
| 47 | const SkTDArray<SkPDFObject*>* fontResources); |
commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 48 | |
| 49 | /** |
commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 50 | * Returns the name for the resource that will be generated by the resource |
| 51 | * dict. |
| 52 | * |
| 53 | * @param type The type of resource being entered, like |
| 54 | * kPattern_ResourceType or kExtGState_ResourceType. |
| 55 | * @param key The resource key, should be unique within its type. |
| 56 | */ |
| 57 | static SkString getResourceName(SkPDFResourceType type, int key); |
commit-bot@chromium.org | 4740135 | 2013-07-23 21:49:29 +0000 | [diff] [blame] | 58 | }; |
| 59 | |
| 60 | #endif |