Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3005)

Unified Diff: remoting/client/jni/jni_frame_consumer.cc

Issue 2007403002: [Android Client] Move session-scoped native interface into JniClient (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merged with latest changes Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/client/jni/jni_frame_consumer.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/client/jni/jni_frame_consumer.cc
diff --git a/remoting/client/jni/jni_frame_consumer.cc b/remoting/client/jni/jni_frame_consumer.cc
index 1e3fc0951e65ed73cc880feb51ba76b7097aeed2..71c9b148d8d9b4cc74e90fe64e70aafcbde85c54 100644
--- a/remoting/client/jni/jni_frame_consumer.cc
+++ b/remoting/client/jni/jni_frame_consumer.cc
@@ -13,6 +13,7 @@
#include "remoting/base/util.h"
#include "remoting/client/jni/chromoting_jni_instance.h"
#include "remoting/client/jni/chromoting_jni_runtime.h"
+#include "remoting/client/jni/jni_client.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_region.h"
#include "ui/gfx/android/java_bitmap.h"
@@ -21,7 +22,9 @@ namespace remoting {
class JniFrameConsumer::Renderer {
public:
- Renderer(ChromotingJniRuntime* jni_runtime) : jni_runtime_(jni_runtime) {}
+ Renderer(ChromotingJniRuntime* jni_runtime, JniClient* jni_client) :
+ jni_runtime_(jni_runtime),
+ jni_client_(jni_client) {}
~Renderer() {
DCHECK(jni_runtime_->display_task_runner()->BelongsToCurrentThread());
}
@@ -32,6 +35,8 @@ class JniFrameConsumer::Renderer {
// Used to obtain task runner references and make calls to Java methods.
ChromotingJniRuntime* jni_runtime_;
+ JniClient* jni_client_;
+
// This global reference is required, instead of a local reference, so it
// remains valid for the lifetime of |bitmap_| - gfx::JavaBitmap does not
// create its own global reference internally. And this global ref must be
@@ -57,10 +62,10 @@ void JniFrameConsumer::Renderer::RenderFrame(
bitmap_.reset();
bitmap_global_ref_.Reset(
env,
- jni_runtime_->NewBitmap(frame->size().width(), frame->size().height())
+ jni_client_->NewBitmap(frame->size().width(), frame->size().height())
.obj());
bitmap_.reset(new gfx::JavaBitmap(bitmap_global_ref_.obj()));
- jni_runtime_->UpdateFrameBitmap(bitmap_global_ref_.obj());
+ jni_client_->UpdateFrameBitmap(bitmap_global_ref_.obj());
}
// Copy pixels from |frame| into the Java Bitmap.
@@ -79,12 +84,13 @@ void JniFrameConsumer::Renderer::RenderFrame(
bitmap_->stride(), buffer_rect, i.rect());
}
- jni_runtime_->RedrawCanvas();
+ jni_client_->RedrawCanvas();
}
-JniFrameConsumer::JniFrameConsumer(ChromotingJniRuntime* jni_runtime)
+JniFrameConsumer::JniFrameConsumer(ChromotingJniRuntime* jni_runtime,
+ JniClient* jni_client)
: jni_runtime_(jni_runtime),
- renderer_(new Renderer(jni_runtime)),
+ renderer_(new Renderer(jni_runtime, jni_client)),
weak_factory_(this) {}
JniFrameConsumer::~JniFrameConsumer() {
« no previous file with comments | « remoting/client/jni/jni_frame_consumer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698