Chromium Code Reviews| Index: remoting/client/ios/app/example_view_controller.mm |
| diff --git a/remoting/client/ios/example_view_controller.mm b/remoting/client/ios/app/example_view_controller.mm |
| similarity index 59% |
| rename from remoting/client/ios/example_view_controller.mm |
| rename to remoting/client/ios/app/example_view_controller.mm |
| index 64fd9ac678507e7b0ce1e1106a22e9d0b700f695..27abe554454c7880220dbbc90df63d79dfcd3fcb 100644 |
| --- a/remoting/client/ios/example_view_controller.mm |
| +++ b/remoting/client/ios/app/example_view_controller.mm |
| @@ -1,4 +1,4 @@ |
| -// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| @@ -6,11 +6,16 @@ |
| #error "This file requires ARC support." |
| #endif |
| -#import "remoting/client/ios/example_view_controller.h" |
| +#import "remoting/client/ios/app/example_view_controller.h" |
| #import "remoting/client/display/sys_opengl.h" |
| -@interface ExampleViewController() |
| +#include "base/message_loop/message_loop.h" |
| +#include "remoting/protocol/frame_stats.h" |
| +#include "third_party/webrtc/modules/desktop_capture/desktop_frame.h" |
| +#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h" |
| + |
| +@interface ExampleViewController () |
| // Helper functions dealing with the GL Context. |
| - (void)setupGL; |
| @@ -24,10 +29,10 @@ |
| - (void)viewDidLoad { |
| [super viewDidLoad]; |
| - |
| - _context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; |
| + _gestures = [[ClientGestures alloc] initWithView:self.view]; |
| + _context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3]; |
|
Yuwei
2017/01/23 21:56:15
Are you establishing the EGL context on the main t
Yuwei
2017/01/23 21:56:15
Does this handle the case if ES3 context is not su
nicholss
2017/01/26 18:00:16
ES3 is not supported for <=iPhone5. Not sure how m
Jamie
2017/01/26 18:06:12
Drive-by: We might be able to get this information
nicholss
2017/01/26 18:28:40
Looks like the iphone5 just makes the cut at conti
|
| + _runtime = new remoting::ios::AppRuntime(); |
| static_cast<GLKView*>(self.view).context = _context; |
| - |
| [self setupGL]; |
| } |
| @@ -42,11 +47,12 @@ |
| } |
| - (void)setupGL { |
| - [EAGLContext setCurrentContext:_context]; |
| + displayHandler = [[GlDisplayHandler alloc] initWithRuntime:_runtime]; |
| + [displayHandler created]; |
| } |
| - (void)tearDownGL { |
| - [EAGLContext setCurrentContext:_context]; |
| + // TODO(nicholss): Implement this in a real application. |
| } |
| - (void)viewWillAppear:(BOOL)animated { |
| @@ -54,6 +60,9 @@ |
| } |
| - (void)viewDidAppear:(BOOL)animated { |
| + video_renderer_ = |
| + (remoting::SoftwareVideoRenderer*)[displayHandler CreateVideoRenderer] |
| + .get(); |
| } |
| - (void)viewWillDisappear:(BOOL)animated { |
| @@ -68,9 +77,9 @@ |
| // In general, avoid expensive work in this function to maximize frame rate. |
| - (void)glkView:(GLKView*)view drawInRect:(CGRect)rect { |
| - // Clear to give the background color. |
| - glClearColor(0.0, 40.0, 0.0, 1.0); |
| - glClear(GL_COLOR_BUFFER_BIT); |
| + if (displayHandler) { |
| + [displayHandler glkView:view drawInRect:rect]; |
| + } |
| } |
| @end |