| Index: content/common/gpu/image_transport_surface_linux.cc
|
| diff --git a/content/common/gpu/image_transport_surface_linux.cc b/content/common/gpu/image_transport_surface_linux.cc
|
| index bcb1284efe4d9e1a1834575725887471090e87f8..e106a9ff9b1e084c39bac92e39928d5a9bdd0ea7 100644
|
| --- a/content/common/gpu/image_transport_surface_linux.cc
|
| +++ b/content/common/gpu/image_transport_surface_linux.cc
|
| @@ -67,6 +67,8 @@ class EGLImageTransportSurface : public ImageTransportSurface,
|
| virtual void Destroy() OVERRIDE;
|
| virtual bool IsOffscreen() OVERRIDE;
|
| virtual bool SwapBuffers() OVERRIDE;
|
| + virtual bool PostSubBuffer(int x, int y, int width, int height) OVERRIDE;
|
| + virtual std::string GetExtensions() OVERRIDE;
|
| virtual gfx::Size GetSize() OVERRIDE;
|
| virtual bool OnMakeCurrent(gfx::GLContext* context) OVERRIDE;
|
| virtual unsigned int GetBackingFrameBufferObject() OVERRIDE;
|
| @@ -77,6 +79,7 @@ class EGLImageTransportSurface : public ImageTransportSurface,
|
| virtual void OnNewSurfaceACK(
|
| uint64 surface_id, TransportDIB::Handle surface_handle) OVERRIDE;
|
| virtual void OnBuffersSwappedACK() OVERRIDE;
|
| + virtual void OnPostSubBufferACK() OVERRIDE;
|
| virtual void OnResizeViewACK() OVERRIDE;
|
| virtual void OnResize(gfx::Size size) OVERRIDE;
|
|
|
| @@ -111,6 +114,7 @@ class GLXImageTransportSurface : public ImageTransportSurface,
|
| virtual bool Initialize() OVERRIDE;
|
| virtual void Destroy() OVERRIDE;
|
| virtual bool SwapBuffers() OVERRIDE;
|
| + virtual bool PostSubBuffer(int x, int y, int width, int height) OVERRIDE;
|
| virtual gfx::Size GetSize() OVERRIDE;
|
| virtual bool OnMakeCurrent(gfx::GLContext* context) OVERRIDE;
|
| virtual void SetVisible(bool visible) OVERRIDE;
|
| @@ -120,6 +124,7 @@ class GLXImageTransportSurface : public ImageTransportSurface,
|
| virtual void OnNewSurfaceACK(
|
| uint64 surface_id, TransportDIB::Handle surface_handle) OVERRIDE;
|
| virtual void OnBuffersSwappedACK() OVERRIDE;
|
| + virtual void OnPostSubBufferACK() OVERRIDE;
|
| virtual void OnResizeViewACK() OVERRIDE;
|
| virtual void OnResize(gfx::Size size) OVERRIDE;
|
|
|
| @@ -162,6 +167,8 @@ class OSMesaImageTransportSurface : public ImageTransportSurface,
|
| virtual void Destroy() OVERRIDE;
|
| virtual bool IsOffscreen() OVERRIDE;
|
| virtual bool SwapBuffers() OVERRIDE;
|
| + virtual bool PostSubBuffer(int x, int y, int width, int height) OVERRIDE;
|
| + virtual std::string GetExtensions() OVERRIDE;
|
| virtual gfx::Size GetSize() OVERRIDE;
|
|
|
| protected:
|
| @@ -169,6 +176,7 @@ class OSMesaImageTransportSurface : public ImageTransportSurface,
|
| virtual void OnNewSurfaceACK(
|
| uint64 surface_id, TransportDIB::Handle surface_handle) OVERRIDE;
|
| virtual void OnBuffersSwappedACK() OVERRIDE;
|
| + virtual void OnPostSubBufferACK() OVERRIDE;
|
| virtual void OnResizeViewACK() OVERRIDE;
|
| virtual void OnResize(gfx::Size size) OVERRIDE;
|
|
|
| @@ -363,6 +371,16 @@ bool EGLImageTransportSurface::SwapBuffers() {
|
| return true;
|
| }
|
|
|
| +bool EGLImageTransportSurface::PostSubBuffer(
|
| + int x, int y, int width, int height) {
|
| + NOTREACHED();
|
| + return false;
|
| +}
|
| +
|
| +std::string EGLImageTransportSurface::GetExtensions() {
|
| + return GLSurface::GetExtensions();
|
| +}
|
| +
|
| gfx::Size EGLImageTransportSurface::GetSize() {
|
| return back_surface_->size();
|
| }
|
| @@ -377,6 +395,9 @@ void EGLImageTransportSurface::OnBuffersSwappedACK() {
|
| helper_->SetScheduled(true);
|
| }
|
|
|
| +void EGLImageTransportSurface::OnPostSubBufferACK() {
|
| + NOTREACHED();
|
| +}
|
|
|
| void EGLImageTransportSurface::OnResizeViewACK() {
|
| NOTREACHED();
|
| @@ -513,6 +534,34 @@ bool GLXImageTransportSurface::SwapBuffers() {
|
| return true;
|
| }
|
|
|
| +bool GLXImageTransportSurface::PostSubBuffer(
|
| + int x, int y, int width, int height) {
|
| + gfx::NativeViewGLSurfaceGLX::PostSubBuffer(x, y, width, height);
|
| + glFlush();
|
| +
|
| + if (needs_resize_) {
|
| + GpuHostMsg_AcceleratedSurfaceNew_Params params;
|
| + params.width = size_.width();
|
| + params.height = size_.height();
|
| + params.surface_id = window_;
|
| + helper_->SendAcceleratedSurfaceNew(params);
|
| + bound_ = true;
|
| + needs_resize_ = false;
|
| + }
|
| +
|
| + GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params params;
|
| + params.surface_id = window_;
|
| + params.x = x;
|
| + params.y = y;
|
| + params.width = width;
|
| + params.height = height;
|
| +
|
| + helper_->SendAcceleratedSurfacePostSubBuffer(params);
|
| +
|
| + helper_->SetScheduled(false);
|
| + return true;
|
| +}
|
| +
|
| gfx::Size GLXImageTransportSurface::GetSize() {
|
| return size_;
|
| }
|
| @@ -547,6 +596,10 @@ void GLXImageTransportSurface::OnBuffersSwappedACK() {
|
| helper_->SetScheduled(true);
|
| }
|
|
|
| +void GLXImageTransportSurface::OnPostSubBufferACK() {
|
| + helper_->SetScheduled(true);
|
| +}
|
| +
|
| void GLXImageTransportSurface::OnResizeViewACK() {
|
| NOTREACHED();
|
| }
|
| @@ -648,10 +701,24 @@ bool OSMesaImageTransportSurface::SwapBuffers() {
|
| return true;
|
| }
|
|
|
| +bool OSMesaImageTransportSurface::PostSubBuffer(
|
| + int x, int y, int width, int height) {
|
| + NOTREACHED();
|
| + return false;
|
| +}
|
| +
|
| +std::string OSMesaImageTransportSurface::GetExtensions() {
|
| + return GLSurface::GetExtensions();
|
| +}
|
| +
|
| void OSMesaImageTransportSurface::OnBuffersSwappedACK() {
|
| helper_->SetScheduled(true);
|
| }
|
|
|
| +void OSMesaImageTransportSurface::OnPostSubBufferACK() {
|
| + NOTREACHED();
|
| +}
|
| +
|
| gfx::Size OSMesaImageTransportSurface::GetSize() {
|
| return size_;
|
| }
|
|
|