Lines Matching defs:metrics
102 static bool can_embed(const SkAdvancedTypefaceMetrics& metrics) {
103 return !SkToBool(metrics.fFlags & SkAdvancedTypefaceMetrics::kNotEmbeddable_FontFlag);
119 std::unique_ptr<SkAdvancedTypefaceMetrics> metrics = typeface->getAdvancedMetrics();
120 if (!metrics) {
121 metrics = std::make_unique<SkAdvancedTypefaceMetrics>();
124 if (0 == metrics->fStemV || 0 == metrics->fCapHeight) {
129 if (0 == metrics->fStemV) {
139 metrics->fStemV = stemV;
141 if (0 == metrics->fCapHeight) {
150 metrics->fCapHeight = SkToS16(SkScalarRoundToInt(capHeight / 2));
153 return canon->fTypefaceMetrics.set(id, std::move(metrics))->get();
169 SkAdvancedTypefaceMetrics::FontType SkPDFFont::FontType(const SkAdvancedTypefaceMetrics& metrics) {
170 if (SkToBool(metrics.fFlags & SkAdvancedTypefaceMetrics::kVariable_FontFlag) ||
171 SkToBool(metrics.fFlags & SkAdvancedTypefaceMetrics::kNotEmbeddable_FontFlag)) {
175 return metrics.fType;
190 const SkAdvancedTypefaceMetrics& metrics = *fontMetrics;
191 SkAdvancedTypefaceMetrics::FontType type = SkPDFFont::FontType(metrics);
240 const SkAdvancedTypefaceMetrics& metrics,
243 descriptor->insertName("FontName", metrics.fPostScriptName);
244 descriptor->insertInt("Flags", (size_t)(metrics.fStyle | kPdfSymbolic));
246 scaleFromFontUnits(metrics.fAscent, emSize));
248 scaleFromFontUnits(metrics.fDescent, emSize));
250 scaleFromFontUnits(metrics.fStemV, emSize));
252 scaleFromFontUnits(metrics.fCapHeight, emSize));
253 descriptor->insertInt("ItalicAngle", metrics.fItalicAngle);
255 SkPDFMakeArray(scaleFromFontUnits(metrics.fBBox.left(), emSize),
256 scaleFromFontUnits(metrics.fBBox.bottom(), emSize),
257 scaleFromFontUnits(metrics.fBBox.right(), emSize),
258 scaleFromFontUnits(metrics.fBBox.top(), emSize)));
288 const SkAdvancedTypefaceMetrics& metrics = *metricsPtr;
289 SkASSERT(can_embed(metrics));
296 SkPDFFont::PopulateCommonFontDescriptor(descriptor.get(), metrics, emSize, 0);
308 if (!SkToBool(metrics.fFlags &
314 metrics.fFontName.c_str(), ttcIndex);
353 newCIDFont->insertName("BaseFont", metrics.fPostScriptName);
386 fontDict.insertName("BaseFont", metrics.fPostScriptName);
493 if (const SkAdvancedTypefaceMetrics* metrics = SkPDFFont::GetMetrics(typeface, doc)) {
495 descriptor.insertName("FontName", metrics->fPostScriptName);
496 descriptor.insertInt("ItalicAngle", metrics->fItalicAngle);
497 fontDescriptorFlags |= (int32_t)metrics->fStyle;
500 if (metrics->fCapHeight != 0) { descriptor.insertInt("CapHeight", metrics->fCapHeight); }
501 if (metrics->fStemV != 0) { descriptor.insertInt("StemV", metrics->fStemV); }
686 const SkAdvancedTypefaceMetrics* metrics = SkPDFFont::GetMetrics(typeface, doc);
687 return metrics && can_embed(*metrics);