virtual void onPreDraw() { SkBitmap bm; if (SkBitmap::kIndex8_Config == fConfig) { bm.setConfig(SkBitmap::kARGB_8888_Config, W, H); } else { bm.setConfig(fConfig, W, H); } bm.allocPixels(); bm.eraseColor(fIsOpaque ? SK_ColorBLACK : 0); onDrawIntoBitmap(bm); if (SkBitmap::kIndex8_Config == fConfig) { convertToIndex666(bm, &fBitmap); } else { fBitmap = bm; } if (fBitmap.getColorTable()) { fBitmap.getColorTable()->setIsOpaque(fIsOpaque); } fBitmap.setIsOpaque(fIsOpaque); fBitmap.setIsVolatile(fIsVolatile); }
virtual void onPreDraw() { SkBitmap bm; if (kIndex_8_SkColorType == fColorType) { bm.allocPixels(SkImageInfo::MakeN32(W, H, fAlphaType)); } else { bm.allocPixels(SkImageInfo::Make(W, H, fColorType, fAlphaType)); } bm.eraseColor(kOpaque_SkAlphaType == fAlphaType ? SK_ColorBLACK : 0); onDrawIntoBitmap(bm); if (kIndex_8_SkColorType == fColorType) { convertToIndex666(bm, &fBitmap, fAlphaType); } else { fBitmap = bm; } fBitmap.setIsVolatile(fIsVolatile); }