BitmapBench(void* param, bool isOpaque, SkBitmap::Config c, bool forceUpdate = false, bool bitmapVolatile = false, int tx = -1, int ty = -1) : INHERITED(param), fIsOpaque(isOpaque), fForceUpdate(forceUpdate), fTileX(tx), fTileY(ty) { const int w = 128; const int h = 128; SkBitmap bm; if (SkBitmap::kIndex8_Config == c) { bm.setConfig(SkBitmap::kARGB_8888_Config, w, h); } else { bm.setConfig(c, w, h); } bm.allocPixels(); bm.eraseColor(isOpaque ? SK_ColorBLACK : 0); drawIntoBitmap(bm); if (SkBitmap::kIndex8_Config == c) { convertToIndex666(bm, &fBitmap); } else { fBitmap = bm; } if (fBitmap.getColorTable()) { fBitmap.getColorTable()->setIsOpaque(isOpaque); } fBitmap.setIsOpaque(isOpaque); fBitmap.setIsVolatile(bitmapVolatile); }
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); }
RepeatTileBench(void* param, SkBitmap::Config c) : INHERITED(param) { const int w = 50; const int h = 50; SkBitmap bm; if (SkBitmap::kIndex8_Config == c) { bm.setConfig(SkBitmap::kARGB_8888_Config, w, h); } else { bm.setConfig(c, w, h); } bm.allocPixels(); bm.eraseColor(0); drawIntoBitmap(bm); if (SkBitmap::kIndex8_Config == c) { SkBitmap tmp; convertToIndex666(bm, &tmp); bm = tmp; } SkShader* s = SkShader::CreateBitmapShader(bm, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode); fPaint.setShader(s)->unref(); fName.printf("repeatTile_%s", gConfigName[bm.config()]); }
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); }