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 UI_BASE_COCOA_REMOTE_LAYER_API_H_ |
| 6 #define UI_BASE_COCOA_REMOTE_LAYER_API_H_ |
| 7 |
| 8 #if defined(__OBJC__) |
| 9 #import <Cocoa/Cocoa.h> |
| 10 #endif // __OBJC__ |
| 11 |
| 12 #include "ui/base/ui_base_export.h" |
| 13 |
| 14 // The CGSConnectionID is used to create the CAContext in the process that is |
| 15 // going to share the CALayers that it is rendering to another process to |
| 16 // display. |
| 17 extern "C" { |
| 18 typedef uint32_t CGSConnectionID; |
| 19 CGSConnectionID CGSMainConnectionID(void); |
| 20 }; |
| 21 |
| 22 // The CAContextID type identifies a CAContext across processes. This is the |
| 23 // token that is passed from the process that is sharing the CALayer that it is |
| 24 // rendering to the process that will be displaying that CALayer. |
| 25 typedef uint32_t CAContextID; |
| 26 |
| 27 #if defined(__OBJC__) |
| 28 |
| 29 // The CAContext has a static CAContextID which can be sent to another process. |
| 30 // When a CALayerHost is created using that CAContextID in another process, the |
| 31 // content displayed by that CALayerHost will be the content of the CALayer |
| 32 // that is set as the |layer| property on the CAContext. |
| 33 @interface CAContext : NSObject |
| 34 { |
| 35 } |
| 36 + (id)contextWithCGSConnection:(CAContextID)contextId options:(NSDictionary*)opt
ionsDict; |
| 37 @property(readonly) CAContextID contextId; |
| 38 @property(retain) CALayer *layer; |
| 39 @end |
| 40 |
| 41 // The CALayerHost is created in the process that will display the content |
| 42 // being rendered by another process. Setting the |contextId| property on |
| 43 // an object of this class will make this layer display the content of the |
| 44 // CALayer that is set to the CAContext with that CAContextID in the layer |
| 45 // sharing process. |
| 46 @interface CALayerHost : CALayer |
| 47 { |
| 48 } |
| 49 @property CAContextID contextId; |
| 50 @end |
| 51 |
| 52 #endif // __OBJC__ |
| 53 |
| 54 namespace ui { |
| 55 |
| 56 // This function will check if all of the interfaces listed above are supported |
| 57 // on the system, and return true if they are. |
| 58 bool UI_BASE_EXPORT RemoteLayerAPISupported(); |
| 59 |
| 60 } // namespace ui |
| 61 |
| 62 #endif // UI_BASE_COCOA_REMOTE_LAYER_API_H_ |
OLD | NEW |