blob: e7a08af55f15133200103ac75c453ff379c28a6d [file]
/*
* Copyright 2024 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "src/core/SkAdvancedTypefaceMetrics.h"
#include "src/ports/SkTypeface_proxy.h"
#include <memory>
#include <utility>
int SkTypeface_proxy::onGetUPEM() const { return fRealTypeface->getUnitsPerEm(); }
std::unique_ptr<SkStreamAsset> SkTypeface_proxy::onOpenStream(int* ttcIndex) const {
return fRealTypeface->onOpenStream(ttcIndex);
}
sk_sp<SkTypeface> SkTypeface_proxy::onMakeClone(const SkFontArguments& args) const {
return fRealTypeface->onMakeClone(args);
}
bool SkTypeface_proxy::onGlyphMaskNeedsCurrentColor() const {
return fRealTypeface->glyphMaskNeedsCurrentColor();
}
int SkTypeface_proxy::onGetVariationDesignPosition(
SkSpan<SkFontArguments::VariationPosition::Coordinate> coordinates) const {
return fRealTypeface->onGetVariationDesignPosition(coordinates);
}
int SkTypeface_proxy::onGetVariationDesignParameters(
SkSpan<SkFontParameters::Variation::Axis> parameters) const {
return fRealTypeface->onGetVariationDesignParameters(parameters);
}
SkFontStyle SkTypeface_proxy::onGetFontStyle() const {
return fRealTypeface->onGetFontStyle();
}
bool SkTypeface_proxy::onGetFixedPitch() const {
return fRealTypeface->onGetFixedPitch();
}
void SkTypeface_proxy::onGetFamilyName(SkString* familyName) const {
fRealTypeface->onGetFamilyName(familyName);
}
bool SkTypeface_proxy::onGetPostScriptName(SkString* postScriptName) const {
return fRealTypeface->getPostScriptName(postScriptName);
}
int SkTypeface_proxy::onGetResourceName(SkString* resourceName) const {
return fRealTypeface->getResourceName(resourceName);
}
SkTypeface::LocalizedStrings* SkTypeface_proxy::onCreateFamilyNameIterator() const {
return fRealTypeface->createFamilyNameIterator();
}
int SkTypeface_proxy::onGetTableTags(SkSpan<SkFontTableTag> tags) const {
return fRealTypeface->readTableTags(tags);
}
size_t SkTypeface_proxy::onGetTableData(SkFontTableTag tag, size_t offset, size_t length, void* data) const {
return fRealTypeface->getTableData(tag, offset, length, data);
}
std::unique_ptr<SkScalerContext> SkTypeface_proxy::onCreateScalerContext(
const SkScalerContextEffects& effects, const SkDescriptor* desc) const {
return std::make_unique<SkScalerContext_proxy>(
fRealTypeface->onCreateScalerContextAsProxyTypeface(effects, desc, const_cast<SkTypeface_proxy*>(this)),
*const_cast<SkTypeface_proxy*>(this),
effects,
desc);
}
void SkTypeface_proxy::onFilterRec(SkScalerContextRec* rec) const {
fRealTypeface->onFilterRec(rec);
}
void SkTypeface_proxy::onGetFontDescriptor(SkFontDescriptor* desc, bool* serialize) const {
fRealTypeface->onGetFontDescriptor(desc, serialize);
}
void SkTypeface_proxy::getGlyphToUnicodeMap(SkSpan<SkUnichar> glyphToUnicode) const {
fRealTypeface->getGlyphToUnicodeMap(glyphToUnicode);
}
void SkTypeface_proxy::getPostScriptGlyphNames(SkString* names) const {
return fRealTypeface->getPostScriptGlyphNames(names);
}
std::unique_ptr<SkAdvancedTypefaceMetrics> SkTypeface_proxy::onGetAdvancedMetrics() const {
return fRealTypeface->onGetAdvancedMetrics();
}
void SkTypeface_proxy::onCharsToGlyphs(SkSpan<const SkUnichar> chars,
SkSpan<SkGlyphID> glyphs) const {
fRealTypeface->unicharsToGlyphs(chars, glyphs);
}
int SkTypeface_proxy::onCountGlyphs() const { return fRealTypeface->countGlyphs(); }
void* SkTypeface_proxy::onGetCTFontRef() const { return fRealTypeface->onGetCTFontRef(); }
bool SkTypeface_proxy::onGetKerningPairAdjustments(SkSpan<const SkGlyphID> glyphs,
SkSpan<int32_t> adjustments) const {
return fRealTypeface->onGetKerningPairAdjustments(glyphs, adjustments);
}
SkScalerContext_proxy::SkScalerContext_proxy(std::unique_ptr<SkScalerContext> realScalerContext,
SkTypeface_proxy& proxyTypeface,
const SkScalerContextEffects& effects,
const SkDescriptor* desc)
: SkScalerContext(proxyTypeface, effects, desc)
, fRealScalerContext(std::move(realScalerContext))
{ }
SkScalerContext::GlyphMetrics SkScalerContext_proxy::generateMetrics(const SkGlyph& glyph, SkArenaAlloc* alloc) {
return fRealScalerContext->generateMetrics(glyph, alloc);
}
void SkScalerContext_proxy::generateImage(const SkGlyph& glyph, void* imageBuffer) {
fRealScalerContext->generateImage(glyph, imageBuffer);
}
std::optional<SkScalerContext::GeneratedPath>
SkScalerContext_proxy::generatePath(const SkGlyph& glyph) {
return fRealScalerContext->generatePath(glyph);
}
sk_sp<SkDrawable> SkScalerContext_proxy::generateDrawable(const SkGlyph& glyph) {
return fRealScalerContext->generateDrawable(glyph);
}
void SkScalerContext_proxy::generateFontMetrics(SkFontMetrics* metrics) {
fRealScalerContext->generateFontMetrics(metrics);
}