| Index: remoting/client/display/canvas.h
|
| diff --git a/remoting/client/display/gl_canvas.h b/remoting/client/display/canvas.h
|
| similarity index 58%
|
| copy from remoting/client/display/gl_canvas.h
|
| copy to remoting/client/display/canvas.h
|
| index 975d79bc9f981b0b691fa91ca846b11b877be416..8967ccad39511a06d69c8d7ade61e781dba20955 100644
|
| --- a/remoting/client/display/gl_canvas.h
|
| +++ b/remoting/client/display/canvas.h
|
| @@ -2,27 +2,26 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef REMOTING_CLIENT_DISPLAY_GL_CANVAS_H_
|
| -#define REMOTING_CLIENT_DISPLAY_GL_CANVAS_H_
|
| +#ifndef REMOTING_CLIENT_DISPLAY_CANVAS_H_
|
| +#define REMOTING_CLIENT_DISPLAY_CANVAS_H_
|
|
|
| #include <array>
|
|
|
| #include "base/macros.h"
|
| -#include "base/threading/thread_checker.h"
|
| #include "remoting/client/display/sys_opengl.h"
|
|
|
| namespace remoting {
|
|
|
| // This class holds zoom and pan configurations of the canvas and is used to
|
| // draw textures on the canvas.
|
| -// Must be constructed after the OpenGL surface is created and destroyed before
|
| -// the surface is destroyed.
|
| -class GlCanvas {
|
| +class Canvas {
|
| public:
|
| - // gl_version: version number of the OpenGL ES context. Either 2 or 3.
|
| - GlCanvas(int gl_version);
|
| + Canvas(){};
|
|
|
| - ~GlCanvas();
|
| + virtual ~Canvas(){};
|
| +
|
| + // Clears the frame.
|
| + virtual void Clear() = 0;
|
|
|
| // Sets the transformation matrix. This matrix defines how the canvas should
|
| // be shown on the view.
|
| @@ -37,10 +36,10 @@ class GlCanvas {
|
| // 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);
|
| + virtual void SetTransformationMatrix(const std::array<float, 9>& matrix) = 0;
|
|
|
| // Sets the size of the view in pixels.
|
| - void SetViewSize(int width, int height);
|
| + virtual void SetViewSize(int width, int height) = 0;
|
|
|
| // Draws the texture on the canvas. Nothing will happen if
|
| // SetNormalizedTransformation() has not been called.
|
| @@ -52,43 +51,21 @@ class GlCanvas {
|
| // alpha_multiplier: Will be multiplied with the alpha channel of the texture.
|
| // Passing 1 means no change of the transparency of the
|
| // texture.
|
| - void DrawTexture(int texture_id,
|
| - GLuint texture_handle,
|
| - GLuint vertex_buffer,
|
| - float alpha_multiplier);
|
| + virtual void DrawTexture(int texture_id,
|
| + GLuint texture_handle,
|
| + GLuint vertex_buffer,
|
| + float alpha_multiplier) = 0;
|
|
|
| - // Returns the version number of current OpenGL ES context. Either 2 or 3.
|
| - int GetGlVersion() const;
|
| + // Version if applicable to implementation.
|
| + virtual int GetVersion() const = 0;
|
|
|
| // Returns the maximum texture resolution limitation. Neither the width nor
|
| // the height of the texture can exceed this limitation.
|
| - int GetMaxTextureSize() const;
|
| -
|
| - private:
|
| - int gl_version_;
|
| -
|
| - int max_texture_size_ = 0;
|
| - bool transformation_set_ = false;
|
| - bool view_size_set_ = false;
|
| -
|
| - // Handles.
|
| - GLuint vertex_shader_;
|
| - GLuint fragment_shader_;
|
| - GLuint program_;
|
| -
|
| - // Locations of the corresponding shader attributes.
|
| - GLuint transform_location_;
|
| - GLuint view_size_location_;
|
| - GLuint texture_location_;
|
| - GLuint alpha_multiplier_location_;
|
| - GLuint position_location_;
|
| - GLuint tex_cord_location_;
|
| -
|
| - base::ThreadChecker thread_checker_;
|
| + virtual int GetMaxTextureSize() const = 0;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(GlCanvas);
|
| + DISALLOW_COPY_AND_ASSIGN(Canvas);
|
| };
|
|
|
| } // namespace remoting
|
|
|
| -#endif // REMOTING_CLIENT_DISPLAY_GL_CANVAS_H_
|
| +#endif // REMOTING_CLIENT_DISPLAY_CANVAS_H_
|
|
|