Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(87)

Unified Diff: gm/colormatrix.cpp

Issue 1217053003: add SkImage::NewFromBitmap (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | include/core/SkImage.h » ('j') | include/core/SkImage.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gm/colormatrix.cpp
diff --git a/gm/colormatrix.cpp b/gm/colormatrix.cpp
index 8dcdf15e50167e2a1d85fb6a1f52b94f8429a5ed..5ae2b05bdf20f82b929e3119a7457bdb04cba97a 100644
--- a/gm/colormatrix.cpp
+++ b/gm/colormatrix.cpp
@@ -8,6 +8,7 @@
#include "gm.h"
#include "SkColorMatrixFilter.h"
#include "SkGradientShader.h"
+#include "SkImage.h"
#define WIDTH 500
#define HEIGHT 500
@@ -36,14 +37,12 @@ static void setArray(SkPaint* paint, const SkScalar array[]) {
paint->setColorFilter(SkColorMatrixFilter::Create(array))->unref();
}
-namespace skiagm {
-
-class ColorMatrixGM : public GM {
+class ColorMatrixGM : public skiagm::GM {
SkDoOnce fOnce;
robertphillips 2015/07/06 20:43:47 Can this not occur in onOnceBeforeDraw ?
reed2 2015/07/07 01:18:02 Done.
void init() {
if (fOnce.once()) {
- fSolidBitmap = this->createSolidBitmap(64, 64);
- fTransparentBitmap = this->createTransparentBitmap(64, 64);
+ fSolidImg.reset(this->createSolidBitmap(64, 64));
+ fTransparentImg.reset(this->createTransparentBitmap(64, 64));
}
}
@@ -61,7 +60,7 @@ protected:
return SkISize::Make(WIDTH, HEIGHT);
}
robertphillips 2015/07/06 20:43:47 Can createSolidBitmap & createTransparentBitmap be
reed2 2015/07/07 01:18:02 Done.
- SkBitmap createSolidBitmap(int width, int height) {
+ SkImage* createSolidBitmap(int width, int height) {
SkBitmap bm;
bm.allocN32Pixels(width, height);
SkCanvas canvas(bm);
@@ -74,11 +73,11 @@ protected:
SkIntToScalar(y), SK_Scalar1, SK_Scalar1), paint);
}
}
- return bm;
+ return SkImage::NewFromBitmap(bm);
}
// creates a bitmap with shades of transparent gray.
- SkBitmap createTransparentBitmap(int width, int height) {
+ SkImage* createTransparentBitmap(int width, int height) {
SkBitmap bm;
bm.allocN32Pixels(width, height);
SkCanvas canvas(bm);
@@ -90,7 +89,7 @@ protected:
paint.setShader(SkGradientShader::CreateLinear(pts, colors, NULL, 2,
SkShader::kClamp_TileMode))->unref();
canvas.drawRect(SkRect::MakeWH(SkIntToScalar(width), SkIntToScalar(height)), paint);
- return bm;
+ return SkImage::NewFromBitmap(bm);
}
virtual void onDraw(SkCanvas* canvas) {
@@ -100,48 +99,48 @@ protected:
SkColorMatrix matrix;
paint.setXfermodeMode(SkXfermode::kSrc_Mode);
- const SkBitmap bmps[] = { fSolidBitmap, fTransparentBitmap };
+ const SkImage* bmps[] = { fSolidImg, fTransparentImg };
for (size_t i = 0; i < SK_ARRAY_COUNT(bmps); ++i) {
matrix.setIdentity();
setColorMatrix(&paint, matrix);
- canvas->drawBitmap(bmps[i], 0, 0, &paint);
+ canvas->drawImage(bmps[i], 0, 0, &paint);
matrix.setRotate(SkColorMatrix::kR_Axis, 90);
setColorMatrix(&paint, matrix);
- canvas->drawBitmap(bmps[i], 80, 0, &paint);
+ canvas->drawImage(bmps[i], 80, 0, &paint);
matrix.setRotate(SkColorMatrix::kG_Axis, 90);
setColorMatrix(&paint, matrix);
- canvas->drawBitmap(bmps[i], 160, 0, &paint);
+ canvas->drawImage(bmps[i], 160, 0, &paint);
matrix.setRotate(SkColorMatrix::kB_Axis, 90);
setColorMatrix(&paint, matrix);
- canvas->drawBitmap(bmps[i], 240, 0, &paint);
-
+ canvas->drawImage(bmps[i], 240, 0, &paint);
+ ///////////////////////////////////////////////
matrix.setSaturation(0.0f);
setColorMatrix(&paint, matrix);
- canvas->drawBitmap(bmps[i], 0, 80, &paint);
+ canvas->drawImage(bmps[i], 0, 80, &paint);
matrix.setSaturation(0.5f);
setColorMatrix(&paint, matrix);
- canvas->drawBitmap(bmps[i], 80, 80, &paint);
+ canvas->drawImage(bmps[i], 80, 80, &paint);
matrix.setSaturation(1.0f);
setColorMatrix(&paint, matrix);
- canvas->drawBitmap(bmps[i], 160, 80, &paint);
+ canvas->drawImage(bmps[i], 160, 80, &paint);
matrix.setSaturation(2.0f);
setColorMatrix(&paint, matrix);
- canvas->drawBitmap(bmps[i], 240, 80, &paint);
-
+ canvas->drawImage(bmps[i], 240, 80, &paint);
+ ///////////////////////////////////////////////
matrix.setRGB2YUV();
setColorMatrix(&paint, matrix);
- canvas->drawBitmap(bmps[i], 0, 160, &paint);
+ canvas->drawImage(bmps[i], 0, 160, &paint);
matrix.setYUV2RGB();
setColorMatrix(&paint, matrix);
- canvas->drawBitmap(bmps[i], 80, 160, &paint);
+ canvas->drawImage(bmps[i], 80, 160, &paint);
SkScalar s1 = SK_Scalar1;
SkScalar s255 = SkIntToScalar(255);
@@ -154,21 +153,17 @@ protected:
};
setArray(&paint, data);
- canvas->drawBitmap(bmps[i], 160, 160, &paint);
-
+ canvas->drawImage(bmps[i], 160, 160, &paint);
+ ///////////////////////////////////////////////
canvas->translate(0, 240);
}
}
private:
- SkBitmap fSolidBitmap;
- SkBitmap fTransparentBitmap;
- typedef GM INHERITED;
-};
-
-//////////////////////////////////////////////////////////////////////////////
+ SkAutoTUnref<SkImage> fSolidImg;
+ SkAutoTUnref<SkImage> fTransparentImg;
-static GM* MyFactory(void*) { return new ColorMatrixGM; }
-static GMRegistry reg(MyFactory);
+ typedef skiagm::GM INHERITED;
+};
+DEF_GM( return new ColorMatrixGM; )
-}
« no previous file with comments | « no previous file | include/core/SkImage.h » ('j') | include/core/SkImage.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698