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

Unified Diff: remoting/ios/display/gl_display_handler.mm

Issue 2879743002: [CRD iOS] Hook the touch input feedback (Closed)
Patch Set: Use the ui task poster Created 3 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
Index: remoting/ios/display/gl_display_handler.mm
diff --git a/remoting/ios/display/gl_display_handler.mm b/remoting/ios/display/gl_display_handler.mm
index e8565efe59caca346cf60c5f644219eacb3b6fcc..908bea8c9658a45025385cef600b1ac4301ef227 100644
--- a/remoting/ios/display/gl_display_handler.mm
+++ b/remoting/ios/display/gl_display_handler.mm
@@ -24,14 +24,17 @@
#include "remoting/client/display/gl_renderer.h"
#include "remoting/client/display/gl_renderer_delegate.h"
#include "remoting/client/dual_buffer_frame_consumer.h"
-#include "remoting/client/queued_task_poster.h"
+#include "remoting/client/render_stub_proxy.h"
#include "remoting/client/software_video_renderer.h"
+#include "remoting/client/view_matrix.h"
namespace remoting {
namespace GlDisplayHandler {
// The core that lives on the display thread.
-class Core : public protocol::CursorShapeStub, public GlRendererDelegate {
+class Core : public protocol::CursorShapeStub,
+ public RenderStub,
+ public GlRendererDelegate {
public:
Core();
~Core() override;
@@ -53,7 +56,13 @@ class Core : public protocol::CursorShapeStub, public GlRendererDelegate {
void Stop();
void SurfaceCreated(GLKView* view);
void SurfaceChanged(int width, int height);
- void SetTransformation(const remoting::ViewMatrix& matrix);
+
+ // RenderStub interface.
+ void SetTransformation(const remoting::ViewMatrix& matrix) override;
+ void SetCursorPosition(float x, float y) override;
+ void SetCursorVisibility(bool visible) override;
+ void StartInputFeedback(float x, float y, float diameter) override;
+
std::unique_ptr<protocol::FrameConsumer> GrabFrameConsumer();
EAGLContext* GetEAGLContext();
base::WeakPtr<Core> GetWeakPtr();
@@ -195,6 +204,20 @@ void Core::SetTransformation(const remoting::ViewMatrix& matrix) {
renderer_->OnPixelTransformationChanged(matrix.ToMatrixArray());
}
+void Core::SetCursorPosition(float x, float y) {
+ DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread());
+ renderer_->OnCursorMoved(x, y);
+}
+
+void Core::SetCursorVisibility(bool visible) {
+ DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread());
+ renderer_->OnCursorVisibilityChanged(visible);
+}
+void Core::StartInputFeedback(float x, float y, float diameter) {
+ DCHECK(runtime_->display_task_runner()->BelongsToCurrentThread());
+ renderer_->OnCursorInputFeedback(x, y, diameter);
+}
+
EAGLContext* Core::GetEAGLContext() {
return eagl_context_;
}
@@ -209,7 +232,6 @@ base::WeakPtr<remoting::GlDisplayHandler::Core> Core::GetWeakPtr() {
@interface GlDisplayHandler () {
std::unique_ptr<remoting::GlDisplayHandler::Core> _core;
remoting::ChromotingClientRuntime* _runtime;
- std::unique_ptr<remoting::QueuedTaskPoster> _uiTaskPoster;
}
@end
@@ -220,8 +242,6 @@ base::WeakPtr<remoting::GlDisplayHandler::Core> Core::GetWeakPtr() {
if (self) {
_runtime = remoting::ChromotingClientRuntime::GetInstance();
_core.reset(new remoting::GlDisplayHandler::Core());
- _uiTaskPoster.reset(
- new remoting::QueuedTaskPoster(_runtime->display_task_runner()));
}
return self;
}
@@ -238,6 +258,11 @@ base::WeakPtr<remoting::GlDisplayHandler::Core> Core::GetWeakPtr() {
base::Bind(&remoting::GlDisplayHandler::Core::Stop, _core->GetWeakPtr()));
}
+- (std::unique_ptr<remoting::RenderStub>)CreateRenderStub {
+ return base::MakeUnique<remoting::RenderStubProxy>(
+ _core->GetWeakPtr(), _runtime->display_task_runner());
+}
+
- (std::unique_ptr<remoting::protocol::VideoRenderer>)CreateVideoRenderer {
return base::MakeUnique<remoting::SoftwareVideoRenderer>(
_core->GrabFrameConsumer());
@@ -265,12 +290,6 @@ base::WeakPtr<remoting::GlDisplayHandler::Core> Core::GetWeakPtr() {
_core->GetWeakPtr(), frame.size.width, frame.size.height));
}
-- (void)onPixelTransformationChanged:(const remoting::ViewMatrix&)matrix {
- _uiTaskPoster->AddTask(
- base::Bind(&remoting::GlDisplayHandler::Core::SetTransformation,
- _core->GetWeakPtr(), matrix));
-}
-
#pragma mark - Properties
- (void)setDelegate:(id<GlDisplayHandlerDelegate>)delegate {

Powered by Google App Engine
This is Rietveld 408576698