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.
5 #ifndef UI_BASE_COCOA_REMOTE_LAYER_API_H_
6 #define UI_BASE_COCOA_REMOTE_LAYER_API_H_
9 #import <Cocoa/Cocoa.h>
12 #include "ui/base/ui_base_export.h"
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
18 typedef uint32_t CGSConnectionID
;
19 CGSConnectionID
CGSMainConnectionID(void);
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
;
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 + (id
)contextWithCGSConnection
:(CAContextID
)contextId
35 options
:(NSDictionary
*)optionsDict
;
36 @
property(readonly
) CAContextID contextId
;
37 @
property(retain
) CALayer
*layer
;
40 // The CALayerHost is created in the process that will display the content
41 // being rendered by another process. Setting the |contextId| property on
42 // an object of this class will make this layer display the content of the
43 // CALayer that is set to the CAContext with that CAContextID in the layer
45 @interface CALayerHost
: CALayer
46 @property CAContextID contextId
;
53 // This function will check if all of the interfaces listed above are supported
54 // on the system, and return true if they are.
55 bool UI_BASE_EXPORT
RemoteLayerAPISupported();
59 #endif // UI_BASE_COCOA_REMOTE_LAYER_API_H_