diff options
author | Hal Canary <halcanary@google.com> | 2017-03-15 11:39:06 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-03-15 18:50:38 +0000 |
commit | 44801cac9a7a83711e1b04b14e90364e02a6de49 (patch) | |
tree | 0cabda33ff09da8b13b1382a5cb77fcab2b28308 /fuzz/FuzzCanvas.cpp | |
parent | 18ea816aad843117cdee99f7d996b3542e467b22 (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.cpp | 28 |
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")); |