summaryrefslogtreecommitdiffstats
path: root/content/browser/renderer_host/render_widget_host_view_mac.h
diff options
context:
space:
mode:
authorccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-13 01:00:35 +0000
committerccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-13 01:00:35 +0000
commit4232b250edef4e6325d792290af2895aac8cb8fe (patch)
tree1c28c72a9c2e4df125efa4d4520e37483a6dbad4 /content/browser/renderer_host/render_widget_host_view_mac.h
parent2c68be07377cb224e4c4f56549301352953cb2d4 (diff)
downloadchromium_src-4232b250edef4e6325d792290af2895aac8cb8fe.zip
chromium_src-4232b250edef4e6325d792290af2895aac8cb8fe.tar.gz
chromium_src-4232b250edef4e6325d792290af2895aac8cb8fe.tar.bz2
Make --enable-delegated-renderer show stuff on Mac
With this patch, pixels appear on screen and tab capture works. Add a OnNativeSurfaceBuffersSwapped mechanism to display an IOSurface to an NSView. This is wired up to the existing CompositingIOSurfaceMac. In a future refactoring, something much more light-weight than CompositingIOSurfaceMac will be used (CompositingIOSurfaceMac has capture code, etc, in it). Add a DelegatedFrameHost to RenderWidgetHostViewMac, and hookup the DelegatedFrameHostClient implementation. Create the DelegatedFrameHost when a delegated frame is received, and use its existence to determine which mode is active. BUG=314190 Review URL: https://codereview.chromium.org/267073003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269946 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/renderer_host/render_widget_host_view_mac.h')
-rw-r--r--content/browser/renderer_host/render_widget_host_view_mac.h26
1 files changed, 26 insertions, 0 deletions
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 9626259..8db4f6b 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.h
+++ b/content/browser/renderer_host/render_widget_host_view_mac.h
@@ -16,6 +16,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/time/time.h"
+#include "content/browser/compositor/delegated_frame_host.h"
#include "content/browser/renderer_host/display_link_mac.h"
#include "content/browser/renderer_host/render_widget_host_view_base.h"
#include "content/browser/renderer_host/software_frame_manager.h"
@@ -35,6 +36,11 @@ class RenderWidgetHostViewMacEditCommandHelper;
class WebContents;
}
+namespace ui {
+class Compositor;
+class Layer;
+}
+
@class CompositingIOSurfaceLayer;
@class FullscreenWindowManager;
@protocol RenderWidgetHostViewMacDelegate;
@@ -214,6 +220,7 @@ class RenderWidgetHostImpl;
// RenderWidgetHostView class hierarchy described in render_widget_host_view.h.
class CONTENT_EXPORT RenderWidgetHostViewMac
: public RenderWidgetHostViewBase,
+ public DelegatedFrameHostClient,
public IPC::Sender,
public SoftwareFrameManagerClient {
public:
@@ -448,6 +455,11 @@ class CONTENT_EXPORT RenderWidgetHostViewMac
base::DelayTimer<RenderWidgetHostViewMac>
compositing_iosurface_layer_async_timer_;
+ // Delegated frame management and compositior.
+ scoped_ptr<DelegatedFrameHost> delegated_frame_host_;
+ scoped_ptr<ui::Compositor> compositor_;
+ scoped_ptr<ui::Layer> root_layer_;
+
// This holds the current software compositing framebuffer, if any.
scoped_ptr<SoftwareFrameManager> software_frame_manager_;
@@ -514,6 +526,20 @@ class CONTENT_EXPORT RenderWidgetHostViewMac
bool HasPendingSwapAck() const { return pending_swap_ack_; }
+ // DelegatedFrameHostClient implementation.
+ virtual ui::Compositor* GetCompositor() const OVERRIDE;
+ virtual ui::Layer* GetLayer() OVERRIDE;
+ virtual RenderWidgetHostImpl* GetHost() OVERRIDE;
+ virtual void SchedulePaintInRect(
+ const gfx::Rect& damage_rect_in_dip) OVERRIDE;
+ virtual bool IsVisible() OVERRIDE;
+ virtual scoped_ptr<ResizeLock> CreateResizeLock(
+ bool defer_compositor_lock) OVERRIDE;
+ virtual gfx::Size DesiredFrameSize() OVERRIDE;
+ virtual float CurrentDeviceScaleFactor() OVERRIDE;
+ virtual gfx::Size ConvertViewSizeToPixel(const gfx::Size& size) OVERRIDE;
+ virtual DelegatedFrameHost* GetDelegatedFrameHost() const OVERRIDE;
+
private:
friend class RenderWidgetHostViewMacTest;