use SkColorType instead of SkBitmap::Config in samplecode
BUG=skia:
R=reed@google.com
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/169063002
git-svn-id: http://skia.googlecode.com/svn/trunk@13473 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleFilterFuzz.cpp b/samplecode/SampleFilterFuzz.cpp
index 4ef7d40..f753b50 100644
--- a/samplecode/SampleFilterFuzz.cpp
+++ b/samplecode/SampleFilterFuzz.cpp
@@ -111,13 +111,36 @@
return static_cast<SkDisplacementMapEffect::ChannelSelectorType>(R(4)+1);
}
-static void make_g_bitmap(SkBitmap& bitmap) {
- bitmap.setConfig((SkBitmap::Config)R(SkBitmap::kConfigCount), kBitmapSize, kBitmapSize);
- while (!bitmap.allocPixels()) {
- bitmap.setConfig((SkBitmap::Config)R(SkBitmap::kConfigCount), kBitmapSize, kBitmapSize);
+static bool valid_for_raster_canvas(const SkImageInfo& info) {
+ switch (info.colorType()) {
+ case kAlpha_8_SkColorType:
+ case kRGB_565_SkColorType:
+ return true;
+ case kPMColor_SkColorType:
+ return kPremul_SkAlphaType == info.alphaType() ||
+ kOpaque_SkAlphaType == info.alphaType();
+ default:
+ break;
}
- SkBitmapDevice device(bitmap);
- SkCanvas canvas(&device);
+ return false;
+}
+
+static SkColorType rand_colortype() {
+ return (SkColorType)R(kLastEnum_SkColorType + 1);
+}
+
+static void rand_bitmap_for_canvas(SkBitmap* bitmap) {
+ SkImageInfo info;
+ do {
+ info = SkImageInfo::Make(kBitmapSize, kBitmapSize, rand_colortype(),
+ kPremul_SkAlphaType);
+ } while (!valid_for_raster_canvas(info) || !bitmap->allocPixels(info));
+}
+
+static void make_g_bitmap(SkBitmap& bitmap) {
+ rand_bitmap_for_canvas(&bitmap);
+
+ SkCanvas canvas(bitmap);
canvas.clear(0x00000000);
SkPaint paint;
paint.setAntiAlias(true);
@@ -128,31 +151,10 @@
SkIntToScalar(kBitmapSize/4), paint);
}
-static bool valid_for_raster_canvas(const SkBitmap& bm) {
- SkImageInfo info;
- if (!bm.asImageInfo(&info)) {
- return false;
- }
- switch (info.fColorType) {
- case kAlpha_8_SkColorType:
- case kRGB_565_SkColorType:
- return true;
- case kPMColor_SkColorType:
- return kPremul_SkAlphaType == info.fAlphaType ||
- kOpaque_SkAlphaType == info.fAlphaType;
- default:
- break;
- }
- return false;
-}
-
static void make_checkerboard_bitmap(SkBitmap& bitmap) {
- bitmap.setConfig((SkBitmap::Config)R(SkBitmap::kConfigCount), kBitmapSize, kBitmapSize);
- while (valid_for_raster_canvas(bitmap) && !bitmap.allocPixels()) {
- bitmap.setConfig((SkBitmap::Config)R(SkBitmap::kConfigCount), kBitmapSize, kBitmapSize);
- }
- SkBitmapDevice device(bitmap);
- SkCanvas canvas(&device);
+ rand_bitmap_for_canvas(&bitmap);
+
+ SkCanvas canvas(bitmap);
canvas.clear(0x00000000);
SkPaint darkPaint;
darkPaint.setColor(0xFF804020);