Author:
sco...@chromium.org
Date: Mon Nov 19 17:05:18 2012
New Revision: 168675
Log:
ImageTransportSurface::CreateSurface on Windows handles the following cases:
1. content area on regular (non-aura) windows on vista+
2. content area on regular (non-aura) windows on xp
3. content area on aura
4. top level compositor on aura on windows on angle (normal)
5. top level compositor on aura on windows on mesa (tests)
And, the TransportSurface methods that should be used:
1. PbufferImageTransportSurface
2. NativeGLSurface (PassThroughImageTransportSurface) with transport=true
3. TextureImageTransportSurface
4. PbufferImageTransportSurface
5. NativeGLSurface (PassThroughImageTransportSurface) with transport=false
This change fixes case #5.
TEST=browser_tests, GpuFeatureTest.NoRafDamage
Review URL:
https://chromiumcodereview.appspot.com/11416075
Modified:
trunk/src/content/browser/renderer_host/image_transport_factory.cc
trunk/src/content/common/gpu/image_transport_surface_win.cc
Modified: trunk/src/content/browser/renderer_host/image_transport_factory.cc
==============================================================================
--- trunk/src/content/browser/renderer_host/image_transport_factory.cc (original)
+++ trunk/src/content/browser/renderer_host/image_transport_factory.cc Mon Nov 19 17:05:18 2012
@@ -528,14 +528,10 @@
#if defined(OS_WIN)
if (GpuDataManagerImpl::GetInstance()->IsUsingAcceleratedSurface())
data->accelerated_surface.reset(new AcceleratedSurface(widget));
- tracker->SetSurfaceHandle(
- data->surface_id,
- gfx::GLSurfaceHandle(widget, true));
-#else
+#endif
tracker->SetSurfaceHandle(
data->surface_id,
gfx::GLSurfaceHandle(widget, false));
-#endif
per_compositor_data_[compositor] = data;
Modified: trunk/src/content/common/gpu/image_transport_surface_win.cc
==============================================================================
--- trunk/src/content/common/gpu/image_transport_surface_win.cc (original)
+++ trunk/src/content/common/gpu/image_transport_surface_win.cc Mon Nov 19 17:05:18 2012
@@ -250,8 +250,7 @@
DCHECK(handle.parent_client_id);
surface = new TextureImageTransportSurface(manager, stub, handle);
} else {
- if (handle.transport &&
- gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2 &&
+ if (gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2 &&
!CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDisableImageTransportSurface)) {
// This path handles two different cases.