• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2011 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer.
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25 
26 #ifndef MockWebGraphicsContext3D_h
27 #define MockWebGraphicsContext3D_h
28 
29 #include "platform/PlatformExport.h"
30 #include "public/platform/WebGraphicsContext3D.h"
31 
32 namespace blink {
33 
34 // WebGraphicsContext3D base class for use in WebKit unit tests.
35 // All operations are no-ops (returning 0 if necessary).
36 class MockWebGraphicsContext3D : public WebGraphicsContext3D {
37 public:
MockWebGraphicsContext3D()38     MockWebGraphicsContext3D()
39         : m_nextTextureId(1)
40         , m_contextLost(false)
41     {
42     }
43 
prepareTexture()44     virtual void prepareTexture() { }
45 
postSubBufferCHROMIUM(int x,int y,int width,int height)46     virtual void postSubBufferCHROMIUM(int x, int y, int width, int height) { }
47 
synthesizeGLError(WGC3Denum)48     virtual void synthesizeGLError(WGC3Denum) { }
49 
isContextLost()50     virtual bool isContextLost() { return m_contextLost; }
51 
mapBufferSubDataCHROMIUM(WGC3Denum target,WGC3Dintptr offset,WGC3Dsizeiptr size,WGC3Denum access)52     virtual void* mapBufferSubDataCHROMIUM(WGC3Denum target, WGC3Dintptr offset, WGC3Dsizeiptr size, WGC3Denum access) { return 0; }
unmapBufferSubDataCHROMIUM(const void *)53     virtual void unmapBufferSubDataCHROMIUM(const void*) { }
mapTexSubImage2DCHROMIUM(WGC3Denum target,WGC3Dint level,WGC3Dint xoffset,WGC3Dint yoffset,WGC3Dsizei width,WGC3Dsizei height,WGC3Denum format,WGC3Denum type,WGC3Denum access)54     virtual void* mapTexSubImage2DCHROMIUM(WGC3Denum target, WGC3Dint level, WGC3Dint xoffset, WGC3Dint yoffset, WGC3Dsizei width, WGC3Dsizei height, WGC3Denum format, WGC3Denum type, WGC3Denum access) { return 0; }
unmapTexSubImage2DCHROMIUM(const void *)55     virtual void unmapTexSubImage2DCHROMIUM(const void*) { }
56 
setVisibilityCHROMIUM(bool visible)57     virtual void setVisibilityCHROMIUM(bool visible) { }
58 
discardFramebufferEXT(WGC3Denum target,WGC3Dsizei numAttachments,const WGC3Denum * attachments)59     virtual void discardFramebufferEXT(WGC3Denum target, WGC3Dsizei numAttachments, const WGC3Denum* attachments) { }
ensureFramebufferCHROMIUM()60     virtual void ensureFramebufferCHROMIUM() { }
61 
getRequestableExtensionsCHROMIUM()62     virtual WebString getRequestableExtensionsCHROMIUM() { return WebString(); }
requestExtensionCHROMIUM(const char *)63     virtual void requestExtensionCHROMIUM(const char*) { }
64 
blitFramebufferCHROMIUM(WGC3Dint srcX0,WGC3Dint srcY0,WGC3Dint srcX1,WGC3Dint srcY1,WGC3Dint dstX0,WGC3Dint dstY0,WGC3Dint dstX1,WGC3Dint dstY1,WGC3Dbitfield mask,WGC3Denum filter)65     virtual void blitFramebufferCHROMIUM(WGC3Dint srcX0, WGC3Dint srcY0, WGC3Dint srcX1, WGC3Dint srcY1, WGC3Dint dstX0, WGC3Dint dstY0, WGC3Dint dstX1, WGC3Dint dstY1, WGC3Dbitfield mask, WGC3Denum filter) { }
renderbufferStorageMultisampleCHROMIUM(WGC3Denum target,WGC3Dsizei samples,WGC3Denum internalformat,WGC3Dsizei width,WGC3Dsizei height)66     virtual void renderbufferStorageMultisampleCHROMIUM(WGC3Denum target, WGC3Dsizei samples, WGC3Denum internalformat, WGC3Dsizei width, WGC3Dsizei height) { }
67 
activeTexture(WGC3Denum texture)68     virtual void activeTexture(WGC3Denum texture) { }
attachShader(WebGLId program,WebGLId shader)69     virtual void attachShader(WebGLId program, WebGLId shader) { }
bindAttribLocation(WebGLId program,WGC3Duint index,const WGC3Dchar * name)70     virtual void bindAttribLocation(WebGLId program, WGC3Duint index, const WGC3Dchar* name) { }
bindBuffer(WGC3Denum target,WebGLId buffer)71     virtual void bindBuffer(WGC3Denum target, WebGLId buffer) { }
bindFramebuffer(WGC3Denum target,WebGLId framebuffer)72     virtual void bindFramebuffer(WGC3Denum target, WebGLId framebuffer) { }
bindRenderbuffer(WGC3Denum target,WebGLId renderbuffer)73     virtual void bindRenderbuffer(WGC3Denum target, WebGLId renderbuffer) { }
bindTexture(WGC3Denum target,WebGLId texture)74     virtual void bindTexture(WGC3Denum target, WebGLId texture) { }
blendColor(WGC3Dclampf red,WGC3Dclampf green,WGC3Dclampf blue,WGC3Dclampf alpha)75     virtual void blendColor(WGC3Dclampf red, WGC3Dclampf green, WGC3Dclampf blue, WGC3Dclampf alpha) { }
blendEquation(WGC3Denum mode)76     virtual void blendEquation(WGC3Denum mode) { }
blendEquationSeparate(WGC3Denum modeRGB,WGC3Denum modeAlpha)77     virtual void blendEquationSeparate(WGC3Denum modeRGB, WGC3Denum modeAlpha) { }
blendFunc(WGC3Denum sfactor,WGC3Denum dfactor)78     virtual void blendFunc(WGC3Denum sfactor, WGC3Denum dfactor) { }
blendFuncSeparate(WGC3Denum srcRGB,WGC3Denum dstRGB,WGC3Denum srcAlpha,WGC3Denum dstAlpha)79     virtual void blendFuncSeparate(WGC3Denum srcRGB, WGC3Denum dstRGB, WGC3Denum srcAlpha, WGC3Denum dstAlpha) { }
80 
bufferData(WGC3Denum target,WGC3Dsizeiptr size,const void * data,WGC3Denum usage)81     virtual void bufferData(WGC3Denum target, WGC3Dsizeiptr size, const void* data, WGC3Denum usage) { }
bufferSubData(WGC3Denum target,WGC3Dintptr offset,WGC3Dsizeiptr size,const void * data)82     virtual void bufferSubData(WGC3Denum target, WGC3Dintptr offset, WGC3Dsizeiptr size, const void* data) { }
83 
checkFramebufferStatus(WGC3Denum target)84     virtual WGC3Denum checkFramebufferStatus(WGC3Denum target)
85     {
86         return GL_FRAMEBUFFER_COMPLETE;
87     }
88 
clear(WGC3Dbitfield mask)89     virtual void clear(WGC3Dbitfield mask) { }
clearColor(WGC3Dclampf red,WGC3Dclampf green,WGC3Dclampf blue,WGC3Dclampf alpha)90     virtual void clearColor(WGC3Dclampf red, WGC3Dclampf green, WGC3Dclampf blue, WGC3Dclampf alpha) { }
clearDepth(WGC3Dclampf depth)91     virtual void clearDepth(WGC3Dclampf depth) { }
clearStencil(WGC3Dint s)92     virtual void clearStencil(WGC3Dint s) { }
colorMask(WGC3Dboolean red,WGC3Dboolean green,WGC3Dboolean blue,WGC3Dboolean alpha)93     virtual void colorMask(WGC3Dboolean red, WGC3Dboolean green, WGC3Dboolean blue, WGC3Dboolean alpha) { }
compileShader(WebGLId shader)94     virtual void compileShader(WebGLId shader) { }
95 
compressedTexImage2D(WGC3Denum target,WGC3Dint level,WGC3Denum internalformat,WGC3Dsizei width,WGC3Dsizei height,WGC3Dint border,WGC3Dsizei imageSize,const void * data)96     virtual void compressedTexImage2D(WGC3Denum target, WGC3Dint level, WGC3Denum internalformat, WGC3Dsizei width, WGC3Dsizei height, WGC3Dint border, WGC3Dsizei imageSize, const void* data) { }
compressedTexSubImage2D(WGC3Denum target,WGC3Dint level,WGC3Dint xoffset,WGC3Dint yoffset,WGC3Dsizei width,WGC3Dsizei height,WGC3Denum format,WGC3Dsizei imageSize,const void * data)97     virtual void compressedTexSubImage2D(WGC3Denum target, WGC3Dint level, WGC3Dint xoffset, WGC3Dint yoffset, WGC3Dsizei width, WGC3Dsizei height, WGC3Denum format, WGC3Dsizei imageSize, const void* data) { }
copyTexImage2D(WGC3Denum target,WGC3Dint level,WGC3Denum internalformat,WGC3Dint x,WGC3Dint y,WGC3Dsizei width,WGC3Dsizei height,WGC3Dint border)98     virtual void copyTexImage2D(WGC3Denum target, WGC3Dint level, WGC3Denum internalformat, WGC3Dint x, WGC3Dint y, WGC3Dsizei width, WGC3Dsizei height, WGC3Dint border) { }
copyTexSubImage2D(WGC3Denum target,WGC3Dint level,WGC3Dint xoffset,WGC3Dint yoffset,WGC3Dint x,WGC3Dint y,WGC3Dsizei width,WGC3Dsizei height)99     virtual void copyTexSubImage2D(WGC3Denum target, WGC3Dint level, WGC3Dint xoffset, WGC3Dint yoffset, WGC3Dint x, WGC3Dint y, WGC3Dsizei width, WGC3Dsizei height) { }
cullFace(WGC3Denum mode)100     virtual void cullFace(WGC3Denum mode) { }
depthFunc(WGC3Denum func)101     virtual void depthFunc(WGC3Denum func) { }
depthMask(WGC3Dboolean flag)102     virtual void depthMask(WGC3Dboolean flag) { }
depthRange(WGC3Dclampf zNear,WGC3Dclampf zFar)103     virtual void depthRange(WGC3Dclampf zNear, WGC3Dclampf zFar) { }
detachShader(WebGLId program,WebGLId shader)104     virtual void detachShader(WebGLId program, WebGLId shader) { }
disable(WGC3Denum cap)105     virtual void disable(WGC3Denum cap) { }
disableVertexAttribArray(WGC3Duint index)106     virtual void disableVertexAttribArray(WGC3Duint index) { }
drawArrays(WGC3Denum mode,WGC3Dint first,WGC3Dsizei count)107     virtual void drawArrays(WGC3Denum mode, WGC3Dint first, WGC3Dsizei count) { }
drawElements(WGC3Denum mode,WGC3Dsizei count,WGC3Denum type,WGC3Dintptr offset)108     virtual void drawElements(WGC3Denum mode, WGC3Dsizei count, WGC3Denum type, WGC3Dintptr offset) { }
109 
enable(WGC3Denum cap)110     virtual void enable(WGC3Denum cap) { }
enableVertexAttribArray(WGC3Duint index)111     virtual void enableVertexAttribArray(WGC3Duint index) { }
finish()112     virtual void finish() { }
flush()113     virtual void flush() { }
framebufferRenderbuffer(WGC3Denum target,WGC3Denum attachment,WGC3Denum renderbuffertarget,WebGLId renderbuffer)114     virtual void framebufferRenderbuffer(WGC3Denum target, WGC3Denum attachment, WGC3Denum renderbuffertarget, WebGLId renderbuffer) { }
framebufferTexture2D(WGC3Denum target,WGC3Denum attachment,WGC3Denum textarget,WebGLId texture,WGC3Dint level)115     virtual void framebufferTexture2D(WGC3Denum target, WGC3Denum attachment, WGC3Denum textarget, WebGLId texture, WGC3Dint level) { }
frontFace(WGC3Denum mode)116     virtual void frontFace(WGC3Denum mode) { }
generateMipmap(WGC3Denum target)117     virtual void generateMipmap(WGC3Denum target) { }
118 
getActiveAttrib(WebGLId program,WGC3Duint index,ActiveInfo &)119     virtual bool getActiveAttrib(WebGLId program, WGC3Duint index, ActiveInfo&) { return false; }
getActiveUniform(WebGLId program,WGC3Duint index,ActiveInfo &)120     virtual bool getActiveUniform(WebGLId program, WGC3Duint index, ActiveInfo&) { return false; }
getAttachedShaders(WebGLId program,WGC3Dsizei maxCount,WGC3Dsizei * count,WebGLId * shaders)121     virtual void getAttachedShaders(WebGLId program, WGC3Dsizei maxCount, WGC3Dsizei* count, WebGLId* shaders) { }
getAttribLocation(WebGLId program,const WGC3Dchar * name)122     virtual WGC3Dint getAttribLocation(WebGLId program, const WGC3Dchar* name) { return 0; }
getBooleanv(WGC3Denum pname,WGC3Dboolean * value)123     virtual void getBooleanv(WGC3Denum pname, WGC3Dboolean* value) { }
getBufferParameteriv(WGC3Denum target,WGC3Denum pname,WGC3Dint * value)124     virtual void getBufferParameteriv(WGC3Denum target, WGC3Denum pname, WGC3Dint* value) { }
getContextAttributes()125     virtual Attributes getContextAttributes() { return m_attrs; }
getError()126     virtual WGC3Denum getError() { return 0; }
getFloatv(WGC3Denum pname,WGC3Dfloat * value)127     virtual void getFloatv(WGC3Denum pname, WGC3Dfloat* value) { }
getFramebufferAttachmentParameteriv(WGC3Denum target,WGC3Denum attachment,WGC3Denum pname,WGC3Dint * value)128     virtual void getFramebufferAttachmentParameteriv(WGC3Denum target, WGC3Denum attachment, WGC3Denum pname, WGC3Dint* value) { }
129 
getIntegerv(WGC3Denum pname,WGC3Dint * value)130     virtual void getIntegerv(WGC3Denum pname, WGC3Dint* value)
131     {
132         if (pname == GL_MAX_TEXTURE_SIZE)
133             *value = 1024;
134     }
135 
getProgramiv(WebGLId program,WGC3Denum pname,WGC3Dint * value)136     virtual void getProgramiv(WebGLId program, WGC3Denum pname, WGC3Dint* value)
137     {
138         if (pname == GL_LINK_STATUS)
139             *value = 1;
140     }
141 
getProgramInfoLog(WebGLId program)142     virtual WebString getProgramInfoLog(WebGLId program) { return WebString(); }
getRenderbufferParameteriv(WGC3Denum target,WGC3Denum pname,WGC3Dint * value)143     virtual void getRenderbufferParameteriv(WGC3Denum target, WGC3Denum pname, WGC3Dint* value) { }
144 
getShaderiv(WebGLId shader,WGC3Denum pname,WGC3Dint * value)145     virtual void getShaderiv(WebGLId shader, WGC3Denum pname, WGC3Dint* value)
146     {
147         if (pname == GL_COMPILE_STATUS)
148             *value = 1;
149     }
150 
getShaderInfoLog(WebGLId shader)151     virtual WebString getShaderInfoLog(WebGLId shader) { return WebString(); }
getShaderPrecisionFormat(WGC3Denum shadertype,WGC3Denum precisiontype,WGC3Dint * range,WGC3Dint * precision)152     virtual void getShaderPrecisionFormat(WGC3Denum shadertype, WGC3Denum precisiontype, WGC3Dint* range, WGC3Dint* precision) { }
getShaderSource(WebGLId shader)153     virtual WebString getShaderSource(WebGLId shader) { return WebString(); }
getString(WGC3Denum name)154     virtual WebString getString(WGC3Denum name) { return WebString(); }
getTexParameterfv(WGC3Denum target,WGC3Denum pname,WGC3Dfloat * value)155     virtual void getTexParameterfv(WGC3Denum target, WGC3Denum pname, WGC3Dfloat* value) { }
getTexParameteriv(WGC3Denum target,WGC3Denum pname,WGC3Dint * value)156     virtual void getTexParameteriv(WGC3Denum target, WGC3Denum pname, WGC3Dint* value) { }
getUniformfv(WebGLId program,WGC3Dint location,WGC3Dfloat * value)157     virtual void getUniformfv(WebGLId program, WGC3Dint location, WGC3Dfloat* value) { }
getUniformiv(WebGLId program,WGC3Dint location,WGC3Dint * value)158     virtual void getUniformiv(WebGLId program, WGC3Dint location, WGC3Dint* value) { }
getUniformLocation(WebGLId program,const WGC3Dchar * name)159     virtual WGC3Dint getUniformLocation(WebGLId program, const WGC3Dchar* name) { return 0; }
getVertexAttribfv(WGC3Duint index,WGC3Denum pname,WGC3Dfloat * value)160     virtual void getVertexAttribfv(WGC3Duint index, WGC3Denum pname, WGC3Dfloat* value) { }
getVertexAttribiv(WGC3Duint index,WGC3Denum pname,WGC3Dint * value)161     virtual void getVertexAttribiv(WGC3Duint index, WGC3Denum pname, WGC3Dint* value) { }
getVertexAttribOffset(WGC3Duint index,WGC3Denum pname)162     virtual WGC3Dsizeiptr getVertexAttribOffset(WGC3Duint index, WGC3Denum pname) { return 0; }
163 
hint(WGC3Denum target,WGC3Denum mode)164     virtual void hint(WGC3Denum target, WGC3Denum mode) { }
isBuffer(WebGLId buffer)165     virtual WGC3Dboolean isBuffer(WebGLId buffer) { return false; }
isEnabled(WGC3Denum cap)166     virtual WGC3Dboolean isEnabled(WGC3Denum cap) { return false; }
isFramebuffer(WebGLId framebuffer)167     virtual WGC3Dboolean isFramebuffer(WebGLId framebuffer) { return false; }
isProgram(WebGLId program)168     virtual WGC3Dboolean isProgram(WebGLId program) { return false; }
isRenderbuffer(WebGLId renderbuffer)169     virtual WGC3Dboolean isRenderbuffer(WebGLId renderbuffer) { return false; }
isShader(WebGLId shader)170     virtual WGC3Dboolean isShader(WebGLId shader) { return false; }
isTexture(WebGLId texture)171     virtual WGC3Dboolean isTexture(WebGLId texture) { return false; }
lineWidth(WGC3Dfloat)172     virtual void lineWidth(WGC3Dfloat) { }
linkProgram(WebGLId program)173     virtual void linkProgram(WebGLId program) { }
pixelStorei(WGC3Denum pname,WGC3Dint param)174     virtual void pixelStorei(WGC3Denum pname, WGC3Dint param) { }
polygonOffset(WGC3Dfloat factor,WGC3Dfloat units)175     virtual void polygonOffset(WGC3Dfloat factor, WGC3Dfloat units) { }
176 
readPixels(WGC3Dint x,WGC3Dint y,WGC3Dsizei width,WGC3Dsizei height,WGC3Denum format,WGC3Denum type,void * pixels)177     virtual void readPixels(WGC3Dint x, WGC3Dint y, WGC3Dsizei width, WGC3Dsizei height, WGC3Denum format, WGC3Denum type, void* pixels) { }
178 
releaseShaderCompiler()179     virtual void releaseShaderCompiler() { }
180 
renderbufferStorage(WGC3Denum target,WGC3Denum internalformat,WGC3Dsizei width,WGC3Dsizei height)181     virtual void renderbufferStorage(WGC3Denum target, WGC3Denum internalformat, WGC3Dsizei width, WGC3Dsizei height) { }
sampleCoverage(WGC3Dclampf value,WGC3Dboolean invert)182     virtual void sampleCoverage(WGC3Dclampf value, WGC3Dboolean invert) { }
scissor(WGC3Dint x,WGC3Dint y,WGC3Dsizei width,WGC3Dsizei height)183     virtual void scissor(WGC3Dint x, WGC3Dint y, WGC3Dsizei width, WGC3Dsizei height) { }
shaderSource(WebGLId shader,const WGC3Dchar * string)184     virtual void shaderSource(WebGLId shader, const WGC3Dchar* string) { }
stencilFunc(WGC3Denum func,WGC3Dint ref,WGC3Duint mask)185     virtual void stencilFunc(WGC3Denum func, WGC3Dint ref, WGC3Duint mask) { }
stencilFuncSeparate(WGC3Denum face,WGC3Denum func,WGC3Dint ref,WGC3Duint mask)186     virtual void stencilFuncSeparate(WGC3Denum face, WGC3Denum func, WGC3Dint ref, WGC3Duint mask) { }
stencilMask(WGC3Duint mask)187     virtual void stencilMask(WGC3Duint mask) { }
stencilMaskSeparate(WGC3Denum face,WGC3Duint mask)188     virtual void stencilMaskSeparate(WGC3Denum face, WGC3Duint mask) { }
stencilOp(WGC3Denum fail,WGC3Denum zfail,WGC3Denum zpass)189     virtual void stencilOp(WGC3Denum fail, WGC3Denum zfail, WGC3Denum zpass) { }
stencilOpSeparate(WGC3Denum face,WGC3Denum fail,WGC3Denum zfail,WGC3Denum zpass)190     virtual void stencilOpSeparate(WGC3Denum face, WGC3Denum fail, WGC3Denum zfail, WGC3Denum zpass) { }
191 
texImage2D(WGC3Denum target,WGC3Dint level,WGC3Denum internalformat,WGC3Dsizei width,WGC3Dsizei height,WGC3Dint border,WGC3Denum format,WGC3Denum type,const void * pixels)192     virtual void texImage2D(WGC3Denum target, WGC3Dint level, WGC3Denum internalformat, WGC3Dsizei width, WGC3Dsizei height, WGC3Dint border, WGC3Denum format, WGC3Denum type, const void* pixels) { }
193 
texParameterf(WGC3Denum target,WGC3Denum pname,WGC3Dfloat param)194     virtual void texParameterf(WGC3Denum target, WGC3Denum pname, WGC3Dfloat param) { }
texParameteri(WGC3Denum target,WGC3Denum pname,WGC3Dint param)195     virtual void texParameteri(WGC3Denum target, WGC3Denum pname, WGC3Dint param) { }
196 
texSubImage2D(WGC3Denum target,WGC3Dint level,WGC3Dint xoffset,WGC3Dint yoffset,WGC3Dsizei width,WGC3Dsizei height,WGC3Denum format,WGC3Denum type,const void * pixels)197     virtual void texSubImage2D(WGC3Denum target, WGC3Dint level, WGC3Dint xoffset, WGC3Dint yoffset, WGC3Dsizei width, WGC3Dsizei height, WGC3Denum format, WGC3Denum type, const void* pixels) { }
198 
uniform1f(WGC3Dint location,WGC3Dfloat x)199     virtual void uniform1f(WGC3Dint location, WGC3Dfloat x) { }
uniform1fv(WGC3Dint location,WGC3Dsizei count,const WGC3Dfloat * v)200     virtual void uniform1fv(WGC3Dint location, WGC3Dsizei count, const WGC3Dfloat* v) { }
uniform1i(WGC3Dint location,WGC3Dint x)201     virtual void uniform1i(WGC3Dint location, WGC3Dint x) { }
uniform1iv(WGC3Dint location,WGC3Dsizei count,const WGC3Dint * v)202     virtual void uniform1iv(WGC3Dint location, WGC3Dsizei count, const WGC3Dint* v) { }
uniform2f(WGC3Dint location,WGC3Dfloat x,WGC3Dfloat y)203     virtual void uniform2f(WGC3Dint location, WGC3Dfloat x, WGC3Dfloat y) { }
uniform2fv(WGC3Dint location,WGC3Dsizei count,const WGC3Dfloat * v)204     virtual void uniform2fv(WGC3Dint location, WGC3Dsizei count, const WGC3Dfloat* v) { }
uniform2i(WGC3Dint location,WGC3Dint x,WGC3Dint y)205     virtual void uniform2i(WGC3Dint location, WGC3Dint x, WGC3Dint y) { }
uniform2iv(WGC3Dint location,WGC3Dsizei count,const WGC3Dint * v)206     virtual void uniform2iv(WGC3Dint location, WGC3Dsizei count, const WGC3Dint* v) { }
uniform3f(WGC3Dint location,WGC3Dfloat x,WGC3Dfloat y,WGC3Dfloat z)207     virtual void uniform3f(WGC3Dint location, WGC3Dfloat x, WGC3Dfloat y, WGC3Dfloat z) { }
uniform3fv(WGC3Dint location,WGC3Dsizei count,const WGC3Dfloat * v)208     virtual void uniform3fv(WGC3Dint location, WGC3Dsizei count, const WGC3Dfloat* v) { }
uniform3i(WGC3Dint location,WGC3Dint x,WGC3Dint y,WGC3Dint z)209     virtual void uniform3i(WGC3Dint location, WGC3Dint x, WGC3Dint y, WGC3Dint z) { }
uniform3iv(WGC3Dint location,WGC3Dsizei count,const WGC3Dint * v)210     virtual void uniform3iv(WGC3Dint location, WGC3Dsizei count, const WGC3Dint* v) { }
uniform4f(WGC3Dint location,WGC3Dfloat x,WGC3Dfloat y,WGC3Dfloat z,WGC3Dfloat w)211     virtual void uniform4f(WGC3Dint location, WGC3Dfloat x, WGC3Dfloat y, WGC3Dfloat z, WGC3Dfloat w) { }
uniform4fv(WGC3Dint location,WGC3Dsizei count,const WGC3Dfloat * v)212     virtual void uniform4fv(WGC3Dint location, WGC3Dsizei count, const WGC3Dfloat* v) { }
uniform4i(WGC3Dint location,WGC3Dint x,WGC3Dint y,WGC3Dint z,WGC3Dint w)213     virtual void uniform4i(WGC3Dint location, WGC3Dint x, WGC3Dint y, WGC3Dint z, WGC3Dint w) { }
uniform4iv(WGC3Dint location,WGC3Dsizei count,const WGC3Dint * v)214     virtual void uniform4iv(WGC3Dint location, WGC3Dsizei count, const WGC3Dint* v) { }
uniformMatrix2fv(WGC3Dint location,WGC3Dsizei count,WGC3Dboolean transpose,const WGC3Dfloat * value)215     virtual void uniformMatrix2fv(WGC3Dint location, WGC3Dsizei count, WGC3Dboolean transpose, const WGC3Dfloat* value) { }
uniformMatrix3fv(WGC3Dint location,WGC3Dsizei count,WGC3Dboolean transpose,const WGC3Dfloat * value)216     virtual void uniformMatrix3fv(WGC3Dint location, WGC3Dsizei count, WGC3Dboolean transpose, const WGC3Dfloat* value) { }
uniformMatrix4fv(WGC3Dint location,WGC3Dsizei count,WGC3Dboolean transpose,const WGC3Dfloat * value)217     virtual void uniformMatrix4fv(WGC3Dint location, WGC3Dsizei count, WGC3Dboolean transpose, const WGC3Dfloat* value) { }
218 
useProgram(WebGLId program)219     virtual void useProgram(WebGLId program) { }
validateProgram(WebGLId program)220     virtual void validateProgram(WebGLId program) { }
221 
vertexAttrib1f(WGC3Duint index,WGC3Dfloat x)222     virtual void vertexAttrib1f(WGC3Duint index, WGC3Dfloat x) { }
vertexAttrib1fv(WGC3Duint index,const WGC3Dfloat * values)223     virtual void vertexAttrib1fv(WGC3Duint index, const WGC3Dfloat* values) { }
vertexAttrib2f(WGC3Duint index,WGC3Dfloat x,WGC3Dfloat y)224     virtual void vertexAttrib2f(WGC3Duint index, WGC3Dfloat x, WGC3Dfloat y) { }
vertexAttrib2fv(WGC3Duint index,const WGC3Dfloat * values)225     virtual void vertexAttrib2fv(WGC3Duint index, const WGC3Dfloat* values) { }
vertexAttrib3f(WGC3Duint index,WGC3Dfloat x,WGC3Dfloat y,WGC3Dfloat z)226     virtual void vertexAttrib3f(WGC3Duint index, WGC3Dfloat x, WGC3Dfloat y, WGC3Dfloat z) { }
vertexAttrib3fv(WGC3Duint index,const WGC3Dfloat * values)227     virtual void vertexAttrib3fv(WGC3Duint index, const WGC3Dfloat* values) { }
vertexAttrib4f(WGC3Duint index,WGC3Dfloat x,WGC3Dfloat y,WGC3Dfloat z,WGC3Dfloat w)228     virtual void vertexAttrib4f(WGC3Duint index, WGC3Dfloat x, WGC3Dfloat y, WGC3Dfloat z, WGC3Dfloat w) { }
vertexAttrib4fv(WGC3Duint index,const WGC3Dfloat * values)229     virtual void vertexAttrib4fv(WGC3Duint index, const WGC3Dfloat* values) { }
vertexAttribPointer(WGC3Duint index,WGC3Dint size,WGC3Denum type,WGC3Dboolean normalized,WGC3Dsizei stride,WGC3Dintptr offset)230     virtual void vertexAttribPointer(WGC3Duint index, WGC3Dint size, WGC3Denum type, WGC3Dboolean normalized, WGC3Dsizei stride, WGC3Dintptr offset) { }
231 
viewport(WGC3Dint x,WGC3Dint y,WGC3Dsizei width,WGC3Dsizei height)232     virtual void viewport(WGC3Dint x, WGC3Dint y, WGC3Dsizei width, WGC3Dsizei height) { }
233 
genBuffers(WGC3Dsizei count,WebGLId * ids)234     virtual void genBuffers(WGC3Dsizei count, WebGLId* ids)
235     {
236         for (int i = 0; i < count; ++i)
237             ids[i] = 1;
238     }
genFramebuffers(WGC3Dsizei count,WebGLId * ids)239     virtual void genFramebuffers(WGC3Dsizei count, WebGLId* ids)
240     {
241         for (int i = 0; i < count; ++i)
242             ids[i] = 1;
243     }
genRenderbuffers(WGC3Dsizei count,WebGLId * ids)244     virtual void genRenderbuffers(WGC3Dsizei count, WebGLId* ids)
245     {
246         for (int i = 0; i < count; ++i)
247             ids[i] = 1;
248     }
genTextures(WGC3Dsizei count,WebGLId * ids)249     virtual void genTextures(WGC3Dsizei count, WebGLId* ids)
250     {
251         for (int i = 0; i < count; ++i)
252             ids[i] = m_nextTextureId++;
253     }
254 
deleteBuffers(WGC3Dsizei count,WebGLId * ids)255     virtual void deleteBuffers(WGC3Dsizei count, WebGLId* ids) { }
deleteFramebuffers(WGC3Dsizei count,WebGLId * ids)256     virtual void deleteFramebuffers(WGC3Dsizei count, WebGLId* ids) { }
deleteRenderbuffers(WGC3Dsizei count,WebGLId * ids)257     virtual void deleteRenderbuffers(WGC3Dsizei count, WebGLId* ids) { }
deleteTextures(WGC3Dsizei count,WebGLId * ids)258     virtual void deleteTextures(WGC3Dsizei count, WebGLId* ids) { }
259 
createBuffer()260     virtual WebGLId createBuffer() { return 1; }
createFramebuffer()261     virtual WebGLId createFramebuffer() { return 1; }
createRenderbuffer()262     virtual WebGLId createRenderbuffer() { return 1; }
createTexture()263     virtual WebGLId createTexture() { return m_nextTextureId++; }
264 
deleteBuffer(WebGLId)265     virtual void deleteBuffer(WebGLId) { }
deleteFramebuffer(WebGLId)266     virtual void deleteFramebuffer(WebGLId) { }
deleteRenderbuffer(WebGLId)267     virtual void deleteRenderbuffer(WebGLId) { }
deleteTexture(WebGLId)268     virtual void deleteTexture(WebGLId) { }
269 
createProgram()270     virtual WebGLId createProgram() { return 1; }
createShader(WGC3Denum)271     virtual WebGLId createShader(WGC3Denum) { return 1; }
272 
deleteProgram(WebGLId)273     virtual void deleteProgram(WebGLId) { }
deleteShader(WebGLId)274     virtual void deleteShader(WebGLId) { }
275 
texStorage2DEXT(WGC3Denum target,WGC3Dint levels,WGC3Duint internalformat,WGC3Dint width,WGC3Dint height)276     virtual void texStorage2DEXT(WGC3Denum target, WGC3Dint levels, WGC3Duint internalformat, WGC3Dint width, WGC3Dint height) { }
277 
createQueryEXT()278     virtual WebGLId createQueryEXT() { return 1; }
deleteQueryEXT(WebGLId)279     virtual void deleteQueryEXT(WebGLId) { }
isQueryEXT(WebGLId)280     virtual GLboolean isQueryEXT(WebGLId) { return true; }
beginQueryEXT(GLenum,WebGLId)281     virtual void beginQueryEXT(GLenum, WebGLId) { }
endQueryEXT(GLenum)282     virtual void endQueryEXT(GLenum) { }
getQueryivEXT(GLenum,GLenum,GLint *)283     virtual void getQueryivEXT(GLenum, GLenum, GLint*) { }
getQueryObjectuivEXT(WebGLId,GLenum,GLuint *)284     virtual void getQueryObjectuivEXT(WebGLId, GLenum, GLuint*) { }
285 
getTranslatedShaderSourceANGLE(WebGLId)286     virtual WebString getTranslatedShaderSourceANGLE(WebGLId) { return WebString(); }
287 
fakeContextLost()288     void fakeContextLost() { m_contextLost = true; }
289 protected:
290     unsigned m_nextTextureId;
291     bool m_contextLost;
292     Attributes m_attrs;
293 };
294 
295 } // namespace blink
296 
297 #endif // MockWebGraphicsContext3D_h
298