diff options
55 files changed, 105 insertions, 177 deletions
diff --git a/gm/aaclip.cpp b/gm/aaclip.cpp index f57e57c400..ec29a4f896 100644 --- a/gm/aaclip.cpp +++ b/gm/aaclip.cpp @@ -124,8 +124,7 @@ static void test_grad(SkCanvas* canvas) { static SkCanvas* MakeCanvas(const SkIRect& bounds) { SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, bounds.width(), bounds.height()); - bm.allocPixels(); + bm.allocN32Pixels(bounds.width(), bounds.height()); bm.eraseColor(SK_ColorTRANSPARENT); SkCanvas* canvas = new SkCanvas(bm); diff --git a/gm/aarectmodes.cpp b/gm/aarectmodes.cpp index 704ddcbb6d..a614761e69 100644 --- a/gm/aarectmodes.cpp +++ b/gm/aarectmodes.cpp @@ -108,8 +108,7 @@ static SkScalar drawCell(SkCanvas* canvas, SkXfermode* mode, static SkShader* make_bg_shader() { SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, 2, 2); - bm.allocPixels(); + bm.allocN32Pixels(2, 2); *bm.getAddr32(0, 0) = *bm.getAddr32(1, 1) = 0xFFFFFFFF; *bm.getAddr32(1, 0) = *bm.getAddr32(0, 1) = SkPackARGB32(0xFF, 0xCC, 0xCC, 0xCC); diff --git a/gm/arithmode.cpp b/gm/arithmode.cpp index 63be6c3871..d85e43d8e6 100644 --- a/gm/arithmode.cpp +++ b/gm/arithmode.cpp @@ -17,8 +17,7 @@ static SkBitmap make_bm() { SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, WW, HH); - bm.allocPixels(); + bm.allocN32Pixels(WW, HH); bm.eraseColor(SK_ColorTRANSPARENT); return bm; } diff --git a/gm/bicubicfilter.cpp b/gm/bicubicfilter.cpp index 7eb0aeebb2..825175e252 100644 --- a/gm/bicubicfilter.cpp +++ b/gm/bicubicfilter.cpp @@ -25,9 +25,7 @@ protected: void make_checkerboard(int width, int height) { SkASSERT(width % 2 == 0); SkASSERT(height % 2 == 0); - fCheckerboard.setConfig(SkBitmap::kARGB_8888_Config, width, height); - fCheckerboard.allocPixels(); - SkAutoLockPixels lock(fCheckerboard); + fCheckerboard.allocN32Pixels(width, height); for (int y = 0; y < height; y += 2) { SkPMColor* s = fCheckerboard.getAddr32(0, y); for (int x = 0; x < width; x += 2) { diff --git a/gm/bigmatrix.cpp b/gm/bigmatrix.cpp index 9b49a64ea2..b663b2b1ef 100644 --- a/gm/bigmatrix.cpp +++ b/gm/bigmatrix.cpp @@ -59,15 +59,12 @@ protected: canvas->drawRect(rect, paint); SkBitmap bmp; - bmp.setConfig(SkBitmap::kARGB_8888_Config, 2, 2); - bmp.allocPixels(); - bmp.lockPixels(); + bmp.allocN32Pixels(2, 2); uint32_t* pixels = reinterpret_cast<uint32_t*>(bmp.getPixels()); pixels[0] = SkPackARGB32(0xFF, 0xFF, 0x00, 0x00); pixels[1] = SkPackARGB32(0xFF, 0x00, 0xFF, 0x00); pixels[2] = SkPackARGB32(0x80, 0x00, 0x00, 0x00); pixels[3] = SkPackARGB32(0xFF, 0x00, 0x00, 0xFF); - bmp.unlockPixels(); pt.set(30 * SK_Scalar1, 30 * SK_Scalar1); m.mapPoints(&pt, 1); SkShader* shader = SkShader::CreateBitmapShader( diff --git a/gm/bitmapmatrix.cpp b/gm/bitmapmatrix.cpp index 46098919f3..eec421f8cf 100644 --- a/gm/bitmapmatrix.cpp +++ b/gm/bitmapmatrix.cpp @@ -107,8 +107,7 @@ private: void setupBitmap(SkBitmap* bm) { SkASSERT(bm); static const int SIZE = 64; - bm->setConfig(SkBitmap::kARGB_8888_Config, SIZE, SIZE); - bm->allocPixels(); + bm->allocN32Pixels(SIZE, SIZE); SkCanvas canvas(*bm); SkPaint paint; diff --git a/gm/bitmappremul.cpp b/gm/bitmappremul.cpp index 8b4c2d6eda..57d22d700a 100644 --- a/gm/bitmappremul.cpp +++ b/gm/bitmappremul.cpp @@ -23,8 +23,7 @@ static const int PIXEL_SIZE_8888 = SLIDE_SIZE / 256; static const int PIXEL_SIZE_4444 = SLIDE_SIZE / 16; static void init_bitmap(SkBitmap::Config config, SkBitmap* bitmap) { - bitmap->setConfig(config, SLIDE_SIZE, SLIDE_SIZE); - bitmap->allocPixels(); + bitmap->allocConfigPixels(config, SLIDE_SIZE, SLIDE_SIZE); bitmap->eraseColor(SK_ColorWHITE); } diff --git a/gm/bitmaprect.cpp b/gm/bitmaprect.cpp index 9c6d472b57..e1034a9255 100644 --- a/gm/bitmaprect.cpp +++ b/gm/bitmaprect.cpp @@ -14,8 +14,7 @@ #include "SkShader.h" static void make_bitmap(SkBitmap* bitmap) { - bitmap->setConfig(SkBitmap::kARGB_8888_Config, 64, 64); - bitmap->allocPixels(); + bitmap->allocN32Pixels(64, 64); SkCanvas canvas(*bitmap); @@ -100,10 +99,7 @@ static void make_3x3_bitmap(SkBitmap* bitmap) { }; - bitmap->setConfig(SkBitmap::kARGB_8888_Config, gXSize, gYSize); - bitmap->allocPixels(); - - SkAutoLockPixels lock(*bitmap); + bitmap->allocN32Pixels(gXSize, gYSize); for (int y = 0; y < gYSize; y++) { for (int x = 0; x < gXSize; x++) { *bitmap->getAddr32(x, y) = textureData[x][y]; @@ -157,10 +153,7 @@ static void make_big_bitmap(SkBitmap* bitmap) { static const int gYSize = 4096; static const int gBorderWidth = 10; - bitmap->setConfig(SkBitmap::kARGB_8888_Config, gXSize, gYSize); - bitmap->allocPixels(); - - SkAutoLockPixels lock(*bitmap); + bitmap->allocN32Pixels(gXSize, gYSize); for (int y = 0; y < gYSize; ++y) { for (int x = 0; x < gXSize; ++x) { if (x <= gBorderWidth || x >= gXSize-gBorderWidth || diff --git a/gm/bitmaprecttest.cpp b/gm/bitmaprecttest.cpp index cade0a7193..6f0ab58077 100644 --- a/gm/bitmaprecttest.cpp +++ b/gm/bitmaprecttest.cpp @@ -9,8 +9,7 @@ #include "SkCanvas.h" static void make_bm(SkBitmap* bm) { - bm->setConfig(SkBitmap::kARGB_8888_Config, 60, 60); - bm->allocPixels(); + bm->allocN32Pixels(60, 60); bm->eraseColor(0); SkCanvas canvas(*bm); diff --git a/gm/bitmapscroll.cpp b/gm/bitmapscroll.cpp index a1c0ce4702..b14b0475dd 100644 --- a/gm/bitmapscroll.cpp +++ b/gm/bitmapscroll.cpp @@ -26,10 +26,7 @@ static void make_bitmap(int quarterWidth, int quarterHeight, SkBitmap *bitmap) { pAlphaGray.setColor(0x66888888); // Prepare bitmap, and a canvas that draws into it. - bitmap->reset(); - bitmap->setConfig(SkBitmap::kARGB_8888_Config, - quarterWidth*4, quarterHeight*4); - bitmap->allocPixels(); + bitmap->allocN32Pixels(quarterWidth*4, quarterHeight*4); SkCanvas canvas(*bitmap); SkScalar w = SkIntToScalar(quarterWidth); diff --git a/gm/bitmapshader.cpp b/gm/bitmapshader.cpp index 4fd68ee77f..d1915c9c90 100644 --- a/gm/bitmapshader.cpp +++ b/gm/bitmapshader.cpp @@ -17,8 +17,7 @@ static void draw_bm(SkBitmap* bm) { SkPaint bluePaint; bluePaint.setColor(SK_ColorBLUE); - bm->setConfig(SkBitmap::kARGB_8888_Config, 20, 20); - bm->allocPixels(); + bm->allocN32Pixels(20, 20); bm->eraseColor(SK_ColorRED); SkCanvas canvas(*bm); @@ -29,8 +28,7 @@ static void draw_mask(SkBitmap* bm) { SkPaint circlePaint; circlePaint.setColor(SK_ColorBLACK); - bm->setConfig(SkBitmap::kA8_Config, 20, 20); - bm->allocPixels(); + bm->allocConfigPixels(SkBitmap::kA8_Config, 20, 20); bm->eraseColor(SK_ColorTRANSPARENT); SkCanvas canvas(*bm); diff --git a/gm/bitmapsource.cpp b/gm/bitmapsource.cpp index d6e98a5bbd..6d575eb72e 100644 --- a/gm/bitmapsource.cpp +++ b/gm/bitmapsource.cpp @@ -22,8 +22,7 @@ protected: } void makeBitmap() { - fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 100, 100); - fBitmap.allocPixels(); + fBitmap.allocN32Pixels(100, 100); SkBitmapDevice device(fBitmap); SkCanvas canvas(&device); canvas.clear(0x00000000); diff --git a/gm/bleed.cpp b/gm/bleed.cpp index 881760468e..c343d84236 100644 --- a/gm/bleed.cpp +++ b/gm/bleed.cpp @@ -24,10 +24,7 @@ static void make_ringed_bitmap(SkBitmap* result, int width, int height) { static const SkPMColor kBlack = SkPreMultiplyColor(SK_ColorBLACK); static const SkPMColor kWhite = SkPreMultiplyColor(SK_ColorWHITE); - result->setConfig(SkBitmap::kARGB_8888_Config, width, height, 0, - kOpaque_SkAlphaType); - result->allocPixels(); - SkAutoLockPixels lock(*result); + result->allocN32Pixels(width, height, true); SkPMColor* scanline = result->getAddr32(0, 0); for (int x = 0; x < width; ++x) { diff --git a/gm/clippedbitmapshaders.cpp b/gm/clippedbitmapshaders.cpp index 4087c89c38..72c0474260 100644 --- a/gm/clippedbitmapshaders.cpp +++ b/gm/clippedbitmapshaders.cpp @@ -27,15 +27,12 @@ namespace skiagm { static SkBitmap create_bitmap() { SkBitmap bmp; - bmp.setConfig(SkBitmap::kARGB_8888_Config, 2, 2); - bmp.allocPixels(); - bmp.lockPixels(); + bmp.allocN32Pixels(2, 2); uint32_t* pixels = reinterpret_cast<uint32_t*>(bmp.getPixels()); pixels[0] = SkPreMultiplyColor(SK_ColorRED); pixels[1] = SkPreMultiplyColor(SK_ColorGREEN); pixels[2] = SkPreMultiplyColor(SK_ColorBLACK); pixels[3] = SkPreMultiplyColor(SK_ColorBLUE); - bmp.unlockPixels(); return bmp; } diff --git a/gm/colormatrix.cpp b/gm/colormatrix.cpp index 2f98693da2..e0dcfaf72e 100644 --- a/gm/colormatrix.cpp +++ b/gm/colormatrix.cpp @@ -63,8 +63,7 @@ protected: SkBitmap createSolidBitmap(int width, int height) { SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, width, height); - bm.allocPixels(); + bm.allocN32Pixels(width, height); SkCanvas canvas(bm); canvas.clear(0x0); for (int y = 0; y < height; ++y) { @@ -81,8 +80,7 @@ protected: // creates a bitmap with shades of transparent gray. SkBitmap createTransparentBitmap(int width, int height) { SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, width, height); - bm.allocPixels(); + bm.allocN32Pixels(width, height); SkCanvas canvas(bm); canvas.clear(0x0); diff --git a/gm/deviceproperties.cpp b/gm/deviceproperties.cpp index 8bca4b7f21..8c4649c372 100644 --- a/gm/deviceproperties.cpp +++ b/gm/deviceproperties.cpp @@ -38,8 +38,7 @@ protected: virtual void onDraw(SkCanvas* originalCanvas) { SkISize size = this->getISize(); SkBitmap bitmap; - bitmap.setConfig(SkBitmap::kARGB_8888_Config, size.width(), size.height()); - bitmap.allocPixels(); + bitmap.allocN32Pixels(size.width(), size.height()); SkDeviceProperties properties = SkDeviceProperties::Make( SkDeviceProperties::Geometry::Make(SkDeviceProperties::Geometry::kVertical_Orientation, SkDeviceProperties::Geometry::kBGR_Layout), diff --git a/gm/displacement.cpp b/gm/displacement.cpp index cc664012da..ef6207a20d 100644 --- a/gm/displacement.cpp +++ b/gm/displacement.cpp @@ -32,8 +32,7 @@ protected: } void make_bitmap() { - fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 80, 80); - fBitmap.allocPixels(); + fBitmap.allocN32Pixels(80, 80); SkBitmapDevice device(fBitmap); SkCanvas canvas(&device); canvas.clear(0x00000000); @@ -46,8 +45,7 @@ protected: } void make_checkerboard(SkBitmap* bitmap, int w, int h) { - bitmap->setConfig(SkBitmap::kARGB_8888_Config, w, h); - bitmap->allocPixels(); + bitmap->allocN32Pixels(w, h); SkBitmapDevice device(*bitmap); SkCanvas canvas(&device); canvas.clear(0x00000000); diff --git a/gm/downsamplebitmap.cpp b/gm/downsamplebitmap.cpp index 034538c15c..4b97804b01 100644 --- a/gm/downsamplebitmap.cpp +++ b/gm/downsamplebitmap.cpp @@ -99,8 +99,7 @@ class DownsampleBitmapTextGM: public DownsampleBitmapGM { float fTextSize; virtual void make_bitmap() SK_OVERRIDE { - fBM.setConfig(SkBitmap::kARGB_8888_Config, int(fTextSize * 8), int(fTextSize * 6)); - fBM.allocPixels(); + fBM.allocN32Pixels(int(fTextSize * 8), int(fTextSize * 6)); SkCanvas canvas(fBM); canvas.drawColor(SK_ColorWHITE); @@ -135,9 +134,7 @@ class DownsampleBitmapCheckerboardGM: public DownsampleBitmapGM { int fNumChecks; virtual void make_bitmap() SK_OVERRIDE { - fBM.setConfig(SkBitmap::kARGB_8888_Config, fSize, fSize); - fBM.allocPixels(); - SkAutoLockPixels lock(fBM); + fBM.allocN32Pixels(fSize, fSize); for (int y = 0; y < fSize; ++y) { for (int x = 0; x < fSize; ++x) { SkPMColor* s = fBM.getAddr32(x, y); @@ -183,8 +180,7 @@ class DownsampleBitmapImageGM: public DownsampleBitmapGM { SkImageDecoder::kDecodePixels_Mode); SkDELETE(codec); } else { - fBM.setConfig(SkBitmap::kARGB_8888_Config, 1, 1); - fBM.allocPixels(); + fBM.allocN32Pixels(1, 1); *(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad } fSize = fBM.height(); diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp index c88006312a..31cba51e79 100644 --- a/gm/drawbitmaprect.cpp +++ b/gm/drawbitmaprect.cpp @@ -16,8 +16,7 @@ namespace skiagm { static SkBitmap make_chessbm(int w, int h) { SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config , w, h); - bm.allocPixels(); + bm.allocN32Pixels(w, h); for (int y = 0; y < bm.height(); y++) { uint32_t* p = bm.getAddr32(0, y); @@ -30,8 +29,7 @@ static SkBitmap make_chessbm(int w, int h) { } static void makebm(SkBitmap* bm, SkBitmap::Config config, int w, int h) { - bm->setConfig(config, w, h); - bm->allocPixels(); + bm->allocConfigPixels(config, w, h); bm->eraseColor(SK_ColorTRANSPARENT); SkCanvas canvas(*bm); diff --git a/gm/dropshadowimagefilter.cpp b/gm/dropshadowimagefilter.cpp index 6cffd5bb4a..e9ed583a39 100644 --- a/gm/dropshadowimagefilter.cpp +++ b/gm/dropshadowimagefilter.cpp @@ -54,8 +54,7 @@ static void draw_bitmap(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) { r.roundOut(&bounds); SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, bounds.width(), bounds.height()); - bm.allocPixels(); + bm.allocN32Pixels(bounds.width(), bounds.height()); bm.eraseColor(SK_ColorTRANSPARENT); SkCanvas c(bm); draw_path(&c, r, NULL); @@ -74,8 +73,7 @@ static void draw_sprite(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) { r.roundOut(&bounds); SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, bounds.width(), bounds.height()); - bm.allocPixels(); + bm.allocN32Pixels(bounds.width(), bounds.height()); bm.eraseColor(SK_ColorRED); SkCanvas c(bm); diff --git a/gm/extractbitmap.cpp b/gm/extractbitmap.cpp index 520674176d..efc5d3531a 100644 --- a/gm/extractbitmap.cpp +++ b/gm/extractbitmap.cpp @@ -16,8 +16,7 @@ namespace skiagm { static void create_bitmap(SkBitmap* bitmap) { const int W = 100; const int H = 100; - bitmap->setConfig(SkBitmap::kARGB_8888_Config, W, H); - bitmap->allocPixels(); + bitmap->allocN32Pixels(W, H); SkCanvas canvas(*bitmap); canvas.drawColor(SK_ColorRED); diff --git a/gm/filterbitmap.cpp b/gm/filterbitmap.cpp index efe4d4aa2b..c580591b39 100644 --- a/gm/filterbitmap.cpp +++ b/gm/filterbitmap.cpp @@ -115,8 +115,7 @@ class FilterBitmapTextGM: public FilterBitmapGM { } void makeBitmap() SK_OVERRIDE { - fBM.setConfig(SkBitmap::kARGB_8888_Config, int(fTextSize * 8), int(fTextSize * 6)); - fBM.allocPixels(); + fBM.allocN32Pixels(int(fTextSize * 8), int(fTextSize * 6)); SkCanvas canvas(fBM); canvas.drawColor(SK_ColorWHITE); @@ -155,9 +154,7 @@ class FilterBitmapCheckerboardGM: public FilterBitmapGM { } void makeBitmap() SK_OVERRIDE { - fBM.setConfig(SkBitmap::kARGB_8888_Config, fSize, fSize); - fBM.allocPixels(); - SkAutoLockPixels lock(fBM); + fBM.allocN32Pixels(fSize, fSize); for (int y = 0; y < fSize; y ++) { for (int x = 0; x < fSize; x ++) { SkPMColor* s = fBM.getAddr32(x, y); @@ -207,8 +204,7 @@ class FilterBitmapImageGM: public FilterBitmapGM { SkImageDecoder::kDecodePixels_Mode); SkDELETE(codec); } else { - fBM.setConfig(SkBitmap::kARGB_8888_Config, 1, 1); - fBM.allocPixels(); + fBM.allocN32Pixels(1, 1); *(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad } fSize = fBM.height(); diff --git a/gm/giantbitmap.cpp b/gm/giantbitmap.cpp index ab75dc7306..c284809b16 100644 --- a/gm/giantbitmap.cpp +++ b/gm/giantbitmap.cpp @@ -27,8 +27,7 @@ class GiantBitmapGM : public skiagm::GM { const SkBitmap& getBitmap() { if (NULL == fBM) { fBM = new SkBitmap; - fBM->setConfig(SkBitmap::kARGB_8888_Config, W, H); - fBM->allocPixels(); + fBM->allocN32Pixels(W, H); fBM->eraseColor(SK_ColorWHITE); const SkColor colors[] = { diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp index 86d96fe288..e7f23655da 100644 --- a/gm/gmmain.cpp +++ b/gm/gmmain.cpp @@ -475,8 +475,7 @@ public: */ static void setup_bitmap(const ConfigData& gRec, SkISize& size, SkBitmap* bitmap) { - bitmap->setConfig(gRec.fConfig, size.width(), size.height()); - bitmap->allocPixels(); + bitmap->allocConfigPixels(gRec.fConfig, size.width(), size.height()); bitmap->eraseColor(SK_ColorTRANSPARENT); } diff --git a/gm/hairmodes.cpp b/gm/hairmodes.cpp index 6fd72fcf55..4aa999d383 100644 --- a/gm/hairmodes.cpp +++ b/gm/hairmodes.cpp @@ -60,8 +60,7 @@ static SkScalar drawCell(SkCanvas* canvas, SkXfermode* mode, SkAlpha a0, SkAlpha static SkShader* make_bg_shader() { SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, 2, 2); - bm.allocPixels(); + bm.allocN32Pixels(2, 2); *bm.getAddr32(0, 0) = *bm.getAddr32(1, 1) = 0xFFFFFFFF; *bm.getAddr32(1, 0) = *bm.getAddr32(0, 1) = SkPackARGB32(0xFF, 0xCC, 0xCC, 0xCC); diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp index 5a0b0b6a87..528dd19f33 100644 --- a/gm/imagefiltersbase.cpp +++ b/gm/imagefiltersbase.cpp @@ -119,8 +119,7 @@ static void draw_bitmap(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) { r.roundOut(&bounds); SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, bounds.width(), bounds.height()); - bm.allocPixels(); + bm.allocN32Pixels(bounds.width(), bounds.height()); bm.eraseColor(SK_ColorTRANSPARENT); SkCanvas c(bm); draw_path(&c, r, NULL); @@ -136,8 +135,7 @@ static void draw_sprite(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) { r.roundOut(&bounds); SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, bounds.width(), bounds.height()); - bm.allocPixels(); + bm.allocN32Pixels(bounds.width(), bounds.height()); bm.eraseColor(SK_ColorTRANSPARENT); SkCanvas c(bm); draw_path(&c, r, NULL); diff --git a/gm/imagefilterscropped.cpp b/gm/imagefilterscropped.cpp index 8f023f7208..9f2d70025b 100644 --- a/gm/imagefilterscropped.cpp +++ b/gm/imagefilterscropped.cpp @@ -60,8 +60,7 @@ static void draw_bitmap(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) { r.roundOut(&bounds); SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, bounds.width(), bounds.height()); - bm.allocPixels(); + bm.allocN32Pixels(bounds.width(), bounds.height()); bm.eraseColor(SK_ColorTRANSPARENT); SkCanvas c(bm); draw_path(&c, r, NULL); @@ -80,8 +79,7 @@ static void draw_sprite(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) { r.roundOut(&bounds); SkBitmap bm; - bm.setConfig(SkBitmap::kARGB_8888_Config, bounds.width(), bounds.height()); - bm.allocPixels(); + bm.allocN32Pixels(bounds.width(), bounds.height()); bm.eraseColor(SK_ColorRED); SkCanvas c(bm); diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp index a8aa5fb416..f5eaa28b13 100644 --- a/gm/imagefiltersgraph.cpp +++ b/gm/imagefiltersgraph.cpp @@ -91,8 +91,7 @@ protected: } void make_bitmap() { - fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 100, 100); - fBitmap.allocPixels(); + fBitmap.allocN32Pixels(100, 100); SkBitmapDevice device(fBitmap); SkCanvas canvas(&device); canvas.clear(0x00000000); diff --git a/gm/imagefiltersscaled.cpp b/gm/imagefiltersscaled.cpp index f5275caae1..ad52d902e7 100644 --- a/gm/imagefiltersscaled.cpp +++ b/gm/imagefiltersscaled.cpp @@ -33,8 +33,7 @@ protected: } void make_checkerboard() { - fCheckerboard.setConfig(SkBitmap::kARGB_8888_Config, 64, 64); - fCheckerboard.allocPixels(); + fCheckerboard.allocN32Pixels(64, 64); SkBitmapDevice device(fCheckerboard); SkCanvas canvas(&device); canvas.clear(0x00000000); @@ -59,8 +58,7 @@ protected: SkScalar x = SkIntToScalar(width / 2); SkScalar y = SkIntToScalar(height / 2); SkScalar radius = SkScalarMul(SkMinScalar(x, y), SkIntToScalar(4) / SkIntToScalar(5)); - fGradientCircle.setConfig(SkBitmap::kARGB_8888_Config, width, height); - fGradientCircle.allocPixels(); + fGradientCircle.allocN32Pixels(width, height); SkBitmapDevice device(fGradientCircle); SkCanvas canvas(&device); canvas.clear(0x00000000); diff --git a/gm/lighting.cpp b/gm/lighting.cpp index ab2915d57d..1cab55377a 100644 --- a/gm/lighting.cpp +++ b/gm/lighting.cpp @@ -25,8 +25,7 @@ protected: } void make_bitmap() { - fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 100, 100); - fBitmap.allocPixels(); + fBitmap.allocN32Pixels(100, 100); SkBitmapDevice device(fBitmap); SkCanvas canvas(&device); canvas.clear(0x00000000); diff --git a/gm/matrixconvolution.cpp b/gm/matrixconvolution.cpp index 932d997411..47a3581b64 100644 --- a/gm/matrixconvolution.cpp +++ b/gm/matrixconvolution.cpp @@ -24,8 +24,7 @@ protected: } void make_bitmap() { - fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 80, 80); - fBitmap.allocPixels(); + fBitmap.allocN32Pixels(80, 80); SkBitmapDevice device(fBitmap); SkCanvas canvas(&device); canvas.clear(0x00000000); diff --git a/gm/mixedxfermodes.cpp b/gm/mixedxfermodes.cpp index e3ce91a9dc..4562325557 100644 --- a/gm/mixedxfermodes.cpp +++ b/gm/mixedxfermodes.cpp @@ -84,11 +84,8 @@ protected: 0xFFCCCCCC, 0xFFFFFFFF }; SkBitmap bitmap; - bitmap.setConfig(SkBitmap::kARGB_8888_Config, 2, 2, 2 * sizeof(uint32_t)); - bitmap.allocPixels(); - bitmap.lockPixels(); + bitmap.allocN32Pixels(2, 2); memcpy(bitmap.getPixels(), kCheckerPixelData, sizeof(kCheckerPixelData)); - bitmap.unlockPixels(); fBG.reset(SkShader::CreateBitmapShader(bitmap, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode)); diff --git a/gm/modecolorfilters.cpp b/gm/modecolorfilters.cpp index 9859faa0a7..9ac8ddd812 100644 --- a/gm/modecolorfilters.cpp +++ b/gm/modecolorfilters.cpp @@ -38,8 +38,7 @@ static SkShader* make_trans_black_shader() { // draws a background behind each test rect to see transparency static SkShader* make_bg_shader(int checkSize) { SkBitmap bmp; - bmp.setConfig(SkBitmap::kARGB_8888_Config, 2 * checkSize, 2 * checkSize); - bmp.allocPixels(); + bmp.allocN32Pixels(2 * checkSize, 2 * checkSize); SkCanvas canvas(bmp); canvas.clear(0xFF800000); SkPaint paint; diff --git a/gm/morphology.cpp b/gm/morphology.cpp index 756190ec03..5cfb1c2902 100644 --- a/gm/morphology.cpp +++ b/gm/morphology.cpp @@ -26,8 +26,7 @@ protected: } void make_bitmap() { - fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 135, 135); - fBitmap.allocPixels(); + fBitmap.allocN32Pixels(135, 135); SkBitmapDevice device(fBitmap); SkCanvas canvas(&device); canvas.clear(0x0); diff --git a/gm/ninepatchstretch.cpp b/gm/ninepatchstretch.cpp index 94b2d59f28..a14af00a4e 100644 --- a/gm/ninepatchstretch.cpp +++ b/gm/ninepatchstretch.cpp @@ -12,8 +12,7 @@ static void make_bitmap(SkBitmap* bitmap, SkIRect* center) { const int kStretchy = 8; const int kSize = 2*kFixed + kStretchy; - bitmap->setConfig(SkBitmap::kARGB_8888_Config, kSize, kSize); - bitmap->allocPixels(); + bitmap->allocN32Pixels(kSize, kSize); SkBaseDevice* dev = new SkBitmapDevice(*bitmap); SkCanvas canvas(dev); diff --git a/gm/offsetimagefilter.cpp b/gm/offsetimagefilter.cpp index 95f1a31fe5..e0d2fbc81b 100644 --- a/gm/offsetimagefilter.cpp +++ b/gm/offsetimagefilter.cpp @@ -27,8 +27,7 @@ protected: } void make_bitmap() { - fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 80, 80); - fBitmap.allocPixels(); + fBitmap.allocN32Pixels(80, 80); SkBitmapDevice device(fBitmap); SkCanvas canvas(&device); canvas.clear(0x00000000); diff --git a/gm/optimizations.cpp b/gm/optimizations.cpp index 8d0b7caa84..a404ad7c55 100644 --- a/gm/optimizations.cpp +++ b/gm/optimizations.cpp @@ -395,10 +395,7 @@ private: static const unsigned int kCheckerboardWidth = 16; static const unsigned int kCheckerboardHeight = 16; - fCheckerboard.setConfig(SkBitmap::kARGB_8888_Config, - kCheckerboardWidth, kCheckerboardHeight); - fCheckerboard.allocPixels(); - SkAutoLockPixels lock(fCheckerboard); + fCheckerboard.allocN32Pixels(kCheckerboardWidth, kCheckerboardHeight); for (unsigned int y = 0; y < kCheckerboardHeight; y += 2) { SkPMColor* scanline = fCheckerboard.getAddr32(0, y); for (unsigned int x = 0; x < kCheckerboardWidth; x += 2) { diff --git a/gm/pathopsinverse.cpp b/gm/pathopsinverse.cpp index 2fbc8f74bf..c1ffd944f3 100644 --- a/gm/pathopsinverse.cpp +++ b/gm/pathopsinverse.cpp @@ -36,8 +36,7 @@ protected: SkColor blend(SkColor one, SkColor two) { SkBitmap temp; - temp.setConfig(SkBitmap::kARGB_8888_Config, 1, 1); - temp.allocPixels(); + temp.allocN32Pixels(1, 1); SkCanvas canvas(temp); canvas.drawColor(one); canvas.drawColor(two); diff --git a/gm/samplerstress.cpp b/gm/samplerstress.cpp index 93a26dd49c..2ddac3a1ae 100644 --- a/gm/samplerstress.cpp +++ b/gm/samplerstress.cpp @@ -47,13 +47,7 @@ protected: static const int xSize = 16; static const int ySize = 16; - fTexture.setConfig(SkBitmap::kARGB_8888_Config, - xSize, - ySize, - xSize*sizeof(SkColor)); - - fTexture.allocPixels(); - fTexture.lockPixels(); + fTexture.allocN32Pixels(xSize, ySize); SkPMColor* addr = fTexture.getAddr32(0, 0); for (int y = 0; y < ySize; ++y) { @@ -69,8 +63,6 @@ protected: } } - fTexture.unlockPixels(); - fTextureCreated = true; } diff --git a/gm/scalebitmap.cpp b/gm/scalebitmap.cpp index c0150627ca..10a1d86c84 100644 --- a/gm/scalebitmap.cpp +++ b/gm/scalebitmap.cpp @@ -35,8 +35,7 @@ public: SkImageDecoder::kDecodePixels_Mode); SkDELETE(codec); } else { - fBM.setConfig(SkBitmap::kARGB_8888_Config, 1, 1); - fBM.allocPixels(); + fBM.allocN32Pixels(1, 1); *(fBM.getAddr32(0,0)) = 0xFF0000FF; // red == bad } fSize = fBM.height(); @@ -62,8 +61,7 @@ protected: virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { SkBitmap dst; - dst.setConfig(SkBitmap::kARGB_8888_Config, fBM.width() * fScale, fBM.height() * fScale); - dst.allocPixels(); + dst.allocN32Pixels(fBM.width() * fScale, fBM.height() * fScale); fBM.scale(&dst); canvas->drawBitmap(dst, 0, 0); diff --git a/gm/shadertext.cpp b/gm/shadertext.cpp index 412516b914..eccd8cbe12 100644 --- a/gm/shadertext.cpp +++ b/gm/shadertext.cpp @@ -13,8 +13,7 @@ namespace skiagm { static void makebm(SkBitmap* bm, SkBitmap::Config config, int w, int h) { - bm->setConfig(config, w, h); - bm->allocPixels(); + bm->allocConfigPixels(config, w, h); bm->eraseColor(SK_ColorTRANSPARENT); SkCanvas canvas(*bm); diff --git a/gm/shadertext2.cpp b/gm/shadertext2.cpp index a7da436823..e8a4c6dac1 100644 --- a/gm/shadertext2.cpp +++ b/gm/shadertext2.cpp @@ -12,8 +12,7 @@ namespace skiagm { static void makebm(SkBitmap* bm, SkBitmap::Config config, int w, int h) { - bm->setConfig(config, w, h); - bm->allocPixels(); + bm->allocConfigPixels(config, w, h); bm->eraseColor(SK_ColorTRANSPARENT); SkCanvas canvas(*bm); diff --git a/gm/shadertext3.cpp b/gm/shadertext3.cpp index 36abf9f8e5..15b4f99317 100644 --- a/gm/shadertext3.cpp +++ b/gm/shadertext3.cpp @@ -12,8 +12,7 @@ namespace skiagm { static void makebm(SkBitmap* bm, SkBitmap::Config config, int w, int h) { - bm->setConfig(config, w, h); - bm->allocPixels(); + bm->allocConfigPixels(config, w, h); bm->eraseColor(SK_ColorTRANSPARENT); SkCanvas canvas(*bm); diff --git a/gm/spritebitmap.cpp b/gm/spritebitmap.cpp index 8aaa6ea78b..5884efeca0 100644 --- a/gm/spritebitmap.cpp +++ b/gm/spritebitmap.cpp @@ -10,8 +10,7 @@ #include "SkBlurImageFilter.h" static void make_bm(SkBitmap* bm) { - bm->setConfig(SkBitmap::kARGB_8888_Config, 100, 100); - bm->allocPixels(); + bm->allocN32Pixels(100, 100); bm->eraseColor(SK_ColorBLUE); SkCanvas canvas(*bm); diff --git a/gm/tablecolorfilter.cpp b/gm/tablecolorfilter.cpp index 49e342d002..f806caad6a 100644 --- a/gm/tablecolorfilter.cpp +++ b/gm/tablecolorfilter.cpp @@ -13,8 +13,7 @@ static void make_bm0(SkBitmap* bm) { int W = 120; int H = 120; - bm->setConfig(SkBitmap::kARGB_8888_Config, W, H); - bm->allocPixels(); + bm->allocN32Pixels(W, H); bm->eraseColor(SK_ColorTRANSPARENT); SkCanvas canvas(*bm); @@ -32,8 +31,7 @@ static void make_bm0(SkBitmap* bm) { static void make_bm1(SkBitmap* bm) { int W = 120; int H = 120; - bm->setConfig(SkBitmap::kARGB_8888_Config, W, H); - bm->allocPixels(); + bm->allocN32Pixels(W, H); bm->eraseColor(SK_ColorTRANSPARENT); SkCanvas canvas(*bm); diff --git a/gm/tileimagefilter.cpp b/gm/tileimagefilter.cpp index 2d6160fe82..d0acad7e69 100644 --- a/gm/tileimagefilter.cpp +++ b/gm/tileimagefilter.cpp @@ -27,8 +27,7 @@ protected: } void make_bitmap() { - fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 80, 80); - fBitmap.allocPixels(); + fBitmap.allocN32Pixels(80, 80); SkBitmapDevice device(fBitmap); SkCanvas canvas(&device); canvas.clear(0xFF000000); @@ -41,8 +40,7 @@ protected: } void make_checkerboard() { - fCheckerboard.setConfig(SkBitmap::kARGB_8888_Config, 80, 80); - fCheckerboard.allocPixels(); + fCheckerboard.allocN32Pixels(80, 80); SkBitmapDevice device(fCheckerboard); SkCanvas canvas(&device); canvas.clear(0x00000000); diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp index dcfc133d37..0b0a3ae6df 100644 --- a/gm/tilemodes.cpp +++ b/gm/tilemodes.cpp @@ -20,8 +20,7 @@ #include "SkBlurDrawLooper.h" static void makebm(SkBitmap* bm, SkBitmap::Config config, int w, int h) { - bm->setConfig(config, w, h); - bm->allocPixels(); + bm->allocConfigPixels(config, w, h); bm->eraseColor(SK_ColorTRANSPARENT); SkCanvas canvas(*bm); diff --git a/gm/tilemodes_scaled.cpp b/gm/tilemodes_scaled.cpp index 87bd1dd57b..603a78fb1e 100644 --- a/gm/tilemodes_scaled.cpp +++ b/gm/tilemodes_scaled.cpp @@ -20,8 +20,7 @@ #include "SkBlurDrawLooper.h" static void makebm(SkBitmap* bm, SkBitmap::Config config, int w, int h) { - bm->setConfig(config, w, h); - bm->allocPixels(); + bm->allocConfigPixels(config, w, h); bm->eraseColor(SK_ColorTRANSPARENT); SkCanvas canvas(*bm); diff --git a/gm/verylargebitmap.cpp b/gm/verylargebitmap.cpp index e6d81cdaa7..e0a4618130 100644 --- a/gm/verylargebitmap.cpp +++ b/gm/verylargebitmap.cpp @@ -11,8 +11,7 @@ #include "SkPath.h" static void make_bm(SkBitmap* bm, int width, int height, SkColor colors[2]) { - bm->setConfig(SkBitmap::kARGB_8888_Config, width, height); - bm->allocPixels(); + bm->allocN32Pixels(width, height); SkCanvas canvas(*bm); SkPoint center = {SkIntToScalar(width)/2, SkIntToScalar(height)/2}; SkScalar radius = 40; diff --git a/gm/xfermodeimagefilter.cpp b/gm/xfermodeimagefilter.cpp index 936af46ec6..f843d40dae 100644 --- a/gm/xfermodeimagefilter.cpp +++ b/gm/xfermodeimagefilter.cpp @@ -29,8 +29,7 @@ protected: } void make_bitmap() { - fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 80, 80); - fBitmap.allocPixels(); + fBitmap.allocN32Pixels(80, 80); SkBitmapDevice device(fBitmap); SkCanvas canvas(&device); canvas.clear(0x00000000); @@ -43,8 +42,7 @@ protected: } void make_checkerboard() { - fCheckerboard.setConfig(SkBitmap::kARGB_8888_Config, 80, 80); - fCheckerboard.allocPixels(); + fCheckerboard.allocN32Pixels(80, 80); SkBitmapDevice device(fCheckerboard); SkCanvas canvas(&device); canvas.clear(0x00000000); diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp index 7ee1e80086..353bebf56f 100644 --- a/gm/xfermodes.cpp +++ b/gm/xfermodes.cpp @@ -14,8 +14,7 @@ namespace skiagm { static void make_bitmaps(int w, int h, SkBitmap* src, SkBitmap* dst, SkBitmap* transparent) { - src->setConfig(SkBitmap::kARGB_8888_Config, w, h); - src->allocPixels(); + src->allocN32Pixels(w, h); src->eraseColor(SK_ColorTRANSPARENT); SkPaint p; diff --git a/gm/xfermodes2.cpp b/gm/xfermodes2.cpp index 046c3ddc2a..6202af9a72 100644 --- a/gm/xfermodes2.cpp +++ b/gm/xfermodes2.cpp @@ -93,9 +93,7 @@ private: SkPackARGB32(0xFF, 0x40, 0x40, 0x40) }; SkBitmap bg; - bg.setConfig(SkBitmap::kARGB_8888_Config, 2, 2, 0, kOpaque_SkAlphaType); - bg.allocPixels(); - SkAutoLockPixels bgAlp(bg); + bg.allocN32Pixels(2, 2, true); memcpy(bg.getPixels(), kCheckData, sizeof(kCheckData)); fBG.reset(SkShader::CreateBitmapShader(bg, @@ -106,9 +104,7 @@ private: fBG->setLocalMatrix(lm); SkBitmap dstBmp; - dstBmp.setConfig(SkBitmap::kARGB_8888_Config, kSize, kSize); - dstBmp.allocPixels(); - SkAutoLockPixels dstAlp(dstBmp); + dstBmp.allocN32Pixels(kSize, kSize); SkPMColor* pixels = reinterpret_cast<SkPMColor*>(dstBmp.getPixels()); for (int y = 0; y < kSize; ++y) { @@ -122,9 +118,7 @@ private: SkShader::kClamp_TileMode, SkShader::kClamp_TileMode)); SkBitmap srcBmp; - srcBmp.setConfig(SkBitmap::kARGB_8888_Config, kSize, kSize); - srcBmp.allocPixels(); - SkAutoLockPixels srcAlp(srcBmp); + srcBmp.allocN32Pixels(kSize, kSize); pixels = reinterpret_cast<SkPMColor*>(srcBmp.getPixels()); for (int x = 0; x < kSize; ++x) { diff --git a/gm/xfermodes3.cpp b/gm/xfermodes3.cpp index d01c0190d4..bb7d6149c5 100644 --- a/gm/xfermodes3.cpp +++ b/gm/xfermodes3.cpp @@ -188,8 +188,7 @@ private: SkPackARGB32(0xFF, 0x40, 0x40, 0x40) }; SkBitmap bg; - bg.setConfig(SkBitmap::kARGB_8888_Config, 2, 2, 0, kOpaque_SkAlphaType); - bg.allocPixels(); + bg.allocN32Pixels(2, 2, true); SkAutoLockPixels bgAlp(bg); memcpy(bg.getPixels(), kCheckData, sizeof(kCheckData)); @@ -212,8 +211,7 @@ private: SkShader::kRepeat_TileMode))->unref(); SkBitmap bmp; - bmp.setConfig(SkBitmap::kARGB_8888_Config, kSize, kSize); - bmp.allocPixels(); + bmp.allocN32Pixels(kSize, kSize); SkCanvas bmpCanvas(bmp); bmpCanvas.clear(SK_ColorTRANSPARENT); diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h index 5d6e3ba55b..4dcf327226 100644 --- a/include/core/SkBitmap.h +++ b/include/core/SkBitmap.h @@ -269,6 +269,20 @@ public: } /** + * Legacy helper function, which creates an SkImageInfo from the specified + * config and then calls allocPixels(info). + */ + bool allocConfigPixels(Config, int width, int height, bool isOpaque = false); + + bool allocN32Pixels(int width, int height, bool isOpaque = false) { + SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); + if (isOpaque) { + info.fAlphaType = kOpaque_SkAlphaType; + } + return this->allocPixels(info); + } + + /** * Install a pixelref that wraps the specified pixels and rowBytes, and * optional ReleaseProc and context. When the pixels are no longer * referenced, if ReleaseProc is not null, it will be called with the diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp index f4a001a975..ec730dc086 100644 --- a/src/core/SkBitmap.cpp +++ b/src/core/SkBitmap.cpp @@ -549,6 +549,23 @@ bool SkBitmap::installPixels(const SkImageInfo& info, void* pixels, size_t rb, return true; } +bool SkBitmap::allocConfigPixels(Config config, int width, int height, + bool isOpaque) { + SkColorType ct; + if (!config_to_colorType(config, &ct)) { + return false; + } + + SkAlphaType at = isOpaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType; + if (!validate_alphaType(config, at, &at)) { + return false; + } + + return this->allocPixels(SkImageInfo::Make(width, height, ct, at)); +} + +/////////////////////////////////////////////////////////////////////////////// + void SkBitmap::freePixels() { // if we're gonna free the pixels, we certainly need to free the mipmap this->freeMipMap(); |