bool deferred) {
SkISize size (gm->getISize());
setup_bitmap(gRec, size, bitmap);
- SkImageInfo info;
- bitmap->asImageInfo(&info);
+ const SkImageInfo info = bitmap->info();
SkAutoTUnref<SkSurface> surface;
SkAutoTUnref<SkCanvas> canvas;
#
'skia_for_chromium_defines': [
'SK_SUPPORT_LEGACY_GETTOPDEVICE',
+ 'SK_SUPPORT_LEGACY_ASIMAGEINFO',
'SK_SUPPORT_LEGACY_N32_NAME',
],
},
SkColorType colorType() const { return fInfo.fColorType; }
SkAlphaType alphaType() const { return fInfo.fAlphaType; }
+#ifdef SK_SUPPORT_LEGACY_ASIMAGEINFO
+ bool asImageInfo(SkImageInfo* info) const {
+ // compatibility: return false for kUnknown
+ if (kUnknown_SkColorType == this->colorType()) {
+ return false;
+ }
+ if (info) {
+ *info = this->info();
+ }
+ return true;
+ }
+#endif
+
/** Return the number of bytes per pixel based on the config. If the config
does not have at least 1 byte per (e.g. kA1_Config) then 0 is returned.
*/
*/
bool installMaskPixels(const SkMask&);
- /**
- * DEPRECATED: call info().
- */
- bool asImageInfo(SkImageInfo* info) const {
- // compatibility: return false for kUnknown
- if (kUnknown_SkColorType == this->colorType()) {
- return false;
- }
- if (info) {
- *info = this->info();
- }
- return true;
- }
-
/** Use this to assign a new pixel address for an existing bitmap. This
will automatically release any pixelref previously installed. Only call
this if you are handling ownership/lifetime of the pixel memory.
SkPixelRef* SkBitmap::setPixelRef(SkPixelRef* pr, int dx, int dy) {
#ifdef SK_DEBUG
if (pr) {
- SkImageInfo info;
- if (this->asImageInfo(&info)) {
+ if (kUnknown_SkColorType != fInfo.colorType()) {
const SkImageInfo& prInfo = pr->info();
- SkASSERT(info.fWidth <= prInfo.fWidth);
- SkASSERT(info.fHeight <= prInfo.fHeight);
- SkASSERT(info.fColorType == prInfo.fColorType);
+ SkASSERT(fInfo.fWidth <= prInfo.fWidth);
+ SkASSERT(fInfo.fHeight <= prInfo.fHeight);
+ SkASSERT(fInfo.fColorType == prInfo.fColorType);
switch (prInfo.fAlphaType) {
case kIgnore_SkAlphaType:
SkASSERT(fInfo.fAlphaType == kIgnore_SkAlphaType);
break;
case kOpaque_SkAlphaType:
case kPremul_SkAlphaType:
- SkASSERT(info.fAlphaType == kOpaque_SkAlphaType ||
- info.fAlphaType == kPremul_SkAlphaType);
+ SkASSERT(fInfo.fAlphaType == kOpaque_SkAlphaType ||
+ fInfo.fAlphaType == kPremul_SkAlphaType);
break;
case kUnpremul_SkAlphaType:
- SkASSERT(info.fAlphaType == kOpaque_SkAlphaType ||
- info.fAlphaType == kUnpremul_SkAlphaType);
+ SkASSERT(fInfo.fAlphaType == kOpaque_SkAlphaType ||
+ fInfo.fAlphaType == kUnpremul_SkAlphaType);
break;
}
}
return;
}
- SkImageInfo info;
- if (!this->asImageInfo(&info)) {
+ if (kUnknown_SkColorType == fInfo.colorType()) {
this->setPixelRef(NULL);
return;
}
- SkPixelRef* pr = SkMallocPixelRef::NewDirect(info, p, fRowBytes, ctable);
+ SkPixelRef* pr = SkMallocPixelRef::NewDirect(fInfo, p, fRowBytes, ctable);
if (NULL == pr) {
this->setPixelRef(NULL);
return;
*/
bool SkBitmap::HeapAllocator::allocPixelRef(SkBitmap* dst,
SkColorTable* ctable) {
- SkImageInfo info;
- if (!dst->asImageInfo(&info)) {
+ const SkImageInfo info = dst->info();
+ if (kUnknown_SkColorType == info.colorType()) {
// SkDebugf("unsupported config for info %d\n", dst->config());
return false;
}
- SkPixelRef* pr = SkMallocPixelRef::NewAllocate(info, dst->rowBytes(),
- ctable);
+ SkPixelRef* pr = SkMallocPixelRef::NewAllocate(info, dst->rowBytes(), ctable);
if (NULL == pr) {
return false;
}
}
const void* SkBitmapDevice::peekPixels(SkImageInfo* info, size_t* rowBytes) {
- if (fBitmap.getPixels() && fBitmap.asImageInfo(info)) {
+ const SkImageInfo bmInfo = fBitmap.info();
+ if (fBitmap.getPixels() && (kUnknown_SkColorType != bmInfo.colorType())) {
+ if (info) {
+ *info = bmInfo;
+ }
if (rowBytes) {
*rowBytes = fBitmap.rowBytes();
}
} else {
if (this->filterImage(proxy, src, ctx, result, offset)) {
if (!result->getTexture()) {
- SkImageInfo info;
- if (!result->asImageInfo(&info)) {
+ const SkImageInfo info = result->info();
+ if (kUnknown_SkColorType == info.colorType()) {
return false;
}
GrTexture* resultTex = GrLockAndRefCachedBitmapTexture(context, *result, NULL);
}
bool SkImage_Base::onReadPixels(SkBitmap* bitmap, const SkIRect& subset) const {
- SkImageInfo info;
-
if (bitmap->pixelRef()) {
- if (!bitmap->asImageInfo(&info)) {
+ const SkImageInfo info = bitmap->info();
+ if (kUnknown_SkColorType == info.colorType()) {
return false;
}
if (!raster_canvas_supports(info)) {
return false;
}
} else {
- SkImageInfo info = SkImageInfo::MakeN32Premul(subset.width(),
- subset.height());
+ const SkImageInfo info = SkImageInfo::MakeN32Premul(subset.width(), subset.height());
SkBitmap tmp;
if (!tmp.allocPixels(info)) {
return false;
}
SkImage* SkNewImageFromBitmap(const SkBitmap& bm, bool canSharePixelRef) {
- SkImageInfo info;
- if (!bm.asImageInfo(&info)) {
+ const SkImageInfo info = bm.info();
+ if (kUnknown_SkColorType == info.colorType()) {
return NULL;
}
const void* SkImage_Raster::onPeekPixels(SkImageInfo* infoPtr,
size_t* rowBytesPtr) const {
- SkImageInfo info;
- if (!fBitmap.asImageInfo(&info) || !fBitmap.getPixels()) {
+ const SkImageInfo info = fBitmap.info();
+ if ((kUnknown_SkColorType == info.colorType()) || !fBitmap.getPixels()) {
return NULL;
}
*infoPtr = info;