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

Side by Side Diff: cc/test/test_web_graphics_context_3d.h

Issue 12211110: Implement WebKit::WebUnitTestSupport::createLayerTreeViewForTesting() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: include Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
6 #define CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
7
8 #include <vector>
9
10 #include "base/compiler_specific.h"
11 #include "base/hash_tables.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "base/stl_util.h"
14 #include "cc/fake_web_graphics_context_3d.h"
15 #include "third_party/khronos/GLES2/gl2.h"
16
17 namespace cc {
18
19 class TestWebGraphicsContext3D :
20 public NON_EXPORTED_BASE(FakeWebGraphicsContext3D) {
piman 2013/02/11 19:53:00 nit: don't think NON_EXPORTED_BASE is useful since
21 public:
22 static scoped_ptr<TestWebGraphicsContext3D> Create() {
23 return make_scoped_ptr(new TestWebGraphicsContext3D());
24 }
25 static scoped_ptr<TestWebGraphicsContext3D> Create(
26 const WebKit::WebGraphicsContext3D::Attributes& attributes) {
27 return make_scoped_ptr(new TestWebGraphicsContext3D(attributes));
28 }
29 virtual ~TestWebGraphicsContext3D();
30
31 virtual bool makeContextCurrent();
32
33 virtual int width();
34 virtual int height();
35
36 virtual void reshape(int width, int height);
37
38 virtual bool isContextLost();
39 virtual WebKit::WGC3Denum getGraphicsResetStatusARB();
40
41 virtual void attachShader(WebKit::WebGLId program, WebKit::WebGLId shader);
42 virtual void bindBuffer(WebKit::WGC3Denum target, WebKit::WebGLId buffer);
43 virtual void bindFramebuffer(
44 WebKit::WGC3Denum target, WebKit::WebGLId framebuffer);
45 virtual void bindRenderbuffer(
46 WebKit::WGC3Denum target, WebKit::WebGLId renderbuffer);
47 virtual void bindTexture(
48 WebKit::WGC3Denum target,
49 WebKit::WebGLId texture_id);
50
51 virtual WebKit::WGC3Denum checkFramebufferStatus(WebKit::WGC3Denum target);
52
53 virtual Attributes getContextAttributes();
54
55 virtual WebKit::WebString getString(WebKit::WGC3Denum name);
56 virtual WebKit::WGC3Dint getUniformLocation(
57 WebKit::WebGLId program,
58 const WebKit::WGC3Dchar* name);
59 virtual WebKit::WGC3Dsizeiptr getVertexAttribOffset(
60 WebKit::WGC3Duint index,
61 WebKit::WGC3Denum pname);
62
63 virtual WebKit::WGC3Dboolean isBuffer(WebKit::WebGLId buffer);
64 virtual WebKit::WGC3Dboolean isEnabled(WebKit::WGC3Denum cap);
65 virtual WebKit::WGC3Dboolean isFramebuffer(WebKit::WebGLId framebuffer);
66 virtual WebKit::WGC3Dboolean isProgram(WebKit::WebGLId program);
67 virtual WebKit::WGC3Dboolean isRenderbuffer(WebKit::WebGLId renderbuffer);
68 virtual WebKit::WGC3Dboolean isShader(WebKit::WebGLId shader);
69 virtual WebKit::WGC3Dboolean isTexture(WebKit::WebGLId texture);
70
71 virtual void useProgram(WebKit::WebGLId program);
72
73 virtual WebKit::WebGLId createBuffer();
74 virtual WebKit::WebGLId createFramebuffer();
75 virtual WebKit::WebGLId createProgram();
76 virtual WebKit::WebGLId createRenderbuffer();
77 virtual WebKit::WebGLId createShader(WebKit::WGC3Denum);
78 virtual WebKit::WebGLId createTexture();
79
80 virtual void deleteBuffer(WebKit::WebGLId id);
81 virtual void deleteFramebuffer(WebKit::WebGLId id);
82 virtual void deleteProgram(WebKit::WebGLId id);
83 virtual void deleteRenderbuffer(WebKit::WebGLId id);
84 virtual void deleteShader(WebKit::WebGLId id);
85 virtual void deleteTexture(WebKit::WebGLId texture_id);
86
87 virtual void endQueryEXT(WebKit::WGC3Denum target);
88 virtual void getQueryObjectuivEXT(
89 WebKit::WebGLId query,
90 WebKit::WGC3Denum pname,
91 WebKit::WGC3Duint* params);
92
93 virtual void setContextLostCallback(
94 WebGraphicsContextLostCallback* callback);
95
96 virtual void loseContextCHROMIUM(WebKit::WGC3Denum current,
97 WebKit::WGC3Denum other);
98
99 // When set, MakeCurrent() will fail after this many times.
100 void set_times_make_current_succeeds(int times) {
101 times_make_current_succeeds_ = times;
102 }
103 void set_times_bind_texture_succeeds(int times) {
104 times_bind_texture_succeeds_ = times;
105 }
106 void set_times_end_query_succeeds(int times) {
107 times_end_query_succeeds_ = times;
108 }
109
110 size_t NumTextures() const { return textures_.size(); }
111 WebKit::WebGLId TextureAt(int i) const { return textures_[i]; }
112
113 size_t NumUsedTextures() const { return used_textures_.size(); }
114 bool UsedTexture(int texture) const {
115 return ContainsKey(used_textures_, texture);
116 }
117 void ResetUsedTextures() { used_textures_.clear(); }
118
119 void set_have_extension_io_surface(bool have) {
120 have_extension_io_surface_ = have;
121 }
122 void set_have_extension_egl_image(bool have) {
123 have_extension_egl_image_ = have;
124 }
125
126 static const WebKit::WebGLId kExternalTextureId;
127 virtual WebKit::WebGLId NextTextureId();
128
129 protected:
130 TestWebGraphicsContext3D();
131 TestWebGraphicsContext3D(
132 const WebKit::WebGraphicsContext3D::Attributes& attributes);
133
134 unsigned context_id_;
135 unsigned next_texture_id_;
136 Attributes attributes_;
137 bool have_extension_io_surface_;
138 bool have_extension_egl_image_;
139 int times_make_current_succeeds_;
140 int times_bind_texture_succeeds_;
141 int times_end_query_succeeds_;
142 bool context_lost_;
143 WebGraphicsContextLostCallback* context_lost_callback_;
144 std::vector<WebKit::WebGLId> textures_;
145 base::hash_set<WebKit::WebGLId> used_textures_;
146 int width_;
147 int height_;
148 };
149
150 } // namespace cc
151
152 #endif // CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698