Ejemplo n.º 1
0
void draw(SkCanvas* canvas) {
    auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
        if (nullptr == image) {
            return;
        }
        SkPaint paint;
        paint.setAntiAlias(true);
        canvas->drawImage(image, 0, 0);
        canvas->drawString(label, image->width() / 2, image->height() / 4, paint);
        if (canvas->getGrContext()) {
            canvas->drawString(image->isValid(canvas->getGrContext()) ? "is valid on GPU" :
                    "not valid on GPU", 20, image->height() * 5 / 8, paint);
        }
        canvas->drawString(image->isValid(nullptr) ? "is valid on CPU" :
                "not valid on CPU", 20, image->height() * 7 / 8, paint);
    };
    sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));
    sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,
                                kTopLeft_GrSurfaceOrigin, kRGBA_8888_SkColorType,
                                kOpaque_SkAlphaType, nullptr));
    drawImage(image, "image");
    canvas->translate(image->width(), 0);
    drawImage(bitmapImage, "source");
    canvas->translate(-image->width(), image->height());
    drawImage(textureImage, "backEndTexture");
}
Ejemplo n.º 2
0
PassRefPtr<Image> ImageBitmap::getSourceImageForCanvas(SourceImageMode, SourceImageStatus* status) const
{
    *status = NormalSourceImageStatus;
    return bitmapImage();
}
Ejemplo n.º 3
0
PassRefPtr<Image> ImageBitmap::getSourceImageForCanvas(SourceImageStatus* status, AccelerationHint) const
{
    *status = NormalSourceImageStatus;
    return bitmapImage();
}