SkGradientShaderBase::SkGradientShaderBase(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { fCacheAlpha = 256; fMapper = buffer.readFlattenableT<SkUnitMapper>(); fCache16 = fCache16Storage = NULL; fCache32 = NULL; fCache32PixelRef = NULL; int colorCount = fColorCount = buffer.getArrayCount(); if (colorCount > kColorStorageCount) { size_t size = sizeof(SkColor) + sizeof(SkPMColor) + sizeof(Rec); fOrigColors = (SkColor*)sk_malloc_throw(size * colorCount); } else { fOrigColors = fStorage; } buffer.readColorArray(fOrigColors); fTileMode = (TileMode)buffer.readUInt(); fTileProc = gTileProcs[fTileMode]; fRecs = (Rec*)(fOrigColors + colorCount); if (colorCount > 2) { Rec* recs = fRecs; recs[0].fPos = 0; for (int i = 1; i < colorCount; i++) { recs[i].fPos = buffer.readInt(); recs[i].fScale = buffer.readUInt(); } } buffer.readMatrix(&fPtsToUnit); this->initCommon(); }
SkBitmapProcShader::SkBitmapProcShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { buffer.readBitmap(&fRawBitmap); fState.fTileModeX = buffer.readUInt(); fState.fTileModeY = buffer.readUInt(); fFlags = 0; // computed in setContext }
SkImageFilter::SkImageFilter(int inputCount, SkFlattenableReadBuffer& buffer) { fInputCount = buffer.readInt(); if (buffer.validate((fInputCount >= 0) && ((inputCount < 0) || (fInputCount == inputCount)))) { fInputs = new SkImageFilter*[fInputCount]; for (int i = 0; i < fInputCount; i++) { if (buffer.readBool()) { fInputs[i] = buffer.readImageFilter(); } else { fInputs[i] = NULL; } if (!buffer.isValid()) { fInputCount = i; // Do not use fInputs past that point in the destructor break; } } SkRect rect; buffer.readRect(&rect); if (buffer.isValid() && buffer.validate(SkIsValidRect(rect))) { uint32_t flags = buffer.readUInt(); fCropRect = CropRect(rect, flags); } } else { fInputCount = 0; fInputs = NULL; } }
SkBlurDrawLooper::SkBlurDrawLooper(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { fDx = buffer.readScalar(); fDy = buffer.readScalar(); fBlurColor = buffer.readColor(); fBlur = buffer.readMaskFilter(); fColorFilter = buffer.readColorFilter(); fBlurFlags = buffer.readUInt() & kAll_BlurFlag; }
SkPixelRef::SkPixelRef(SkFlattenableReadBuffer& buffer, SkBaseMutex* mutex) : INHERITED(buffer) { this->setMutex(mutex); fPixels = NULL; fColorTable = NULL; // we do not track ownership of this fLockCount = 0; fIsImmutable = buffer.readBool(); fGenerationID = buffer.readUInt(); fPreLocked = false; }
SkImageRef::SkImageRef(SkFlattenableReadBuffer& buffer) : INHERITED(buffer, &gImageRefMutex), fErrorInDecoding(false) { fConfig = (SkBitmap::Config)buffer.readUInt(); fSampleSize = buffer.readInt(); fDoDither = buffer.readBool(); size_t length = buffer.getArrayCount(); fStream = SkNEW_ARGS(SkMemoryStream, (length)); buffer.readByteArray((void*)fStream->getMemoryBase()); fPrev = fNext = NULL; fFactory = NULL; }
SkModeColorFilter(SkFlattenableReadBuffer& buffer) { fColor = buffer.readColor(); fMode = (SkXfermode::Mode)buffer.readUInt(); this->updateCache(); buffer.validate(SkIsValidMode(fMode)); }
SkAnnotation::SkAnnotation(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { fFlags = buffer.readUInt(); fDataSet = buffer.readFlattenableT<SkDataSet>(); }
SkLumaMaskXfermode::SkLumaMaskXfermode(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) , fMode((SkXfermode::Mode)buffer.readUInt()) { SkASSERT(kSrcIn_Mode == fMode || kDstIn_Mode == fMode); }