OLD | NEW |
| (Empty) |
1 // Copyright 2017 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 REMOTING_CLIENT_IOS_DISPLAY_GL_DISPLAY_HANDLER_H_ | |
6 #define REMOTING_CLIENT_IOS_DISPLAY_GL_DISPLAY_HANDLER_H_ | |
7 | |
8 #import <Foundation/Foundation.h> | |
9 #import <GLKit/GLKit.h> | |
10 | |
11 #import "remoting/client/display/sys_opengl.h" | |
12 | |
13 #include "base/memory/ptr_util.h" | |
14 #include "remoting/client/view_matrix.h" | |
15 | |
16 namespace remoting { | |
17 | |
18 class ChromotingClientRuntime; | |
19 | |
20 namespace protocol { | |
21 | |
22 class VideoRenderer; | |
23 class CursorShapeStub; | |
24 | |
25 } // namespace protocol | |
26 } // namespace remoting | |
27 | |
28 // This protocol is for receiving notifications from the renderer when its state | |
29 // changes. Implementations can use this to reposition viewport, process | |
30 // animations, etc. | |
31 @protocol GlDisplayHandlerDelegate<NSObject> | |
32 | |
33 // Notifies the delegate that the size of the desktop image has changed. | |
34 - (void)canvasSizeChanged:(CGSize)size; | |
35 | |
36 @end | |
37 | |
38 @interface GlDisplayHandler : NSObject { | |
39 } | |
40 | |
41 - (void)stop; | |
42 | |
43 // Called once the GLKView created. | |
44 - (void)onSurfaceCreated:(GLKView*)view; | |
45 | |
46 // Called every time the GLKView dimension is initialized or changed. | |
47 - (void)onSurfaceChanged:(const CGRect&)frame; | |
48 | |
49 - (void)onPixelTransformationChanged:(const remoting::ViewMatrix&)matrix; | |
50 | |
51 - (std::unique_ptr<remoting::protocol::VideoRenderer>)CreateVideoRenderer; | |
52 - (std::unique_ptr<remoting::protocol::CursorShapeStub>)CreateCursorShapeStub; | |
53 | |
54 - (EAGLContext*)GetEAGLContext; | |
55 | |
56 // This is write-only but @property doesn't support write-only modifier. | |
57 @property id<GlDisplayHandlerDelegate> delegate; | |
58 - (id<GlDisplayHandlerDelegate>)delegate UNAVAILABLE_ATTRIBUTE; | |
59 | |
60 @end | |
61 | |
62 #endif // REMOTING_CLIENT_IOS_DISPLAY_GL_DISPLAY_HANDLER_H_ | |
OLD | NEW |