| Index: content/browser/compositor/browser_compositor_view_mac.mm
|
| diff --git a/content/browser/compositor/browser_compositor_view_mac.mm b/content/browser/compositor/browser_compositor_view_mac.mm
|
| index 7b81f0281bd256ec580c3839f666cce1122205fc..93440ee0bd921635145710103ac218e8178c6405 100644
|
| --- a/content/browser/compositor/browser_compositor_view_mac.mm
|
| +++ b/content/browser/compositor/browser_compositor_view_mac.mm
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/debug/trace_event.h"
|
| #include "base/mac/scoped_cftyperef.h"
|
| +#include "content/browser/compositor/gpu_process_transport_factory.h"
|
| #include "content/browser/renderer_host/compositing_iosurface_context_mac.h"
|
| #include "content/browser/renderer_host/compositing_iosurface_mac.h"
|
| #include "content/browser/renderer_host/software_layer_mac.h"
|
| @@ -48,6 +49,7 @@ class BrowserCompositorViewMacHelper : public CompositingIOSurfaceLayerClient {
|
| @implementation NSView (BrowserCompositorView)
|
|
|
| - (void)gotAcceleratedIOSurfaceFrame:(uint64)surface_handle
|
| + withOutputSurfaceID:(int)surface_id
|
| withPixelSize:(gfx::Size)pixel_size
|
| withScaleFactor:(float)scale_factor {
|
| DLOG(ERROR) << "-[NSView gotAcceleratedIOSurfaceFrame] called on "
|
| @@ -66,6 +68,7 @@ class BrowserCompositorViewMacHelper : public CompositingIOSurfaceLayerClient {
|
|
|
| - (id)initWithSuperview:(NSView*)view {
|
| if (self = [super init]) {
|
| + accelerated_layer_output_surface_id_ = 0;
|
| helper_.reset(new content::BrowserCompositorViewMacHelper(self));
|
|
|
| // Disable the fade-in animation as the layer and view are added.
|
| @@ -146,8 +149,12 @@ class BrowserCompositorViewMacHelper : public CompositingIOSurfaceLayerClient {
|
| }
|
|
|
| - (void)gotAcceleratedIOSurfaceFrame:(uint64)surface_handle
|
| + withOutputSurfaceID:(int)surface_id
|
| withPixelSize:(gfx::Size)pixel_size
|
| withScaleFactor:(float)scale_factor {
|
| + DCHECK(!accelerated_layer_output_surface_id_);
|
| + accelerated_layer_output_surface_id_ = surface_id;
|
| +
|
| ScopedCAActionDisabler disabler;
|
|
|
| // If there is already an accelerated layer, but it has the wrong scale
|
| @@ -238,6 +245,12 @@ class BrowserCompositorViewMacHelper : public CompositingIOSurfaceLayerClient {
|
| }
|
|
|
| - (void)layerDidDrawFrame {
|
| + if (!accelerated_layer_output_surface_id_)
|
| + return;
|
| +
|
| + content::ImageTransportFactory::GetInstance()->OnSurfaceDisplayed(
|
| + accelerated_layer_output_surface_id_);
|
| + accelerated_layer_output_surface_id_ = 0;
|
| }
|
|
|
| @end // BrowserCompositorViewMac
|
|
|