SkBlurDrawLooper::SkBlurDrawLooper(SkFlattenableReadBuffer& buffer) { fDx = buffer.readScalar(); fDy = buffer.readScalar(); fBlurColor = buffer.readU32(); fBlur = static_cast<SkMaskFilter*>(buffer.readFlattenable()); fColorFilter = static_cast<SkColorFilter*>(buffer.readFlattenable()); fBlurFlags = buffer.readU32() & kAll_BlurFlag; }
SkComposeShader::SkComposeShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { fShaderA = static_cast<SkShader*>(buffer.readFlattenable()); if (NULL == fShaderA) { fShaderA = SkNEW_ARGS(SkColorShader, (0)); } fShaderB = static_cast<SkShader*>(buffer.readFlattenable()); if (NULL == fShaderB) { fShaderB = SkNEW_ARGS(SkColorShader, (0)); } fMode = static_cast<SkXfermode*>(buffer.readFlattenable()); }
static void paint_read(SkPaint* paint, SkFlattenableReadBuffer& buffer) { paint->setAntiAlias(buffer.readBool()); paint->setStyle((SkPaint::Style)buffer.readU8()); paint->setAlpha(buffer.readU8()); if (paint->getStyle() != SkPaint::kFill_Style) { paint->setStrokeWidth(buffer.readScalar()); paint->setStrokeMiter(buffer.readScalar()); paint->setStrokeCap((SkPaint::Cap)buffer.readU8()); paint->setStrokeJoin((SkPaint::Join)buffer.readU8()); } paint->setMaskFilter((SkMaskFilter*)buffer.readFlattenable())->safeUnref(); paint->setPathEffect((SkPathEffect*)buffer.readFlattenable())->safeUnref(); paint->setRasterizer((SkRasterizer*)buffer.readFlattenable())->safeUnref(); paint->setXfermode((SkXfermode*)buffer.readFlattenable())->safeUnref(); }
SkImageFilter::SkImageFilter(SkFlattenableReadBuffer& buffer) : fInputCount(buffer.readInt()), fInputs(new SkImageFilter*[fInputCount]) { for (int i = 0; i < fInputCount; i++) { if (buffer.readBool()) { fInputs[i] = static_cast<SkImageFilter*>(buffer.readFlattenable()); } else { fInputs[i] = NULL; } } }
SkMergeImageFilter::SkMergeImageFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { int storedCount = buffer.readS32(); this->initAlloc(SkAbs32(storedCount), storedCount < 0); for (int i = 0; i < fCount; ++i) { fFilters[i] = (SkImageFilter*)buffer.readFlattenable(); } if (fModes) { SkASSERT(storedCount < 0); buffer.read(fModes, fCount * sizeof(fModes[0])); } else { SkASSERT(storedCount >= 0); } }
SkGroupShape::SkGroupShape(SkFlattenableReadBuffer& buffer) : INHERITED(buffer){ int count = buffer.readS32(); for (int i = 0; i < count; i++) { SkShape* shape = reinterpret_cast<SkShape*>(buffer.readFlattenable()); SkMatrixRef* mr = NULL; uint32_t size = buffer.readS32(); if (size) { char storage[SkMatrix::kMaxFlattenSize]; buffer.read(storage, SkAlign4(size)); mr = SkNEW(SkMatrixRef); mr->unflatten(storage); } if (shape) { this->appendShape(shape, mr)->unref(); } SkSafeUnref(mr); } }
SkFilterShader::SkFilterShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { fShader = static_cast<SkShader*>(buffer.readFlattenable()); fFilter = static_cast<SkColorFilter*>(buffer.readFlattenable()); }
SkPairPathEffect::SkPairPathEffect(SkFlattenableReadBuffer& buffer) { fPE0 = (SkPathEffect*)buffer.readFlattenable(); fPE1 = (SkPathEffect*)buffer.readFlattenable(); }
SkComposeImageFilter::SkComposeImageFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { fOuter = (SkImageFilter*)buffer.readFlattenable(); fInner = (SkImageFilter*)buffer.readFlattenable(); }
SkColorFilterImageFilter::SkColorFilterImageFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { fColorFilter = (SkColorFilter*)buffer.readFlattenable(); }
SkDataPixelRef::SkDataPixelRef(SkFlattenableReadBuffer& buffer) : INHERITED(buffer, NULL) { fData = (SkData*)buffer.readFlattenable(); this->setPreLocked(const_cast<void*>(fData->data()), NULL); }