Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(572)

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac.h

Issue 25942002: Make software compositing work on Mac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix windows resolve Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698