void SkImageInfo::flatten(SkWriteBuffer& buffer) const { buffer.write32(fWidth); buffer.write32(fHeight); SkASSERT(0 == (fAlphaType & ~kAlphaTypeMask)); SkASSERT(0 == (fColorType & ~kColorTypeMask)); uint32_t packed = (fAlphaType << 8) | live_to_stored(fColorType); buffer.write32(packed); if (fColorSpace) { sk_sp<SkData> data = fColorSpace->serialize(); if (data) { buffer.writeDataAsByteArray(data.get()); } else { buffer.writeByteArray(nullptr, 0); } } else { sk_sp<SkData> data = SkData::MakeEmpty(); buffer.writeDataAsByteArray(data.get()); } }
void SkToSRGBColorFilter::flatten(SkWriteBuffer& buffer) const { buffer.writeDataAsByteArray(fSrcColorSpace->serialize().get()); }
void SkColorCubeFilter::flatten(SkWriteBuffer& buffer) const { this->INHERITED::flatten(buffer); buffer.writeInt(fCache.cubeDimension()); buffer.writeDataAsByteArray(fCubeData); }
void SkAnnotation::writeToBuffer(SkWriteBuffer& buffer) const { buffer.writeString(fKey.c_str()); buffer.writeDataAsByteArray(fData); }