1/* 2 * Copyright (C) 2023 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 hilog from '@ohos.hilog'; 17import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; 18 19import {checkError, createProgram, getColorUint8Array} from './WebGL1'; 20 21 22export default function webgl1_common() { 23 24 describe('webgl1_common', function () { 25 let gl = global.gl; 26 // Defines a test suite. Two parameters are supported: test suite name and test suite function. 27 beforeAll(function () { 28 hilog.info(0x0000, 'testTag', '%{public}s', 'webgl1_test_01 start'); 29 // Presets an action, which is performed only once before all test cases of the test suite start. 30 // This API supports only one parameter: preset action function. 31 }) 32 beforeEach(function () { 33 // Presets an action, which is performed before each unit test case starts. 34 // The number of execution times is the same as the number of test cases defined by **it**. 35 // This API supports only one parameter: preset action function. 36 checkError(gl); 37 }) 38 afterEach(function () { 39 // Presets a clear action, which is performed after each unit test case ends. 40 // The number of execution times is the same as the number of test cases defined by **it**. 41 // This API supports only one parameter: clear action function. 42 checkError(gl); 43 }) 44 afterAll(function () { 45 // Presets a clear action, which is performed after all test cases of the test suite end. 46 // This API supports only one parameter: clear action function. 47 hilog.info(0x0000, 'testTag', '%{public}s', 'webgl1_test_01 end'); 48 }) 49 50 function createProgram(gl, vSource, fSource) { 51 let createShader = (gl, type, source) => { 52 let shader = gl.createShader(type); // 创建顶点着色器 53 if (shader == null) { 54 console.log('unable to create shader'); 55 return null; 56 } 57 gl.shaderSource(shader, source); // 设置着色器代码 58 gl.compileShader(shader); // 编译 59 let shaderParameter = gl.getShaderParameter(shader, gl.COMPILE_STATUS); 60 if (!shaderParameter) { // 如果编译失败 61 let error = gl.getShaderInfoLog(shader); 62 console.log('failed to compile shader: ' + error); 63 gl.deleteShader(shader); // 删除着色器 64 return null; 65 } 66 return shader; 67 } 68 let vertexShader = createShader(gl, gl.VERTEX_SHADER, vSource); 69 let fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fSource); 70 if (!vertexShader || !fragmentShader) { 71 console.log('failed to link program'); 72 return null; 73 } 74 let program = gl.createProgram(); 75 if (!program) { 76 console.log('failed to link program'); 77 return null; 78 } 79 gl.attachShader(program, vertexShader); 80 gl.attachShader(program, fragmentShader); 81 gl.linkProgram(program); 82 let linked = gl.getProgramParameter(program, gl.LINK_STATUS); 83 if (!linked) { 84 let error = gl.getProgramInfoLog(program); 85 console.log('failed to link program: ' + error); 86 gl.deleteProgram(program); 87 gl.deleteShader(fragmentShader); 88 gl.deleteShader(vertexShader); 89 return null; 90 } 91 gl.useProgram(program); 92 gl.program = program; 93 return { 94 program, vertexShader, fragmentShader 95 }; 96 } 97 98 /** 99 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0001 100 * @tc.name webgl_test_finish 101 * @tc.desc Test finish. 102 */ 103 it('webgl_test_finish', 0, async function (done) { 104 console.info("webgltest [webgl_test_finish] finish"); 105 gl.finish(); 106 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 107 checkError(gl); 108 done(); 109 }); 110 111 /** 112 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0002 113 * @tc.name webgl_test_flush 114 * @tc.desc Test flush. 115 */ 116 it('webgl_test_flush', 0, async function (done) { 117 console.info("webgltest [webgl_test_flush] flush"); 118 gl.flush(); 119 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 120 checkError(gl); 121 done(); 122 }); 123 124 /** 125 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0003 126 * @tc.name webgl_test_getError 127 * @tc.desc Test getError. 128 */ 129 it('webgl_test_getError', 0, async function (done) { 130 console.info("webgltest [webgl_test_getError] getError"); 131 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 132 let vShader = gl.createShader(1); 133 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 134 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 135 checkError(gl); 136 done(); 137 }) 138 139 /** 140 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0004 141 * @tc.name webgl_test_isContextLost 142 * @tc.desc Test isContextLost. 143 */ 144 it('webgl_test_isContextLost', 0, async function (done) { 145 console.info("webgltest [webgl_test_isContextLost] isContextLost"); 146 let isContextLost = gl.isContextLost(); 147 console.info("webgltest isContextLost:", isContextLost); 148 expect(isContextLost).assertEqual(false); 149 checkError(gl); 150 done(); 151 }) 152 153 /** 154 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0005 155 * @tc.name webgl_test_isEnabled 156 * @tc.desc Test isEnabled. 157 */ 158 it('webgl_test_isEnabled', 0, async function (done) { 159 let srcEnable = gl.isEnabled(gl.DEPTH_TEST); 160 console.info("webgltest [webgl_test_isEnabled] isEnabled"); 161 gl.disable(gl.DEPTH_TEST); 162 expect(gl.isEnabled(gl.DEPTH_TEST)).assertEqual(false); 163 gl.enable(gl.DEPTH_TEST); 164 console.log("webgltest DEPTH_TEST:", gl.isEnabled(gl.DEPTH_TEST)); 165 expect(gl.isEnabled(gl.DEPTH_TEST)).assertEqual(true); 166 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 167 console.log("webgltest RASTERIZER_DISCARD:", gl.isEnabled(gl.RASTERIZER_DISCARD)); 168 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 169 if (srcEnable) { 170 gl.enable(gl.DEPTH_TEST); 171 } else { 172 gl.disable(gl.DEPTH_TEST); 173 } 174 checkError(gl); 175 done(); 176 }) 177 178 179 /** 180 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0006 181 * @tc.name webgl_test_isEnabled_1 182 * @tc.desc Test isEnabled. 183 */ 184 it('webgl_test_isEnabled_1', 0, async function (done) { 185 console.info("webgltest [webgl_test_isEnabled] isEnabled1"); 186 const isEnabled = gl.isEnabled(gl.BLEND) 187 console.log("webgltest gl.isEnabled(gl.BLEND):", isEnabled); 188 console.log("webgltest gl.enable(gl.BLEND)"); 189 gl.enable(gl.BLEND) 190 console.log("webgltest gl.isEnabled(gl.BLEND):", gl.isEnabled(gl.BLEND)); 191 expect(gl.isEnabled(gl.BLEND)).assertEqual(true) 192 if (isEnabled) { 193 gl.enable(gl.BLEND) 194 } else { 195 gl.disable(gl.BLEND) 196 } 197 checkError(gl); 198 done(); 199 }) 200 201 202 /** 203 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0007 204 * @tc.name webgl_test_isEnabled_2 205 * @tc.desc Test isEnabled. 206 */ 207 it('webgl_test_isEnabled_2', 0, async function (done) { 208 console.info("webgltest [webgl_test_isEnabled] isEnabled2"); 209 const isEnabled = gl.isEnabled(gl.CULL_FACE) 210 console.log("webgltest gl.isEnabled(gl.CULL_FACE):", isEnabled); 211 console.log("webgltest gl.enable(gl.CULL_FACE)"); 212 gl.enable(gl.CULL_FACE) 213 console.log("webgltest gl.isEnabled(gl.CULL_FACE):", gl.isEnabled(gl.CULL_FACE)); 214 expect(gl.isEnabled(gl.CULL_FACE)).assertEqual(true) 215 if (isEnabled) { 216 gl.enable(gl.CULL_FACE) 217 } else { 218 gl.disable(gl.CULL_FACE) 219 } 220 checkError(gl); 221 done(); 222 }) 223 224 225 /** 226 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0008 227 * @tc.name webgl_test_isEnabled_3 228 * @tc.desc Test isEnabled. 229 */ 230 it('webgl_test_isEnabled_3', 0, async function (done) { 231 console.info("webgltest [webgl_test_isEnabled] isEnabled3"); 232 const isEnabled = gl.isEnabled(gl.DEPTH_TEST) 233 console.log("webgltest gl.isEnabled(gl.DEPTH_TEST):", isEnabled); 234 console.log("webgltest gl.enable(gl.DEPTH_TEST)"); 235 gl.enable(gl.DEPTH_TEST) 236 console.log("webgltest gl.isEnabled(gl.DEPTH_TEST):", gl.isEnabled(gl.DEPTH_TEST)); 237 expect(gl.isEnabled(gl.DEPTH_TEST)).assertEqual(true) 238 if (isEnabled) { 239 gl.enable(gl.DEPTH_TEST) 240 } else { 241 gl.disable(gl.DEPTH_TEST) 242 } 243 checkError(gl); 244 done(); 245 }) 246 247 248 /** 249 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0009 250 * @tc.name webgl_test_isEnabled_4 251 * @tc.desc Test isEnabled. 252 */ 253 it('webgl_test_isEnabled_4', 0, async function (done) { 254 console.info("webgltest [webgl_test_isEnabled] isEnabled4"); 255 const isEnabled = gl.isEnabled(gl.DITHER) 256 console.log("webgltest gl.isEnabled(gl.DITHER):", isEnabled); 257 expect(isEnabled).assertEqual(true) 258 console.log("webgltest gl.enable(gl.DITHER)"); 259 gl.disable(gl.DITHER) 260 console.log("webgltest gl.isEnabled(gl.DITHER):", gl.isEnabled(gl.DITHER)); 261 expect(gl.isEnabled(gl.DITHER)).assertEqual(false) 262 if (isEnabled) { 263 gl.enable(gl.DITHER) 264 } else { 265 gl.disable(gl.DITHER) 266 } 267 checkError(gl); 268 done(); 269 }) 270 271 272 /** 273 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0010 274 * @tc.name webgl_test_isEnabled_5 275 * @tc.desc Test isEnabled. 276 */ 277 it('webgl_test_isEnabled_5', 0, async function (done) { 278 console.info("webgltest [webgl_test_isEnabled] isEnabled5"); 279 const isEnabled = gl.isEnabled(gl.POLYGON_OFFSET_FILL) 280 console.log("webgltest gl.isEnabled(gl.POLYGON_OFFSET_FILL):", isEnabled); 281 console.log("webgltest gl.enable(gl.POLYGON_OFFSET_FILL)"); 282 gl.enable(gl.POLYGON_OFFSET_FILL) 283 console.log("webgltest gl.isEnabled(gl.POLYGON_OFFSET_FILL):", gl.isEnabled(gl.POLYGON_OFFSET_FILL)); 284 expect(gl.isEnabled(gl.POLYGON_OFFSET_FILL)).assertEqual(true) 285 if (isEnabled) { 286 gl.enable(gl.POLYGON_OFFSET_FILL) 287 } else { 288 gl.disable(gl.POLYGON_OFFSET_FILL) 289 } 290 checkError(gl); 291 done(); 292 }) 293 294 295 /** 296 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0011 297 * @tc.name webgl_test_isEnabled_6 298 * @tc.desc Test isEnabled. 299 */ 300 it('webgl_test_isEnabled_6', 0, async function (done) { 301 console.info("webgltest [webgl_test_isEnabled] isEnabled6"); 302 const isEnabled = gl.isEnabled(gl.SAMPLE_ALPHA_TO_COVERAGE) 303 console.log("webgltest gl.isEnabled(gl.SAMPLE_ALPHA_TO_COVERAGE):", isEnabled); 304 console.log("webgltest gl.enable(gl.SAMPLE_ALPHA_TO_COVERAGE)"); 305 gl.enable(gl.SAMPLE_ALPHA_TO_COVERAGE) 306 console.log("webgltest gl.isEnabled(gl.SAMPLE_ALPHA_TO_COVERAGE):", gl.isEnabled(gl.SAMPLE_ALPHA_TO_COVERAGE)); 307 expect(gl.isEnabled(gl.SAMPLE_ALPHA_TO_COVERAGE)).assertEqual(true) 308 if (isEnabled) { 309 gl.enable(gl.SAMPLE_ALPHA_TO_COVERAGE) 310 } else { 311 gl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE) 312 } 313 done(); 314 }) 315 316 317 /** 318 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0012 319 * @tc.name webgl_test_isEnabled_7 320 * @tc.desc Test isEnabled. 321 */ 322 it('webgl_test_isEnabled_7', 0, async function (done) { 323 console.info("webgltest [webgl_test_isEnabled] isEnabled7"); 324 const isEnabled = gl.isEnabled(gl.SAMPLE_COVERAGE) 325 console.log("webgltest gl.isEnabled(gl.SAMPLE_COVERAGE):", isEnabled); 326 console.log("webgltest gl.enable(gl.SAMPLE_COVERAGE)"); 327 gl.enable(gl.SAMPLE_COVERAGE) 328 console.log("webgltest gl.isEnabled(gl.SAMPLE_COVERAGE):", gl.isEnabled(gl.SAMPLE_COVERAGE)); 329 expect(gl.isEnabled(gl.SAMPLE_COVERAGE)).assertEqual(true) 330 if (isEnabled) { 331 gl.enable(gl.SAMPLE_COVERAGE) 332 } else { 333 gl.disable(gl.SAMPLE_COVERAGE) 334 } 335 done(); 336 }) 337 338 339 /** 340 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0013 341 * @tc.name webgl_test_isEnabled_8 342 * @tc.desc Test isEnabled. 343 */ 344 it('webgl_test_isEnabled_8', 0, async function (done) { 345 console.info("webgltest [webgl_test_isEnabled] isEnabled8"); 346 const isEnabled = gl.isEnabled(gl.SCISSOR_TEST) 347 console.log("webgltest gl.isEnabled(gl.SCISSOR_TEST):", isEnabled); 348 console.log("webgltest gl.enable(gl.SCISSOR_TEST)"); 349 gl.enable(gl.SCISSOR_TEST) 350 console.log("webgltest gl.isEnabled(gl.SCISSOR_TEST):", gl.isEnabled(gl.SCISSOR_TEST)); 351 expect(gl.isEnabled(gl.SCISSOR_TEST)).assertEqual(true) 352 if (isEnabled) { 353 gl.enable(gl.SCISSOR_TEST) 354 } else { 355 gl.disable(gl.SCISSOR_TEST) 356 } 357 done(); 358 }) 359 360 361 /** 362 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0014 363 * @tc.name webgl_test_isEnabled_9 364 * @tc.desc Test isEnabled. 365 */ 366 it('webgl_test_isEnabled_9', 0, async function (done) { 367 console.info("webgltest [webgl_test_isEnabled] isEnabled9"); 368 const isEnabled = gl.isEnabled(gl.STENCIL_TEST) 369 console.log("webgltest gl.isEnabled(gl.STENCIL_TEST):", isEnabled); 370 console.log("webgltest gl.enable(gl.STENCIL_TEST)"); 371 gl.enable(gl.STENCIL_TEST) 372 console.log("webgltest gl.isEnabled(gl.STENCIL_TEST):", gl.isEnabled(gl.STENCIL_TEST)); 373 expect(gl.isEnabled(gl.STENCIL_TEST)).assertEqual(true) 374 if (isEnabled) { 375 gl.enable(gl.STENCIL_TEST) 376 } else { 377 gl.disable(gl.STENCIL_TEST) 378 } 379 done(); 380 }) 381 382 383 /** 384 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0015 385 * @tc.name webgl_test_isEnabled_Error 386 * @tc.desc Test isEnabled. 387 */ 388 it('webgl_test_isEnabled_Error', 0, async function (done) { 389 console.info("webgltest [webgl_test_isEnabled] isEnabled Error"); 390 expect(gl.isEnabled(undefined)).assertEqual(false); 391 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 392 expect(gl.isEnabled(null)).assertEqual(false); 393 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 394 expect(gl.isEnabled(-1)).assertEqual(false); 395 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 396 expect(gl.isEnabled(200)).assertEqual(false); 397 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 398 done(); 399 }) 400 401 const checkEnable = (cap) => { 402 console.info(`webgltest [webgl_test_enable] enable(${cap})`); 403 const defaultValue = gl.isEnabled(cap) 404 console.log("webgltest DEPTH_TEST defaultValue enable:", defaultValue); 405 gl.enable(cap) 406 console.log("webgltest DEPTH_TEST currentValue enable:", gl.isEnabled(cap)); 407 if (!defaultValue) { 408 gl.disable(cap) 409 } 410 } 411 412 /** 413 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0016 414 * @tc.name webgl_test_enable 415 * @tc.desc Test enable. 416 */ 417 it('webgl_test_enable', 0, async function (done) { 418 console.info("webgltest [webgl_test_enable] enable"); 419 console.info("webgltest disable DEPTH_TEST"); 420 gl.disable(gl.DEPTH_TEST); 421 console.log("webgltest DEPTH_TEST:", gl.isEnabled(gl.DEPTH_TEST)); 422 expect(gl.isEnabled(gl.DEPTH_TEST)).assertEqual(false); 423 424 console.info("webgltest enable DEPTH_TEST"); 425 gl.enable(gl.DEPTH_TEST); 426 console.log("webgltest DEPTH_TEST:", gl.isEnabled(gl.DEPTH_TEST)); 427 expect(gl.isEnabled(gl.DEPTH_TEST)).assertTrue(); 428 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 429 gl.disable(gl.DEPTH_TEST); 430 done(); 431 }) 432 433 434 /** 435 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0017 436 * @tc.name webgl_test_enable_1 437 * @tc.desc Test enable. 438 */ 439 it('webgl_test_enable_1', 0, async function (done) { 440 checkEnable(gl.BLEND) 441 done() 442 }) 443 444 445 /** 446 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0018 447 * @tc.name webgl_test_enable_2 448 * @tc.desc Test enable. 449 */ 450 it('webgl_test_enable_2', 0, async function (done) { 451 checkEnable(gl.CULL_FACE) 452 done() 453 }) 454 455 456 /** 457 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0019 458 * @tc.name webgl_test_enable_3 459 * @tc.desc Test enable. 460 */ 461 it('webgl_test_enable_3', 0, async function (done) { 462 checkEnable(gl.DITHER) 463 done() 464 }) 465 466 467 /** 468 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0020 469 * @tc.name webgl_test_enable_4 470 * @tc.desc Test enable. 471 */ 472 it('webgl_test_enable_4', 0, async function (done) { 473 checkEnable(gl.POLYGON_OFFSET_FILL) 474 done() 475 }) 476 477 478 /** 479 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0021 480 * @tc.name webgl_test_enable_5 481 * @tc.desc Test enable. 482 */ 483 it('webgl_test_enable_5', 0, async function (done) { 484 checkEnable(gl.SAMPLE_ALPHA_TO_COVERAGE) 485 done() 486 }) 487 488 489 /** 490 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0022 491 * @tc.name webgl_test_enable_6 492 * @tc.desc Test enable. 493 */ 494 it('webgl_test_enable_6', 0, async function (done) { 495 checkEnable(gl.SAMPLE_COVERAGE) 496 done() 497 }) 498 499 500 /** 501 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0023 502 * @tc.name webgl_test_enable_7 503 * @tc.desc Test enable. 504 */ 505 it('webgl_test_enable_7', 0, async function (done) { 506 checkEnable(gl.SCISSOR_TEST) 507 done() 508 }) 509 510 511 /** 512 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0024 513 * @tc.name webgl_test_enable_8 514 * @tc.desc Test enable. 515 */ 516 it('webgl_test_enable_8', 0, async function (done) { 517 checkEnable(gl.STENCIL_TEST) 518 done() 519 }) 520 521 522 /** 523 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0025 524 * @tc.name webgl_test_enable_Error 525 * @tc.desc Test enable. 526 */ 527 it('webgl_test_enable_Error', 0, async function (done) { 528 console.info("webgltest [webgl_test_enable] enable Error"); 529 console.info("webgltest enable undefined"); 530 gl.enable(undefined) 531 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 532 console.info("webgltest enable null"); 533 gl.enable(null) 534 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 535 console.info("webgltest enable -1"); 536 gl.enable(-1) 537 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 538 console.info("webgltest enable 200"); 539 gl.enable(200) 540 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 541 done(); 542 }) 543 544 const checkDisable = (cap) => { 545 console.info(`webgltest [webgl_test_disable] disable(${cap})`); 546 const defaultValue = gl.isEnabled(cap) 547 console.log("webgltest DEPTH_TEST defaultValue disable:", defaultValue); 548 gl.disable(cap) 549 console.log("webgltest DEPTH_TEST currentValue disable:", gl.isEnabled(cap)); 550 if (defaultValue) { 551 gl.enable(cap) 552 } 553 } 554 555 /** 556 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0026 557 * @tc.name webgl_test_disable 558 * @tc.desc Test disable. 559 */ 560 it('webgl_test_disable', 0, async function (done) { 561 console.info("webgltest [webgl_test_disable] disable"); 562 console.info("webgltest enable DEPTH_TEST"); 563 gl.enable(gl.DEPTH_TEST); 564 console.log("webgltest DEPTH_TEST:", gl.isEnabled(gl.DEPTH_TEST)); 565 expect(gl.isEnabled(gl.DEPTH_TEST)).assertTrue(); 566 567 console.info("webgltest disable DEPTH_TEST"); 568 gl.disable(gl.DEPTH_TEST); 569 console.log("webgltest DEPTH_TEST:", gl.isEnabled(gl.DEPTH_TEST)); 570 expect(gl.isEnabled(gl.DEPTH_TEST)).assertEqual(false); 571 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 572 done(); 573 }) 574 575 576 /** 577 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0027 578 * @tc.name webgl_test_disable_1 579 * @tc.desc Test disable. 580 */ 581 it('webgl_test_disable_1', 0, async function (done) { 582 checkDisable(gl.BLEND) 583 done() 584 }) 585 586 587 /** 588 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0028 589 * @tc.name webgl_test_disable_2 590 * @tc.desc Test disable. 591 */ 592 it('webgl_test_disable_2', 0, async function (done) { 593 checkDisable(gl.CULL_FACE) 594 done() 595 }) 596 597 598 /** 599 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0029 600 * @tc.name webgl_test_disable_3 601 * @tc.desc Test disable. 602 */ 603 it('webgl_test_disable_3', 0, async function (done) { 604 checkDisable(gl.DITHER) 605 done() 606 }) 607 608 609 /** 610 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0030 611 * @tc.name webgl_test_disable_4 612 * @tc.desc Test disable. 613 */ 614 it('webgl_test_disable_4', 0, async function (done) { 615 checkDisable(gl.POLYGON_OFFSET_FILL) 616 done() 617 }) 618 619 620 /** 621 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0031 622 * @tc.name webgl_test_disable_5 623 * @tc.desc Test disable. 624 */ 625 it('webgl_test_disable_5', 0, async function (done) { 626 checkDisable(gl.SAMPLE_ALPHA_TO_COVERAGE) 627 done() 628 }) 629 630 631 /** 632 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0032 633 * @tc.name webgl_test_disable_6 634 * @tc.desc Test disable. 635 */ 636 it('webgl_test_disable_6', 0, async function (done) { 637 checkDisable(gl.SAMPLE_COVERAGE) 638 done() 639 }) 640 641 642 /** 643 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0033 644 * @tc.name webgl_test_disable_7 645 * @tc.desc Test disable. 646 */ 647 it('webgl_test_disable_7', 0, async function (done) { 648 checkDisable(gl.SCISSOR_TEST) 649 done() 650 }) 651 652 653 /** 654 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0034 655 * @tc.name webgl_test_disable_8 656 * @tc.desc Test disable. 657 */ 658 it('webgl_test_disable_8', 0, async function (done) { 659 checkDisable(gl.STENCIL_TEST) 660 done() 661 }) 662 663 664 /** 665 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0035 666 * @tc.name webgl_test_disable_Error 667 * @tc.desc Test disable. 668 */ 669 it('webgl_test_disable_Error', 0, async function (done) { 670 console.info("webgltest [webgl_test_enable] disable Error"); 671 console.info("webgltest disable undefined"); 672 gl.disable(undefined) 673 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 674 console.info("webgltest disable null"); 675 gl.disable(null) 676 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 677 console.info("webgltest disable -1"); 678 gl.disable(-1) 679 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 680 console.info("webgltest disable 200"); 681 gl.disable(200) 682 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 683 done(); 684 }) 685 686 /** 687 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0036 688 * @tc.name webgl_test_getContextAttributes 689 * @tc.desc Test getContextAttributes. 690 */ 691 it('webgl_test_getContextAttributes', 0, async function (done) { 692 console.info("webgltest [webgl_test_getContextAttributes] getContextAttributes"); 693 const value = gl.getContextAttributes(); 694 console.info("webgltest getContextAttributes: ", value); 695 if (value) { 696 expect(typeof (value["alpha"])).assertEqual("boolean"); 697 expect(typeof (value["depth"])).assertEqual("boolean"); 698 expect(typeof (value["stencil"])).assertEqual("boolean"); 699 expect(typeof (value["antialias"])).assertEqual("boolean"); 700 expect(typeof (value["premultipliedAlpha"])).assertEqual("boolean"); 701 expect(typeof (value["preserveDrawingBuffer"])).assertEqual("boolean"); 702 expect(typeof (value["failIfMajorPerformanceCaveat"])).assertEqual("boolean"); 703 expect(typeof (value["desynchronized"])).assertEqual("boolean"); 704 expect(typeof (value["powerPreference"])).assertEqual("string"); 705 expect(value["powerPreference"]).assertEqual("default" || "low-power" || "high-performance"); 706 } else { 707 expect(value).assertEqual(null); 708 } 709 done(); 710 }) 711 712 713 /** 714 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0037 715 * @tc.name webgl_test_getContextAttributes_Error 716 * @tc.desc Test getContextAttributes. 717 */ 718 it('webgl_test_getContextAttributes_Error', 0, async function (done) { 719 console.info("webgltest [webgl_test_getContextAttributesError] getContextAttributesError"); 720 console.info("webgltest getContextAttributes(null)", null); 721 const value = gl.getContextAttributes(null); 722 console.info("webgltest getContextAttributes: ", value); 723 expect(typeof value).assertEqual("object"); 724 done(); 725 }) 726 727 /** 728 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0038 729 * @tc.name webgl_test_isContextLost 730 * @tc.desc Test isContextLost. 731 */ 732 it('webgl_test_isContextLost', 0, async function (done) { 733 console.info("webgltest [webgl_test_isContextLost] isContextLost"); 734 const isContextLostValue = gl.isContextLost(); 735 console.info("webgltest isContextLost: " + isContextLostValue); 736 expect(isContextLostValue).assertEqual(false); 737 done(); 738 }) 739 740 /** 741 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0039 742 * @tc.name webgl_test_clearColor 743 * @tc.desc Test clearColor. 744 */ 745 it('webgl_test_clearColor', 0, async function (done) { 746 console.info("webgltest [webgl_test_clearColor] clearColor"); 747 gl.clearColor(0.5, 0.5, 0.5, 1.0); 748 console.info('set clearColor:', 0.5, 0.5, 0.5, 1.0); 749 let value = gl.getParameter(gl.COLOR_CLEAR_VALUE); 750 console.info('COLOR_CLEAR_VALUE:', value); 751 expect(value[0]).assertEqual(0.5); 752 expect(value[1]).assertEqual(0.5); 753 expect(value[2]).assertEqual(0.5); 754 expect(value[3]).assertEqual(1.0); 755 gl.clearColor(0, 0, 0, 0); 756 done(); 757 }) 758 759 760 /** 761 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0040 762 * @tc.name webgl_test_clearColor_Error 763 * @tc.desc Test clearColor. 764 */ 765 it('webgl_test_clearColor_Error', 0, async function (done) { 766 console.info("webgltest [webgl_test_clearColor] clearColor error"); 767 console.info("webgltest [webgl_test_clearColor] clearColor string"); 768 gl.clearColor('1', '1', '1', '1'); 769 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 770 console.info("webgltest [webgl_test_clearColor] clearColor undefined"); 771 gl.clearColor(undefined, undefined, undefined, undefined); 772 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 773 console.info("webgltest [webgl_test_clearColor] clearColor null"); 774 gl.clearColor(null, null, null, null); 775 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 776 done(); 777 }) 778 779 /** 780 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0041 781 * @tc.name webgl_test_clearDepth 782 * @tc.desc Test clearDepth. 783 */ 784 it('webgl_test_clearDepth', 0, async function (done) { 785 console.info("webgltest [webgl_test_clearDepth] clearDepth"); 786 gl.clearDepth(0.5) 787 console.info('set clearDepth:', 0.5); 788 let value = gl.getParameter(gl.DEPTH_CLEAR_VALUE); 789 console.info('COLOR_CLEAR_VALUE:', value); 790 expect(value).assertEqual(0.5); 791 gl.clearDepth(1) 792 done(); 793 }) 794 795 796 /** 797 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0042 798 * @tc.name webgl_test_clearDepth_Error 799 * @tc.desc Test clearDepth. 800 */ 801 it('webgl_test_clearDepth_Error', 0, async function (done) { 802 console.info("webgltest [webgl_test_clearDepth] clearDepth Error"); 803 console.info("webgltest [webgl_test_clearDepth] clearDepth big than 1"); 804 gl.clearDepth(2) 805 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 806 console.info("webgltest [webgl_test_clearDepth] clearDepth string"); 807 gl.clearDepth('') 808 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 809 console.info("webgltest [webgl_test_clearDepth] clearDepth small than 0"); 810 gl.clearDepth(-1) 811 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 812 console.info("webgltest [webgl_test_clearDepth] clearDepth undefined"); 813 gl.clearDepth(undefined) 814 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 815 console.info("webgltest [webgl_test_clearDepth] clearDepth null"); 816 gl.clearDepth(null) 817 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 818 done(); 819 }) 820 821 /** 822 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0043 823 * @tc.name webgl_test_clear 824 * @tc.desc Test clear. 825 */ 826 it('webgl_test_clear', 0, async function (done) { 827 console.info("webgltest [webgl_test_clear] clear"); 828 gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT); 829 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 830 gl.clear(-1); 831 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE); 832 done(); 833 }) 834 835 /** 836 * WebGL API 的方法返回传递的参数名称的值。 837 */ 838 const checkGetParameter = (pname, typeName, length) => { 839 console.info("webgltest [webgl_test_getParameter] getParameter"); 840 console.info(`webgltest [webgl_test_getParameter] getParameter(${pname}) type is ${typeName}`); 841 expect(gl.getParameter(pname) !== undefined).assertEqual(true); 842 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 843 if (length !== undefined) { 844 console.info(`webgltest [webgl_test_getParameter] getParameter(${pname}) type is ${typeName} and length is ${length}`); 845 expect(gl.getParameter(pname).length).assertEqual(length); 846 } 847 } 848 849 850 /** 851 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0044 852 * @tc.name webgl_test_getParameter 853 * @tc.desc Test getParameter. 854 */ 855 it('webgl_test_getParameter', 0, async function (done) { 856 console.info("webgltest [webgl_test_getParameter] getParameter"); 857 console.info("webgltest ACTIVE_TEXTURE:", gl.getParameter(gl.ACTIVE_TEXTURE)); 858 gl.activeTexture(gl.TEXTURE0); 859 expect(gl.getParameter(gl.ACTIVE_TEXTURE)).assertEqual(gl.TEXTURE0); 860 console.info("webgltest gl.activeTexture(gl.TEXTURE12);"); 861 gl.activeTexture(gl.TEXTURE12); 862 console.info("webgltest ACTIVE_TEXTURE:", gl.getParameter(gl.ACTIVE_TEXTURE)); 863 expect(gl.getParameter(gl.ACTIVE_TEXTURE)).assertEqual(gl.TEXTURE12); 864 gl.activeTexture(gl.TEXTURE0); 865 done(); 866 }) 867 868 869 /** 870 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0045 871 * @tc.name webgl_test_getParameter_1 872 * @tc.desc Test getParameter. 873 */ 874 it('webgl_test_getParameter_1', 0, async function (done) { 875 checkGetParameter(gl.ALIASED_LINE_WIDTH_RANGE, 'Float32Array', 2) 876 done() 877 }) 878 879 880 /** 881 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0046 882 * @tc.name webgl_test_getParameter_2 883 * @tc.desc Test getParameter. 884 */ 885 it('webgl_test_getParameter_2', 0, async function (done) { 886 checkGetParameter(gl.ALIASED_POINT_SIZE_RANGE, 'Float32Array', 2) 887 done() 888 }) 889 890 891 /** 892 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0047 893 * @tc.name webgl_test_getParameter_3 894 * @tc.desc Test getParameter. 895 */ 896 it('webgl_test_getParameter_3', 0, async function (done) { 897 checkGetParameter(gl.ALPHA_BITS, 'Number') 898 done() 899 }) 900 901 902 /** 903 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0048 904 * @tc.name webgl_test_getParameter_4 905 * @tc.desc Test getParameter. 906 */ 907 it('webgl_test_getParameter_4', 0, async function (done) { 908 let webGLBuffer = gl.createBuffer(); 909 gl.bindBuffer(gl.ARRAY_BUFFER, webGLBuffer) 910 checkGetParameter(gl.ARRAY_BUFFER_BINDING, 'WebGLBuffer') 911 gl.deleteBuffer(webGLBuffer) 912 done() 913 }) 914 915 916 /** 917 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0049 918 * @tc.name webgl_test_getParameter_5 919 * @tc.desc Test getParameter. 920 */ 921 it('webgl_test_getParameter_5', 0, async function (done) { 922 checkGetParameter(gl.BLEND, 'Boolean') 923 done() 924 }) 925 926 927 /** 928 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0050 929 * @tc.name webgl_test_getParameter_6 930 * @tc.desc Test getParameter. 931 */ 932 it('webgl_test_getParameter_6', 0, async function (done) { 933 checkGetParameter(gl.BLEND_COLOR, 'Float32Array', 4) 934 done() 935 }) 936 937 938 /** 939 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0051 940 * @tc.name webgl_test_getParameter_7 941 * @tc.desc Test getParameter. 942 */ 943 it('webgl_test_getParameter_7', 0, async function (done) { 944 checkGetParameter(gl.BLEND_DST_ALPHA, 'Number') 945 done() 946 }) 947 948 949 /** 950 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0052 951 * @tc.name webgl_test_getParameter_8 952 * @tc.desc Test getParameter. 953 */ 954 it('webgl_test_getParameter_8', 0, async function (done) { 955 checkGetParameter(gl.BLEND_DST_RGB, 'Number') 956 done() 957 }) 958 959 960 /** 961 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0053 962 * @tc.name webgl_test_getParameter_9 963 * @tc.desc Test getParameter. 964 */ 965 it('webgl_test_getParameter_9', 0, async function (done) { 966 checkGetParameter(gl.BLEND_EQUATION, 'Number') 967 done() 968 }) 969 970 971 /** 972 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0054 973 * @tc.name webgl_test_getParameter_10 974 * @tc.desc Test getParameter. 975 */ 976 it('webgl_test_getParameter_10', 0, async function (done) { 977 checkGetParameter(gl.BLEND_EQUATION_ALPHA, 'Number') 978 done() 979 }) 980 981 982 /** 983 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0055 984 * @tc.name webgl_test_getParameter_11 985 * @tc.desc Test getParameter. 986 */ 987 it('webgl_test_getParameter_11', 0, async function (done) { 988 checkGetParameter(gl.BLEND_EQUATION_RGB, 'Number') 989 done() 990 }) 991 992 993 /** 994 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0056 995 * @tc.name webgl_test_getParameter_12 996 * @tc.desc Test getParameter. 997 */ 998 it('webgl_test_getParameter_12', 0, async function (done) { 999 checkGetParameter(gl.BLEND_SRC_ALPHA, 'Number') 1000 done() 1001 }) 1002 1003 1004 /** 1005 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0057 1006 * @tc.name webgl_test_getParameter_13 1007 * @tc.desc Test getParameter. 1008 */ 1009 it('webgl_test_getParameter_13', 0, async function (done) { 1010 checkGetParameter(gl.BLEND_SRC_RGB, 'Number') 1011 done() 1012 }) 1013 1014 1015 /** 1016 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0058 1017 * @tc.name webgl_test_getParameter_14 1018 * @tc.desc Test getParameter. 1019 */ 1020 it('webgl_test_getParameter_14', 0, async function (done) { 1021 checkGetParameter(gl.BLUE_BITS, 'Number') 1022 done() 1023 }) 1024 1025 1026 /** 1027 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0059 1028 * @tc.name webgl_test_getParameter_15 1029 * @tc.desc Test getParameter. 1030 */ 1031 it('webgl_test_getParameter_15', 0, async function (done) { 1032 checkGetParameter(gl.COLOR_CLEAR_VALUE, 'Float32Array', 4) 1033 done() 1034 }) 1035 1036 1037 /** 1038 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0060 1039 * @tc.name webgl_test_getParameter_16 1040 * @tc.desc Test getParameter. 1041 */ 1042 it('webgl_test_getParameter_16', 0, async function (done) { 1043 checkGetParameter(gl.COLOR_WRITEMASK, 'Array', 4) 1044 done() 1045 }) 1046 1047 1048 /** 1049 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0061 1050 * @tc.name webgl_test_getParameter_17 1051 * @tc.desc Test getParameter. 1052 */ 1053 it('webgl_test_getParameter_17', 0, async function (done) { 1054 checkGetParameter(gl.COMPRESSED_TEXTURE_FORMATS, 'Uint32Array') 1055 done() 1056 }) 1057 1058 1059 /** 1060 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0062 1061 * @tc.name webgl_test_getParameter_18 1062 * @tc.desc Test getParameter. 1063 */ 1064 it('webgl_test_getParameter_18', 0, async function (done) { 1065 checkGetParameter(gl.CULL_FACE, 'Boolean') 1066 done() 1067 }) 1068 1069 1070 /** 1071 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0063 1072 * @tc.name webgl_test_getParameter_19 1073 * @tc.desc Test getParameter. 1074 */ 1075 it('webgl_test_getParameter_19', 0, async function (done) { 1076 checkGetParameter(gl.CULL_FACE_MODE, 'Number') 1077 done() 1078 }) 1079 1080 1081 /** 1082 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0064 1083 * @tc.name webgl_test_getParameter_20 1084 * @tc.desc Test getParameter. 1085 */ 1086 it('webgl_test_getParameter_20', 0, async function (done) { 1087 let {program} = createProgram(gl, ` 1088 attribute vec4 a_Position; 1089 attribute vec2 a_TexCoord; 1090 varying vec2 v_TexCoord; 1091 void main(){ 1092 gl_Position = a_Position; 1093 v_TexCoord = a_TexCoord; 1094 } 1095 `, ` 1096 precision mediump float; 1097 precision highp sampler2D; 1098 uniform sampler2D u_Sampler; 1099 varying vec2 v_TexCoord; 1100 void main(){ 1101 gl_FragColor = texture2D(u_Sampler, v_TexCoord); 1102 } 1103 `); 1104 checkGetParameter(gl.CURRENT_PROGRAM, 'WebGLProgram') 1105 gl.deleteProgram(program) 1106 done() 1107 }) 1108 1109 1110 /** 1111 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0065 1112 * @tc.name webgl_test_getParameter_21 1113 * @tc.desc Test getParameter. 1114 */ 1115 it('webgl_test_getParameter_21', 0, async function (done) { 1116 checkGetParameter(gl.DEPTH_BITS, 'Number') 1117 done() 1118 }) 1119 1120 1121 /** 1122 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0066 1123 * @tc.name webgl_test_getParameter_22 1124 * @tc.desc Test getParameter. 1125 */ 1126 it('webgl_test_getParameter_22', 0, async function (done) { 1127 checkGetParameter(gl.DEPTH_CLEAR_VALUE, 'Number') 1128 done() 1129 }) 1130 1131 1132 /** 1133 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0067 1134 * @tc.name webgl_test_getParameter_23 1135 * @tc.desc Test getParameter. 1136 */ 1137 it('webgl_test_getParameter_23', 0, async function (done) { 1138 checkGetParameter(gl.DEPTH_FUNC, 'Number') 1139 done() 1140 }) 1141 1142 1143 /** 1144 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0068 1145 * @tc.name webgl_test_getParameter_24 1146 * @tc.desc Test getParameter. 1147 */ 1148 it('webgl_test_getParameter_24', 0, async function (done) { 1149 checkGetParameter(gl.DEPTH_RANGE, 'Float32Array', 2) 1150 done() 1151 }) 1152 1153 1154 /** 1155 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0069 1156 * @tc.name webgl_test_getParameter_25 1157 * @tc.desc Test getParameter. 1158 */ 1159 it('webgl_test_getParameter_25', 0, async function (done) { 1160 checkGetParameter(gl.DEPTH_TEST, 'Boolean') 1161 done() 1162 }) 1163 1164 1165 /** 1166 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0070 1167 * @tc.name webgl_test_getParameter_26 1168 * @tc.desc Test getParameter. 1169 */ 1170 it('webgl_test_getParameter_26', 0, async function (done) { 1171 checkGetParameter(gl.DEPTH_WRITEMASK, 'Boolean') 1172 done() 1173 }) 1174 1175 1176 /** 1177 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0071 1178 * @tc.name webgl_test_getParameter_27 1179 * @tc.desc Test getParameter. 1180 */ 1181 it('webgl_test_getParameter_27', 0, async function (done) { 1182 checkGetParameter(gl.DITHER, 'Boolean') 1183 done() 1184 }) 1185 1186 1187 /** 1188 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0072 1189 * @tc.name webgl_test_getParameter_28 1190 * @tc.desc Test getParameter. 1191 */ 1192 it('webgl_test_getParameter_28', 0, async function (done) { 1193 let webGLBuffer = gl.createBuffer(); 1194 gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, webGLBuffer) 1195 checkGetParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING, 'WebGLBuffer') 1196 gl.deleteBuffer(webGLBuffer) 1197 done() 1198 }) 1199 1200 1201 /** 1202 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0073 1203 * @tc.name webgl_test_getParameter_30 1204 * @tc.desc Test getParameter. 1205 */ 1206 it('webgl_test_getParameter_30', 0, async function (done) { 1207 checkGetParameter(gl.FRONT_FACE, 'Number') 1208 done() 1209 }) 1210 1211 1212 /** 1213 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0074 1214 * @tc.name webgl_test_getParameter_31 1215 * @tc.desc Test getParameter. 1216 */ 1217 it('webgl_test_getParameter_31', 0, async function (done) { 1218 checkGetParameter(gl.GENERATE_MIPMAP_HINT, 'Number') 1219 done() 1220 }) 1221 1222 1223 /** 1224 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0075 1225 * @tc.name webgl_test_getParameter_32 1226 * @tc.desc Test getParameter. 1227 */ 1228 it('webgl_test_getParameter_32', 0, async function (done) { 1229 checkGetParameter(gl.GREEN_BITS, 'Number') 1230 done() 1231 }) 1232 1233 1234 /** 1235 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0076 1236 * @tc.name webgl_test_getParameter_33 1237 * @tc.desc Test getParameter. 1238 */ 1239 it('webgl_test_getParameter_33', 0, async function (done) { 1240 checkGetParameter(gl.IMPLEMENTATION_COLOR_READ_FORMAT, 'Number') 1241 done() 1242 }) 1243 1244 1245 /** 1246 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0077 1247 * @tc.name webgl_test_getParameter_34 1248 * @tc.desc Test getParameter. 1249 */ 1250 it('webgl_test_getParameter_34', 0, async function (done) { 1251 checkGetParameter(gl.IMPLEMENTATION_COLOR_READ_TYPE, 'Number') 1252 done() 1253 }) 1254 1255 1256 /** 1257 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0078 1258 * @tc.name webgl_test_getParameter_35 1259 * @tc.desc Test getParameter. 1260 */ 1261 it('webgl_test_getParameter_35', 0, async function (done) { 1262 checkGetParameter(gl.LINE_WIDTH, 'Number') 1263 done() 1264 }) 1265 1266 1267 /** 1268 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0079 1269 * @tc.name webgl_test_getParameter_36 1270 * @tc.desc Test getParameter. 1271 */ 1272 it('webgl_test_getParameter_36', 0, async function (done) { 1273 checkGetParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS, 'Number') 1274 done() 1275 }) 1276 1277 1278 /** 1279 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0080 1280 * @tc.name webgl_test_getParameter_37 1281 * @tc.desc Test getParameter. 1282 */ 1283 it('webgl_test_getParameter_37', 0, async function (done) { 1284 checkGetParameter(gl.MAX_TEXTURE_SIZE, 'Number') 1285 done() 1286 }) 1287 1288 1289 /** 1290 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0081 1291 * @tc.name webgl_test_getParameter_38 1292 * @tc.desc Test getParameter. 1293 */ 1294 it('webgl_test_getParameter_38', 0, async function (done) { 1295 checkGetParameter(gl.MAX_VARYING_VECTORS, 'Number') 1296 done() 1297 }) 1298 1299 1300 /** 1301 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0082 1302 * @tc.name webgl_test_getParameter_39 1303 * @tc.desc Test getParameter. 1304 */ 1305 it('webgl_test_getParameter_39', 0, async function (done) { 1306 checkGetParameter(gl.MAX_VERTEX_ATTRIBS, 'Number') 1307 done() 1308 }) 1309 1310 1311 /** 1312 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0083 1313 * @tc.name webgl_test_getParameter_40 1314 * @tc.desc Test getParameter. 1315 */ 1316 it('webgl_test_getParameter_40', 0, async function (done) { 1317 checkGetParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS, 'Number') 1318 done() 1319 }) 1320 1321 1322 /** 1323 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0084 1324 * @tc.name webgl_test_getParameter_41 1325 * @tc.desc Test getParameter. 1326 */ 1327 it('webgl_test_getParameter_41', 0, async function (done) { 1328 checkGetParameter(gl.MAX_VERTEX_UNIFORM_VECTORS, 'Number') 1329 done() 1330 }) 1331 1332 1333 /** 1334 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0085 1335 * @tc.name webgl_test_getParameter_42 1336 * @tc.desc Test getParameter. 1337 */ 1338 it('webgl_test_getParameter_42', 0, async function (done) { 1339 checkGetParameter(gl.MAX_VIEWPORT_DIMS, 'Int32Array', 2) 1340 done() 1341 }) 1342 1343 1344 /** 1345 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0086 1346 * @tc.name webgl_test_getParameter_43 1347 * @tc.desc Test getParameter. 1348 */ 1349 it('webgl_test_getParameter_43', 0, async function (done) { 1350 checkGetParameter(gl.PACK_ALIGNMENT, 'Number') 1351 done() 1352 }) 1353 1354 1355 /** 1356 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0087 1357 * @tc.name webgl_test_getParameter_44 1358 * @tc.desc Test getParameter. 1359 */ 1360 it('webgl_test_getParameter_44', 0, async function (done) { 1361 checkGetParameter(gl.POLYGON_OFFSET_FACTOR, 'Number') 1362 done() 1363 }) 1364 1365 1366 /** 1367 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0088 1368 * @tc.name webgl_test_getParameter_45 1369 * @tc.desc Test getParameter. 1370 */ 1371 it('webgl_test_getParameter_45', 0, async function (done) { 1372 checkGetParameter(gl.POLYGON_OFFSET_FILL, 'Boolean') 1373 done() 1374 }) 1375 1376 1377 /** 1378 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0089 1379 * @tc.name webgl_test_getParameter_46 1380 * @tc.desc Test getParameter. 1381 */ 1382 it('webgl_test_getParameter_46', 0, async function (done) { 1383 checkGetParameter(gl.POLYGON_OFFSET_UNITS, 'Number') 1384 done() 1385 }) 1386 1387 1388 /** 1389 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0090 1390 * @tc.name webgl_test_getParameter_47 1391 * @tc.desc Test getParameter. 1392 */ 1393 it('webgl_test_getParameter_47', 0, async function (done) { 1394 checkGetParameter(gl.RED_BITS, 'Number') 1395 done() 1396 }) 1397 1398 1399 /** 1400 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0091 1401 * @tc.name webgl_test_getParameter_49 1402 * @tc.desc Test getParameter. 1403 */ 1404 it('webgl_test_getParameter_49', 0, async function (done) { 1405 checkGetParameter(gl.RENDERER, 'String') 1406 done() 1407 }) 1408 1409 1410 /** 1411 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0092 1412 * @tc.name webgl_test_getParameter_50 1413 * @tc.desc Test getParameter. 1414 */ 1415 it('webgl_test_getParameter_50', 0, async function (done) { 1416 checkGetParameter(gl.SAMPLE_BUFFERS, 'Number') 1417 done() 1418 }) 1419 1420 1421 /** 1422 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0093 1423 * @tc.name webgl_test_getParameter_51 1424 * @tc.desc Test getParameter. 1425 */ 1426 it('webgl_test_getParameter_51', 0, async function (done) { 1427 checkGetParameter(gl.SAMPLE_COVERAGE_INVERT, 'Boolean') 1428 done() 1429 }) 1430 1431 1432 /** 1433 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0094 1434 * @tc.name webgl_test_getParameter_52 1435 * @tc.desc Test getParameter. 1436 */ 1437 it('webgl_test_getParameter_52', 0, async function (done) { 1438 checkGetParameter(gl.SAMPLE_COVERAGE_VALUE, 'Number') 1439 done() 1440 }) 1441 1442 1443 /** 1444 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0095 1445 * @tc.name webgl_test_getParameter_53 1446 * @tc.desc Test getParameter. 1447 */ 1448 it('webgl_test_getParameter_53', 0, async function (done) { 1449 checkGetParameter(gl.SAMPLES, 'Number') 1450 done() 1451 }) 1452 1453 1454 /** 1455 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0096 1456 * @tc.name webgl_test_getParameter_54 1457 * @tc.desc Test getParameter. 1458 */ 1459 it('webgl_test_getParameter_54', 0, async function (done) { 1460 checkGetParameter(gl.SCISSOR_BOX, 'Int32Array', 4) 1461 done() 1462 }) 1463 1464 1465 /** 1466 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0097 1467 * @tc.name webgl_test_getParameter_55 1468 * @tc.desc Test getParameter. 1469 */ 1470 it('webgl_test_getParameter_55', 0, async function (done) { 1471 checkGetParameter(gl.SCISSOR_TEST, 'Boolean') 1472 done() 1473 }) 1474 1475 1476 /** 1477 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0098 1478 * @tc.name webgl_test_getParameter_56 1479 * @tc.desc Test getParameter. 1480 */ 1481 it('webgl_test_getParameter_56', 0, async function (done) { 1482 checkGetParameter(gl.SHADING_LANGUAGE_VERSION, 'String') 1483 done() 1484 }) 1485 1486 1487 /** 1488 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0099 1489 * @tc.name webgl_test_getParameter_57 1490 * @tc.desc Test getParameter. 1491 */ 1492 it('webgl_test_getParameter_57', 0, async function (done) { 1493 checkGetParameter(gl.STENCIL_BACK_FAIL, 'Number') 1494 done() 1495 }) 1496 1497 1498 /** 1499 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0100 1500 * @tc.name webgl_test_getParameter_58 1501 * @tc.desc Test getParameter. 1502 */ 1503 it('webgl_test_getParameter_58', 0, async function (done) { 1504 checkGetParameter(gl.STENCIL_BACK_FUNC, 'Number') 1505 done() 1506 }) 1507 1508 1509 /** 1510 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0101 1511 * @tc.name webgl_test_getParameter_59 1512 * @tc.desc Test getParameter. 1513 */ 1514 it('webgl_test_getParameter_59', 0, async function (done) { 1515 checkGetParameter(gl.STENCIL_BACK_PASS_DEPTH_FAIL, 'Number') 1516 done() 1517 }) 1518 1519 1520 /** 1521 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0102 1522 * @tc.name webgl_test_getParameter_60 1523 * @tc.desc Test getParameter. 1524 */ 1525 it('webgl_test_getParameter_60', 0, async function (done) { 1526 checkGetParameter(gl.STENCIL_BACK_PASS_DEPTH_PASS, 'Number') 1527 done() 1528 }) 1529 1530 1531 /** 1532 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0103 1533 * @tc.name webgl_test_getParameter_61 1534 * @tc.desc Test getParameter. 1535 */ 1536 it('webgl_test_getParameter_61', 0, async function (done) { 1537 checkGetParameter(gl.STENCIL_BACK_REF, 'Number') 1538 done() 1539 }) 1540 1541 1542 /** 1543 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0104 1544 * @tc.name webgl_test_getParameter_62 1545 * @tc.desc Test getParameter. 1546 */ 1547 it('webgl_test_getParameter_62', 0, async function (done) { 1548 checkGetParameter(gl.STENCIL_BACK_VALUE_MASK, 'Number') 1549 done() 1550 }) 1551 1552 1553 /** 1554 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0105 1555 * @tc.name webgl_test_getParameter_63 1556 * @tc.desc Test getParameter. 1557 */ 1558 it('webgl_test_getParameter_63', 0, async function (done) { 1559 checkGetParameter(gl.STENCIL_BACK_WRITEMASK, 'Number') 1560 done() 1561 }) 1562 1563 1564 /** 1565 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0106 1566 * @tc.name webgl_test_getParameter_64 1567 * @tc.desc Test getParameter. 1568 */ 1569 it('webgl_test_getParameter_64', 0, async function (done) { 1570 checkGetParameter(gl.STENCIL_BITS, 'Number') 1571 done() 1572 }) 1573 1574 1575 /** 1576 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0107 1577 * @tc.name webgl_test_getParameter_65 1578 * @tc.desc Test getParameter. 1579 */ 1580 it('webgl_test_getParameter_65', 0, async function (done) { 1581 checkGetParameter(gl.STENCIL_CLEAR_VALUE, 'Number') 1582 done() 1583 }) 1584 1585 1586 /** 1587 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0108 1588 * @tc.name webgl_test_getParameter_66 1589 * @tc.desc Test getParameter. 1590 */ 1591 it('webgl_test_getParameter_66', 0, async function (done) { 1592 checkGetParameter(gl.STENCIL_FAIL, 'Number') 1593 done() 1594 }) 1595 1596 1597 /** 1598 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0109 1599 * @tc.name webgl_test_getParameter_67 1600 * @tc.desc Test getParameter. 1601 */ 1602 it('webgl_test_getParameter_67', 0, async function (done) { 1603 checkGetParameter(gl.STENCIL_FUNC, 'Number') 1604 done() 1605 }) 1606 1607 1608 /** 1609 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0110 1610 * @tc.name webgl_test_getParameter_68 1611 * @tc.desc Test getParameter. 1612 */ 1613 it('webgl_test_getParameter_68', 0, async function (done) { 1614 checkGetParameter(gl.STENCIL_PASS_DEPTH_FAIL, 'Number') 1615 done() 1616 }) 1617 1618 1619 /** 1620 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0111 1621 * @tc.name webgl_test_getParameter_69 1622 * @tc.desc Test getParameter. 1623 */ 1624 it('webgl_test_getParameter_69', 0, async function (done) { 1625 checkGetParameter(gl.STENCIL_PASS_DEPTH_PASS, 'Number') 1626 done() 1627 }) 1628 1629 1630 /** 1631 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0112 1632 * @tc.name webgl_test_getParameter_70 1633 * @tc.desc Test getParameter. 1634 */ 1635 it('webgl_test_getParameter_70', 0, async function (done) { 1636 checkGetParameter(gl.STENCIL_REF, 'Number') 1637 done() 1638 }) 1639 1640 1641 /** 1642 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0113 1643 * @tc.name webgl_test_getParameter_71 1644 * @tc.desc Test getParameter. 1645 */ 1646 it('webgl_test_getParameter_71', 0, async function (done) { 1647 checkGetParameter(gl.STENCIL_TEST, 'Boolean') 1648 done() 1649 }) 1650 1651 1652 /** 1653 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0114 1654 * @tc.name webgl_test_getParameter_72 1655 * @tc.desc Test getParameter. 1656 */ 1657 it('webgl_test_getParameter_72', 0, async function (done) { 1658 checkGetParameter(gl.STENCIL_VALUE_MASK, 'Number') 1659 done() 1660 }) 1661 1662 1663 /** 1664 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0115 1665 * @tc.name webgl_test_getParameter_73 1666 * @tc.desc Test getParameter. 1667 */ 1668 it('webgl_test_getParameter_73', 0, async function (done) { 1669 checkGetParameter(gl.STENCIL_WRITEMASK, 'Number') 1670 done() 1671 }) 1672 1673 1674 /** 1675 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0116 1676 * @tc.name webgl_test_getParameter_74 1677 * @tc.desc Test getParameter. 1678 */ 1679 it('webgl_test_getParameter_74', 0, async function (done) { 1680 checkGetParameter(gl.SUBPIXEL_BITS, 'Number') 1681 done() 1682 }) 1683 1684 1685 /** 1686 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0117 1687 * @tc.name webgl_test_getParameter_75 1688 * @tc.desc Test getParameter. 1689 */ 1690 it('webgl_test_getParameter_75', 0, async function (done) { 1691 let texture = gl.createTexture(); 1692 gl.bindTexture(gl.TEXTURE_2D, texture); 1693 checkGetParameter(gl.TEXTURE_BINDING_2D, 'WebGLTexture') 1694 gl.deleteTexture(texture) 1695 done() 1696 }) 1697 1698 1699 /** 1700 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0118 1701 * @tc.name webgl_test_getParameter_76 1702 * @tc.desc Test getParameter. 1703 */ 1704 it('webgl_test_getParameter_76', 0, async function (done) { 1705 let texture = gl.createTexture(); 1706 gl.bindTexture(gl.TEXTURE_CUBE_MAP, texture); 1707 checkGetParameter(gl.TEXTURE_BINDING_CUBE_MAP, 'WebGLTexture') 1708 gl.deleteTexture(texture) 1709 done() 1710 }) 1711 1712 1713 /** 1714 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0119 1715 * @tc.name webgl_test_getParameter_77 1716 * @tc.desc Test getParameter. 1717 */ 1718 it('webgl_test_getParameter_77', 0, async function (done) { 1719 checkGetParameter(gl.UNPACK_ALIGNMENT, 'Number') 1720 done() 1721 }) 1722 1723 1724 /** 1725 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0120 1726 * @tc.name webgl_test_getParameter_78 1727 * @tc.desc Test getParameter. 1728 */ 1729 it('webgl_test_getParameter_78', 0, async function (done) { 1730 checkGetParameter(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, 'Number') 1731 done() 1732 }) 1733 1734 1735 /** 1736 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0121 1737 * @tc.name webgl_test_getParameter_79 1738 * @tc.desc Test getParameter. 1739 */ 1740 it('webgl_test_getParameter_79', 0, async function (done) { 1741 checkGetParameter(gl.UNPACK_FLIP_Y_WEBGL, 'Boolean') 1742 done() 1743 }) 1744 1745 1746 /** 1747 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0122 1748 * @tc.name webgl_test_getParameter_80 1749 * @tc.desc Test getParameter. 1750 */ 1751 it('webgl_test_getParameter_80', 0, async function (done) { 1752 checkGetParameter(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 'Boolean') 1753 done() 1754 }) 1755 1756 1757 /** 1758 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0123 1759 * @tc.name webgl_test_getParameter_81 1760 * @tc.desc Test getParameter. 1761 */ 1762 it('webgl_test_getParameter_81', 0, async function (done) { 1763 checkGetParameter(gl.VENDOR, 'String') 1764 done() 1765 }) 1766 1767 1768 /** 1769 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0124 1770 * @tc.name webgl_test_getParameter_82 1771 * @tc.desc Test getParameter. 1772 */ 1773 it('webgl_test_getParameter_82', 0, async function (done) { 1774 checkGetParameter(gl.VERSION, 'String') 1775 done() 1776 }) 1777 1778 1779 /** 1780 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0125 1781 * @tc.name webgl_test_getParameter_83 1782 * @tc.desc Test getParameter. 1783 */ 1784 it('webgl_test_getParameter_83', 0, async function (done) { 1785 checkGetParameter(gl.VIEWPORT, 'Int32Array', 4) 1786 done() 1787 }) 1788 1789 1790 /** 1791 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0126 1792 * @tc.name webgl_test_getParameter_Error 1793 * @tc.desc Test getParameter. 1794 */ 1795 it('webgl_test_getParameter_Error', 0, async function (done) { 1796 console.info("webgltest [webgl_test_getParameterError] getParameter"); 1797 console.info("webgltest ACTIVE_TEXTURE:undefined"); 1798 expect(gl.getParameter(undefined)).assertEqual(null); 1799 console.info("webgltest ACTIVE_TEXTURE:null"); 1800 expect(gl.getParameter(null)).assertEqual(null); 1801 done(); 1802 }) 1803 1804 /** 1805 * getExtension(name) 方法启用 WebGL 扩展。 1806 * @param name 要启用的 WebGL 扩展的名称的字符串。 1807 */ 1808 1809 /** 1810 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0127 1811 * @tc.name webgl_test_getExtension 1812 * @tc.desc Test getExtension. 1813 */ 1814 it('webgl_test_getExtension', 0, async function (done) { 1815 console.info("webgltest [webgl_test_getExtension] getExtension"); 1816 console.info("webgltest getExtension('');", gl.getExtension('')); 1817 expect(gl.getExtension('')).assertEqual(null); 1818 console.info("webgltest gl.getExtension('WEBGL_lose_context');", gl.getExtension('WEBGL_lose_context')); 1819 expect(gl.getExtension('WEBGL_lose_context') != null).assertTrue(); 1820 let extension = gl.getExtension("WEBGL_lose_context"); 1821 console.info("webgltest loseContext(): ", extension['loseContext']); 1822 expect(extension['loseContext'] != null).assertTrue(); 1823 done(); 1824 }) 1825 1826 1827 /** 1828 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0128 1829 * @tc.name webgl_test_getExtension_Error 1830 * @tc.desc Test getExtension. 1831 */ 1832 it('webgl_test_getExtension_Error', 0, async function (done) { 1833 console.info("webgltest [webgl_test_getExtensionError] getExtensionError"); 1834 console.info("webgltest getExtension(undefined);", gl.getExtension(undefined)); 1835 expect(gl.getExtension(undefined)).assertEqual(null); 1836 console.info("webgltest gl.getExtension('null');", gl.getExtension('null')); 1837 expect(gl.getExtension(null)).assertEqual(null); 1838 console.info("webgltest gl.getExtension('-1');", gl.getExtension(-1)); 1839 let extension = gl.getExtension(-1); 1840 expect(extension).assertEqual(null); 1841 done(); 1842 }) 1843 1844 /** 1845 * 返回所有受支持的 WebGL 扩展的列表。 1846 */ 1847 1848 /** 1849 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0129 1850 * @tc.name webgl_test_getSupportedExtensions 1851 * @tc.desc Test getSupportedExtensions. 1852 */ 1853 it('webgl_test_getSupportedExtensions', 0, async function (done) { 1854 console.info("webgltest [webgl_test_getSupportedExtensions] getSupportedExtensions"); 1855 let supportedExtensions = gl.getSupportedExtensions(); 1856 console.info("webgltest getSupportedExtensions();", supportedExtensions); 1857 expect(supportedExtensions != null).assertTrue(); 1858 expect(supportedExtensions.length > 0).assertTrue(); 1859 done(); 1860 }) 1861 1862 /** 1863 *WebGL API的方法设置视口,它指定x和y从标准化设备坐标到窗口坐标的仿射变换。 1864 */ 1865 1866 /** 1867 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0130 1868 * @tc.name webgl_test_viewport 1869 * @tc.desc Test viewport. 1870 */ 1871 it('webgl_test_viewport', 0, async function (done) { 1872 console.info("webgltest [webgl_test_viewport] viewport"); 1873 let defaultViewPort = gl.getParameter(gl.VIEWPORT); 1874 console.info("webgltest viewPort:", defaultViewPort); 1875 console.info("webgltest gl.viewport(0, 0, 600, 400);"); 1876 gl.viewport(0, 0, 600, 400); 1877 let viewPort = gl.getParameter(gl.VIEWPORT); 1878 console.info("webgltest viewPort:", viewPort); 1879 expect(viewPort[0]).assertEqual(0); 1880 expect(viewPort[1]).assertEqual(0); 1881 expect(viewPort[2]).assertEqual(600); 1882 expect(viewPort[3]).assertEqual(400); 1883 gl.viewport(defaultViewPort.x, defaultViewPort.y, defaultViewPort, defaultViewPort.height); 1884 done(); 1885 }) 1886 1887 1888 /** 1889 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0131 1890 * @tc.name webgl_test_viewport_Error 1891 * @tc.desc Test viewport. 1892 */ 1893 it('webgl_test_viewport_Error', 0, async function (done) { 1894 console.info("webgltest [webgl_test_viewportError] viewportError"); 1895 console.info("webgltest [webgl_test_viewportError] viewport(x=undefined) "); 1896 let srcViewport = gl.getParameter(gl.VIEWPORT); 1897 gl.viewport(undefined, 0, 600, 400); 1898 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 1899 console.info("webgltest [webgl_test_viewportError] viewport(y=undefined) "); 1900 gl.viewport(0, undefined, 600, 400); 1901 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 1902 console.info("webgltest [webgl_test_viewportError] viewport(width=undefined) "); 1903 gl.viewport(0, 0, undefined, 400); 1904 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 1905 console.info("webgltest [webgl_test_viewportError] viewport(height=undefined) "); 1906 gl.viewport(0, 0, 600, undefined); 1907 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 1908 console.info("webgltest [webgl_test_viewportError] viewport(x=undefined,y=undefined,width=undefined,height=undefined) "); 1909 gl.viewport(undefined, undefined, undefined, undefined); 1910 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 1911 gl.viewport(srcViewport[0],srcViewport[1],srcViewport[2],srcViewport[3]); 1912 done(); 1913 }) 1914 1915 /** 1916 *WebGL API的方法指定了某些行为的提示。这些提示的解释取决于实现。 1917 */ 1918 1919 /** 1920 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0132 1921 * @tc.name webgl_test_hint 1922 * @tc.desc Test hint. 1923 */ 1924 it('webgl_test_hint', 0, async function (done) { 1925 console.info("webgltest [webgl_test_hint] hint"); 1926 let check = () => { 1927 let generateMipMapHint = gl.getParameter(gl.GENERATE_MIPMAP_HINT); 1928 switch (generateMipMapHint) { 1929 case gl.FASTEST: 1930 console.info("webgltest GENERATE_MIPMAP_HINT gl.FASTEST"); 1931 break; 1932 case gl.NICEST: 1933 console.info("webgltest GENERATE_MIPMAP_HINT gl.NICEST"); 1934 break; 1935 case gl.DONT_CARE: 1936 console.info("webgltest GENERATE_MIPMAP_HINT gl.DONT_CARE"); 1937 break; 1938 } 1939 return generateMipMapHint; 1940 } 1941 let defaultGenerateMipMapHint = check(); 1942 console.info("webgltest gl.hint(gl.GENERATE_MIPMAP_HINT, gl.FASTEST);"); 1943 gl.hint(gl.GENERATE_MIPMAP_HINT, gl.FASTEST); 1944 let generateMipMapHint = check(); 1945 expect(generateMipMapHint).assertEqual(gl.FASTEST); 1946 console.info("webgltest reset config"); 1947 gl.hint(gl.GENERATE_MIPMAP_HINT, defaultGenerateMipMapHint); 1948 check(); 1949 done(); 1950 }) 1951 1952 1953 /** 1954 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0133 1955 * @tc.name webgl_test_hint_Error 1956 * @tc.desc Test hint. 1957 */ 1958 it('webgl_test_hint_Error', 0, async function (done) { 1959 console.info("webgltest [webgl_test_hintError] webgl_test_hint"); 1960 console.info("webgltest [webgl_test_hintError] hint(target=undefined) "); 1961 gl.hint(undefined, gl.FASTEST); 1962 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 1963 console.info("webgltest [webgl_test_hintError] hint(mode=undefined) "); 1964 gl.hint(gl.GENERATE_MIPMAP_HINT, undefined); 1965 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 1966 console.info("webgltest [webgl_test_hintError] hint(target=undefined,mode=undefined) "); 1967 gl.hint(undefined, undefined); 1968 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 1969 console.info("webgltest [webgl_test_hintError] hint(target=-1,mode=undefined) "); 1970 gl.hint(-1, undefined); 1971 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 1972 console.info("webgltest [webgl_test_hintError] hint(target=undefined,mode=-1) "); 1973 gl.hint(undefined, -1); 1974 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 1975 console.info("webgltest [webgl_test_hintError] hint(target=-1,mode=-1) "); 1976 gl.hint(-1, -1); 1977 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 1978 done(); 1979 }) 1980 1981 /** 1982 * WebGL API 的 WebGLRenderingContext.lineWidth() 方法设置栅格化线的线宽。 1983 */ 1984 1985 /** 1986 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0134 1987 * @tc.name webgl_test_lineWidth 1988 * @tc.desc Test lineWidth. 1989 */ 1990 it('webgl_test_lineWidth', 0, async function (done) { 1991 console.info("webgltest [webgl_test_lineWidth] lineWidth"); 1992 let defaultLineWidth = gl.getParameter(gl.LINE_WIDTH); 1993 console.info("webgltest LINE_WIDTH:", defaultLineWidth); 1994 console.info("webgltest gl.lineWidth(10);"); 1995 gl.lineWidth(10); 1996 let lineWidth = gl.getParameter(gl.LINE_WIDTH); 1997 console.info("webgltest LINE_WIDTH:", lineWidth); 1998 expect(lineWidth).assertEqual(10); 1999 gl.lineWidth(defaultLineWidth); 2000 console.info("webgltest rest LINE_WIDTH"); 2001 console.info("webgltest LINE_WIDTH:", gl.getParameter(gl.LINE_WIDTH)); 2002 done(); 2003 }) 2004 2005 2006 /** 2007 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0135 2008 * @tc.name webgl_test_lineWidth_Error 2009 * @tc.desc Test lineWidth. 2010 */ 2011 it('webgl_test_lineWidth_Error', 0, async function (done) { 2012 let defaultLineWidth = gl.getParameter(gl.LINE_WIDTH); 2013 console.info("webgltest [webgl_test_lineWidthError] webgl_test_lineWidthError"); 2014 console.info("webgltest [webgl_test_lineWidthError] lineWidth(width=undefined) "); 2015 gl.lineWidth(undefined); 2016 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE) 2017 console.info("webgltest [webgl_test_lineWidthError] lineWidth(width=null) "); 2018 gl.lineWidth(null); 2019 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE) 2020 console.info("webgltest [webgl_test_lineWidthError] lineWidth(width=-1) "); 2021 gl.lineWidth(-1); 2022 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE) 2023 gl.lineWidth(defaultLineWidth); 2024 done(); 2025 }) 2026 2027 /** 2028 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0136 2029 * @tc.name webgl_test_readPixels 2030 * @tc.desc Test readPixels. 2031 */ 2032 it('webgl_test_readPixels', 0, async function (done) { 2033 console.info("webgltest [webgl_test_readPixels] readPixels"); 2034 console.info("webgltest gl.clearColor(1.0, 0.0, 0.0, 1);"); 2035 gl.clearColor(1.0, 0.0, 0.0, 1); 2036 gl.clear(gl.COLOR_BUFFER_BIT); 2037 console.info("webgltest gl.drawingBufferWidth :", gl.drawingBufferWidth, "gl.drawingBufferHeight", gl.drawingBufferHeight); 2038 const pixels = new Uint8Array(gl.drawingBufferWidth * gl.drawingBufferHeight * 4); 2039 console.info("gl.readPixels(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight, gl.RGBA, gl.UNSIGNED_BYTE, pixels);"); 2040 gl.readPixels(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight, gl.RGBA, gl.UNSIGNED_BYTE, pixels); 2041 console.info("webgltest gl.readPixels ", pixels); 2042 expect(pixels[0]).assertEqual(255); 2043 expect(pixels[1]).assertEqual(0); 2044 expect(pixels[2]).assertEqual(0); 2045 expect(pixels[3]).assertEqual(255); 2046 gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT); 2047 done(); 2048 }) 2049 2050 2051 /** 2052 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0137 2053 * @tc.name webgl_test_readPixels_Error 2054 * @tc.desc Test readPixels. 2055 */ 2056 it('webgl_test_readPixels_Error', 0, async function (done) { 2057 const pixels = new Uint8Array(gl.drawingBufferWidth * gl.drawingBufferHeight * 4); 2058 console.info("webgltest [webgl_test_readPixelsError] webgl_test_readPixelsError"); 2059 console.info("webgltest [webgl_test_lineWidthError] readPixels(x=undefined) "); 2060 gl.readPixels(undefined, 0, gl.drawingBufferWidth, gl.drawingBufferHeight, gl.RGBA, gl.UNSIGNED_BYTE, pixels); 2061 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2062 console.info("webgltest [webgl_test_lineWidthError] readPixels(y=undefined) "); 2063 gl.readPixels(0, undefined, gl.drawingBufferWidth, gl.drawingBufferHeight, gl.RGBA, gl.UNSIGNED_BYTE, pixels); 2064 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2065 console.info("webgltest [webgl_test_lineWidthError] readPixels(width=undefined) "); 2066 gl.readPixels(0, 0, undefined, gl.drawingBufferHeight, gl.RGBA, gl.UNSIGNED_BYTE, pixels); 2067 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2068 console.info("webgltest [webgl_test_lineWidthError] readPixels(height=undefined) "); 2069 gl.readPixels(0, 0, gl.drawingBufferWidth, undefined, gl.RGBA, gl.UNSIGNED_BYTE, pixels); 2070 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2071 console.info("webgltest [webgl_test_lineWidthError] readPixels(format=undefined) "); 2072 gl.readPixels(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight, undefined, gl.UNSIGNED_BYTE, pixels); 2073 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2074 console.info("webgltest [webgl_test_lineWidthError] readPixels(type=undefined) "); 2075 gl.readPixels(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight, gl.RGBA, undefined, pixels); 2076 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2077 console.info("webgltest [webgl_test_lineWidthError] readPixels(type=undefined) "); 2078 gl.readPixels(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight, gl.RGBA, gl.UNSIGNED_BYTE, undefined); 2079 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE) 2080 gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT); 2081 done(); 2082 }) 2083 2084 /** 2085 * 用于设置源和目标混合因子 2086 */ 2087 2088 /** 2089 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0138 2090 * @tc.name webgl_test_blendColor 2091 * @tc.desc Test blendColor. 2092 */ 2093 it('webgl_test_blendColor', 0, async function (done) { 2094 console.info("webgltest [webgl_test_blendColor] blendColor"); 2095 let src = gl.getParameter(gl.BLEND_COLOR); 2096 console.info("webgltest gl.blendColor(1.0, 0.5, 1, 1);"); 2097 gl.blendColor(1.0, 0.5, 1, 1); 2098 let blendColor = gl.getParameter(gl.BLEND_COLOR); 2099 console.info("webgltest blendColor:", blendColor); 2100 expect(blendColor[0]).assertEqual(1.0); 2101 expect(blendColor[1]).assertEqual(0.5); 2102 expect(blendColor[2]).assertEqual(1.0); 2103 expect(blendColor[3]).assertEqual(1.0); 2104 gl.blendColor(src[0], src[1], src[2], src[3]); 2105 done(); 2106 }) 2107 2108 2109 /** 2110 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0139 2111 * @tc.name webgl_test_blendColor_Error 2112 * @tc.desc Test blendColor. 2113 */ 2114 it('webgl_test_blendColor_Error', 0, async function (done) { 2115 console.info("webgltest [webgl_test_blendColorError] blendColorError"); 2116 let src = gl.getParameter(gl.BLEND_COLOR); 2117 console.info("webgltest [webgl_test_lineWidthError] blendColor(red=undefined) "); 2118 gl.blendColor(undefined, 0.5, 1, 1); 2119 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2120 console.info("webgltest [webgl_test_lineWidthError] blendColor(green=undefined) "); 2121 gl.blendColor(0.5, undefined, 1, 1); 2122 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2123 console.info("webgltest [webgl_test_lineWidthError] blendColor(blue=undefined) "); 2124 gl.blendColor(0.5, 0.5, undefined, 1); 2125 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2126 console.info("webgltest [webgl_test_lineWidthError] blendColor(alpha=undefined) "); 2127 gl.blendColor(0.5, 0.5, 1, undefined); 2128 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2129 console.info("webgltest [webgl_test_lineWidthError] blendColor(alpha=undefined) "); 2130 gl.blendColor(-1, -1, -1, -1); 2131 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2132 gl.blendColor(src[0], src[1], src[2], src[3]); 2133 done(); 2134 }) 2135 2136 /** 2137 * WebGL API 的 WebGLRenderingContext.blendEquation() 方法用于将 RGB 混合方程和 alpha 混合方程设置为单个方程。 2138 * gl.FUNC_ADD: source + destination (default value) 2139 * gl.FUNC_SUBTRACT: source - destination 2140 * gl.FUNC_REVERSE_SUBTRACT: destination - source 2141 */ 2142 2143 /** 2144 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0140 2145 * @tc.name webgl_test_blendEquation 2146 * @tc.desc Test blendEquation. 2147 */ 2148 it('webgl_test_blendEquation', 0, async function (done) { 2149 console.info("webgltest [webgl_test_blendEquation] blendEquation"); 2150 console.info("webgltest default value"); 2151 let srcRgb = gl.getParameter(gl.BLEND_EQUATION_RGB); 2152 let srcAlpha = gl.getParameter(gl.BLEND_EQUATION_ALPHA); 2153 console.info("webgltest BLEND_EQUATION_RGB ", gl.getParameter(gl.BLEND_EQUATION_RGB)); 2154 console.info("webgltest BLEND_EQUATION_ALPHA ", gl.getParameter(gl.BLEND_EQUATION_ALPHA)); 2155 console.info("webgltest gl.blendEquation(gl.FUNC_SUBTRACT);", gl.FUNC_SUBTRACT); 2156 gl.blendEquation(gl.FUNC_SUBTRACT); 2157 console.info("webgltest BLEND_EQUATION_RGB ", gl.getParameter(gl.BLEND_EQUATION_RGB)); 2158 console.info("webgltest BLEND_EQUATION_ALPHA ", gl.getParameter(gl.BLEND_EQUATION_ALPHA)); 2159 expect(gl.getParameter(gl.BLEND_EQUATION_RGB)).assertEqual(gl.FUNC_SUBTRACT); 2160 expect(gl.getParameter(gl.BLEND_EQUATION_ALPHA)).assertEqual(gl.FUNC_SUBTRACT); 2161 console.info("webgltest gl.blendEquation(gl.FUNC_ADD);", gl.FUNC_ADD); 2162 gl.blendEquation(gl.FUNC_ADD); 2163 console.info("webgltest BLEND_EQUATION_RGB ", gl.getParameter(gl.BLEND_EQUATION_RGB)); 2164 console.info("webgltest BLEND_EQUATION_ALPHA ", gl.getParameter(gl.BLEND_EQUATION_ALPHA)); 2165 expect(gl.getParameter(gl.BLEND_EQUATION_RGB)).assertEqual(gl.FUNC_ADD); 2166 expect(gl.getParameter(gl.BLEND_EQUATION_ALPHA)).assertEqual(gl.FUNC_ADD); 2167 console.info("webgltest gl.blendEquation(gl.FUNC_REVERSE_SUBTRACT);", gl.FUNC_REVERSE_SUBTRACT); 2168 gl.blendEquation(gl.FUNC_REVERSE_SUBTRACT); 2169 console.info("webgltest BLEND_EQUATION_RGB ", gl.getParameter(gl.BLEND_EQUATION_RGB)); 2170 console.info("webgltest BLEND_EQUATION_ALPHA ", gl.getParameter(gl.BLEND_EQUATION_ALPHA)); 2171 expect(gl.getParameter(gl.BLEND_EQUATION_RGB)).assertEqual(gl.FUNC_REVERSE_SUBTRACT); 2172 expect(gl.getParameter(gl.BLEND_EQUATION_ALPHA)).assertEqual(gl.FUNC_REVERSE_SUBTRACT); 2173 gl.blendEquation(srcRgb); 2174 done(); 2175 }) 2176 2177 2178 /** 2179 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0141 2180 * @tc.name webgl_test_blendEquation_Error 2181 * @tc.desc Test blendEquation. 2182 */ 2183 it('webgl_test_blendEquation_Error', 0, async function (done) { 2184 console.info("webgltest [webgl_test_blendEquationError] blendEquationError"); 2185 let srcRgb = gl.getParameter(gl.BLEND_EQUATION_RGB); 2186 console.info("webgltest [webgl_test_lineWidthError] blendEquation(undefined) "); 2187 gl.blendEquation(undefined); 2188 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2189 console.info("webgltest [webgl_test_lineWidthError] blendEquation(null) "); 2190 gl.blendEquation(null); 2191 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2192 console.info("webgltest [webgl_test_lineWidthError] blendEquation(-1) "); 2193 gl.blendEquation(-1); 2194 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2195 gl.blendEquation(srcRgb); 2196 done(); 2197 }) 2198 2199 /** 2200 * WebGL API 的 WebGLRenderingContext.blendEquationSeparate() 方法用于分别设置 RGB 混合方程和 alpha 混合方程。 2201 * 2202 */ 2203 2204 /** 2205 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0142 2206 * @tc.name webgl_test_blendEquationSeparate 2207 * @tc.desc Test blendEquationSeparate. 2208 */ 2209 it('webgl_test_blendEquationSeparate', 0, async function (done) { 2210 console.info("webgltest [webgl_test_blendEquationSeparate] blendEquationSeparate"); 2211 console.info("webgltest default value"); 2212 let srcRgb = gl.getParameter(gl.BLEND_EQUATION_RGB); 2213 let srcAlpha = gl.getParameter(gl.BLEND_EQUATION_ALPHA); 2214 console.info("webgltest BLEND_EQUATION_RGB ", gl.getParameter(gl.BLEND_EQUATION_RGB)); 2215 console.info("webgltest BLEND_EQUATION_ALPHA ", gl.getParameter(gl.BLEND_EQUATION_ALPHA)); 2216 console.info("webgltest gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_SUBTRACT);", gl.FUNC_ADD, gl.FUNC_SUBTRACT); 2217 gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_SUBTRACT); 2218 console.info("webgltest BLEND_EQUATION_RGB ", gl.getParameter(gl.BLEND_EQUATION_RGB)); 2219 console.info("webgltest BLEND_EQUATION_ALPHA ", gl.getParameter(gl.BLEND_EQUATION_ALPHA)); 2220 expect(gl.getParameter(gl.BLEND_EQUATION_RGB)).assertEqual(gl.FUNC_ADD); 2221 expect(gl.getParameter(gl.BLEND_EQUATION_ALPHA)).assertEqual(gl.FUNC_SUBTRACT); 2222 console.info("webgltest gl.blendEquationSeparate(gl.FUNC_SUBTRACT, gl.FUNC_REVERSE_SUBTRACT);", gl.FUNC_SUBTRACT, gl.FUNC_REVERSE_SUBTRACT); 2223 gl.blendEquationSeparate(gl.FUNC_SUBTRACT, gl.FUNC_REVERSE_SUBTRACT); 2224 console.info("webgltest BLEND_EQUATION_RGB ", gl.getParameter(gl.BLEND_EQUATION_RGB)); 2225 console.info("webgltest BLEND_EQUATION_ALPHA ", gl.getParameter(gl.BLEND_EQUATION_ALPHA)); 2226 expect(gl.getParameter(gl.BLEND_EQUATION_RGB)).assertEqual(gl.FUNC_SUBTRACT); 2227 expect(gl.getParameter(gl.BLEND_EQUATION_ALPHA)).assertEqual(gl.FUNC_REVERSE_SUBTRACT); 2228 gl.blendEquationSeparate(srcRgb, srcAlpha); 2229 done(); 2230 }) 2231 2232 2233 /** 2234 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0143 2235 * @tc.name webgl_test_blendEquationSeparate_Error 2236 * @tc.desc Test blendEquationSeparate. 2237 */ 2238 it('webgl_test_blendEquationSeparate_Error', 0, async function (done) { 2239 console.info("webgltest [webgl_test_blendEquationSeparateError] blendEquationSeparateError"); 2240 console.info("webgltest default value"); 2241 let srcRgb = gl.getParameter(gl.BLEND_EQUATION_RGB); 2242 let srcAlpha = gl.getParameter(gl.BLEND_EQUATION_ALPHA); 2243 console.info("webgltest [webgl_test_blendEquationSeparateError] blendEquationSeparate(modeRgb = undefined) "); 2244 gl.blendEquationSeparate(undefined, gl.FUNC_SUBTRACT); 2245 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2246 console.info("webgltest [webgl_test_blendEquationSeparateError] blendEquationSeparate(modeAlpha = undefined) "); 2247 gl.blendEquationSeparate(gl.FUNC_SUBTRACT, undefined); 2248 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2249 gl.blendEquationSeparate(srcRgb, srcAlpha); 2250 done(); 2251 }) 2252 2253 /** 2254 * WebGL API 的 WebGLRenderingContext.blendFunc() 方法定义了用于混合像素计算的函数。 2255 */ 2256 2257 /** 2258 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0144 2259 * @tc.name webgl_test_blendFunc 2260 * @tc.desc Test blendFunc. 2261 */ 2262 it('webgl_test_blendFunc', 0, async function (done) { 2263 console.info("webgltest [webgl_test_blendFunc] blendFunc"); 2264 console.info("webgltest default value"); 2265 let isEnable = gl.isEnabled(gl.BLEND); 2266 let src = gl.getParameter(gl.BLEND_SRC_RGB); 2267 let dst = gl.getParameter(gl.BLEND_DST_RGB); 2268 gl.enable(gl.BLEND); 2269 console.info("webgltest gl.getParameter(gl.BLEND_SRC_RGB) ", gl.getParameter(gl.BLEND_SRC_RGB)); 2270 console.info("webgltest gl.getParameter(gl.BLEND_DST_RGB) ", gl.getParameter(gl.BLEND_DST_RGB)); 2271 console.info("webgltest gl.blendFunc(gl.SRC_COLOR, gl.DST_COLOR);", gl.SRC_COLOR, gl.DST_COLOR); 2272 gl.blendFunc(gl.SRC_COLOR, gl.DST_COLOR); 2273 console.info("webgltest gl.getParameter(gl.BLEND_SRC_RGB) ", gl.getParameter(gl.BLEND_SRC_RGB)); 2274 console.info("webgltest gl.getParameter(gl.BLEND_DST_RGB) ", gl.getParameter(gl.BLEND_DST_RGB)); 2275 expect(gl.getParameter(gl.BLEND_SRC_RGB)).assertEqual(gl.SRC_COLOR); 2276 expect(gl.getParameter(gl.BLEND_DST_RGB)).assertEqual(gl.DST_COLOR); 2277 console.info("webgltest reset"); 2278 gl.blendFunc(src, dst); 2279 console.info("webgltest gl.getParameter(gl.BLEND_SRC_RGB) ", gl.getParameter(gl.BLEND_SRC_RGB)); 2280 console.info("webgltest gl.getParameter(gl.BLEND_DST_RGB) ", gl.getParameter(gl.BLEND_DST_RGB)); 2281 if (isEnable) { 2282 gl.enable(gl.BLEND); 2283 } else { 2284 gl.disable(gl.BLEND); 2285 } 2286 done(); 2287 }) 2288 2289 2290 /** 2291 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0145 2292 * @tc.name webgl_test_blendFunc_Error 2293 * @tc.desc Test blendFunc. 2294 */ 2295 it('webgl_test_blendFunc_Error', 0, async function (done) { 2296 console.info("webgltest [webgl_test_blendFuncError] blendFunc"); 2297 console.info("webgltest default value"); 2298 let isEnable = gl.isEnabled(gl.BLEND); 2299 let src = gl.getParameter(gl.BLEND_SRC_RGB); 2300 let dst = gl.getParameter(gl.BLEND_DST_RGB); 2301 gl.enable(gl.BLEND); 2302 console.info("webgltest [webgl_test_blendFuncError] blendFunc(sfactor = undefined) "); 2303 gl.blendFunc(undefined, gl.DST_COLOR); 2304 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2305 console.info("webgltest [webgl_test_blendFuncError] blendFunc(dfactor = undefined) "); 2306 gl.blendFunc(gl.SRC_COLOR, undefined); 2307 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2308 console.info("webgltest [webgl_test_blendFuncError] blendFunc(sfactor = undefined,dfactor = undefined) "); 2309 gl.blendFunc(undefined, undefined); 2310 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2311 gl.blendFunc(src, dst); 2312 if (isEnable) { 2313 gl.enable(gl.BLEND); 2314 } else { 2315 gl.disable(gl.BLEND); 2316 } 2317 done(); 2318 }) 2319 2320 /** 2321 * blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha) 2322 * 方法定义了哪个函数用于分别混合 RGB 和 alpha 组件的像素计算。 2323 */ 2324 2325 /** 2326 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0146 2327 * @tc.name webgl_test_blendFuncSeparate 2328 * @tc.desc Test blendFuncSeparate. 2329 */ 2330 it('webgl_test_blendFuncSeparate', 0, async function (done) { 2331 console.info("webgltest [webgl_test_blendFuncSeparate] blendFuncSeparate"); 2332 let isEnable = gl.isEnabled(gl.BLEND); 2333 let src = gl.getParameter(gl.BLEND_SRC_RGB); 2334 let srcAlpha = gl.getParameter(gl.BLEND_SRC_ALPHA); 2335 let dst = gl.getParameter(gl.BLEND_DST_RGB); 2336 let dstAlpha = gl.getParameter(gl.BLEND_DST_ALPHA); 2337 gl.enable(gl.BLEND); 2338 console.info("webgltest gl.blendFuncSeparate(gl.SRC_COLOR, gl.DST_COLOR, gl.ONE, gl.ZERO);", gl.SRC_COLOR, gl.DST_COLOR, gl.ONE, gl.ZERO); 2339 gl.blendFuncSeparate(gl.SRC_COLOR, gl.DST_COLOR, gl.ONE, gl.ZERO); 2340 console.info("webgltest gl.getParameter(gl.BLEND_SRC_RGB) ", gl.getParameter(gl.BLEND_SRC_RGB)); 2341 console.info("webgltest gl.getParameter(gl.BLEND_DST_RGB) ", gl.getParameter(gl.BLEND_DST_RGB)); 2342 console.info("webgltest gl.getParameter(gl.BLEND_SRC_ALPHA) ", gl.getParameter(gl.BLEND_SRC_ALPHA)); 2343 console.info("webgltest gl.getParameter(gl.BLEND_DST_ALPHA) ", gl.getParameter(gl.BLEND_DST_ALPHA)); 2344 expect(gl.getParameter(gl.BLEND_SRC_RGB)).assertEqual(gl.SRC_COLOR); 2345 expect(gl.getParameter(gl.BLEND_DST_RGB)).assertEqual(gl.DST_COLOR); 2346 expect(gl.getParameter(gl.BLEND_SRC_ALPHA)).assertEqual(gl.ONE); 2347 expect(gl.getParameter(gl.BLEND_DST_ALPHA)).assertEqual(gl.ZERO); 2348 gl.blendFuncSeparate(src, dst, srcAlpha, dstAlpha); 2349 console.info("webgltest reset"); 2350 console.info("webgltest gl.getParameter(gl.BLEND_SRC_RGB) ", gl.getParameter(gl.BLEND_SRC_RGB)); 2351 console.info("webgltest gl.getParameter(gl.BLEND_DST_RGB) ", gl.getParameter(gl.BLEND_DST_RGB)); 2352 console.info("webgltest gl.getParameter(gl.BLEND_SRC_ALPHA) ", gl.getParameter(gl.BLEND_SRC_ALPHA)); 2353 console.info("webgltest gl.getParameter(gl.BLEND_DST_ALPHA) ", gl.getParameter(gl.BLEND_DST_ALPHA)); 2354 if (isEnable) { 2355 gl.enable(gl.BLEND); 2356 } else { 2357 gl.disable(gl.BLEND); 2358 } 2359 done(); 2360 }) 2361 2362 2363 /** 2364 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0147 2365 * @tc.name webgl_test_blendFuncSeparate_Error 2366 * @tc.desc Test blendFuncSeparate. 2367 */ 2368 it('webgl_test_blendFuncSeparate_Error', 0, async function (done) { 2369 console.info("webgltest [webgl_test_blendFuncSeparateError] blendFuncSeparate"); 2370 let isEnable = gl.isEnabled(gl.BLEND); 2371 let src = gl.getParameter(gl.BLEND_SRC_RGB); 2372 let srcAlpha = gl.getParameter(gl.BLEND_SRC_ALPHA); 2373 let dst = gl.getParameter(gl.BLEND_DST_RGB); 2374 let dstAlpha = gl.getParameter(gl.BLEND_DST_ALPHA); 2375 gl.enable(gl.BLEND); 2376 console.info("webgltest [webgl_test_blendFuncSeparateError] blendFuncSeparate(srcRGB = undefined) "); 2377 gl.blendFuncSeparate(undefined, gl.DST_COLOR, gl.ONE, gl.ZERO); 2378 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2379 console.info("webgltest [webgl_test_blendFuncSeparateError] blendFuncSeparate(dstRGB = undefined) "); 2380 gl.blendFuncSeparate(gl.SRC_COLOR, undefined, gl.ONE, gl.ZERO); 2381 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2382 console.info("webgltest [webgl_test_blendFuncSeparateError] blendFuncSeparate(srcAlpha = undefined) "); 2383 gl.blendFuncSeparate(gl.SRC_COLOR, gl.DST_COLOR, undefined, gl.ZERO); 2384 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2385 console.info("webgltest [webgl_test_blendFuncSeparateError] blendFuncSeparate(dstAlpha = undefined) "); 2386 gl.blendFuncSeparate(gl.SRC_COLOR, gl.DST_COLOR, gl.ONE, undefined); 2387 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2388 gl.blendFuncSeparate(src, dst, srcAlpha, dstAlpha); 2389 if (isEnable) { 2390 gl.enable(gl.BLEND); 2391 } else { 2392 gl.disable(gl.BLEND); 2393 } 2394 done(); 2395 }) 2396 2397 /** 2398 * 指定了模板缓冲区的清除值 2399 */ 2400 2401 /** 2402 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0148 2403 * @tc.name webgl_test_clearStencil 2404 * @tc.desc Test clearStencil. 2405 */ 2406 it('webgl_test_clearStencil', 0, async function (done) { 2407 console.info("webgltest [webgl_test_clearStencil] clearStencil"); 2408 let src = gl.getParameter(gl.STENCIL_CLEAR_VALUE); 2409 console.info("webgltest default clearStencil", src); 2410 console.info("webgltest gl.clearStencil(1);"); 2411 gl.clearStencil(1); 2412 console.info("webgltest gl.getParameter(gl.STENCIL_CLEAR_VALUE)", gl.getParameter(gl.STENCIL_CLEAR_VALUE)); 2413 expect(gl.getParameter(gl.STENCIL_CLEAR_VALUE)).assertEqual(1); 2414 console.info("webgltest gl.clearStencil(2);"); 2415 gl.clearStencil(2); 2416 console.info("webgltest gl.getParameter(gl.STENCIL_CLEAR_VALUE)", gl.getParameter(gl.STENCIL_CLEAR_VALUE)); 2417 expect(gl.getParameter(gl.STENCIL_CLEAR_VALUE)).assertEqual(2); 2418 gl.clearStencil(src); 2419 done(); 2420 }) 2421 2422 2423 /** 2424 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0149 2425 * @tc.name webgl_test_clearStencil_Error 2426 * @tc.desc Test clearStencil. 2427 */ 2428 it('webgl_test_clearStencil_Error', 0, async function (done) { 2429 console.info("webgltest [webgl_test_clearStencilError] clearStencil"); 2430 let src = gl.getParameter(gl.STENCIL_CLEAR_VALUE); 2431 console.info("webgltest [webgl_test_clearStencilError] clearStencil(undefined) "); 2432 gl.clearStencil(undefined); 2433 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2434 console.info("webgltest [webgl_test_clearStencilError] clearStencil(null) "); 2435 gl.clearStencil(null); 2436 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2437 console.info("webgltest [webgl_test_clearStencilError] clearStencil(-1) "); 2438 gl.clearStencil(-1); 2439 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2440 gl.clearStencil(src); 2441 done(); 2442 }) 2443 2444 /** 2445 * 设置在绘制或渲染到 WebGLFramebuffer 时要启用或禁用的颜色组件。 2446 */ 2447 2448 /** 2449 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0150 2450 * @tc.name webgl_test_colorMask 2451 * @tc.desc Test colorMask. 2452 */ 2453 it('webgl_test_colorMask', 0, async function (done) { 2454 console.info("webgltest [webgl_test_colorMask] colorMask"); 2455 let src = gl.getParameter(gl.COLOR_WRITEMASK); 2456 console.info("webgltest gl.colorMask(false, false, false, false);"); 2457 gl.colorMask(false, false, false, false); 2458 let colorWriteMask = gl.getParameter(gl.COLOR_WRITEMASK); 2459 console.info("webgltest colorMask", colorWriteMask); 2460 expect(colorWriteMask[0]).assertEqual(false); 2461 expect(colorWriteMask[1]).assertEqual(false); 2462 expect(colorWriteMask[2]).assertEqual(false); 2463 expect(colorWriteMask[3]).assertEqual(false); 2464 console.info("webgltest gl.colorMask(true, true, true, true);"); 2465 gl.colorMask(true, true, true, true); 2466 colorWriteMask = gl.getParameter(gl.COLOR_WRITEMASK); 2467 console.info("webgltest colorMask", colorWriteMask); 2468 expect(colorWriteMask[0]).assertEqual(true); 2469 expect(colorWriteMask[1]).assertEqual(true); 2470 expect(colorWriteMask[2]).assertEqual(true); 2471 expect(colorWriteMask[3]).assertEqual(true); 2472 gl.colorMask(src[0], src[1], src[2], src[3]); 2473 done(); 2474 }) 2475 2476 2477 /** 2478 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0151 2479 * @tc.name webgl_test_colorMask_Error 2480 * @tc.desc Test colorMask. 2481 */ 2482 it('webgl_test_colorMask_Error', 0, async function (done) { 2483 console.info("webgltest [webgl_test_colorMaskError] colorMask"); 2484 let src = gl.getParameter(gl.COLOR_WRITEMASK); 2485 console.info("webgltest [webgl_test_colorMaskError] colorMask(red = undefined) "); 2486 gl.colorMask(undefined, false, false, false); 2487 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2488 console.info("webgltest [webgl_test_colorMaskError] colorMask(green = undefined) "); 2489 gl.colorMask(false, undefined, false, false); 2490 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2491 console.info("webgltest [webgl_test_colorMaskError] colorMask(blue = undefined) "); 2492 gl.colorMask(false, false, undefined, false); 2493 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2494 console.info("webgltest [webgl_test_colorMaskError] colorMask(alpha = undefined) "); 2495 gl.colorMask(false, false, false, undefined); 2496 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2497 gl.colorMask(src[0], src[1], src[2], src[3]); 2498 done(); 2499 }) 2500 2501 /** 2502 * 指定是否可以剔除正面和/或背面多边形。 2503 */ 2504 2505 /** 2506 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0152 2507 * @tc.name webgl_test_cullFace 2508 * @tc.desc Test cullFace. 2509 */ 2510 it('webgl_test_cullFace', 0, async function (done) { 2511 console.info("webgltest [webgl_test_cullFace] cullFace"); 2512 console.info("webgltest CULL_FACE_MODE default gl.BACK ", gl.BACK); 2513 let src = gl.getParameter(gl.CULL_FACE_MODE); 2514 expect(gl.getParameter(gl.CULL_FACE_MODE)).assertEqual(gl.BACK); 2515 gl.enable(gl.CULL_FACE); 2516 console.info("webgltest gl.cullFace(gl.FRONT_AND_BACK);"); 2517 gl.cullFace(gl.FRONT_AND_BACK); 2518 console.info("webgltest CULL_FACE_MODE", gl.getParameter(gl.CULL_FACE_MODE)); 2519 expect(gl.getParameter(gl.CULL_FACE_MODE)).assertEqual(gl.FRONT_AND_BACK); 2520 gl.cullFace(src); 2521 gl.disable(gl.CULL_FACE); 2522 done(); 2523 }) 2524 2525 2526 /** 2527 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0153 2528 * @tc.name webgl_test_cullFace_Error 2529 * @tc.desc Test cullFace. 2530 */ 2531 it('webgl_test_cullFace_Error', 0, async function (done) { 2532 console.info("webgltest [webgl_test_cullFaceError] cullFace"); 2533 console.info("webgltest CULL_FACE_MODE default gl.BACK ", gl.BACK); 2534 let src = gl.getParameter(gl.CULL_FACE_MODE); 2535 console.info("webgltest [webgl_test_cullFaceError] cullFace(undefined) "); 2536 gl.cullFace(undefined); 2537 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2538 console.info("webgltest [webgl_test_cullFaceError] cullFace(null) "); 2539 gl.cullFace(undefined); 2540 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2541 console.info("webgltest [webgl_test_cullFaceError] cullFace(-1) "); 2542 gl.cullFace(-1); 2543 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2544 gl.cullFace(src); 2545 gl.disable(gl.CULL_FACE); 2546 done(); 2547 }) 2548 2549 /** 2550 * WebGL API 的 WebGLRenderingContext.depthFunc() 方法指定了一个函数,用于将传入的像素深度与当前深度缓冲区值进行比较。 2551 */ 2552 2553 /** 2554 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0154 2555 * @tc.name webgl_test_depthFunc 2556 * @tc.desc Test depthFunc. 2557 */ 2558 it('webgl_test_depthFunc', 0, async function (done) { 2559 console.info("webgltest [webgl_test_depthFunc] depthFunc"); 2560 let isEnable = gl.isEnabled(gl.DEPTH_TEST); 2561 gl.enable(gl.DEPTH_TEST); 2562 let src = gl.getParameter(gl.DEPTH_FUNC); 2563 console.info("webgltest gl.depthFunc(gl.NEVER);"); 2564 gl.depthFunc(gl.NEVER); 2565 console.info("webgltest gl.getParameter(gl.DEPTH_FUNC);", gl.getParameter(gl.DEPTH_FUNC)); 2566 expect(gl.getParameter(gl.DEPTH_FUNC)).assertEqual(gl.NEVER); 2567 console.info("webgltest gl.depthFunc(gl.LESS);"); 2568 gl.depthFunc(gl.LESS); 2569 console.info("webgltest gl.getParameter(gl.DEPTH_FUNC);", gl.getParameter(gl.DEPTH_FUNC)); 2570 expect(gl.getParameter(gl.DEPTH_FUNC)).assertEqual(gl.LESS); 2571 gl.depthFunc(src); 2572 if (!isEnable) { 2573 gl.disable(gl.DEPTH_TEST); 2574 } 2575 done(); 2576 }) 2577 2578 2579 /** 2580 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0155 2581 * @tc.name webgl_test_depthFunc_Error 2582 * @tc.desc Test depthFunc. 2583 */ 2584 it('webgl_test_depthFunc_Error', 0, async function (done) { 2585 console.info("webgltest [webgl_test_depthFuncError] depthFunc"); 2586 let isEnable = gl.isEnabled(gl.DEPTH_TEST); 2587 gl.enable(gl.DEPTH_TEST); 2588 let src = gl.getParameter(gl.DEPTH_FUNC); 2589 console.info("webgltest [webgl_test_depthFuncError] depthFunc(undefined)"); 2590 gl.depthFunc(-1); 2591 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2592 console.info("webgltest [webgl_test_depthFuncError] depthFunc(null) "); 2593 gl.depthFunc(null); 2594 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2595 console.info("webgltest [webgl_test_depthFuncError] depthFunc(-1) "); 2596 gl.depthFunc(-1); 2597 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2598 gl.depthFunc(src); 2599 if (!isEnable) { 2600 gl.disable(gl.DEPTH_TEST); 2601 } 2602 done(); 2603 }) 2604 2605 /** 2606 * WebGL API 的 WebGLRenderingContext.depthMask() 方法设置写入深度缓冲区是启用还是禁用。 2607 */ 2608 2609 /** 2610 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0156 2611 * @tc.name webgl_test_depthMask 2612 * @tc.desc Test depthMask. 2613 */ 2614 it('webgl_test_depthMask', 0, async function (done) { 2615 console.info("webgltest [webgl_test_depthMask] depthMask"); 2616 let src = gl.getParameter(gl.DEPTH_WRITEMASK); 2617 gl.depthMask(false); 2618 console.info("webgltest gl.depthMask(false);"); 2619 console.info("webgltest gl.getParameter(gl.DEPTH_WRITEMASK)", gl.getParameter(gl.DEPTH_WRITEMASK)); 2620 expect(gl.getParameter(gl.DEPTH_WRITEMASK)).assertEqual(false); 2621 gl.depthMask(true); 2622 console.info("webgltest gl.depthMask(true);"); 2623 console.info("webgltest gl.getParameter(gl.DEPTH_WRITEMASK)", gl.getParameter(gl.DEPTH_WRITEMASK)); 2624 expect(gl.getParameter(gl.DEPTH_WRITEMASK)).assertEqual(true); 2625 gl.depthMask(src); 2626 done(); 2627 }) 2628 2629 2630 /** 2631 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0157 2632 * @tc.name webgl_test_depthMask_Error 2633 * @tc.desc Test depthMask. 2634 */ 2635 it('webgl_test_depthMask_Error', 0, async function (done) { 2636 console.info("webgltest [webgl_test_depthMaskError] depthMask"); 2637 let src = gl.getParameter(gl.DEPTH_WRITEMASK); 2638 console.info("webgltest [webgl_test_depthFuncError] depthMask(undefined) "); 2639 gl.depthMask(undefined); 2640 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2641 console.info("webgltest [webgl_test_depthFuncError] depthMask(null) "); 2642 gl.depthMask(null); 2643 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2644 console.info("webgltest [webgl_test_depthFuncError] depthMask(-1) "); 2645 gl.depthMask(-1); 2646 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2647 console.info("webgltest [webgl_test_depthFuncError] depthMask(0) "); 2648 gl.depthMask(0); 2649 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2650 console.info("webgltest [webgl_test_depthFuncError] depthMask(1) "); 2651 gl.depthMask(1); 2652 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2653 gl.depthMask(src); 2654 done(); 2655 }) 2656 2657 /** 2658 * WebGL API 的 WebGLRenderingContext.depthRange() 方法指定从规范化设备坐标到窗口或视口坐标的深度范围映射。 2659 */ 2660 2661 /** 2662 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0158 2663 * @tc.name webgl_test_depthRange 2664 * @tc.desc Test depthRange. 2665 */ 2666 it('webgl_test_depthRange', 0, async function (done) { 2667 console.info("webgltest [webgl_test_depthRange] depthRange"); 2668 let src = gl.getParameter(gl.DEPTH_RANGE); 2669 console.info("webgltest default depthRange", src); 2670 console.info("webgltest gl.depthRange(0.0, 1.0);"); 2671 gl.depthRange(0.0, 1.0); 2672 let arr = gl.getParameter(gl.DEPTH_RANGE); 2673 console.info("webgltest gl.getParameter(gl.DEPTH_RANGE);", arr); 2674 expect(arr[0]).assertEqual(0.0); 2675 expect(arr[1]).assertEqual(1.0); 2676 gl.depthRange(src[0], src[1]); 2677 done(); 2678 }) 2679 2680 2681 /** 2682 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0159 2683 * @tc.name webgl_test_depthRange_Error 2684 * @tc.desc Test depthRange. 2685 */ 2686 it('webgl_test_depthRange_Error', 0, async function (done) { 2687 console.info("webgltest [webgl_test_depthRangeError] depthRange"); 2688 let src = gl.getParameter(gl.DEPTH_RANGE); 2689 console.info("webgltest [webgl_test_depthRangeError] depthRange(zNear = undefined) "); 2690 gl.depthRange(undefined, 1.0); 2691 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2692 console.info("webgltest [webgl_test_depthRangeError] depthRange(zFar = undefined) "); 2693 gl.depthRange(1.0, undefined); 2694 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2695 console.info("webgltest [webgl_test_depthRangeError] depthRange(zNear = undefined,zFar = undefined) "); 2696 gl.depthRange(undefined, undefined); 2697 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2698 console.info("webgltest [webgl_test_depthRangeError] depthRange(zNear = -1,zFar = -1) "); 2699 gl.depthRange(-1, -1); 2700 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2701 gl.depthRange(src[0], src[1]); 2702 done(); 2703 }) 2704 /** 2705 * 通过设置绕组方向来指定多边形是正面还是背面。 2706 */ 2707 2708 /** 2709 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0160 2710 * @tc.name webgl_test_frontFace 2711 * @tc.desc Test frontFace. 2712 */ 2713 it('webgl_test_frontFace', 0, async function (done) { 2714 console.info("webgltest [webgl_test_frontFace] frontFace"); 2715 let src = gl.getParameter(gl.FRONT_FACE); 2716 console.info("webgltest gl.frontFace(gl.CW);", gl.CW); 2717 gl.frontFace(gl.CW); 2718 console.info("webgltest gl.getParameter(gl.FRONT_FACE);", gl.getParameter(gl.FRONT_FACE)); 2719 expect(gl.getParameter(gl.FRONT_FACE)).assertEqual(gl.CW); 2720 console.info("webgltest gl.frontFace(gl.CCW);", gl.CCW); 2721 gl.frontFace(gl.CCW); 2722 console.info("webgltest gl.getParameter(gl.FRONT_FACE);", gl.getParameter(gl.FRONT_FACE)); 2723 expect(gl.getParameter(gl.FRONT_FACE)).assertEqual(gl.CCW); 2724 gl.frontFace(src); 2725 done(); 2726 }) 2727 2728 2729 /** 2730 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0161 2731 * @tc.name webgl_test_frontFace_Error 2732 * @tc.desc Test frontFace. 2733 */ 2734 it('webgl_test_frontFace_Error', 0, async function (done) { 2735 console.info("webgltest [webgl_test_frontFaceError] frontFace"); 2736 let src = gl.getParameter(gl.FRONT_FACE); 2737 console.info("webgltest [webgl_test_depthRangeError] frontFace(undefined) "); 2738 gl.frontFace(undefined); 2739 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2740 console.info("webgltest [webgl_test_depthRangeError] frontFace(null) "); 2741 gl.frontFace(null); 2742 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2743 console.info("webgltest [webgl_test_depthRangeError] frontFace(-1) "); 2744 gl.frontFace(-1); 2745 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2746 gl.frontFace(src); 2747 done(); 2748 }) 2749 2750 /** 2751 * 方法设置了模板测试的前端和后端函数和参考值。 2752 */ 2753 2754 /** 2755 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0162 2756 * @tc.name webgl_test_stencilFunc 2757 * @tc.desc Test stencilFunc. 2758 */ 2759 it('webgl_test_stencilFunc', 0, async function (done) { 2760 console.info("webgltest [webgl_test_stencilFunc] stencilFunc"); 2761 let isEnable = gl.isEnabled(gl.STENCIL_TEST); 2762 gl.enable(gl.STENCIL_TEST); 2763 let defVal = gl.getParameter(gl.STENCIL_VALUE_MASK); 2764 console.info("webgltest gl.stencilFunc(gl.LESS, 0, 0b11);"); 2765 gl.stencilFunc(gl.LESS, 0, 0b11); 2766 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2767 let stencilFunc = gl.getParameter(gl.STENCIL_FUNC); 2768 console.info("webgltest STENCIL_FUNC", stencilFunc); 2769 let stencilValueMask = gl.getParameter(gl.STENCIL_VALUE_MASK); 2770 console.info("webgltest STENCIL_VALUE_MASK", stencilValueMask); 2771 let stencilRef = gl.getParameter(gl.STENCIL_REF); 2772 console.info("webgltest STENCIL_REF", stencilRef); 2773 let backFunc = gl.getParameter(gl.STENCIL_BACK_FUNC); 2774 console.info("webgltest STENCIL_BACK_FUNC", backFunc); 2775 let stencilBackValueMask = gl.getParameter(gl.STENCIL_BACK_VALUE_MASK); 2776 console.info("webgltest STENCIL_BACK_VALUE_MASK", stencilBackValueMask); 2777 let stencilBackRef = gl.getParameter(gl.STENCIL_BACK_REF); 2778 console.info("webgltest STENCIL_BACK_REF", stencilBackRef); 2779 let stencilBits = gl.getParameter(gl.STENCIL_BITS); 2780 console.info("webgltest STENCIL_BITS", stencilBits); 2781 expect(stencilValueMask).assertEqual(3); 2782 expect(stencilBackValueMask).assertEqual(3); 2783 gl.stencilFunc(gl.LESS, 0, defVal); 2784 if (!isEnable) { 2785 gl.disable(gl.STENCIL_TEST); 2786 } 2787 done(); 2788 }) 2789 2790 2791 /** 2792 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0163 2793 * @tc.name webgl_test_stencilFunc_Error 2794 * @tc.desc Test stencilFunc. 2795 */ 2796 it('webgl_test_stencilFunc_Error', 0, async function (done) { 2797 let isEnable = gl.isEnabled(gl.STENCIL_TEST); 2798 gl.enable(gl.STENCIL_TEST); 2799 let defVal = gl.getParameter(gl.STENCIL_VALUE_MASK); 2800 console.info("webgltest [webgl_test_stencilFuncError] stencilFunc(func = undefined) "); 2801 gl.stencilFunc(undefined, 0, defVal); 2802 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2803 console.info("webgltest [webgl_test_stencilFuncError] stencilFunc(ref = undefined) "); 2804 gl.stencilFunc(gl.LESS, undefined, defVal); 2805 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2806 console.info("webgltest [webgl_test_stencilFuncError] stencilFunc(mask = undefined) "); 2807 gl.stencilFunc(gl.LESS, 0, undefined); 2808 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2809 gl.stencilFunc(gl.LESS, 0, defVal); 2810 if (!isEnable) { 2811 gl.disable(gl.STENCIL_TEST); 2812 } 2813 done(); 2814 }) 2815 2816 /** 2817 * WebGL API 的 WebGLRenderingContext.stencilFuncSepar() 方法设置了模板测试的前端和/或背面函数和参考值。 2818 */ 2819 2820 /** 2821 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0164 2822 * @tc.name webgl_test_stencilFuncSeparate 2823 * @tc.desc Test stencilFuncSeparate. 2824 */ 2825 it('webgl_test_stencilFuncSeparate', 0, async function (done) { 2826 console.info("webgltest [webgl_test_stencilFuncSeparate] stencilFuncSeparate"); 2827 let isEnable = gl.isEnabled(gl.STENCIL_TEST); 2828 gl.enable(gl.STENCIL_TEST); 2829 let defVal = gl.getParameter(gl.STENCIL_VALUE_MASK); 2830 console.info("webgltest gl.stencilFuncSeparate(gl.FRONT, gl.LESS, 1, 0b11);", gl.FRONT, gl.LESS); 2831 console.info("webgltest gl.stencilFuncSeparate(gl.BACK, gl.LESS, 2, 0b111);", gl.BACK, gl.LESS); 2832 gl.stencilFuncSeparate(gl.FRONT, gl.LESS, 1, 0b11); 2833 gl.stencilFuncSeparate(gl.BACK, gl.LESS, 2, 0b111); 2834 expect(gl.getError()).assertEqual(gl.NO_ERROR); 2835 let stencilFunc = gl.getParameter(gl.STENCIL_FUNC); 2836 console.info("webgltest STENCIL_FUNC", stencilFunc); 2837 let stencilValueMask = gl.getParameter(gl.STENCIL_VALUE_MASK); 2838 console.info("webgltest STENCIL_VALUE_MASK", stencilValueMask); 2839 let stencilRef = gl.getParameter(gl.STENCIL_REF); 2840 console.info("webgltest STENCIL_REF", stencilRef); 2841 let backFunc = gl.getParameter(gl.STENCIL_BACK_FUNC); 2842 console.info("webgltest STENCIL_BACK_FUNC", backFunc); 2843 let stencilBackValueMask = gl.getParameter(gl.STENCIL_BACK_VALUE_MASK); 2844 console.info("webgltest STENCIL_BACK_VALUE_MASK", stencilBackValueMask); 2845 let stencilBackRef = gl.getParameter(gl.STENCIL_BACK_REF); 2846 console.info("webgltest STENCIL_BACK_REF", stencilBackRef); 2847 let stencilBits = gl.getParameter(gl.STENCIL_BITS); 2848 console.info("webgltest STENCIL_BITS", stencilBits); 2849 expect(stencilRef).assertEqual(1); 2850 expect(stencilBackRef).assertEqual(2); 2851 expect(stencilValueMask).assertEqual(3); 2852 expect(stencilBackValueMask).assertEqual(7); 2853 gl.stencilFunc(gl.LESS, 0, defVal); 2854 if (!isEnable) { 2855 gl.disable(gl.STENCIL_TEST); 2856 } 2857 done(); 2858 }) 2859 2860 2861 /** 2862 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0165 2863 * @tc.name webgl_test_stencilFuncSeparate_Error 2864 * @tc.desc Test stencilFuncSeparate. 2865 */ 2866 it('webgl_test_stencilFuncSeparate_Error', 0, async function (done) { 2867 console.info("webgltest [webgl_test_stencilFuncSeparateError] stencilFuncSeparate"); 2868 let isEnable = gl.isEnabled(gl.STENCIL_TEST); 2869 gl.enable(gl.STENCIL_TEST); 2870 let defVal = gl.getParameter(gl.STENCIL_VALUE_MASK); 2871 console.info("webgltest [webgl_test_stencilFuncError] stencilFuncSeparate(face = undefined) "); 2872 gl.stencilFuncSeparate(undefined, gl.LESS, 1, 0b11); 2873 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2874 console.info("webgltest [webgl_test_stencilFuncError] stencilFuncSeparate(func = undefined) "); 2875 gl.stencilFuncSeparate(gl.FRONT, undefined, 1, 0b11); 2876 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2877 console.info("webgltest [webgl_test_stencilFuncError] stencilFuncSeparate(ref = undefined) "); 2878 gl.stencilFuncSeparate(gl.FRONT, gl.LESS, undefined, 0b11); 2879 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2880 console.info("webgltest [webgl_test_stencilFuncError] stencilFuncSeparate(mask = undefined) "); 2881 gl.stencilFuncSeparate(gl.FRONT, gl.LESS, 1, undefined); 2882 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2883 gl.stencilFunc(gl.LESS, 0, defVal); 2884 if (!isEnable) { 2885 gl.disable(gl.STENCIL_TEST); 2886 } 2887 done(); 2888 }) 2889 2890 /** 2891 * WebGL API 的 WebGLRenderingContext.stencilMask() 方法控制启用和禁用模板平面中单个位的正面和背面写入。 2892 */ 2893 2894 /** 2895 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0166 2896 * @tc.name webgl_test_stencilMask 2897 * @tc.desc Test stencilMask. 2898 */ 2899 it('webgl_test_stencilMask', 0, async function (done) { 2900 console.info("webgltest [webgl_test_stencilMask] stencilMask"); 2901 let srcStencilWriteMask = gl.getParameter(gl.STENCIL_WRITEMASK); 2902 let srcStencilBackWriteMask = gl.getParameter(gl.STENCIL_BACK_WRITEMASK); 2903 console.info("webgltest gl.stencilMask(110111);"); 2904 gl.stencilMask(110111); 2905 console.info("webgltest STENCIL_WRITEMASK", gl.getParameter(gl.STENCIL_WRITEMASK)); 2906 console.info("webgltest STENCIL_BACK_WRITEMASK", gl.getParameter(gl.STENCIL_BACK_WRITEMASK)); 2907 console.info("webgltest STENCIL_BITS", gl.getParameter(gl.STENCIL_BITS)); 2908 expect(gl.getParameter(gl.STENCIL_WRITEMASK)).assertEqual(110111); 2909 expect(gl.getParameter(gl.STENCIL_BACK_WRITEMASK)).assertEqual(110111); 2910 gl.stencilMask(srcStencilWriteMask); 2911 done(); 2912 }) 2913 2914 2915 /** 2916 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0167 2917 * @tc.name webgl_test_stencilMask_Error 2918 * @tc.desc Test stencilMask. 2919 */ 2920 it('webgl_test_stencilMask_Error', 0, async function (done) { 2921 console.info("webgltest [webgl_test_stencilMaskError] stencilMask"); 2922 let srcStencilWriteMask = gl.getParameter(gl.STENCIL_WRITEMASK); 2923 console.info("webgltest [webgl_test_stencilFuncError] stencilMask(undefined) "); 2924 gl.stencilMask(undefined); 2925 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2926 console.info("webgltest [webgl_test_stencilFuncError] stencilMask(null) "); 2927 gl.stencilMask(null); 2928 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2929 console.info("webgltest [webgl_test_stencilFuncError] stencilMask(-1) "); 2930 gl.stencilMask(-1); 2931 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2932 gl.stencilMask(srcStencilWriteMask); 2933 done(); 2934 }) 2935 2936 /** 2937 * WebGL API 的 WebGLRenderingContext.stencilMaskSepar() 方法控制启用和禁用模板平面中单个位的正面和/或背面写入。 2938 */ 2939 2940 /** 2941 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0168 2942 * @tc.name webgl_test_stencilMaskSeparate 2943 * @tc.desc Test stencilMaskSeparate. 2944 */ 2945 it('webgl_test_stencilMaskSeparate', 0, async function (done) { 2946 console.info("webgltest [webgl_test_stencilMaskSeparate] stencilMaskSeparate"); 2947 let srcStencilWriteMask = gl.getParameter(gl.STENCIL_WRITEMASK); 2948 let srcStencilBackWriteMask = gl.getParameter(gl.STENCIL_BACK_WRITEMASK); 2949 console.info("webgltest gl.stencilMaskSeparate(gl.FRONT, 110101);"); 2950 gl.stencilMaskSeparate(gl.FRONT, 110101); 2951 console.info("webgltest gl.stencilMaskSeparate(gl.BACK, 110111);"); 2952 gl.stencilMaskSeparate(gl.BACK, 110111); 2953 let stencilWriteMask = gl.getParameter(gl.STENCIL_WRITEMASK); 2954 let stencilBackWriteMask = gl.getParameter(gl.STENCIL_BACK_WRITEMASK); 2955 let stencilBits = gl.getParameter(gl.STENCIL_BITS); 2956 console.info("webgltest STENCIL_WRITEMASK", stencilWriteMask); 2957 console.info("webgltest STENCIL_BACK_WRITEMASK", stencilBackWriteMask); 2958 console.info("webgltest STENCIL_BITS", stencilBits); 2959 expect(stencilWriteMask).assertEqual(110101); 2960 expect(stencilBackWriteMask).assertEqual(110111); 2961 gl.stencilMaskSeparate(gl.FRONT, srcStencilWriteMask); 2962 gl.stencilMaskSeparate(gl.BACK, srcStencilBackWriteMask); 2963 done(); 2964 }) 2965 2966 2967 /** 2968 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0169 2969 * @tc.name webgl_test_stencilMaskSeparate_Error 2970 * @tc.desc Test stencilMaskSeparate. 2971 */ 2972 it('webgl_test_stencilMaskSeparate_Error', 0, async function (done) { 2973 console.info("webgltest [webgl_test_stencilMaskSeparateError] stencilMaskSeparate"); 2974 let srcStencilWriteMask = gl.getParameter(gl.STENCIL_WRITEMASK); 2975 let srcStencilBackWriteMask = gl.getParameter(gl.STENCIL_BACK_WRITEMASK); 2976 console.info("webgltest [webgl_test_stencilFuncError] stencilMaskSeparate(face = undefined) "); 2977 gl.stencilMaskSeparate(undefined, 110101); 2978 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 2979 console.info("webgltest [webgl_test_stencilFuncError] stencilMaskSeparate(face = FRONT,mask = undefined) "); 2980 gl.stencilMaskSeparate(gl.FRONT, undefined); 2981 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2982 console.info("webgltest [webgl_test_stencilFuncError] stencilMaskSeparate(face = BACK,mask = undefined) "); 2983 gl.stencilMaskSeparate(gl.BACK, undefined); 2984 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 2985 gl.stencilMaskSeparate(gl.FRONT, srcStencilWriteMask); 2986 gl.stencilMaskSeparate(gl.BACK, srcStencilBackWriteMask); 2987 done(); 2988 }) 2989 2990 /** 2991 * stencilOp(fail, zfail, zpass) 方法设置正面和背面的模板测试操作。 2992 */ 2993 2994 /** 2995 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0170 2996 * @tc.name webgl_test_stencilOp 2997 * @tc.desc Test stencilOp. 2998 */ 2999 it('webgl_test_stencilOp', 0, async function (done) { 3000 console.info("webgltest [webgl_test_stencilOp] stencilOp"); 3001 let isEnable = gl.isEnabled(gl.STENCIL_TEST); 3002 gl.enable(gl.STENCIL_TEST); 3003 let getInfo = () => { 3004 let fail = gl.getParameter(gl.STENCIL_FAIL); 3005 let passDepthFail = gl.getParameter(gl.STENCIL_PASS_DEPTH_FAIL); 3006 let passDepthPass = gl.getParameter(gl.STENCIL_PASS_DEPTH_PASS); 3007 let backFail = gl.getParameter(gl.STENCIL_BACK_FAIL); 3008 let backPassDepthFail = gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_FAIL); 3009 let backPassDepthPass = gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_PASS); 3010 let bits = gl.getParameter(gl.STENCIL_BITS); 3011 console.info("webgltest STENCIL_FAIL", fail); 3012 console.info("webgltest STENCIL_PASS_DEPTH_FAIL", passDepthFail); 3013 console.info("webgltest STENCIL_PASS_DEPTH_PASS", passDepthPass); 3014 console.info("webgltest STENCIL_BACK_FAIL", backFail); 3015 console.info("webgltest STENCIL_BACK_PASS_DEPTH_FAIL", backPassDepthFail); 3016 console.info("webgltest STENCIL_BACK_PASS_DEPTH_PASS", backPassDepthPass); 3017 console.info("webgltest STENCIL_BITS", bits); 3018 return { 3019 fail, passDepthPass, passDepthFail, 3020 backFail, backPassDepthPass, backPassDepthFail, 3021 bits 3022 } 3023 } 3024 let info = getInfo(); 3025 expect(info.fail).assertEqual(gl.KEEP); 3026 expect(info.passDepthFail).assertEqual(gl.KEEP); 3027 expect(info.passDepthPass).assertEqual(gl.KEEP); 3028 console.info("webgltest gl.stencilOp(gl.INCR, gl.DECR, gl.INVERT);", gl.INCR, gl.DECR, gl.INVERT); 3029 gl.stencilOp(gl.INCR, gl.DECR, gl.INVERT); 3030 info = getInfo(); 3031 expect(info.fail).assertEqual(gl.INCR); 3032 expect(info.passDepthFail).assertEqual(gl.DECR); 3033 expect(info.passDepthPass).assertEqual(gl.INVERT); 3034 gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP); 3035 if (!isEnable) { 3036 gl.disable(gl.STENCIL_TEST); 3037 } 3038 done(); 3039 }) 3040 3041 3042 /** 3043 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0171 3044 * @tc.name webgl_test_stencilOp_Error 3045 * @tc.desc Test stencilOp. 3046 */ 3047 it('webgl_test_stencilOp_Error', 0, async function (done) { 3048 console.info("webgltest [webgl_test_stencilOpError] stencilOp"); 3049 let isEnable = gl.isEnabled(gl.STENCIL_TEST); 3050 gl.enable(gl.STENCIL_TEST); 3051 console.info("webgltest [webgl_test_stencilFuncError] stencilOp(fail = undefined) "); 3052 gl.stencilOp(undefined, gl.KEEP, gl.KEEP); 3053 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3054 console.info("webgltest [webgl_test_stencilFuncError] stencilOp(zfail = undefined) "); 3055 gl.stencilOp(gl.KEEP, undefined, gl.KEEP); 3056 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3057 console.info("webgltest [webgl_test_stencilFuncError] stencilOp(zpass = undefined) "); 3058 gl.stencilOp(gl.KEEP, gl.KEEP, undefined); 3059 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3060 gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP); 3061 if (!isEnable) { 3062 gl.disable(gl.STENCIL_TEST); 3063 } 3064 done(); 3065 }) 3066 3067 /** 3068 * stencilOpSeparate(face, fail, zfail, zpass) 3069 */ 3070 3071 /** 3072 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0172 3073 * @tc.name webgl_test_stencilOpSeparate 3074 * @tc.desc Test stencilOpSeparate. 3075 */ 3076 it('webgl_test_stencilOpSeparate', 0, async function (done) { 3077 console.info("webgltest [webgl_test_stencilOpSeparate] stencilOpSeparate"); 3078 let isEnable = gl.isEnabled(gl.STENCIL_TEST); 3079 gl.enable(gl.STENCIL_TEST); 3080 let getInfo = () => { 3081 let fail = gl.getParameter(gl.STENCIL_FAIL); 3082 let passDepthFail = gl.getParameter(gl.STENCIL_PASS_DEPTH_FAIL); 3083 let passDepthPass = gl.getParameter(gl.STENCIL_PASS_DEPTH_PASS); 3084 let backFail = gl.getParameter(gl.STENCIL_BACK_FAIL); 3085 let backPassDepthFail = gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_FAIL); 3086 let backPassDepthPass = gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_PASS); 3087 let bits = gl.getParameter(gl.STENCIL_BITS); 3088 console.info("webgltest STENCIL_FAIL", fail); 3089 console.info("webgltest STENCIL_PASS_DEPTH_FAIL", passDepthFail); 3090 console.info("webgltest STENCIL_PASS_DEPTH_PASS", passDepthPass); 3091 console.info("webgltest STENCIL_BACK_FAIL", backFail); 3092 console.info("webgltest STENCIL_BACK_PASS_DEPTH_FAIL", backPassDepthFail); 3093 console.info("webgltest STENCIL_BACK_PASS_DEPTH_PASS", backPassDepthPass); 3094 console.info("webgltest STENCIL_BITS", bits); 3095 return { 3096 fail, passDepthPass, passDepthFail, 3097 backFail, backPassDepthPass, backPassDepthFail, 3098 bits 3099 } 3100 } 3101 let info = getInfo(); 3102 expect(info.fail).assertEqual(gl.KEEP); 3103 expect(info.passDepthFail).assertEqual(gl.KEEP); 3104 expect(info.passDepthPass).assertEqual(gl.KEEP); 3105 expect(info.backFail).assertEqual(gl.KEEP); 3106 expect(info.backPassDepthFail).assertEqual(gl.KEEP); 3107 expect(info.backPassDepthPass).assertEqual(gl.KEEP); 3108 console.info("webgltest gl.stencilOpSeparate(gl.FRONT,gl.INCR, gl.DECR, gl.INVERT);", gl.FRONT, gl.INCR, gl.DECR, gl.INVERT); 3109 console.info("webgltest gl.stencilOpSeparate(gl.BACK,gl.KEEP, gl.DECR, gl.INVERT);", gl.BACK, gl.KEEP, gl.DECR, gl.INVERT); 3110 gl.stencilOpSeparate(gl.FRONT, gl.INCR, gl.DECR, gl.INVERT); 3111 gl.stencilOpSeparate(gl.BACK, gl.KEEP, gl.DECR, gl.INVERT); 3112 info = getInfo(); 3113 expect(info.fail).assertEqual(gl.INCR); 3114 expect(info.passDepthFail).assertEqual(gl.DECR); 3115 expect(info.passDepthPass).assertEqual(gl.INVERT); 3116 expect(info.backFail).assertEqual(gl.KEEP); 3117 expect(info.backPassDepthFail).assertEqual(gl.DECR); 3118 expect(info.backPassDepthPass).assertEqual(gl.INVERT); 3119 gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP); 3120 if (!isEnable) { 3121 gl.disable(gl.STENCIL_TEST); 3122 } 3123 done(); 3124 }) 3125 3126 3127 /** 3128 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0173 3129 * @tc.name webgl_test_stencilOpSeparate_Error 3130 * @tc.desc Test stencilOpSeparate. 3131 */ 3132 it('webgl_test_stencilOpSeparate_Error', 0, async function (done) { 3133 console.info("webgltest [webgl_test_stencilOpSeparateError] stencilOpSeparate"); 3134 let isEnable = gl.isEnabled(gl.STENCIL_TEST); 3135 gl.enable(gl.STENCIL_TEST); 3136 console.info("webgltest [webgl_test_stencilOpSeparateError] stencilOpSeparate(face = undefined) "); 3137 gl.stencilOpSeparate(undefined, gl.KEEP, gl.DECR, gl.INVERT); 3138 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 3139 console.info("webgltest [webgl_test_stencilOpSeparateError] stencilOpSeparate(fail = undefined) "); 3140 gl.stencilOpSeparate(gl.BACK, undefined, gl.DECR, gl.INVERT); 3141 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3142 console.info("webgltest [webgl_test_stencilOpSeparateError] stencilOpSeparate(zfail = undefined) "); 3143 gl.stencilOpSeparate(gl.BACK, gl.KEEP, undefined, gl.INVERT); 3144 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3145 console.info("webgltest [webgl_test_stencilOpSeparateError] stencilOpSeparate(zpss = undefined) "); 3146 gl.stencilOpSeparate(gl.BACK, gl.KEEP, gl.DECR, undefined); 3147 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3148 gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP); 3149 if (!isEnable) { 3150 gl.disable(gl.STENCIL_TEST); 3151 } 3152 done(); 3153 }) 3154 3155 /** 3156 * WebGL API 的 WebGLRenderingContext.scissor() 方法设置了一个剪刀框,将绘图限制为指定的矩形。 3157 */ 3158 3159 /** 3160 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0174 3161 * @tc.name webgl_test_scissor 3162 * @tc.desc Test scissor. 3163 */ 3164 it('webgl_test_scissor', 0, async function (done) { 3165 console.info("webgltest [webgl_test_scissor] scissor"); 3166 let isEnable = gl.isEnabled(gl.SCISSOR_TEST); 3167 let src = gl.getParameter(gl.SCISSOR_BOX); 3168 console.info("webgltest default ", src); 3169 gl.enable(gl.SCISSOR_TEST); 3170 console.info("webgltest gl.scissor(0, 0, 100, 100);"); 3171 gl.scissor(0, 0, 100, 100); 3172 let box = gl.getParameter(gl.SCISSOR_BOX); 3173 console.info("webgltest box", box); 3174 expect(box[0]).assertEqual(0); 3175 expect(box[1]).assertEqual(0); 3176 expect(box[2]).assertEqual(100); 3177 expect(box[3]).assertEqual(100); 3178 gl.scissor(src[0], src[1], src[2], src[3]); 3179 if (!isEnable) { 3180 gl.disable(gl.SCISSOR_TEST); 3181 } 3182 done(); 3183 }) 3184 3185 3186 /** 3187 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0175 3188 * @tc.name webgl_test_scissor_Error 3189 * @tc.desc Test scissor. 3190 */ 3191 it('webgl_test_scissor_Error', 0, async function (done) { 3192 console.info("webgltest [webgl_test_scissorError] scissor"); 3193 let isEnable = gl.isEnabled(gl.SCISSOR_TEST); 3194 let src = gl.getParameter(gl.SCISSOR_BOX); 3195 console.info("webgltest default ", src); 3196 gl.enable(gl.SCISSOR_TEST); 3197 console.info("webgltest [webgl_test_scissorError] scissor(x = undefined) "); 3198 gl.scissor(undefined, 0, 100, 100); 3199 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3200 console.info("webgltest [webgl_test_scissorError] scissor(y = undefined) "); 3201 gl.scissor(0, undefined, 100, 100); 3202 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3203 console.info("webgltest [webgl_test_scissorError] scissor(width = undefined) "); 3204 gl.scissor(0, 0, undefined, 100); 3205 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3206 console.info("webgltest [webgl_test_scissorError] scissor(height = undefined) "); 3207 gl.scissor(0, 0, 100, undefined); 3208 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3209 if (!isEnable) { 3210 gl.disable(gl.SCISSOR_TEST); 3211 } 3212 done(); 3213 }) 3214 3215 /** 3216 * WebGL API 的 WebGLRenderingContext.polygonOffset() 3217 * 方法指定用于计算深度值的比例因子和单位。 3218 */ 3219 3220 /** 3221 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0176 3222 * @tc.name webgl_test_polygonOffset 3223 * @tc.desc Test polygonOffset. 3224 */ 3225 it('webgl_test_polygonOffset', 0, async function (done) { 3226 console.info("webgltest [polygonOffset] polygonOffset"); 3227 let isEnable = gl.isEnabled(gl.POLYGON_OFFSET_FILL); 3228 gl.enable(gl.POLYGON_OFFSET_FILL); 3229 gl.polygonOffset(0, 0); 3230 let srcFactor = gl.getParameter(gl.POLYGON_OFFSET_FACTOR); 3231 let srcUnits = gl.getParameter(gl.POLYGON_OFFSET_UNITS); 3232 expect(srcFactor).assertEqual(0); 3233 expect(srcUnits).assertEqual(0); 3234 console.info("webgltest default ", srcFactor, srcUnits); 3235 console.info("webgltest gl.polygonOffset(1, 1);"); 3236 gl.polygonOffset(1, 1); 3237 let factor = gl.getParameter(gl.POLYGON_OFFSET_FACTOR); 3238 let units = gl.getParameter(gl.POLYGON_OFFSET_UNITS); 3239 console.info("webgltest factor", factor); 3240 console.info("webgltest units", units); 3241 expect(factor).assertEqual(1); 3242 expect(units).assertEqual(1); 3243 gl.polygonOffset(srcFactor, srcUnits); 3244 if (!isEnable) { 3245 gl.disable(gl.POLYGON_OFFSET_FILL); 3246 } 3247 done(); 3248 }) 3249 3250 3251 /** 3252 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0177 3253 * @tc.name webgl_test_polygonOffset_Error 3254 * @tc.desc Test polygonOffset. 3255 */ 3256 it('webgl_test_polygonOffset_Error', 0, async function (done) { 3257 console.info("webgltest [webgl_test_polygonOffsetError] polygonOffset"); 3258 let isEnable = gl.isEnabled(gl.POLYGON_OFFSET_FILL); 3259 gl.enable(gl.POLYGON_OFFSET_FILL); 3260 gl.polygonOffset(0, 0); 3261 let srcFactor = gl.getParameter(gl.POLYGON_OFFSET_FACTOR); 3262 let srcUnits = gl.getParameter(gl.POLYGON_OFFSET_UNITS); 3263 console.info("webgltest [webgl_test_polygonOffsetError] polygonOffset(factor = undefined) "); 3264 gl.polygonOffset(undefined, 1); 3265 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3266 console.info("webgltest [webgl_test_polygonOffsetError] polygonOffset(units = undefined) "); 3267 gl.polygonOffset(1, undefined); 3268 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3269 gl.polygonOffset(srcFactor, srcUnits); 3270 if (!isEnable) { 3271 gl.disable(gl.POLYGON_OFFSET_FILL); 3272 } 3273 done(); 3274 }) 3275 3276 /** 3277 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0178 3278 * @tc.name webgl_test_sampleCoverage 3279 * @tc.desc Test sampleCoverage. 3280 */ 3281 it('webgl_test_sampleCoverage', 0, async function (done) { 3282 console.info("webgltest [sampleCoverage] sampleCoverage"); 3283 let isEnable = gl.isEnabled(gl.SAMPLE_COVERAGE); 3284 gl.enable(gl.SAMPLE_COVERAGE); 3285 let srcValue = gl.getParameter(gl.SAMPLE_COVERAGE_VALUE); 3286 let srcInvert = gl.getParameter(gl.SAMPLE_COVERAGE_INVERT); 3287 expect(srcValue).assertEqual(1); 3288 expect(srcInvert).assertEqual(false); 3289 console.info("webgltest default ", srcValue, srcInvert); 3290 console.info("webgltest gl.sampleCoverage(0.5, true);"); 3291 gl.sampleCoverage(0.5, true); 3292 let value = gl.getParameter(gl.SAMPLE_COVERAGE_VALUE); 3293 let invert = gl.getParameter(gl.SAMPLE_COVERAGE_INVERT); 3294 console.info("webgltest value", value); 3295 console.info("webgltest invert", invert); 3296 expect(value).assertEqual(0.5); 3297 expect(invert).assertEqual(true); 3298 gl.sampleCoverage(srcValue, srcInvert); 3299 if (!isEnable) { 3300 gl.disable(gl.SAMPLE_COVERAGE); 3301 } 3302 done(); 3303 }) 3304 3305 3306 /** 3307 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0179 3308 * @tc.name webgl_test_sampleCoverage_Error 3309 * @tc.desc Test sampleCoverage. 3310 */ 3311 it('webgl_test_sampleCoverage_Error', 0, async function (done) { 3312 console.info("webgltest [webgl_test_sampleCoverageError] sampleCoverage"); 3313 let isEnable = gl.isEnabled(gl.SAMPLE_COVERAGE); 3314 gl.enable(gl.SAMPLE_COVERAGE); 3315 let srcValue = gl.getParameter(gl.SAMPLE_COVERAGE_VALUE); 3316 let srcInvert = gl.getParameter(gl.SAMPLE_COVERAGE_INVERT); 3317 console.info("webgltest [webgl_test_sampleCoverageError] sampleCoverage(value = undefined) "); 3318 gl.sampleCoverage(undefined, true); 3319 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3320 console.info("webgltest [webgl_test_sampleCoverageError] sampleCoverage(value = -1) "); 3321 gl.sampleCoverage(-1, true); 3322 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3323 console.info("webgltest [webgl_test_sampleCoverageError] sampleCoverage(invert = undefined) "); 3324 gl.sampleCoverage(0.5, undefined); 3325 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3326 console.info("webgltest [webgl_test_sampleCoverageError] sampleCoverage(value = -1,invert = undefined) "); 3327 gl.sampleCoverage(-1, undefined); 3328 expect(checkError(gl)).assertEqual(gl.NO_ERROR) 3329 gl.sampleCoverage(srcValue, srcInvert); 3330 if (!isEnable) { 3331 gl.disable(gl.SAMPLE_COVERAGE); 3332 } 3333 done(); 3334 }) 3335 3336 /** 3337 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0180 3338 * @tc.name webgl_test_pixelStorei 3339 * @tc.desc Test pixelStorei. 3340 */ 3341 it('webgl_test_pixelStorei', 0, async function (done) { 3342 console.info("webgltest [pixelStorei] pixelStorei"); 3343 let srcUnpack = gl.getParameter(gl.UNPACK_ALIGNMENT); 3344 let srcPack = gl.getParameter(gl.PACK_ALIGNMENT); 3345 console.info("webgltest default ", srcUnpack, srcPack); 3346 console.info("webgltest gl.pixelStorei(gl.UNPACK_ALIGNMENT, 2);"); 3347 gl.pixelStorei(gl.UNPACK_ALIGNMENT, 2); 3348 console.info("webgltest gl.pixelStorei(gl.PACK_ALIGNMENT, 4);"); 3349 gl.pixelStorei(gl.PACK_ALIGNMENT, 4); 3350 let unpack = gl.getParameter(gl.UNPACK_ALIGNMENT); 3351 let pack = gl.getParameter(gl.PACK_ALIGNMENT); 3352 console.info("webgltest unpack", unpack); 3353 console.info("webgltest pack", pack); 3354 expect(unpack).assertEqual(2); 3355 expect(pack).assertEqual(4); 3356 gl.pixelStorei(gl.UNPACK_ALIGNMENT, srcUnpack); 3357 gl.pixelStorei(gl.PACK_ALIGNMENT, srcPack); 3358 done(); 3359 }) 3360 3361 3362 /** 3363 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_COMMON_0181 3364 * @tc.name webgl_test_pixelStorei_Error 3365 * @tc.desc Test pixelStorei. 3366 */ 3367 it('webgl_test_pixelStorei_Error', 0, async function (done) { 3368 console.info("webgltest [webgl_test_pixelStoreiError] pixelStorei"); 3369 let srcUnpack = gl.getParameter(gl.UNPACK_ALIGNMENT); 3370 let srcPack = gl.getParameter(gl.PACK_ALIGNMENT); 3371 console.info("webgltest [webgl_test_pixelStoreiError] pixelStorei(pname = undefined) "); 3372 gl.pixelStorei(undefined, 2); 3373 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 3374 console.info("webgltest [webgl_test_pixelStoreiError] pixelStorei(param = undefined) "); 3375 gl.pixelStorei(gl.UNPACK_ALIGNMENT, undefined); 3376 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE) 3377 console.info("webgltest [webgl_test_pixelStoreiError] pixelStorei(pname = undefined,param = undefined) "); 3378 gl.pixelStorei(undefined, undefined); 3379 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM) 3380 gl.pixelStorei(gl.UNPACK_ALIGNMENT, srcUnpack); 3381 gl.pixelStorei(gl.PACK_ALIGNMENT, srcPack); 3382 done(); 3383 }) 3384 3385 }) 3386} 3387