diff options
author | 2015-04-09 13:27:40 -0700 | |
---|---|---|
committer | 2015-04-09 13:27:40 -0700 | |
commit | 2b86155b42c2493ff0c558ce105a464769962274 (patch) | |
tree | 1a4a5d3b1613662902dbb1e96c29c61b11cb98dc /src/pdf/SkPDFDevice.cpp | |
parent | 29be7958de367a7067a3a236c5a23f88ce8e53a4 (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.cpp | 46 |
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 { |