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

Unified Diff: remoting/client/gl_canvas.h

Issue 2591363002: Adding drawable to CRD andorid and iOS gl rendering pipeline. (Closed)
Patch Set: Minor cleanup of an unused const. Created 4 years 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/gl_canvas.h
diff --git a/remoting/client/gl_canvas.h b/remoting/client/gl_canvas.h
index 4df0a4b8d6bcb2dbccc9fc03744975eb48331bc7..36b30f4fbf17b120596df1f67d19bd7e2ba61e48 100644
--- a/remoting/client/gl_canvas.h
+++ b/remoting/client/gl_canvas.h
@@ -22,7 +22,7 @@ class GlCanvas {
// gl_version: version number of the OpenGL ES context. Either 2 or 3.
GlCanvas(int gl_version);
- ~GlCanvas();
+ virtual ~GlCanvas();
// Sets the transformation matrix. This matrix defines how the canvas should
// be shown on the view.
@@ -42,6 +42,9 @@ class GlCanvas {
// Sets the size of the view in pixels.
void SetViewSize(int width, int height);
+ // Clears the frame.
+ virtual void Clear();
+
// Draws the texture on the canvas. Nothing will happen if
// SetNormalizedTransformation() has not been called.
// vertex_buffer: reference to the 2x4x2 float vertex buffer.
@@ -64,7 +67,11 @@ class GlCanvas {
// the height of the texture can exceed this limitation.
int GetMaxTextureSize() const;
+ static GlCanvas* CreateGlCanvas(int gl_version);
joedow 2016/12/22 19:18:09 If you want the caller to own the instance, the ex
nicholss 2017/01/09 18:50:24 good call. Changing to return a std::unique_prt.
+
private:
+ friend class FakeGlCanvas;
+ GlCanvas();
int gl_version_;
int max_texture_size_ = 0;
@@ -84,11 +91,36 @@ class GlCanvas {
GLuint position_location_;
GLuint tex_cord_location_;
+ bool gl_constructed_;
joedow 2016/12/22 00:29:02 You should use inline inits for primitives instead
nicholss 2017/01/09 18:50:24 this was removed and replaced with the use of an i
+
base::ThreadChecker thread_checker_;
DISALLOW_COPY_AND_ASSIGN(GlCanvas);
};
+class FakeGlCanvas : public GlCanvas {
Yuwei 2016/12/21 23:41:59 Is this just for testing? I think it will be clear
joedow 2016/12/22 00:29:02 This should go into a separate file, most of the f
nicholss 2016/12/22 16:21:41 This was added to support testing that the draw me
Yuwei 2016/12/22 19:01:10 We do sometimes use interface to make things testa
joedow 2016/12/22 19:18:09 We separate prod and test code routinely. If you
nicholss 2017/01/09 18:50:24 Went ahead and created the interface.
+ public:
+ FakeGlCanvas() {}
+
+ ~FakeGlCanvas() override {}
+ void SetTransformationMatrix(const std::array<float, 9>& matrix) {}
+
+ void SetViewSize(int width, int height) {}
+
+ void Clear() override {}
+
+ void DrawTexture(int texture_id,
+ GLuint texture_handle,
+ GLuint vertex_buffer,
+ float alpha_multiplier) {}
+
+ int GetGlVersion() const { return -1; }
+
+ int GetMaxTextureSize() const { return 0; }
+
+ DISALLOW_COPY_AND_ASSIGN(FakeGlCanvas);
+};
+
} // namespace remoting
#endif // REMOTING_CLIENT_OPENGL_GL_CANVAS_H_

Powered by Google App Engine
This is Rietveld 408576698