bool SkSpecialImage::getROPixels(SkBitmap* bm) const { return as_SIB(this)->onGetROPixels(bm); }
bool SkSpecialImage::isTextureBacked() const { return SkToBool(as_SIB(this)->onGetContext()); }
bool SkSpecialImage::internal_getBM(SkBitmap* result) { const SkSpecialImage_Base* ib = as_SIB(this); // TODO: need to test offset case! (see skbug.com/4967) return ib->getBitmapDeprecated(result); }
void SkSpecialImage::draw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) const { return as_SIB(this)->onDraw(canvas, x, y, paint); }
sk_sp<SkSurface> SkSpecialImage::makeTightSurface(const SkImageInfo& info) const { return as_SIB(this)->onMakeTightSurface(info); }
sk_sp<SkImage> SkSpecialImage::makeTightSubset(const SkIRect& subset) const { return as_SIB(this)->onMakeTightSubset(subset); }
sk_sp<SkImage> SkSpecialImage::asImage(const SkIRect* subset) const { return as_SIB(this)->onAsImage(subset); }
GrTexture* SkSpecialImage::asTextureRef(GrContext* context) const { return as_SIB(this)->onAsTextureRef(context); }
sk_sp<GrTextureProxy> SkSpecialImage::asTextureProxyRef(GrContext* context) const { return as_SIB(this)->onAsTextureProxyRef(context); }
sk_sp<SkSurface> SkSpecialImage::makeTightSurface(const SkImageFilter::OutputProperties& outProps, const SkISize& size, SkAlphaType at) const { return as_SIB(this)->onMakeTightSurface(outProps, size, at); }
SkColorSpace* SkSpecialImage::getColorSpace() const { return as_SIB(this)->onGetColorSpace(); }
GrContext* SkSpecialImage::getContext() const { return as_SIB(this)->onGetContext(); }
SkSpecialSurface* SkSpecialImage::newSurface(const SkImageInfo& info) const { return as_SIB(this)->onNewSurface(info); }
GrTexture* SkSpecialImage::peekTexture() const { return as_SIB(this)->onPeekTexture(); }
bool SkSpecialImage::peekPixels(SkPixmap* pixmap) const { return as_SIB(this)->onPeekPixels(pixmap); }