static void test_surface(SkCanvas* canvas, SkSurface* surf) { drawContents(surf, SK_ColorRED); SkImage* imgR = surf->newImageSnapshot(); if (true) { SkImage* imgR2 = surf->newImageSnapshot(); SkASSERT(imgR == imgR2); imgR2->unref(); } drawContents(surf, SK_ColorGREEN); SkImage* imgG = surf->newImageSnapshot(); // since we've drawn after we snapped imgR, imgG will be a different obj SkASSERT(imgR != imgG); drawContents(surf, SK_ColorBLUE); SkPaint paint; // paint.setFilterBitmap(true); // paint.setAlpha(0x80); imgR->draw(canvas, 0, 0, &paint); imgG->draw(canvas, 0, 80, &paint); surf->draw(canvas, 0, 160, &paint); imgG->unref(); imgR->unref(); }
static void drawJpeg(SkCanvas* canvas, const SkISize& size) { SkAutoDataUnref data(fileToData("/Users/mike/Downloads/skia.google.jpeg")); SkImage* image = SkImage::NewEncodedData(data); if (image) { SkAutoCanvasRestore acr(canvas, true); canvas->scale(size.width() * 1.0f / image->width(), size.height() * 1.0f / image->height()); image->draw(canvas,0, 0, NULL); image->unref(); } }
static void drawJpeg(SkCanvas* canvas, const SkISize& size) { // TODO: Make this draw a file that is checked in, so it can // be exercised on machines other than mike's. Will require a // rebaseline. SkAutoDataUnref data(fileToData("/Users/mike/Downloads/skia.google.jpeg")); SkImage* image = SkImage::NewEncodedData(data); if (image) { SkAutoCanvasRestore acr(canvas, true); canvas->scale(size.width() * 1.0f / image->width(), size.height() * 1.0f / image->height()); image->draw(canvas,0, 0, NULL); image->unref(); } }
static void test_surface(SkCanvas* canvas, SkSurface* surf, bool usePaint) { drawContents(surf, SK_ColorRED); SkImage* imgR = surf->newImageSnapshot(); if (true) { SkImage* imgR2 = surf->newImageSnapshot(); SkASSERT(imgR == imgR2); imgR2->unref(); } drawContents(surf, SK_ColorGREEN); SkImage* imgG = surf->newImageSnapshot(); // since we've drawn after we snapped imgR, imgG will be a different obj SkASSERT(imgR != imgG); drawContents(surf, SK_ColorBLUE); SkPaint paint; // paint.setFilterBitmap(true); // paint.setAlpha(0x80); imgR->draw(canvas, 0, 0, usePaint ? &paint : NULL); imgG->draw(canvas, 0, 80, usePaint ? &paint : NULL); surf->draw(canvas, 0, 160, usePaint ? &paint : NULL); SkRect src1, src2, src3; src1.iset(0, 0, surf->width(), surf->height()); src2.iset(-surf->width() / 2, -surf->height() / 2, surf->width(), surf->height()); src3.iset(0, 0, surf->width() / 2, surf->height() / 2); SkRect dst1, dst2, dst3, dst4; dst1.set(0, 240, 65, 305); dst2.set(0, 320, 65, 385); dst3.set(0, 400, 65, 465); dst4.set(0, 480, 65, 545); imgR->draw(canvas, &src1, dst1, usePaint ? &paint : NULL); imgG->draw(canvas, &src2, dst2, usePaint ? &paint : NULL); imgR->draw(canvas, &src3, dst3, usePaint ? &paint : NULL); imgG->draw(canvas, NULL, dst4, usePaint ? &paint : NULL); imgG->unref(); imgR->unref(); }