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