sk_sp<SkImage> SkImage_Lazy::onMakeSubset(const SkIRect& subset) const { SkASSERT(fInfo.bounds().contains(subset)); SkASSERT(fInfo.bounds() != subset); const SkIRect generatorSubset = subset.makeOffset(fOrigin.x(), fOrigin.y()); Validator validator(fSharedGenerator, &generatorSubset, fInfo.refColorSpace()); return validator ? sk_sp<SkImage>(new SkImage_Lazy(&validator)) : nullptr; }
void draw(SkCanvas* canvas) { const int height = 2; const int width = 2; SkImageInfo imageInfo = SkImageInfo::Make(width, height, kN32_SkColorType, kPremul_SkAlphaType); SkISize dimensions = imageInfo.dimensions(); SkIRect bounds = imageInfo.bounds(); SkIRect dimensionsAsBounds = SkIRect::MakeSize(dimensions); SkDebugf("dimensionsAsBounds %c= bounds\n", dimensionsAsBounds == bounds ? '=' : '!'); }
void draw(SkCanvas* canvas) { canvas->scale(.5f, .5f); SkImageInfo imageInfo = source.info(); SkIRect bounds = imageInfo.bounds(); for (int x : { 0, bounds.width() } ) { for (int y : { 0, bounds.height() } ) { canvas->drawBitmap(source, x, y); } } }