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); }
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()]); }