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

Unified Diff: remoting/client/gl_renderer.h

Issue 2196493002: [Chromoting] Unit Tests for GlRenderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add unittest Created 4 years, 5 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/gl_renderer.h
diff --git a/remoting/client/gl_renderer.h b/remoting/client/gl_renderer.h
index bd810395aaa047bb221f2a2c1be63acec6d739c3..32392f3bae1ef03a65a2c14a7af93db71f3ec617 100644
--- a/remoting/client/gl_renderer.h
+++ b/remoting/client/gl_renderer.h
@@ -5,15 +5,13 @@
#ifndef REMOTING_CLIENT_GL_RENDERER_H_
#define REMOTING_CLIENT_GL_RENDERER_H_
+#include <array>
#include <queue>
#include "base/callback.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/threading/thread_checker.h"
-#include "remoting/client/gl_cursor.h"
-#include "remoting/client/gl_cursor_feedback.h"
-#include "remoting/client/gl_desktop.h"
#include "remoting/proto/control.pb.h"
namespace webrtc {
@@ -28,6 +26,7 @@ class CursorShapeInfo;
class GlCanvas;
class GlRendererDelegate;
+class GlRendererCore;
// Renders desktop and cursor on the OpenGL surface. Can be created on any
// thread but thereafter must be used and deleted on the same thread (usually
@@ -37,6 +36,7 @@ class GlRendererDelegate;
class GlRenderer {
public:
explicit GlRenderer();
+
~GlRenderer();
// The delegate can be set on any hread no more than once before calling any
@@ -49,6 +49,16 @@ class GlRenderer {
// recreated.
void RequestCanvasSize();
+ // Post a rendering task to the task runner of current thread.
+ //
+ // Notice that On* functions will implicitly call RequestRender() so usually
+ // the caller does NOT need to explicitly call this function unless they need
+ // to manually control the render cycle in some special situations.
+ //
+ // Do nothing if render_callback_ is not set yet or an existing rendering task
+ // in the queue will cover changes before this function is called.
+ void RequestRender();
+
// Sets the pixel based transformation matrix related to the size of the
// canvas.
// 3 by 3 transformation matrix, [ m0, m1, m2, m3, m4, m5, m6, m7, m8 ].
@@ -94,17 +104,14 @@ class GlRenderer {
base::WeakPtr<GlRenderer> GetWeakPtr();
private:
- // Post a rendering task to the task runner of current thread.
- // Do nothing if render_callback_ is not set yet or an existing rendering task
- // in the queue will cover changes before this function is called.
- void RequestRender();
-
// Draws out everything on current OpenGL buffer and runs closures in
// |pending_done_callbacks_|.
// Nothing will be drawn nor the done callbacks will be run if |delegate_| is
// invalid or !delegate_.CanRenderFrame().
void OnRender();
+ std::unique_ptr<GlRendererCore> core_;
+
base::WeakPtr<GlRendererDelegate> delegate_;
// Done callbacks from OnFrameReceived. Will all be called once rendering
@@ -113,17 +120,6 @@ class GlRenderer {
bool render_scheduled_ = false;
- int view_width_ = 0;
- int view_height_ = 0;
- int canvas_width_ = 0;
- int canvas_height_ = 0;
-
- std::unique_ptr<GlCanvas> canvas_;
-
- GlCursor cursor_;
- GlCursorFeedback cursor_feedback_;
- GlDesktop desktop_;
-
base::ThreadChecker thread_checker_;
base::WeakPtr<GlRenderer> weak_ptr_;
base::WeakPtrFactory<GlRenderer> weak_factory_;

Powered by Google App Engine
This is Rietveld 408576698