| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2010 The Android Open Source Project | 3 * Copyright 2010 The Android Open Source Project |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 #include "SkPDFCatalog.h" | 10 #include "SkPDFCatalog.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 SkASSERT(fNextFirstPageObjNum == 0); | 31 SkASSERT(fNextFirstPageObjNum == 0); |
| 32 if (onFirstPage) { | 32 if (onFirstPage) { |
| 33 fFirstPageCount++; | 33 fFirstPageCount++; |
| 34 } | 34 } |
| 35 | 35 |
| 36 struct Rec newEntry(obj, onFirstPage); | 36 struct Rec newEntry(obj, onFirstPage); |
| 37 fCatalog.append(1, &newEntry); | 37 fCatalog.append(1, &newEntry); |
| 38 return obj; | 38 return obj; |
| 39 } | 39 } |
| 40 | 40 |
| 41 size_t SkPDFCatalog::setFileOffset(SkPDFObject* obj, off_t offset) { | 41 void SkPDFCatalog::setFileOffset(SkPDFObject* obj, off_t offset) { |
| 42 int objIndex = assignObjNum(obj) - 1; | 42 int objIndex = assignObjNum(obj) - 1; |
| 43 SkASSERT(fCatalog[objIndex].fObjNumAssigned); | 43 SkASSERT(fCatalog[objIndex].fObjNumAssigned); |
| 44 SkASSERT(fCatalog[objIndex].fFileOffset == 0); | 44 SkASSERT(fCatalog[objIndex].fFileOffset == 0); |
| 45 fCatalog[objIndex].fFileOffset = offset; | 45 fCatalog[objIndex].fFileOffset = offset; |
| 46 | |
| 47 return getSubstituteObject(obj)->getOutputSize(this, true); | |
| 48 } | 46 } |
| 49 | 47 |
| 50 void SkPDFCatalog::emitObjectNumber(SkWStream* stream, SkPDFObject* obj) { | 48 void SkPDFCatalog::emitObjectNumber(SkWStream* stream, SkPDFObject* obj) { |
| 51 stream->writeDecAsText(assignObjNum(obj)); | 49 stream->writeDecAsText(assignObjNum(obj)); |
| 52 stream->writeText(" 0"); // Generation number is always 0. | 50 stream->writeText(" 0"); // Generation number is always 0. |
| 53 } | 51 } |
| 54 | 52 |
| 55 size_t SkPDFCatalog::getObjectNumberSize(SkPDFObject* obj) { | 53 size_t SkPDFCatalog::getObjectNumberSize(SkPDFObject* obj) { |
| 56 SkDynamicMemoryWStream buffer; | 54 SkDynamicMemoryWStream buffer; |
| 57 emitObjectNumber(&buffer, obj); | 55 emitObjectNumber(&buffer, obj); |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 | 183 |
| 186 SkPDFObject* SkPDFCatalog::getSubstituteObject(SkPDFObject* object) { | 184 SkPDFObject* SkPDFCatalog::getSubstituteObject(SkPDFObject* object) { |
| 187 for (int i = 0; i < fSubstituteMap.count(); ++i) { | 185 for (int i = 0; i < fSubstituteMap.count(); ++i) { |
| 188 if (object == fSubstituteMap[i].fOriginal) { | 186 if (object == fSubstituteMap[i].fOriginal) { |
| 189 return fSubstituteMap[i].fSubstitute; | 187 return fSubstituteMap[i].fSubstitute; |
| 190 } | 188 } |
| 191 } | 189 } |
| 192 return object; | 190 return object; |
| 193 } | 191 } |
| 194 | 192 |
| 195 off_t SkPDFCatalog::setSubstituteResourcesOffsets(off_t fileOffset, | |
| 196 bool firstPage) { | |
| 197 SkTSet<SkPDFObject*>* targetSet = getSubstituteList(firstPage); | |
| 198 off_t offsetSum = fileOffset; | |
| 199 for (int i = 0; i < targetSet->count(); ++i) { | |
| 200 offsetSum += SkToOffT(setFileOffset((*targetSet)[i], offsetSum)); | |
| 201 } | |
| 202 return offsetSum - fileOffset; | |
| 203 } | |
| 204 | |
| 205 void SkPDFCatalog::emitSubstituteResources(SkWStream *stream, bool firstPage) { | |
| 206 SkTSet<SkPDFObject*>* targetSet = getSubstituteList(firstPage); | |
| 207 for (int i = 0; i < targetSet->count(); ++i) { | |
| 208 (*targetSet)[i]->emit(stream, this, true); | |
| 209 } | |
| 210 } | |
| 211 | |
| 212 SkTSet<SkPDFObject*>* SkPDFCatalog::getSubstituteList(bool firstPage) { | 193 SkTSet<SkPDFObject*>* SkPDFCatalog::getSubstituteList(bool firstPage) { |
| 213 return firstPage ? &fSubstituteResourcesFirstPage : | 194 return firstPage ? &fSubstituteResourcesFirstPage : |
| 214 &fSubstituteResourcesRemaining; | 195 &fSubstituteResourcesRemaining; |
| 215 } | 196 } |
| OLD | NEW |