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_buffer() { 23 24 describe('webgl1_buffer', 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 /** 51 * 创建并初始化一个用于储存顶点数据或着色数据的WebGLBuffer对象 52 */ 53 54 /** 55 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0001 56 * @tc.name webgl_test_createBuffer 57 * @tc.desc Test createBuffer. 58 */ 59 it('webgl_test_createBuffer', 0, async function (done) { 60 console.info("webgltest [webgl_test_createBuffer] createBuffer"); 61 let buffer = gl.createBuffer(); 62 console.info("webgltest ", buffer); 63 expect(buffer != null).assertTrue(); 64 console.info("webgltest isBuffer:", gl.isBuffer(buffer)); 65 expect(gl.isBuffer(buffer) == false).assertTrue(); 66 console.info("webgltest gl.bindBuffer(gl.ARRAY_BUFFER, buffer);"); 67 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 68 console.info("webgltest isBuffer:", gl.isBuffer(buffer)); 69 expect(gl.isBuffer(buffer) == true).assertTrue(); 70 gl.deleteBuffer(buffer); 71 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 72 done(); 73 }) 74 75 /** 76 * 判定 给定的WebGLBuffer是否有效 77 */ 78 79 /** 80 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0002 81 * @tc.name webgl_test_isBuffer 82 * @tc.desc Test isBuffer. 83 */ 84 it('webgl_test_isBuffer', 0, async function (done) { 85 console.info("webgltest [webgl_test_isBuffer] isBuffer"); 86 let buffer = gl.createBuffer(); 87 console.info("webgltest ", buffer); 88 expect(buffer != null).assertTrue(); 89 console.info("webgltest isBuffer:", gl.isBuffer(buffer)); 90 expect(gl.isBuffer(buffer) == false).assertTrue(); 91 console.info("webgltest gl.bindBuffer(gl.ARRAY_BUFFER, buffer);"); 92 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 93 console.info("webgltest isBuffer:", gl.isBuffer(buffer)); 94 expect(gl.isBuffer(buffer) == true).assertTrue(); 95 gl.deleteBuffer(buffer); 96 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 97 done(); 98 }) 99 100 101 /** 102 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0003 103 * @tc.name webgl_test_isBuffer_1 104 * @tc.desc Test isBuffer. 105 */ 106 it('webgl_test_isBuffer_1', 0, async function (done) { 107 console.info("webgltest [webgl_test_isBuffer_1] isBuffer"); 108 gl.isBuffer(null); 109 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 110 done(); 111 }) 112 113 114 /** 115 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0004 116 * @tc.name webgl_test_isBuffer_2 117 * @tc.desc Test isBuffer. 118 */ 119 it('webgl_test_isBuffer_2', 0, async function (done) { 120 console.info("webgltest [webgl_test_isBuffer_2] isBuffer"); 121 gl.isBuffer(undefined); 122 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 123 done(); 124 }) 125 126 127 /** 128 * 将给定的 WebGLBuffer 绑定到目标 129 */ 130 function bindBuffer(callback, finish) { 131 let buffer = gl.createBuffer(); 132 expect(buffer != null).assertTrue(); 133 callback(buffer); 134 finish(gl.isBuffer(buffer)); 135 gl.deleteBuffer(buffer); 136 } 137 138 139 /** 140 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0005 141 * @tc.name webgl_test_bindBuffer 142 * @tc.desc Test bindBuffer. 143 */ 144 it('webgl_test_bindBuffer', 0, async function (done) { 145 console.info("webgltest [webgl_test_bindBuffer] bindBuffer"); 146 let buffer = gl.createBuffer(); 147 console.info("webgltest ", buffer); 148 expect(buffer != null).assertTrue(); 149 console.info("webgltest isBuffer:", gl.isBuffer(buffer)); 150 expect(gl.isBuffer(buffer)).assertFalse(); 151 console.info("webgltest bindBuffer()"); 152 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 153 expect(gl.isBuffer(buffer)).assertTrue(); 154 console.info("webgltest isBuffer:", gl.isBuffer(buffer)); 155 gl.deleteBuffer(buffer); 156 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 157 done(); 158 }) 159 160 161 /** 162 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0006 163 * @tc.name webgl_test_bindBuffer_1 164 * @tc.desc Test bindBuffer. 165 */ 166 it('webgl_test_bindBuffer_1', 0, async function (done) { 167 console.info("webgltest [webgl_test_bindBuffer_1] bindBuffer"); 168 bindBuffer((buffer) => { 169 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 170 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 171 }, (isBind) => { 172 expect(isBind).assertEqual(true); 173 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 174 }); 175 done(); 176 }) 177 178 179 /** 180 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0007 181 * @tc.name webgl_test_bindBuffer_2 182 * @tc.desc Test bindBuffer. 183 */ 184 it('webgl_test_bindBuffer_2', 0, async function (done) { 185 console.info("webgltest [webgl_test_bindBuffer_2] bindBuffer"); 186 bindBuffer((buffer) => { 187 gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer); 188 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 189 }, (isBind) => { 190 expect(isBind).assertEqual(true); 191 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 192 }); 193 done(); 194 }) 195 196 197 /** 198 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0008 199 * @tc.name webgl_test_bindBuffer_3 200 * @tc.desc Test bindBuffer. 201 */ 202 it('webgl_test_bindBuffer_3', 0, async function (done) { 203 console.info("webgltest [webgl_test_bindBuffer_3] bindBuffer"); 204 bindBuffer((buffer) => { 205 gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); 206 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 207 }, (isBind) => { 208 expect(isBind).assertEqual(false); 209 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 210 }); 211 done(); 212 }) 213 214 215 /** 216 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0009 217 * @tc.name webgl_test_bindBuffer_4 218 * @tc.desc Test bindBuffer. 219 */ 220 it('webgl_test_bindBuffer_4', 0, async function (done) { 221 console.info("webgltest [webgl_test_bindBuffer_4] bindBuffer"); 222 bindBuffer((buffer) => { 223 gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, undefined); 224 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 225 }, (isBind) => { 226 expect(isBind).assertEqual(false); 227 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 228 }); 229 done(); 230 }) 231 232 /** 233 * 删除给定的 WebGLBuffer 对象 234 */ 235 function deleteBuffer(callback, finish) { 236 let buffer = gl.createBuffer(); 237 expect(buffer != null).assertTrue(); 238 expect(gl.isBuffer(buffer)).assertFalse(); 239 callback(buffer); 240 finish(gl.isBuffer(buffer)); 241 } 242 243 /** 244 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0010 245 * @tc.name webgl_test_deleteBuffer 246 * @tc.desc Test deleteBuffer. 247 */ 248 it('webgl_test_deleteBuffer', 0, async function (done) { 249 console.info("webgltest [webgl_test_deleteBuffer] deleteBuffer"); 250 let buffer = gl.createBuffer(); 251 console.info("webgltest ", buffer); 252 expect(buffer != null).assertTrue(); 253 console.info("webgltest isBuffer:", gl.isBuffer(buffer)); 254 expect(gl.isBuffer(buffer)).assertFalse(); 255 console.info("webgltest bindBuffer()"); 256 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 257 expect(gl.isBuffer(buffer)).assertTrue(); 258 console.info("webgltest isBuffer:", gl.isBuffer(buffer)); 259 console.info("webgltest deleteBuffer()"); 260 gl.deleteBuffer(buffer); 261 expect(gl.isBuffer(buffer)).assertFalse(); 262 console.info("webgltest isBuffer:", gl.isBuffer(buffer)); 263 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 264 done(); 265 }) 266 267 268 /** 269 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0011 270 * @tc.name webgl_test_deleteBuffer_1 271 * @tc.desc Test deleteBuffer. 272 */ 273 it('webgl_test_deleteBuffer_1', 0, async function (done) { 274 console.info("webgltest [webgl_test_deleteBuffer_1] deleteBuffer"); 275 deleteBuffer((buffer) => { 276 gl.deleteBuffer(buffer); 277 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 278 }, (isDelete) => { 279 expect(isDelete).assertEqual(false); 280 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 281 }); 282 done(); 283 }) 284 285 286 /** 287 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0012 288 * @tc.name webgl_test_deleteBuffer_2 289 * @tc.desc Test deleteBuffer. 290 */ 291 it('webgl_test_deleteBuffer_2', 0, async function (done) { 292 console.info("webgltest [webgl_test_deleteBuffer_2] deleteBuffer"); 293 deleteBuffer((buffer) => { 294 gl.deleteBuffer(null); 295 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 296 }, (isDelete) => { 297 expect(isDelete).assertEqual(false); 298 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 299 }); 300 done(); 301 }) 302 303 304 /** 305 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0013 306 * @tc.name webgl_test_deleteBuffer_3 307 * @tc.desc Test deleteBuffer. 308 */ 309 it('webgl_test_deleteBuffer_3', 0, async function (done) { 310 console.info("webgltest [webgl_test_deleteBuffer_3] deleteBuffer"); 311 deleteBuffer((buffer) => { 312 gl.deleteBuffer(undefined); 313 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 314 }, (isDelete) => { 315 expect(isDelete).assertEqual(false); 316 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 317 }); 318 done(); 319 }) 320 321 /** 322 * 创建并初始化了 Buffer 对象的数据存储区 323 */ 324 function bufferData(callback, finish) { 325 let arr = new Float32Array([ 326 0.0, 0.5, -0.5, 0.5, 1.0, 0.5, 327 ]); 328 let buffer = gl.createBuffer(); 329 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 330 callback(arr); 331 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW); 332 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 333 finish(bufferSize, arr); 334 gl.deleteBuffer(buffer); 335 } 336 337 /** 338 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0014 339 * @tc.name webgl_test_bufferData 340 * @tc.desc Test bufferData. 341 */ 342 it('webgl_test_bufferData', 0, async function (done) { 343 console.info("webgltest [webgl_test_bufferData] bufferData - TypedArray"); 344 let arr = new Float32Array([ 345 0.0, 0.5, -0.5, 0.5, 1.0, 0.5, 346 ]); 347 console.info("webgltest arr:", arr); 348 console.info("webgltest arr.BYTES_PER_ELEMENT:", arr.BYTES_PER_ELEMENT); 349 let buffer = gl.createBuffer(); 350 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 351 console.info("webgltest gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW);") 352 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW); 353 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 354 console.info("webgltest bufferSize:", bufferSize); 355 expect(bufferSize).assertEqual(arr.length * arr.BYTES_PER_ELEMENT); 356 gl.deleteBuffer(buffer); 357 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 358 done(); 359 }) 360 361 /** 362 * 创建并初始化了 Buffer 对象的数据存储区 363 */ 364 365 /** 366 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0015 367 * @tc.name webgl_test_bufferData_1 368 * @tc.desc Test bufferData. 369 */ 370 it('webgl_test_bufferData_1', 0, async function (done) { 371 console.info("webgltest [webgl_test_bufferData_1] bufferData - ArrayBuffer"); 372 let arr = new Float32Array([ 373 0.0, 0.5, -0.5, 0.5, 1.0, 0.5, 374 ]); 375 console.info("webgltest arr:", arr); 376 console.info("webgltest arr.BYTES_PER_ELEMENT:", arr.BYTES_PER_ELEMENT); 377 let buffer = gl.createBuffer(); 378 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 379 console.info("webgltest gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW);") 380 gl.bufferData(gl.ARRAY_BUFFER, arr.buffer, gl.STATIC_DRAW); 381 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 382 console.info("webgltest bufferSize:", bufferSize); 383 expect(bufferSize).assertEqual(arr.length * arr.BYTES_PER_ELEMENT); 384 gl.deleteBuffer(buffer); 385 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 386 done(); 387 }) 388 389 390 /** 391 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0016 392 * @tc.name webgl_test_bufferData_2 393 * @tc.desc Test bufferData. 394 */ 395 it('webgl_test_bufferData_2', 0, async function (done) { 396 console.info("webgltest [webgl_test_bufferData_2] bufferData"); 397 bufferData((arr) => { 398 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW); 399 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 400 }, (bufferSize, arr) => { 401 expect(bufferSize).assertEqual(arr.length * arr.BYTES_PER_ELEMENT); 402 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 403 }); 404 done(); 405 }) 406 407 408 /** 409 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0017 410 * @tc.name webgl_test_bufferData_3 411 * @tc.desc Test bufferData. 412 */ 413 it('webgl_test_bufferData_3', 0, async function (done) { 414 console.info("webgltest [webgl_test_bufferData_3] bufferData"); 415 bufferData((arr) => { 416 gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, arr, gl.STATIC_DRAW); 417 expect(checkError(gl)).assertEqual(gl.INVALID_OPERATION); 418 }, (bufferSize, arr) => { 419 expect(bufferSize).assertEqual(arr.length * arr.BYTES_PER_ELEMENT); 420 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 421 }); 422 done(); 423 }) 424 425 426 /** 427 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0018 428 * @tc.name webgl_test_bufferData_4 429 * @tc.desc Test bufferData. 430 */ 431 it('webgl_test_bufferData_4', 0, async function (done) { 432 console.info("webgltest [webgl_test_bufferData_4] bufferData"); 433 bufferData((arr) => { 434 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.DYNAMIC_DRAW); 435 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 436 }, (bufferSize, arr) => { 437 expect(bufferSize).assertEqual(arr.length * arr.BYTES_PER_ELEMENT); 438 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 439 }); 440 done(); 441 }) 442 443 444 /** 445 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0019 446 * @tc.name webgl_test_bufferData_5 447 * @tc.desc Test bufferData. 448 */ 449 it('webgl_test_bufferData_5', 0, async function (done) { 450 console.info("webgltest [webgl_test_bufferData_5] bufferData"); 451 bufferData((arr) => { 452 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STREAM_DRAW); 453 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 454 }, (bufferSize, arr) => { 455 expect(bufferSize).assertEqual(arr.length * arr.BYTES_PER_ELEMENT); 456 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 457 }); 458 done(); 459 }) 460 461 462 /** 463 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0020 464 * @tc.name webgl_test_bufferData_6 465 * @tc.desc Test bufferData. 466 */ 467 it('webgl_test_bufferData_6', 0, async function (done) { 468 console.info("webgltest [webgl_test_bufferData_6] bufferData"); 469 bufferData((arr) => { 470 gl.bufferData(gl.ARRAY_BUFFER, null, gl.STREAM_DRAW); 471 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE); 472 }, (bufferSize, arr) => { 473 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 474 }); 475 done(); 476 }) 477 478 479 /** 480 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0021 481 * @tc.name webgl_test_bufferData_7 482 * @tc.desc Test bufferData. 483 */ 484 it('webgl_test_bufferData_7', 0, async function (done) { 485 console.info("webgltest [webgl_test_bufferData_7] bufferData"); 486 bufferData((arr) => { 487 gl.bufferData(gl.ARRAY_BUFFER, undefined, gl.STREAM_DRAW); 488 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE); 489 }, (bufferSize, arr) => { 490 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 491 }); 492 done(); 493 }) 494 495 496 /** 497 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0022 498 * @tc.name webgl_test_bufferData_8 499 * @tc.desc Test bufferData. 500 */ 501 it('webgl_test_bufferData_8', 0, async function (done) { 502 console.info("webgltest [webgl_test_bufferData_8] bufferData"); 503 bufferData((arr) => { 504 gl.bufferData(gl.ARRAY_BUFFER, -1, gl.STREAM_DRAW); 505 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE); 506 }, (bufferSize, arr) => { 507 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 508 }); 509 done(); 510 }) 511 512 /** 513 * 创建并初始化了 Buffer 对象的数据存储区 514 */ 515 516 /** 517 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0023 518 * @tc.name webgl_test_bufferData_9 519 * @tc.desc Test bufferData. 520 */ 521 it('webgl_test_bufferData_9', 0, async function (done) { 522 console.info("webgltest [webgl_test_bufferData_9] bufferData - number"); 523 let buffer = gl.createBuffer(); 524 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 525 console.info("webgltest gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW);") 526 gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW); 527 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 528 console.info("testwebgl bufferSize:", bufferSize); 529 expect(bufferSize).assertEqual(1024); 530 gl.deleteBuffer(buffer); 531 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 532 done(); 533 }) 534 535 /** 536 * 获取缓冲区的信息。 537 */ 538 function getBufferParameter(callback, finish) { 539 let arr = new Float32Array([ 540 0.0, 0.5, -0.5, 0.5, 1.0, 0.5, 541 ]); 542 let buffer = gl.createBuffer(); 543 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 544 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW); 545 callback(arr); 546 finish(); 547 gl.deleteBuffer(buffer); 548 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 549 } 550 551 /** 552 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0024 553 * @tc.name webgl_test_getBufferParameter 554 * @tc.desc Test getBufferParameter. 555 */ 556 it('webgl_test_getBufferParameter', 0, async function (done) { 557 console.info("webgltest [webgl_test_getBufferParameter] getBufferParameter"); 558 let arr = new Float32Array([ 559 0.0, 0.5, -0.5, 0.5, 1.0, 0.5, 560 ]); 561 console.info("webgltest arr:", arr); 562 console.info("webgltest arr.BYTES_PER_ELEMENT:", arr.BYTES_PER_ELEMENT); 563 let buffer = gl.createBuffer(); 564 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 565 console.info("webgltest gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW);") 566 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW); 567 console.info("webgltest gl.getBufferParameter(gl.ARRAY_BUFFER,gl.BUFFER_SIZE);") 568 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 569 console.info("webgltest bufferSize:", bufferSize); 570 expect(bufferSize == arr.length * arr.BYTES_PER_ELEMENT).assertTrue(); 571 console.info("webgltest gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW);") 572 gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW); 573 console.info("webgltest gl.getBufferParameter(gl.ARRAY_BUFFER,gl.BUFFER_SIZE);") 574 bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 575 console.info("testwebgl bufferSize:", bufferSize); 576 expect(bufferSize).assertEqual(1024); 577 gl.deleteBuffer(buffer); 578 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 579 done(); 580 }) 581 582 583 /** 584 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0025 585 * @tc.name webgl_test_getBufferParameter_1 586 * @tc.desc Test getBufferParameter. 587 */ 588 it('webgl_test_getBufferParameter_1', 0, async function (done) { 589 console.info("webgltest [webgl_test_getBufferParameter_1] getBufferParameter"); 590 getBufferParameter((arr) => { 591 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 592 expect(bufferSize == arr.length * arr.BYTES_PER_ELEMENT).assertTrue(); 593 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 594 }, () => { 595 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 596 }); 597 done(); 598 }) 599 600 601 /** 602 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0026 603 * @tc.name webgl_test_getBufferParameter_2 604 * @tc.desc Test getBufferParameter. 605 */ 606 it('webgl_test_getBufferParameter_2', 0, async function (done) { 607 console.info("webgltest [webgl_test_getBufferParameter_2] getBufferParameter"); 608 getBufferParameter((arr) => { 609 let bufferSize = gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_SIZE); 610 expect(checkError(gl)).assertEqual(gl.INVALID_OPERATION); 611 }, () => { 612 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 613 }); 614 done(); 615 }) 616 617 618 /** 619 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0027 620 * @tc.name webgl_test_getBufferParameter_3 621 * @tc.desc Test getBufferParameter. 622 */ 623 it('webgl_test_getBufferParameter_3', 0, async function (done) { 624 console.info("webgltest [webgl_test_getBufferParameter_3] getBufferParameter"); 625 getBufferParameter((arr) => { 626 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE); 627 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 628 }, () => { 629 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 630 }); 631 done(); 632 }) 633 634 /** 635 * RenderBuffer 636 * 创建并初始化 WebGLRenderbuffer 对象。 637 */ 638 639 /** 640 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0028 641 * @tc.name webgl_test_createRenderbuffer 642 * @tc.desc Test createRenderbuffer. 643 */ 644 it('webgl_test_createRenderbuffer', 0, async function (done) { 645 console.info("webgltest [webgl_test_createRenderbuffer] createRenderbuffer"); 646 let renderbuffer = gl.createRenderbuffer(); 647 console.info("webgltest createRenderbuffer:", renderbuffer); 648 expect(renderbuffer != null).assertTrue(); 649 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 650 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 651 console.info("webgltest gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);"); 652 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 653 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 654 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 655 gl.deleteRenderbuffer(renderbuffer); 656 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 657 done(); 658 }) 659 660 /** 661 * 删除 WebGLRenderbuffer 对象 662 */ 663 function deleteRenderbuffer(callback, finish) { 664 let renderbuffer = gl.createRenderbuffer(); 665 expect(renderbuffer != null).assertTrue(); 666 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 667 callback(renderbuffer); 668 finish(gl.isRenderbuffer(renderbuffer)); 669 gl.deleteRenderbuffer(renderbuffer); 670 } 671 672 /** 673 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0029 674 * @tc.name webgl_test_deleteRenderbuffer 675 * @tc.desc Test deleteRenderbuffer. 676 */ 677 it('webgl_test_deleteRenderbuffer', 0, async function (done) { 678 console.info("webgltest [webgl_test_deleteRenderbuffer] deleteRenderbuffer"); 679 let renderbuffer = gl.createRenderbuffer(); 680 console.info("webgltest createRenderbuffer:", renderbuffer); 681 expect(renderbuffer != null).assertTrue(); 682 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 683 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 684 console.info("webgltest gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);"); 685 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 686 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 687 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 688 console.info("webgltest gl.deleteRenderbuffer(renderbuffer);"); 689 gl.deleteRenderbuffer(renderbuffer); 690 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 691 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 692 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 693 done(); 694 }) 695 696 697 /** 698 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0030 699 * @tc.name webgl_test_deleteRenderbuffer_1 700 * @tc.desc Test deleteRenderbuffer. 701 */ 702 it('webgl_test_deleteRenderbuffer_1', 0, async function (done) { 703 console.info("webgltest [webgl_test_deleteRenderbuffer_1] deleteRenderbuffer"); 704 deleteRenderbuffer((renderbuffer) => { 705 gl.deleteRenderbuffer(renderbuffer); 706 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 707 }, (isDelete) => { 708 expect(isDelete).assertEqual(false); 709 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 710 }); 711 done(); 712 }) 713 714 715 /** 716 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0031 717 * @tc.name webgl_test_deleteRenderbuffer_2 718 * @tc.desc Test deleteRenderbuffer. 719 */ 720 it('webgl_test_deleteRenderbuffer_2', 0, async function (done) { 721 console.info("webgltest [webgl_test_deleteRenderbuffer_2] deleteRenderbuffer"); 722 deleteRenderbuffer((renderbuffer) => { 723 gl.deleteRenderbuffer(null); 724 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 725 }, (isDelete) => { 726 expect(isDelete).assertEqual(true); 727 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 728 }); 729 done(); 730 }) 731 732 733 /** 734 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0032 735 * @tc.name webgl_test_deleteRenderbuffer_3 736 * @tc.desc Test deleteRenderbuffer. 737 */ 738 it('webgl_test_deleteRenderbuffer_3', 0, async function (done) { 739 console.info("webgltest [webgl_test_deleteRenderbuffer_3] deleteRenderbuffer"); 740 deleteRenderbuffer((renderbuffer) => { 741 gl.deleteRenderbuffer(undefined); 742 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 743 }, (isDelete) => { 744 expect(isDelete).assertEqual(true); 745 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 746 }); 747 done(); 748 }) 749 750 /** 751 * 获取关于渲染缓冲区的信息 752 */ 753 function getRenderbufferParameter(callback) { 754 let buf = gl.createRenderbuffer(); 755 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 756 callback(buf); 757 gl.deleteRenderbuffer(buf); 758 } 759 760 /** 761 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0033 762 * @tc.name webgl_test_getRenderbufferParameter 763 * @tc.desc Test getRenderbufferParameter. 764 */ 765 it('webgl_test_getRenderbufferParameter', 0, async function (done) { 766 console.info("webgltest [webgl_test_getRenderbufferParameter] getRenderbufferParameter"); 767 let buf = gl.createRenderbuffer(); 768 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 769 console.info("webgltest RENDERBUFFER_WIDTH:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 770 console.info("webgltest RENDERBUFFER_HEIGHT:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)); 771 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 772 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 773 console.info("webgltest gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256);"); 774 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256); 775 console.info("webgltest RENDERBUFFER_WIDTH:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 776 console.info("webgltest RENDERBUFFER_HEIGHT:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)); 777 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 778 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 779 gl.deleteRenderbuffer(buf); 780 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 781 done(); 782 }) 783 784 785 /** 786 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0034 787 * @tc.name webgl_test_getRenderbufferParameter_1 788 * @tc.desc Test getRenderbufferParameter. 789 */ 790 it('webgl_test_getRenderbufferParameter_1', 0, async function (done) { 791 console.info("webgltest [webgl_test_getRenderbufferParameter_1] getRenderbufferParameter"); 792 getRenderbufferParameter((buf) => { 793 console.info("webgltest RENDERBUFFER_WIDTH:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 794 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 795 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 796 }); 797 done(); 798 }) 799 800 801 /** 802 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0035 803 * @tc.name webgl_test_getRenderbufferParameter_2 804 * @tc.desc Test getRenderbufferParameter. 805 */ 806 it('webgl_test_getRenderbufferParameter_2', 0, async function (done) { 807 console.info("webgltest [webgl_test_getRenderbufferParameter_2] getRenderbufferParameter"); 808 getRenderbufferParameter((buf) => { 809 console.info("webgltest RENDERBUFFER_WIDTH:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 810 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 811 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 812 }); 813 done(); 814 }) 815 816 817 /** 818 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0036 819 * @tc.name webgl_test_getRenderbufferParameter_3 820 * @tc.desc Test getRenderbufferParameter. 821 */ 822 it('webgl_test_getRenderbufferParameter_3', 0, async function (done) { 823 console.info("webgltest [webgl_test_getRenderbufferParameter_3] getRenderbufferParameter"); 824 getRenderbufferParameter((buf) => { 825 console.info("webgltest RENDERBUFFER_INTERNAL_FORMAT:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_INTERNAL_FORMAT)); 826 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_INTERNAL_FORMAT)).assertEqual(gl.RGBA4); 827 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 828 }); 829 done(); 830 }) 831 832 833 /** 834 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0037 835 * @tc.name webgl_test_getRenderbufferParameter_4 836 * @tc.desc Test getRenderbufferParameter. 837 */ 838 it('webgl_test_getRenderbufferParameter_4', 0, async function (done) { 839 console.info("webgltest [webgl_test_getRenderbufferParameter_4] getRenderbufferParameter"); 840 getRenderbufferParameter((buf) => { 841 console.info("webgltest RENDERBUFFER_GREEN_SIZE:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_GREEN_SIZE)); 842 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_GREEN_SIZE)>=0).assertEqual(true); 843 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 844 }); 845 done(); 846 }) 847 848 849 /** 850 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0038 851 * @tc.name webgl_test_getRenderbufferParameter_5 852 * @tc.desc Test getRenderbufferParameter. 853 */ 854 it('webgl_test_getRenderbufferParameter_5', 0, async function (done) { 855 console.info("webgltest [webgl_test_getRenderbufferParameter_5] getRenderbufferParameter"); 856 getRenderbufferParameter((buf) => { 857 console.info("webgltest RENDERBUFFER_BLUE_SIZE:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_BLUE_SIZE)); 858 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_BLUE_SIZE)>=0).assertEqual(true); 859 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 860 }); 861 done(); 862 }) 863 864 865 /** 866 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0039 867 * @tc.name webgl_test_getRenderbufferParameter_6 868 * @tc.desc Test getRenderbufferParameter. 869 */ 870 it('webgl_test_getRenderbufferParameter_6', 0, async function (done) { 871 console.info("webgltest [webgl_test_getRenderbufferParameter_6] getRenderbufferParameter"); 872 getRenderbufferParameter((buf) => { 873 console.info("webgltest RENDERBUFFER_RED_SIZE:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_RED_SIZE)); 874 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_RED_SIZE)>=0).assertEqual(true); 875 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 876 }); 877 done(); 878 }) 879 880 881 /** 882 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0040 883 * @tc.name webgl_test_getRenderbufferParameter_7 884 * @tc.desc Test getRenderbufferParameter. 885 */ 886 it('webgl_test_getRenderbufferParameter_7', 0, async function (done) { 887 console.info("webgltest [webgl_test_getRenderbufferParameter_7] getRenderbufferParameter"); 888 getRenderbufferParameter((buf) => { 889 console.info("webgltest RENDERBUFFER_ALPHA_SIZE:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_ALPHA_SIZE)); 890 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_ALPHA_SIZE)>=0).assertEqual(true); 891 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 892 }); 893 done(); 894 }) 895 896 897 /** 898 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0041 899 * @tc.name webgl_test_getRenderbufferParameter_8 900 * @tc.desc Test getRenderbufferParameter. 901 */ 902 it('webgl_test_getRenderbufferParameter_8', 0, async function (done) { 903 console.info("webgltest [webgl_test_getRenderbufferParameter_8] getRenderbufferParameter"); 904 getRenderbufferParameter((buf) => { 905 console.info("webgltest RENDERBUFFER_DEPTH_SIZE:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_DEPTH_SIZE)); 906 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_DEPTH_SIZE)>=0).assertEqual(true); 907 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 908 }); 909 done(); 910 }) 911 912 913 /** 914 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0042 915 * @tc.name webgl_test_getRenderbufferParameter_9 916 * @tc.desc Test getRenderbufferParameter. 917 */ 918 it('webgl_test_getRenderbufferParameter_9', 0, async function (done) { 919 console.info("webgltest [webgl_test_getRenderbufferParameter_9] getRenderbufferParameter"); 920 getRenderbufferParameter((buf) => { 921 console.info("webgltest RENDERBUFFER_STENCIL_SIZE:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_STENCIL_SIZE)); 922 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_STENCIL_SIZE)>=0).assertEqual(true); 923 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 924 }); 925 done(); 926 }) 927 928 /** 929 * 判定传入的WebGLRenderbuffer是否有效 930 */ 931 function isRenderbuffer(callback) { 932 let renderbuffer = gl.createRenderbuffer(); 933 expect(renderbuffer != null).assertTrue(); 934 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 935 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 936 callback(renderbuffer); 937 gl.deleteRenderbuffer(renderbuffer); 938 } 939 940 /** 941 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0043 942 * @tc.name webgl_test_isRenderbuffer 943 * @tc.desc Test isRenderbuffer. 944 */ 945 it('webgl_test_isRenderbuffer', 0, async function (done) { 946 console.info("webgltest [webgl_test_isRenderbuffer] isRenderbuffer"); 947 let renderbuffer = gl.createRenderbuffer(); 948 console.info("webgltest createRenderbuffer:", renderbuffer); 949 expect(renderbuffer != null).assertTrue(); 950 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 951 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 952 console.info("webgltest gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);"); 953 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 954 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 955 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 956 console.info("webgltest gl.deleteRenderbuffer(renderbuffer);"); 957 gl.deleteRenderbuffer(renderbuffer); 958 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 959 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 960 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 961 done(); 962 }) 963 964 965 /** 966 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0044 967 * @tc.name webgl_test_isRenderbuffer_1 968 * @tc.desc Test isRenderbuffer. 969 */ 970 it('webgl_test_isRenderbuffer_1', 0, async function (done) { 971 console.info("webgltest [webgl_test_isRenderbuffer_1] isRenderbuffer"); 972 isRenderbuffer((renderbuffer) => { 973 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 974 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 975 }); 976 done(); 977 }) 978 979 980 /** 981 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0045 982 * @tc.name webgl_test_isRenderbuffer_2 983 * @tc.desc Test isRenderbuffer. 984 */ 985 it('webgl_test_isRenderbuffer_2', 0, async function (done) { 986 console.info("webgltest [webgl_test_isRenderbuffer_2] isRenderbuffer"); 987 isRenderbuffer((renderbuffer) => { 988 expect(gl.isRenderbuffer(null)).assertEqual(false); 989 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 990 }); 991 done(); 992 }) 993 994 995 /** 996 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0046 997 * @tc.name webgl_test_isRenderbuffer_3 998 * @tc.desc Test isRenderbuffer. 999 */ 1000 it('webgl_test_isRenderbuffer_3', 0, async function (done) { 1001 console.info("webgltest [webgl_test_isRenderbuffer_3] isRenderbuffer"); 1002 isRenderbuffer((renderbuffer) => { 1003 expect(gl.isRenderbuffer(undefined)).assertEqual(false); 1004 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1005 }); 1006 done(); 1007 }) 1008 1009 /** 1010 * 将给定的 WebGLRenderbuffer 绑定到一个目标 1011 */ 1012 function bindRenderbuffer(callback, finish) { 1013 let buf = gl.createRenderbuffer(); 1014 let renderBufferBinding = gl.getParameter(gl.RENDERBUFFER_BINDING); 1015 console.info("webgltest renderBufferBinding:", renderBufferBinding); 1016 callback(buf); 1017 renderBufferBinding = gl.getParameter(gl.RENDERBUFFER_BINDING); 1018 finish(renderBufferBinding, buf); 1019 gl.deleteRenderbuffer(buf); 1020 } 1021 1022 /** 1023 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0047 1024 * @tc.name webgl_test_bindRenderbuffer 1025 * @tc.desc Test bindRenderbuffer. 1026 */ 1027 it('webgl_test_bindRenderbuffer', 0, async function (done) { 1028 console.info("webgltest [webgl_test_bindRenderbuffer] bindRenderbuffer"); 1029 let buf = gl.createRenderbuffer(); 1030 let renderBufferBinding = gl.getParameter(gl.RENDERBUFFER_BINDING); 1031 console.info("webgltest renderBufferBinding:", renderBufferBinding); 1032 console.info("webgltest gl.bindRenderbuffer(gl.RENDERBUFFER,renderBuffer);"); 1033 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 1034 renderBufferBinding = gl.getParameter(gl.RENDERBUFFER_BINDING); 1035 console.info("webgltest renderBufferBinding:", renderBufferBinding); 1036 expect(renderBufferBinding == buf).assertTrue(); 1037 gl.deleteRenderbuffer(buf); 1038 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1039 done(); 1040 }) 1041 1042 1043 /** 1044 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0048 1045 * @tc.name webgl_test_bindRenderbuffer_1 1046 * @tc.desc Test bindRenderbuffer. 1047 */ 1048 it('webgl_test_bindRenderbuffer_1', 0, async function (done) { 1049 console.info("webgltest [webgl_test_bindRenderbuffer_1] bindRenderbuffer"); 1050 bindRenderbuffer((buf) => { 1051 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 1052 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1053 }, (renderBufferBinding, buf) => { 1054 expect(renderBufferBinding).assertEqual(buf); 1055 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1056 }); 1057 done(); 1058 }) 1059 1060 1061 /** 1062 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0049 1063 * @tc.name webgl_test_bindRenderbuffer_2 1064 * @tc.desc Test bindRenderbuffer. 1065 */ 1066 it('webgl_test_bindRenderbuffer_2', 0, async function (done) { 1067 console.info("webgltest [webgl_test_bindRenderbuffer_2] bindRenderbuffer"); 1068 bindRenderbuffer((buf) => { 1069 gl.bindRenderbuffer(gl.RENDERBUFFER, null); 1070 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1071 }, (renderBufferBinding, buf) => { 1072 expect(renderBufferBinding).assertEqual(null); 1073 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1074 }); 1075 done(); 1076 }) 1077 1078 1079 /** 1080 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0050 1081 * @tc.name webgl_test_bindRenderbuffer_3 1082 * @tc.desc Test bindRenderbuffer. 1083 */ 1084 it('webgl_test_bindRenderbuffer_3', 0, async function (done) { 1085 console.info("webgltest [webgl_test_bindRenderbuffer_3] bindRenderbuffer"); 1086 bindRenderbuffer((buf) => { 1087 gl.bindRenderbuffer(gl.RENDERBUFFER, undefined); 1088 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1089 }, (renderBufferBinding, buf) => { 1090 expect(renderBufferBinding).assertEqual(null); 1091 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1092 }); 1093 done(); 1094 }) 1095 1096 /** 1097 * 创建并初始化一个renderbuffer对象的数据存储。 1098 */ 1099 function renderbufferStorage(callback, finish) { 1100 let buf = gl.createRenderbuffer(); 1101 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 1102 callback(buf); 1103 finish(buf); 1104 gl.deleteRenderbuffer(buf); 1105 } 1106 1107 /** 1108 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0051 1109 * @tc.name webgl_test_renderbufferStorage 1110 * @tc.desc Test renderbufferStorage. 1111 */ 1112 it('webgl_test_renderbufferStorage', 0, async function (done) { 1113 console.info("webgltest [webgl_test_renderbufferStorage] renderbufferStorage"); 1114 let buf = gl.createRenderbuffer(); 1115 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 1116 console.info("webgltest RENDERBUFFER_WIDTH:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 1117 console.info("webgltest RENDERBUFFER_HEIGHT:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)); 1118 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 1119 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 1120 console.info("webgltest gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256);"); 1121 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256); 1122 console.info("webgltest RENDERBUFFER_WIDTH:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 1123 console.info("webgltest RENDERBUFFER_HEIGHT:", gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)); 1124 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1125 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1126 gl.deleteRenderbuffer(buf); 1127 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1128 done(); 1129 }) 1130 1131 1132 /** 1133 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0052 1134 * @tc.name webgl_test_renderbufferStorage_1 1135 * @tc.desc Test renderbufferStorage. 1136 */ 1137 it('webgl_test_renderbufferStorage_1', 0, async function (done) { 1138 console.info("webgltest [webgl_test_renderbufferStorage_1] renderbufferStorage"); 1139 renderbufferStorage((buf) => { 1140 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256); 1141 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1142 }, (buf) => { 1143 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1144 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1145 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1146 }); 1147 done(); 1148 }) 1149 1150 1151 /** 1152 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0053 1153 * @tc.name webgl_test_renderbufferStorage_2 1154 * @tc.desc Test renderbufferStorage. 1155 */ 1156 it('webgl_test_renderbufferStorage_2', 0, async function (done) { 1157 console.info("webgltest [webgl_test_renderbufferStorage_2] renderbufferStorage"); 1158 renderbufferStorage((buf) => { 1159 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGB565, 256, 256); 1160 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1161 }, (buf) => { 1162 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1163 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1164 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1165 }); 1166 done(); 1167 }) 1168 1169 1170 /** 1171 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0054 1172 * @tc.name webgl_test_renderbufferStorage_3 1173 * @tc.desc Test renderbufferStorage. 1174 */ 1175 it('webgl_test_renderbufferStorage_3', 0, async function (done) { 1176 console.info("webgltest [webgl_test_renderbufferStorage_3] renderbufferStorage"); 1177 renderbufferStorage((buf) => { 1178 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGB5_A1, 256, 256); 1179 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1180 }, (buf) => { 1181 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1182 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1183 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1184 }); 1185 done(); 1186 }) 1187 1188 1189 /** 1190 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0055 1191 * @tc.name webgl_test_renderbufferStorage_4 1192 * @tc.desc Test renderbufferStorage. 1193 */ 1194 it('webgl_test_renderbufferStorage_4', 0, async function (done) { 1195 console.info("webgltest [webgl_test_renderbufferStorage_4] renderbufferStorage"); 1196 renderbufferStorage((buf) => { 1197 gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, 256, 256); 1198 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1199 }, (buf) => { 1200 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1201 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1202 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1203 }); 1204 done(); 1205 }) 1206 1207 1208 /** 1209 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0056 1210 * @tc.name webgl_test_renderbufferStorage_5 1211 * @tc.desc Test renderbufferStorage. 1212 */ 1213 it('webgl_test_renderbufferStorage_5', 0, async function (done) { 1214 console.info("webgltest [webgl_test_renderbufferStorage_5] renderbufferStorage"); 1215 renderbufferStorage((buf) => { 1216 gl.renderbufferStorage(gl.RENDERBUFFER, gl.STENCIL_INDEX8, 256, 256); 1217 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1218 }, (buf) => { 1219 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1220 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1221 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1222 }); 1223 done(); 1224 }) 1225 1226 1227 /** 1228 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0057 1229 * @tc.name webgl_test_renderbufferStorage_6 1230 * @tc.desc Test renderbufferStorage. 1231 */ 1232 it('webgl_test_renderbufferStorage_6', 0, async function (done) { 1233 console.info("webgltest [webgl_test_renderbufferStorage_6] renderbufferStorage"); 1234 renderbufferStorage((buf) => { 1235 gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, 256, 256); 1236 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1237 }, (buf) => { 1238 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1239 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1240 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1241 }); 1242 done(); 1243 }) 1244 1245 1246 /** 1247 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0058 1248 * @tc.name webgl_test_renderbufferStorage_7 1249 * @tc.desc Test renderbufferStorage. 1250 */ 1251 it('webgl_test_renderbufferStorage_7', 0, async function (done) { 1252 console.info("webgltest [webgl_test_renderbufferStorage_7] renderbufferStorage"); 1253 renderbufferStorage((buf) => { 1254 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 0, 0); 1255 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1256 }, (buf) => { 1257 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 1258 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 1259 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1260 }); 1261 done(); 1262 }) 1263 1264 1265 /** 1266 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0059 1267 * @tc.name webgl_test_renderbufferStorage_8 1268 * @tc.desc Test renderbufferStorage. 1269 */ 1270 it('webgl_test_renderbufferStorage_8', 0, async function (done) { 1271 console.info("webgltest [webgl_test_renderbufferStorage_8] renderbufferStorage"); 1272 renderbufferStorage((buf) => { 1273 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, -1, -1); 1274 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE); 1275 }, (buf) => { 1276 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 1277 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 1278 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1279 }); 1280 done(); 1281 }) 1282 1283 1284 /** 1285 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0060 1286 * @tc.name webgl_test_renderbufferStorage_9 1287 * @tc.desc Test renderbufferStorage. 1288 */ 1289 it('webgl_test_renderbufferStorage_9', 0, async function (done) { 1290 console.info("webgltest [webgl_test_renderbufferStorage_9] renderbufferStorage"); 1291 renderbufferStorage((buf) => { 1292 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, null, null); 1293 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1294 }, (buf) => { 1295 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 1296 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 1297 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1298 }); 1299 done(); 1300 }) 1301 1302 1303 /** 1304 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0061 1305 * @tc.name webgl_test_renderbufferStorage_10 1306 * @tc.desc Test renderbufferStorage. 1307 */ 1308 it('webgl_test_renderbufferStorage_10', 0, async function (done) { 1309 console.info("webgltest [webgl_test_renderbufferStorage_10] renderbufferStorage"); 1310 renderbufferStorage((buf) => { 1311 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, undefined, undefined); 1312 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1313 }, (buf) => { 1314 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 1315 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 1316 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1317 }); 1318 done(); 1319 }) 1320 1321 /** 1322 * FrameBuffer 1323 * 创建和初始化WebGLFramebuffer 对象 1324 */ 1325 1326 /** 1327 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0062 1328 * @tc.name webgl_test_createFramebuffer 1329 * @tc.desc Test createFramebuffer. 1330 */ 1331 it('webgl_test_createFramebuffer', 0, async function (done) { 1332 console.info("webgltest [webgl_test_createFramebuffer] createFramebuffer"); 1333 let buf = gl.createFramebuffer(); 1334 console.info("webgltest newFramebuffer:", buf); 1335 expect(buf != null).assertTrue(); 1336 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1337 expect(gl.isFramebuffer(buf)).assertEqual(false); 1338 console.info("webgltest gl.bindFramebuffer(gl.FRAMEBUFFER, buf);"); 1339 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1340 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1341 expect(gl.isFramebuffer(buf)).assertEqual(true); 1342 checkFrameBufferStatus(); 1343 gl.deleteFramebuffer(buf); 1344 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1345 done(); 1346 }) 1347 1348 /** 1349 * 绑定WebGLFramebuffer 对象到一个目标 1350 */ 1351 function bindFramebuffer(callback, finish) { 1352 let buf = gl.createFramebuffer(); 1353 expect(buf != null).assertTrue(); 1354 expect(gl.isFramebuffer(buf)).assertEqual(false); 1355 callback(buf); 1356 finish(gl.isFramebuffer(buf)); 1357 checkFrameBufferStatus(); 1358 gl.deleteFramebuffer(buf); 1359 } 1360 1361 /** 1362 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0063 1363 * @tc.name webgl_test_bindFramebuffer 1364 * @tc.desc Test bindFramebuffer. 1365 */ 1366 it('webgl_test_bindFramebuffer', 0, async function (done) { 1367 console.info("webgltest [webgl_test_bindFramebuffer] bindFramebuffer"); 1368 let buf = gl.createFramebuffer(); 1369 console.info("webgltest newFramebuffer:", buf); 1370 expect(buf != null).assertTrue(); 1371 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1372 expect(gl.isFramebuffer(buf)).assertEqual(false); 1373 console.info("webgltest gl.bindFramebuffer(gl.FRAMEBUFFER, buf);"); 1374 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1375 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1376 expect(gl.isFramebuffer(buf)).assertEqual(true); 1377 checkFrameBufferStatus(); 1378 gl.deleteFramebuffer(buf); 1379 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1380 done(); 1381 }) 1382 1383 1384 /** 1385 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0064 1386 * @tc.name webgl_test_bindFramebuffer_1 1387 * @tc.desc Test bindFramebuffer. 1388 */ 1389 it('webgl_test_bindFramebuffer_1', 0, async function (done) { 1390 console.info("webgltest [webgl_test_bindFramebuffer_1] bindFramebuffer"); 1391 bindFramebuffer((buf) => { 1392 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1393 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1394 }, (isFramebuffer) => { 1395 expect(isFramebuffer).assertEqual(true); 1396 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1397 }); 1398 done(); 1399 }) 1400 1401 1402 /** 1403 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0065 1404 * @tc.name webgl_test_bindFramebuffer_2 1405 * @tc.desc Test bindFramebuffer. 1406 */ 1407 it('webgl_test_bindFramebuffer_2', 0, async function (done) { 1408 console.info("webgltest [webgl_test_bindFramebuffer_2] bindFramebuffer"); 1409 bindFramebuffer((buf) => { 1410 gl.bindFramebuffer(gl.FRAMEBUFFER, null); 1411 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1412 }, (isFramebuffer) => { 1413 expect(isFramebuffer).assertEqual(false); 1414 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1415 }); 1416 done(); 1417 }) 1418 1419 1420 /** 1421 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0066 1422 * @tc.name webgl_test_bindFramebuffer_3 1423 * @tc.desc Test bindFramebuffer. 1424 */ 1425 it('webgl_test_bindFramebuffer_3', 0, async function (done) { 1426 console.info("webgltest [webgl_test_bindFramebuffer_3] bindFramebuffer"); 1427 bindFramebuffer((buf) => { 1428 gl.bindFramebuffer(gl.FRAMEBUFFER, undefined); 1429 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1430 }, (isFramebuffer) => { 1431 expect(isFramebuffer).assertEqual(false); 1432 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1433 }); 1434 done(); 1435 }) 1436 1437 /** 1438 * 删除WebGLFramebuffer 对象 1439 */ 1440 function deleteFramebuffer(callback, finish) { 1441 let buf = gl.createFramebuffer(); 1442 expect(buf != null).assertTrue(); 1443 expect(gl.isFramebuffer(buf)).assertEqual(false); 1444 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1445 callback(buf); 1446 finish(gl.isFramebuffer(buf)); 1447 gl.deleteFramebuffer(buf); 1448 } 1449 1450 /** 1451 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0067 1452 * @tc.name webgl_test_deleteFramebuffer 1453 * @tc.desc Test deleteFramebuffer. 1454 */ 1455 it('webgl_test_deleteFramebuffer', 0, async function (done) { 1456 console.info("webgltest [webgl_test_deleteFramebuffer] deleteFramebuffer"); 1457 let buf = gl.createFramebuffer(); 1458 console.info("webgltest newFramebuffer:", buf); 1459 expect(buf != null).assertTrue(); 1460 expect(gl.isFramebuffer(buf)).assertEqual(false); 1461 console.info("webgltest gl.bindFramebuffer(gl.FRAMEBUFFER, buf);"); 1462 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1463 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1464 expect(gl.isFramebuffer(buf)).assertEqual(true); 1465 console.log("webgltest gl.deleteFramebuffer(buf);"); 1466 gl.deleteFramebuffer(buf); 1467 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1468 expect(gl.isFramebuffer(buf)).assertEqual(false); 1469 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1470 done(); 1471 }) 1472 1473 1474 /** 1475 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0068 1476 * @tc.name webgl_test_deleteFramebuffer_1 1477 * @tc.desc Test deleteFramebuffer. 1478 */ 1479 it('webgl_test_deleteFramebuffer_1', 0, async function (done) { 1480 console.info("webgltest [webgl_test_deleteFramebuffer_1] deleteFramebuffer"); 1481 deleteFramebuffer((buf) => { 1482 gl.deleteFramebuffer(buf); 1483 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1484 }, (isFramebuffer) => { 1485 expect(isFramebuffer).assertEqual(false); 1486 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1487 }); 1488 done(); 1489 }) 1490 1491 1492 /** 1493 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0069 1494 * @tc.name webgl_test_deleteFramebuffer_2 1495 * @tc.desc Test deleteFramebuffer. 1496 */ 1497 it('webgl_test_deleteFramebuffer_2', 0, async function (done) { 1498 console.info("webgltest [webgl_test_deleteFramebuffer_2] deleteFramebuffer"); 1499 deleteFramebuffer((buf) => { 1500 gl.deleteFramebuffer(null); 1501 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1502 }, (isFramebuffer) => { 1503 expect(isFramebuffer).assertEqual(true); 1504 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1505 }); 1506 done(); 1507 }) 1508 1509 1510 /** 1511 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0070 1512 * @tc.name webgl_test_deleteFramebuffer_3 1513 * @tc.desc Test deleteFramebuffer. 1514 */ 1515 it('webgl_test_deleteFramebuffer_3', 0, async function (done) { 1516 console.info("webgltest [webgl_test_deleteFramebuffer_3] deleteFramebuffer"); 1517 deleteFramebuffer((buf) => { 1518 gl.deleteFramebuffer(undefined); 1519 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1520 }, (isFramebuffer) => { 1521 expect(isFramebuffer).assertEqual(true); 1522 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1523 }); 1524 done(); 1525 }) 1526 1527 function checkFrameBufferStatus() { 1528 let status = gl.checkFramebufferStatus(gl.FRAMEBUFFER); 1529 switch (status) { 1530 case gl.FRAMEBUFFER_COMPLETE: 1531 console.info("webgltest checkFramebufferStatus FRAMEBUFFER_COMPLETE"); 1532 break; 1533 case gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 1534 console.info("webgltest checkFramebufferStatus FRAMEBUFFER_INCOMPLETE_ATTACHMENT"); 1535 break; 1536 case gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 1537 console.info("webgltest checkFramebufferStatus FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"); 1538 break; 1539 case gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 1540 console.info("webgltest checkFramebufferStatus FRAMEBUFFER_INCOMPLETE_DIMENSIONS"); 1541 break; 1542 case gl.FRAMEBUFFER_UNSUPPORTED: 1543 console.info("webgltest checkFramebufferStatus FRAMEBUFFER_UNSUPPORTED"); 1544 break; 1545 } 1546 return status; 1547 } 1548 1549 /** 1550 * 检查WebGLFramebuffer对象的完整性状态 1551 */ 1552 function checkFramebufferStatus(callback) { 1553 let buf = gl.createFramebuffer(); 1554 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1555 callback(buf); 1556 gl.deleteFramebuffer(buf); 1557 } 1558 1559 /** 1560 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0071 1561 * @tc.name webgl_test_checkFramebufferStatus 1562 * @tc.desc Test checkFramebufferStatus. 1563 */ 1564 it('webgl_test_checkFramebufferStatus', 0, async function (done) { 1565 console.info("webgltest [webgl_test_checkFramebufferStatus] checkFramebufferStatus"); 1566 let buf = gl.createFramebuffer(); 1567 console.info("webgltest newFramebuffer:", buf); 1568 expect(buf != null).assertTrue(); 1569 let status = checkFrameBufferStatus(); 1570 expect(status == gl.FRAMEBUFFER_COMPLETE).assertEqual(true); 1571 console.info("webgltest gl.bindFramebuffer(gl.FRAMEBUFFER, buf);"); 1572 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1573 expect(gl.isFramebuffer(buf)).assertEqual(true); 1574 status = checkFrameBufferStatus(); 1575 expect(status == gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT).assertEqual(true); 1576 gl.deleteFramebuffer(buf); 1577 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1578 done(); 1579 }) 1580 1581 1582 /** 1583 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0072 1584 * @tc.name webgl_test_checkFramebufferStatus_1 1585 * @tc.desc Test checkFramebufferStatus. 1586 */ 1587 it('webgl_test_checkFramebufferStatus_1', 0, async function (done) { 1588 console.info("webgltest [webgl_test_checkFramebufferStatus_1] checkFramebufferStatus"); 1589 checkFramebufferStatus((buf) => { 1590 let status = gl.checkFramebufferStatus(gl.FRAMEBUFFER); 1591 expect(status == gl.FRAMEBUFFER_COMPLETE).assertEqual(false); 1592 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1593 }); 1594 done(); 1595 }) 1596 1597 /** 1598 * 判定给定的WebGLFramebuffer是否有效 1599 */ 1600 function isFramebuffer(callback) { 1601 let buf = gl.createFramebuffer(); 1602 expect(gl.isFramebuffer(buf)).assertEqual(false); 1603 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1604 callback(buf); 1605 gl.deleteFramebuffer(buf); 1606 } 1607 1608 /** 1609 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0073 1610 * @tc.name webgl_test_isFramebuffer 1611 * @tc.desc Test isFramebuffer. 1612 */ 1613 it('webgl_test_isFramebuffer', 0, async function (done) { 1614 console.info("webgltest [webgl_test_isFramebuffer] isFramebuffer"); 1615 let buf = gl.createFramebuffer(); 1616 console.info("webgltest newFramebuffer:", buf); 1617 expect(buf != null).assertTrue(); 1618 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1619 expect(gl.isFramebuffer(buf)).assertEqual(false); 1620 console.info("webgltest gl.bindFramebuffer(gl.FRAMEBUFFER, buf);"); 1621 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1622 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1623 expect(gl.isFramebuffer(buf)).assertEqual(true); 1624 checkFrameBufferStatus(); 1625 gl.deleteFramebuffer(buf); 1626 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1627 done(); 1628 }) 1629 1630 1631 /** 1632 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0074 1633 * @tc.name webgl_test_isFramebuffer_1 1634 * @tc.desc Test isFramebuffer. 1635 */ 1636 it('webgl_test_isFramebuffer_1', 0, async function (done) { 1637 console.info("webgltest [webgl_test_isFramebuffer_1] isFramebuffer"); 1638 isFramebuffer((buf) => { 1639 expect(gl.isFramebuffer(buf)).assertEqual(true); 1640 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1641 }); 1642 done(); 1643 }) 1644 1645 1646 /** 1647 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0075 1648 * @tc.name webgl_test_isFramebuffer_2 1649 * @tc.desc Test isFramebuffer. 1650 */ 1651 it('webgl_test_isFramebuffer_2', 0, async function (done) { 1652 console.info("webgltest [webgl_test_isFramebuffer_2] isFramebuffer"); 1653 isFramebuffer((buf) => { 1654 expect(gl.isFramebuffer(null)).assertEqual(false); 1655 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1656 }); 1657 done(); 1658 }) 1659 1660 1661 /** 1662 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0076 1663 * @tc.name webgl_test_isFramebuffer_3 1664 * @tc.desc Test isFramebuffer. 1665 */ 1666 it('webgl_test_isFramebuffer_3', 0, async function (done) { 1667 console.info("webgltest [webgl_test_isFramebuffer_3] isFramebuffer"); 1668 isFramebuffer((buf) => { 1669 expect(gl.isFramebuffer(undefined)).assertEqual(false); 1670 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1671 }); 1672 done(); 1673 }) 1674 1675 /** 1676 * WebGL API 的 WebGLRenderingContext.framebufferRenderbuffer() 1677 * 方法将 WebGLRenderbuffer 对象附加到 WebGLFramebuffer 对象。 1678 */ 1679 function framebufferRenderbuffer(callback, finish) { 1680 let framebuffer = gl.createFramebuffer(); 1681 gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); 1682 let renderbuffer = gl.createRenderbuffer(); 1683 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 1684 callback(framebuffer, renderbuffer); 1685 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,); 1686 finish(object, framebuffer, renderbuffer); 1687 gl.deleteRenderbuffer(renderbuffer); 1688 gl.deleteFramebuffer(framebuffer); 1689 } 1690 1691 /** 1692 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0077 1693 * @tc.name webgl_test_framebufferRenderbuffer 1694 * @tc.desc Test framebufferRenderbuffer. 1695 */ 1696 it('webgl_test_framebufferRenderbuffer', 0, async function (done) { 1697 console.info("webgltest [webgl_test_framebufferRenderbuffer] framebufferRenderbuffer"); 1698 let framebuffer = gl.createFramebuffer(); 1699 console.info("webgltest framebuffer:", framebuffer); 1700 gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); 1701 expect(gl.isFramebuffer(framebuffer)).assertEqual(true); 1702 let renderbuffer = gl.createRenderbuffer(); 1703 console.info("webgltest renderbuffer:", renderbuffer); 1704 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 1705 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 1706 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer); 1707 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1708 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,); 1709 console.info("webgltest getFramebufferAttachmentParameter:", object); 1710 expect(object).assertEqual(renderbuffer); 1711 gl.deleteRenderbuffer(renderbuffer); 1712 gl.deleteFramebuffer(framebuffer); 1713 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1714 done(); 1715 }) 1716 1717 1718 /** 1719 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0078 1720 * @tc.name webgl_test_framebufferRenderbuffer_1 1721 * @tc.desc Test framebufferRenderbuffer. 1722 */ 1723 it('webgl_test_framebufferRenderbuffer_1', 0, async function (done) { 1724 console.info("webgltest [webgl_test_framebufferRenderbuffer_1] framebufferRenderbuffer"); 1725 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1726 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer); 1727 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1728 }, (object, framebuffer, renderbuffer) => { 1729 expect(object).assertEqual(renderbuffer); 1730 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1731 }); 1732 done(); 1733 }) 1734 1735 1736 /** 1737 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0079 1738 * @tc.name webgl_test_framebufferRenderbuffer_2 1739 * @tc.desc Test framebufferRenderbuffer. 1740 */ 1741 it('webgl_test_framebufferRenderbuffer_2', 0, async function (done) { 1742 console.info("webgltest [webgl_test_framebufferRenderbuffer_2] framebufferRenderbuffer"); 1743 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1744 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, renderbuffer); 1745 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1746 }, (object, framebuffer, renderbuffer) => { 1747 expect(object).assertEqual(null); 1748 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1749 }); 1750 done(); 1751 }) 1752 1753 1754 /** 1755 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0080 1756 * @tc.name webgl_test_framebufferRenderbuffer_3 1757 * @tc.desc Test framebufferRenderbuffer. 1758 */ 1759 it('webgl_test_framebufferRenderbuffer_3', 0, async function (done) { 1760 console.info("webgltest [webgl_test_framebufferRenderbuffer_3] framebufferRenderbuffer"); 1761 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1762 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.RENDERBUFFER, renderbuffer); 1763 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1764 }, (object, framebuffer, renderbuffer) => { 1765 expect(object).assertEqual(null); 1766 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1767 }); 1768 done(); 1769 }) 1770 1771 1772 /** 1773 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0081 1774 * @tc.name webgl_test_framebufferRenderbuffer_4 1775 * @tc.desc Test framebufferRenderbuffer. 1776 */ 1777 it('webgl_test_framebufferRenderbuffer_4', 0, async function (done) { 1778 console.info("webgltest [webgl_test_framebufferRenderbuffer_4] framebufferRenderbuffer"); 1779 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1780 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, renderbuffer); 1781 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1782 }, (object, framebuffer, renderbuffer) => { 1783 expect(object).assertEqual(null); 1784 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1785 }); 1786 done(); 1787 }) 1788 1789 1790 /** 1791 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0082 1792 * @tc.name webgl_test_framebufferRenderbuffer_5 1793 * @tc.desc Test framebufferRenderbuffer. 1794 */ 1795 it('webgl_test_framebufferRenderbuffer_5', 0, async function (done) { 1796 console.info("webgltest [webgl_test_framebufferRenderbuffer_5] framebufferRenderbuffer"); 1797 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1798 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, null); 1799 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1800 }, (object, framebuffer, renderbuffer) => { 1801 expect(object).assertEqual(null); 1802 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1803 }); 1804 done(); 1805 }) 1806 1807 1808 /** 1809 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0083 1810 * @tc.name webgl_test_framebufferRenderbuffer_6 1811 * @tc.desc Test framebufferRenderbuffer. 1812 */ 1813 it('webgl_test_framebufferRenderbuffer_6', 0, async function (done) { 1814 console.info("webgltest [webgl_test_framebufferRenderbuffer_6] framebufferRenderbuffer"); 1815 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1816 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, undefined); 1817 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1818 }, (object, framebuffer, renderbuffer) => { 1819 expect(object).assertEqual(null); 1820 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1821 }); 1822 done(); 1823 }) 1824 1825 /** 1826 * 获取帧缓冲区连接的相关信息。 1827 */ 1828 function getFramebufferAttachmentParameter(callback, finish) { 1829 let framebuffer = gl.createFramebuffer(); 1830 gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); 1831 let renderbuffer = gl.createRenderbuffer(); 1832 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 1833 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer); 1834 callback(framebuffer, renderbuffer); 1835 finish(framebuffer, renderbuffer); 1836 gl.deleteRenderbuffer(renderbuffer); 1837 gl.deleteFramebuffer(framebuffer); 1838 } 1839 1840 /** 1841 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0084 1842 * @tc.name webgl_test_getFramebufferAttachmentParameter 1843 * @tc.desc Test getFramebufferAttachmentParameter. 1844 */ 1845 it('webgl_test_getFramebufferAttachmentParameter', 0, async function (done) { 1846 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter] getFramebufferAttachmentParameter"); 1847 let framebuffer = gl.createFramebuffer(); 1848 console.info("webgltest framebuffer:", framebuffer); 1849 gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); 1850 expect(gl.isFramebuffer(framebuffer)).assertEqual(true); 1851 let renderbuffer = gl.createRenderbuffer(); 1852 console.info("webgltest renderbuffer:", renderbuffer); 1853 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 1854 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 1855 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer); 1856 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); 1857 console.info("webgltest gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); ", object); 1858 expect(object).assertEqual(renderbuffer); 1859 gl.deleteRenderbuffer(renderbuffer); 1860 gl.deleteFramebuffer(framebuffer); 1861 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1862 done(); 1863 }) 1864 1865 1866 /** 1867 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0085 1868 * @tc.name webgl_test_getFramebufferAttachmentParameter_1 1869 * @tc.desc Test getFramebufferAttachmentParameter. 1870 */ 1871 it('webgl_test_getFramebufferAttachmentParameter_1', 0, async function (done) { 1872 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_1] getFramebufferAttachmentParameter"); 1873 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1874 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); 1875 expect(object).assertEqual(renderbuffer); 1876 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1877 }, (framebuffer, renderbuffer) => { 1878 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1879 }); 1880 done(); 1881 }) 1882 1883 1884 /** 1885 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0086 1886 * @tc.name webgl_test_getFramebufferAttachmentParameter_2 1887 * @tc.desc Test getFramebufferAttachmentParameter. 1888 */ 1889 it('webgl_test_getFramebufferAttachmentParameter_2', 0, async function (done) { 1890 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_2] getFramebufferAttachmentParameter"); 1891 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1892 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE); 1893 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1894 }, (framebuffer, renderbuffer) => { 1895 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1896 }); 1897 done(); 1898 }) 1899 1900 1901 /** 1902 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0087 1903 * @tc.name webgl_test_getFramebufferAttachmentParameter_3 1904 * @tc.desc Test getFramebufferAttachmentParameter. 1905 */ 1906 it('webgl_test_getFramebufferAttachmentParameter_3', 0, async function (done) { 1907 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_3] getFramebufferAttachmentParameter"); 1908 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1909 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL); 1910 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1911 }, (framebuffer, renderbuffer) => { 1912 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1913 }); 1914 done(); 1915 }) 1916 1917 1918 /** 1919 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0088 1920 * @tc.name webgl_test_getFramebufferAttachmentParameter_4 1921 * @tc.desc Test getFramebufferAttachmentParameter. 1922 */ 1923 it('webgl_test_getFramebufferAttachmentParameter_4', 0, async function (done) { 1924 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_4] getFramebufferAttachmentParameter"); 1925 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1926 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE); 1927 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1928 }, (framebuffer, renderbuffer) => { 1929 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1930 }); 1931 done(); 1932 }) 1933 1934 1935 /** 1936 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0089 1937 * @tc.name webgl_test_getFramebufferAttachmentParameter_5 1938 * @tc.desc Test getFramebufferAttachmentParameter. 1939 */ 1940 it('webgl_test_getFramebufferAttachmentParameter_5', 0, async function (done) { 1941 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_5] getFramebufferAttachmentParameter"); 1942 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1943 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE); 1944 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1945 }, (framebuffer, renderbuffer) => { 1946 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1947 }); 1948 done(); 1949 }) 1950 1951 1952 /** 1953 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0090 1954 * @tc.name webgl_test_getFramebufferAttachmentParameter_6 1955 * @tc.desc Test getFramebufferAttachmentParameter. 1956 */ 1957 it('webgl_test_getFramebufferAttachmentParameter_6', 0, async function (done) { 1958 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_6] getFramebufferAttachmentParameter"); 1959 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1960 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL); 1961 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1962 }, (framebuffer, renderbuffer) => { 1963 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1964 }); 1965 done(); 1966 }) 1967 1968 1969 /** 1970 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0091 1971 * @tc.name webgl_test_getFramebufferAttachmentParameter_7 1972 * @tc.desc Test getFramebufferAttachmentParameter. 1973 */ 1974 it('webgl_test_getFramebufferAttachmentParameter_7', 0, async function (done) { 1975 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_7] getFramebufferAttachmentParameter"); 1976 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1977 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE); 1978 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1979 }, (framebuffer, renderbuffer) => { 1980 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1981 }); 1982 done(); 1983 }) 1984 1985 /** 1986 * 更新缓冲区对象的数据储存集 1987 */ 1988 function bufferSubData(callback, finish) { 1989 let arr = new Float32Array([ 1990 0.0, 0.5, -0.5, 0.5, 1.0, 0.5, 1991 ]); 1992 let buffer = gl.createBuffer(); 1993 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 1994 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW); 1995 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 1996 expect(bufferSize == arr.length * arr.BYTES_PER_ELEMENT).assertTrue(); 1997 callback(arr); 1998 finish(); 1999 gl.deleteBuffer(buffer); 2000 } 2001 2002 /** 2003 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0092 2004 * @tc.name webgl_test_bufferSubData 2005 * @tc.desc Test bufferSubData. 2006 */ 2007 it('webgl_test_bufferSubData', 0, async function (done) { 2008 console.info("webgltest [webgl_test_bufferSubData] bufferSubData"); 2009 let arr = new Float32Array([ 2010 0.0, 0.5, -0.5, 0.5, 1.0, 0.5, 2011 ]); 2012 console.info("webgltest arr:", arr); 2013 console.info("webgltest arr.BYTES_PER_ELEMENT:", arr.BYTES_PER_ELEMENT); 2014 let buffer = gl.createBuffer(); 2015 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 2016 console.info("webgltest gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW);") 2017 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW); 2018 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 2019 console.info("webgltest bufferSize:", bufferSize); 2020 expect(bufferSize == arr.length * arr.BYTES_PER_ELEMENT).assertTrue(); 2021 console.info("webgltest gl.bufferSubData(gl.ARRAY_BUFFER, 0, arr);") 2022 gl.bufferSubData(gl.ARRAY_BUFFER, 0, arr); 2023 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2024 gl.deleteBuffer(buffer); 2025 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2026 done(); 2027 }) 2028 2029 2030 /** 2031 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0093 2032 * @tc.name webgl_test_bufferSubData_1 2033 * @tc.desc Test bufferSubData. 2034 */ 2035 it('webgl_test_bufferSubData_1', 0, async function (done) { 2036 console.info("webgltest [webgl_test_bufferSubData_1] bufferSubData"); 2037 bufferSubData((arr) => { 2038 gl.bufferSubData(gl.ARRAY_BUFFER, 0, arr); 2039 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2040 }, () => { 2041 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2042 }); 2043 done(); 2044 }) 2045 2046 2047 /** 2048 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0094 2049 * @tc.name webgl_test_bufferSubData_2 2050 * @tc.desc Test bufferSubData. 2051 */ 2052 it('webgl_test_bufferSubData_2', 0, async function (done) { 2053 console.info("webgltest [webgl_test_bufferSubData_2] bufferSubData"); 2054 bufferSubData((arr) => { 2055 gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, arr); 2056 expect(checkError(gl)).assertEqual(gl.INVALID_OPERATION); 2057 }, () => { 2058 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2059 }); 2060 done(); 2061 }) 2062 }) 2063} 2064