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

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

Issue 126973002: Decouple cc::FakeWebGraphicsContext3D from blink::WGC3D (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/test/test_context_provider.cc ('k') | cc/test/test_web_graphics_context_3d.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ 5 #ifndef CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
6 #define CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ 6 #define CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 13 matching lines...) Expand all
24 24
25 namespace cc { 25 namespace cc {
26 class TestContextSupport; 26 class TestContextSupport;
27 27
28 class TestWebGraphicsContext3D : public FakeWebGraphicsContext3D { 28 class TestWebGraphicsContext3D : public FakeWebGraphicsContext3D {
29 public: 29 public:
30 static scoped_ptr<TestWebGraphicsContext3D> Create(); 30 static scoped_ptr<TestWebGraphicsContext3D> Create();
31 31
32 virtual ~TestWebGraphicsContext3D(); 32 virtual ~TestWebGraphicsContext3D();
33 33
34 virtual void reshapeWithScaleFactor( 34 virtual void reshapeWithScaleFactor(int width,
35 int width, int height, float scale_factor); 35 int height,
36 float scale_factor);
36 37
37 virtual bool isContextLost(); 38 virtual bool isContextLost() OVERRIDE;
38 39
39 virtual void attachShader(blink::WebGLId program, blink::WebGLId shader); 40 virtual void attachShader(blink::WebGLId program,
40 virtual void bindFramebuffer( 41 blink::WebGLId shader) OVERRIDE;
41 blink::WGC3Denum target, blink::WebGLId framebuffer); 42 virtual void bindFramebuffer(blink::WGC3Denum target,
42 virtual void bindRenderbuffer( 43 blink::WebGLId framebuffer) OVERRIDE;
43 blink::WGC3Denum target, blink::WebGLId renderbuffer); 44 virtual void bindRenderbuffer(blink::WGC3Denum target,
44 virtual void bindTexture( 45 blink::WebGLId renderbuffer) OVERRIDE;
45 blink::WGC3Denum target, 46 virtual void bindTexture(blink::WGC3Denum target,
46 blink::WebGLId texture_id); 47 blink::WebGLId texture_id) OVERRIDE;
47 48
48 virtual void texParameteri(blink::WGC3Denum target, 49 virtual void texParameteri(blink::WGC3Denum target,
49 blink::WGC3Denum pname, 50 blink::WGC3Denum pname,
50 blink::WGC3Dint param); 51 blink::WGC3Dint param) OVERRIDE;
51 virtual void getTexParameteriv(blink::WGC3Denum target, 52 virtual void getTexParameteriv(blink::WGC3Denum target,
52 blink::WGC3Denum pname, 53 blink::WGC3Denum pname,
53 blink::WGC3Dint* value); 54 blink::WGC3Dint* value) OVERRIDE;
55 virtual void asyncTexImage2DCHROMIUM(GLenum target,
56 GLint level,
57 GLenum internalformat,
58 GLsizei width,
59 GLsizei height,
60 GLint border,
61 GLenum format,
62 GLenum type,
63 const void* pixels) {}
64 virtual void asyncTexSubImage2DCHROMIUM(GLenum target,
65 GLint level,
66 GLint xoffset,
67 GLint yoffset,
68 GLsizei width,
69 GLsizei height,
70 GLenum format,
71 GLenum type,
72 const void* pixels) {}
73 virtual void waitAsyncTexImage2DCHROMIUM(GLenum target) {}
74 virtual void releaseTexImage2DCHROMIUM(GLenum target, GLint image_id) {}
54 75
55 virtual blink::WGC3Denum checkFramebufferStatus(blink::WGC3Denum target); 76 virtual blink::WGC3Denum checkFramebufferStatus(blink::WGC3Denum target)
77 OVERRIDE;
56 78
57 virtual Attributes getContextAttributes(); 79 virtual blink::WebString getString(blink::WGC3Denum name) OVERRIDE;
80 virtual blink::WGC3Dint getUniformLocation(blink::WebGLId program,
81 const blink::WGC3Dchar* name)
82 OVERRIDE;
83 virtual blink::WGC3Dsizeiptr getVertexAttribOffset(blink::WGC3Duint index,
84 blink::WGC3Denum pname)
85 OVERRIDE;
58 86
59 virtual blink::WebString getString(blink::WGC3Denum name); 87 virtual blink::WGC3Dboolean isBuffer(blink::WebGLId buffer) OVERRIDE;
60 virtual blink::WGC3Dint getUniformLocation( 88 virtual blink::WGC3Dboolean isEnabled(blink::WGC3Denum cap) OVERRIDE;
61 blink::WebGLId program, 89 virtual blink::WGC3Dboolean isFramebuffer(blink::WebGLId framebuffer)
62 const blink::WGC3Dchar* name); 90 OVERRIDE;
63 virtual blink::WGC3Dsizeiptr getVertexAttribOffset( 91 virtual blink::WGC3Dboolean isProgram(blink::WebGLId program) OVERRIDE;
64 blink::WGC3Duint index, 92 virtual blink::WGC3Dboolean isRenderbuffer(blink::WebGLId renderbuffer)
65 blink::WGC3Denum pname); 93 OVERRIDE;
94 virtual blink::WGC3Dboolean isShader(blink::WebGLId shader) OVERRIDE;
95 virtual blink::WGC3Dboolean isTexture(blink::WebGLId texture) OVERRIDE;
66 96
67 virtual blink::WGC3Dboolean isBuffer(blink::WebGLId buffer); 97 virtual void useProgram(blink::WebGLId program) OVERRIDE;
68 virtual blink::WGC3Dboolean isEnabled(blink::WGC3Denum cap);
69 virtual blink::WGC3Dboolean isFramebuffer(blink::WebGLId framebuffer);
70 virtual blink::WGC3Dboolean isProgram(blink::WebGLId program);
71 virtual blink::WGC3Dboolean isRenderbuffer(blink::WebGLId renderbuffer);
72 virtual blink::WGC3Dboolean isShader(blink::WebGLId shader);
73 virtual blink::WGC3Dboolean isTexture(blink::WebGLId texture);
74 98
75 virtual void useProgram(blink::WebGLId program); 99 virtual void genBuffers(blink::WGC3Dsizei count,
100 blink::WebGLId* ids) OVERRIDE;
101 virtual void genFramebuffers(blink::WGC3Dsizei count,
102 blink::WebGLId* ids) OVERRIDE;
103 virtual void genRenderbuffers(blink::WGC3Dsizei count,
104 blink::WebGLId* ids) OVERRIDE;
105 virtual void genTextures(blink::WGC3Dsizei count,
106 blink::WebGLId* ids) OVERRIDE;
76 107
77 virtual void genBuffers(blink::WGC3Dsizei count, blink::WebGLId* ids); 108 virtual void deleteBuffers(blink::WGC3Dsizei count,
78 virtual void genFramebuffers(blink::WGC3Dsizei count, blink::WebGLId* ids); 109 blink::WebGLId* ids) OVERRIDE;
79 virtual void genRenderbuffers(blink::WGC3Dsizei count, blink::WebGLId* ids); 110 virtual void deleteFramebuffers(blink::WGC3Dsizei count,
80 virtual void genTextures(blink::WGC3Dsizei count, blink::WebGLId* ids); 111 blink::WebGLId* ids) OVERRIDE;
112 virtual void deleteRenderbuffers(blink::WGC3Dsizei count,
113 blink::WebGLId* ids) OVERRIDE;
114 virtual void deleteTextures(blink::WGC3Dsizei count,
115 blink::WebGLId* ids) OVERRIDE;
81 116
82 virtual void deleteBuffers(blink::WGC3Dsizei count, blink::WebGLId* ids); 117 virtual blink::WebGLId createBuffer() OVERRIDE;
83 virtual void deleteFramebuffers( 118 virtual blink::WebGLId createFramebuffer() OVERRIDE;
84 blink::WGC3Dsizei count, blink::WebGLId* ids); 119 virtual blink::WebGLId createRenderbuffer() OVERRIDE;
85 virtual void deleteRenderbuffers( 120 virtual blink::WebGLId createTexture() OVERRIDE;
86 blink::WGC3Dsizei count, blink::WebGLId* ids);
87 virtual void deleteTextures(blink::WGC3Dsizei count, blink::WebGLId* ids);
88 121
89 virtual blink::WebGLId createBuffer(); 122 virtual void deleteBuffer(blink::WebGLId id) OVERRIDE;
90 virtual blink::WebGLId createFramebuffer(); 123 virtual void deleteFramebuffer(blink::WebGLId id) OVERRIDE;
91 virtual blink::WebGLId createRenderbuffer(); 124 virtual void deleteRenderbuffer(blink::WebGLId id) OVERRIDE;
92 virtual blink::WebGLId createTexture(); 125 virtual void deleteTexture(blink::WebGLId id) OVERRIDE;
93 126
94 virtual void deleteBuffer(blink::WebGLId id); 127 virtual blink::WebGLId createProgram() OVERRIDE;
95 virtual void deleteFramebuffer(blink::WebGLId id); 128 virtual blink::WebGLId createShader(blink::WGC3Denum) OVERRIDE;
96 virtual void deleteRenderbuffer(blink::WebGLId id);
97 virtual void deleteTexture(blink::WebGLId id);
98
99 virtual blink::WebGLId createProgram();
100 virtual blink::WebGLId createShader(blink::WGC3Denum);
101 virtual blink::WebGLId createExternalTexture(); 129 virtual blink::WebGLId createExternalTexture();
102 130
103 virtual void deleteProgram(blink::WebGLId id); 131 virtual void deleteProgram(blink::WebGLId id) OVERRIDE;
104 virtual void deleteShader(blink::WebGLId id); 132 virtual void deleteShader(blink::WebGLId id) OVERRIDE;
105 133
106 virtual void endQueryEXT(blink::WGC3Denum target); 134 virtual void endQueryEXT(blink::WGC3Denum target) OVERRIDE;
107 virtual void getQueryObjectuivEXT( 135 virtual void getQueryObjectuivEXT(blink::WebGLId query,
108 blink::WebGLId query, 136 blink::WGC3Denum pname,
109 blink::WGC3Denum pname, 137 blink::WGC3Duint* params) OVERRIDE;
110 blink::WGC3Duint* params);
111 138
112 virtual void getIntegerv( 139 virtual void getIntegerv(blink::WGC3Denum pname,
113 blink::WGC3Denum pname, 140 blink::WGC3Dint* value) OVERRIDE;
114 blink::WGC3Dint* value);
115 141
116 virtual void genMailboxCHROMIUM(blink::WGC3Dbyte* mailbox); 142 virtual void genMailboxCHROMIUM(blink::WGC3Dbyte* mailbox);
117 virtual void produceTextureCHROMIUM(blink::WGC3Denum target, 143 virtual void produceTextureCHROMIUM(blink::WGC3Denum target,
118 const blink::WGC3Dbyte* mailbox) { } 144 const blink::WGC3Dbyte* mailbox) {}
119 virtual void consumeTextureCHROMIUM(blink::WGC3Denum target, 145 virtual void consumeTextureCHROMIUM(blink::WGC3Denum target,
120 const blink::WGC3Dbyte* mailbox) { } 146 const blink::WGC3Dbyte* mailbox) {}
121 147
122 virtual void setContextLostCallback( 148 virtual void setContextLostCallback(
123 WebGraphicsContextLostCallback* callback); 149 blink::WebGraphicsContext3D::WebGraphicsContextLostCallback* callback)
150 OVERRIDE;
124 151
125 virtual void loseContextCHROMIUM(blink::WGC3Denum current, 152 virtual void loseContextCHROMIUM(blink::WGC3Denum current,
126 blink::WGC3Denum other); 153 blink::WGC3Denum other) OVERRIDE;
127 154
128 virtual void finish(); 155 virtual void finish() OVERRIDE;
129 virtual void flush(); 156 virtual void flush() OVERRIDE;
130 157
131 virtual void bindBuffer(blink::WGC3Denum target, blink::WebGLId buffer); 158 virtual void bindBuffer(blink::WGC3Denum target,
159 blink::WebGLId buffer) OVERRIDE;
132 virtual void bufferData(blink::WGC3Denum target, 160 virtual void bufferData(blink::WGC3Denum target,
133 blink::WGC3Dsizeiptr size, 161 blink::WGC3Dsizeiptr size,
134 const void* data, 162 const void* data,
135 blink::WGC3Denum usage); 163 blink::WGC3Denum usage) OVERRIDE;
136 virtual void* mapBufferCHROMIUM(blink::WGC3Denum target, 164 virtual void* mapBufferCHROMIUM(blink::WGC3Denum target,
137 blink::WGC3Denum access); 165 blink::WGC3Denum access);
138 virtual blink::WGC3Dboolean unmapBufferCHROMIUM(blink::WGC3Denum target); 166 virtual blink::WGC3Dboolean unmapBufferCHROMIUM(blink::WGC3Denum target);
139 167
140 virtual blink::WGC3Duint createImageCHROMIUM( 168 virtual blink::WGC3Duint createImageCHROMIUM(blink::WGC3Dsizei width,
141 blink::WGC3Dsizei width, 169 blink::WGC3Dsizei height,
142 blink::WGC3Dsizei height, 170 blink::WGC3Denum internalformat)
143 blink::WGC3Denum internalformat); 171 OVERRIDE;
144 virtual void destroyImageCHROMIUM(blink::WGC3Duint image_id); 172 virtual void destroyImageCHROMIUM(blink::WGC3Duint image_id) OVERRIDE;
145 virtual void getImageParameterivCHROMIUM( 173 virtual void getImageParameterivCHROMIUM(blink::WGC3Duint image_id,
146 blink::WGC3Duint image_id, 174 blink::WGC3Denum pname,
147 blink::WGC3Denum pname, 175 blink::WGC3Dint* params) OVERRIDE;
148 blink::WGC3Dint* params); 176 virtual void* mapImageCHROMIUM(blink::WGC3Duint image_id,
149 virtual void* mapImageCHROMIUM( 177 blink::WGC3Denum access) OVERRIDE;
150 blink::WGC3Duint image_id, 178 virtual void unmapImageCHROMIUM(blink::WGC3Duint image_id) OVERRIDE;
151 blink::WGC3Denum access); 179 virtual void texImageIOSurface2DCHROMIUM(GLenum target,
152 virtual void unmapImageCHROMIUM(blink::WGC3Duint image_id); 180 GLsizei width,
181 GLsizei height,
182 GLuint io_surface_id,
183 GLuint plane) {}
153 184
154 virtual unsigned insertSyncPoint() OVERRIDE; 185 virtual unsigned insertSyncPoint();
155 virtual void waitSyncPoint(unsigned sync_point) OVERRIDE; 186 virtual void waitSyncPoint(unsigned sync_point);
156 187
157 unsigned last_waited_sync_point() const { return last_waited_sync_point_; } 188 unsigned last_waited_sync_point() const { return last_waited_sync_point_; }
158 189
159 const ContextProvider::Capabilities& test_capabilities() const { 190 const ContextProvider::Capabilities& test_capabilities() const {
160 return test_capabilities_; 191 return test_capabilities_;
161 } 192 }
162 193
163 void set_context_lost(bool context_lost) { context_lost_ = context_lost; } 194 void set_context_lost(bool context_lost) { context_lost_ = context_lost; }
164 void set_times_bind_texture_succeeds(int times) { 195 void set_times_bind_texture_succeeds(int times) {
165 times_bind_texture_succeeds_ = times; 196 times_bind_texture_succeeds_ = times;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 test_capabilities_.discard_framebuffer = have; 234 test_capabilities_.discard_framebuffer = have;
204 } 235 }
205 void set_support_compressed_texture_etc1(bool support) { 236 void set_support_compressed_texture_etc1(bool support) {
206 test_capabilities_.texture_format_etc1 = support; 237 test_capabilities_.texture_format_etc1 = support;
207 } 238 }
208 void set_support_texture_storage(bool support) { 239 void set_support_texture_storage(bool support) {
209 test_capabilities_.texture_storage = support; 240 test_capabilities_.texture_storage = support;
210 } 241 }
211 242
212 // When this context is lost, all contexts in its share group are also lost. 243 // When this context is lost, all contexts in its share group are also lost.
213 void add_share_group_context(blink::WebGraphicsContext3D* context3d) { 244 void add_share_group_context(TestWebGraphicsContext3D* context3d) {
214 shared_contexts_.push_back(context3d); 245 shared_contexts_.push_back(context3d);
215 } 246 }
216 247
217 void set_max_texture_size(int size) { max_texture_size_ = size; } 248 void set_max_texture_size(int size) { max_texture_size_ = size; }
218 249
219 static const blink::WebGLId kExternalTextureId; 250 static const blink::WebGLId kExternalTextureId;
220 virtual blink::WebGLId NextTextureId(); 251 virtual blink::WebGLId NextTextureId();
221 virtual void RetireTextureId(blink::WebGLId id); 252 virtual void RetireTextureId(blink::WebGLId id);
222 253
223 virtual blink::WebGLId NextBufferId(); 254 virtual blink::WebGLId NextBufferId();
(...skipping 19 matching lines...) Expand all
243 float scale_factor() const { return scale_factor_; } 274 float scale_factor() const { return scale_factor_; }
244 275
245 enum UpdateType { 276 enum UpdateType {
246 NoUpdate = 0, 277 NoUpdate = 0,
247 PrepareTexture, 278 PrepareTexture,
248 PostSubBuffer 279 PostSubBuffer
249 }; 280 };
250 281
251 gfx::Rect update_rect() const { return update_rect_; } 282 gfx::Rect update_rect() const { return update_rect_; }
252 283
253 UpdateType last_update_type() { 284 UpdateType last_update_type() { return last_update_type_; }
254 return last_update_type_;
255 }
256 285
257 protected: 286 protected:
258 struct TextureTargets { 287 struct TextureTargets {
259 TextureTargets(); 288 TextureTargets();
260 ~TextureTargets(); 289 ~TextureTargets();
261 290
262 void BindTexture(blink::WGC3Denum target, blink::WebGLId id); 291 void BindTexture(blink::WGC3Denum target, blink::WebGLId id);
263 void UnbindTexture(blink::WebGLId id); 292 void UnbindTexture(blink::WebGLId id);
264 293
265 blink::WebGLId BoundTexture(blink::WGC3Denum target); 294 blink::WebGLId BoundTexture(blink::WGC3Denum target);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 }; 339 };
311 340
312 TestWebGraphicsContext3D(); 341 TestWebGraphicsContext3D();
313 342
314 void CreateNamespace(); 343 void CreateNamespace();
315 blink::WebGLId BoundTextureId(blink::WGC3Denum target); 344 blink::WebGLId BoundTextureId(blink::WGC3Denum target);
316 scoped_refptr<TestTexture> BoundTexture(blink::WGC3Denum target); 345 scoped_refptr<TestTexture> BoundTexture(blink::WGC3Denum target);
317 void CheckTextureIsBound(blink::WGC3Denum target); 346 void CheckTextureIsBound(blink::WGC3Denum target);
318 347
319 unsigned context_id_; 348 unsigned context_id_;
320 Attributes attributes_;
321 ContextProvider::Capabilities test_capabilities_; 349 ContextProvider::Capabilities test_capabilities_;
322 int times_bind_texture_succeeds_; 350 int times_bind_texture_succeeds_;
323 int times_end_query_succeeds_; 351 int times_end_query_succeeds_;
324 int times_gen_mailbox_succeeds_; 352 int times_gen_mailbox_succeeds_;
325 bool context_lost_; 353 bool context_lost_;
326 int times_map_image_chromium_succeeds_; 354 int times_map_image_chromium_succeeds_;
327 int times_map_buffer_chromium_succeeds_; 355 int times_map_buffer_chromium_succeeds_;
328 WebGraphicsContextLostCallback* context_lost_callback_; 356 blink::WebGraphicsContext3D::WebGraphicsContextLostCallback*
357 context_lost_callback_;
329 base::hash_set<unsigned> used_textures_; 358 base::hash_set<unsigned> used_textures_;
330 unsigned next_program_id_; 359 unsigned next_program_id_;
331 base::hash_set<unsigned> program_set_; 360 base::hash_set<unsigned> program_set_;
332 unsigned next_shader_id_; 361 unsigned next_shader_id_;
333 base::hash_set<unsigned> shader_set_; 362 base::hash_set<unsigned> shader_set_;
334 std::vector<blink::WebGraphicsContext3D*> shared_contexts_; 363 std::vector<TestWebGraphicsContext3D*> shared_contexts_;
335 int max_texture_size_; 364 int max_texture_size_;
336 bool reshape_called_; 365 bool reshape_called_;
337 int width_; 366 int width_;
338 int height_; 367 int height_;
339 float scale_factor_; 368 float scale_factor_;
340 TestContextSupport* test_support_; 369 TestContextSupport* test_support_;
341 gfx::Rect update_rect_; 370 gfx::Rect update_rect_;
342 UpdateType last_update_type_; 371 UpdateType last_update_type_;
343 unsigned next_insert_sync_point_; 372 unsigned next_insert_sync_point_;
344 unsigned last_waited_sync_point_; 373 unsigned last_waited_sync_point_;
345 374
346 unsigned bound_buffer_; 375 unsigned bound_buffer_;
347 TextureTargets texture_targets_; 376 TextureTargets texture_targets_;
348 377
349 size_t peak_transfer_buffer_memory_used_bytes_; 378 size_t peak_transfer_buffer_memory_used_bytes_;
350 379
351 scoped_refptr<Namespace> namespace_; 380 scoped_refptr<Namespace> namespace_;
352 static Namespace* shared_namespace_; 381 static Namespace* shared_namespace_;
353 382
354 base::WeakPtrFactory<TestWebGraphicsContext3D> weak_ptr_factory_; 383 base::WeakPtrFactory<TestWebGraphicsContext3D> weak_ptr_factory_;
355 }; 384 };
356 385
357 } // namespace cc 386 } // namespace cc
358 387
359 #endif // CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ 388 #endif // CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
OLDNEW
« no previous file with comments | « cc/test/test_context_provider.cc ('k') | cc/test/test_web_graphics_context_3d.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698