void SkMergeImageFilter::flatten(SkWriteBuffer& buffer) const { this->INHERITED::flatten(buffer); buffer.writeBool(fModes != nullptr); if (fModes) { buffer.writeByteArray(fModes, this->countInputs() * sizeof(fModes[0])); } }
void SkEmbossMaskFilter::flatten(SkWriteBuffer& buffer) const { this->INHERITED::flatten(buffer); Light tmpLight = fLight; tmpLight.fPad = 0; // for the font-cache lookup to be clean buffer.writeByteArray(&tmpLight, sizeof(tmpLight)); buffer.writeScalar(fBlurSigma); }
void SkMallocPixelRef::flatten(SkWriteBuffer& buffer) const { this->INHERITED::flatten(buffer); buffer.write32(SkToU32(fRB)); // TODO: replace this bulk write with a chunky one that can trim off any // trailing bytes on each scanline (in case rowbytes > width*size) size_t size = this->info().getSafeSize(fRB); buffer.writeByteArray(fStorage, size); buffer.writeBool(fCTable != NULL); if (fCTable) { fCTable->writeToBuffer(buffer); } }
void SkPicture::flatten(SkWriteBuffer& buffer) const { SkPictInfo info = this->createHeader(); SkAutoTDelete<SkPictureData> data(this->backport()); buffer.writeByteArray(&info.fMagic, sizeof(info.fMagic)); buffer.writeUInt(info.fVersion); buffer.writeRect(info.fCullRect); buffer.writeUInt(info.fFlags); if (data) { buffer.writeBool(true); data->flatten(buffer); } else { buffer.writeBool(false); } }
void SkPictureData::flatten(SkWriteBuffer& buffer) const { write_tag_size(buffer, SK_PICT_READER_TAG, fOpData->size()); buffer.writeByteArray(fOpData->bytes(), fOpData->size()); if (fPictureCount > 0) { write_tag_size(buffer, SK_PICT_PICTURE_TAG, fPictureCount); for (int i = 0; i < fPictureCount; i++) { fPictureRefs[i]->flatten(buffer); } } // Write this picture playback's data into a writebuffer this->flattenToBuffer(buffer); buffer.write32(SK_PICT_EOF_TAG); }
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 SkPicture::flatten(SkWriteBuffer& buffer) const { SkPicturePlayback* playback = fPlayback; if (NULL == playback && fRecord) { playback = SkNEW_ARGS(SkPicturePlayback, (*fRecord)); } SkPictInfo header; this->createHeader(&header); buffer.writeByteArray(&header, sizeof(header)); if (playback) { buffer.writeBool(true); playback->flatten(buffer); // delete playback if it is a local version (i.e. cons'd up just now) if (playback != fPlayback) { SkDELETE(playback); } } else { buffer.writeBool(false); } }
static void Write(SkWriteBuffer& writer, unsigned char* data, uint32_t arraySize) { writer.writeByteArray(data, arraySize); }
void SkTableMaskFilter::flatten(SkWriteBuffer& wb) const { wb.writeByteArray(fTable, 256); }