#include "gm.h"
#include "SkSurface.h"
#include "SkCanvas.h"
+#include "SkDecodingImageGenerator.h"
#include "SkStream.h"
#include "SkData.h"
#include "GrContext.h"
#endif
-static SkData* fileToData(const char path[]) {
- SkFILEStream stream(path);
- if (!stream.isValid()) {
- return SkData::NewEmpty();
- }
- size_t size = stream.getLength();
- void* mem = sk_malloc_throw(size);
- stream.read(mem, size);
- return SkData::NewFromMalloc(mem, size);
-}
-
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);
+ SkAutoDataUnref data(SkData::NewFromFileName("/Users/mike/Downloads/skia.google.jpeg"));
+ if (NULL == data.get()) {
+ return;
+ }
+ SkImage* image = SkImage::NewFromGenerator(
+ SkDecodingImageGenerator::Create(data, SkDecodingImageGenerator::Options()));
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);
+ canvas->drawImage(image, 0, 0, NULL);
image->unref();
}
}
// paint.setFilterBitmap(true);
// paint.setAlpha(0x80);
- imgR->draw(canvas, 0, 0, usePaint ? &paint : NULL);
- imgG->draw(canvas, 0, 80, usePaint ? &paint : NULL);
+ canvas->drawImage(imgR, 0, 0, usePaint ? &paint : NULL);
+ canvas->drawImage(imgG, 0, 80, usePaint ? &paint : NULL);
surf->draw(canvas, 0, 160, usePaint ? &paint : NULL);
SkRect src1, src2, src3;
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);
+ canvas->drawImageRect(imgR, &src1, dst1, usePaint ? &paint : NULL);
+ canvas->drawImageRect(imgG, &src2, dst2, usePaint ? &paint : NULL);
+ canvas->drawImageRect(imgR, &src3, dst3, usePaint ? &paint : NULL);
+ canvas->drawImageRect(imgG, NULL, dst4, usePaint ? &paint : NULL);
imgG->unref();
imgR->unref();
#if SK_SUPPORT_GPU
GrContext* ctx = canvas->getGrContext();
- SkAutoTUnref<SkSurface> surf4(SkSurface::NewRenderTarget(ctx, info, 0));
+ SkAutoTUnref<SkSurface> surf4(SkSurface::NewRenderTarget(ctx, info));
#endif
test_surface(canvas, surf0, true);
canvas->translate(80, 0);
test_surface(canvas, surf1, true);
#if SK_SUPPORT_GPU
- if (NULL != ctx) {
+ if (ctx) {
canvas->translate(80, 0);
test_surface(canvas, surf4, true);
}