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 6bad9f931d7ce54b731206340e7d0d1f1f523e44..200c1aa3355e08033196f1db3924b6b8a37b6592 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm |
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm |
@@ -943,7 +943,6 @@ void RenderWidgetHostViewMac::CopyFromCompositingSurface( |
scoped_callback_runner.Release(); |
compositing_iosurface_->CopyTo(GetScaledOpenGLPixelRect(src_subrect), |
- ScaleFactor(cocoa_view_), |
dst_pixel_size, |
callback); |
} |
@@ -975,7 +974,6 @@ void RenderWidgetHostViewMac::CopyFromCompositingSurfaceToVideoFrame( |
scoped_callback_runner.Release(); |
compositing_iosurface_->CopyToVideoFrame( |
GetScaledOpenGLPixelRect(src_subrect), |
- ScaleFactor(cocoa_view_), |
target, |
callback); |
} |
@@ -1046,7 +1044,8 @@ void RenderWidgetHostViewMac::PluginImeCompositionCompleted( |
} |
bool RenderWidgetHostViewMac::CompositorSwapBuffers(uint64 surface_handle, |
- const gfx::Size& size) { |
+ const gfx::Size& size, |
+ float scale_factor) { |
if (is_hidden_) |
return true; |
@@ -1060,9 +1059,10 @@ bool RenderWidgetHostViewMac::CompositorSwapBuffers(uint64 surface_handle, |
RenderWidgetHostViewFrameSubscriber::DeliverFrameCallback callback; |
if (frame_subscriber_->ShouldCaptureFrame(present_time, |
&frame, &callback)) { |
- compositing_iosurface_->SetIOSurface(surface_handle, size); |
+ compositing_iosurface_->SetIOSurface( |
+ surface_handle, size, scale_factor); |
compositing_iosurface_->CopyToVideoFrame( |
- gfx::Rect(size), ScaleFactor(cocoa_view_), frame, |
+ gfx::Rect(size), frame, |
base::Bind(callback, present_time)); |
return true; |
} |
@@ -1102,7 +1102,7 @@ bool RenderWidgetHostViewMac::CompositorSwapBuffers(uint64 surface_handle, |
if (!compositing_iosurface_) |
return true; |
- compositing_iosurface_->SetIOSurface(surface_handle, size); |
+ compositing_iosurface_->SetIOSurface(surface_handle, size, scale_factor); |
GotAcceleratedFrame(); |
@@ -1312,7 +1312,9 @@ void RenderWidgetHostViewMac::AcceleratedSurfaceBuffersSwapped( |
pending_swap_buffers_acks_.push_back(std::make_pair(params.route_id, |
gpu_host_id)); |
- if (CompositorSwapBuffers(params.surface_handle, params.size)) |
+ if (CompositorSwapBuffers(params.surface_handle, |
+ params.size, |
+ params.scale_factor)) |
AckPendingSwapBuffers(); |
} |
@@ -1326,7 +1328,9 @@ void RenderWidgetHostViewMac::AcceleratedSurfacePostSubBuffer( |
pending_swap_buffers_acks_.push_back(std::make_pair(params.route_id, |
gpu_host_id)); |
- if (CompositorSwapBuffers(params.surface_handle, params.surface_size)) |
+ if (CompositorSwapBuffers(params.surface_handle, |
+ params.surface_size, |
+ params.surface_scale_factor)) |
AckPendingSwapBuffers(); |
} |
@@ -1341,20 +1345,11 @@ void RenderWidgetHostViewMac::AcceleratedSurfaceRelease() { |
bool RenderWidgetHostViewMac::HasAcceleratedSurface( |
const gfx::Size& desired_size) { |
- // Update device scale factor for the IOSurface before checking if there |
- // is a match. When initially created, the IOSurface is unaware of its |
- // scale factor, which can result in compatible IOSurfaces not being used |
- // http://crbug.com/237293 |
- if (compositing_iosurface_.get() && |
- compositing_iosurface_->HasIOSurface()) { |
- compositing_iosurface_->SetDeviceScaleFactor(ScaleFactor(cocoa_view_)); |
- } |
- |
return last_frame_was_accelerated_ && |
compositing_iosurface_.get() && |
compositing_iosurface_->HasIOSurface() && |
(desired_size.IsEmpty() || |
- compositing_iosurface_->io_surface_size() == desired_size); |
+ compositing_iosurface_->dip_io_surface_size() == desired_size); |
} |
void RenderWidgetHostViewMac::AboutToWaitForBackingStoreMsg() { |