| 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_;
|
|
|