OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 #include "SampleCode.h" | 7 #include "SampleCode.h" |
8 #include "SkBicubicImageFilter.h" | 8 #include "SkBicubicImageFilter.h" |
9 #include "SkBitmapDevice.h" | 9 #include "SkBitmapDevice.h" |
10 #include "SkBitmapSource.h" | 10 #include "SkBitmapSource.h" |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 | 104 |
105 static SkPoint3 make_point() { | 105 static SkPoint3 make_point() { |
106 return SkPoint3(make_scalar(), make_scalar(), make_scalar(true)); | 106 return SkPoint3(make_scalar(), make_scalar(), make_scalar(true)); |
107 } | 107 } |
108 | 108 |
109 static SkDisplacementMapEffect::ChannelSelectorType make_channel_selector_type()
{ | 109 static SkDisplacementMapEffect::ChannelSelectorType make_channel_selector_type()
{ |
110 return static_cast<SkDisplacementMapEffect::ChannelSelectorType>(R(4)+1); | 110 return static_cast<SkDisplacementMapEffect::ChannelSelectorType>(R(4)+1); |
111 } | 111 } |
112 | 112 |
113 static void make_g_bitmap(SkBitmap& bitmap) { | 113 static void make_g_bitmap(SkBitmap& bitmap) { |
114 bitmap.setConfig(SkBitmap::kARGB_8888_Config, kBitmapSize, kBitmapSize); | 114 bitmap.setConfig((SkBitmap::Config)R(SkBitmap::kConfigCount), kBitmapSize, k
BitmapSize); |
115 bitmap.allocPixels(); | 115 while (!bitmap.allocPixels()) { |
| 116 bitmap.setConfig((SkBitmap::Config)R(SkBitmap::kConfigCount), kBitmapSiz
e, kBitmapSize); |
| 117 } |
116 SkBitmapDevice device(bitmap); | 118 SkBitmapDevice device(bitmap); |
117 SkCanvas canvas(&device); | 119 SkCanvas canvas(&device); |
118 canvas.clear(0x00000000); | 120 canvas.clear(0x00000000); |
119 SkPaint paint; | 121 SkPaint paint; |
120 paint.setAntiAlias(true); | 122 paint.setAntiAlias(true); |
121 paint.setColor(0xFF884422); | 123 paint.setColor(0xFF884422); |
122 paint.setTextSize(SkIntToScalar(kBitmapSize/2)); | 124 paint.setTextSize(SkIntToScalar(kBitmapSize/2)); |
123 const char* str = "g"; | 125 const char* str = "g"; |
124 canvas.drawText(str, strlen(str), SkIntToScalar(kBitmapSize/8), | 126 canvas.drawText(str, strlen(str), SkIntToScalar(kBitmapSize/8), |
125 SkIntToScalar(kBitmapSize/4), paint); | 127 SkIntToScalar(kBitmapSize/4), paint); |
126 } | 128 } |
127 | 129 |
128 static void make_checkerboard_bitmap(SkBitmap& bitmap) { | 130 static void make_checkerboard_bitmap(SkBitmap& bitmap) { |
129 bitmap.setConfig(SkBitmap::kARGB_8888_Config, kBitmapSize, kBitmapSize); | 131 bitmap.setConfig((SkBitmap::Config)R(SkBitmap::kConfigCount), kBitmapSize, k
BitmapSize); |
130 bitmap.allocPixels(); | 132 while (!bitmap.allocPixels()) { |
| 133 bitmap.setConfig((SkBitmap::Config)R(SkBitmap::kConfigCount), kBitmapSiz
e, kBitmapSize); |
| 134 } |
131 SkBitmapDevice device(bitmap); | 135 SkBitmapDevice device(bitmap); |
132 SkCanvas canvas(&device); | 136 SkCanvas canvas(&device); |
133 canvas.clear(0x00000000); | 137 canvas.clear(0x00000000); |
134 SkPaint darkPaint; | 138 SkPaint darkPaint; |
135 darkPaint.setColor(0xFF804020); | 139 darkPaint.setColor(0xFF804020); |
136 SkPaint lightPaint; | 140 SkPaint lightPaint; |
137 lightPaint.setColor(0xFF244484); | 141 lightPaint.setColor(0xFF244484); |
138 const int i = kBitmapSize / 8; | 142 const int i = kBitmapSize / 8; |
139 const SkScalar f = SkIntToScalar(i); | 143 const SkScalar f = SkIntToScalar(i); |
140 for (int y = 0; y < kBitmapSize; y += i) { | 144 for (int y = 0; y < kBitmapSize; y += i) { |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 | 309 |
306 static void drawClippedBitmap(SkCanvas* canvas, int x, int y, const SkPaint& pai
nt) { | 310 static void drawClippedBitmap(SkCanvas* canvas, int x, int y, const SkPaint& pai
nt) { |
307 canvas->save(); | 311 canvas->save(); |
308 canvas->clipRect(SkRect::MakeXYWH(SkIntToScalar(x), SkIntToScalar(y), | 312 canvas->clipRect(SkRect::MakeXYWH(SkIntToScalar(x), SkIntToScalar(y), |
309 SkIntToScalar(kBitmapSize), SkIntToScalar(kBitmapSize))); | 313 SkIntToScalar(kBitmapSize), SkIntToScalar(kBitmapSize))); |
310 canvas->drawBitmap(make_bitmap(), SkIntToScalar(x), SkIntToScalar(y), &paint
); | 314 canvas->drawBitmap(make_bitmap(), SkIntToScalar(x), SkIntToScalar(y), &paint
); |
311 canvas->restore(); | 315 canvas->restore(); |
312 } | 316 } |
313 | 317 |
314 static void do_fuzz(SkCanvas* canvas) { | 318 static void do_fuzz(SkCanvas* canvas) { |
| 319 SkImageFilter* filter = make_serialized_image_filter(); |
| 320 |
315 #ifdef SK_FUZZER_IS_VERBOSE | 321 #ifdef SK_FUZZER_IS_VERBOSE |
316 static uint32_t filterId = 0; | 322 static uint32_t numFilters = 0; |
317 if (0 == filterId) { | 323 static uint32_t numValidFilters = 0; |
| 324 if (0 == numFilters) { |
318 printf("Fuzzing with %u\n", kSeed); | 325 printf("Fuzzing with %u\n", kSeed); |
319 } | 326 } |
320 printf("Filter no %u\r", filterId); | 327 numFilters++; |
| 328 if (NULL != filter) { |
| 329 numValidFilters++; |
| 330 } |
| 331 printf("Filter no : %u. Valid filters so far : %u\r", numFilters, numValidFi
lters); |
321 fflush(stdout); | 332 fflush(stdout); |
322 filterId++; | |
323 #endif | 333 #endif |
324 | 334 |
325 SkPaint paint; | 335 SkPaint paint; |
326 SkSafeUnref(paint.setImageFilter(make_serialized_image_filter())); | 336 SkSafeUnref(paint.setImageFilter(filter)); |
327 drawClippedBitmap(canvas, 0, 0, paint); | 337 drawClippedBitmap(canvas, 0, 0, paint); |
328 } | 338 } |
329 | 339 |
330 ////////////////////////////////////////////////////////////////////////////// | 340 ////////////////////////////////////////////////////////////////////////////// |
331 | 341 |
332 class ImageFilterFuzzView : public SampleView { | 342 class ImageFilterFuzzView : public SampleView { |
333 public: | 343 public: |
334 ImageFilterFuzzView() { | 344 ImageFilterFuzzView() { |
335 this->setBGColor(0xFFDDDDDD); | 345 this->setBGColor(0xFFDDDDDD); |
336 } | 346 } |
(...skipping 18 matching lines...) Expand all Loading... |
355 } | 365 } |
356 | 366 |
357 private: | 367 private: |
358 typedef SkView INHERITED; | 368 typedef SkView INHERITED; |
359 }; | 369 }; |
360 | 370 |
361 ////////////////////////////////////////////////////////////////////////////// | 371 ////////////////////////////////////////////////////////////////////////////// |
362 | 372 |
363 static SkView* MyFactory() { return new ImageFilterFuzzView; } | 373 static SkView* MyFactory() { return new ImageFilterFuzzView; } |
364 static SkViewRegister reg(MyFactory); | 374 static SkViewRegister reg(MyFactory); |
OLD | NEW |