text: import { paramMock } from "../utils"
  
  export function mockwebgl() {
      const WebGLContextAttributes ={
          brightness: '[PC preview] unknow brightness',
          alpha: '[PC preview] unknow alpha',
          depth: '[PC preview] unknow depth',
          stencil: '[PC preview] unknow stencil',
          antialias: '[PC preview] unknow antialias',
          premultipliedAlpha: '[PC preview] unknow premultipliedAlpha',
          preserveDrawingBuffer: '[PC preview] unknow preserveDrawingBuffer',
          powerPreference: '[PC preview] unknow powerPreference',
          failIfMajorPerformanceCaveat: '[PC preview] unknow failIfMajorPerformanceCaveat',
          desynchronized: '[PC preview] unknow desynchronized'
      }
      const float32ArrayWith2val = [
          paramMock.paramNumberMock,paramMock.paramNumberMock
      ]
  
      const float32ArrayWith4val = [
          paramMock.paramNumberMock,paramMock.paramNumberMock,paramMock.paramNumberMock,paramMock.paramNumberMock
      ]
      const int32ArrayWith2ele = [
          paramMock.paramNumberMock,paramMock.paramNumberMock
      ]
      const int32ArrayWith4ele = [
          paramMock.paramNumberMock,paramMock.paramNumberMock,paramMock.paramNumberMock,paramMock.paramNumberMock
      ]
      const WebGLShaderArray = [
          WebGLShader,WebGLShader,WebGLShader
      ]
      const WebGLBuffer = {
      }
      const WebGLFramebuffer = {
      }
      const WebGLProgram = {
      }
      const WebGLRenderbuffer = {
      }
      const WebGLShader = {
      }
      const WebGLTexture = {
      }
      const WebGLUniformLocation = {
      }
      const WebGLActiveInfo = {
          size: '[PC preview] unknow size',
          type: '[PC preview] unknow type',
          name: '[PC preview] unknow name'
      }
      const WebGLShaderPrecisionFormat = {
          rangeMin: '[PC preview] unknow rangeMin',
          rangeMax: '[PC preview] unknow rangeMax',
          precision: '[PC preview] unknow precision'
      }
      const glParamMock = {
          paramDoubleMock: '[PC Preview] unknow double',
          paramAnyMock: '[PC Preview] unknow any',
          stringArray: '[PC preview] unknow stringArray',
          uint32Array: '[PC preview] unknow uint32Array',
          glBooleanArray: '[PC preview] unknow glBooleanArray',
          WebGLShaderArray: '[PC preview] unknow WebGLShaderArray',
      }
      const webglmock = {
          getContextAttributes: function (...args) {
              console.warn("webgl.getContextAttributes interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLContextAttributes
          },
          isContextLost: function (...args) {
              console.warn("webgl.isContextLost interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramBooleanMock
          },
          getSupportedExtensions: function (...args) {
              console.warn("webgl.getSupportedExtensions interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return glParamMock.stringArray
          },
          getExtension: function (...args) {
              console.warn("webgl.getExtension interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return glParamMock.paramAnyMock
          },
          activeTexture: function (...args) {
              console.warn("webgl.activeTexture interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          attachShader: function (...args) {
              console.warn("webgl.attachShader interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          bindAttribLocation: function (...args) {
              console.warn("webgl.bindAttribLocation interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          bindBuffer: function (...args) {
              console.warn("webgl.bindBuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          bindFramebuffer: function (...args) {
              console.warn("webgl.bindFramebuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          bindRenderbuffer: function (...args) {
              console.warn("webgl.bindRenderbuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          bindTexture: function (...args) {
              console.warn("webgl.bindTexture interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          blendColor: function (...args) {
              console.warn("webgl.blendColor interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          blendEquation: function (...args) {
              console.warn("webgl.blendEquation interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          blendEquationSeparate: function (...args) {
              console.warn("webgl.blendEquationSeparate interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          blendFunc: function (...args) {
              console.warn("webgl.blendFunc interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          blendFuncSeparate: function (...args) {
              console.warn("webgl.blendFuncSeparate interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          checkFramebufferStatus: function (...args) {
              console.warn("webgl.checkFramebufferStatus interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramNumberMock
          },
          clear: function (...args) {
              console.warn("webgl.clear interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          clearColor: function (...args) {
              console.warn("webgl.clearColor interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          clearDepth: function (...args) {
              console.warn("webgl.clearDepth interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          clearStencil: function (...args) {
              console.warn("webgl.clearStencil interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          colorMask: function (...args) {
              console.warn("webgl.colorMask interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          compileShader: function (...args) {
              console.warn("webgl.compileShader interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          copyTexImage2D: function (...args) {
              console.warn("webgl.copyTexImage2D interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          copyTexSubImage2D: function (...args) {
              console.warn("webgl.copyTexSubImage2D interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          createBuffer: function (...args) {
              console.warn("webgl.createBuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLBuffer;
          },
          createFramebuffer: function (...args) {
              console.warn("webgl.createFramebuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLFramebuffer;
          },
          createProgram: function (...args) {
              console.warn("webgl.createProgram interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLProgram;
          },
          createRenderbuffer: function (...args) {
              console.warn("webgl.createRenderbuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLRenderbuffer;
          },
          createShader: function (...args) {
              console.warn("webgl.createShader interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLShader;
          },
          createTexture: function (...args) {
              console.warn("webgl.createTexture interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLTexture;
          },
          cullFace: function (...args) {
              console.warn("webgl.cullFace interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          deleteBuffer: function (...args) {
              console.warn("webgl.deleteBuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          deleteFramebuffer: function (...args) {
              console.warn("webgl.deleteFramebuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          deleteProgram: function (...args) {
              console.warn("webgl.deleteProgram interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          deleteRenderbuffer: function (...args) {
              console.warn("webgl.deleteRenderbuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          deleteShader: function (...args) {
              console.warn("webgl.deleteRenderbuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          deleteTexture: function (...args) {
              console.warn("webgl.deleteRenderbuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          depthFunc: function (...args) {
              console.warn("webgl.deleteRenderbuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          depthMask: function (...args) {
              console.warn("webgl.deleteRenderbuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          depthRange: function (...args) {
              console.warn("webgl.depthRange interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          detachShader: function (...args) {
              console.warn("webgl.detachShader interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          disable: function (...args) {
              console.warn("webgl.disable interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          disableVertexAttribArray: function (...args) {
              console.warn("webgl.disableVertexAttribArray interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          drawArrays: function (...args) {
              console.warn("webgl.drawArrays interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          drawElements: function (...args) {
              console.warn("webgl.drawElements interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          enable: function (...args) {
              console.warn("webgl.enable interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          enableVertexAttribArray: function (...args) {
              console.warn("webgl.enableVertexAttribArray interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          finish: function (...args) {
              console.warn("webgl.finish interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          flush: function (...args) {
              console.warn("webgl.flush interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          framebufferRenderbuffer: function (...args) {
              console.warn("webgl.framebufferRenderbuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          framebufferTexture2D: function (...args) {
              console.warn("webgl.framebufferTexture2D interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          frontFace: function (...args) {
              console.warn("webgl.frontFace interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          generateMipmap: function (...args) {
              console.warn("webgl.generateMipmap interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          getActiveAttrib: function (...args) {
              console.warn("webgl.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLActiveInfo;
          },
          getActiveUniform: function (...args) {
              console.warn("webgl.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLActiveInfo;
          },
          getAttachedShaders: function (...args) {
              console.warn("webgl.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return glParamMock.WebGLShaderArray;
          },
          getAttribLocation: function (...args) {
              console.warn("webgl.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramNumberMock;
          },
          getBufferParameter: function (...args) {
              console.warn("webgl.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramNumberMock;
          },
          getParameter: function (...args) {
              console.warn("webgl.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              if (args[0] == 0x0B73 || args[0] == 0x0B21 ||
                  args[0] == 0x8038 || args[0] == 0x2A00 ||
                  args[0] == 0x80AA) {
                  return paramMock.paramNumberMock;;
              } else if (args[0] == 0x8069 || args[0] == 0x8514) {
                  return WebGLTexture;
              } else if (args[0] == 0x1F01 || args[0] == 0x8B8C ||
                  args[0] == 0x1F00 || args[0] == 0x1F02) {
                  return glParamMock.stringArray;
              } else if (args[0] == 0x8894 || args[0] == 0x8895) {
                  return WebGLBuffer;
              } else if (args[0] == 0x8CA6) {
                  return WebGLFramebuffer;
              } else if (args[0] == 0x8B8D) {
                  return WebGLProgram;
              } else if (args[0] == 0x8CA7) {
                  return WebGLRenderbuffer;
              } else if (args[0] == 0x846E || args[0] == 0x846D ||
                  args[0] == 0x0B70) {
                  return float32ArrayWith2val;
              } else if (args[0] == 0x0C22 || args[0] == 0x8005) {
                  return float32ArrayWith4val;
              } else if (args[0] == 0x86A3) {
                  return glParamMock.uint32Array;
              } else if (args[0] == 0x0D3A) {
                  return int32ArrayWith2ele;
              } else if (args[0] == 0x0C10) {
                  return int32ArrayWith4ele;
              } else if (args[0] == 0x0BE2 || args[0] == 0x0B44 || args[0] == 0x0B71 ||
                  args[0] == 0x0B72 || args[0] == 0x0BD0 || args[0] == 0x8037 ||
                  args[0] == 0x809E || args[0] == 0x80A0 ||
                  args[0] == 0x80AB || args[0] == 0x0C11 || args[0] == 0x0B90 ||
                  args[0] == 0x9240 ||
                  args[0] == 0x9241) {
                  return paramMock.paramBooleanMock;
              } else if (args[0] == 0x0C23) {
                  return glParamMock.glBooleanArray;
              } else {
                  return paramMock.paramNumberMock;;
              }
          },
          getError: function (...args) {
              console.warn("webgl.getError interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramNumberMock;
          },
          getFramebufferAttachmentParameter: function (...args) {
              console.warn("webgl.getFramebufferAttachmentParameter interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              if (args[2] == 0x8CD0 ||
                  args[2] == 0x8CD2 ||
                  args[2] == 0x8CD3 ||
                  args[2] == 0x8215 ||
                  args[2] == 0x8214 ||
                  args[2] == 0x8210 ||
                  args[2] == 0x8211 ||
                  args[2] == 0x8216 ||
                  args[2] == 0x8213 ||
                  args[2] == 0x8212 ||
                  args[2] == 0x8217 ||
                  args[2] == 0x8CD4) {
                  return paramMock.paramNumberMock;
              } else if (args[2] == 0x8CD1) {
                  return paramMock.paramObjectMock;
              }
          },
          getProgramParameter: function (...args) {
              console.warn("webgl.getProgramParameter interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              if (args[1] == 0x8B80 || args[1] == 0x8B82 || args[1] == 0x8B83) {
                  return paramMock.paramBooleanMock;
              } else {
                  return paramMock.paramNumberMock;
              }
          },
          getProgramInfoLog: function (...args) {
              console.warn("webgl.getProgramInfoLog interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramStringMock;
          },
          getRenderbufferParameter: function (...args) {
              console.warn("webgl.getRenderbufferParameter interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramNumberMock;
          },
  
          getShaderParameter: function (...args) {
              console.warn("webgl.getShaderParameter interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              if (args[1] == 0x8B4F) {
                  return paramMock.paramNumberMock;
              } else {
                  return paramMock.paramBooleanMock;
              }
          },
          getShaderPrecisionFormat: function (...args) {
              console.warn("webgl.getShaderPrecisionFormat interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLShaderPrecisionFormat;
          },
          getShaderInfoLog: function (...args) {
              console.warn("webgl.getShaderInfoLog interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramStringMock;
          },
          getShaderSource: function (...args) {
              console.warn("webgl.getShaderSource interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramStringMock;
          },
          getTexParameter: function (...args) {
              console.warn("webgl.getTexParameter interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              if (args[1] == 0x84FE) {
                  return glParamMock.paramDoubleMock;
              } else {
                  return paramMock.paramNumberMock;
              }
          },
          getUniform: function (...args) {
              console.warn("webgl.getUniform interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return glParamMock.paramAnyMock;
          },
          getUniformLocation: function (...args) {
              console.warn("webgl.getUniformLocation interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return WebGLUniformLocation;
          },
          getVertexAttrib: function (...args) {
              console.warn("webgl.getVertexAttrib interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramBooleanMock;
          },
          getVertexAttribOffset: function (...args) {
              console.warn("webgl.getVertexAttribOffset interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramNumberMock;
          },
          hint: function (...args) {
              console.warn("webgl.hint interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          isBuffer: function (...args) {
              console.warn("webgl.isBuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramBooleanMock;
          },
          isEnabled: function (...args) {
              console.warn("webgl.isEnabled interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramBooleanMock;
          },
          isFramebuffer: function (...args) {
              console.warn("webgl.isFramebuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramBooleanMock;
          },
          isProgram: function (...args) {
              console.warn("webgl.isProgram interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramBooleanMock;
          },
          isRenderbuffer: function (...args) {
              console.warn("webgl.isRenderbuffer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramBooleanMock;
          },
  
          isShader: function (...args) {
              console.warn("webgl.isShader interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramBooleanMock;
          },
          isTexture: function (...args) {
              console.warn("webgl.isTexture interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
              return paramMock.paramBooleanMock;
          },
          lineWidth: function (...args) {
              console.warn("webgl.lineWidth interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          linkProgram: function (...args) {
              console.warn("webgl.linkProgram interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          pixelStorei: function (...args) {
              console.warn("webgl.pixelStorei interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          polygonOffset: function (...args) {
              console.warn("webgl.polygonOffset interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          renderbufferStorage: function (...args) {
              console.warn("webgl.renderbufferStorage interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          sampleCoverage: function (...args) {
              console.warn("webgl.sampleCoverage interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          scissor: function (...args) {
              console.warn("webgl.scissor interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          shaderSource: function (...args) {
              console.warn("webgl.shaderSource interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          stencilFunc: function (...args) {
              console.warn("webgl.stencilFunc interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          stencilFuncSeparate: function (...args) {
              console.warn("webgl.stencilFuncSeparate interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          stencilMask: function (...args) {
              console.warn("webgl.stencilMask interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          stencilMaskSeparate: function (...args) {
              console.warn("webgl.stencilMaskSeparate interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          stencilOp: function (...args) {
              console.warn("webgl.stencilOp interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          stencilOpSeparate: function (...args) {
              console.warn("webgl.stencilOpSeparate interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          texParameterf: function (...args) {
              console.warn("webgl.texParameterf interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          texParameteri: function (...args) {
              console.warn("webgl.texParameteri interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform1f: function (...args) {
              console.warn("webgl.uniform1f interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform2f: function (...args) {
              console.warn("webgl.uniform2f interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          uniform3f: function (...args) {
              console.warn("webgl.uniform3f interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform4f: function (...args) {
              console.warn("webgl.uniform4f interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform1i: function (...args) {
              console.warn("webgl.uniform1i interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform2i: function (...args) {
              console.warn("webgl.uniform2i interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform3i: function (...args) {
              console.warn("webgl.uniform3i interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          uniform4i: function (...args) {
              console.warn("webgl.uniform4i interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          useProgram: function (...args) {
              console.warn("webgl.useProgram interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          validateProgram: function (...args) {
              console.warn("webgl.validateProgram interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          vertexAttrib1f: function (...args) {
              console.warn("webgl.vertexAttrib1f interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          vertexAttrib2f: function (...args) {
              console.warn("webgl.vertexAttrib2f interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          vertexAttrib3f: function (...args) {
              console.warn("webgl.vertexAttrib3f interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          vertexAttrib4f: function (...args) {
              console.warn("webgl.vertexAttrib4f interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          vertexAttrib1fv: function (...args) {
              console.warn("webgl.vertexAttrib1fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          vertexAttrib2fv: function (...args) {
              console.warn("webgl.vertexAttrib2fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          vertexAttrib3fv: function (...args) {
              console.warn("webgl.vertexAttrib3fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          vertexAttrib4fv: function (...args) {
              console.warn("webgl.vertexAttrib4fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          vertexAttribPointer: function (...args) {
              console.warn("webgl.vertexAttribPointer interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          viewport: function (...args) {
              console.warn("webgl.vertexAttrib3fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          bufferData: function (...args) {
              console.warn("webgl.bufferData interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          bufferSubData: function (...args) {
              console.warn("webgl.bufferSubData interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          compressedTexImage2D: function (...args) {
              console.warn("webgl.compressedTexImage2D interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          compressedTexSubImage2D: function (...args) {
              console.warn("webgl.compressedTexSubImage2D interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          readPixels: function (...args) {
              console.warn("webgl.readPixels interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          texImage2D: function (...args) {
              console.warn("webgl.texImage2D interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          texSubImage2D: function (...args) {
              console.warn("webgl.texSubImage2D interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform1fv: function (...args) {
              console.warn("webgl.uniform1fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform2fv: function (...args) {
              console.warn("webgl.uniform2fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform3fv: function (...args) {
              console.warn("webgl.uniform3fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          uniform4fv: function (...args) {
              console.warn("webgl.uniform4fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform1iv: function (...args) {
              console.warn("webgl.uniform1iv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform2iv: function (...args) {
              console.warn("webgl.uniform2iv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform3iv: function (...args) {
              console.warn("webgl.uniform3iv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniform4iv: function (...args) {
              console.warn("webgl.uniform4iv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
  
          uniformMatrix2fv: function (...args) {
              console.warn("webgl.uniformMatrix2fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniformMatrix3fv: function (...args) {
              console.warn("webgl.uniformMatrix3fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          },
          uniformMatrix4fv: function (...args) {
              console.warn("webgl.uniformMatrix4fv interface mocked in the Previewer. How this interface works on the" +
                  " Previewer may be different from that on a real device.")
          }
      }
      return webglmock
  }