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

Side by Side Diff: remoting/client/display/gl_cursor_feedback.h

Issue 2591363002: Adding drawable to CRD andorid and iOS gl rendering pipeline. (Closed)
Patch Set: Finished next round of feedback changes. Added more weakptrs for canvas passing. Created 3 years, 11 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
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 #ifndef REMOTING_CLIENT_DISPLAY_GL_CURSOR_FEEDBACK_H_ 5 #ifndef REMOTING_CLIENT_DISPLAY_GL_CURSOR_FEEDBACK_H_
6 #define REMOTING_CLIENT_DISPLAY_GL_CURSOR_FEEDBACK_H_ 6 #define REMOTING_CLIENT_DISPLAY_GL_CURSOR_FEEDBACK_H_
7 7
8 #include <stdint.h> 8 #include <cstdint>
9 9
10 #include <memory> 10 #include <memory>
11 11
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/weak_ptr.h"
14 #include "base/threading/thread_checker.h"
13 #include "base/time/time.h" 15 #include "base/time/time.h"
16 #include "remoting/client/display/drawable.h"
14 17
15 namespace remoting { 18 namespace remoting {
16 19
17 class GlCanvas; 20 class Canvas;
18 class GlRenderLayer; 21 class GlRenderLayer;
19 22
20 // This class draws the cursor feedback on the canvas. 23 // This class draws the cursor feedback on the canvas.
21 class GlCursorFeedback { 24 class GlCursorFeedback : public Drawable {
22 public: 25 public:
23 GlCursorFeedback(); 26 GlCursorFeedback();
24 ~GlCursorFeedback(); 27 ~GlCursorFeedback() override;
25
26 // Sets the canvas on which the cursor feedback will be drawn. Resumes the
27 // feedback texture to the context of the new canvas.
28 // If |canvas| is nullptr, nothing will happen when calling Draw().
29 void SetCanvas(GlCanvas* canvas);
30 28
31 void StartAnimation(float x, float y, float diameter); 29 void StartAnimation(float x, float y, float diameter);
32 30
33 // Returns true if animation is not finished, false otherwise. Does nothing 31 // Drawable implementation
joedow 2017/01/10 22:01:55 nit: Add period to end of comment.
34 // if the animation has stopped. 32 void SetCanvas(base::WeakPtr<Canvas> canvas) override;
35 bool Draw(); 33 bool Draw() override;
34 base::WeakPtr<Drawable> GetWeakPtr() override;
36 35
37 private: 36 private:
38 std::unique_ptr<GlRenderLayer> layer_; 37 std::unique_ptr<GlRenderLayer> layer_;
39 float max_diameter_ = 0; 38 float max_diameter_ = 0;
40 float cursor_x_ = 0; 39 float cursor_x_ = 0;
41 float cursor_y_ = 0; 40 float cursor_y_ = 0;
42 base::TimeTicks animation_start_time_; 41 base::TimeTicks animation_start_time_;
43 42
43 base::ThreadChecker thread_checker_;
44 base::WeakPtrFactory<Drawable> weak_factory_;
45
44 DISALLOW_COPY_AND_ASSIGN(GlCursorFeedback); 46 DISALLOW_COPY_AND_ASSIGN(GlCursorFeedback);
45 }; 47 };
46 48
47 } // namespace remoting 49 } // namespace remoting
48 #endif // REMOTING_CLIENT_DISPLAY_GL_CURSOR_FEEDBACK_H_ 50 #endif // REMOTING_CLIENT_DISPLAY_GL_CURSOR_FEEDBACK_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698