| Index: core/win/d3d9/texture_d3d9.cc
|
| ===================================================================
|
| --- core/win/d3d9/texture_d3d9.cc (revision 66674)
|
| +++ core/win/d3d9/texture_d3d9.cc (working copy)
|
| @@ -260,7 +260,7 @@
|
| }
|
| }
|
|
|
| -void SetTextureRect(
|
| +bool SetTextureRect(
|
| ServiceLocator* service_locator,
|
| IDirect3DTexture9* d3d_texture,
|
| Texture::Format format,
|
| @@ -280,7 +280,7 @@
|
| if (!HR(d3d_texture->LockRect(
|
| level, &out_rect, compressed ? NULL : &rect, 0))) {
|
| O3D_ERROR(service_locator) << "Failed to Lock Texture2D (D3D9)";
|
| - return;
|
| + return false;
|
| }
|
|
|
| const uint8* src = static_cast<const uint8*>(src_data);
|
| @@ -294,11 +294,12 @@
|
| }
|
| if (!HR(d3d_texture->UnlockRect(level))) {
|
| O3D_ERROR(service_locator) << "Failed to Unlock Texture2D (D3D9)";
|
| - return;
|
| + return false;
|
| }
|
| + return true;
|
| }
|
|
|
| -void SetTextureFaceRect(
|
| +bool SetTextureFaceRect(
|
| ServiceLocator* service_locator,
|
| IDirect3DCubeTexture9* d3d_texture,
|
| Texture::Format format,
|
| @@ -321,7 +322,7 @@
|
| if (!HR(d3d_texture->LockRect(
|
| d3d_face, level, &out_rect, compressed ? NULL : &rect, 0))) {
|
| O3D_ERROR(service_locator) << "Failed to Lock TextureCUBE (D3D9)";
|
| - return;
|
| + return false;
|
| }
|
|
|
| const uint8* src = static_cast<const uint8*>(src_data);
|
| @@ -335,8 +336,9 @@
|
| }
|
| if (!HR(d3d_texture->UnlockRect(d3d_face, level))) {
|
| O3D_ERROR(service_locator) << "Failed to Unlock TextureCUBE (D3D9)";
|
| - return;
|
| + return false;
|
| }
|
| + return true;
|
| }
|
|
|
| } // unnamed namespace
|
| @@ -550,6 +552,7 @@
|
| return;
|
| }
|
|
|
| + bool success = true;
|
| if (resize_to_pot_) {
|
| DCHECK(backing_bitmap_->image_data());
|
| DCHECK(!compressed);
|
| @@ -559,17 +562,20 @@
|
| level, dst_left, dst_top, src_width, src_height, src_data, src_pitch);
|
| UpdateBackedMipLevel(level);
|
| } else {
|
| - SetTextureRect(service_locator(),
|
| - d3d_texture_,
|
| - format(),
|
| - level,
|
| - dst_left,
|
| - dst_top,
|
| - src_width,
|
| - src_height,
|
| - src_data,
|
| - src_pitch);
|
| + success = SetTextureRect(service_locator(),
|
| + d3d_texture_,
|
| + format(),
|
| + level,
|
| + dst_left,
|
| + dst_top,
|
| + src_width,
|
| + src_height,
|
| + src_data,
|
| + src_pitch);
|
| }
|
| + if (success && level == 0) {
|
| + TextureUpdated();
|
| + }
|
| }
|
|
|
| // Locks the given mipmap level of this texture for loading from main memory,
|
| @@ -877,6 +883,7 @@
|
| return;
|
| }
|
|
|
| + bool success = true;
|
| if (resize_to_pot_) {
|
| Bitmap* backing_bitmap = backing_bitmaps_[face].Get();
|
| DCHECK(backing_bitmap->image_data());
|
| @@ -887,18 +894,21 @@
|
| level, dst_left, dst_top, src_width, src_height, src_data, src_pitch);
|
| UpdateBackedMipLevel(face, level);
|
| } else {
|
| - SetTextureFaceRect(service_locator(),
|
| - d3d_cube_texture_,
|
| - format(),
|
| - face,
|
| - level,
|
| - dst_left,
|
| - dst_top,
|
| - src_width,
|
| - src_height,
|
| - src_data,
|
| - src_pitch);
|
| + success = SetTextureFaceRect(service_locator(),
|
| + d3d_cube_texture_,
|
| + format(),
|
| + face,
|
| + level,
|
| + dst_left,
|
| + dst_top,
|
| + src_width,
|
| + src_height,
|
| + src_data,
|
| + src_pitch);
|
| }
|
| + if (success && level == 0) {
|
| + TextureUpdated();
|
| + }
|
| }
|
|
|
| // Locks the given face and mipmap level of this texture for loading from
|
|
|