| Index: remoting/client/display/gl_canvas.h
|
| diff --git a/remoting/client/display/gl_canvas.h b/remoting/client/display/gl_canvas.h
|
| index 975d79bc9f981b0b691fa91ca846b11b877be416..77608ce2b8fe4eb639126140b7a08ae4c2340902 100644
|
| --- a/remoting/client/display/gl_canvas.h
|
| +++ b/remoting/client/display/gl_canvas.h
|
| @@ -9,6 +9,7 @@
|
|
|
| #include "base/macros.h"
|
| #include "base/threading/thread_checker.h"
|
| +#include "remoting/client/display/canvas.h"
|
| #include "remoting/client/display/sys_opengl.h"
|
|
|
| namespace remoting {
|
| @@ -17,52 +18,23 @@ namespace remoting {
|
| // draw textures on the canvas.
|
| // Must be constructed after the OpenGL surface is created and destroyed before
|
| // the surface is destroyed.
|
| -class GlCanvas {
|
| +class GlCanvas : public Canvas {
|
| public:
|
| // gl_version: version number of the OpenGL ES context. Either 2 or 3.
|
| GlCanvas(int gl_version);
|
| + ~GlCanvas() override;
|
|
|
| - ~GlCanvas();
|
| -
|
| - // Sets the transformation matrix. This matrix defines how the canvas should
|
| - // be shown on the view.
|
| - // 3 by 3 transformation matrix, [ m0, m1, m2, m3, m4, m5, m6, m7, m8 ].
|
| - // The matrix will be multiplied with the positions (with projective space,
|
| - // (x, y, 1)) to draw the textures with the right zoom and pan configuration.
|
| - //
|
| - // | m0, m1, m2, | | x |
|
| - // | m3, m4, m5, | * | y |
|
| - // | m6, m7, m8 | | 1 |
|
| - //
|
| - // For a typical transformation matrix such that m1=m3=m6=m7=0 and m8=1, m0
|
| - // and m4 defines the scaling factor of the canvas and m2 and m5 defines the
|
| - // offset of the upper-left corner in pixel.
|
| - void SetTransformationMatrix(const std::array<float, 9>& matrix);
|
| -
|
| - // Sets the size of the view in pixels.
|
| - void SetViewSize(int width, int height);
|
| -
|
| - // Draws the texture on the canvas. Nothing will happen if
|
| - // SetNormalizedTransformation() has not been called.
|
| - // vertex_buffer: reference to the 2x4x2 float vertex buffer.
|
| - // [ four (x, y) position of the texture vertices in pixel
|
| - // with respect to the canvas,
|
| - // four (x, y) position of the vertices in percentage
|
| - // defining the visible area of the texture ]
|
| - // alpha_multiplier: Will be multiplied with the alpha channel of the texture.
|
| - // Passing 1 means no change of the transparency of the
|
| - // texture.
|
| + // Canvas implementation.
|
| + void Clear() override;
|
| + void SetTransformationMatrix(const std::array<float, 9>& matrix) override;
|
| + void SetViewSize(int width, int height) override;
|
| void DrawTexture(int texture_id,
|
| - GLuint texture_handle,
|
| - GLuint vertex_buffer,
|
| - float alpha_multiplier);
|
| -
|
| - // Returns the version number of current OpenGL ES context. Either 2 or 3.
|
| - int GetGlVersion() const;
|
| -
|
| - // Returns the maximum texture resolution limitation. Neither the width nor
|
| - // the height of the texture can exceed this limitation.
|
| - int GetMaxTextureSize() const;
|
| + int texture_handle,
|
| + int vertex_buffer,
|
| + float alpha_multiplier) override;
|
| + int GetVersion() const override;
|
| + int GetMaxTextureSize() const override;
|
| + base::WeakPtr<Canvas> GetWeakPtr() override;
|
|
|
| private:
|
| int gl_version_;
|
| @@ -85,6 +57,7 @@ class GlCanvas {
|
| GLuint tex_cord_location_;
|
|
|
| base::ThreadChecker thread_checker_;
|
| + base::WeakPtrFactory<Canvas> weak_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(GlCanvas);
|
| };
|
|
|