summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp
diff options
context:
space:
mode:
authorNeoBrainX <NeoBrainX@gmail.com>2012-05-22 08:14:33 +0200
committerNeoBrainX <NeoBrainX@gmail.com>2012-05-22 08:14:49 +0200
commit4131ca8d386eb37533eb2863214bbc76de67e389 (patch)
tree35e15f462a9cb581fb6ccb91f948432470dbf997 /Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp
parent1bc5f41e40e604ef6c1d1e84617c13fdf40e04d1 (diff)
parent54aeec7a8ff6b6e5d050637b6cce8df6d9a8b633 (diff)
Merge branch 'hires-tex-improvements'
Diffstat (limited to 'Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp
index 2a3f12ddcf..0d31098c17 100644
--- a/Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp
+++ b/Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp
@@ -58,9 +58,17 @@ void TextureCache::TCacheEntry::Bind(unsigned int stage)
D3D::SetTexture(stage, texture);
}
-bool TextureCache::TCacheEntry::Save(const char filename[])
+bool TextureCache::TCacheEntry::Save(const char filename[], unsigned int level)
{
- return SUCCEEDED(PD3DXSaveTextureToFileA(filename, D3DXIFF_PNG, texture, 0));
+ IDirect3DSurface9* surface;
+ HRESULT hr = texture->GetSurfaceLevel(level, &surface);
+ if (FAILED(hr))
+ return false;
+
+ hr = PD3DXSaveSurfaceToFileA(filename, D3DXIFF_PNG, surface, NULL, NULL);
+ surface->Release();
+
+ return SUCCEEDED(hr);
}
void TextureCache::TCacheEntry::Load(unsigned int width, unsigned int height,