summaryrefslogtreecommitdiffstats
path: root/o3d/core/cross/bitmap.cc
diff options
context:
space:
mode:
authorgman@google.com <gman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-12 02:07:09 +0000
committergman@google.com <gman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-12 02:07:09 +0000
commitd734f220da466c52f94423acc91bb347ef8811dd (patch)
treefa9422e17f016b5149888537be8f2ac0992a3918 /o3d/core/cross/bitmap.cc
parent95853f348dddde2cae8eb9f8c3ca04cd1754c430 (diff)
downloadchromium_src-d734f220da466c52f94423acc91bb347ef8811dd.zip
chromium_src-d734f220da466c52f94423acc91bb347ef8811dd.tar.gz
chromium_src-d734f220da466c52f94423acc91bb347ef8811dd.tar.bz2
A few more cleanup items for bitmap and
message_Commands git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23138 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d/core/cross/bitmap.cc')
-rw-r--r--o3d/core/cross/bitmap.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/o3d/core/cross/bitmap.cc b/o3d/core/cross/bitmap.cc
index c2709ae..8f82dc1 100644
--- a/o3d/core/cross/bitmap.cc
+++ b/o3d/core/cross/bitmap.cc
@@ -393,16 +393,22 @@ void Bitmap::GenerateMips(int source_level, int num_levels) {
O3D_ERROR(service_locator()) << "source level out of range.";
return;
}
- if (source_level + num_levels >= static_cast<int>(num_mipmaps()) || num_levels < 0) {
+ unsigned int max_mips = image::ComputeMipMapCount(width(), height());
+ if (source_level + num_levels >=
+ static_cast<int>(max_mips) || num_levels < 0) {
O3D_ERROR(service_locator()) << "num levels out of range.";
return;
}
- GenerateMipmaps(image::ComputeMipDimension(source_level, width()),
- image::ComputeMipDimension(source_level, height()),
- format(),
- num_levels,
- GetMipData(source_level));
+ if (GenerateMipmaps(image::ComputeMipDimension(source_level, width()),
+ image::ComputeMipDimension(source_level, height()),
+ format(),
+ num_levels,
+ GetMipData(source_level))) {
+ num_mipmaps_ = std::max(
+ num_mipmaps_,
+ static_cast<unsigned>(source_level + num_levels + 1));
+ }
}
// NOTE: This only works for Bitmap since Bitmap knows the pitch.