#include "src/text/gpu/TextBlob.h"
#include "include/core/SkMatrix.h"
#include "include/core/SkPoint.h"
#include "include/core/SkRect.h"
#include "include/core/SkScalar.h"
#include "include/private/SkColorData.h"
#include "include/private/base/SkAssert.h"
#include "include/private/base/SkCPUTypes.h"
#include "src/core/SkDevice.h"
#include "src/core/SkFontPriv.h"
#include "src/core/SkMaskFilterBase.h"
#include "src/core/SkPaintPriv.h"
#include "src/core/SkScalerContext.h"
#include "src/text/GlyphRun.h"
#include "src/text/gpu/SlugImpl.h"
#include "src/text/gpu/SubRunAllocator.h"
#include "src/text/gpu/SubRunContainer.h"
#include "src/text/gpu/SubRunControl.h"
#include <memory>
#include <utility>
class SkMaskFilter;
usingnamespacesktext::gpu;
namespace {
std::tuple<bool, SkVector> can_use_direct(
const SkMatrix& initialPositionMatrix, const SkMatrix& positionMatrix) { … }
static SkColor compute_canonical_color(const SkPaint& paint, bool lcd) { … }
}
namespace sktext::gpu {
auto TextBlob::Key::Make(const GlyphRunList& glyphRunList,
const SkPaint& paint,
const SkMatrix& drawMatrix,
const SkStrikeDeviceInfo& strikeDevice) -> std::tuple<bool, Key> { … }
bool TextBlob::Key::operator==(const TextBlob::Key& that) const { … }
void TextBlob::operator delete(void* p) { … }
void* TextBlob::operator new(size_t) { … }
void* TextBlob::operator new(size_t, void* p) { … }
TextBlob::~TextBlob() = default;
sk_sp<TextBlob> TextBlob::Make(const GlyphRunList& glyphRunList,
const SkPaint& paint,
const SkMatrix& positionMatrix,
SkStrikeDeviceInfo strikeDeviceInfo,
StrikeForGPUCacheInterface* strikeCache) { … }
void TextBlob::addKey(const Key& key) { … }
bool TextBlob::canReuse(const SkPaint& paint, const SkMatrix& positionMatrix) const { … }
const TextBlob::Key& TextBlob::key() const { … }
void TextBlob::draw(SkCanvas* canvas,
SkPoint drawOrigin,
const SkPaint& paint,
const AtlasDrawDelegate& atlasDelegate) { … }
TextBlob::TextBlob(SubRunAllocator&& alloc,
SubRunContainerOwner subRuns,
int totalMemorySize,
SkColor initialLuminance)
: … { … }
sk_sp<Slug> MakeSlug(const SkMatrix& drawMatrix,
const sktext::GlyphRunList& glyphRunList,
const SkPaint& paint,
SkStrikeDeviceInfo strikeDeviceInfo,
sktext::StrikeForGPUCacheInterface* strikeCache) { … }
}