bool getBitmap(SkBitmap* result) const override { const SkImageInfo info = GrMakeInfoFromTexture(fTexture, this->width(), this->height(), this->isOpaque()); if (!result->setInfo(info)) { return false; } result->setPixelRef(new SkGrPixelRef(info, fTexture))->unref(); return true; }
bool getBitmapDeprecated(SkBitmap* result) const override { const SkImageInfo info = GrMakeInfoFromTexture(fTexture, this->width(), this->height(), this->isOpaque()); if (!result->setInfo(info)) { return false; } const SkImageInfo prInfo = info.makeWH(fTexture->width(), fTexture->height()); SkAutoTUnref<SkGrPixelRef> pixelRef(new SkGrPixelRef(prInfo, fTexture)); result->setPixelRef(pixelRef, this->subset().fLeft, this->subset().fTop); return true; }
bool getBitmapDeprecated(SkBitmap* result) const override { #if SK_SUPPORT_GPU if (GrTexture* texture = as_IB(fImage.get())->peekTexture()) { const SkImageInfo info = GrMakeInfoFromTexture(texture, fImage->width(), fImage->height(), fImage->isOpaque()); if (!result->setInfo(info)) { return false; } result->setPixelRef(new SkGrPixelRef(info, texture))->unref(); return true; } #endif return as_IB(fImage.get())->asBitmapForImageFilters(result); }
void GrWrapTextureInBitmap(GrTexture* src, int w, int h, bool isOpaque, SkBitmap* dst) { const SkImageInfo info = GrMakeInfoFromTexture(src, w, h, isOpaque); dst->setInfo(info); dst->setPixelRef(new SkGrPixelRef(info, src))->unref(); }