Source code

Revision control

Copy as Markdown

Other Tools

<!--
Copyright (c) 2019 The Khronos Group Inc.
Use of this source code is governed by an MIT-style license that can be
found in the LICENSE.txt file.
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>WebGL2 Methods Test</title>
<link rel="stylesheet" href="../../resources/js-test-style.css"/>
<script src="../../js/js-test-pre.js"></script>
<script src="../../js/webgl-test-utils.js"></script>
<script src="../../js/tests/context-methods.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>
<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas>
<script>
"use strict";
description("This test ensures that the WebGL context has all the methods in the specification.");
const methods = [
"getContextAttributes",
"activeTexture",
"attachShader",
"bindAttribLocation",
"bindBuffer",
"bindFramebuffer",
"bindRenderbuffer",
"bindTexture",
"blendColor",
"blendEquation",
"blendEquationSeparate",
"blendFunc",
"blendFuncSeparate",
"bufferData",
"bufferSubData",
"checkFramebufferStatus",
"clear",
"clearColor",
"clearDepth",
"clearStencil",
"colorMask",
"compileShader",
"compressedTexImage2D",
"compressedTexSubImage2D",
"copyTexImage2D",
"copyTexSubImage2D",
"createBuffer",
"createFramebuffer",
"createProgram",
"createRenderbuffer",
"createShader",
"createTexture",
"cullFace",
"deleteBuffer",
"deleteFramebuffer",
"deleteProgram",
"deleteRenderbuffer",
"deleteShader",
"deleteTexture",
"depthFunc",
"depthMask",
"depthRange",
"detachShader",
"disable",
"disableVertexAttribArray",
"drawArrays",
"drawElements",
"enable",
"enableVertexAttribArray",
"finish",
"flush",
"framebufferRenderbuffer",
"framebufferTexture2D",
"frontFace",
"generateMipmap",
"getActiveAttrib",
"getActiveUniform",
"getAttachedShaders",
"getAttribLocation",
"getParameter",
"getBufferParameter",
"getError",
"getExtension",
"getFramebufferAttachmentParameter",
"getProgramParameter",
"getProgramInfoLog",
"getRenderbufferParameter",
"getShaderParameter",
"getShaderInfoLog",
"getShaderPrecisionFormat",
"getShaderSource",
"getSupportedExtensions",
"getTexParameter",
"getUniform",
"getUniformLocation",
"getVertexAttrib",
"getVertexAttribOffset",
"hint",
"isBuffer",
"isContextLost",
"isEnabled",
"isFramebuffer",
"isProgram",
"isRenderbuffer",
"isShader",
"isTexture",
"lineWidth",
"linkProgram",
"pixelStorei",
"polygonOffset",
"readPixels",
"renderbufferStorage",
"sampleCoverage",
"scissor",
"shaderSource",
"stencilFunc",
"stencilFuncSeparate",
"stencilMask",
"stencilMaskSeparate",
"stencilOp",
"stencilOpSeparate",
"texImage2D",
"texParameterf",
"texParameteri",
"texSubImage2D",
"uniform1f",
"uniform1fv",
"uniform1i",
"uniform1iv",
"uniform2f",
"uniform2fv",
"uniform2i",
"uniform2iv",
"uniform3f",
"uniform3fv",
"uniform3i",
"uniform3iv",
"uniform4f",
"uniform4fv",
"uniform4i",
"uniform4iv",
"uniformMatrix2fv",
"uniformMatrix3fv",
"uniformMatrix4fv",
"useProgram",
"validateProgram",
"vertexAttrib1f",
"vertexAttrib1fv",
"vertexAttrib2f",
"vertexAttrib2fv",
"vertexAttrib3f",
"vertexAttrib3fv",
"vertexAttrib4f",
"vertexAttrib4fv",
"vertexAttribPointer",
"viewport",
// WebGL2 methods
"getBufferSubData",
"copyBufferSubData",
"blitFramebuffer",
"framebufferTextureLayer",
"getInternalformatParameter",
"invalidateFramebuffer",
"invalidateSubFramebuffer",
"readBuffer",
"renderbufferStorageMultisample",
"texImage3D",
"texStorage2D",
"texStorage3D",
"texSubImage3D",
"copyTexSubImage3D",
"compressedTexImage3D",
"compressedTexSubImage3D",
"getFragDataLocation",
"uniform1ui",
"uniform2ui",
"uniform3ui",
"uniform4ui",
"uniform1uiv",
"uniform2uiv",
"uniform3uiv",
"uniform4uiv",
"uniformMatrix2x3fv",
"uniformMatrix3x2fv",
"uniformMatrix2x4fv",
"uniformMatrix4x2fv",
"uniformMatrix3x4fv",
"uniformMatrix4x3fv",
"vertexAttribI4i",
"vertexAttribI4iv",
"vertexAttribI4ui",
"vertexAttribI4uiv",
"vertexAttribIPointer",
"vertexAttribDivisor",
"drawArraysInstanced",
"drawElementsInstanced",
"drawRangeElements",
"drawBuffers",
"clearBufferiv",
"clearBufferuiv",
"clearBufferfv",
"clearBufferfi",
"createQuery",
"deleteQuery",
"isQuery",
"beginQuery",
"endQuery",
"getQuery",
"getQueryParameter",
"createSampler",
"deleteSampler",
"isSampler",
"bindSampler",
"samplerParameteri",
"samplerParameterf",
"getSamplerParameter",
"fenceSync",
"isSync",
"deleteSync",
"clientWaitSync",
"waitSync",
"getSyncParameter",
"createTransformFeedback",
"deleteTransformFeedback",
"isTransformFeedback",
"bindTransformFeedback",
"beginTransformFeedback",
"endTransformFeedback",
"transformFeedbackVaryings",
"getTransformFeedbackVarying",
"pauseTransformFeedback",
"resumeTransformFeedback",
"bindBufferBase",
"bindBufferRange",
"getIndexedParameter",
"getUniformIndices",
"getActiveUniforms",
"getUniformBlockIndex",
"getActiveUniformBlockParameter",
"getActiveUniformBlockName",
"uniformBlockBinding",
"createVertexArray",
"deleteVertexArray",
"isVertexArray",
"bindVertexArray",
];
debug("");
debug("Canvas.getContext");
const wtu = WebGLTestUtils;
const canvas = document.getElementById("canvas");
const gl = wtu.create3DContext(canvas, null, 2);
testContextMethods(gl, methods);
debug("");
var successfullyParsed = true;
</script>
<script src="../../js/js-test-post.js"></script>
</body>
</html>