class SkReadBuffer; class SkStrikeClient; class SkWriteBuffer;
class GrMeshDrawTarget; namespace skgpu::ganesh { class AtlasTextOp; } namespace skgpu::graphite { class Device; class Recorder;
}
namespace sktext::gpu { class Glyph; class SubRunAllocator;
// -- GlyphVector ---------------------------------------------------------------------------------- // GlyphVector provides a way to delay the lookup of Glyphs until the code is running on the GPU // in single threaded mode. The GlyphVector is created in a multi-threaded environment, but the // StrikeCache is only single threaded (and must be single threaded because of the atlas). class GlyphVector { public: union Variant { // Initially, filled with packed id, but changed to Glyph* in the onPrepare stage.
SkPackedGlyphID packedGlyphID;
Glyph* glyph; // Add ctors to help SkArenaAlloc create arrays.
Variant() : glyph{nullptr} {}
Variant(SkPackedGlyphID id) : packedGlyphID{id} {}
};
// This doesn't need to include sizeof(GlyphVector) because this is embedded in each of // the sub runs. int unflattenSize() const { return GlyphVectorSize(fGlyphs.size()); }
// This function is implemented in ganesh/text/GrAtlasManager.cpp, and should only be called // from AtlasTextOp or linking issues may occur.
std::tuple<bool, int> regenerateAtlasForGanesh( int begin, int end,
skgpu::MaskFormat maskFormat, int srcPadding,
GrMeshDrawTarget*);
// This function is implemented in graphite/text/AtlasManager.cpp, and should only be called // from graphite::Device or linking issues may occur.
std::tuple<bool, int> regenerateAtlasForGraphite( int begin, int end,
skgpu::MaskFormat maskFormat, int srcPadding,
skgpu::graphite::Recorder*);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.