summaryrefslogtreecommitdiffstats
path: root/content/common/gpu/image_transport_surface_linux.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/common/gpu/image_transport_surface_linux.cc')
-rw-r--r--content/common/gpu/image_transport_surface_linux.cc30
1 files changed, 29 insertions, 1 deletions
diff --git a/content/common/gpu/image_transport_surface_linux.cc b/content/common/gpu/image_transport_surface_linux.cc
index 5cc75ba..bcb1284 100644
--- a/content/common/gpu/image_transport_surface_linux.cc
+++ b/content/common/gpu/image_transport_surface_linux.cc
@@ -77,6 +77,7 @@ class EGLImageTransportSurface : public ImageTransportSurface,
virtual void OnNewSurfaceACK(
uint64 surface_id, TransportDIB::Handle surface_handle) OVERRIDE;
virtual void OnBuffersSwappedACK() OVERRIDE;
+ virtual void OnResizeViewACK() OVERRIDE;
virtual void OnResize(gfx::Size size) OVERRIDE;
private:
@@ -119,6 +120,7 @@ class GLXImageTransportSurface : public ImageTransportSurface,
virtual void OnNewSurfaceACK(
uint64 surface_id, TransportDIB::Handle surface_handle) OVERRIDE;
virtual void OnBuffersSwappedACK() OVERRIDE;
+ virtual void OnResizeViewACK() OVERRIDE;
virtual void OnResize(gfx::Size size) OVERRIDE;
private:
@@ -167,6 +169,7 @@ class OSMesaImageTransportSurface : public ImageTransportSurface,
virtual void OnNewSurfaceACK(
uint64 surface_id, TransportDIB::Handle surface_handle) OVERRIDE;
virtual void OnBuffersSwappedACK() OVERRIDE;
+ virtual void OnResizeViewACK() OVERRIDE;
virtual void OnResize(gfx::Size size) OVERRIDE;
private:
@@ -374,6 +377,11 @@ void EGLImageTransportSurface::OnBuffersSwappedACK() {
helper_->SetScheduled(true);
}
+
+void EGLImageTransportSurface::OnResizeViewACK() {
+ NOTREACHED();
+}
+
GLXImageTransportSurface::GLXImageTransportSurface(
GpuChannelManager* manager,
int32 render_view_id,
@@ -539,6 +547,10 @@ void GLXImageTransportSurface::OnBuffersSwappedACK() {
helper_->SetScheduled(true);
}
+void GLXImageTransportSurface::OnResizeViewACK() {
+ NOTREACHED();
+}
+
OSMesaImageTransportSurface::OSMesaImageTransportSurface(
GpuChannelManager* manager,
int32 render_view_id,
@@ -617,6 +629,10 @@ void OSMesaImageTransportSurface::OnNewSurfaceACK(
helper_->SetScheduled(true);
}
+void OSMesaImageTransportSurface::OnResizeViewACK() {
+ NOTREACHED();
+}
+
bool OSMesaImageTransportSurface::SwapBuffers() {
DCHECK_NE(shared_mem_.get(), static_cast<void*>(NULL));
@@ -648,8 +664,9 @@ scoped_refptr<gfx::GLSurface> ImageTransportSurface::CreateSurface(
int32 render_view_id,
int32 renderer_id,
int32 command_buffer_id,
- gfx::PluginWindowHandle /* handle */) {
+ gfx::PluginWindowHandle handle) {
scoped_refptr<gfx::GLSurface> surface;
+#if defined(UI_COMPOSITOR_IMAGE_TRANSPORT)
switch (gfx::GetGLImplementation()) {
case gfx::kGLImplementationDesktopGL:
surface = new GLXImageTransportSurface(manager,
@@ -673,6 +690,17 @@ scoped_refptr<gfx::GLSurface> ImageTransportSurface::CreateSurface(
NOTREACHED();
return NULL;
}
+#else
+ surface = gfx::GLSurface::CreateViewGLSurface(false, handle);
+ if (!surface.get())
+ return NULL;
+
+ surface = new PassThroughImageTransportSurface(manager,
+ render_view_id,
+ renderer_id,
+ command_buffer_id,
+ surface.get());
+#endif
if (surface->Initialize())
return surface;
else