diff options
author | gman@google.com <gman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-12 02:07:09 +0000 |
---|---|---|
committer | gman@google.com <gman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-12 02:07:09 +0000 |
commit | d734f220da466c52f94423acc91bb347ef8811dd (patch) | |
tree | fa9422e17f016b5149888537be8f2ac0992a3918 /o3d/core/cross/bitmap.cc | |
parent | 95853f348dddde2cae8eb9f8c3ca04cd1754c430 (diff) | |
download | chromium_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.cc | 18 |
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. |