Lines Matching refs:subset
37 SkSpecialImage_Base(const SkIRect& subset, uint32_t uniqueID, const SkSurfaceProps& props)
38 : INHERITED(subset, uniqueID, props) {
55 // This subset is relative to the backing store's coordinate frame, it has already been mapped
57 virtual sk_sp<SkSpecialImage> onMakeSubset(const SkIRect& subset) const = 0;
63 // This subset (when not null) is relative to the backing store's coordinate frame, it has
65 virtual sk_sp<SkImage> onAsImage(const SkIRect* subset) const = 0;
80 SkSpecialImage::SkSpecialImage(const SkIRect& subset,
84 , fSubset(subset)
127 sk_sp<SkSpecialImage> SkSpecialImage::makeSubset(const SkIRect& subset) const {
128 SkIRect absolute = subset.makeOffset(this->subset().topLeft());
132 sk_sp<SkImage> SkSpecialImage::asImage(const SkIRect* subset) const {
133 if (subset) {
134 SkIRect absolute = subset->makeOffset(this->subset().topLeft());
156 const SkIRect& subset,
159 SkASSERT(rect_fits(subset, image->width(), image->height()));
165 subset,
177 return MakeFromRaster(subset, bm, props);
186 SkSpecialImage_Raster(const SkIRect& subset, const SkBitmap& bm, const SkSurfaceProps& props)
187 : INHERITED(subset, bm.getGenerationID(), props)
203 this->subset().width(), this->subset().height());
205 canvas->drawImageRect(fBitmap.asImage(), SkRect::Make(this->subset()), dst,
210 return fBitmap.extractSubset(bm, this->subset());
236 sk_sp<SkSpecialImage> onMakeSubset(const SkIRect& subset) const override {
237 // No need to extract subset, onGetROPixels handles that when needed
238 return SkSpecialImage::MakeFromRaster(subset, fBitmap, this->props());
241 sk_sp<SkImage> onAsImage(const SkIRect* subset) const override {
242 if (subset) {
245 if (!fBitmap.extractSubset(&subsetBM, *subset)) {
269 sk_sp<SkSpecialImage> SkSpecialImage::MakeFromRaster(const SkIRect& subset,
272 SkASSERT(rect_fits(subset, bm.width(), bm.height()));
289 return sk_make_sp<SkSpecialImage_Raster>(subset, *srcBM, props);
292 sk_sp<SkSpecialImage> SkSpecialImage::CopyFromRaster(const SkIRect& subset,
295 SkASSERT(rect_fits(subset, bm.width(), bm.height()));
302 SkImageInfo info = bm.info().makeDimensions(subset.size());
310 if (!bm.readPixels(tmp.info(), tmp.getPixels(), tmp.rowBytes(), subset.x(), subset.y())) {
315 // of the requested subset of the original and no longer needs to be offset by subset's left
318 SkIRect::MakeWH(subset.width(), subset.height()), tmp, props);
334 SkSpecialImage_Gpu(GrRecordingContext* context, const SkIRect& subset,
337 : INHERITED(subset, uniqueID, props)
356 this->subset().width(), this->subset().height());
370 canvas->drawImageRect(img, SkRect::Make(this->subset()), dst,
401 sk_sp<SkSpecialImage> onMakeSubset(const SkIRect& subset) const override {
403 subset,
412 sk_sp<SkImage> onAsImage(const SkIRect* subset) const override {
414 if (subset) {
415 if (proxy->isFunctionallyExact() && *subset == SkIRect::MakeSize(proxy->dimensions())) {
422 auto subsetView = GrSurfaceProxyView::Copy(fContext, fView, GrMipmapped::kNo, *subset,
463 const SkIRect& subset,
473 SkASSERT_RELEASE(rect_fits(subset, view.proxy()->width(), view.proxy()->height()));
474 return sk_make_sp<SkSpecialImage_Gpu>(context, subset, uniqueID, std::move(view), colorType,