| Index: content/common/gpu/image_transport_surface_fbo_mac.h
|
| diff --git a/content/common/gpu/image_transport_surface_fbo_mac.h b/content/common/gpu/image_transport_surface_fbo_mac.h
|
| index de501005a0c859bdf42d11b0819a8878ca66b787..42f6683498c48317c6cd8fbf16ad23cb8aafb33b 100644
|
| --- a/content/common/gpu/image_transport_surface_fbo_mac.h
|
| +++ b/content/common/gpu/image_transport_surface_fbo_mac.h
|
| @@ -41,20 +41,20 @@
|
| // GL texture that was bound has already been deleted by the caller.
|
| virtual void FreeColorBufferStorage() = 0;
|
|
|
| - // Swap buffers and return the handle for the surface to send to the browser
|
| - // process to display.
|
| - virtual void SwapBuffers(const gfx::Size& size, float scale_factor) = 0;
|
| + // Retrieve the handle for the surface to send to the browser process to
|
| + // display.
|
| + virtual uint64 GetSurfaceHandle() const = 0;
|
|
|
| - // Indicate that the backbuffer will be written to.
|
| - virtual void WillWriteToBackbuffer() = 0;
|
| + // Called when a new frame has been rendered into the texture, and the
|
| + // browser is about to be sent the surface to display.
|
| + virtual void WillSwapBuffers() = 0;
|
|
|
| - // Indicate that the backbuffer has been discarded and should not be seen
|
| - // again.
|
| - virtual void DiscardBackbuffer() = 0;
|
| -
|
| - // Called once for every SwapBuffers call when the IPC for the present has
|
| - // been processed by the browser.
|
| - virtual void SwapBuffersAckedByBrowser() = 0;
|
| + // Called once for every WillSwapBuffers call when the buffer that was sent
|
| + // to the browser may be released by the GPU process (this may be because
|
| + // the browser is holding a reference, in which case this will come
|
| + // quickly, or it may be because the browser is done with the surface, in
|
| + // which case it will come much later).
|
| + virtual void CanFreeSwappedBuffer() = 0;
|
| };
|
|
|
| ImageTransportSurfaceFBO(GpuChannelManager* manager,
|
| @@ -78,9 +78,7 @@
|
| virtual void SetFrontbufferAllocation(bool allocated) OVERRIDE;
|
|
|
| // Called when the context may continue to make forward progress after a swap.
|
| - void SendSwapBuffers(uint64 surface_handle,
|
| - const gfx::Size pixel_size,
|
| - float scale_factor);
|
| + void UnblockContextAfterPendingSwap();
|
|
|
| protected:
|
| // ImageTransportSurface implementation
|
| @@ -122,8 +120,12 @@
|
| // Whether or not we've successfully made the surface current once.
|
| bool made_current_;
|
|
|
| - // Whether a SwapBuffers IPC needs to be sent to the browser.
|
| - bool is_swap_buffers_send_pending_;
|
| + // Whether a SwapBuffers is pending.
|
| + bool is_swap_buffers_pending_;
|
| +
|
| + // Whether we unscheduled command buffer because of pending SwapBuffers.
|
| + bool did_unschedule_;
|
| +
|
| std::vector<ui::LatencyInfo> latency_info_;
|
|
|
| scoped_ptr<ImageTransportHelper> helper_;
|
|
|