OLD | NEW |
(Empty) | |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #ifndef CONTENT_BROWSER_COMPOSITOR_BROWSER_COMPOSITOR_VIEW_MAC_H_ |
| 6 #define CONTENT_BROWSER_COMPOSITOR_BROWSER_COMPOSITOR_VIEW_MAC_H_ |
| 7 |
| 8 #import <Cocoa/Cocoa.h> |
| 9 |
| 10 #include "base/mac/scoped_nsobject.h" |
| 11 #include "cc/output/software_frame_data.h" |
| 12 #include "content/browser/renderer_host/compositing_iosurface_layer_mac.h" |
| 13 #include "content/browser/renderer_host/software_layer_mac.h" |
| 14 #include "skia/ext/platform_canvas.h" |
| 15 #include "ui/compositor/compositor.h" |
| 16 #include "ui/gfx/geometry/size.h" |
| 17 |
| 18 @class BrowserCompositorViewMac; |
| 19 |
| 20 // Additions to the NSView interface for compositor frames. |
| 21 @interface NSView (BrowserCompositorView) |
| 22 - (void)gotAcceleratedIOSurfaceFrame:(uint64)surface_handle |
| 23 withPixelSize:(gfx::Size)pixel_size |
| 24 withScaleFactor:(float)scale_factor; |
| 25 |
| 26 - (void)gotSoftwareFrame:(cc::SoftwareFrameData*)frame_data |
| 27 withScaleFactor:(float)scale_factor |
| 28 withCanvas:(SkCanvas*)canvas; |
| 29 @end |
| 30 |
| 31 // NSView drawn by a ui::Compositor. The superview of this view is responsible |
| 32 // for changing the ui::Compositor SizeAndScale and calling layoutLayers when |
| 33 // the size of the parent view may change. This interface is patterned after |
| 34 // the needs of RenderWidgetHostViewCocoa, and could change. |
| 35 @interface BrowserCompositorViewMac : NSView { |
| 36 scoped_ptr<ui::Compositor> compositor_; |
| 37 base::scoped_nsobject<CALayer> background_layer_; |
| 38 base::scoped_nsobject<CompositingIOSurfaceLayer> accelerated_layer_; |
| 39 base::scoped_nsobject<SoftwareLayer> software_layer_; |
| 40 } |
| 41 |
| 42 // Initialize to render the content of a specific superview. |
| 43 - (id)initWithSuperview:(NSView*)view; |
| 44 |
| 45 // Re-position the layers to the correct place when this view's superview |
| 46 // changes size, or when the accelerated or software content changes. |
| 47 - (void)layoutLayers; |
| 48 |
| 49 // Access the underlying ui::Compositor for this view. |
| 50 - (ui::Compositor*)compositor; |
| 51 @end |
| 52 |
| 53 #endif // CONTENT_BROWSER_COMPOSITOR_BROWSER_COMPOSITOR_VIEW_MAC_H_ |
OLD | NEW |