| Index: remoting/client/display/canvas.h
|
| diff --git a/remoting/client/display/gl_canvas.h b/remoting/client/display/canvas.h
|
| similarity index 57%
|
| copy from remoting/client/display/gl_canvas.h
|
| copy to remoting/client/display/canvas.h
|
| index 975d79bc9f981b0b691fa91ca846b11b877be416..988375bf6c6fe78abb224f4ba893b6960372b035 100644
|
| --- a/remoting/client/display/gl_canvas.h
|
| +++ b/remoting/client/display/canvas.h
|
| @@ -2,27 +2,25 @@
|
| // 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"
|
| +#include "base/memory/weak_ptr.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() {}
|
| + virtual ~Canvas() {}
|
|
|
| - ~GlCanvas();
|
| + // 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 +35,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 +50,25 @@ 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,
|
| + int texture_handle,
|
| + int 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. Default 0 if unused.
|
| + 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;
|
| + virtual int GetMaxTextureSize() const = 0;
|
|
|
| - 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_;
|
| + // Intended to be given to a Drawable to draw onto.
|
| + virtual base::WeakPtr<Canvas> GetWeakPtr() = 0;
|
|
|
| - // 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_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(GlCanvas);
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(Canvas);
|
| };
|
|
|
| } // namespace remoting
|
|
|
| -#endif // REMOTING_CLIENT_DISPLAY_GL_CANVAS_H_
|
| +#endif // REMOTING_CLIENT_DISPLAY_CANVAS_H_
|
|
|