summaryrefslogtreecommitdiffstats
path: root/o3d/core/cross/client.cc
diff options
context:
space:
mode:
authorgman@google.com <gman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-04 22:07:44 +0000
committergman@google.com <gman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-04 22:07:44 +0000
commitc3bf65f5b6c64414996c80cbec80ade3bb6a68f3 (patch)
treeeb12013ef1924927c7eda0b323c440fb8d10de0f /o3d/core/cross/client.cc
parent06e8a9d9635872338d5ac9956e24590e2ddcfb9e (diff)
downloadchromium_src-c3bf65f5b6c64414996c80cbec80ade3bb6a68f3.zip
chromium_src-c3bf65f5b6c64414996c80cbec80ade3bb6a68f3.tar.gz
chromium_src-c3bf65f5b6c64414996c80cbec80ade3bb6a68f3.tar.bz2
Make O3D always clear the backbuffer one way or
another. The issue is that given that we are using DISCARD on D3D and on GL we are only drawing to the visible portion of the O3D area, the state of the backbuffer is undefined. This change should make it consistent across platforms. Review URL: http://codereview.chromium.org/201013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25522 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d/core/cross/client.cc')
-rw-r--r--o3d/core/cross/client.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/o3d/core/cross/client.cc b/o3d/core/cross/client.cc
index 2e0224d..a7f5924 100644
--- a/o3d/core/cross/client.cc
+++ b/o3d/core/cross/client.cc
@@ -452,13 +452,16 @@ String Client::GetScreenshotAsDataURL() {
const RenderSurface* old_render_surface_;
const RenderDepthStencilSurface* old_depth_surface_;
+ bool is_back_buffer;
- renderer_->GetRenderSurfaces(&old_render_surface_, &old_depth_surface_);
- renderer_->SetRenderSurfaces(surface, depth);
+ renderer_->GetRenderSurfaces(&old_render_surface_, &old_depth_surface_,
+ &is_back_buffer);
+ renderer_->SetRenderSurfaces(surface, depth, true);
RenderClientInner(false, true);
- renderer_->SetRenderSurfaces(old_render_surface_, old_depth_surface_);
+ renderer_->SetRenderSurfaces(old_render_surface_, old_depth_surface_,
+ is_back_buffer);
Bitmap::Ref bitmap(surface->GetBitmap());
if (bitmap.IsNull()) {