Index: remoting/client/jni/jni_gl_display_handler.cc |
diff --git a/remoting/client/jni/jni_gl_display_handler.cc b/remoting/client/jni/jni_gl_display_handler.cc |
index 42b2676db8c4a4453883c0ceb9d9f9d1cb1b74da..9aafa454006f9ebed674d2bdd7542354685fc268 100644 |
--- a/remoting/client/jni/jni_gl_display_handler.cc |
+++ b/remoting/client/jni/jni_gl_display_handler.cc |
@@ -62,7 +62,7 @@ class JniGlDisplayHandler::Core : public protocol::CursorShapeStub, |
ANativeWindow* window_ = nullptr; |
std::unique_ptr<EglThreadContext> egl_context_; |
- GlRenderer renderer_; |
+ GlRenderer* renderer_ = GlRenderer::CreateGlRendererWithDesktop(); |
joedow
2016/12/22 00:29:03
This member should be initialized with a nullptr a
nicholss
2017/01/09 18:50:24
Done.
|
// Used on display thread. |
base::WeakPtr<Core> weak_ptr_; |
@@ -75,11 +75,11 @@ JniGlDisplayHandler::Core::Core(ChromotingJniRuntime* runtime, |
base::WeakPtr<JniGlDisplayHandler> shell) |
: runtime_(runtime), shell_(shell), weak_factory_(this) { |
weak_ptr_ = weak_factory_.GetWeakPtr(); |
- renderer_.SetDelegate(weak_ptr_); |
+ renderer_->SetDelegate(weak_ptr_); |
owned_frame_consumer_.reset(new DualBufferFrameConsumer( |
- base::Bind(&GlRenderer::OnFrameReceived, renderer_.GetWeakPtr()), |
- runtime_->display_task_runner(), |
- protocol::FrameConsumer::PixelFormat::FORMAT_RGBA)); |
+ base::Bind(&GlRenderer::OnFrameReceived, renderer_->GetWeakPtr()), |
+ runtime_->display_task_runner(), |
+ protocol::FrameConsumer::PixelFormat::FORMAT_RGBA)); |
frame_consumer_ = owned_frame_consumer_->GetWeakPtr(); |
} |
@@ -107,7 +107,7 @@ void JniGlDisplayHandler::Core::OnSizeChanged(int width, int height) { |
void JniGlDisplayHandler::Core::SetCursorShape( |
const protocol::CursorShapeInfo& cursor_shape) { |
DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); |
- renderer_.OnCursorShapeChanged(cursor_shape); |
+ renderer_->OnCursorShapeChanged(cursor_shape); |
} |
std::unique_ptr<protocol::FrameConsumer> |
@@ -121,12 +121,12 @@ void JniGlDisplayHandler::Core::SurfaceCreated( |
DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); |
DCHECK(!egl_context_); |
DCHECK(!window_); |
- renderer_.RequestCanvasSize(); |
+ renderer_->RequestCanvasSize(); |
window_ = ANativeWindow_fromSurface(base::android::AttachCurrentThread(), |
surface.obj()); |
egl_context_.reset(new EglThreadContext()); |
egl_context_->BindToWindow(window_); |
- renderer_.OnSurfaceCreated(static_cast<int>(egl_context_->client_version())); |
+ renderer_->OnSurfaceCreated(static_cast<int>(egl_context_->client_version())); |
runtime_->network_task_runner()->PostTask( |
FROM_HERE, base::Bind(&DualBufferFrameConsumer::RequestFullDesktopFrame, |
frame_consumer_)); |
@@ -134,14 +134,14 @@ void JniGlDisplayHandler::Core::SurfaceCreated( |
void JniGlDisplayHandler::Core::SurfaceChanged(int width, int height) { |
DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); |
- renderer_.OnSurfaceChanged(width, height); |
+ renderer_->OnSurfaceChanged(width, height); |
} |
void JniGlDisplayHandler::Core::SurfaceDestroyed() { |
DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); |
DCHECK(egl_context_); |
DCHECK(window_); |
- renderer_.OnSurfaceDestroyed(); |
+ renderer_->OnSurfaceDestroyed(); |
egl_context_.reset(); |
ANativeWindow_release(window_); |
window_ = nullptr; |
@@ -150,24 +150,24 @@ void JniGlDisplayHandler::Core::SurfaceDestroyed() { |
void JniGlDisplayHandler::Core::SetTransformation( |
const std::array<float, 9>& matrix) { |
DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); |
- renderer_.OnPixelTransformationChanged(matrix); |
+ renderer_->OnPixelTransformationChanged(matrix); |
} |
void JniGlDisplayHandler::Core::MoveCursor(float x, float y) { |
DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); |
- renderer_.OnCursorMoved(x, y); |
+ renderer_->OnCursorMoved(x, y); |
} |
void JniGlDisplayHandler::Core::SetCursorVisibility(bool visible) { |
DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); |
- renderer_.OnCursorVisibilityChanged(visible); |
+ renderer_->OnCursorVisibilityChanged(visible); |
} |
void JniGlDisplayHandler::Core::StartInputFeedback(float x, |
float y, |
float diameter) { |
DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread()); |
- renderer_.OnCursorInputFeedback(x, y, diameter); |
+ renderer_->OnCursorInputFeedback(x, y, diameter); |
} |
base::WeakPtr<JniGlDisplayHandler::Core> |