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

Unified Diff: remoting/client/display/canvas.h

Issue 2591363002: Adding drawable to CRD andorid and iOS gl rendering pipeline. (Closed)
Patch Set: More like GetZIndex. Created 3 years, 11 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/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_

Powered by Google App Engine
This is Rietveld 408576698