class SkFactorySet; class SkPictureRecord; class SkRefCntSet; class SkStream; class SkWStream; class SkWriteBuffer; struct SkDeserialProcs; struct SkSerialProcs;
// Does not affect ownership of SkStream. bool parseStream(SkStream*, const SkDeserialProcs&, SkTypefacePlayback*, int recursionLimit); bool parseBuffer(SkReadBuffer& buffer);
public: const SkImage* getImage(SkReadBuffer* reader) const { // images are written base-0, unlike paths, pictures, drawables, etc. constint index = reader->readInt(); return reader->validateIndex(index, fImages.size()) ? fImages[index].get() : nullptr;
}
const SkPath& getPath(SkReadBuffer* reader) const { int index = reader->readInt(); return reader->validate(index > 0 && index <= fPaths.size()) ?
fPaths[index - 1] : fEmptyPath;
}
// Return a paint if one was used for this op, or nullptr if none was used. const SkPaint* optionalPaint(SkReadBuffer* reader) const;
// Return the paint used for this op, invalidating the SkReadBuffer if there appears to be none. // The returned paint is always safe to use. const SkPaint& requiredPaint(SkReadBuffer* reader) const;
private: // these help us with reading/writing // Does not affect ownership of SkStream. bool parseStreamTag(SkStream*, uint32_t tag, uint32_t size, const SkDeserialProcs&, SkTypefacePlayback*, int recursionLimit); void parseBufferTag(SkReadBuffer&, uint32_t tag, uint32_t size); void flattenToBuffer(SkWriteBuffer&, bool textBlobsOnly) const;
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.