aboutsummaryrefslogtreecommitdiffhomepage
path: root/fuzz/FuzzCanvas.cpp
diff options
context:
space:
mode:
authorGravatar Hal Canary <halcanary@google.com>2017-03-15 11:39:06 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-03-15 18:50:38 +0000
commit44801cac9a7a83711e1b04b14e90364e02a6de49 (patch)
tree0cabda33ff09da8b13b1382a5cb77fcab2b28308 /fuzz/FuzzCanvas.cpp
parent18ea816aad843117cdee99f7d996b3542e467b22 (diff)
FuzzCanvas: NativeGLCanvas
Change-Id: I7e032d19a5d464e0c46e76acac399786dd79b735 Reviewed-on: https://skia-review.googlesource.com/9721 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
Diffstat (limited to 'fuzz/FuzzCanvas.cpp')
-rw-r--r--fuzz/FuzzCanvas.cpp28
1 files changed, 24 insertions, 4 deletions
diff --git a/fuzz/FuzzCanvas.cpp b/fuzz/FuzzCanvas.cpp
index bfc90f535e..64a818b370 100644
--- a/fuzz/FuzzCanvas.cpp
+++ b/fuzz/FuzzCanvas.cpp
@@ -60,12 +60,17 @@
// SRC
#include "SkUtils.h"
+#if SK_SUPPORT_GPU
+#include "GrContextFactory.h"
+#endif
+
// MISC
#include <iostream>
// TODO:
// SkTextBlob with Unicode
+// SkImage: more types
template <typename T, typename Min, typename Max>
inline void fuzz_enum_range(Fuzz* fuzz, T* value, Min rmin, Max rmax) {
@@ -1755,12 +1760,26 @@ DEF_FUZZ(NullCanvas, fuzz) {
fuzz_canvas(fuzz, SkMakeNullCanvas().get());
}
+// 8.5x11 letter paper at 72ppi.
+constexpr SkISize kCanvasSize = {612, 792};
+
DEF_FUZZ(RasterN32Canvas, fuzz) {
- fuzz_canvas(fuzz, SkMakeNullCanvas().get());
- auto surface = SkSurface::MakeRasterN32Premul(612, 792);
+ auto surface = SkSurface::MakeRasterN32Premul(kCanvasSize.width(), kCanvasSize.height());
+ SkASSERT(surface && surface->getCanvas());
+ fuzz_canvas(fuzz, surface->getCanvas());
+}
+
+#if SK_SUPPORT_GPU
+DEF_FUZZ(NativeGLCanvas, fuzz) {
+ auto surface = SkSurface::MakeRenderTarget(
+ sk_gpu_test::GrContextFactory().get(
+ sk_gpu_test::GrContextFactory::kNativeGL_ContextType),
+ SkBudgeted::kNo,
+ SkImageInfo::Make(kCanvasSize.width(), kCanvasSize.height(), kRGBA_8888_SkColorType, kPremul_SkAlphaType));
SkASSERT(surface && surface->getCanvas());
fuzz_canvas(fuzz, surface->getCanvas());
}
+#endif
DEF_FUZZ(PDFCanvas, fuzz) {
struct final : public SkWStream {
@@ -1769,12 +1788,13 @@ DEF_FUZZ(PDFCanvas, fuzz) {
size_t fN = 0;
} stream;
auto doc = SkDocument::MakePDF(&stream);
- fuzz_canvas(fuzz, doc->beginPage(612.0f, 792.0f));
+ fuzz_canvas(fuzz, doc->beginPage(SkIntToScalar(kCanvasSize.width()),
+ SkIntToScalar(kCanvasSize.height())));
}
// not a "real" thing to fuzz, used to debug errors found while fuzzing.
DEF_FUZZ(_DumpCanvas, fuzz) {
- SkDebugCanvas debugCanvas(612, 792);
+ SkDebugCanvas debugCanvas(kCanvasSize.width(), kCanvasSize.height());
fuzz_canvas(fuzz, &debugCanvas);
std::unique_ptr<SkCanvas> nullCanvas = SkMakeNullCanvas();
UrlDataManager dataManager(SkString("data"));