diff options
author | ccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-13 01:00:35 +0000 |
---|---|---|
committer | ccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-13 01:00:35 +0000 |
commit | 4232b250edef4e6325d792290af2895aac8cb8fe (patch) | |
tree | 1c28c72a9c2e4df125efa4d4520e37483a6dbad4 /content/browser/renderer_host/render_widget_host_view_mac.h | |
parent | 2c68be07377cb224e4c4f56549301352953cb2d4 (diff) | |
download | chromium_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.h | 26 |
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; |