static sk_sp<SkFlattenable> CreateProc(SkReadBuffer& buffer) { sk_sp<SkFlattenable> intDrawable( buffer.readFlattenable(SkFlattenable::kSkDrawable_Type)); SkASSERT(intDrawable); SkASSERT(!strcmp("IntDrawable", intDrawable->getTypeName())); sk_sp<SkFlattenable> paintDrawable( buffer.readFlattenable(SkFlattenable::kSkDrawable_Type)); SkASSERT(paintDrawable); SkASSERT(!strcmp("PaintDrawable", paintDrawable->getTypeName())); return sk_sp<CompoundDrawable>(new CompoundDrawable((IntDrawable*) intDrawable.get(), (PaintDrawable*) paintDrawable.get())); }
static sk_sp<SkFlattenable> CreateProc(SkReadBuffer& buffer) { sk_sp<SkFlattenable> compoundDrawable( buffer.readFlattenable(SkFlattenable::kSkDrawable_Type)); SkASSERT(compoundDrawable); SkASSERT(!strcmp("CompoundDrawable", compoundDrawable->getTypeName())); sk_sp<SkFlattenable> intDrawable( buffer.readFlattenable(SkFlattenable::kSkDrawable_Type)); SkASSERT(intDrawable); SkASSERT(!strcmp("IntDrawable", intDrawable->getTypeName())); sk_sp<SkFlattenable> drawable( buffer.readFlattenable(SkFlattenable::kSkDrawable_Type)); SkASSERT(drawable); return sk_sp<RootDrawable>(new RootDrawable((CompoundDrawable*) compoundDrawable.get(), (IntDrawable*) intDrawable.get(), (SkDrawable*) drawable.get())); }
static void Read(SkReadBuffer& reader, T** flattenable) { *flattenable = (T*)reader.readFlattenable(T::GetFlattenableType()); }