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

Side by Side Diff: remoting/client/renderer_facade_proxy.cc

Issue 2879743002: [CRD iOS] Hook the touch input feedback (Closed)
Patch Set: Just use ViewMatrix::Point. No more out-pointers... 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "remoting/client/renderer_facade_proxy.h"
6
7 #include "base/bind.h"
8 #include "remoting/client/queued_task_poster.h"
9 #include "remoting/client/view_matrix.h"
10
11 namespace remoting {
12
13 RendererFacadeProxy::RendererFacadeProxy(
14 base::WeakPtr<RendererFacade> renderer,
15 scoped_refptr<base::SingleThreadTaskRunner> task_runner)
16 : renderer_(renderer),
17 task_runner_(task_runner),
18 ui_task_poster_(new remoting::QueuedTaskPoster(task_runner_)) {}
19
20 RendererFacadeProxy::~RendererFacadeProxy() {}
21
22 void RendererFacadeProxy::SetTransformation(const ViewMatrix& transformation) {
23 // Viewport and cursor movements need to be synchronized into the same frame.
24 RunTaskOnProperThread(
25 base::Bind(&RendererFacade::SetTransformation, renderer_, transformation),
26 true);
27 }
28
29 void RendererFacadeProxy::SetCursorPosition(float x, float y) {
30 RunTaskOnProperThread(
31 base::Bind(&RendererFacade::SetCursorPosition, renderer_, x, y), true);
32 }
33
34 void RendererFacadeProxy::SetCursorVisibility(bool visible) {
35 RunTaskOnProperThread(
36 base::Bind(&RendererFacade::SetCursorVisibility, renderer_, visible),
37 false);
38 }
39
40 void RendererFacadeProxy::StartInputFeedback(float x, float y, float diameter) {
41 RunTaskOnProperThread(base::Bind(&RendererFacade::StartInputFeedback,
42 renderer_, x, y, diameter),
43 false);
44 }
45
46 void RendererFacadeProxy::RunTaskOnProperThread(const base::Closure& task,
47 bool needs_synchronization) {
48 if (task_runner_->BelongsToCurrentThread()) {
49 task.Run();
50 return;
51 }
52
53 if (needs_synchronization) {
54 ui_task_poster_->AddTask(task);
55 return;
56 }
57
58 task_runner_->PostTask(FROM_HERE, task);
59 }
60
61 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698