• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import { paramMock } from "../../utils"
17
18export function mockWebgl() {
19  const WebGLContextAttributes = {
20    brightness: '[PC preview] unknow brightness',
21    alpha: '[PC preview] unknow alpha',
22    depth: '[PC preview] unknow depth',
23    stencil: '[PC preview] unknow stencil',
24    antialias: '[PC preview] unknow antialias',
25    premultipliedAlpha: '[PC preview] unknow premultipliedAlpha',
26    preserveDrawingBuffer: '[PC preview] unknow preserveDrawingBuffer',
27    powerPreference: '[PC preview] unknow powerPreference',
28    failIfMajorPerformanceCaveat: '[PC preview] unknow failIfMajorPerformanceCaveat',
29    desynchronized: '[PC preview] unknow desynchronized'
30  }
31  const float32ArrayWith2val = [
32    paramMock.paramNumberMock, paramMock.paramNumberMock
33  ]
34
35  const float32ArrayWith4val = [
36    paramMock.paramNumberMock, paramMock.paramNumberMock, paramMock.paramNumberMock, paramMock.paramNumberMock
37  ]
38  const int32ArrayWith2ele = [
39    paramMock.paramNumberMock, paramMock.paramNumberMock
40  ]
41  const int32ArrayWith4ele = [
42    paramMock.paramNumberMock, paramMock.paramNumberMock, paramMock.paramNumberMock, paramMock.paramNumberMock
43  ]
44  const WebGLShaderArray = [
45    WebGLShader, WebGLShader, WebGLShader
46  ]
47  const WebGLBuffer = {
48  }
49  const WebGLFramebuffer = {
50  }
51  const WebGLProgram = {
52  }
53  const WebGLRenderbuffer = {
54  }
55  const WebGLShader = {
56  }
57  const WebGLTexture = {
58  }
59  const WebGLUniformLocation = {
60  }
61  const WebGLActiveInfo = {
62    size: '[PC preview] unknow size',
63    type: '[PC preview] unknow type',
64    name: '[PC preview] unknow name'
65  }
66  const WebGLShaderPrecisionFormat = {
67    rangeMin: '[PC preview] unknow rangeMin',
68    rangeMax: '[PC preview] unknow rangeMax',
69    precision: '[PC preview] unknow precision'
70  }
71  const glParamMock = {
72    paramDoubleMock: '[PC Preview] unknow double',
73    paramAnyMock: '[PC Preview] unknow any',
74    stringArray: '[PC preview] unknow stringArray',
75    uint32Array: '[PC preview] unknow uint32Array',
76    glBooleanArray: '[PC preview] unknow glBooleanArray',
77    WebGLShaderArray: '[PC preview] unknow WebGLShaderArray',
78  }
79  const WebGLRenderingContext = {
80      DEPTH_BUFFER_BIT: 0x00000100,
81      STENCIL_BUFFER_BIT: 0x00000400,
82      COLOR_BUFFER_BIT: 0x00004000,
83      POINTS: 0x0000,
84      LINES: 0x0001,
85      LINE_LOOP: 0x0002,
86      LINE_STRIP: 0x0003,
87      TRIANGLES: 0x0004,
88      TRIANGLE_STRIP: 0x0005,
89      TRIANGLE_FAN: 0x0006,
90      ZERO: 0,
91      ONE: 1,
92      SRC_COLOR: 0x0300,
93      ONE_MINUS_SRC_COLOR: 0x0301,
94      SRC_ALPHA: 0x0302,
95      ONE_MINUS_SRC_ALPHA: 0x0303,
96      DST_ALPHA: 0x0304,
97      ONE_MINUS_DST_ALPHA: 0x0305,
98      DST_COLOR: 0x0306,
99      ONE_MINUS_DST_COLOR: 0x0307,
100      SRC_ALPHA_SATURATE: 0x0308,
101      FUNC_ADD: 0x8006,
102      BLEND_EQUATION: 0x8009,
103      BLEND_EQUATION_RGB: 0x8009,
104      BLEND_EQUATION_ALPHA: 0x883D,
105      FUNC_SUBTRACT: 0x800A,
106      FUNC_REVERSE_SUBTRACT: 0x800B,
107      BLEND_DST_RGB: 0x80C8,
108      BLEND_SRC_RGB: 0x80C9,
109      BLEND_DST_ALPHA: 0x80CA,
110      BLEND_SRC_ALPHA: 0x80CB,
111      CONSTANT_COLOR: 0x8001,
112      ONE_MINUS_CONSTANT_COLOR: 0x8002,
113      CONSTANT_ALPHA: 0x8003,
114      ONE_MINUS_CONSTANT_ALPHA: 0x8004,
115      BLEND_COLOR: 0x8005,
116      ARRAY_BUFFER: 0x8892,
117      ELEMENT_ARRAY_BUFFER: 0x8893,
118      ARRAY_BUFFER_BINDING: 0x8894,
119      ELEMENT_ARRAY_BUFFER_BINDING: 0x8895,
120      STREAM_DRAW: 0x88E0,
121      STATIC_DRAW: 0x88E4,
122      DYNAMIC_DRAW: 0x88E8,
123      BUFFER_SIZE: 0x8764,
124      BUFFER_USAGE: 0x8765,
125      CURRENT_VERTEX_ATTRIB: 0x8626,
126      FRONT: 0x0404,
127      BACK: 0x0405,
128      FRONT_AND_BACK: 0x0408,
129      CULL_FACE: 0x0B44,
130      BLEND: 0x0BE2,
131      DITHER: 0x0BD0,
132      STENCIL_TEST: 0x0B90,
133      DEPTH_TEST: 0x0B71,
134      SCISSOR_TEST: 0x0C11,
135      POLYGON_OFFSET_FILL: 0x8037,
136      SAMPLE_ALPHA_TO_COVERAGE: 0x809E,
137      SAMPLE_COVERAGE: 0x80A0,
138      NO_ERROR: 0,
139      INVALID_ENUM: 0x0500,
140      INVALID_VALUE: 0x0501,
141      INVALID_OPERATION: 0x0502,
142      OUT_OF_MEMORY: 0x0505,
143      CW: 0x0900,
144      CCW: 0x0901,
145      LINE_WIDTH: 0x0B21,
146      ALIASED_POINT_SIZE_RANGE: 0x846D,
147      ALIASED_LINE_WIDTH_RANGE: 0x846E,
148      CULL_FACE_MODE: 0x0B45,
149      FRONT_FACE: 0x0B46,
150      DEPTH_RANGE: 0x0B70,
151      DEPTH_WRITEMASK: 0x0B72,
152      DEPTH_CLEAR_VALUE: 0x0B73,
153      DEPTH_FUNC: 0x0B74,
154      STENCIL_CLEAR_VALUE: 0x0B91,
155      STENCIL_FUNC: 0x0B92,
156      STENCIL_FAIL: 0x0B94,
157      STENCIL_PASS_DEPTH_FAIL: 0x0B95,
158      STENCIL_PASS_DEPTH_PASS: 0x0B96,
159      STENCIL_REF: 0x0B97,
160      STENCIL_VALUE_MASK: 0x0B93,
161      STENCIL_WRITEMASK: 0x0B98,
162      STENCIL_BACK_FUNC: 0x8800,
163      STENCIL_BACK_FAIL: 0x8801,
164      STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802,
165      STENCIL_BACK_PASS_DEPTH_PASS: 0x8803,
166      STENCIL_BACK_REF: 0x8CA3,
167      STENCIL_BACK_VALUE_MASK: 0x8CA4,
168      STENCIL_BACK_WRITEMASK: 0x8CA5,
169      VIEWPORT: 0x0BA2,
170      SCISSOR_BOX: 0x0C10,
171      COLOR_CLEAR_VALUE: 0x0C22,
172      COLOR_WRITEMASK: 0x0C23,
173      UNPACK_ALIGNMENT: 0x0CF5,
174      PACK_ALIGNMENT: 0x0D05,
175      MAX_TEXTURE_SIZE: 0x0D33,
176      MAX_VIEWPORT_DIMS: 0x0D3A,
177      SUBPIXEL_BITS: 0x0D50,
178      RED_BITS: 0x0D52,
179      GREEN_BITS: 0x0D53,
180      BLUE_BITS: 0x0D54,
181      ALPHA_BITS: 0x0D55,
182      DEPTH_BITS: 0x0D56,
183      STENCIL_BITS: 0x0D57,
184      POLYGON_OFFSET_UNITS: 0x2A00,
185      POLYGON_OFFSET_FACTOR: 0x8038,
186      TEXTURE_BINDING_2D: 0x8069,
187      SAMPLE_BUFFERS: 0x80A8,
188      SAMPLES: 0x80A9,
189      SAMPLE_COVERAGE_VALUE: 0x80AA,
190      SAMPLE_COVERAGE_INVERT: 0x80AB,
191      COMPRESSED_TEXTURE_FORMATS: 0x86A3,
192      DONT_CARE: 0x1100,
193      FASTEST: 0x1101,
194      NICEST: 0x1102,
195      GENERATE_MIPMAP_HINT: 0x8192,
196      BYTE: 0x1400,
197      UNSIGNED_BYTE: 0x1401,
198      SHORT: 0x1402,
199      UNSIGNED_SHORT: 0x1403,
200      INT: 0x1404,
201      UNSIGNED_INT: 0x1405,
202      FLOAT: 0x1406,
203      DEPTH_COMPONENT: 0x1902,
204      ALPHA: 0x1906,
205      RGB: 0x1907,
206      RGBA: 0x1908,
207      LUMINANCE: 0x1909,
208      LUMINANCE_ALPHA: 0x190A,
209      UNSIGNED_SHORT_4_4_4_4: 0x8033,
210      UNSIGNED_SHORT_5_5_5_1: 0x8034,
211      UNSIGNED_SHORT_5_6_5: 0x8363,
212      FRAGMENT_SHADER: 0x8B30,
213      VERTEX_SHADER: 0x8B31,
214      MAX_VERTEX_ATTRIBS: 0x8869,
215      MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB,
216      MAX_VARYING_VECTORS: 0x8DFC,
217      MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D,
218      MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C,
219      MAX_TEXTURE_IMAGE_UNITS: 0x8872,
220      MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD,
221      SHADER_TYPE: 0x8B4F,
222      DELETE_STATUS: 0x8B80,
223      LINK_STATUS: 0x8B82,
224      VALIDATE_STATUS: 0x8B83,
225      ATTACHED_SHADERS: 0x8B85,
226      ACTIVE_UNIFORMS: 0x8B86,
227      ACTIVE_ATTRIBUTES: 0x8B89,
228      SHADING_LANGUAGE_VERSION: 0x8B8C,
229      CURRENT_PROGRAM: 0x8B8D,
230      NEVER: 0x0200,
231      LESS: 0x0201,
232      EQUAL: 0x0202,
233      LEQUAL: 0x0203,
234      GREATER: 0x0204,
235      NOTEQUAL: 0x0205,
236      GEQUAL: 0x0206,
237      ALWAYS: 0x0207,
238      KEEP: 0x1E00,
239      REPLACE: 0x1E01,
240      INCR: 0x1E02,
241      DECR: 0x1E03,
242      INVERT: 0x150A,
243      INCR_WRAP: 0x8507,
244      DECR_WRAP: 0x8508,
245      VENDOR: 0x1F00,
246      RENDERER: 0x1F01,
247      VERSION: 0x1F02,
248      NEAREST: 0x2600,
249      LINEAR: 0x2601,
250      NEAREST_MIPMAP_NEAREST: 0x2700,
251      LINEAR_MIPMAP_NEAREST: 0x2701,
252      NEAREST_MIPMAP_LINEAR: 0x2702,
253      LINEAR_MIPMAP_LINEAR: 0x2703,
254      TEXTURE_MAG_FILTER: 0x2800,
255      TEXTURE_MIN_FILTER: 0x2801,
256      TEXTURE_WRAP_S: 0x2802,
257      TEXTURE_WRAP_T: 0x2803,
258      TEXTURE_2D: 0x0DE1,
259      TEXTURE: 0x1702,
260      TEXTURE_CUBE_MAP: 0x8513,
261      TEXTURE_BINDING_CUBE_MAP: 0x8514,
262      TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515,
263      TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516,
264      TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517,
265      TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518,
266      TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519,
267      TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A,
268      MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C,
269      TEXTURE0: 0x84C0,
270      TEXTURE1: 0x84C1,
271      TEXTURE2: 0x84C2,
272      TEXTURE3: 0x84C3,
273      TEXTURE4: 0x84C4,
274      TEXTURE5: 0x84C5,
275      TEXTURE6: 0x84C6,
276      TEXTURE7: 0x84C7,
277      TEXTURE8: 0x84C8,
278      TEXTURE9: 0x84C9,
279      TEXTURE10: 0x84CA,
280      TEXTURE11: 0x84CB,
281      TEXTURE12: 0x84CC,
282      TEXTURE13: 0x84CD,
283      TEXTURE14: 0x84CE,
284      TEXTURE15: 0x84CF,
285      TEXTURE16: 0x84D0,
286      TEXTURE17: 0x84D1,
287      TEXTURE18: 0x84D2,
288      TEXTURE19: 0x84D3,
289      TEXTURE20: 0x84D4,
290      TEXTURE21: 0x84D5,
291      TEXTURE22: 0x84D6,
292      TEXTURE23: 0x84D7,
293      TEXTURE24: 0x84D8,
294      TEXTURE25: 0x84D9,
295      TEXTURE26: 0x84DA,
296      TEXTURE27: 0x84DB,
297      TEXTURE28: 0x84DC,
298      TEXTURE29: 0x84DD,
299      TEXTURE30: 0x84DE,
300      TEXTURE31: 0x84DF,
301      ACTIVE_TEXTURE: 0x84E0,
302      REPEAT: 0x2901,
303      CLAMP_TO_EDGE: 0x812F,
304      MIRRORED_REPEAT: 0x8370,
305      FLOAT_VEC2: 0x8B50,
306      FLOAT_VEC3: 0x8B51,
307      FLOAT_VEC4: 0x8B52,
308      INT_VEC2: 0x8B53,
309      INT_VEC3: 0x8B54,
310      INT_VEC4: 0x8B55,
311      BOOL: 0x8B56,
312      BOOL_VEC2: 0x8B57,
313      BOOL_VEC3: 0x8B58,
314      BOOL_VEC4: 0x8B59,
315      FLOAT_MAT2: 0x8B5A,
316      FLOAT_MAT3: 0x8B5B,
317      FLOAT_MAT4: 0x8B5C,
318      SAMPLER_2D: 0x8B5E,
319      SAMPLER_CUBE: 0x8B60,
320      VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622,
321      VERTEX_ATTRIB_ARRAY_SIZE: 0x8623,
322      VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624,
323      VERTEX_ATTRIB_ARRAY_TYPE: 0x8625,
324      VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A,
325      VERTEX_ATTRIB_ARRAY_POINTER: 0x8645,
326      VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F,
327      IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A,
328      IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B,
329      COMPILE_STATUS: 0x8B81,
330      LOW_FLOAT: 0x8DF0,
331      MEDIUM_FLOAT: 0x8DF1,
332      HIGH_FLOAT: 0x8DF2,
333      LOW_INT: 0x8DF3,
334      MEDIUM_INT: 0x8DF4,
335      HIGH_INT: 0x8DF5,
336      FRAMEBUFFER: 0x8D40,
337      RENDERBUFFER: 0x8D41,
338      RGBA4: 0x8056,
339      RGB5_A1: 0x8057,
340      RGB565: 0x8D62,
341      DEPTH_COMPONENT16: 0x81A5,
342      STENCIL_INDEX8: 0x8D48,
343      DEPTH_STENCIL: 0x84F9,
344      RENDERBUFFER_WIDTH: 0x8D42,
345      RENDERBUFFER_HEIGHT: 0x8D43,
346      RENDERBUFFER_INTERNAL_FORMAT: 0x8D44,
347      RENDERBUFFER_RED_SIZE: 0x8D50,
348      RENDERBUFFER_GREEN_SIZE: 0x8D51,
349      RENDERBUFFER_BLUE_SIZE: 0x8D52,
350      RENDERBUFFER_ALPHA_SIZE: 0x8D53,
351      RENDERBUFFER_DEPTH_SIZE: 0x8D54,
352      RENDERBUFFER_STENCIL_SIZE: 0x8D55,
353      FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0,
354      FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1,
355      FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2,
356      FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3,
357      COLOR_ATTACHMENT0: 0x8CE0,
358      DEPTH_ATTACHMENT: 0x8D00,
359      STENCIL_ATTACHMENT: 0x8D20,
360      DEPTH_STENCIL_ATTACHMENT: 0x821A,
361      NONE: 0,
362      FRAMEBUFFER_COMPLETE: 0x8CD5,
363      FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6,
364      FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7,
365      FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9,
366      FRAMEBUFFER_UNSUPPORTED: 0x8CDD,
367      FRAMEBUFFER_BINDING: 0x8CA6,
368      RENDERBUFFER_BINDING: 0x8CA7,
369      MAX_RENDERBUFFER_SIZE: 0x84E8,
370      INVALID_FRAMEBUFFER_OPERATION: 0x0506,
371      UNPACK_FLIP_Y_WEBGL: 0x9240,
372      UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241,
373      CONTEXT_LOST_WEBGL: 0x9242,
374      UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243,
375      BROWSER_DEFAULT_WEBGL: 0x9244,
376      canvas: '[PC preview] unknow canvas',
377      drawingBufferWidth:'[PC preview] unknow drawingBufferWidth',
378      drawingBufferHeight:'[PC preview] unknow drawingBufferHeight',
379    getContextAttributes: function (...args) {
380      console.warn("WebGLRenderingContext.getContextAttributes interface mocked in the Previewer. How this interface works on the" +
381        " Previewer may be different from that on a real device.")
382      return WebGLContextAttributes
383    },
384    isContextLost: function (...args) {
385      console.warn("WebGLRenderingContext.isContextLost interface mocked in the Previewer. How this interface works on the" +
386        " Previewer may be different from that on a real device.")
387      return paramMock.paramBooleanMock
388    },
389    getSupportedExtensions: function (...args) {
390      console.warn("WebGLRenderingContext.getSupportedExtensions interface mocked in the Previewer. How this interface works on the" +
391        " Previewer may be different from that on a real device.")
392      return glParamMock.stringArray
393    },
394    getExtension: function (...args) {
395      console.warn("WebGLRenderingContext.getExtension interface mocked in the Previewer. How this interface works on the" +
396        " Previewer may be different from that on a real device.")
397      return glParamMock.paramAnyMock
398    },
399    activeTexture: function (...args) {
400      console.warn("WebGLRenderingContext.activeTexture interface mocked in the Previewer. How this interface works on the" +
401        " Previewer may be different from that on a real device.")
402    },
403    attachShader: function (...args) {
404      console.warn("WebGLRenderingContext.attachShader interface mocked in the Previewer. How this interface works on the" +
405        " Previewer may be different from that on a real device.")
406    },
407    bindAttribLocation: function (...args) {
408      console.warn("WebGLRenderingContext.bindAttribLocation interface mocked in the Previewer. How this interface works on the" +
409        " Previewer may be different from that on a real device.")
410    },
411    bindBuffer: function (...args) {
412      console.warn("WebGLRenderingContext.bindBuffer interface mocked in the Previewer. How this interface works on the" +
413        " Previewer may be different from that on a real device.")
414    },
415    bindFramebuffer: function (...args) {
416      console.warn("WebGLRenderingContext.bindFramebuffer interface mocked in the Previewer. How this interface works on the" +
417        " Previewer may be different from that on a real device.")
418    },
419    bindRenderbuffer: function (...args) {
420      console.warn("WebGLRenderingContext.bindRenderbuffer interface mocked in the Previewer. How this interface works on the" +
421        " Previewer may be different from that on a real device.")
422    },
423    bindTexture: function (...args) {
424      console.warn("WebGLRenderingContext.bindTexture interface mocked in the Previewer. How this interface works on the" +
425        " Previewer may be different from that on a real device.")
426    },
427    blendColor: function (...args) {
428      console.warn("WebGLRenderingContext.blendColor interface mocked in the Previewer. How this interface works on the" +
429        " Previewer may be different from that on a real device.")
430    },
431    blendEquation: function (...args) {
432      console.warn("WebGLRenderingContext.blendEquation interface mocked in the Previewer. How this interface works on the" +
433        " Previewer may be different from that on a real device.")
434    },
435    blendEquationSeparate: function (...args) {
436      console.warn("WebGLRenderingContext.blendEquationSeparate interface mocked in the Previewer. How this interface works on the" +
437        " Previewer may be different from that on a real device.")
438    },
439    blendFunc: function (...args) {
440      console.warn("WebGLRenderingContext.blendFunc interface mocked in the Previewer. How this interface works on the" +
441        " Previewer may be different from that on a real device.")
442    },
443
444    blendFuncSeparate: function (...args) {
445      console.warn("WebGLRenderingContext.blendFuncSeparate interface mocked in the Previewer. How this interface works on the" +
446        " Previewer may be different from that on a real device.")
447    },
448    checkFramebufferStatus: function (...args) {
449      console.warn("WebGLRenderingContext.checkFramebufferStatus interface mocked in the Previewer. How this interface works on the" +
450        " Previewer may be different from that on a real device.")
451      return paramMock.paramNumberMock
452    },
453    clear: function (...args) {
454      console.warn("WebGLRenderingContext.clear interface mocked in the Previewer. How this interface works on the" +
455        " Previewer may be different from that on a real device.")
456    },
457    clearColor: function (...args) {
458      console.warn("WebGLRenderingContext.clearColor interface mocked in the Previewer. How this interface works on the" +
459        " Previewer may be different from that on a real device.")
460    },
461    clearDepth: function (...args) {
462      console.warn("WebGLRenderingContext.clearDepth interface mocked in the Previewer. How this interface works on the" +
463        " Previewer may be different from that on a real device.")
464    },
465    clearStencil: function (...args) {
466      console.warn("WebGLRenderingContext.clearStencil interface mocked in the Previewer. How this interface works on the" +
467        " Previewer may be different from that on a real device.")
468    },
469    colorMask: function (...args) {
470      console.warn("WebGLRenderingContext.colorMask interface mocked in the Previewer. How this interface works on the" +
471        " Previewer may be different from that on a real device.")
472    },
473    compileShader: function (...args) {
474      console.warn("WebGLRenderingContext.compileShader interface mocked in the Previewer. How this interface works on the" +
475        " Previewer may be different from that on a real device.")
476    },
477    copyTexImage2D: function (...args) {
478      console.warn("WebGLRenderingContext.copyTexImage2D interface mocked in the Previewer. How this interface works on the" +
479        " Previewer may be different from that on a real device.")
480    },
481    copyTexSubImage2D: function (...args) {
482      console.warn("WebGLRenderingContext.copyTexSubImage2D interface mocked in the Previewer. How this interface works on the" +
483        " Previewer may be different from that on a real device.")
484    },
485    createBuffer: function (...args) {
486      console.warn("WebGLRenderingContext.createBuffer interface mocked in the Previewer. How this interface works on the" +
487        " Previewer may be different from that on a real device.")
488      return WebGLBuffer;
489    },
490    createFramebuffer: function (...args) {
491      console.warn("WebGLRenderingContext.createFramebuffer interface mocked in the Previewer. How this interface works on the" +
492        " Previewer may be different from that on a real device.")
493      return WebGLFramebuffer;
494    },
495    createProgram: function (...args) {
496      console.warn("WebGLRenderingContext.createProgram interface mocked in the Previewer. How this interface works on the" +
497        " Previewer may be different from that on a real device.")
498      return WebGLProgram;
499    },
500    createRenderbuffer: function (...args) {
501      console.warn("WebGLRenderingContext.createRenderbuffer interface mocked in the Previewer. How this interface works on the" +
502        " Previewer may be different from that on a real device.")
503      return WebGLRenderbuffer;
504    },
505    createShader: function (...args) {
506      console.warn("WebGLRenderingContext.createShader interface mocked in the Previewer. How this interface works on the" +
507        " Previewer may be different from that on a real device.")
508      return WebGLShader;
509    },
510    createTexture: function (...args) {
511      console.warn("WebGLRenderingContext.createTexture interface mocked in the Previewer. How this interface works on the" +
512        " Previewer may be different from that on a real device.")
513      return WebGLTexture;
514    },
515    cullFace: function (...args) {
516      console.warn("WebGLRenderingContext.cullFace interface mocked in the Previewer. How this interface works on the" +
517        " Previewer may be different from that on a real device.")
518    },
519    deleteBuffer: function (...args) {
520      console.warn("WebGLRenderingContext.deleteBuffer interface mocked in the Previewer. How this interface works on the" +
521        " Previewer may be different from that on a real device.")
522    },
523    deleteFramebuffer: function (...args) {
524      console.warn("WebGLRenderingContext.deleteFramebuffer interface mocked in the Previewer. How this interface works on the" +
525        " Previewer may be different from that on a real device.")
526    },
527    deleteProgram: function (...args) {
528      console.warn("WebGLRenderingContext.deleteProgram interface mocked in the Previewer. How this interface works on the" +
529        " Previewer may be different from that on a real device.")
530    },
531
532    deleteRenderbuffer: function (...args) {
533      console.warn("WebGLRenderingContext.deleteRenderbuffer interface mocked in the Previewer. How this interface works on the" +
534        " Previewer may be different from that on a real device.")
535    },
536    deleteShader: function (...args) {
537      console.warn("WebGLRenderingContext.deleteRenderbuffer interface mocked in the Previewer. How this interface works on the" +
538        " Previewer may be different from that on a real device.")
539    },
540    deleteTexture: function (...args) {
541      console.warn("WebGLRenderingContext.deleteRenderbuffer interface mocked in the Previewer. How this interface works on the" +
542        " Previewer may be different from that on a real device.")
543    },
544    depthFunc: function (...args) {
545      console.warn("WebGLRenderingContext.deleteRenderbuffer interface mocked in the Previewer. How this interface works on the" +
546        " Previewer may be different from that on a real device.")
547    },
548    depthMask: function (...args) {
549      console.warn("WebGLRenderingContext.deleteRenderbuffer interface mocked in the Previewer. How this interface works on the" +
550        " Previewer may be different from that on a real device.")
551    },
552
553    depthRange: function (...args) {
554      console.warn("WebGLRenderingContext.depthRange interface mocked in the Previewer. How this interface works on the" +
555        " Previewer may be different from that on a real device.")
556    },
557    detachShader: function (...args) {
558      console.warn("WebGLRenderingContext.detachShader interface mocked in the Previewer. How this interface works on the" +
559        " Previewer may be different from that on a real device.")
560    },
561    disable: function (...args) {
562      console.warn("WebGLRenderingContext.disable interface mocked in the Previewer. How this interface works on the" +
563        " Previewer may be different from that on a real device.")
564    },
565    disableVertexAttribArray: function (...args) {
566      console.warn("WebGLRenderingContext.disableVertexAttribArray interface mocked in the Previewer. How this interface works on the" +
567        " Previewer may be different from that on a real device.")
568    },
569    drawArrays: function (...args) {
570      console.warn("WebGLRenderingContext.drawArrays interface mocked in the Previewer. How this interface works on the" +
571        " Previewer may be different from that on a real device.")
572    },
573
574    drawElements: function (...args) {
575      console.warn("WebGLRenderingContext.drawElements interface mocked in the Previewer. How this interface works on the" +
576        " Previewer may be different from that on a real device.")
577    },
578    enable: function (...args) {
579      console.warn("WebGLRenderingContext.enable interface mocked in the Previewer. How this interface works on the" +
580        " Previewer may be different from that on a real device.")
581    },
582    enableVertexAttribArray: function (...args) {
583      console.warn("WebGLRenderingContext.enableVertexAttribArray interface mocked in the Previewer. How this interface works on the" +
584        " Previewer may be different from that on a real device.")
585    },
586    finish: function (...args) {
587      console.warn("WebGLRenderingContext.finish interface mocked in the Previewer. How this interface works on the" +
588        " Previewer may be different from that on a real device.")
589    },
590    flush: function (...args) {
591      console.warn("WebGLRenderingContext.flush interface mocked in the Previewer. How this interface works on the" +
592        " Previewer may be different from that on a real device.")
593    },
594
595    framebufferRenderbuffer: function (...args) {
596      console.warn("WebGLRenderingContext.framebufferRenderbuffer interface mocked in the Previewer. How this interface works on the" +
597        " Previewer may be different from that on a real device.")
598    },
599    framebufferTexture2D: function (...args) {
600      console.warn("WebGLRenderingContext.framebufferTexture2D interface mocked in the Previewer. How this interface works on the" +
601        " Previewer may be different from that on a real device.")
602    },
603    frontFace: function (...args) {
604      console.warn("WebGLRenderingContext.frontFace interface mocked in the Previewer. How this interface works on the" +
605        " Previewer may be different from that on a real device.")
606    },
607    generateMipmap: function (...args) {
608      console.warn("WebGLRenderingContext.generateMipmap interface mocked in the Previewer. How this interface works on the" +
609        " Previewer may be different from that on a real device.")
610    },
611    getActiveAttrib: function (...args) {
612      console.warn("WebGLRenderingContext.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
613        " Previewer may be different from that on a real device.")
614      return WebGLActiveInfo;
615    },
616    getActiveUniform: function (...args) {
617      console.warn("WebGLRenderingContext.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
618        " Previewer may be different from that on a real device.")
619      return WebGLActiveInfo;
620    },
621    getAttachedShaders: function (...args) {
622      console.warn("WebGLRenderingContext.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
623        " Previewer may be different from that on a real device.")
624      return glParamMock.WebGLShaderArray;
625    },
626    getAttribLocation: function (...args) {
627      console.warn("WebGLRenderingContext.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
628        " Previewer may be different from that on a real device.")
629      return paramMock.paramNumberMock;
630    },
631    getBufferParameter: function (...args) {
632      console.warn("WebGLRenderingContext.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
633        " Previewer may be different from that on a real device.")
634      return paramMock.paramNumberMock;
635    },
636    getParameter: function (...args) {
637      console.warn("WebGLRenderingContext.getActiveAttrib interface mocked in the Previewer. How this interface works on the" +
638        " Previewer may be different from that on a real device.")
639      if (args[0] == 0x0B73 || args[0] == 0x0B21 ||
640        args[0] == 0x8038 || args[0] == 0x2A00 ||
641        args[0] == 0x80AA) {
642        return paramMock.paramNumberMock;
643      } else if (args[0] == 0x8069 || args[0] == 0x8514) {
644        return WebGLTexture;
645      } else if (args[0] == 0x1F01 || args[0] == 0x8B8C ||
646        args[0] == 0x1F00 || args[0] == 0x1F02) {
647        return glParamMock.stringArray;
648      } else if (args[0] == 0x8894 || args[0] == 0x8895) {
649        return WebGLBuffer;
650      } else if (args[0] == 0x8CA6) {
651        return WebGLFramebuffer;
652      } else if (args[0] == 0x8B8D) {
653        return WebGLProgram;
654      } else if (args[0] == 0x8CA7) {
655        return WebGLRenderbuffer;
656      } else if (args[0] == 0x846E || args[0] == 0x846D ||
657        args[0] == 0x0B70) {
658        return float32ArrayWith2val;
659      } else if (args[0] == 0x0C22 || args[0] == 0x8005) {
660        return float32ArrayWith4val;
661      } else if (args[0] == 0x86A3) {
662        return glParamMock.uint32Array;
663      } else if (args[0] == 0x0D3A) {
664        return int32ArrayWith2ele;
665      } else if (args[0] == 0x0C10) {
666        return int32ArrayWith4ele;
667      } else if (args[0] == 0x0BE2 || args[0] == 0x0B44 || args[0] == 0x0B71 ||
668        args[0] == 0x0B72 || args[0] == 0x0BD0 || args[0] == 0x8037 ||
669        args[0] == 0x809E || args[0] == 0x80A0 ||
670        args[0] == 0x80AB || args[0] == 0x0C11 || args[0] == 0x0B90 ||
671        args[0] == 0x9240 ||
672        args[0] == 0x9241) {
673        return paramMock.paramBooleanMock;
674      } else if (args[0] == 0x0C23) {
675        return glParamMock.glBooleanArray;
676      } else {
677        return paramMock.paramNumberMock;
678      }
679    },
680    getError: function (...args) {
681      console.warn("WebGLRenderingContext.getError interface mocked in the Previewer. How this interface works on the" +
682        " Previewer may be different from that on a real device.")
683      return paramMock.paramNumberMock;
684    },
685    getFramebufferAttachmentParameter: function (...args) {
686      console.warn("WebGLRenderingContext.getFramebufferAttachmentParameter interface mocked in the Previewer. How this interface works on the" +
687        " Previewer may be different from that on a real device.")
688      if (args[2] == 0x8CD0 ||
689        args[2] == 0x8CD2 ||
690        args[2] == 0x8CD3 ||
691        args[2] == 0x8215 ||
692        args[2] == 0x8214 ||
693        args[2] == 0x8210 ||
694        args[2] == 0x8211 ||
695        args[2] == 0x8216 ||
696        args[2] == 0x8213 ||
697        args[2] == 0x8212 ||
698        args[2] == 0x8217 ||
699        args[2] == 0x8CD4) {
700        return paramMock.paramNumberMock;
701      } else if (args[2] == 0x8CD1) {
702        return paramMock.paramObjectMock;
703      }
704    },
705    getProgramParameter: function (...args) {
706      console.warn("WebGLRenderingContext.getProgramParameter interface mocked in the Previewer. How this interface works on the" +
707        " Previewer may be different from that on a real device.")
708      if (args[1] == 0x8B80 || args[1] == 0x8B82 || args[1] == 0x8B83) {
709        return paramMock.paramBooleanMock;
710      } else {
711        return paramMock.paramNumberMock;
712      }
713    },
714    getProgramInfoLog: function (...args) {
715      console.warn("WebGLRenderingContext.getProgramInfoLog interface mocked in the Previewer. How this interface works on the" +
716        " Previewer may be different from that on a real device.")
717      return paramMock.paramStringMock;
718    },
719    getRenderbufferParameter: function (...args) {
720      console.warn("WebGLRenderingContext.getRenderbufferParameter interface mocked in the Previewer. How this interface works on the" +
721        " Previewer may be different from that on a real device.")
722      return paramMock.paramNumberMock;
723    },
724
725    getShaderParameter: function (...args) {
726      console.warn("WebGLRenderingContext.getShaderParameter interface mocked in the Previewer. How this interface works on the" +
727        " Previewer may be different from that on a real device.")
728      if (args[1] == 0x8B4F) {
729        return paramMock.paramNumberMock;
730      } else {
731        return paramMock.paramBooleanMock;
732      }
733    },
734    getShaderPrecisionFormat: function (...args) {
735      console.warn("WebGLRenderingContext.getShaderPrecisionFormat interface mocked in the Previewer. How this interface works on the" +
736        " Previewer may be different from that on a real device.")
737      return WebGLShaderPrecisionFormat;
738    },
739    getShaderInfoLog: function (...args) {
740      console.warn("WebGLRenderingContext.getShaderInfoLog interface mocked in the Previewer. How this interface works on the" +
741        " Previewer may be different from that on a real device.")
742      return paramMock.paramStringMock;
743    },
744    getShaderSource: function (...args) {
745      console.warn("WebGLRenderingContext.getShaderSource interface mocked in the Previewer. How this interface works on the" +
746        " Previewer may be different from that on a real device.")
747      return paramMock.paramStringMock;
748    },
749    getTexParameter: function (...args) {
750      console.warn("WebGLRenderingContext.getTexParameter interface mocked in the Previewer. How this interface works on the" +
751        " Previewer may be different from that on a real device.")
752      if (args[1] == 0x84FE) {
753        return glParamMock.paramDoubleMock;
754      } else {
755        return paramMock.paramNumberMock;
756      }
757    },
758    getUniform: function (...args) {
759      console.warn("WebGLRenderingContext.getUniform interface mocked in the Previewer. How this interface works on the" +
760        " Previewer may be different from that on a real device.")
761      return glParamMock.paramAnyMock;
762    },
763    getUniformLocation: function (...args) {
764      console.warn("WebGLRenderingContext.getUniformLocation interface mocked in the Previewer. How this interface works on the" +
765        " Previewer may be different from that on a real device.")
766      return WebGLUniformLocation;
767    },
768    getVertexAttrib: function (...args) {
769      console.warn("WebGLRenderingContext.getVertexAttrib interface mocked in the Previewer. How this interface works on the" +
770        " Previewer may be different from that on a real device.")
771      return paramMock.paramBooleanMock;
772    },
773    getVertexAttribOffset: function (...args) {
774      console.warn("WebGLRenderingContext.getVertexAttribOffset interface mocked in the Previewer. How this interface works on the" +
775        " Previewer may be different from that on a real device.")
776      return paramMock.paramNumberMock;
777    },
778    hint: function (...args) {
779      console.warn("WebGLRenderingContext.hint interface mocked in the Previewer. How this interface works on the" +
780        " Previewer may be different from that on a real device.")
781    },
782
783    isBuffer: function (...args) {
784      console.warn("WebGLRenderingContext.isBuffer interface mocked in the Previewer. How this interface works on the" +
785        " Previewer may be different from that on a real device.")
786      return paramMock.paramBooleanMock;
787    },
788    isEnabled: function (...args) {
789      console.warn("WebGLRenderingContext.isEnabled interface mocked in the Previewer. How this interface works on the" +
790        " Previewer may be different from that on a real device.")
791      return paramMock.paramBooleanMock;
792    },
793    isFramebuffer: function (...args) {
794      console.warn("WebGLRenderingContext.isFramebuffer interface mocked in the Previewer. How this interface works on the" +
795        " Previewer may be different from that on a real device.")
796      return paramMock.paramBooleanMock;
797    },
798    isProgram: function (...args) {
799      console.warn("WebGLRenderingContext.isProgram interface mocked in the Previewer. How this interface works on the" +
800        " Previewer may be different from that on a real device.")
801      return paramMock.paramBooleanMock;
802    },
803    isRenderbuffer: function (...args) {
804      console.warn("WebGLRenderingContext.isRenderbuffer interface mocked in the Previewer. How this interface works on the" +
805        " Previewer may be different from that on a real device.")
806      return paramMock.paramBooleanMock;
807    },
808
809    isShader: function (...args) {
810      console.warn("WebGLRenderingContext.isShader interface mocked in the Previewer. How this interface works on the" +
811        " Previewer may be different from that on a real device.")
812      return paramMock.paramBooleanMock;
813    },
814    isTexture: function (...args) {
815      console.warn("WebGLRenderingContext.isTexture interface mocked in the Previewer. How this interface works on the" +
816        " Previewer may be different from that on a real device.")
817      return paramMock.paramBooleanMock;
818    },
819    lineWidth: function (...args) {
820      console.warn("WebGLRenderingContext.lineWidth interface mocked in the Previewer. How this interface works on the" +
821        " Previewer may be different from that on a real device.")
822    },
823    linkProgram: function (...args) {
824      console.warn("WebGLRenderingContext.linkProgram interface mocked in the Previewer. How this interface works on the" +
825        " Previewer may be different from that on a real device.")
826    },
827    pixelStorei: function (...args) {
828      console.warn("WebGLRenderingContext.pixelStorei interface mocked in the Previewer. How this interface works on the" +
829        " Previewer may be different from that on a real device.")
830    },
831
832    polygonOffset: function (...args) {
833      console.warn("WebGLRenderingContext.polygonOffset interface mocked in the Previewer. How this interface works on the" +
834        " Previewer may be different from that on a real device.")
835    },
836    renderbufferStorage: function (...args) {
837      console.warn("WebGLRenderingContext.renderbufferStorage interface mocked in the Previewer. How this interface works on the" +
838        " Previewer may be different from that on a real device.")
839    },
840    sampleCoverage: function (...args) {
841      console.warn("WebGLRenderingContext.sampleCoverage interface mocked in the Previewer. How this interface works on the" +
842        " Previewer may be different from that on a real device.")
843    },
844    scissor: function (...args) {
845      console.warn("WebGLRenderingContext.scissor interface mocked in the Previewer. How this interface works on the" +
846        " Previewer may be different from that on a real device.")
847    },
848    shaderSource: function (...args) {
849      console.warn("WebGLRenderingContext.shaderSource interface mocked in the Previewer. How this interface works on the" +
850        " Previewer may be different from that on a real device.")
851    },
852
853    stencilFunc: function (...args) {
854      console.warn("WebGLRenderingContext.stencilFunc interface mocked in the Previewer. How this interface works on the" +
855        " Previewer may be different from that on a real device.")
856    },
857    stencilFuncSeparate: function (...args) {
858      console.warn("WebGLRenderingContext.stencilFuncSeparate interface mocked in the Previewer. How this interface works on the" +
859        " Previewer may be different from that on a real device.")
860    },
861    stencilMask: function (...args) {
862      console.warn("WebGLRenderingContext.stencilMask interface mocked in the Previewer. How this interface works on the" +
863        " Previewer may be different from that on a real device.")
864    },
865    stencilMaskSeparate: function (...args) {
866      console.warn("WebGLRenderingContext.stencilMaskSeparate interface mocked in the Previewer. How this interface works on the" +
867        " Previewer may be different from that on a real device.")
868    },
869    stencilOp: function (...args) {
870      console.warn("WebGLRenderingContext.stencilOp interface mocked in the Previewer. How this interface works on the" +
871        " Previewer may be different from that on a real device.")
872    },
873
874    stencilOpSeparate: function (...args) {
875      console.warn("WebGLRenderingContext.stencilOpSeparate interface mocked in the Previewer. How this interface works on the" +
876        " Previewer may be different from that on a real device.")
877    },
878    texParameterf: function (...args) {
879      console.warn("WebGLRenderingContext.texParameterf interface mocked in the Previewer. How this interface works on the" +
880        " Previewer may be different from that on a real device.")
881    },
882    texParameteri: function (...args) {
883      console.warn("WebGLRenderingContext.texParameteri interface mocked in the Previewer. How this interface works on the" +
884        " Previewer may be different from that on a real device.")
885    },
886    uniform1f: function (...args) {
887      console.warn("WebGLRenderingContext.uniform1f interface mocked in the Previewer. How this interface works on the" +
888        " Previewer may be different from that on a real device.")
889    },
890    uniform2f: function (...args) {
891      console.warn("WebGLRenderingContext.uniform2f interface mocked in the Previewer. How this interface works on the" +
892        " Previewer may be different from that on a real device.")
893    },
894
895    uniform3f: function (...args) {
896      console.warn("WebGLRenderingContext.uniform3f interface mocked in the Previewer. How this interface works on the" +
897        " Previewer may be different from that on a real device.")
898    },
899    uniform4f: function (...args) {
900      console.warn("WebGLRenderingContext.uniform4f interface mocked in the Previewer. How this interface works on the" +
901        " Previewer may be different from that on a real device.")
902    },
903    uniform1i: function (...args) {
904      console.warn("WebGLRenderingContext.uniform1i interface mocked in the Previewer. How this interface works on the" +
905        " Previewer may be different from that on a real device.")
906    },
907    uniform2i: function (...args) {
908      console.warn("WebGLRenderingContext.uniform2i interface mocked in the Previewer. How this interface works on the" +
909        " Previewer may be different from that on a real device.")
910    },
911    uniform3i: function (...args) {
912      console.warn("WebGLRenderingContext.uniform3i interface mocked in the Previewer. How this interface works on the" +
913        " Previewer may be different from that on a real device.")
914    },
915
916    uniform4i: function (...args) {
917      console.warn("WebGLRenderingContext.uniform4i interface mocked in the Previewer. How this interface works on the" +
918        " Previewer may be different from that on a real device.")
919    },
920    useProgram: function (...args) {
921      console.warn("WebGLRenderingContext.useProgram interface mocked in the Previewer. How this interface works on the" +
922        " Previewer may be different from that on a real device.")
923    },
924    validateProgram: function (...args) {
925      console.warn("WebGLRenderingContext.validateProgram interface mocked in the Previewer. How this interface works on the" +
926        " Previewer may be different from that on a real device.")
927    },
928    vertexAttrib1f: function (...args) {
929      console.warn("WebGLRenderingContext.vertexAttrib1f interface mocked in the Previewer. How this interface works on the" +
930        " Previewer may be different from that on a real device.")
931    },
932    vertexAttrib2f: function (...args) {
933      console.warn("WebGLRenderingContext.vertexAttrib2f interface mocked in the Previewer. How this interface works on the" +
934        " Previewer may be different from that on a real device.")
935    },
936
937    vertexAttrib3f: function (...args) {
938      console.warn("WebGLRenderingContext.vertexAttrib3f interface mocked in the Previewer. How this interface works on the" +
939        " Previewer may be different from that on a real device.")
940    },
941    vertexAttrib4f: function (...args) {
942      console.warn("WebGLRenderingContext.vertexAttrib4f interface mocked in the Previewer. How this interface works on the" +
943        " Previewer may be different from that on a real device.")
944    },
945    vertexAttrib1fv: function (...args) {
946      console.warn("WebGLRenderingContext.vertexAttrib1fv interface mocked in the Previewer. How this interface works on the" +
947        " Previewer may be different from that on a real device.")
948    },
949    vertexAttrib2fv: function (...args) {
950      console.warn("WebGLRenderingContext.vertexAttrib2fv interface mocked in the Previewer. How this interface works on the" +
951        " Previewer may be different from that on a real device.")
952    },
953    vertexAttrib3fv: function (...args) {
954      console.warn("WebGLRenderingContext.vertexAttrib3fv interface mocked in the Previewer. How this interface works on the" +
955        " Previewer may be different from that on a real device.")
956    },
957
958    vertexAttrib4fv: function (...args) {
959      console.warn("WebGLRenderingContext.vertexAttrib4fv interface mocked in the Previewer. How this interface works on the" +
960        " Previewer may be different from that on a real device.")
961    },
962    vertexAttribPointer: function (...args) {
963      console.warn("WebGLRenderingContext.vertexAttribPointer interface mocked in the Previewer. How this interface works on the" +
964        " Previewer may be different from that on a real device.")
965    },
966    viewport: function (...args) {
967      console.warn("WebGLRenderingContext.vertexAttrib3fv interface mocked in the Previewer. How this interface works on the" +
968        " Previewer may be different from that on a real device.")
969    },
970
971    bufferData: function (...args) {
972      console.warn("WebGLRenderingContext.bufferData interface mocked in the Previewer. How this interface works on the" +
973        " Previewer may be different from that on a real device.")
974    },
975    bufferSubData: function (...args) {
976      console.warn("WebGLRenderingContext.bufferSubData interface mocked in the Previewer. How this interface works on the" +
977        " Previewer may be different from that on a real device.")
978    },
979    compressedTexImage2D: function (...args) {
980      console.warn("WebGLRenderingContext.compressedTexImage2D interface mocked in the Previewer. How this interface works on the" +
981        " Previewer may be different from that on a real device.")
982    },
983    compressedTexSubImage2D: function (...args) {
984      console.warn("WebGLRenderingContext.compressedTexSubImage2D interface mocked in the Previewer. How this interface works on the" +
985        " Previewer may be different from that on a real device.")
986    },
987    readPixels: function (...args) {
988      console.warn("WebGLRenderingContext.readPixels interface mocked in the Previewer. How this interface works on the" +
989        " Previewer may be different from that on a real device.")
990    },
991
992    texImage2D: function (...args) {
993      console.warn("WebGLRenderingContext.texImage2D interface mocked in the Previewer. How this interface works on the" +
994        " Previewer may be different from that on a real device.")
995    },
996    texSubImage2D: function (...args) {
997      console.warn("WebGLRenderingContext.texSubImage2D interface mocked in the Previewer. How this interface works on the" +
998        " Previewer may be different from that on a real device.")
999    },
1000    uniform1fv: function (...args) {
1001      console.warn("WebGLRenderingContext.uniform1fv interface mocked in the Previewer. How this interface works on the" +
1002        " Previewer may be different from that on a real device.")
1003    },
1004    uniform2fv: function (...args) {
1005      console.warn("WebGLRenderingContext.uniform2fv interface mocked in the Previewer. How this interface works on the" +
1006        " Previewer may be different from that on a real device.")
1007    },
1008    uniform3fv: function (...args) {
1009      console.warn("WebGLRenderingContext.uniform3fv interface mocked in the Previewer. How this interface works on the" +
1010        " Previewer may be different from that on a real device.")
1011    },
1012
1013    uniform4fv: function (...args) {
1014      console.warn("WebGLRenderingContext.uniform4fv interface mocked in the Previewer. How this interface works on the" +
1015        " Previewer may be different from that on a real device.")
1016    },
1017    uniform1iv: function (...args) {
1018      console.warn("WebGLRenderingContext.uniform1iv interface mocked in the Previewer. How this interface works on the" +
1019        " Previewer may be different from that on a real device.")
1020    },
1021    uniform2iv: function (...args) {
1022      console.warn("WebGLRenderingContext.uniform2iv interface mocked in the Previewer. How this interface works on the" +
1023        " Previewer may be different from that on a real device.")
1024    },
1025    uniform3iv: function (...args) {
1026      console.warn("WebGLRenderingContext.uniform3iv interface mocked in the Previewer. How this interface works on the" +
1027        " Previewer may be different from that on a real device.")
1028    },
1029    uniform4iv: function (...args) {
1030      console.warn("WebGLRenderingContext.uniform4iv interface mocked in the Previewer. How this interface works on the" +
1031        " Previewer may be different from that on a real device.")
1032    },
1033
1034    uniformMatrix2fv: function (...args) {
1035      console.warn("WebGLRenderingContext.uniformMatrix2fv interface mocked in the Previewer. How this interface works on the" +
1036        " Previewer may be different from that on a real device.")
1037    },
1038    uniformMatrix3fv: function (...args) {
1039      console.warn("WebGLRenderingContext.uniformMatrix3fv interface mocked in the Previewer. How this interface works on the" +
1040        " Previewer may be different from that on a real device.")
1041    },
1042    uniformMatrix4fv: function (...args) {
1043      console.warn("WebGLRenderingContext.uniformMatrix4fv interface mocked in the Previewer. How this interface works on the" +
1044        " Previewer may be different from that on a real device.")
1045    }
1046  }
1047  return WebGLRenderingContext;
1048}