- add sources.
[platform/framework/web/crosswalk.git] / src / cc / test / fake_web_graphics_context_3d.h
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
3 // found in the LICENSE file.
4
5 #ifndef CC_TEST_FAKE_WEB_GRAPHICS_CONTEXT_3D_H_
6 #define CC_TEST_FAKE_WEB_GRAPHICS_CONTEXT_3D_H_
7
8 #include <string>
9
10 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
11
12 namespace cc {
13
14 // WebGraphicsContext3D base class for use in unit tests.
15 // All operations are no-ops (returning 0 if necessary).
16 class FakeWebGraphicsContext3D : public WebKit::WebGraphicsContext3D {
17  public:
18   FakeWebGraphicsContext3D();
19   virtual ~FakeWebGraphicsContext3D();
20
21   virtual bool makeContextCurrent();
22
23   virtual bool isGLES2Compliant();
24
25   virtual WebKit::WebGLId getPlatformTextureId();
26
27   virtual void prepareTexture() {}
28
29   virtual void postSubBufferCHROMIUM(int x, int y, int width, int height) {}
30
31   virtual void synthesizeGLError(WebKit::WGC3Denum) {}
32
33   virtual bool isContextLost();
34   virtual WebKit::WGC3Denum getGraphicsResetStatusARB();
35
36   virtual void* mapBufferSubDataCHROMIUM(
37       WebKit::WGC3Denum target,
38       WebKit::WGC3Dintptr offset,
39       WebKit::WGC3Dsizeiptr size,
40       WebKit::WGC3Denum access);
41
42   virtual void unmapBufferSubDataCHROMIUM(const void*) {}
43   virtual void* mapTexSubImage2DCHROMIUM(
44       WebKit::WGC3Denum target,
45       WebKit::WGC3Dint level,
46       WebKit::WGC3Dint xoffset,
47       WebKit::WGC3Dint yoffset,
48       WebKit::WGC3Dsizei width,
49       WebKit::WGC3Dsizei height,
50       WebKit::WGC3Denum format,
51       WebKit::WGC3Denum type,
52       WebKit::WGC3Denum access);
53   virtual void unmapTexSubImage2DCHROMIUM(const void*) {}
54
55   virtual void setVisibilityCHROMIUM(bool visible) {}
56
57   virtual void discardFramebufferEXT(
58       WebKit::WGC3Denum target,
59       WebKit::WGC3Dsizei num_attachments,
60       const WebKit::WGC3Denum* attachments) {}
61
62   virtual WebKit::WebString getRequestableExtensionsCHROMIUM();
63   virtual void requestExtensionCHROMIUM(const char*) {}
64
65   virtual void blitFramebufferCHROMIUM(
66       WebKit::WGC3Dint src_x0,
67       WebKit::WGC3Dint src_y0,
68       WebKit::WGC3Dint src_x1,
69       WebKit::WGC3Dint src_y1,
70       WebKit::WGC3Dint dst_x0,
71       WebKit::WGC3Dint dst_y0,
72       WebKit::WGC3Dint dst_x1,
73       WebKit::WGC3Dint dst_y1,
74       WebKit::WGC3Dbitfield mask,
75       WebKit::WGC3Denum filter) {}
76   virtual void renderbufferStorageMultisampleCHROMIUM(
77       WebKit::WGC3Denum target,
78       WebKit::WGC3Dsizei samples,
79       WebKit::WGC3Denum internalformat,
80       WebKit::WGC3Dsizei width,
81       WebKit::WGC3Dsizei height) {}
82
83   virtual void activeTexture(WebKit::WGC3Denum texture) {}
84   virtual void attachShader(WebKit::WebGLId program, WebKit::WebGLId shader);
85   virtual void bindAttribLocation(
86       WebKit::WebGLId program,
87       WebKit::WGC3Duint index,
88       const WebKit::WGC3Dchar* name) {}
89   virtual void bindBuffer(WebKit::WGC3Denum target, WebKit::WebGLId buffer);
90   virtual void bindFramebuffer(
91       WebKit::WGC3Denum target, WebKit::WebGLId framebuffer);
92   virtual void bindRenderbuffer(
93       WebKit::WGC3Denum target, WebKit::WebGLId renderbuffer);
94   virtual void bindTexture(
95       WebKit::WGC3Denum target,
96       WebKit::WebGLId texture_id);
97   virtual void blendColor(
98       WebKit::WGC3Dclampf red,
99       WebKit::WGC3Dclampf green,
100       WebKit::WGC3Dclampf blue,
101       WebKit::WGC3Dclampf alpha) {}
102   virtual void blendEquation(WebKit::WGC3Denum mode) {}
103   virtual void blendEquationSeparate(
104       WebKit::WGC3Denum mode_rgb,
105       WebKit::WGC3Denum mode_alpha) {}
106   virtual void blendFunc(
107       WebKit::WGC3Denum sfactor,
108       WebKit::WGC3Denum dfactor) {}
109   virtual void blendFuncSeparate(
110       WebKit::WGC3Denum src_rgb,
111       WebKit::WGC3Denum dst_rgb,
112       WebKit::WGC3Denum src_alpha,
113       WebKit::WGC3Denum dst_alpha) {}
114
115   virtual void bufferData(
116       WebKit::WGC3Denum target,
117       WebKit::WGC3Dsizeiptr size,
118       const void* data,
119       WebKit::WGC3Denum usage) {}
120   virtual void bufferSubData(
121       WebKit::WGC3Denum target,
122       WebKit::WGC3Dintptr offset,
123       WebKit::WGC3Dsizeiptr size,
124       const void* data) {}
125
126   virtual WebKit::WGC3Denum checkFramebufferStatus(WebKit::WGC3Denum target);
127
128   virtual void clear(WebKit::WGC3Dbitfield mask) {}
129   virtual void clearColor(
130       WebKit::WGC3Dclampf red,
131       WebKit::WGC3Dclampf green,
132       WebKit::WGC3Dclampf blue,
133       WebKit::WGC3Dclampf alpha) {}
134   virtual void clearDepth(WebKit::WGC3Dclampf depth) {}
135   virtual void clearStencil(WebKit::WGC3Dint s) {}
136   virtual void colorMask(
137       WebKit::WGC3Dboolean red,
138       WebKit::WGC3Dboolean green,
139       WebKit::WGC3Dboolean blue,
140       WebKit::WGC3Dboolean alpha) {}
141   virtual void compileShader(WebKit::WebGLId shader) {}
142
143   virtual void compressedTexImage2D(
144       WebKit::WGC3Denum target,
145       WebKit::WGC3Dint level,
146       WebKit::WGC3Denum internal_format,
147       WebKit::WGC3Dsizei width,
148       WebKit::WGC3Dsizei height,
149       WebKit::WGC3Dint border,
150       WebKit::WGC3Dsizei image_size,
151       const void* data) {}
152   virtual void compressedTexSubImage2D(
153       WebKit::WGC3Denum target,
154       WebKit::WGC3Dint level,
155       WebKit::WGC3Dint xoffset,
156       WebKit::WGC3Dint yoffset,
157       WebKit::WGC3Dsizei width,
158       WebKit::WGC3Dsizei height,
159       WebKit::WGC3Denum format,
160       WebKit::WGC3Dsizei image_size,
161       const void* data) {}
162   virtual void copyTexImage2D(
163       WebKit::WGC3Denum target,
164       WebKit::WGC3Dint level,
165       WebKit::WGC3Denum internalformat,
166       WebKit::WGC3Dint x,
167       WebKit::WGC3Dint y,
168       WebKit::WGC3Dsizei width,
169       WebKit::WGC3Dsizei height,
170       WebKit::WGC3Dint border) {}
171   virtual void copyTexSubImage2D(
172       WebKit::WGC3Denum target,
173       WebKit::WGC3Dint level,
174       WebKit::WGC3Dint xoffset,
175       WebKit::WGC3Dint yoffset,
176       WebKit::WGC3Dint x,
177       WebKit::WGC3Dint y,
178       WebKit::WGC3Dsizei width,
179       WebKit::WGC3Dsizei height) {}
180   virtual void cullFace(WebKit::WGC3Denum mode) {}
181   virtual void depthFunc(WebKit::WGC3Denum func) {}
182   virtual void depthMask(WebKit::WGC3Dboolean flag) {}
183   virtual void depthRange(
184       WebKit::WGC3Dclampf z_near,
185       WebKit::WGC3Dclampf z_far) {}
186   virtual void detachShader(WebKit::WebGLId program, WebKit::WebGLId shader) {}
187   virtual void disable(WebKit::WGC3Denum cap) {}
188   virtual void disableVertexAttribArray(WebKit::WGC3Duint index) {}
189   virtual void drawArrays(
190       WebKit::WGC3Denum mode,
191       WebKit::WGC3Dint first,
192       WebKit::WGC3Dsizei count) {}
193   virtual void drawElements(
194       WebKit::WGC3Denum mode,
195       WebKit::WGC3Dsizei count,
196       WebKit::WGC3Denum type,
197       WebKit::WGC3Dintptr offset) {}
198
199   virtual void enable(WebKit::WGC3Denum cap) {}
200   virtual void enableVertexAttribArray(WebKit::WGC3Duint index) {}
201   virtual void finish() {}
202   virtual void flush() {}
203   virtual void framebufferRenderbuffer(
204       WebKit::WGC3Denum target,
205       WebKit::WGC3Denum attachment,
206       WebKit::WGC3Denum renderbuffertarget,
207       WebKit::WebGLId renderbuffer) {}
208   virtual void framebufferTexture2D(
209       WebKit::WGC3Denum target,
210       WebKit::WGC3Denum attachment,
211       WebKit::WGC3Denum textarget,
212       WebKit::WebGLId texture,
213       WebKit::WGC3Dint level) {}
214   virtual void frontFace(WebKit::WGC3Denum mode) {}
215   virtual void generateMipmap(WebKit::WGC3Denum target) {}
216
217   virtual bool getActiveAttrib(
218       WebKit::WebGLId program,
219       WebKit::WGC3Duint index, ActiveInfo&);
220   virtual bool getActiveUniform(
221       WebKit::WebGLId program,
222       WebKit::WGC3Duint index,
223       ActiveInfo&);
224   virtual void getAttachedShaders(
225       WebKit::WebGLId program,
226       WebKit::WGC3Dsizei max_count,
227       WebKit::WGC3Dsizei* count,
228       WebKit::WebGLId* shaders) {}
229   virtual WebKit::WGC3Dint getAttribLocation(
230       WebKit::WebGLId program,
231       const WebKit::WGC3Dchar* name);
232   virtual void getBooleanv(
233       WebKit::WGC3Denum pname,
234       WebKit::WGC3Dboolean* value) {}
235   virtual void getBufferParameteriv(
236       WebKit::WGC3Denum target,
237       WebKit::WGC3Denum pname,
238       WebKit::WGC3Dint* value) {}
239   virtual Attributes getContextAttributes();
240   virtual WebKit::WGC3Denum getError();
241   virtual void getFloatv(
242       WebKit::WGC3Denum pname,
243       WebKit::WGC3Dfloat* value) {}
244   virtual void getFramebufferAttachmentParameteriv(
245       WebKit::WGC3Denum target,
246       WebKit::WGC3Denum attachment,
247       WebKit::WGC3Denum pname,
248       WebKit::WGC3Dint* value) {}
249
250   virtual void getIntegerv(
251       WebKit::WGC3Denum pname,
252       WebKit::WGC3Dint* value);
253
254   virtual void getProgramiv(
255       WebKit::WebGLId program,
256       WebKit::WGC3Denum pname,
257       WebKit::WGC3Dint* value);
258
259   virtual WebKit::WebString getProgramInfoLog(WebKit::WebGLId program);
260   virtual void getRenderbufferParameteriv(
261       WebKit::WGC3Denum target,
262       WebKit::WGC3Denum pname,
263       WebKit::WGC3Dint* value) {}
264
265   virtual void getShaderiv(
266       WebKit::WebGLId shader,
267       WebKit::WGC3Denum pname,
268       WebKit::WGC3Dint* value);
269
270   virtual WebKit::WebString getShaderInfoLog(WebKit::WebGLId shader);
271   virtual void getShaderPrecisionFormat(
272       WebKit::WGC3Denum shadertype,
273       WebKit::WGC3Denum precisiontype,
274       WebKit::WGC3Dint* range,
275       WebKit::WGC3Dint* precision);
276   virtual WebKit::WebString getShaderSource(WebKit::WebGLId shader);
277   virtual WebKit::WebString getString(WebKit::WGC3Denum name);
278   virtual void getTexParameterfv(
279       WebKit::WGC3Denum target,
280       WebKit::WGC3Denum pname,
281       WebKit::WGC3Dfloat* value) {}
282   virtual void getTexParameteriv(
283       WebKit::WGC3Denum target,
284       WebKit::WGC3Denum pname,
285       WebKit::WGC3Dint* value) {}
286   virtual void getUniformfv(
287       WebKit::WebGLId program,
288       WebKit::WGC3Dint location,
289       WebKit::WGC3Dfloat* value) {}
290   virtual void getUniformiv(
291       WebKit::WebGLId program,
292       WebKit::WGC3Dint location,
293       WebKit::WGC3Dint* value) {}
294   virtual WebKit::WGC3Dint getUniformLocation(
295       WebKit::WebGLId program,
296       const WebKit::WGC3Dchar* name);
297   virtual void getVertexAttribfv(
298       WebKit::WGC3Duint index,
299       WebKit::WGC3Denum pname,
300       WebKit::WGC3Dfloat* value) {}
301   virtual void getVertexAttribiv(
302       WebKit::WGC3Duint index,
303       WebKit::WGC3Denum pname,
304       WebKit::WGC3Dint* value) {}
305   virtual WebKit::WGC3Dsizeiptr getVertexAttribOffset(
306       WebKit::WGC3Duint index,
307       WebKit::WGC3Denum pname);
308
309   virtual void hint(WebKit::WGC3Denum target, WebKit::WGC3Denum mode) {}
310   virtual WebKit::WGC3Dboolean isBuffer(WebKit::WebGLId buffer);
311   virtual WebKit::WGC3Dboolean isEnabled(WebKit::WGC3Denum cap);
312   virtual WebKit::WGC3Dboolean isFramebuffer(WebKit::WebGLId framebuffer);
313   virtual WebKit::WGC3Dboolean isProgram(WebKit::WebGLId program);
314   virtual WebKit::WGC3Dboolean isRenderbuffer(WebKit::WebGLId renderbuffer);
315   virtual WebKit::WGC3Dboolean isShader(WebKit::WebGLId shader);
316   virtual WebKit::WGC3Dboolean isTexture(WebKit::WebGLId texture);
317   virtual void lineWidth(WebKit::WGC3Dfloat) {}
318   virtual void linkProgram(WebKit::WebGLId program) {}
319   virtual void pixelStorei(WebKit::WGC3Denum pname, WebKit::WGC3Dint param) {}
320   virtual void polygonOffset(
321       WebKit::WGC3Dfloat factor,
322       WebKit::WGC3Dfloat units) {}
323
324   virtual void readPixels(
325       WebKit::WGC3Dint x,
326       WebKit::WGC3Dint y,
327       WebKit::WGC3Dsizei width,
328       WebKit::WGC3Dsizei height,
329       WebKit::WGC3Denum format,
330       WebKit::WGC3Denum type,
331       void* pixels) {}
332
333   virtual void releaseShaderCompiler() {}
334
335   virtual void renderbufferStorage(
336       WebKit::WGC3Denum target,
337       WebKit::WGC3Denum internalformat,
338       WebKit::WGC3Dsizei width,
339       WebKit::WGC3Dsizei height) {}
340   virtual void sampleCoverage(
341       WebKit::WGC3Dclampf value,
342       WebKit::WGC3Dboolean invert) {}
343   virtual void scissor(
344       WebKit::WGC3Dint x,
345       WebKit::WGC3Dint y,
346       WebKit::WGC3Dsizei width,
347       WebKit::WGC3Dsizei height) {}
348   virtual void shaderSource(
349       WebKit::WebGLId shader,
350       const WebKit::WGC3Dchar* string) {}
351   virtual void stencilFunc(
352       WebKit::WGC3Denum func,
353       WebKit::WGC3Dint ref,
354       WebKit::WGC3Duint mask) {}
355   virtual void stencilFuncSeparate(
356       WebKit::WGC3Denum face,
357       WebKit::WGC3Denum func,
358       WebKit::WGC3Dint ref,
359       WebKit::WGC3Duint mask) {}
360   virtual void stencilMask(WebKit::WGC3Duint mask) {}
361   virtual void stencilMaskSeparate(
362       WebKit::WGC3Denum face,
363       WebKit::WGC3Duint mask) {}
364   virtual void stencilOp(
365       WebKit::WGC3Denum fail,
366       WebKit::WGC3Denum zfail,
367       WebKit::WGC3Denum zpass) {}
368   virtual void stencilOpSeparate(
369       WebKit::WGC3Denum face,
370       WebKit::WGC3Denum fail,
371       WebKit::WGC3Denum zfail,
372       WebKit::WGC3Denum zpass) {}
373
374   virtual void texImage2D(
375       WebKit::WGC3Denum target,
376       WebKit::WGC3Dint level,
377       WebKit::WGC3Denum internalformat,
378       WebKit::WGC3Dsizei width,
379       WebKit::WGC3Dsizei height,
380       WebKit::WGC3Dint border,
381       WebKit::WGC3Denum format,
382       WebKit::WGC3Denum type,
383       const void* pixels) {}
384
385   virtual void texParameterf(
386       WebKit::WGC3Denum target,
387       WebKit::WGC3Denum pname,
388       WebKit::WGC3Dfloat param) {}
389   virtual void texParameteri(
390       WebKit::WGC3Denum target,
391       WebKit::WGC3Denum pname,
392       WebKit::WGC3Dint param) {}
393
394   virtual void texSubImage2D(
395       WebKit::WGC3Denum target,
396       WebKit::WGC3Dint level,
397       WebKit::WGC3Dint xoffset,
398       WebKit::WGC3Dint yoffset,
399       WebKit::WGC3Dsizei width,
400       WebKit::WGC3Dsizei height,
401       WebKit::WGC3Denum format,
402       WebKit::WGC3Denum type,
403       const void* pixels) {}
404
405   virtual void uniform1f(WebKit::WGC3Dint location, WebKit::WGC3Dfloat x) {}
406   virtual void uniform1fv(
407       WebKit::WGC3Dint location,
408       WebKit::WGC3Dsizei count,
409       const WebKit::WGC3Dfloat* v) {}
410   virtual void uniform1i(WebKit::WGC3Dint location, WebKit::WGC3Dint x) {}
411   virtual void uniform1iv(
412       WebKit::WGC3Dint location,
413       WebKit::WGC3Dsizei count,
414       const WebKit::WGC3Dint* v) {}
415   virtual void uniform2f(
416       WebKit::WGC3Dint location,
417       WebKit::WGC3Dfloat x,
418       WebKit::WGC3Dfloat y) {}
419   virtual void uniform2fv(
420       WebKit::WGC3Dint location,
421       WebKit::WGC3Dsizei count,
422       const WebKit::WGC3Dfloat* v) {}
423   virtual void uniform2i(
424       WebKit::WGC3Dint location,
425       WebKit::WGC3Dint x,
426       WebKit::WGC3Dint y) {}
427   virtual void uniform2iv(
428       WebKit::WGC3Dint location,
429       WebKit::WGC3Dsizei count,
430       const WebKit::WGC3Dint* v) {}
431   virtual void uniform3f(
432       WebKit::WGC3Dint location,
433       WebKit::WGC3Dfloat x,
434       WebKit::WGC3Dfloat y,
435       WebKit::WGC3Dfloat z) {}
436   virtual void uniform3fv(
437       WebKit::WGC3Dint location,
438       WebKit::WGC3Dsizei count,
439       const WebKit::WGC3Dfloat* v) {}
440   virtual void uniform3i(
441       WebKit::WGC3Dint location,
442       WebKit::WGC3Dint x,
443       WebKit::WGC3Dint y,
444       WebKit::WGC3Dint z) {}
445   virtual void uniform3iv(
446       WebKit::WGC3Dint location,
447       WebKit::WGC3Dsizei count,
448       const WebKit::WGC3Dint* v) {}
449   virtual void uniform4f(
450       WebKit::WGC3Dint location,
451       WebKit::WGC3Dfloat x,
452       WebKit::WGC3Dfloat y,
453       WebKit::WGC3Dfloat z,
454       WebKit::WGC3Dfloat w) {}
455   virtual void uniform4fv(
456       WebKit::WGC3Dint location,
457       WebKit::WGC3Dsizei count,
458       const WebKit::WGC3Dfloat* v) {}
459   virtual void uniform4i(
460       WebKit::WGC3Dint location,
461       WebKit::WGC3Dint x,
462       WebKit::WGC3Dint y,
463       WebKit::WGC3Dint z,
464       WebKit::WGC3Dint w) {}
465   virtual void uniform4iv(
466       WebKit::WGC3Dint location,
467       WebKit::WGC3Dsizei count,
468       const WebKit::WGC3Dint* v) {}
469   virtual void uniformMatrix2fv(
470       WebKit::WGC3Dint location,
471       WebKit::WGC3Dsizei count,
472       WebKit::WGC3Dboolean transpose,
473       const WebKit::WGC3Dfloat* value) {}
474   virtual void uniformMatrix3fv(
475       WebKit::WGC3Dint location,
476       WebKit::WGC3Dsizei count,
477       WebKit::WGC3Dboolean transpose,
478       const WebKit::WGC3Dfloat* value) {}
479   virtual void uniformMatrix4fv(
480       WebKit::WGC3Dint location,
481       WebKit::WGC3Dsizei count,
482       WebKit::WGC3Dboolean transpose,
483       const WebKit::WGC3Dfloat* value) {}
484
485   virtual void useProgram(WebKit::WebGLId program);
486   virtual void validateProgram(WebKit::WebGLId program) {}
487
488   virtual void vertexAttrib1f(WebKit::WGC3Duint index, WebKit::WGC3Dfloat x) {}
489   virtual void vertexAttrib1fv(
490       WebKit::WGC3Duint index,
491       const WebKit::WGC3Dfloat* values) {}
492   virtual void vertexAttrib2f(
493       WebKit::WGC3Duint index,
494       WebKit::WGC3Dfloat x,
495       WebKit::WGC3Dfloat y) {}
496   virtual void vertexAttrib2fv(
497       WebKit::WGC3Duint index,
498       const WebKit::WGC3Dfloat* values) {}
499   virtual void vertexAttrib3f(
500       WebKit::WGC3Duint index,
501       WebKit::WGC3Dfloat x,
502       WebKit::WGC3Dfloat y,
503       WebKit::WGC3Dfloat z) {}
504   virtual void vertexAttrib3fv(
505       WebKit::WGC3Duint index,
506       const WebKit::WGC3Dfloat* values) {}
507   virtual void vertexAttrib4f(
508       WebKit::WGC3Duint index,
509       WebKit::WGC3Dfloat x,
510       WebKit::WGC3Dfloat y,
511       WebKit::WGC3Dfloat z,
512       WebKit::WGC3Dfloat w) {}
513   virtual void vertexAttrib4fv(
514       WebKit::WGC3Duint index,
515       const WebKit::WGC3Dfloat* values) {}
516   virtual void vertexAttribPointer(
517       WebKit::WGC3Duint index,
518       WebKit::WGC3Dint size,
519       WebKit::WGC3Denum type,
520       WebKit::WGC3Dboolean normalized,
521       WebKit::WGC3Dsizei stride,
522       WebKit::WGC3Dintptr offset) {}
523
524   virtual void viewport(
525       WebKit::WGC3Dint x,
526       WebKit::WGC3Dint y,
527       WebKit::WGC3Dsizei width,
528       WebKit::WGC3Dsizei height) {}
529
530   virtual void genBuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids);
531   virtual void genFramebuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids);
532   virtual void genRenderbuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids);
533   virtual void genTextures(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids);
534
535   virtual void deleteBuffers(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids);
536   virtual void deleteFramebuffers(
537       WebKit::WGC3Dsizei count, WebKit::WebGLId* ids);
538   virtual void deleteRenderbuffers(
539       WebKit::WGC3Dsizei count, WebKit::WebGLId* ids);
540   virtual void deleteTextures(WebKit::WGC3Dsizei count, WebKit::WebGLId* ids);
541
542   virtual WebKit::WebGLId createBuffer();
543   virtual WebKit::WebGLId createFramebuffer();
544   virtual WebKit::WebGLId createRenderbuffer();
545   virtual WebKit::WebGLId createTexture();
546
547   virtual void deleteBuffer(WebKit::WebGLId id);
548   virtual void deleteFramebuffer(WebKit::WebGLId id);
549   virtual void deleteRenderbuffer(WebKit::WebGLId id);
550   virtual void deleteTexture(WebKit::WebGLId id);
551
552   virtual WebKit::WebGLId createProgram();
553   virtual WebKit::WebGLId createShader(WebKit::WGC3Denum);
554
555   virtual void deleteProgram(WebKit::WebGLId id);
556   virtual void deleteShader(WebKit::WebGLId id);
557
558   virtual void texStorage2DEXT(
559       WebKit::WGC3Denum target,
560       WebKit::WGC3Dint levels,
561       WebKit::WGC3Duint internalformat,
562       WebKit::WGC3Dint width,
563       WebKit::WGC3Dint height) {}
564
565   virtual WebKit::WebGLId createQueryEXT();
566   virtual void deleteQueryEXT(WebKit::WebGLId query) {}
567   virtual WebKit::WGC3Dboolean isQueryEXT(WebKit::WebGLId query);
568   virtual void beginQueryEXT(
569       WebKit::WGC3Denum target,
570       WebKit::WebGLId query) {}
571   virtual void endQueryEXT(WebKit::WGC3Denum target);
572   virtual void getQueryivEXT(
573       WebKit::WGC3Denum target,
574       WebKit::WGC3Denum pname,
575       WebKit::WGC3Dint* params) {}
576   virtual void getQueryObjectuivEXT(
577       WebKit::WebGLId query,
578       WebKit::WGC3Denum pname,
579       WebKit::WGC3Duint* params);
580
581   virtual void setContextLostCallback(
582       WebGraphicsContextLostCallback* callback);
583
584   virtual void loseContextCHROMIUM(WebKit::WGC3Denum current,
585                                    WebKit::WGC3Denum other);
586
587   virtual void drawBuffersEXT(WebKit::WGC3Dsizei m,
588                               const WebKit::WGC3Denum* bufs) {}
589
590   virtual void bindTexImage2DCHROMIUM(WebKit::WGC3Denum target,
591                                       WebKit::WGC3Dint image_id) {}
592
593   // GL_CHROMIUM_gpu_memory_buffer
594   virtual WebKit::WGC3Duint createImageCHROMIUM(
595       WebKit::WGC3Dsizei width,
596       WebKit::WGC3Dsizei height,
597       WebKit::WGC3Denum internalformat);
598   virtual void destroyImageCHROMIUM(WebKit::WGC3Duint image_id) {}
599   virtual void getImageParameterivCHROMIUM(
600       WebKit::WGC3Duint image_id,
601       WebKit::WGC3Denum pname,
602       WebKit::WGC3Dint* params) {}
603   virtual void* mapImageCHROMIUM(
604       WebKit::WGC3Duint image_id,
605       WebKit::WGC3Denum access);
606   virtual void unmapImageCHROMIUM(WebKit::WGC3Duint image_id) {}
607
608  private:
609   DISALLOW_COPY_AND_ASSIGN(FakeWebGraphicsContext3D);
610 };
611
612 }  // namespace cc
613
614 #endif  // CC_TEST_FAKE_WEB_GRAPHICS_CONTEXT_3D_H_