|  | /* | 
|  | * 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 "src/pdf/SkPDFFont.h" | 
|  |  | 
|  | #include <vector> | 
|  |  | 
|  | class SkPDFDict; | 
|  | class SkPDFObject; | 
|  | class SkWStream; | 
|  |  | 
|  | enum class SkPDFResourceType { | 
|  | kExtGState = 0, | 
|  | kPattern = 1, | 
|  | kXObject = 2, | 
|  | kFont = 3, | 
|  | // These additional types are defined by the spec, but not | 
|  | // currently used by Skia: ColorSpace, Shading, Properties | 
|  | }; | 
|  |  | 
|  |  | 
|  | /** 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. | 
|  | */ | 
|  | std::unique_ptr<SkPDFDict> SkPDFMakeResourceDict( | 
|  | const std::vector<SkPDFIndirectReference>& graphicStateResources, | 
|  | const std::vector<SkPDFIndirectReference>& shaderResources, | 
|  | const std::vector<SkPDFIndirectReference>& xObjectResources, | 
|  | const std::vector<SkPDFIndirectReference>& fontResources); | 
|  |  | 
|  | /** | 
|  | * Writes the name for the resource that will be generated by the resource | 
|  | * dict. | 
|  | * | 
|  | *  @param type  The type of resource being entered | 
|  | *  @param key   The resource key, should be unique within its type. | 
|  | */ | 
|  | void SkPDFWriteResourceName(SkWStream*, SkPDFResourceType type, int key); | 
|  |  | 
|  | #endif |