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

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

Issue 745453002: Create an AcceleratedWidgetMac (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compile Created 6 years, 1 month 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
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_mac.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/render_widget_host_view_mac.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 9a19c54bd0238698b8a38370e6015b4d7d577fd0..e5d70cb6bbcbc64e03f8a8c6a9614159a97ddb05 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -395,10 +395,10 @@ namespace content {
// DelegatedFrameHost, public:
ui::Compositor* RenderWidgetHostViewMac::GetCompositor() const {
- // When |browser_compositor_view_| is suspended or destroyed, the connection
+ // When |browser_compositor_| is suspended or destroyed, the connection
// between its ui::Compositor and |delegated_frame_host_| has been severed.
if (browser_compositor_state_ == BrowserCompositorActive)
- return browser_compositor_view_->GetCompositor();
+ return browser_compositor_->compositor();
return NULL;
}
@@ -440,9 +440,13 @@ DelegatedFrameHost* RenderWidgetHostViewMac::GetDelegatedFrameHost() const {
}
////////////////////////////////////////////////////////////////////////////////
-// BrowserCompositorViewMacClient, public:
+// AcceleratedWidgetMacNSView, public:
-bool RenderWidgetHostViewMac::BrowserCompositorViewShouldAckImmediately()
+NSView* RenderWidgetHostViewMac::AcceleratedWidgetGetNSView() const {
+ return cocoa_view_;
+}
+
+bool RenderWidgetHostViewMac::AcceleratedWidgetShouldIgnoreBackpressure()
const {
// If vsync is disabled, then always draw and ack frames immediately.
static bool is_vsync_disabled =
@@ -484,7 +488,7 @@ bool RenderWidgetHostViewMac::BrowserCompositorViewShouldAckImmediately()
return false;
}
-void RenderWidgetHostViewMac::BrowserCompositorViewFrameSwapped(
+void RenderWidgetHostViewMac::AcceleratedWidgetSwapCompleted(
const std::vector<ui::LatencyInfo>& all_latency_info) {
if (!render_widget_host_)
return;
@@ -495,6 +499,11 @@ void RenderWidgetHostViewMac::BrowserCompositorViewFrameSwapped(
}
}
+void RenderWidgetHostViewMac::AcceleratedWidgetHitError() {
+ // Request a new frame be drawn.
+ browser_compositor_->compositor()->ScheduleFullRedraw();
+}
+
///////////////////////////////////////////////////////////////////////////////
// RenderWidgetHostViewBase, public:
@@ -513,8 +522,7 @@ RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget,
text_input_type_(ui::TEXT_INPUT_TYPE_NONE),
can_compose_inline_(true),
browser_compositor_state_(BrowserCompositorDestroyed),
- browser_compositor_view_placeholder_(
- new BrowserCompositorViewPlaceholderMac),
+ browser_compositor_placeholder_(new BrowserCompositorMacPlaceholder),
is_loading_(false),
allow_pause_for_resize_or_repaint_(true),
is_guest_view_hack_(is_guest_view_hack),
@@ -588,8 +596,11 @@ void RenderWidgetHostViewMac::EnsureBrowserCompositorView() {
// Create the view, to transition from Destroyed -> Suspended.
if (browser_compositor_state_ == BrowserCompositorDestroyed) {
- browser_compositor_view_.reset(
- new BrowserCompositorViewMac(this, cocoa_view_, root_layer_.get()));
+ browser_compositor_ = BrowserCompositorMac::Create();
+ browser_compositor_->compositor()->SetRootLayer(
+ root_layer_.get());
+ browser_compositor_->accelerated_widget_mac()->SetNSView(this);
+ browser_compositor_->compositor()->SetVisible(true);
browser_compositor_state_ = BrowserCompositorSuspended;
}
@@ -624,7 +635,11 @@ void RenderWidgetHostViewMac::DestroyBrowserCompositorView() {
// Destroy the BrowserCompositorView to transition Suspended -> Destroyed.
if (browser_compositor_state_ == BrowserCompositorSuspended) {
- browser_compositor_view_.reset();
+ browser_compositor_->accelerated_widget_mac()->ResetNSView();
+ browser_compositor_->compositor()->SetVisible(false);
+ browser_compositor_->compositor()->SetScaleAndSize(1.0, gfx::Size(0, 0));
+ browser_compositor_->compositor()->SetRootLayer(NULL);
+ BrowserCompositorMac::Recycle(browser_compositor_.Pass());
browser_compositor_state_ = BrowserCompositorDestroyed;
}
}
@@ -1400,8 +1415,10 @@ bool RenderWidgetHostViewMac::GetCachedFirstRectForCharacterRange(
bool RenderWidgetHostViewMac::HasAcceleratedSurface(
const gfx::Size& desired_size) {
- if (browser_compositor_view_)
- return browser_compositor_view_->HasFrameOfSize(desired_size);
+ if (browser_compositor_) {
+ return browser_compositor_->accelerated_widget_mac()->HasFrameOfSize(
+ desired_size);
+ }
return false;
}
@@ -1423,7 +1440,7 @@ void RenderWidgetHostViewMac::OnSwapCompositorFrame(
root_layer_->SetBounds(gfx::Rect(dip_size));
if (!render_widget_host_->is_hidden()) {
EnsureBrowserCompositorView();
- browser_compositor_view_->GetCompositor()->SetScaleAndSize(
+ browser_compositor_->compositor()->SetScaleAndSize(
scale_factor, pixel_size);
}
@@ -1520,7 +1537,7 @@ void RenderWidgetHostViewMac::ShutdownBrowserCompositor() {
DestroyBrowserCompositorView();
delegated_frame_host_.reset();
root_layer_.reset();
- browser_compositor_view_placeholder_.reset();
+ browser_compositor_placeholder_.reset();
}
void RenderWidgetHostViewMac::SetActive(bool active) {
@@ -1646,11 +1663,11 @@ void RenderWidgetHostViewMac::PauseForPendingResizeOrRepaintsAndDraw() {
return;
// Wait for a frame of the right size to come in.
- if (browser_compositor_view_)
- browser_compositor_view_->BeginPumpingFrames();
+ if (browser_compositor_)
+ browser_compositor_->accelerated_widget_mac()->BeginPumpingFrames();
render_widget_host_->PauseForPendingResizeOrRepaints();
- if (browser_compositor_view_)
- browser_compositor_view_->EndPumpingFrames();
+ if (browser_compositor_)
+ browser_compositor_->accelerated_widget_mac()->EndPumpingFrames();
}
SkColorType RenderWidgetHostViewMac::PreferredReadbackFormat() {
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_mac.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698