Index: content/browser/renderer_host/render_widget_host_view_mac.h |
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h |
index 6a9caaa504b695cb70067300ea2b2b6293f28fb6..da16bc2f059abd38431c6d0d9348f99ef3ee2741 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_mac.h |
+++ b/content/browser/renderer_host/render_widget_host_view_mac.h |
@@ -18,6 +18,7 @@ |
#include "base/time/time.h" |
#include "content/browser/accessibility/browser_accessibility_delegate_mac.h" |
#include "content/browser/renderer_host/render_widget_host_view_base.h" |
+#include "content/browser/renderer_host/software_frame_manager.h" |
#include "content/common/edit_command.h" |
#import "content/public/browser/render_widget_host_view_mac_base.h" |
#include "ipc/ipc_sender.h" |
@@ -196,7 +197,8 @@ class RenderWidgetHostImpl; |
// |
// RenderWidgetHostView class hierarchy described in render_widget_host_view.h. |
class RenderWidgetHostViewMac : public RenderWidgetHostViewBase, |
- public IPC::Sender { |
+ public IPC::Sender, |
+ public SoftwareFrameManagerClient { |
public: |
virtual ~RenderWidgetHostViewMac(); |
@@ -283,6 +285,8 @@ class RenderWidgetHostViewMac : public RenderWidgetHostViewBase, |
virtual void BeginFrameSubscription( |
scoped_ptr<RenderWidgetHostViewFrameSubscriber> subscriber) OVERRIDE; |
virtual void EndFrameSubscription() OVERRIDE; |
+ virtual void OnSwapCompositorFrame( |
+ uint32 output_surface_id, scoped_ptr<cc::CompositorFrame> frame) OVERRIDE; |
virtual void OnAcceleratedCompositingStateChange() OVERRIDE; |
virtual void OnAccessibilityEvents( |
const std::vector<AccessibilityHostMsg_EventParams>& params |
@@ -316,6 +320,11 @@ class RenderWidgetHostViewMac : public RenderWidgetHostViewBase, |
// IPC::Sender implementation. |
virtual bool Send(IPC::Message* message) OVERRIDE; |
+ // SoftwareFrameManagerClient implementation: |
+ virtual void SoftwareFrameWasFreed( |
+ uint32 output_surface_id, unsigned frame_id) OVERRIDE; |
+ virtual void ReleaseReferencesToSoftwareFrame() OVERRIDE; |
+ |
// Forwards the mouse event to the renderer. |
void ForwardMouseEvent(const WebKit::WebMouseEvent& event); |
@@ -412,6 +421,9 @@ class RenderWidgetHostViewMac : public RenderWidgetHostViewBase, |
scoped_ptr<CompositingIOSurfaceMac> compositing_iosurface_; |
scoped_refptr<CompositingIOSurfaceContext> compositing_iosurface_context_; |
+ // This holds the current software compositing framebuffer, if any. |
+ scoped_ptr<SoftwareFrameManager> software_frame_manager_; |
+ |
// Whether to allow overlapping views. |
bool allow_overlapping_views_; |
@@ -552,6 +564,8 @@ class RenderWidgetHostViewMac : public RenderWidgetHostViewBase, |
// Subscriber that listens to frame presentation events. |
scoped_ptr<RenderWidgetHostViewFrameSubscriber> frame_subscriber_; |
+ base::WeakPtrFactory<RenderWidgetHostViewMac> |
+ software_frame_weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewMac); |
}; |