OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "remoting/client/jni/jni_gl_display_handler.h" | 5 #include "remoting/client/jni/jni_gl_display_handler.h" |
6 | 6 |
7 #include <android/native_window_jni.h> | 7 #include <android/native_window_jni.h> |
8 #include <array> | 8 #include <array> |
9 | 9 |
10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 renderer_->OnSurfaceCreated(base::MakeUnique<GlCanvas>( | 152 renderer_->OnSurfaceCreated(base::MakeUnique<GlCanvas>( |
153 static_cast<int>(egl_context_->client_version()))); | 153 static_cast<int>(egl_context_->client_version()))); |
154 | 154 |
155 runtime_->network_task_runner()->PostTask( | 155 runtime_->network_task_runner()->PostTask( |
156 FROM_HERE, base::Bind(&DualBufferFrameConsumer::RequestFullDesktopFrame, | 156 FROM_HERE, base::Bind(&DualBufferFrameConsumer::RequestFullDesktopFrame, |
157 frame_consumer_)); | 157 frame_consumer_)); |
158 } | 158 } |
159 | 159 |
160 void JniGlDisplayHandler::Core::SurfaceChanged(int width, int height) { | 160 void JniGlDisplayHandler::Core::SurfaceChanged(int width, int height) { |
161 DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); | 161 DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); |
| 162 // Note that this doesn't resize the OpenGL viewport. The OpenGL viewport is |
| 163 // initialized once it is first bound to the surface. We don't need to call |
| 164 // glViewport() since the activity/surface is recreated and hence the viewport |
| 165 // is re-initialized every time the surface size is changed. |
162 renderer_->OnSurfaceChanged(width, height); | 166 renderer_->OnSurfaceChanged(width, height); |
163 } | 167 } |
164 | 168 |
165 void JniGlDisplayHandler::Core::SurfaceDestroyed() { | 169 void JniGlDisplayHandler::Core::SurfaceDestroyed() { |
166 DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); | 170 DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); |
167 DCHECK(egl_context_); | 171 DCHECK(egl_context_); |
168 DCHECK(window_); | 172 DCHECK(window_); |
169 renderer_->OnSurfaceDestroyed(); | 173 renderer_->OnSurfaceDestroyed(); |
170 egl_context_.reset(); | 174 egl_context_.reset(); |
171 ANativeWindow_release(window_); | 175 ANativeWindow_release(window_); |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 java_display_); | 326 java_display_); |
323 } | 327 } |
324 | 328 |
325 void JniGlDisplayHandler::OnCanvasSizeChanged(int width, int height) { | 329 void JniGlDisplayHandler::OnCanvasSizeChanged(int width, int height) { |
326 DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); | 330 DCHECK(runtime_->ui_task_runner()->BelongsToCurrentThread()); |
327 Java_GlDisplay_changeCanvasSize(base::android::AttachCurrentThread(), | 331 Java_GlDisplay_changeCanvasSize(base::android::AttachCurrentThread(), |
328 java_display_, width, height); | 332 java_display_, width, height); |
329 } | 333 } |
330 | 334 |
331 } // namespace remoting | 335 } // namespace remoting |
OLD | NEW |