Home | History | Annotate | Download | only in compositor
      1 // Copyright (c) 2012 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 UI_COMPOSITOR_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
      6 #define UI_COMPOSITOR_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
      7 
      8 #include "base/logging.h"
      9 #include "base/memory/ref_counted.h"
     10 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
     11 #include "third_party/WebKit/public/platform/WebString.h"
     12 #include "ui/compositor/compositor_export.h"
     13 
     14 namespace gfx {
     15 class GLContext;
     16 class GLSurface;
     17 }
     18 
     19 namespace ui {
     20 
     21 // WebGraphicsContext3D that does nothing. Suitable for testing.
     22 class COMPOSITOR_EXPORT TestWebGraphicsContext3D :
     23     public NON_EXPORTED_BASE(WebKit::WebGraphicsContext3D) {
     24  public:
     25   TestWebGraphicsContext3D();
     26   virtual ~TestWebGraphicsContext3D();
     27 
     28   void Initialize();
     29   virtual bool makeContextCurrent();
     30   virtual int width();
     31   virtual int height();
     32   virtual void reshape(int width, int height) {}
     33   virtual void prepareTexture() {}
     34   virtual void postSubBufferCHROMIUM(int x, int y, int width, int height) {}
     35   virtual void synthesizeGLError(WebKit::WGC3Denum value) {}
     36   virtual bool isContextLost();
     37   virtual void* mapBufferSubDataCHROMIUM(WebKit::WGC3Denum target,
     38                                          WebKit::WGC3Dintptr offset,
     39                                          WebKit::WGC3Dsizeiptr size,
     40                                          WebKit::WGC3Denum access);
     41   virtual void unmapBufferSubDataCHROMIUM(const void* data) {}
     42   virtual void* mapTexSubImage2DCHROMIUM(WebKit::WGC3Denum target,
     43                                          WebKit::WGC3Dint level,
     44                                          WebKit::WGC3Dint xoffset,
     45                                          WebKit::WGC3Dint yoffset,
     46                                          WebKit::WGC3Dsizei width,
     47                                          WebKit::WGC3Dsizei height,
     48                                          WebKit::WGC3Denum format,
     49                                          WebKit::WGC3Denum type,
     50                                          WebKit::WGC3Denum access);
     51   virtual void unmapTexSubImage2DCHROMIUM(const void* data) {}
     52   virtual void setVisibilityCHROMIUM(bool visible) {}
     53   virtual void discardFramebufferEXT(WebKit::WGC3Denum target,
     54                                      WebKit::WGC3Dsizei numAttachments,
     55                                      const WebKit::WGC3Denum* attachments) {}
     56   virtual void setMemoryAllocationChangedCallbackCHROMIUM(
     57       WebGraphicsMemoryAllocationChangedCallbackCHROMIUM*) { }
     58   virtual WebKit::WebString getRequestableExtensionsCHROMIUM();
     59   virtual void requestExtensionCHROMIUM(const char*) {}
     60   virtual void blitFramebufferCHROMIUM(WebKit::WGC3Dint src_x0,
     61                                        WebKit::WGC3Dint src_y0,
     62                                        WebKit::WGC3Dint src_x1,
     63                                        WebKit::WGC3Dint src_y1,
     64                                        WebKit::WGC3Dint dst_x0,
     65                                        WebKit::WGC3Dint dst_y0,
     66                                        WebKit::WGC3Dint dst_x1,
     67                                        WebKit::WGC3Dint dst_y1,
     68                                        WebKit::WGC3Dbitfield mask,
     69                                        WebKit::WGC3Denum filter) {}
     70   virtual void renderbufferStorageMultisampleCHROMIUM(
     71       WebKit::WGC3Denum target,
     72       WebKit::WGC3Dsizei samples,
     73       WebKit::WGC3Denum internalformat,
     74       WebKit::WGC3Dsizei width,
     75       WebKit::WGC3Dsizei height) {}
     76   virtual void activeTexture(WebKit::WGC3Denum texture) {}
     77   virtual void attachShader(WebKit::WebGLId program, WebKit::WebGLId shader) {}
     78   virtual void bindAttribLocation(WebKit::WebGLId program,
     79                                   WebKit::WGC3Duint index,
     80                                   const WebKit::WGC3Dchar* name) {}
     81   virtual void bindBuffer(WebKit::WGC3Denum target, WebKit::WebGLId buffer) {}
     82   virtual void bindFramebuffer(WebKit::WGC3Denum target,
     83                                WebKit::WebGLId framebuffer) {}
     84   virtual void bindRenderbuffer(WebKit::WGC3Denum target,
     85                                 WebKit::WebGLId renderbuffer) {}
     86   virtual void bindTexture(WebKit::WGC3Denum target, WebKit::WebGLId texture) {}
     87   virtual void blendColor(WebKit::WGC3Dclampf red,
     88                           WebKit::WGC3Dclampf green,
     89                           WebKit::WGC3Dclampf blue,
     90                           WebKit::WGC3Dclampf alpha) {}
     91   virtual void blendEquation(WebKit::WGC3Denum mode) {}
     92   virtual void blendEquationSeparate(WebKit::WGC3Denum modeRGB,
     93                                      WebKit::WGC3Denum modeAlpha) {}
     94   virtual void blendFunc(WebKit::WGC3Denum sfactor,
     95                          WebKit::WGC3Denum dfactor) {}
     96   virtual void blendFuncSeparate(WebKit::WGC3Denum src_rgb,
     97                                  WebKit::WGC3Denum dst_rgb,
     98                                  WebKit::WGC3Denum src_alpha,
     99                                  WebKit::WGC3Denum dst_alpha) {}
    100   virtual void bufferData(WebKit::WGC3Denum target,
    101                           WebKit::WGC3Dsizeiptr size,
    102                           const void* data,
    103                           WebKit::WGC3Denum usage) {}
    104   virtual void bufferSubData(WebKit::WGC3Denum target,
    105                              WebKit::WGC3Dintptr offset,
    106                              WebKit::WGC3Dsizeiptr size,
    107                              const void* data) {}
    108   virtual WebKit::WGC3Denum checkFramebufferStatus(WebKit::WGC3Denum target);
    109   virtual void clear(WebKit::WGC3Dbitfield mask) {}
    110   virtual void clearColor(WebKit::WGC3Dclampf red,
    111                           WebKit::WGC3Dclampf green,
    112                           WebKit::WGC3Dclampf blue,
    113                           WebKit::WGC3Dclampf alpha) {}
    114   virtual void clearDepth(WebKit::WGC3Dclampf depth) {}
    115   virtual void clearStencil(WebKit::WGC3Dint s) {}
    116   virtual void colorMask(WebKit::WGC3Dboolean red,
    117                          WebKit::WGC3Dboolean green,
    118                          WebKit::WGC3Dboolean blue,
    119                          WebKit::WGC3Dboolean alpha) {}
    120   virtual void compileShader(WebKit::WebGLId shader) {}
    121   virtual void compressedTexImage2D(WebKit::WGC3Denum target,
    122                                     WebKit::WGC3Dint level,
    123                                     WebKit::WGC3Denum internalformat,
    124                                     WebKit::WGC3Dsizei width,
    125                                     WebKit::WGC3Dsizei height,
    126                                     WebKit::WGC3Dint border,
    127                                     WebKit::WGC3Dsizei imageSize,
    128                                     const void* data) {}
    129   virtual void compressedTexSubImage2D(WebKit::WGC3Denum target,
    130                                        WebKit::WGC3Dint level,
    131                                        WebKit::WGC3Dint xoffset,
    132                                        WebKit::WGC3Dint yoffset,
    133                                        WebKit::WGC3Dsizei width,
    134                                        WebKit::WGC3Dsizei height,
    135                                        WebKit::WGC3Denum format,
    136                                        WebKit::WGC3Dsizei imageSize,
    137                                        const void* data) {}
    138   virtual void copyTexImage2D(WebKit::WGC3Denum target,
    139                               WebKit::WGC3Dint level,
    140                               WebKit::WGC3Denum internal_format,
    141                               WebKit::WGC3Dint x,
    142                               WebKit::WGC3Dint y,
    143                               WebKit::WGC3Dsizei width,
    144                               WebKit::WGC3Dsizei height,
    145                               WebKit::WGC3Dint border) {}
    146   virtual void copyTexSubImage2D(WebKit::WGC3Denum target,
    147                                  WebKit::WGC3Dint level,
    148                                  WebKit::WGC3Dint xoffset,
    149                                  WebKit::WGC3Dint yoffset,
    150                                  WebKit::WGC3Dint x,
    151                                  WebKit::WGC3Dint y,
    152                                  WebKit::WGC3Dsizei width,
    153                                  WebKit::WGC3Dsizei height) {}
    154   virtual void cullFace(WebKit::WGC3Denum mode) {}
    155   virtual void depthFunc(WebKit::WGC3Denum func) {}
    156   virtual void depthMask(WebKit::WGC3Dboolean flag) {}
    157   virtual void depthRange(WebKit::WGC3Dclampf z_near,
    158                           WebKit::WGC3Dclampf z_far) {}
    159   virtual void detachShader(WebKit::WebGLId program, WebKit::WebGLId shader) {}
    160   virtual void disable(WebKit::WGC3Denum cap) {}
    161   virtual void disableVertexAttribArray(WebKit::WGC3Duint index) {}
    162   virtual void drawArrays(WebKit::WGC3Denum mode, WebKit::WGC3Dint first,
    163                           WebKit::WGC3Dsizei count) {}
    164   virtual void drawElements(WebKit::WGC3Denum mode,
    165                             WebKit::WGC3Dsizei count,
    166                             WebKit::WGC3Denum type,
    167                             WebKit::WGC3Dintptr offset) {}
    168   virtual void enable(WebKit::WGC3Denum cap) {}
    169   virtual void enableVertexAttribArray(WebKit::WGC3Duint index) {}
    170   virtual void finish() {}
    171   virtual void flush() {}
    172   virtual void framebufferRenderbuffer(WebKit::WGC3Denum target,
    173                                        WebKit::WGC3Denum attachment,
    174                                        WebKit::WGC3Denum renderbuffertarget,
    175                                        WebKit::WebGLId renderbuffer) {}
    176   virtual void framebufferTexture2D(WebKit::WGC3Denum target,
    177                                     WebKit::WGC3Denum attachment,
    178                                     WebKit::WGC3Denum textarget,
    179                                     WebKit::WebGLId texture,
    180                                     WebKit::WGC3Dint level) {}
    181   virtual void frontFace(WebKit::WGC3Denum mode) {}
    182   virtual void generateMipmap(WebKit::WGC3Denum target) {}
    183   virtual bool getActiveAttrib(WebKit::WebGLId program,
    184                                WebKit::WGC3Duint index,
    185                                ActiveInfo& info);
    186   virtual bool getActiveUniform(WebKit::WebGLId program,
    187                                 WebKit::WGC3Duint index,
    188                                 ActiveInfo& info);
    189   virtual void getAttachedShaders(WebKit::WebGLId program,
    190                                   WebKit::WGC3Dsizei maxCount,
    191                                   WebKit::WGC3Dsizei* count,
    192                                   WebKit::WebGLId* shaders) {}
    193   virtual WebKit::WGC3Dint getAttribLocation(WebKit::WebGLId program,
    194                                              const WebKit::WGC3Dchar* name);
    195   virtual void getBooleanv(WebKit::WGC3Denum pname,
    196                            WebKit::WGC3Dboolean* value) {}
    197   virtual void getBufferParameteriv(WebKit::WGC3Denum target,
    198                                     WebKit::WGC3Denum pname,
    199                                     WebKit::WGC3Dint* value) {}
    200   virtual Attributes getContextAttributes();
    201   virtual WebKit::WGC3Denum getError();
    202   virtual void getFloatv(WebKit::WGC3Denum pname, WebKit::WGC3Dfloat* value) {}
    203   virtual void getFramebufferAttachmentParameteriv(WebKit::WGC3Denum target,
    204                                                    WebKit::WGC3Denum attachment,
    205                                                    WebKit::WGC3Denum pname,
    206                                                    WebKit::WGC3Dint* value) {}
    207   virtual void getIntegerv(WebKit::WGC3Denum pname, WebKit::WGC3Dint* value);
    208   virtual void getProgramiv(WebKit::WebGLId program,
    209                             WebKit::WGC3Denum pname,
    210                             WebKit::WGC3Dint* value);
    211   virtual WebKit::WebString getProgramInfoLog(WebKit::WebGLId program);
    212   virtual void getRenderbufferParameteriv(WebKit::WGC3Denum target,
    213                                           WebKit::WGC3Denum pname,
    214                                           WebKit::WGC3Dint* value) {}
    215   virtual void getShaderiv(WebKit::WebGLId shader,
    216                            WebKit::WGC3Denum pname,
    217                            WebKit::WGC3Dint* value);
    218   virtual WebKit::WebString getShaderInfoLog(WebKit::WebGLId shader);
    219   virtual void getShaderPrecisionFormat(WebKit::WGC3Denum shaderType,
    220                                         WebKit::WGC3Denum precisionType,
    221                                         WebKit::WGC3Dint* range,
    222                                         WebKit::WGC3Dint* precision) {}
    223   virtual WebKit::WebString getShaderSource(WebKit::WebGLId shader);
    224   virtual WebKit::WebString getString(WebKit::WGC3Denum name);
    225   virtual void getTexParameterfv(WebKit::WGC3Denum target,
    226                                  WebKit::WGC3Denum pname,
    227                                  WebKit::WGC3Dfloat* value) {}
    228   virtual void getTexParameteriv(WebKit::WGC3Denum target,
    229                                  WebKit::WGC3Denum pname,
    230                                  WebKit::WGC3Dint* value) {}
    231   virtual void getUniformfv(WebKit::WebGLId program,
    232                             WebKit::WGC3Dint location,
    233                             WebKit::WGC3Dfloat* value) {}
    234   virtual void getUniformiv(WebKit::WebGLId program,
    235                             WebKit::WGC3Dint location,
    236                             WebKit::WGC3Dint* value) {}
    237   virtual WebKit::WGC3Dint getUniformLocation(WebKit::WebGLId program,
    238                                               const WebKit::WGC3Dchar* name);
    239   virtual void getVertexAttribfv(WebKit::WGC3Duint index,
    240                                  WebKit::WGC3Denum pname,
    241                                  WebKit::WGC3Dfloat* value) {}
    242   virtual void getVertexAttribiv(WebKit::WGC3Duint index,
    243                                  WebKit::WGC3Denum pname,
    244                                  WebKit::WGC3Dint* value) {}
    245   virtual WebKit::WGC3Dsizeiptr getVertexAttribOffset(WebKit::WGC3Duint index,
    246                                                       WebKit::WGC3Denum pname);
    247   virtual void hint(WebKit::WGC3Denum target, WebKit::WGC3Denum mode) {}
    248   virtual WebKit::WGC3Dboolean isBuffer(WebKit::WebGLId buffer);
    249   virtual WebKit::WGC3Dboolean isEnabled(WebKit::WGC3Denum cap);
    250   virtual WebKit::WGC3Dboolean isFramebuffer(WebKit::WebGLId framebuffer);
    251   virtual WebKit::WGC3Dboolean isProgram(WebKit::WebGLId program);
    252   virtual WebKit::WGC3Dboolean isRenderbuffer(WebKit::WebGLId renderbuffer);
    253   virtual WebKit::WGC3Dboolean isShader(WebKit::WebGLId shader);
    254   virtual WebKit::WGC3Dboolean isTexture(WebKit::WebGLId texture);
    255   virtual void lineWidth(WebKit::WGC3Dfloat) {}
    256   virtual void linkProgram(WebKit::WebGLId program) {}
    257   virtual void pixelStorei(WebKit::WGC3Denum pname, WebKit::WGC3Dint param) {}
    258   virtual void polygonOffset(WebKit::WGC3Dfloat factor,
    259                              WebKit::WGC3Dfloat units) {}
    260   virtual void readPixels(WebKit::WGC3Dint x,
    261                           WebKit::WGC3Dint y,
    262                           WebKit::WGC3Dsizei width,
    263                           WebKit::WGC3Dsizei height,
    264                           WebKit::WGC3Denum format,
    265                           WebKit::WGC3Denum type,
    266                           void* pixels) {}
    267   virtual void releaseShaderCompiler() {}
    268   virtual void renderbufferStorage(WebKit::WGC3Denum target,
    269                                    WebKit::WGC3Denum internalformat,
    270                                    WebKit::WGC3Dsizei width,
    271                                    WebKit::WGC3Dsizei height) {}
    272   virtual void sampleCoverage(WebKit::WGC3Dclampf value,
    273                               WebKit::WGC3Dboolean invert) {}
    274   virtual void scissor(WebKit::WGC3Dint x,
    275                        WebKit::WGC3Dint y,
    276                        WebKit::WGC3Dsizei width,
    277                        WebKit::WGC3Dsizei height) {}
    278   virtual void shaderSource(WebKit::WebGLId shader,
    279                             const WebKit::WGC3Dchar* string) {}
    280   virtual void stencilFunc(WebKit::WGC3Denum func,
    281                            WebKit::WGC3Dint ref,
    282                            WebKit::WGC3Duint mask) {}
    283   virtual void stencilFuncSeparate(WebKit::WGC3Denum face,
    284                                    WebKit::WGC3Denum func,
    285                                    WebKit::WGC3Dint ref,
    286                                    WebKit::WGC3Duint mask) {}
    287   virtual void stencilMask(WebKit::WGC3Duint mask) {}
    288   virtual void stencilMaskSeparate(WebKit::WGC3Denum face,
    289                                    WebKit::WGC3Duint mask) {}
    290   virtual void stencilOp(WebKit::WGC3Denum fail,
    291                          WebKit::WGC3Denum zfail,
    292                          WebKit::WGC3Denum zpass) {}
    293   virtual void stencilOpSeparate(WebKit::WGC3Denum face,
    294                                  WebKit::WGC3Denum fail,
    295                                  WebKit::WGC3Denum zfail,
    296                                  WebKit::WGC3Denum zpass) {}
    297   virtual void texImage2D(WebKit::WGC3Denum target,
    298                           WebKit::WGC3Dint level,
    299                           WebKit::WGC3Denum internal_format,
    300                           WebKit::WGC3Dsizei width,
    301                           WebKit::WGC3Dsizei height,
    302                           WebKit::WGC3Dint border,
    303                           WebKit::WGC3Denum format,
    304                           WebKit::WGC3Denum type,
    305                           const void* pixels) {}
    306   virtual void texParameterf(WebKit::WGC3Denum target,
    307                              WebKit::WGC3Denum pname,
    308                              WebKit::WGC3Dfloat param) {}
    309   virtual void texParameteri(WebKit::WGC3Denum target,
    310                              WebKit::WGC3Denum pname,
    311                              WebKit::WGC3Dint param) {}
    312   virtual void texSubImage2D(WebKit::WGC3Denum target,
    313                              WebKit::WGC3Dint level,
    314                              WebKit::WGC3Dint xoffset,
    315                              WebKit::WGC3Dint yoffset,
    316                              WebKit::WGC3Dsizei width,
    317                              WebKit::WGC3Dsizei height,
    318                              WebKit::WGC3Denum format,
    319                              WebKit::WGC3Denum type,
    320                              const void* pixels) {}
    321   virtual void uniform1f(WebKit::WGC3Dint location, WebKit::WGC3Dfloat x) {}
    322   virtual void uniform1fv(WebKit::WGC3Dint location,
    323                           WebKit::WGC3Dsizei count,
    324                           const WebKit::WGC3Dfloat* v) {}
    325   virtual void uniform1i(WebKit::WGC3Dint location, WebKit::WGC3Dint x) {}
    326   virtual void uniform1iv(WebKit::WGC3Dint location,
    327                           WebKit::WGC3Dsizei count,
    328                           const WebKit::WGC3Dint* v) {}
    329   virtual void uniform2f(WebKit::WGC3Dint location,
    330                          WebKit::WGC3Dfloat x,
    331                          WebKit::WGC3Dfloat y) {}
    332   virtual void uniform2fv(WebKit::WGC3Dint location,
    333                           WebKit::WGC3Dsizei count,
    334                           const WebKit::WGC3Dfloat* v) {}
    335   virtual void uniform2i(WebKit::WGC3Dint location,
    336                          WebKit::WGC3Dint x,
    337                          WebKit::WGC3Dint y) {}
    338   virtual void uniform2iv(WebKit::WGC3Dint location,
    339                           WebKit::WGC3Dsizei count,
    340                           const WebKit::WGC3Dint* v) {}
    341   virtual void uniform3f(WebKit::WGC3Dint location,
    342                          WebKit::WGC3Dfloat x,
    343                          WebKit::WGC3Dfloat y,
    344                          WebKit::WGC3Dfloat z) {}
    345   virtual void uniform3fv(WebKit::WGC3Dint location,
    346                           WebKit::WGC3Dsizei count,
    347                           const WebKit::WGC3Dfloat* v) {}
    348   virtual void uniform3i(WebKit::WGC3Dint location,
    349                          WebKit::WGC3Dint x,
    350                          WebKit::WGC3Dint y,
    351                          WebKit::WGC3Dint z) {}
    352   virtual void uniform3iv(WebKit::WGC3Dint location,
    353                           WebKit::WGC3Dsizei count,
    354                           const WebKit::WGC3Dint* v) {}
    355   virtual void uniform4f(WebKit::WGC3Dint location,
    356                          WebKit::WGC3Dfloat x,
    357                          WebKit::WGC3Dfloat y,
    358                          WebKit::WGC3Dfloat z,
    359                          WebKit::WGC3Dfloat w) {}
    360   virtual void uniform4fv(WebKit::WGC3Dint location,
    361                           WebKit::WGC3Dsizei count,
    362                           const WebKit::WGC3Dfloat* v) {}
    363   virtual void uniform4i(WebKit::WGC3Dint location,
    364                          WebKit::WGC3Dint x,
    365                          WebKit::WGC3Dint y,
    366                          WebKit::WGC3Dint z,
    367                          WebKit::WGC3Dint w) {}
    368   virtual void uniform4iv(WebKit::WGC3Dint location,
    369                           WebKit::WGC3Dsizei count,
    370                           const WebKit::WGC3Dint* v) {}
    371   virtual void uniformMatrix2fv(WebKit::WGC3Dint location,
    372                                 WebKit::WGC3Dsizei count,
    373                                 WebKit::WGC3Dboolean transpose,
    374                                 const WebKit::WGC3Dfloat* value) {}
    375   virtual void uniformMatrix3fv(WebKit::WGC3Dint location,
    376                                 WebKit::WGC3Dsizei count,
    377                                 WebKit::WGC3Dboolean transpose,
    378                                 const WebKit::WGC3Dfloat* value) {}
    379   virtual void uniformMatrix4fv(WebKit::WGC3Dint location,
    380                                 WebKit::WGC3Dsizei count,
    381                                 WebKit::WGC3Dboolean transpose,
    382                                 const WebKit::WGC3Dfloat* value) {}
    383   virtual void useProgram(WebKit::WebGLId program) {}
    384   virtual void validateProgram(WebKit::WebGLId program) {}
    385   virtual void vertexAttrib1f(WebKit::WGC3Duint index, WebKit::WGC3Dfloat x) {}
    386   virtual void vertexAttrib1fv(WebKit::WGC3Duint index,
    387                                const WebKit::WGC3Dfloat* values) {}
    388   virtual void vertexAttrib2f(WebKit::WGC3Duint index,
    389                               WebKit::WGC3Dfloat x,
    390                               WebKit::WGC3Dfloat y) {}
    391   virtual void vertexAttrib2fv(WebKit::WGC3Duint index,
    392                                const WebKit::WGC3Dfloat* values) {}
    393   virtual void vertexAttrib3f(WebKit::WGC3Duint index,
    394                               WebKit::WGC3Dfloat x,
    395                               WebKit::WGC3Dfloat y,
    396                               WebKit::WGC3Dfloat z) {}
    397   virtual void vertexAttrib3fv(WebKit::WGC3Duint index,
    398                                const WebKit::WGC3Dfloat* values) {}
    399   virtual void vertexAttrib4f(WebKit::WGC3Duint index,
    400                               WebKit::WGC3Dfloat x,
    401                               WebKit::WGC3Dfloat y,
    402                               WebKit::WGC3Dfloat z,
    403                               WebKit::WGC3Dfloat w) {}
    404   virtual void vertexAttrib4fv(WebKit::WGC3Duint index,
    405                                const WebKit::WGC3Dfloat* values) {}
    406   virtual void vertexAttribPointer(WebKit::WGC3Duint index,
    407                                    WebKit::WGC3Dint size,
    408                                    WebKit::WGC3Denum type,
    409                                    WebKit::WGC3Dboolean normalized,
    410                                    WebKit::WGC3Dsizei stride,
    411                                    WebKit::WGC3Dintptr offset) {}
    412   virtual void viewport(WebKit::WGC3Dint x,
    413                         WebKit::WGC3Dint y,
    414                         WebKit::WGC3Dsizei width,
    415                         WebKit::WGC3Dsizei height) {}
    416   virtual WebKit::WebGLId createBuffer();
    417   virtual WebKit::WebGLId createFramebuffer();
    418   virtual WebKit::WebGLId createProgram();
    419   virtual WebKit::WebGLId createRenderbuffer();
    420   virtual WebKit::WebGLId createShader(WebKit::WGC3Denum value);
    421   virtual WebKit::WebGLId createTexture();
    422   virtual void deleteBuffer(WebKit::WebGLId) {}
    423   virtual void deleteFramebuffer(WebKit::WebGLId) {}
    424   virtual void deleteProgram(WebKit::WebGLId) {}
    425   virtual void deleteRenderbuffer(WebKit::WebGLId) {}
    426   virtual void deleteShader(WebKit::WebGLId) {}
    427   virtual void deleteTexture(WebKit::WebGLId) {}
    428   virtual WebKit::WebGLId createQueryEXT();
    429   virtual void deleteQueryEXT(WebKit::WebGLId) {};
    430   virtual WebKit::WGC3Dboolean isQueryEXT(WebKit::WebGLId query);
    431   virtual void beginQueryEXT(WebKit::WGC3Denum, WebKit::WebGLId) {}
    432   virtual void endQueryEXT(WebKit::WGC3Denum) {}
    433   virtual void getQueryivEXT(WebKit::WGC3Denum,
    434                              WebKit::WGC3Denum,
    435                              WebKit::WGC3Dint*) {}
    436   virtual void getQueryObjectuivEXT(WebKit::WebGLId,
    437                                     WebKit::WGC3Denum,
    438                                     WebKit::WGC3Duint*) {}
    439 
    440  private:
    441   scoped_refptr<gfx::GLContext> gl_context_;
    442   scoped_refptr<gfx::GLSurface> gl_surface_;
    443   unsigned next_texture_id_;
    444 
    445   DISALLOW_COPY_AND_ASSIGN(TestWebGraphicsContext3D);
    446 };
    447 
    448 }  // namespace ui
    449 
    450 #endif  // UI_COMPOSITOR_TEST_WEB_GRAPHICS_CONTEXT_3D_H_
    451