SkPDF: clean up uses of deprecated calls in SkPDFFont
BUG=skia:3585 Review URL: https://codereview.chromium.org/1110533002
This commit is contained in:
parent
cb8979d088
commit
bf51cfdbd9
@ -344,7 +344,7 @@ SkPDFArray* composeAdvanceData(
|
||||
appendAdvance(advanceInfo->fAdvance[j], emSize,
|
||||
advanceArray.get());
|
||||
result->appendInt(advanceInfo->fStartId);
|
||||
result->append(advanceArray.get());
|
||||
result->appendObject(advanceArray.detach());
|
||||
break;
|
||||
}
|
||||
case SkAdvancedTypefaceMetrics::WidthRange::kRun: {
|
||||
@ -960,8 +960,8 @@ bool SkPDFFont::addCommonFontDescriptorEntries(int16_t defaultWidth) {
|
||||
fDescriptor->insertScalar("CapHeight",
|
||||
scaleFromFontUnits(fFontInfo->fCapHeight, emSize));
|
||||
fDescriptor->insertInt("ItalicAngle", fFontInfo->fItalicAngle);
|
||||
fDescriptor->insert("FontBBox", makeFontBBox(fFontInfo->fBBox,
|
||||
fFontInfo->fEmSize))->unref();
|
||||
fDescriptor->insertObject(
|
||||
"FontBBox", makeFontBBox(fFontInfo->fBBox, fFontInfo->fEmSize));
|
||||
|
||||
if (defaultWidth > 0) {
|
||||
fDescriptor->insertScalar("MissingWidth",
|
||||
@ -982,11 +982,12 @@ void SkPDFFont::populateToUnicodeTable(const SkPDFGlyphSet* subset) {
|
||||
if (fFontInfo == NULL || fFontInfo->fGlyphToUnicode.begin() == NULL) {
|
||||
return;
|
||||
}
|
||||
SkAutoTUnref<SkPDFStream> pdfCmap(
|
||||
generate_tounicode_cmap(fFontInfo->fGlyphToUnicode, subset,
|
||||
multiByteGlyphs(), firstGlyphID(),
|
||||
lastGlyphID()));
|
||||
insert("ToUnicode", new SkPDFObjRef(pdfCmap.get()))->unref();
|
||||
this->insertObjRef("ToUnicode",
|
||||
generate_tounicode_cmap(fFontInfo->fGlyphToUnicode,
|
||||
subset,
|
||||
multiByteGlyphs(),
|
||||
firstGlyphID(),
|
||||
lastGlyphID()));
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@ -1031,8 +1032,8 @@ bool SkPDFType0Font::populate(const SkPDFGlyphSet* subset) {
|
||||
SkAutoTUnref<SkPDFCIDFont> newCIDFont(
|
||||
new SkPDFCIDFont(fontInfo(), typeface(), subset));
|
||||
SkAutoTUnref<SkPDFArray> descendantFonts(new SkPDFArray());
|
||||
descendantFonts->append(new SkPDFObjRef(newCIDFont.get()))->unref();
|
||||
insert("DescendantFonts", descendantFonts.get());
|
||||
descendantFonts->appendObjRef(newCIDFont.detach());
|
||||
this->insertObject("DescendantFonts", descendantFonts.detach());
|
||||
|
||||
populateToUnicodeTable(subset);
|
||||
|
||||
@ -1057,11 +1058,12 @@ bool SkPDFCIDFont::addFontDescriptor(int16_t defaultWidth,
|
||||
const SkTDArray<uint32_t>* subset) {
|
||||
SkAutoTUnref<SkPDFDict> descriptor(new SkPDFDict("FontDescriptor"));
|
||||
setFontDescriptor(descriptor.get());
|
||||
insert("FontDescriptor", new SkPDFObjRef(descriptor.get()))->unref();
|
||||
if (!addCommonFontDescriptorEntries(defaultWidth)) {
|
||||
this->insertObjRef("FontDescriptor", descriptor.detach());
|
||||
return false;
|
||||
}
|
||||
if (!canEmbed()) {
|
||||
this->insertObjRef("FontDescriptor", descriptor.detach());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1087,8 +1089,7 @@ bool SkPDFCIDFont::addFontDescriptor(int16_t defaultWidth,
|
||||
SkASSERT(fontStream.get());
|
||||
|
||||
fontStream->insertInt("Length1", fontSize);
|
||||
descriptor->insert("FontFile2",
|
||||
new SkPDFObjRef(fontStream.get()))->unref();
|
||||
descriptor->insertObjRef("FontFile2", fontStream.detach());
|
||||
break;
|
||||
}
|
||||
case SkAdvancedTypefaceMetrics::kCFF_Font:
|
||||
@ -1103,13 +1104,13 @@ bool SkPDFCIDFont::addFontDescriptor(int16_t defaultWidth,
|
||||
} else {
|
||||
fontStream->insertName("Subtype", "CIDFontType0c");
|
||||
}
|
||||
descriptor->insert("FontFile3",
|
||||
new SkPDFObjRef(fontStream.get()))->unref();
|
||||
descriptor->insertObjRef("FontFile3", fontStream.detach());
|
||||
break;
|
||||
}
|
||||
default:
|
||||
SkASSERT(false);
|
||||
}
|
||||
this->insertObjRef("FontDescriptor", descriptor.detach());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1153,10 +1154,10 @@ bool SkPDFCIDFont::populate(const SkPDFGlyphSet* subset) {
|
||||
}
|
||||
|
||||
SkAutoTUnref<SkPDFDict> sysInfo(new SkPDFDict);
|
||||
sysInfo->insert("Registry", new SkPDFString("Adobe"))->unref();
|
||||
sysInfo->insert("Ordering", new SkPDFString("Identity"))->unref();
|
||||
sysInfo->insertString("Registry", "Adobe");
|
||||
sysInfo->insertString("Ordering", "Identity");
|
||||
sysInfo->insertInt("Supplement", 0);
|
||||
insert("CIDSystemInfo", sysInfo.get());
|
||||
this->insertObject("CIDSystemInfo", sysInfo.detach());
|
||||
|
||||
if (fontInfo()->fGlyphWidths.get()) {
|
||||
int16_t defaultWidth = 0;
|
||||
@ -1165,10 +1166,11 @@ bool SkPDFCIDFont::populate(const SkPDFGlyphSet* subset) {
|
||||
fontInfo()->fEmSize, &appendWidth,
|
||||
&defaultWidth));
|
||||
if (widths->size())
|
||||
insert("W", widths.get());
|
||||
this->insertObject("W", widths.detach());
|
||||
if (defaultWidth != 0) {
|
||||
insertScalar("DW", scaleFromFontUnits(defaultWidth,
|
||||
fontInfo()->fEmSize));
|
||||
this->insertScalar(
|
||||
"DW",
|
||||
scaleFromFontUnits(defaultWidth, fontInfo()->fEmSize));
|
||||
}
|
||||
}
|
||||
if (fontInfo()->fVerticalMetrics.get()) {
|
||||
@ -1181,13 +1183,14 @@ bool SkPDFCIDFont::populate(const SkPDFGlyphSet* subset) {
|
||||
fontInfo()->fEmSize, &appendVerticalAdvance,
|
||||
&defaultAdvance));
|
||||
if (advances->size())
|
||||
insert("W2", advances.get());
|
||||
this->insertObject("W2", advances.detach());
|
||||
if (defaultAdvance.fVerticalAdvance ||
|
||||
defaultAdvance.fOriginXDisp ||
|
||||
defaultAdvance.fOriginYDisp) {
|
||||
insert("DW2", appendVerticalAdvance(defaultAdvance,
|
||||
fontInfo()->fEmSize,
|
||||
new SkPDFArray))->unref();
|
||||
this->insertObject("DW2",
|
||||
appendVerticalAdvance(defaultAdvance,
|
||||
fontInfo()->fEmSize,
|
||||
new SkPDFArray));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1209,9 +1212,8 @@ SkPDFType1Font::SkPDFType1Font(const SkAdvancedTypefaceMetrics* info,
|
||||
SkPDFType1Font::~SkPDFType1Font() {}
|
||||
|
||||
bool SkPDFType1Font::addFontDescriptor(int16_t defaultWidth) {
|
||||
if (getFontDescriptor() != NULL) {
|
||||
SkPDFDict* descriptor = getFontDescriptor();
|
||||
insert("FontDescriptor", new SkPDFObjRef(descriptor))->unref();
|
||||
if (SkPDFDict* descriptor = getFontDescriptor()) {
|
||||
this->insertObjRef("FontDescriptor", SkRef(descriptor));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1233,11 +1235,10 @@ bool SkPDFType1Font::addFontDescriptor(int16_t defaultWidth) {
|
||||
fontStream->insertInt("Length1", header);
|
||||
fontStream->insertInt("Length2", data);
|
||||
fontStream->insertInt("Length3", trailer);
|
||||
descriptor->insert("FontFile",
|
||||
new SkPDFObjRef(fontStream.get()))->unref();
|
||||
descriptor->insertObjRef("FontFile", fontStream.detach());
|
||||
}
|
||||
|
||||
insert("FontDescriptor", new SkPDFObjRef(descriptor.get()))->unref();
|
||||
this->insertObjRef("FontDescriptor", descriptor.detach());
|
||||
|
||||
return addCommonFontDescriptorEntries(defaultWidth);
|
||||
}
|
||||
@ -1277,18 +1278,17 @@ bool SkPDFType1Font::populate(int16_t glyphID) {
|
||||
|
||||
addWidthInfoFromRange(defaultWidth, widthRangeEntry);
|
||||
|
||||
SkAutoTUnref<SkPDFDict> encoding(new SkPDFDict("Encoding"));
|
||||
insert("Encoding", encoding.get());
|
||||
|
||||
SkAutoTUnref<SkPDFArray> encDiffs(new SkPDFArray);
|
||||
encoding->insert("Differences", encDiffs.get());
|
||||
|
||||
encDiffs->reserve(lastGlyphID() - firstGlyphID() + 2);
|
||||
encDiffs->appendInt(1);
|
||||
for (int gID = firstGlyphID(); gID <= lastGlyphID(); gID++) {
|
||||
encDiffs->appendName(fontInfo()->fGlyphNames->get()[gID].c_str());
|
||||
}
|
||||
|
||||
SkAutoTUnref<SkPDFDict> encoding(new SkPDFDict("Encoding"));
|
||||
encoding->insertObject("Differences", encDiffs.detach());
|
||||
this->insertObject("Encoding", encoding.detach());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1316,9 +1316,9 @@ void SkPDFType1Font::addWidthInfoFromRange(
|
||||
} else {
|
||||
appendWidth(defaultWidth, 1000, widthArray.get());
|
||||
}
|
||||
insertInt("FirstChar", firstChar);
|
||||
insertInt("LastChar", firstChar + widthArray->size() - 1);
|
||||
insert("Widths", widthArray.get());
|
||||
this->insertInt("FirstChar", firstChar);
|
||||
this->insertInt("LastChar", firstChar + widthArray->size() - 1);
|
||||
this->insertObject("Widths", widthArray.detach());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@ -1351,16 +1351,12 @@ bool SkPDFType3Font::populate(uint16_t glyphID) {
|
||||
// Flip about the x-axis and scale by 1/1000.
|
||||
SkMatrix fontMatrix;
|
||||
fontMatrix.setScale(SkScalarInvert(1000), -SkScalarInvert(1000));
|
||||
insert("FontMatrix", SkPDFUtils::MatrixToArray(fontMatrix))->unref();
|
||||
this->insertObject("FontMatrix", SkPDFUtils::MatrixToArray(fontMatrix));
|
||||
|
||||
SkAutoTUnref<SkPDFDict> charProcs(new SkPDFDict);
|
||||
insert("CharProcs", charProcs.get());
|
||||
|
||||
SkAutoTUnref<SkPDFDict> encoding(new SkPDFDict("Encoding"));
|
||||
insert("Encoding", encoding.get());
|
||||
|
||||
SkAutoTUnref<SkPDFArray> encDiffs(new SkPDFArray);
|
||||
encoding->insert("Differences", encDiffs.get());
|
||||
encDiffs->reserve(lastGlyphID() - firstGlyphID() + 2);
|
||||
encDiffs->appendInt(1);
|
||||
|
||||
@ -1394,11 +1390,16 @@ bool SkPDFType3Font::populate(uint16_t glyphID) {
|
||||
new SkPDFStream(glyphStream.get()));
|
||||
}
|
||||
|
||||
insert("FontBBox", makeFontBBox(bbox, 1000))->unref();
|
||||
insertInt("FirstChar", 1);
|
||||
insertInt("LastChar", lastGlyphID() - firstGlyphID() + 1);
|
||||
insert("Widths", widthArray.get());
|
||||
insertName("CIDToGIDMap", "Identity");
|
||||
encoding->insertObject("Differences", encDiffs.detach());
|
||||
|
||||
this->insertObject("CharProcs", charProcs.detach());
|
||||
this->insertObject("Encoding", encoding.detach());
|
||||
|
||||
this->insertObject("FontBBox", makeFontBBox(bbox, 1000));
|
||||
this->insertInt("FirstChar", 1);
|
||||
this->insertInt("LastChar", lastGlyphID() - firstGlyphID() + 1);
|
||||
this->insertObject("Widths", widthArray.detach());
|
||||
this->insertName("CIDToGIDMap", "Identity");
|
||||
|
||||
populateToUnicodeTable(NULL);
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user