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

Unified Diff: remoting/client/display/gl_desktop.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 side-by-side diff with in-line comments
Download patch
Index: remoting/client/display/gl_desktop.h
diff --git a/remoting/client/display/gl_desktop.h b/remoting/client/display/gl_desktop.h
index d43247c52b11a429b34f3edb4c79cafc566aa2a1..504889c12d40fb53a003fd5cc060ac7b90867e8c 100644
--- a/remoting/client/display/gl_desktop.h
+++ b/remoting/client/display/gl_desktop.h
@@ -9,6 +9,9 @@
#include <vector>
#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
+#include "remoting/client/display/drawable.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
namespace webrtc {
@@ -17,24 +20,21 @@ class DesktopFrame;
namespace remoting {
-class GlCanvas;
+class Canvas;
// This class draws the desktop on the canvas.
-class GlDesktop {
+class GlDesktop : public Drawable {
public:
GlDesktop();
- virtual ~GlDesktop();
+ ~GlDesktop() override;
// |frame| can be either a full frame or updated regions only frame.
void SetVideoFrame(const webrtc::DesktopFrame& frame);
- // Sets the canvas on which the desktop will be drawn. Caller must feed a
- // full desktop frame after calling this function.
- // If |canvas| is nullptr, nothing will happen when calling Draw().
- void SetCanvas(GlCanvas* canvas);
-
- // Draws the desktop on the canvas.
- void Draw();
+ // Drawable implementation
joedow 2017/01/10 22:01:55 nit: Add period to end of comment.
+ void SetCanvas(base::WeakPtr<Canvas> canvas) override;
+ bool Draw() override;
+ base::WeakPtr<Drawable> GetWeakPtr() override;
private:
struct GlDesktopTextureContainer;
@@ -45,7 +45,9 @@ class GlDesktop {
webrtc::DesktopSize last_desktop_size_;
int max_texture_size_ = 0;
- GlCanvas* canvas_ = nullptr;
+ base::WeakPtr<Canvas> canvas_ = nullptr;
+ base::ThreadChecker thread_checker_;
+ base::WeakPtrFactory<Drawable> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(GlDesktop);
};

Powered by Google App Engine
This is Rietveld 408576698