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