本文整理汇总了C++中ImageDecoder::getMipMapCount方法的典型用法代码示例。如果您正苦于以下问题:C++ ImageDecoder::getMipMapCount方法的具体用法?C++ ImageDecoder::getMipMapCount怎么用?C++ ImageDecoder::getMipMapCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImageDecoder
的用法示例。
在下文中一共展示了ImageDecoder::getMipMapCount方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Exception
/** Load a specific layer palette image and perform some sanity checks. */
ImageDecoder *PLTFile::getLayerPalette(uint32 layer, uint8 row) {
assert(layer < kLayerMAX);
// TODO: We may want to cache these somehow...
ImageDecoder *palette = loadImage(kPalettes[layer]);
try {
if (palette->getFormat() != kPixelFormatBGRA)
throw Common::Exception("Invalid format (%d)", palette->getFormat());
if (palette->getMipMapCount() < 1)
throw Common::Exception("No mip maps");
const ImageDecoder::MipMap &mipMap = palette->getMipMap(0);
if (mipMap.width != 256)
throw Common::Exception("Invalid width (%d)", mipMap.width);
if (row >= mipMap.height)
throw Common::Exception("Invalid height (%d >= %d)", row, mipMap.height);
} catch (...) {
delete palette;
throw;
}
return palette;
}
示例2: if
ImageDecoder *Texture::loadImage(Common::SeekableReadStream *imageStream, ::Aurora::FileType type,
TXI *txi) {
// Check for a cube map, but only those that don't use a file for each side
const bool isCubeMap = txi && txi->getFeatures().cube && (txi->getFeatures().fileRange == 0);
ImageDecoder *image = 0;
try {
// Loading the different image formats
if (type == ::Aurora::kFileTypeTGA)
image = new TGA(*imageStream, isCubeMap);
else if (type == ::Aurora::kFileTypeDDS)
image = new DDS(*imageStream);
else if (type == ::Aurora::kFileTypeTPC)
image = new TPC(*imageStream);
else if (type == ::Aurora::kFileTypeTXB)
image = new TXB(*imageStream);
else if (type == ::Aurora::kFileTypeSBM)
image = new SBM(*imageStream);
else if (type == ::Aurora::kFileTypeXEOSITEX)
image = new XEOSITEX(*imageStream);
else
throw Common::Exception("Unsupported image resource type %d", (int) type);
if (image->getMipMapCount() < 1)
throw Common::Exception("Texture has no images");
// Decompress
if (GfxMan.needManualDeS3TC())
image->decompress();
} catch (...) {
delete image;
delete imageStream;
throw;
}
delete imageStream;
return image;
}
示例3: if
ImageDecoder *Texture::loadImage(Common::SeekableReadStream *imageStream, ::Aurora::FileType type) {
ImageDecoder *image = 0;
try {
// Loading the different image formats
if (type == ::Aurora::kFileTypeTGA)
image = new TGA(*imageStream);
else if (type == ::Aurora::kFileTypeDDS)
image = new DDS(*imageStream);
else if (type == ::Aurora::kFileTypeTPC)
image = new TPC(*imageStream);
else if (type == ::Aurora::kFileTypeTXB)
image = new TXB(*imageStream);
else if (type == ::Aurora::kFileTypeSBM)
image = new SBM(*imageStream);
else if (type == ::Aurora::kFileTypeXEOSITEX)
image = new XEOSITEX(*imageStream);
else
throw Common::Exception("Unsupported image resource type %d", (int) type);
if (image->getMipMapCount() < 1)
throw Common::Exception("Texture has no images");
// Decompress
if (GfxMan.needManualDeS3TC())
image->decompress();
} catch (...) {
delete image;
delete imageStream;
throw;
}
delete imageStream;
return image;
}