| |
| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>WebGL instanceof test.</title> |
| <script src="../../../resources/js-test.js"></script> |
| <script src="resources/webgl-test.js"> </script> |
| <script src="resources/webgl-test-utils.js"> </script> |
| </head> |
| <body> |
| <canvas id="canvas" width="2" height="2" style="width: 40px; height: 40px;"></canvas> |
| <div id="description"></div> |
| <div id="console"></div> |
| <script id="vshader" type="x-shader/x-vertex"> |
| attribute vec4 vPosition; |
| varying vec2 texCoord; |
| void main() |
| { |
| gl_Position = vPosition; |
| } |
| </script> |
| |
| <script id="fshader" type="x-shader/x-fragment"> |
| precision mediump float; |
| uniform vec4 color; |
| void main() |
| { |
| gl_FragColor = color; |
| } |
| </script> |
| <script> |
| var wtu = WebGLTestUtils; |
| description(document.title); |
| debug("Tests that instanceof works on WebGL objects."); |
| debug(""); |
| var gl = create3DContext(document.getElementById("canvas")); |
| shouldBeTrue('gl instanceof WebGLRenderingContext'); |
| shouldBeTrue('gl.createBuffer() instanceof WebGLBuffer'); |
| shouldBeTrue('gl.createFramebuffer() instanceof WebGLFramebuffer'); |
| shouldBeTrue('gl.createProgram() instanceof WebGLProgram'); |
| shouldBeTrue('gl.createRenderbuffer() instanceof WebGLRenderbuffer'); |
| shouldBeTrue('gl.createShader(gl.VERTEX_SHADER) instanceof WebGLShader'); |
| shouldBeTrue('gl.createTexture() instanceof WebGLTexture'); |
| |
| var program = wtu.setupProgram( |
| gl, |
| [wtu.loadShaderFromScript(gl, 'vshader', gl.VERTEX_SHADER), |
| wtu.loadShaderFromScript(gl, 'fshader', gl.FRAGMENT_SHADER)], |
| ['vPosition'], [0]); |
| |
| shouldBeTrue('gl.getUniformLocation(program, "color") instanceof WebGLUniformLocation'); |
| shouldBeTrue('gl.getActiveAttrib(program, 0) instanceof WebGLActiveInfo'); |
| shouldBeTrue('gl.getActiveUniform(program, 0) instanceof WebGLActiveInfo'); |
| |
| debug(""); |
| debug("Tests that those WebGL objects can not be constructed through new operator"); |
| debug(""); |
| |
| function shouldThrowWithNew(objectType, objectName) |
| { |
| try { |
| new objectType; |
| testFailed('new ' + objectName + ' did not throw'); |
| } catch (e) { |
| testPassed('new ' + objectName + ' threw an error'); |
| } |
| } |
| |
| shouldThrowWithNew(window.WebGLRenderingContext, 'WebGLRenderingContext'); |
| shouldThrowWithNew(window.WebGLActiveInfo, 'WebGLActiveInfo'); |
| shouldThrowWithNew(window.WebGLBuffer, 'WebGLBuffer'); |
| shouldThrowWithNew(window.WebGLFramebuffer, 'WebGLFramebuffer'); |
| shouldThrowWithNew(window.WebGLProgram, 'WebGLProgram'); |
| shouldThrowWithNew(window.WebGLRenderbuffer, 'WebGLRenderbuffer'); |
| shouldThrowWithNew(window.WebGLShader, 'WebGLShader'); |
| shouldThrowWithNew(window.WebGLTexture, 'WebGLTexture'); |
| shouldThrowWithNew(window.WebGLUniformLocation, 'WebGLUniformLocation'); |
| shouldThrowWithNew(window.WebGLShaderPrecisionFormat, 'WebGLShaderPrecisionFormat'); |
| </script> |
| </body> |
| </html> |
| |
| |