/* * Copyright (C) 2021 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import app from '@system.app' import webgl from "@ohos.webglnapi"; import Context from '@ohos.napi_context' import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' describe('webgl1Test', function() { console.info('webgltest start'); var gl; var gl2; var indices = new Uint16Array([0, 1, 2, 1, 3, 4]); var vertices = new Uint16Array([ -0.5, 0.5, 0.0, 0.0, 0.5, 0.0, -0.25, 0.25, 0.0, 0.5, 0.5, 0.0, 0.25, 0.25, 0.0, ]) //顶点着色器程序 var VSHADER_SOURCE = "attribute vec4 a_Position;" + "void main() {" + //设置坐标 "gl_Position = a_Position; " + // "gl_PointSize = 10.0;" + "} "; //片元着色器 var FSHADER_SOURCE = "void main() {" + //设置颜色 "gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);" + "}"; function globalFunction() { const vertexShader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(vertexShader, VSHADER_SOURCE); gl.compileShader(vertexShader); const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); gl.shaderSource(fragmentShader, FSHADER_SOURCE); gl.compileShader(fragmentShader); const programObj = gl.createProgram(); console.info("testUseProgram has failed for " + programObj) const useProgramError1 = gl.getError(); console.info("useProgramError: " + useProgramError1); const renderBufferValue1 = gl.getParameter(gl.CURRENT_PROGRAM); console.info("testUseProgram has failed for " + renderBufferValue1) gl.attachShader(programObj, vertexShader); gl.attachShader(programObj, fragmentShader); gl.linkProgram(programObj); gl.useProgram(programObj); return programObj; } function createProgram(gl) { //顶点着色器程序 var VSHADER_SOURCE = 'attribute vec4 a_Position;\n' + 'void main() {\n' + ' gl_Position = a_Position;\n' + '}\n'; // 片元着色器程序 var FSHADER_SOURCE = 'precision mediump float;\n' + 'uniform vec4 u_FragColor;\n' + 'void main() {\n' + ' gl_FragColor = u_FragColor;\n' + '}\n'; var vertexShader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(vertexShader, VSHADER_SOURCE); gl.compileShader(vertexShader); var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); gl.shaderSource(fragmentShader, FSHADER_SOURCE); gl.compileShader(fragmentShader); const programObj = gl.createProgram(); console.log("testUseProgram has failed for " + programObj) const useProgramError1 = gl.getError(); console.info("useProgramError: " + useProgramError1); const renderBufferValue1 = gl.getParameter(gl.CURRENT_PROGRAM); console.log("testUseProgram has failed for " + renderBufferValue1) gl.attachShader(programObj, vertexShader); gl.attachShader(programObj, fragmentShader); gl.linkProgram(programObj); gl.useProgram(programObj); return programObj; } function initShaders(gl, vshader, fshader) { var program = createProgramExternal(gl, vshader, fshader); console.log("======createProgram program: " + JSON.stringify(program)); if (!program) { console.log('Failed to create program'); return false; } gl.useProgram(program); gl.program = program; return true; } function createProgramExternal(gl, vshader, fshader) { // Create shader object var vertexShader = loadShader(gl, gl.VERTEX_SHADER, vshader); console.log("======vertexShader: " + vertexShader); var fragmentShader = loadShader(gl, gl.FRAGMENT_SHADER, fshader); if (!vertexShader || !fragmentShader) { return null; } // Create a program object var program = gl.createProgram(); console.log("======createProgram program: " + JSON.stringify(program)); if (!program) { return null; } // Attach the shader objects gl.attachShader(program, vertexShader); gl.attachShader(program, fragmentShader); // Link the program object gl.linkProgram(program); // Check the result of linking var linked = gl.getProgramParameter(program, 0x8B82); console.log("======getProgramParameter linked: " + linked); const getUniformLocationValue = gl.getUniformLocation(program, "a_Position"); console.log("======getUniformLocation: " + JSON.stringify(getUniformLocationValue)); if (!linked) { var error = gl.getProgramInfoLog(program); console.log('Failed to link program: ' + error); gl.deleteProgram(program); gl.deleteShader(fragmentShader); gl.deleteShader(vertexShader); return null; } return program; } function loadShader(gl, type, source) { console.log("======into loadShader===="); // Create shader object var shader = gl.createShader(type); if (shader == null) { console.log('unable to create shader'); return null; } const isShaderValue = gl.isShader(shader); console.log('isShader: ' + isShaderValue); // Set the shader program gl.shaderSource(shader, source); // Compile the shader gl.compileShader(shader); // Check the result of compilation var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); if (!compiled) { var error = gl.getShaderInfoLog(shader); console.log('Failed to compile shader: ' + error); gl.deleteShader(shader); return null; } var vertex = gl.getShaderParameter(shader, gl.VERTEX_SHADER); console.log('getShaderParameter VERTEX_SHADER: ' + vertex); return shader; } function initVertexBuffers(gl) { var vertices = new Float32Array([ 0.0, -1.0, -0.5, 0, 0.5, 0 ]); var n = 3; // 点的个数 // 创建缓冲区对象 var vertexBuffer = gl.createBuffer(); if (!vertexBuffer) { console.log('Failed to create the buffer object'); return -1; } // 将缓冲区对象绑定到目标 gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer); // 向缓冲区对象写入数据 gl.bufferData(gl.ARRAY_BUFFER, vertices.buffer, gl.STATIC_DRAW); var aPosition = gl.getAttribLocation(gl.program, 'a_Position'); console.info("webgl# getAttribLocation getAttribLocation success:" + JSON.stringify(gl.program)); console.info("webgl# getAttribLocation getAttribLocation success:" + aPosition); if (aPosition < 0) { console.log('Failed to get the storage location of a_Position'); return -1; } // 将缓冲区对象分配给a_Position变量 gl.vertexAttribPointer(aPosition, 2, gl.FLOAT, false, 0, 0); // 连接a_Position变量与分配给它的缓冲区对象 gl.enableVertexAttribArray(aPosition); return n; } var float1 = new Float32Array([1.1, 1.2, 1.3, 1.4]); var int1 = new Int8Array([1, 1, 1, 1]); var uint1 = new Uint8Array([1, 1, 1, 1]); var float2 = [1.1, 1.2, 1.3, 1.4]; var int2 = [1, 1, 1, 1]; var uint2 = [1, 1, 1, 1]; function initContext() { console.info('initContext start'); // 获取canvas元素 const el = global.el; const el2 = global.el2; // 获取webgl上下文 gl = el.getContext('webgl'); if (!gl) { console.log('webgltest Failed to get the rendering context for WebGL'); } gl2 = el2.getContext('webgl2'); if (!gl) { console.log('webgltest Failed to get the rendering context for WebGL2'); } console.info('webgltest initContext finish'); } function deleteContext() { if (gl != null) { gl = null; console.info("webgltest gl has null"); } if (gl2 != null) { console.info("webgltest gl2 has null"); gl2 = null; } } /** * run before testClass */ beforeAll(async function(done) { console.info('webgltest beforeAll called'); initContext(); done(); }); /** * run after testClass */ afterAll(async function(done) { console.info('webgltest afterEach called'); deleteContext(); done(); }) /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0001 * @tc.name webgl_test_getContextAttributes * @tc.desc Test getContextAttributes. */ it('webgl_test_getContextAttributes', 0, async function(done) { console.info("webgltest into getContextAttributes"); const getContextAttributesValue = gl.getContextAttributes(); console.info("webgltest getContextAttributes: " + getContextAttributesValue); expect(typeof(getContextAttributesValue)).assertEqual("object" || null); done(); }) /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0002 * @tc.name webgl_test_isContextLost * @tc.desc Test isContextLost. */ it('webgl_test_isContextLost', 0, async function(done) { console.info("webgltest into isContextLost"); const isContextLostValue = gl.isContextLost(); console.info("webgltest isContextLost: " + isContextLostValue); expect(isContextLostValue).assertEqual(false); done(); }) /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0003 * @tc.name webgl_test_getSupportedExtensions * @tc.desc Test getSupportedExtensions. */ it('webgl_test_getSupportedExtensions', 0, async function(done) { //initContext(); console.info("webgltest into getSupportedExtensions"); const getSupportedExtensionsValue = gl.getSupportedExtensions(); console.info("webgltest getSupportedExtensions: " + getSupportedExtensionsValue); expect(typeof(getSupportedExtensionsValue)).assertEqual('object'); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0005 * @tc.name webgl_test_getExtension * @tc.desc Test getExtension. */ it('webgl_test_getExtension', 0, async function(done) { //initContext(); console.info("webgltest into getExtension"); const getExtensionValue = gl.getExtension(); console.info("webgltest getExtension: " + getExtensionValue); expect(getExtensionValue).assertEqual(undefined); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0006 * @tc.name webgl_test_activeTexture * @tc.desc Test activeTexture. */ it('webgl_test_activeTexture', 0, async function(done) { //initContext(); console.info("webgltest into activeTexture"); gl.activeTexture(gl.TEXTURE0); const activeTextureParameter = gl.getParameter(gl.ACTIVE_TEXTURE); console.info("webgltest activeTexture --> getParameter: " + activeTextureParameter); expect(activeTextureParameter).assertEqual(33984); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0007 * @tc.name webgl_test_activeTexture_1 * @tc.desc Test activeTexture. */ it('webgl_test_activeTexture_1', 0, async function(done) { //initContext(); console.info("webgltest into activeTexture"); gl.activeTexture(gl.TEXTURE1); const activeTextureParameter = gl.getParameter(gl.ACTIVE_TEXTURE); console.info("webgltest activeTexture --> getParameter: " + activeTextureParameter); expect(activeTextureParameter).assertEqual(33985); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0008 * @tc.name webgl_test_attachShader * @tc.desc Test attachShader. */ it('webgl_test_attachShader', 0, async function(done) { //initContext(); console.info("webgltest into attachShader"); //顶点着色器程序 var VSHADER_SOURCE = 'attribute vec4 a_Position;\n' + 'void main() {\n' + ' gl_Position = a_Position;\n' + '}\n'; // 片元着色器程序 var FSHADER_SOURCE = 'precision mediump float;\n' + 'uniform vec4 u_FragColor;\n' + 'void main() {\n' + ' gl_FragColor = u_FragColor;\n' + '}\n'; var vertexShader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(vertexShader, VSHADER_SOURCE); gl.compileShader(vertexShader); var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); gl.shaderSource(fragmentShader, FSHADER_SOURCE); gl.compileShader(fragmentShader); const programObj = gl.createProgram(); console.log("testUseProgram has failed for " + programObj) const useProgramError1 = gl.getError(); console.info("useProgramError: " + useProgramError1); const renderBufferValue1 = gl.getParameter(gl.CURRENT_PROGRAM); console.log("testUseProgram has failed for " + renderBufferValue1) gl.attachShader(programObj, vertexShader); gl.attachShader(programObj, fragmentShader); gl.linkProgram(programObj); gl.useProgram(programObj); let errorCode = gl.getError(); console.info("webgltest attachShader getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0009 * @tc.name webgl_test_bindAttribLocation * @tc.desc Test bindAttribLocation. */ it('webgl_test_bindAttribLocation', 0, async function(done) { //initContext(); console.info("webgltest into bindAttribLocation"); //顶点着色器程序 var VSHADER_SOURCE = 'attribute vec4 a_Position;\n' + 'void main() {\n' + ' gl_Position = a_Position;\n' + '}\n'; // 片元着色器程序 var FSHADER_SOURCE = 'precision mediump float;\n' + 'uniform vec4 u_FragColor;\n' + 'void main() {\n' + ' gl_FragColor = u_FragColor;\n' + '}\n'; var vertexShader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(vertexShader, VSHADER_SOURCE); gl.compileShader(vertexShader); var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); gl.shaderSource(fragmentShader, FSHADER_SOURCE); gl.compileShader(fragmentShader); const programObj = gl.createProgram(); console.log("testUseProgram has failed for " + programObj) const useProgramError1 = gl.getError(); console.info("useProgramError: " + useProgramError1); const renderBufferValue1 = gl.getParameter(gl.CURRENT_PROGRAM); console.log("testUseProgram has failed for " + renderBufferValue1) gl.attachShader(programObj, vertexShader); gl.attachShader(programObj, fragmentShader); gl.linkProgram(programObj); gl.useProgram(programObj); gl.bindAttribLocation(programObj, 1, 'a_Position'); let errorCode = gl.getError(); console.info("webgltest bindAttribLocation getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0010 * @tc.name webgl_test_bindBuffer * @tc.desc Test bindBuffer. */ it('webgl_test_bindBuffer', 0, async function(done) { //initContext(); console.info("webgltest into bindBuffer"); var buffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buffer); //bind后isBuffer为true const isBufferValue = gl.isBuffer(buffer); console.info("isBufferValue: " + isBufferValue); expect(isBufferValue).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0011 * @tc.name webgl_test_bindBuffer_1 * @tc.desc Test bindBuffer. */ it('webgl_test_bindBuffer_1', 0, async function(done) { //initContext(); console.info("webgltest into bindBuffer"); var buffer = gl.createBuffer(); // bind前isBuffer为false const isBufferValue0 = gl.isBuffer(buffer); console.info("webgltest isBufferValue0: " + isBufferValue0); expect(isBufferValue0).assertEqual(false); gl.bindBuffer(gl.ARRAY_BUFFER, buffer); //bind后isBuffer为true const isBufferValue = gl.isBuffer(buffer); console.info("isBufferValue: " + isBufferValue); expect(isBufferValue).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0012 * @tc.name webgl_test_bindFramebuffer * @tc.desc Test bindFramebuffer. */ it('webgl_test_bindFramebuffer', 0, async function(done) { //initContext(); console.info("webgltest into bindFramebuffer"); var framebuffer = gl.createFramebuffer(); const isFramebuffer1 = gl.isFramebuffer(framebuffer); console.info("createFramebuffer --> isFramebuffer1: " + isFramebuffer1); expect(isFramebuffer1).assertEqual(false); // bind gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); const isFrameBuffer2 = gl.isFramebuffer(framebuffer); console.info("createFramebuffer --> bindFramebuffer --> isFrameBuffer2: " + isFrameBuffer2); expect(isFrameBuffer2).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0013 * @tc.name webgl_test_bindRenderbuffer * @tc.desc Test bindRenderbuffer. */ it('webgl_test_bindRenderbuffer', 0, async function(done) { //initContext(); console.info("webgltest into bindRenderbuffer"); var renderbuffer = gl.createRenderbuffer(); //不 bindRenderbuffer, 那么下面会返回 false const isRenderBuffer0 = gl.isRenderbuffer(renderbuffer); console.info("createRenderbuffer --> isRenderbuffer0: " + isRenderBuffer0); expect(isRenderBuffer0).assertEqual(false); gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); // bindRenderbuffer后, isRenderbuffer返回true const isRenderBuffer1 = gl.isRenderbuffer(renderbuffer); console.info("createRenderbuffer --> bindRenderbuffer --> isRenderbuffer: " + isRenderBuffer1); expect(isRenderBuffer1).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0014 * @tc.name webgl_test_bindTexture * @tc.desc Test bindTexture. */ it('webgl_test_bindTexture', 0, async function(done) { //initContext(); console.info("webgltest into bindTexture"); var texture = gl.createTexture(); const isTexture0 = gl.isTexture(texture); console.info("createTexture --> isTexture: " + isTexture0); expect(isTexture0).assertEqual(false); gl.bindTexture(gl.TEXTURE_2D, texture); const isTexture1 = gl.isTexture(texture); console.info("createTexture --> bindTexture --> isTexture: " + isTexture1); expect(isTexture1).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0015 * @tc.name webgl_test_blendColor * @tc.desc Test blendColor. */ it('webgl_test_blendColor', 0, async function(done) { //initContext(); console.info("webgltest into blendColor"); gl.blendColor(0, 0.5, 1, 1); const blendColorValue = gl.getParameter(gl.BLEND_COLOR); console.info("blendColor --> getParameter: " + blendColorValue); var blendColorArr = new Float32Array([0, 0.5, 1, 1]); // expect(blendColorValue).assertEqual(blendColorArr); // 判断数据类型是否正确 expect(blendColorValue.constructor).assertEqual(blendColorArr.constructor); // 判断数据值是否正确 expect(blendColorValue.toString()).assertEqual(blendColorArr.toString()); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0016 * @tc.name webgl_test_blendColor_1 * @tc.desc Test blendColor. */ it('webgl_test_blendColor_1', 0, async function(done) { //initContext(); console.info("webgltest into blendColor"); gl.blendColor(1, 1, 1, 1); const blendColorValue = gl.getParameter(gl.BLEND_COLOR); console.info("blendColor --> getParameter: " + blendColorValue); var blendColorArr = new Float32Array([1, 1, 1, 1]); // expect(blendColorValue).assertEqual(blendColorArr); // 判断数据类型是否正确 expect(blendColorValue.constructor).assertEqual(blendColorArr.constructor); // 判断数据值是否正确 expect(blendColorValue.toString()).assertEqual(blendColorArr.toString()); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0017 * @tc.name webgl_test_blendEquation * @tc.desc Test blendEquation. */ it('webgl_test_blendEquation', 0, async function(done) { //initContext(); console.info("webgltest into blendEquation"); gl.blendEquation(gl.FUNC_ADD); const blendEquationValue = gl.getParameter(gl.BLEND_EQUATION_RGB); console.info("blendEquation --> getParameter: " + blendEquationValue); expect(blendEquationValue).assertEqual(gl.FUNC_ADD); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0018 * @tc.name webgl_test_blendEquation_1 * @tc.desc Test blendEquation. */ it('webgl_test_blendEquation_1', 0, async function(done) { //initContext(); console.info("webgltest into blendEquation"); gl.blendEquation(gl.FUNC_ADD); const blendEquationValue2 = gl.getParameter(gl.BLEND_EQUATION_ALPHA); console.info("blendEquation --> getParameter: " + blendEquationValue2); expect(blendEquationValue2).assertEqual(32774); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0019 * @tc.name webgl_test_blendEquationSeparate * @tc.desc Test blendEquationSeparate. */ it('webgl_test_blendEquationSeparate', 0, async function(done) { //initContext(); console.info("webgltest into blendEquationSeparate"); gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_SUBTRACT); const blendEquationSeparateValue = gl.getParameter(gl.BLEND_EQUATION_RGB); console.info("blendEquation --> getParameter: " + blendEquationSeparateValue); expect(blendEquationSeparateValue).assertEqual(gl.FUNC_ADD); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0020 * @tc.name webgl_test_blendFunc * @tc.desc Test blendFunc. */ it('webgl_test_blendFunc', 0, async function(done) { //initContext(); console.info("webgltest into blendFunc"); gl.enable(gl.BLEND); gl.blendFunc(gl.SRC_COLOR, gl.DST_COLOR); const blendFuncValue = gl.getParameter(gl.BLEND_SRC_RGB); console.info("blendFunc --> getParameter: " + blendFuncValue); expect(blendFuncValue).assertEqual(gl.SRC_COLOR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0021 * @tc.name webgl_test_blendFuncSeparate * @tc.desc Test blendFuncSeparate. */ it('webgl_test_blendFuncSeparate', 0, async function(done) { //initContext(); console.info("webgltest into blendFuncSeparate"); gl.enable(gl.BLEND); gl.blendFuncSeparate(gl.SRC_COLOR, gl.DST_COLOR, gl.ONE, gl.ZERO); const blendFuncSeparateParameter = gl.getParameter(gl.BLEND_SRC_RGB) console.info("blendFuncSeparate --> getParameter: " + blendFuncSeparateParameter); expect(blendFuncSeparateParameter).assertEqual(gl.SRC_COLOR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0022 * @tc.name webgl_test_checkFramebufferStatus2 * @tc.desc Test checkFramebufferStatus. */ it('webgl_test_checkFramebufferStatus2', 0, async function(done) { //initContext(); console.info("webgltest into checkFramebufferStatus"); var framebuffer = gl.createFramebuffer(); gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); const checkFramebufferStatus = gl.checkFramebufferStatus(gl.FRAMEBUFFER); console.info("createFramebuffer --> bindFramebuffer --> checkFramebufferStatus: " + checkFramebufferStatus); expect(checkFramebufferStatus).assertEqual(gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0023 * @tc.name webgl_test_checkFramebufferStatus_1 * @tc.desc Test checkFramebufferStatus. */ it('webgl_test_checkFramebufferStatus_1', 0, async function(done) { //initContext(); console.info("webgltest into checkFramebufferStatus"); var framebuffer = gl.createFramebuffer(); gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); gl.deleteFramebuffer(framebuffer); const checkFrameBufferStatus2 = gl.checkFramebufferStatus(gl.FRAMEBUFFER); console.info( "createFramebuffer --> bindFramebuffer --> deleteFramebuffer --> checkFrameBufferStatus2: " + checkFrameBufferStatus2); expect(checkFrameBufferStatus2).assertEqual(gl.FRAMEBUFFER_COMPLETE); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0024 * @tc.name webgl_test_clear * @tc.desc Test clear. */ it('webgl_test_clear', 0, async function(done) { //initContext(); console.info("webgltest into clear"); gl.clear(gl.COLOR_BUFFER_BIT); var float32Array = new Float32Array([0, 0, 0, 0]); const clearParameter = gl.getParameter(gl.COLOR_CLEAR_VALUE); console.info("webgltest clear getParameter: " + clearParameter); expect(typeof(clearParameter)).assertEqual(typeof(float32Array)); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0025 * @tc.name webgl_test_clearColor * @tc.desc Test clearColor. */ it('webgl_test_clearColor', 0, async function(done) { //initContext(); console.info("webgltest into clearColor"); gl.clearColor(1, 0.5, 0.5, 3); const clearColorParameter = gl.getParameter(gl.COLOR_CLEAR_VALUE); var float32ArrayValue = new Float32Array([1, 0.5, 0.5, 3]); console.info("webgltest clearColor: " + clearColorParameter); expect(clearColorParameter.toString()).assertEqual(float32ArrayValue.toString()); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0026 * @tc.name webgl_test_clearDepth * @tc.desc Test clearDepth. */ it('webgl_test_clearDepth', 0, async function(done) { //initContext(); console.info("webgltest into clearDepth"); //用于设置深度缓冲区的深度清除值。 gl.clearDepth(0.5); //若要获取当前深度清除值,查询DEPTH_CLEAR_VALUE 常量。 const clearDepthValue = gl.getParameter(gl.DEPTH_CLEAR_VALUE); // 0.5 console.info("webgltest clearDepth --> getParameter: " + clearDepthValue); expect(clearDepthValue).assertEqual(0.5); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0027 * @tc.name webgl_test_clearDepth_2 * @tc.desc Test clearDepth. */ it('webgl_test_clearDepth_2', 0, async function(done) { //initContext(); console.info("webgltest into clearDepth"); //用于设置深度缓冲区的深度清除值。 gl.clearDepth(8); //若要获取当前深度清除值,查询DEPTH_CLEAR_VALUE 常量。 const clearDepthValue = gl.getParameter(gl.DEPTH_CLEAR_VALUE); // 0.5 console.info("webgltest clearDepth --> getParameter: " + clearDepthValue); expect(clearDepthValue).assertEqual(1); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0028 * @tc.name webgl_test_clearStencil * @tc.desc Test clearStencil. */ it('webgl_test_clearStencil', 0, async function(done) { //initContext(); console.info("webgltest into clearStencil"); gl.clearStencil(1); //要获取当前模板清除值,请查询STENCIL_CLEAR_VALUE 常量。 const clearStencilValue = gl.getParameter(gl.STENCIL_CLEAR_VALUE); console.info("webgltest clearStencil --> getParameter: " + clearStencilValue); expect(clearStencilValue).assertEqual(1); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0029 * @tc.name webgl_test_clearStencil_1 * @tc.desc Test clearStencil. */ it('webgl_test_clearStencil_1', 0, async function(done) { //initContext(); console.info("webgltest into clearStencil"); gl.clearStencil(20); //要获取当前模板清除值,请查询STENCIL_CLEAR_VALUE 常量。 const clearStencilValue = gl.getParameter(gl.STENCIL_CLEAR_VALUE); console.info("webgltest clearStencil --> getParameter: " + clearStencilValue); expect(clearStencilValue).assertEqual(20); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0030 * @tc.name webgl_test_colorMask * @tc.desc Test colorMask. */ it('webgl_test_colorMask', 0, async function(done) { //initContext(); console.info("webgltest into colorMask"); gl.colorMask(true, true, true, false); // 要获取当前的颜色掩码,请查询COLOR_WRITEMASK返回Array. const colorMaskValue = gl.getParameter(gl.COLOR_WRITEMASK); // [true, true, true, false] console.info("webgltest colorMask --> getParameter: " + colorMaskValue); expect(colorMaskValue.toString()).assertEqual('true,true,true,false'); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0031 * @tc.name webgl_test_colorMask_1 * @tc.desc Test colorMask. */ it('webgl_test_colorMask_1', 0, async function(done) { //initContext(); console.info("webgltest into colorMask"); gl.colorMask(false, false, false, false); // 要获取当前的颜色掩码,请查询COLOR_WRITEMASK返回Array. const colorMaskValue = gl.getParameter(gl.COLOR_WRITEMASK); // [true, true, true, false] console.info("webgltest colorMask --> getParameter: " + colorMaskValue); expect(colorMaskValue.toString()).assertEqual('false,false,false,false'); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0032 * @tc.name webgl_test_compileShader * @tc.desc Test compileShader. */ it('webgl_test_compileShader', 0, async function(done) { //initContext(); console.info("webgltest into compileShader"); var shader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(shader, VSHADER_SOURCE); gl.compileShader(shader); let errorCode = gl.getError(); console.info("webgltest compileShader getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0033 * @tc.name webgl_test_copyTexImage2D * @tc.desc Test copyTexImage2D. */ it('webgl_test_copyTexImage2D', 0, async function(done) { //initContext(); console.info("webgltest into copyTexImage2D"); gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 512, 512, 0); let errorCode = gl.getError(); console.info("webgltest copyTexImage2D getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0034 * @tc.name webgl_test_copyTexImage2D * @tc.desc Test copyTexImage2D. */ it('webgl_test_copyTexImage2D', 0, async function(done) { //initContext(); console.info("webgltest into copyTexImage2D"); gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, '512', 512, 0); let errorCode = gl.getError(); console.info("webgltest copyTexImage2D getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0035 * @tc.name webgl_test_copyTexSubImage2D * @tc.desc Test copyTexSubImage2D. */ it('webgl_test_copyTexSubImage2D', 0, async function(done) { //initContext(); console.info("webgltest into copyTexSubImage2D"); gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, 16, 16); let errorCode = gl.getError(); console.info("webgltest copyTexSubImage2D getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0036 * @tc.name webgl_test_copyTexSubImage2D_1 * @tc.desc Test copyTexSubImage2D. */ it('webgl_test_copyTexSubImage2D_1', 0, async function(done) { //initContext(); console.info("webgltest into copyTexSubImage2D"); gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, false, 16); let errorCode = gl.getError(); console.info("webgltest copyTexSubImage2D getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0037 * @tc.name webgl_test_createBuffer * @tc.desc Test createBuffer. */ it('webgl_test_createBuffer', 0, async function(done) { //initContext(); console.info("webgltest into createBuffer"); const buffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buffer); const isBufferValue = gl.isBuffer(buffer); console.info("isBufferValue: " + isBufferValue); console.info("webgltest createBuffer bindBuffer isBuffer: " + isBufferValue); expect(isBufferValue).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0038 * @tc.name webgl_test_createBuffer_1 * @tc.desc Test createBuffer. */ it('webgl_test_createBuffer_1', 0, async function(done) { //initContext(); console.info("webgltest into createBuffer"); const buffer = gl.createBuffer(); const isBufferValue = gl.isBuffer(buffer); console.info("isBufferValue: " + isBufferValue); console.info("webgltest createBuffer bindBuffer isBuffer: " + isBufferValue); expect(isBufferValue).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0039 * @tc.name webgl_test_createFramebuffer * @tc.desc Test createFramebuffer. */ it('webgl_test_createFramebuffer', 0, async function(done) { //initContext(); console.info("webgltest into createFramebuffer"); const framebuffer = gl.createFramebuffer(); gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); const isFramebuffer = gl.isFramebuffer(framebuffer); console.info("webgltest createFramebuffer --> bindFramebuffer --> isFramebuffer: " + isFramebuffer); expect(isFramebuffer).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0040 * @tc.name webgl_test_createFramebuffer_1 * @tc.desc Test createFramebuffer. */ it('webgl_test_createFramebuffer_1', 0, async function(done) { //initContext(); console.info("webgltest into createFramebuffer"); const framebuffer = gl.createFramebuffer(); const isFramebuffer = gl.isFramebuffer(framebuffer); console.info("webgltest createFramebuffer --> bindFramebuffer --> isFramebuffer: " + isFramebuffer); expect(isFramebuffer).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0041 * @tc.name webgl_test_createProgram * @tc.desc Test createProgram. */ it('webgl_test_createProgram', 0, async function(done) { //initContext(); console.info("webgltest into createProgram"); const program = gl.createProgram(); const isProgram = gl.isProgram(program); console.info("webgltest createProgram isProgram: " + isProgram); expect(isProgram).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0042 * @tc.name webgl_test_createRenderbuffer * @tc.desc Test createRenderbuffer. */ it('webgl_test_createRenderbuffer', 0, async function(done) { //initContext(); console.info("webgltest into createRenderbuffer"); const renderbuffer = gl.createRenderbuffer(); gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); const isRenderBuffer = gl.isRenderbuffer(renderbuffer); console.info( "createRenderbuffer --> bindRenderbuffer --> getParameter --> isRenderbuffer: " + isRenderBuffer); expect(isRenderBuffer).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0043 * @tc.name webgl_test_createRenderbuffer_1 * @tc.desc Test createRenderbuffer. */ it('webgl_test_createRenderbuffer_1', 0, async function(done) { //initContext(); console.info("webgltest into createRenderbuffer"); const renderbuffer = gl.createRenderbuffer(); const isRenderBuffer = gl.isRenderbuffer(renderbuffer); console.info( "createRenderbuffer --> bindRenderbuffer --> getParameter --> isRenderbuffer: " + isRenderBuffer); expect(isRenderBuffer).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0044 * @tc.name webgl_test_createShader * @tc.desc Test createShader. */ it('webgl_test_createShader', 0, async function(done) { //initContext(); console.info("webgltest into createShader"); const shader = gl.createShader(gl.VERTEX_SHADER); const isShader = gl.isShader(shader); console.info("webgltest createShader isShader: " + isShader); expect(isShader).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0045 * @tc.name webgl_test_createTexture * @tc.desc Test createTexture. */ it('webgl_test_createTexture', 0, async function(done) { //initContext(); console.info("webgltest into createTexture"); const texture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, texture); const isTexture = gl.isTexture(texture); console.info("webgltest createTexture isTexture: " + isTexture); expect(isTexture).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0046 * @tc.name webgl_test_createTexture_1 * @tc.desc Test createTexture. */ it('webgl_test_createTexture_1', 0, async function(done) { //initContext(); console.info("webgltest into createTexture"); const texture = gl.createTexture(); const isTexture = gl.isTexture(texture); console.info("webgltest createTexture isTexture: " + isTexture); expect(isTexture).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0047 * @tc.name webgl_test_cullFace * @tc.desc Test cullFace. */ it('webgl_test_cullFace', 0, async function(done) { //initContext(); console.info("webgltest into cullFace"); gl.enable(gl.CULL_FACE); gl.cullFace(gl.FRONT_AND_BACK); // 需要 CULL_FACE_MODE 常量来检查当前多边形剔除模式。 const cullFaceparameter = gl.getParameter(gl.CULL_FACE_MODE) console.info("cullFace --> getParameter: " + cullFaceparameter); expect(cullFaceparameter).assertEqual(gl.FRONT_AND_BACK); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0048 * @tc.name webgl_test_cullFace_2 * @tc.desc Test cullFace. */ it('webgl_test_cullFace_2', 0, async function(done) { //initContext(); console.info("webgltest into cullFace"); gl.enable(gl.CULL_FACE); gl.cullFace(gl.FRONT); // 需要 CULL_FACE_MODE 常量来检查当前多边形剔除模式。 const cullFaceparameter = gl.getParameter(gl.CULL_FACE_MODE) console.info("cullFace --> getParameter: " + cullFaceparameter); expect(cullFaceparameter).assertEqual(gl.FRONT); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0049 * @tc.name webgl_test_cullFace_3 * @tc.desc Test cullFace. */ it('webgl_test_cullFace_3', 0, async function(done) { //initContext(); console.info("webgltest into cullFace"); gl.enable(gl.CULL_FACE); gl.cullFace(gl.BACK); // 需要 CULL_FACE_MODE 常量来检查当前多边形剔除模式。 const cullFaceparameter = gl.getParameter(gl.CULL_FACE_MODE) console.info("cullFace --> getParameter: " + cullFaceparameter); expect(cullFaceparameter).assertEqual(gl.BACK); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0050 * @tc.name webgl_test_deleteBuffer * @tc.desc Test deleteBuffer. */ it('webgl_test_deleteBuffer', 0, async function(done) { //initContext(); console.info("webgltest into deleteBuffer"); var buffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buffer); const isBuffer1 = gl.isBuffer(buffer); console.info("webgltest createBuffer bindBuffer isBuffer1: " + isBuffer1); expect(isBuffer1).assertEqual(true); gl.deleteBuffer(buffer); const isBuffer2 = gl.isBuffer(buffer); console.info("webgltest createBuffer bindBuffer deleteBuffer isBuffer2: " + isBuffer2); expect(isBuffer2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0051 * @tc.name webgl_test_deleteBuffer_2 * @tc.desc Test deleteBuffer. */ it('webgl_test_deleteBuffer_2', 0, async function(done) { //initContext(); console.info("webgltest into deleteBuffer"); var buffer = gl.createBuffer(); const isBuffer1 = gl.isBuffer(buffer); console.info("webgltest createBuffer bindBuffer isBuffer1: " + isBuffer1); expect(isBuffer1).assertEqual(false); gl.deleteBuffer(buffer); const isBuffer2 = gl.isBuffer(buffer); console.info("webgltest createBuffer bindBuffer deleteBuffer isBuffer2: " + isBuffer2); expect(isBuffer2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0052 * @tc.name webgl_test_deleteFramebuffer * @tc.desc Test deleteFramebuffer. */ it('webgl_test_deleteFramebuffer', 0, async function(done) { //initContext(); console.info("webgltest into deleteFramebuffer"); var framebuffer = gl.createFramebuffer(); gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); const isFramebuffer1 = gl.isFramebuffer(framebuffer); console.info("webgltest createFramebuffer bindFramebuffer isFramebuffer1: " + isFramebuffer1); expect(isFramebuffer1).assertEqual(true); gl.deleteFramebuffer(framebuffer); const isFramebuffer2 = gl.isFramebuffer(framebuffer); console.info("webgltest createFramebuffer bindFramebuffer isFramebuffer2: " + isFramebuffer2); expect(isFramebuffer2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0053 * @tc.name webgl_test_deleteProgram * @tc.desc Test deleteProgram. */ it('webgl_test_deleteProgram', 0, async function(done) { //initContext(); console.info("webgltest into deleteProgram"); const program = gl.createProgram(); const isProgram1 = gl.isProgram(program); console.info("webgltest createProgram isProgram1: " + isProgram1); expect(isProgram1).assertEqual(true); gl.deleteProgram(program); const isProgram2 = gl.isProgram(program); console.info("webgltest getExtension: " + isProgram2); expect(isProgram2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0054 * @tc.name webgl_test_deleteProgram_2 * @tc.desc Test deleteProgram. */ it('webgl_test_deleteProgram_2', 0, async function(done) { //initContext(); console.info("webgltest into deleteProgram"); const program = gl.createProgram(); gl.deleteProgram(program); const isProgram2 = gl.isProgram(program); console.info("webgltest getExtension: " + isProgram2); expect(isProgram2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0055 * @tc.name webgl_test_deleteRenderbuffer * @tc.desc Test deleteRenderbuffer. */ it('webgl_test_deleteRenderbuffer', 0, async function(done) { //initContext(); console.info("webgltest into deleteRenderbuffer"); const renderbuffer = gl.createRenderbuffer(); gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); const isRenderbuffer1 = gl.isRenderbuffer(renderbuffer); console.info("webgltest createRenderbuffer bindRenderbuffer isRenderbuffer1: " + isRenderbuffer1); expect(isRenderbuffer1).assertEqual(true); gl.deleteRenderbuffer(renderbuffer); const isRenderbuffer2 = gl.isRenderbuffer(renderbuffer); console.info( "webgltest createRenderbuffer bindRenderbuffer deleteRenderbuffer isRenderbuffer2: " + isRenderbuffer2); expect(isRenderbuffer2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0056 * @tc.name webgl_test_deleteShader * @tc.desc Test deleteShader. */ it('webgl_test_deleteShader', 0, async function(done) { //initContext(); console.info("webgltest into deleteShader"); var shader = gl.createShader(gl.VERTEX_SHADER); const isShader1 = gl.isShader(shader); console.info("webgltest createShader isShader: " + isShader1); expect(isShader1).assertEqual(true); gl.deleteShader(shader); const isShader2 = gl.isShader(shader); console.info("webgltest createShader deleteShader isShader2: " + isShader2); expect(isShader2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0057 * @tc.name webgl_test_deleteShader_2 * @tc.desc Test deleteShader. */ it('webgl_test_deleteShader_2', 0, async function(done) { //initContext(); console.info("webgltest into deleteShader"); var shader = gl.createShader(gl.VERTEX_SHADER); gl.deleteShader(shader); const isShader2 = gl.isShader(shader); console.info("webgltest createShader deleteShader isShader2: " + isShader2); expect(isShader2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0058 * @tc.name webgl_test_deleteTexture * @tc.desc Test deleteTexture. */ it('webgl_test_deleteTexture', 0, async function(done) { //initContext(); console.info("webgltest into deleteTexture"); var texture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, texture); const isTexture1 = gl.isTexture(texture); console.info("webgltest createTexture isTexture: " + isTexture1); expect(isTexture1).assertEqual(true); gl.deleteTexture(texture); const isTexture2 = gl.isTexture(texture); console.info("webgltest createTexture deleteTexture isTexture2: " + isTexture2); expect(isTexture2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0059 * @tc.name webgl_test_deleteTexture_2 * @tc.desc Test deleteTexture. */ it('webgl_test_deleteTexture_2', 0, async function(done) { //initContext(); console.info("webgltest into deleteTexture"); var texture = gl.createTexture(); const isTexture1 = gl.isTexture(texture); console.info("webgltest createTexture isTexture: " + isTexture1); expect(isTexture1).assertEqual(false); gl.deleteTexture(texture); const isTexture2 = gl.isTexture(texture); console.info("webgltest createTexture deleteTexture isTexture2: " + isTexture2); expect(isTexture2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0060 * @tc.name webgl_test_depthFunc * @tc.desc Test depthFunc. */ it('webgl_test_depthFunc', 0, async function(done) { //initContext(); console.info("webgltest into depthFunc"); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.NEVER); // 要检查当前深度函数,请查询DEPTH_FUNC常量。 const depthParameter = gl.getParameter(gl.DEPTH_FUNC); console.info("depthFunc --> getParameter: " + depthParameter); expect(depthParameter).assertEqual(gl.NEVER); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0061 * @tc.name webgl_test_depthFunc_2 * @tc.desc Test depthFunc. */ it('webgl_test_depthFunc_2', 0, async function(done) { //initContext(); console.info("webgltest into depthFunc"); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.LESS); // 要检查当前深度函数,请查询DEPTH_FUNC常量。 const depthParameter = gl.getParameter(gl.DEPTH_FUNC); console.info("depthFunc --> getParameter: " + depthParameter); expect(depthParameter).assertEqual(gl.LESS); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0062 * @tc.name webgl_test_depthFunc_3 * @tc.desc Test depthFunc. */ it('webgl_test_depthFunc_3', 0, async function(done) { //initContext(); console.info("webgltest into depthFunc"); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.EQUAL); // 要检查当前深度函数,请查询DEPTH_FUNC常量。 const depthParameter = gl.getParameter(gl.DEPTH_FUNC); console.info("depthFunc --> getParameter: " + depthParameter); expect(depthParameter).assertEqual(gl.EQUAL); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0063 * @tc.name webgl_test_depthFunc_4 * @tc.desc Test depthFunc. */ it('webgl_test_depthFunc_4', 0, async function(done) { //initContext(); console.info("webgltest into depthFunc"); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.LEQUAL); // 要检查当前深度函数,请查询DEPTH_FUNC常量。 const depthParameter = gl.getParameter(gl.DEPTH_FUNC); console.info("depthFunc --> getParameter: " + depthParameter); expect(depthParameter).assertEqual(gl.LEQUAL); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0064 * @tc.name webgl_test_depthFunc_5 * @tc.desc Test depthFunc. */ it('webgl_test_depthFunc_5', 0, async function(done) { //initContext(); console.info("webgltest into depthFunc"); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.GREATER); // 要检查当前深度函数,请查询DEPTH_FUNC常量。 const depthParameter = gl.getParameter(gl.DEPTH_FUNC); console.info("depthFunc --> getParameter: " + depthParameter); expect(depthParameter).assertEqual(gl.GREATER); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0065 * @tc.name webgl_test_depthFunc_6 * @tc.desc Test depthFunc. */ it('webgl_test_depthFunc_6', 0, async function(done) { //initContext(); console.info("webgltest into depthFunc"); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.NOTEQUAL); // 要检查当前深度函数,请查询DEPTH_FUNC常量。 const depthParameter = gl.getParameter(gl.DEPTH_FUNC); console.info("depthFunc --> getParameter: " + depthParameter); expect(depthParameter).assertEqual(gl.NOTEQUAL); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0066 * @tc.name webgl_test_depthFunc_7 * @tc.desc Test depthFunc. */ it('webgl_test_depthFunc_7', 0, async function(done) { //initContext(); console.info("webgltest into depthFunc"); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.GEQUAL); // 要检查当前深度函数,请查询DEPTH_FUNC常量。 const depthParameter = gl.getParameter(gl.DEPTH_FUNC); console.info("depthFunc --> getParameter: " + depthParameter); expect(depthParameter).assertEqual(gl.GEQUAL); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0067 * @tc.name webgl_test_depthFunc_8 * @tc.desc Test depthFunc. */ it('webgl_test_depthFunc_8', 0, async function(done) { //initContext(); console.info("webgltest into depthFunc"); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.ALWAYS); // 要检查当前深度函数,请查询DEPTH_FUNC常量。 const depthParameter = gl.getParameter(gl.DEPTH_FUNC); console.info("depthFunc --> getParameter: " + depthParameter); expect(depthParameter).assertEqual(gl.ALWAYS); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0068 * @tc.name webgl_test_depthMask * @tc.desc Test depthMask. */ it('webgl_test_depthMask', 0, async function(done) { //initContext(); console.info("webgltest into depthMask"); gl.depthMask(false); // 要获得当前的深度遮罩值,传入 DEPTH_WRITEMASK 常量,返回 Boolean. const depthMaskValue = gl.getParameter(gl.DEPTH_WRITEMASK); // false console.info("webgltest depthMaskValue: " + depthMaskValue); expect(depthMaskValue).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0069 * @tc.name webgl_test_depthMask_2 * @tc.desc Test depthMask. */ it('webgl_test_depthMask_2', 0, async function(done) { //initContext(); console.info("webgltest into depthMask"); gl.depthMask(true); // 要获得当前的深度遮罩值,传入 DEPTH_WRITEMASK 常量,返回 Boolean. const depthMaskValue = gl.getParameter(gl.DEPTH_WRITEMASK); // false console.info("webgltest depthMaskValue: " + depthMaskValue); expect(depthMaskValue).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0070 * @tc.name webgl_test_depthRange * @tc.desc Test depthRange. */ it('webgl_test_depthRange', 0, async function(done) { //initContext(); console.info("webgltest into depthRange"); gl.depthRange(0.2, 0.6); // 要检查当前深度范围,请查询DEPTH_RANGE返回一个的常量Float32Array const depthRangeValue = gl.getParameter(gl.DEPTH_RANGE); // Float32Array[0.2, 0.6] const float32ArrayValue = new Float32Array([0.2, 0.6]); console.info("webgltest depthRange: " + depthRangeValue); expect(depthRangeValue.toString()).assertEqual(float32ArrayValue.toString()); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0071 * @tc.name webgl_test_depthRange_2 * @tc.desc Test depthRange. */ it('webgl_test_depthRange_2', 0, async function(done) { //initContext(); console.info("webgltest into depthRange"); gl.depthRange(0.8, 1.0); // 要检查当前深度范围,请查询DEPTH_RANGE返回一个的常量Float32Array const depthRangeValue = gl.getParameter(gl.DEPTH_RANGE); // Float32Array[0.2, 0.6] const float32ArrayValue = new Float32Array([0.8, 1.0]); console.info("webgltest depthRange: " + depthRangeValue); expect(depthRangeValue.toString()).assertEqual(float32ArrayValue.toString()); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0072 * @tc.name webgl_test_detachShader * @tc.desc Test detachShader. */ it('webgl_test_detachShader', 0, async function(done) { //initContext(); console.info("webgltest into detachShader"); //顶点着色器 var vertexShader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(vertexShader, VSHADER_SOURCE); gl.compileShader(vertexShader); //片元着色器 var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); //创建 WebGLShader。 gl.shaderSource(fragmentShader, FSHADER_SOURCE); //fragmentSrc设置一个 WebGLShader 的源码。 gl.compileShader(fragmentShader); //WebGLProgram var program = gl.createProgram(); //创建 WebGLProgram gl.attachShader(program, vertexShader); //往 WebGLProgram 添加一个片段或者顶点着色器。 gl.attachShader(program, fragmentShader); gl.linkProgram(program); //链接给入的 WebGLProgram 对象 gl.detachShader(program, vertexShader); //从一个WebGLProgram中分离一个先前附加的片段或者顶点着色器; gl.detachShader(program, fragmentShader); gl.deleteShader(vertexShader); gl.deleteShader(fragmentShader); let errorCode = gl.getError(); console.info("webgltest uniform3uiv getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0073 * @tc.name webgl_test_disable * @tc.desc Test disable. */ it('webgl_test_disable', 0, async function(done) { //initContext(); console.info("webgltest into disable"); gl.disable(gl.DITHER); // 要检查功能是否被禁用,请使用以下WebGLRenderingContext.isEnabled()方法: const isEnabled = gl.isEnabled(gl.DITHER); // false console.info("webgltest disable isEnabled: " + isEnabled); expect(isEnabled).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0074 * @tc.name webgl_test_disable_2 * @tc.desc Test disable. */ it('webgl_test_disable_2', 0, async function(done) { //initContext(); console.info("webgltest into disable"); gl.enable(gl.DITHER); const isEnabled2 = gl.isEnabled(gl.DITHER); // true console.info("webgltest disable isEnabled2: " + isEnabled2); expect(isEnabled2).assertEqual(true); gl.disable(gl.DITHER); // 要检查功能是否被禁用,请使用以下WebGLRenderingContext.isEnabled()方法: const isEnabled = gl.isEnabled(gl.DITHER); // false console.info("webgltest disable isEnabled: " + isEnabled); expect(isEnabled).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0075 * @tc.name webgl_test_disableVertexAttribArray * @tc.desc Test disableVertexAttribArray. */ it('webgl_test_disableVertexAttribArray', 0, async function(done) { //initContext(); console.info("webgltest into disableVertexAttribArray"); gl.disableVertexAttribArray(0); let errorCode = gl.getError(); console.info("webgltest disableVertexAttribArray getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0076 * @tc.name webgl_test_drawArrays * @tc.desc Test drawArrays. */ it('webgl_test_drawArrays', 0, async function(done) { //initContext(); console.info("webgltest into drawArrays"); gl.drawArrays(gl.POINTS, 0, 8); let errorCode = gl.getError(); console.info("webgltest drawArrays getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0077 * @tc.name webgl_test_drawArrays_2 * @tc.desc Test drawArrays. */ it('webgl_test_drawArrays_2', 0, async function(done) { //initContext(); console.info("webgltest into drawArrays"); gl.drawArrays(gl.POINTS, 0, -8); let errorCode = gl.getError(); console.info("webgltest drawArrays getError: " + errorCode); expect(errorCode).assertEqual(1281); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0078 * @tc.name webgl_test_drawElements * @tc.desc Test drawElements. */ it('webgl_test_drawElements', 0, async function(done) { //initContext(); console.info("webgltest into drawElements"); // 初始化着色器 if (!initShaders(gl, VSHADER_SOURCE, FSHADER_SOURCE)) { console.log('Failed to intialize shaders.'); return; } // 设置顶点位置 var n = initVertexBuffers(gl); if (n < 0) { console.log('Failed to set the positions of the vertices'); return; } var viewPortParameter = gl.getParameter(gl.MAX_VIEWPORT_DIMS); console.log('viewPortParameter: ' + viewPortParameter); const isContextLostValue = gl.isContextLost(); console.info("isContextLostValue: " + isContextLostValue); // 指定清空的颜色 gl.clearColor(0.0, 0.0, 0.0, 1.0); // 清空 // COLOR_BUFFER_BIT 0x00004000 gl.clear(gl.COLOR_BUFFER_BIT); console.info("indices.length: " + indices.length) gl.drawElements(gl.TRIANGLES, indices.length, gl.UNSIGNED_SHORT, 0); let errorCode = gl.getError(); console.info("webgltest drawArrays getError: " + errorCode); expect(errorCode).assertEqual(1280); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0079 * @tc.name webgl_test_drawElements_2 * @tc.desc Test drawElements. */ it('webgl_test_drawElements_2', 0, async function(done) { //initContext(); console.info("webgltest into drawElements"); gl.drawElements(1, 2, 3, 4); let errorCode = gl.getError(); console.info("webgltest drawElements getError: " + errorCode); expect(errorCode).assertEqual(0x0500); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0080 * @tc.name webgl_test_enable * @tc.desc Test enable. */ it('webgl_test_enable', 0, async function(done) { //initContext(); console.info("webgltest into enable"); gl.enable(gl.DITHER); const isEnabled = gl.isEnabled(gl.DITHER); // true console.info("webgltest enable isEnabled: " + isEnabled); expect(isEnabled).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0081 * @tc.name webgl_test_enable_2 * @tc.desc Test enable. */ it('webgl_test_enable_2', 0, async function(done) { //initContext(); console.info("webgltest into enable"); gl.enable(gl.DITHER); const isEnabled = gl.isEnabled(gl.DITHER); // true console.info("webgltest enable isEnabled: " + isEnabled); expect(isEnabled).assertEqual(true); gl.disable(gl.DITHER); // 要检查功能是否被禁用,请使用以下WebGLRenderingContext.isEnabled()方法: const isEnabled2 = gl.isEnabled(gl.DITHER); // false console.info("webgltest disable isEnabled2: " + isEnabled2); expect(isEnabled2).assertEqual(false); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0082 * @tc.name webgl_test_enableVertexAttribArray * @tc.desc Test enableVertexAttribArray. */ it('webgl_test_enableVertexAttribArray', 0, async function(done) { //initContext(); console.info("webgltest into enableVertexAttribArray"); //顶点着色器程序 var VSHADER_SOURCE = 'attribute vec4 a_Position;\n' + 'void main() {\n' + ' gl_Position = a_Position;\n' + '}\n'; // 片元着色器程序 var FSHADER_SOURCE = 'precision mediump float;\n' + 'uniform vec4 u_FragColor;\n' + 'void main() {\n' + ' gl_FragColor = u_FragColor;\n' + '}\n'; var vertexShader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(vertexShader, VSHADER_SOURCE); gl.compileShader(vertexShader); var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); gl.shaderSource(fragmentShader, FSHADER_SOURCE); gl.compileShader(fragmentShader); const programObj = gl.createProgram(); console.log("testUseProgram has failed for " + programObj) const useProgramError1 = gl.getError(); console.info("useProgramError: " + useProgramError1); const renderBufferValue1 = gl.getParameter(gl.CURRENT_PROGRAM); console.log("testUseProgram has failed for " + renderBufferValue1) gl.attachShader(programObj, vertexShader); gl.attachShader(programObj, fragmentShader); gl.linkProgram(programObj); gl.useProgram(programObj); const aVertexPosition = gl.getAttribLocation(programObj, "a_Position"); gl.enableVertexAttribArray(aVertexPosition); gl.vertexAttribPointer(aVertexPosition, 4, gl.FLOAT, false, 0, 0); gl.drawArrays(gl.TRIANGLES, 0, 3); let errorCode = gl.getError(); console.info("webgltest enableVertexAttribArray getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0083 * @tc.name webgl_test_finish * @tc.desc Test finish. */ it('webgl_test_finish', 0, async function(done) { //initContext(); console.info("webgltest into finish"); gl.finish(); let errorCode = gl.getError(); console.info("webgltest finish getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0084 * @tc.name webgl_test_flush * @tc.desc Test flush. */ it('webgl_test_flush', 0, async function(done) { //initContext(); console.info("webgltest into flush"); gl.flush(); let errorCode = gl.getError(); console.info("webgltest flush getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0085 * @tc.name webgl_test_framebufferRenderbuffer * @tc.desc Test framebufferRenderbuffer. */ it('webgl_test_framebufferRenderbuffer', 0, async function(done) { //initContext(); console.info("webgltest into framebufferRenderbuffer"); const renderbuffer = gl.createRenderbuffer(); gl.framebufferRenderbuffer(gl.DRAW_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer); let errorCode = gl.getError(); console.info("webgltest framebufferRenderbuffer getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0086 * @tc.name webgl_test_framebufferRenderbuffer_2 * @tc.desc Test framebufferRenderbuffer. */ it('webgl_test_framebufferRenderbuffer_2', 0, async function(done) { //initContext(); console.info("webgltest into framebufferRenderbuffer"); const renderbuffer = gl.createRenderbuffer(); gl.framebufferRenderbuffer(gl.DRAW_FRAMEBUFFER, "11", gl.RENDERBUFFER, renderbuffer); let errorCode = gl.getError(); console.info("webgltest framebufferRenderbuffer getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0087 * @tc.name webgl_test_framebufferTexture2D * @tc.desc Test framebufferTexture2D. */ it('webgl_test_framebufferTexture2D', 0, async function(done) { //initContext(); console.info("webgltest into framebufferTexture2D"); const texture = gl.createTexture(); gl.framebufferTexture2D(gl.DRAW_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); let errorCode = gl.getError(); console.info("webgltest framebufferTexture2D getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0088 * @tc.name webgl_test_framebufferTexture2D_1 * @tc.desc Test framebufferTexture2D. */ it('webgl_test_framebufferTexture2D_1', 0, async function(done) { //initContext(); console.info("webgltest into framebufferTexture2D"); const texture = gl.createTexture(); gl.framebufferTexture2D(gl.DRAW_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, "123"); let errorCode = gl.getError(); console.info("webgltest framebufferTexture2D getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); //********************************************* webgl2 ****************************************************** /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0089 * @tc.name webgl_test_drawBuffers * @tc.desc Test drawBuffers. */ it('webgl_test_drawBuffers', 0, async function(done) { //initContext(); console.info("webgltest into drawBuffers"); gl2.drawBuffers([gl2.NONE, gl2.COLOR_ATTACHMENT1]); let errorCode = gl.getError(); console.info("webgltest drawBuffers getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0090 * @tc.name webgl_test_drawBuffers_2 * @tc.desc Test drawBuffers. */ it('webgl_test_drawBuffers_2', 0, async function(done) { //initContext(); console.info("webgltest into drawBuffers"); gl2.drawBuffers(["gl2.NONE", "gl2.COLOR_ATTACHMENT1"]); let errorCode = gl.getError(); console.info("webgltest drawBuffers getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_091 * @tc.name webgl_test_clearBufferfv * @tc.desc Test clearBufferfv. */ it('webgl_test_clearBufferfv', 0, async function(done) { //initContext(); console.info("webgltest into clearBufferfv"); gl2.clearBufferfv(gl.COLOR, 0, [0.0, 0.0, 0.0, 0.0]); let errorCode = gl.getError(); console.info("webgltest webgl_test_clearBufferfv getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0092 * @tc.name webgl_test_clearBufferfv_2 * @tc.desc Test clearBufferfv. */ it('webgl_test_clearBufferfv_2', 0, async function(done) { //initContext(); console.info("webgltest into clearBufferfv"); gl2.clearBufferfv(gl.COLOR, "0", [0.0, 0.0, 0.0, 0.0]); let errorCode = gl.getError(); console.info("webgltest webgl_test_clearBufferfv getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0093 * @tc.name webgl_test_clearBufferiv * @tc.desc Test clearBufferiv. */ it('webgl_test_clearBufferiv', 0, async function(done) { //initContext(); console.info("webgltest into clearBufferiv"); gl2.clearBufferiv(gl.COLOR, 0, new Int32Array([0, 1, 0, 0.5])); let errorCode = gl.getError(); console.info("webgltest clearBufferiv getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0094 * @tc.name webgl_test_clearBufferiv_2 * @tc.desc Test clearBufferiv. */ it('webgl_test_clearBufferiv_2', 0, async function(done) { //initContext(); console.info("webgltest into clearBufferiv"); gl2.clearBufferiv(gl.COLOR, "0", new Int32Array([0, 1, 0, 0.5])); let errorCode = gl.getError(); console.info("webgltest clearBufferiv getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0095 * @tc.name webgl_test_clearBufferuiv * @tc.desc Test clearBufferuiv. */ it('webgl_test_clearBufferuiv', 0, async function(done) { //initContext(); console.info("webgltest into clearBufferuiv"); gl2.clearBufferuiv(gl.COLOR, 0, new Uint32Array([0, 1, 0, 0])); let errorCode = gl.getError(); console.info("webgltest clearBufferuiv getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0096 * @tc.name webgl_test_clearBufferuiv_2 * @tc.desc Test clearBufferuiv. */ it('webgl_test_clearBufferuiv_2', 0, async function(done) { //initContext(); console.info("webgltest into clearBufferuiv"); gl2.clearBufferuiv(gl.COLOR, "0", new Uint32Array([0, 1, 0, 0])); let errorCode = gl.getError(); console.info("webgltest clearBufferuiv getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0097 * @tc.name webgl_test_clearBufferfi * @tc.desc Test clearBufferfi. */ it('webgl_test_clearBufferfi', 0, async function(done) { //initContext(); console.info("webgltest into clearBufferfi"); gl2.clearBufferfi(gl.DEPTH_STENCIL, 0, 1.0, 0); let errorCode = gl.getError(); console.info("webgltest clearBufferfi getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0098 * @tc.name webgl_test_clearBufferfi_2 * @tc.desc Test clearBufferfi. */ it('webgl_test_clearBufferfi_2', 0, async function(done) { //initContext(); console.info("webgltest into clearBufferfi"); gl2.clearBufferfi(gl.DEPTH_STENCIL, "0", 1.0, 0); let errorCode = gl.getError(); console.info("webgltest clearBufferfi getError: " + errorCode); expect(errorCode).assertEqual(gl.NO_ERROR); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0099 * @tc.name webgl_test_createQuery * @tc.desc Test createQuery. */ it('webgl_test_createQuery', 0, async function(done) { //initContext(); console.info("webgltest into createQuery"); const query = gl2.createQuery(); gl2.beginQuery(0x8C2F, query); const currentQuery = gl2.getQuery(gl2.ANY_SAMPLES_PASSED, 0x8865); const isQuery = gl2.isQuery(currentQuery); console.info("webgltest createQuery isQuery: " + isQuery); expect(isQuery).assertEqual(true); //deleteContext(); done(); }); /** * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_TESTWEBGL_0100 * @tc.name webgl_test_beginQuery * @tc.desc Test beginQuery. */ it('webgl_test_beginQuery', 0, async function(done) { //initContext(); console.info("webgltest into beginQuery"); var query = gl2.createQuery(); gl2.beginQuery(0x8C2F, query); const currentQuery = gl2.getQuery(0x8C2F, 0x8865); const isQuery1 = gl2.isQuery(currentQuery); console.info("webgltest createQuery isQuery1: " + isQuery1); expect(isQuery1).assertEqual(true); //deleteContext(); done(); }); })