aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf/SkPDFDevice.cpp
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2015-04-09 13:27:40 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-09 13:27:40 -0700
commit2b86155b42c2493ff0c558ce105a464769962274 (patch)
tree1a4a5d3b1613662902dbb1e96c29c61b11cb98dc /src/pdf/SkPDFDevice.cpp
parent29be7958de367a7067a3a236c5a23f88ce8e53a4 (diff)
SkPDF: ResourceDict replaced by factory function
Motivation: Having a class here was unnecessary, since the only thing that set this class apart was how it is created, not how it behaves. BUG=skia:3585 Review URL: https://codereview.chromium.org/1068343003
Diffstat (limited to 'src/pdf/SkPDFDevice.cpp')
-rw-r--r--src/pdf/SkPDFDevice.cpp46
1 files changed, 11 insertions, 35 deletions
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index f624cb49f9..5167474f10 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -1281,41 +1281,17 @@ void SkPDFDevice::setDrawingArea(DrawingArea drawingArea) {
fDrawingArea = drawingArea;
}
-SkPDFResourceDict* SkPDFDevice::createResourceDict() const {
- SkAutoTUnref<SkPDFResourceDict> resourceDict(SkNEW(SkPDFResourceDict));
- if (fGraphicStateResources.count()) {
- for (int i = 0; i < fGraphicStateResources.count(); i++) {
- resourceDict->insertResourceAsReference(
- SkPDFResourceDict::kExtGState_ResourceType,
- i, fGraphicStateResources[i]);
- }
- }
-
- if (fXObjectResources.count()) {
- for (int i = 0; i < fXObjectResources.count(); i++) {
- resourceDict->insertResourceAsReference(
- SkPDFResourceDict::kXObject_ResourceType,
- i, fXObjectResources[i]);
- }
- }
-
- if (fFontResources.count()) {
- for (int i = 0; i < fFontResources.count(); i++) {
- resourceDict->insertResourceAsReference(
- SkPDFResourceDict::kFont_ResourceType,
- i, fFontResources[i]);
- }
- }
-
- if (fShaderResources.count()) {
- SkAutoTUnref<SkPDFDict> patterns(new SkPDFDict());
- for (int i = 0; i < fShaderResources.count(); i++) {
- resourceDict->insertResourceAsReference(
- SkPDFResourceDict::kPattern_ResourceType,
- i, fShaderResources[i]);
- }
- }
- return resourceDict.detach();
+SkPDFDict* SkPDFDevice::createResourceDict() const {
+ SkTDArray<SkPDFObject*> fonts;
+ fonts.setReserve(fFontResources.count());
+ for (SkPDFFont* font : fFontResources) {
+ fonts.push(font);
+ }
+ return SkPDFResourceDict::Create(
+ &fGraphicStateResources,
+ &fShaderResources,
+ &fXObjectResources,
+ &fonts);
}
const SkTDArray<SkPDFFont*>& SkPDFDevice::getFontResources() const {