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, TestType, Level, Size } 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 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', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 589 async function (done) { 590 console.info("webgltest [webgl_test_getBufferParameter_1] getBufferParameter"); 591 getBufferParameter((arr) => { 592 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 593 expect(bufferSize == arr.length * arr.BYTES_PER_ELEMENT).assertTrue(); 594 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 595 }, () => { 596 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 597 }); 598 done(); 599 }) 600 601 602 /** 603 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0026 604 * @tc.name webgl_test_getBufferParameter_2 605 * @tc.desc Test getBufferParameter. 606 */ 607 it('webgl_test_getBufferParameter_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 608 async function (done) { 609 console.info("webgltest [webgl_test_getBufferParameter_2] getBufferParameter"); 610 getBufferParameter((arr) => { 611 let bufferSize = gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_SIZE); 612 expect(checkError(gl)).assertEqual(gl.INVALID_OPERATION); 613 }, () => { 614 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 615 }); 616 done(); 617 }) 618 619 620 /** 621 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0027 622 * @tc.name webgl_test_getBufferParameter_3 623 * @tc.desc Test getBufferParameter. 624 */ 625 it('webgl_test_getBufferParameter_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 626 async function (done) { 627 console.info("webgltest [webgl_test_getBufferParameter_3] getBufferParameter"); 628 getBufferParameter((arr) => { 629 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE); 630 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 631 }, () => { 632 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 633 }); 634 done(); 635 }) 636 637 /** 638 * RenderBuffer 639 * 创建并初始化 WebGLRenderbuffer 对象。 640 */ 641 642 /** 643 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0028 644 * @tc.name webgl_test_createRenderbuffer 645 * @tc.desc Test createRenderbuffer. 646 */ 647 it('webgl_test_createRenderbuffer', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 648 console.info("webgltest [webgl_test_createRenderbuffer] createRenderbuffer"); 649 let renderbuffer = gl.createRenderbuffer(); 650 console.info("webgltest createRenderbuffer:", renderbuffer); 651 expect(renderbuffer != null).assertTrue(); 652 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 653 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 654 console.info("webgltest gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);"); 655 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 656 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 657 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 658 gl.deleteRenderbuffer(renderbuffer); 659 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 660 done(); 661 }) 662 663 /** 664 * 删除 WebGLRenderbuffer 对象 665 */ 666 function deleteRenderbuffer(callback, finish) { 667 let renderbuffer = gl.createRenderbuffer(); 668 expect(renderbuffer != null).assertTrue(); 669 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 670 callback(renderbuffer); 671 finish(gl.isRenderbuffer(renderbuffer)); 672 gl.deleteRenderbuffer(renderbuffer); 673 } 674 675 /** 676 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0029 677 * @tc.name webgl_test_deleteRenderbuffer 678 * @tc.desc Test deleteRenderbuffer. 679 */ 680 it('webgl_test_deleteRenderbuffer', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 681 console.info("webgltest [webgl_test_deleteRenderbuffer] deleteRenderbuffer"); 682 let renderbuffer = gl.createRenderbuffer(); 683 console.info("webgltest createRenderbuffer:", renderbuffer); 684 expect(renderbuffer != null).assertTrue(); 685 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 686 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 687 console.info("webgltest gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);"); 688 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 689 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 690 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 691 console.info("webgltest gl.deleteRenderbuffer(renderbuffer);"); 692 gl.deleteRenderbuffer(renderbuffer); 693 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 694 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 695 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 696 done(); 697 }) 698 699 700 /** 701 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0030 702 * @tc.name webgl_test_deleteRenderbuffer_1 703 * @tc.desc Test deleteRenderbuffer. 704 */ 705 it('webgl_test_deleteRenderbuffer_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 706 async function (done) { 707 console.info("webgltest [webgl_test_deleteRenderbuffer_1] deleteRenderbuffer"); 708 deleteRenderbuffer((renderbuffer) => { 709 gl.deleteRenderbuffer(renderbuffer); 710 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 711 }, (isDelete) => { 712 expect(isDelete).assertEqual(false); 713 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 714 }); 715 done(); 716 }) 717 718 719 /** 720 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0031 721 * @tc.name webgl_test_deleteRenderbuffer_2 722 * @tc.desc Test deleteRenderbuffer. 723 */ 724 it('webgl_test_deleteRenderbuffer_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 725 async function (done) { 726 console.info("webgltest [webgl_test_deleteRenderbuffer_2] deleteRenderbuffer"); 727 deleteRenderbuffer((renderbuffer) => { 728 gl.deleteRenderbuffer(null); 729 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 730 }, (isDelete) => { 731 expect(isDelete).assertEqual(true); 732 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 733 }); 734 done(); 735 }) 736 737 738 /** 739 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0032 740 * @tc.name webgl_test_deleteRenderbuffer_3 741 * @tc.desc Test deleteRenderbuffer. 742 */ 743 it('webgl_test_deleteRenderbuffer_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 744 async function (done) { 745 console.info("webgltest [webgl_test_deleteRenderbuffer_3] deleteRenderbuffer"); 746 deleteRenderbuffer((renderbuffer) => { 747 gl.deleteRenderbuffer(undefined); 748 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 749 }, (isDelete) => { 750 expect(isDelete).assertEqual(true); 751 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 752 }); 753 done(); 754 }) 755 756 /** 757 * 获取关于渲染缓冲区的信息 758 */ 759 function getRenderbufferParameter(callback) { 760 let buf = gl.createRenderbuffer(); 761 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 762 callback(buf); 763 gl.deleteRenderbuffer(buf); 764 } 765 766 /** 767 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0033 768 * @tc.name webgl_test_getRenderbufferParameter 769 * @tc.desc Test getRenderbufferParameter. 770 */ 771 it('webgl_test_getRenderbufferParameter', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 772 async function (done) { 773 console.info("webgltest [webgl_test_getRenderbufferParameter] getRenderbufferParameter"); 774 let buf = gl.createRenderbuffer(); 775 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 776 console.info("webgltest RENDERBUFFER_WIDTH:", 777 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 778 console.info("webgltest RENDERBUFFER_HEIGHT:", 779 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)); 780 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 781 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 782 console.info("webgltest gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256);"); 783 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256); 784 console.info("webgltest RENDERBUFFER_WIDTH:", 785 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 786 console.info("webgltest RENDERBUFFER_HEIGHT:", 787 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)); 788 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 789 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 790 gl.deleteRenderbuffer(buf); 791 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 792 done(); 793 }) 794 795 796 /** 797 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0034 798 * @tc.name webgl_test_getRenderbufferParameter_1 799 * @tc.desc Test getRenderbufferParameter. 800 */ 801 it('webgl_test_getRenderbufferParameter_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 802 async function (done) { 803 console.info("webgltest [webgl_test_getRenderbufferParameter_1] getRenderbufferParameter"); 804 getRenderbufferParameter((buf) => { 805 console.info("webgltest RENDERBUFFER_WIDTH:", 806 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 807 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 808 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 809 }); 810 done(); 811 }) 812 813 814 /** 815 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0035 816 * @tc.name webgl_test_getRenderbufferParameter_2 817 * @tc.desc Test getRenderbufferParameter. 818 */ 819 it('webgl_test_getRenderbufferParameter_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 820 async function (done) { 821 console.info("webgltest [webgl_test_getRenderbufferParameter_2] getRenderbufferParameter"); 822 getRenderbufferParameter((buf) => { 823 console.info("webgltest RENDERBUFFER_WIDTH:", 824 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 825 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 826 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 827 }); 828 done(); 829 }) 830 831 832 /** 833 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0036 834 * @tc.name webgl_test_getRenderbufferParameter_3 835 * @tc.desc Test getRenderbufferParameter. 836 */ 837 it('webgl_test_getRenderbufferParameter_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 838 async function (done) { 839 console.info("webgltest [webgl_test_getRenderbufferParameter_3] getRenderbufferParameter"); 840 getRenderbufferParameter((buf) => { 841 console.info("webgltest RENDERBUFFER_INTERNAL_FORMAT:", 842 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_INTERNAL_FORMAT)); 843 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, 844 gl.RENDERBUFFER_INTERNAL_FORMAT)).assertEqual(gl.RGBA4); 845 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 846 }); 847 done(); 848 }) 849 850 851 /** 852 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0037 853 * @tc.name webgl_test_getRenderbufferParameter_4 854 * @tc.desc Test getRenderbufferParameter. 855 */ 856 it('webgl_test_getRenderbufferParameter_4', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 857 async function (done) { 858 console.info("webgltest [webgl_test_getRenderbufferParameter_4] getRenderbufferParameter"); 859 getRenderbufferParameter((buf) => { 860 console.info("webgltest RENDERBUFFER_GREEN_SIZE:", 861 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_GREEN_SIZE)); 862 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_GREEN_SIZE)>=0).assertEqual(true); 863 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 864 }); 865 done(); 866 }) 867 868 869 /** 870 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0038 871 * @tc.name webgl_test_getRenderbufferParameter_5 872 * @tc.desc Test getRenderbufferParameter. 873 */ 874 it('webgl_test_getRenderbufferParameter_5', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 875 async function (done) { 876 console.info("webgltest [webgl_test_getRenderbufferParameter_5] getRenderbufferParameter"); 877 getRenderbufferParameter((buf) => { 878 console.info("webgltest RENDERBUFFER_BLUE_SIZE:", 879 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_BLUE_SIZE)); 880 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_BLUE_SIZE)>=0).assertEqual(true); 881 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 882 }); 883 done(); 884 }) 885 886 887 /** 888 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0039 889 * @tc.name webgl_test_getRenderbufferParameter_6 890 * @tc.desc Test getRenderbufferParameter. 891 */ 892 it('webgl_test_getRenderbufferParameter_6', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 893 async function (done) { 894 console.info("webgltest [webgl_test_getRenderbufferParameter_6] getRenderbufferParameter"); 895 getRenderbufferParameter((buf) => { 896 console.info("webgltest RENDERBUFFER_RED_SIZE:", 897 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_RED_SIZE)); 898 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_RED_SIZE)>=0).assertEqual(true); 899 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 900 }); 901 done(); 902 }) 903 904 905 /** 906 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0040 907 * @tc.name webgl_test_getRenderbufferParameter_7 908 * @tc.desc Test getRenderbufferParameter. 909 */ 910 it('webgl_test_getRenderbufferParameter_7', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 911 async function (done) { 912 console.info("webgltest [webgl_test_getRenderbufferParameter_7] getRenderbufferParameter"); 913 getRenderbufferParameter((buf) => { 914 console.info("webgltest RENDERBUFFER_ALPHA_SIZE:", 915 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_ALPHA_SIZE)); 916 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_ALPHA_SIZE)>=0).assertEqual(true); 917 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 918 }); 919 done(); 920 }) 921 922 923 /** 924 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0041 925 * @tc.name webgl_test_getRenderbufferParameter_8 926 * @tc.desc Test getRenderbufferParameter. 927 */ 928 it('webgl_test_getRenderbufferParameter_8', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 929 async function (done) { 930 console.info("webgltest [webgl_test_getRenderbufferParameter_8] getRenderbufferParameter"); 931 getRenderbufferParameter((buf) => { 932 console.info("webgltest RENDERBUFFER_DEPTH_SIZE:", 933 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_DEPTH_SIZE)); 934 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_DEPTH_SIZE)>=0).assertEqual(true); 935 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 936 }); 937 done(); 938 }) 939 940 941 /** 942 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0042 943 * @tc.name webgl_test_getRenderbufferParameter_9 944 * @tc.desc Test getRenderbufferParameter. 945 */ 946 it('webgl_test_getRenderbufferParameter_9', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 947 async function (done) { 948 console.info("webgltest [webgl_test_getRenderbufferParameter_9] getRenderbufferParameter"); 949 getRenderbufferParameter((buf) => { 950 console.info("webgltest RENDERBUFFER_STENCIL_SIZE:", 951 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_STENCIL_SIZE)); 952 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, 953 gl.RENDERBUFFER_STENCIL_SIZE)>=0).assertEqual(true); 954 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 955 }); 956 done(); 957 }) 958 959 /** 960 * 判定传入的WebGLRenderbuffer是否有效 961 */ 962 function isRenderbuffer(callback) { 963 let renderbuffer = gl.createRenderbuffer(); 964 expect(renderbuffer != null).assertTrue(); 965 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 966 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 967 callback(renderbuffer); 968 gl.deleteRenderbuffer(renderbuffer); 969 } 970 971 /** 972 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0043 973 * @tc.name webgl_test_isRenderbuffer 974 * @tc.desc Test isRenderbuffer. 975 */ 976 it('webgl_test_isRenderbuffer', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 977 console.info("webgltest [webgl_test_isRenderbuffer] isRenderbuffer"); 978 let renderbuffer = gl.createRenderbuffer(); 979 console.info("webgltest createRenderbuffer:", renderbuffer); 980 expect(renderbuffer != null).assertTrue(); 981 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 982 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 983 console.info("webgltest gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);"); 984 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 985 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 986 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 987 console.info("webgltest gl.deleteRenderbuffer(renderbuffer);"); 988 gl.deleteRenderbuffer(renderbuffer); 989 console.info("webgltest isRenderbuffer:", gl.isRenderbuffer(renderbuffer)); 990 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(false); 991 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 992 done(); 993 }) 994 995 996 /** 997 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0044 998 * @tc.name webgl_test_isRenderbuffer_1 999 * @tc.desc Test isRenderbuffer. 1000 */ 1001 it('webgl_test_isRenderbuffer_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1002 console.info("webgltest [webgl_test_isRenderbuffer_1] isRenderbuffer"); 1003 isRenderbuffer((renderbuffer) => { 1004 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 1005 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1006 }); 1007 done(); 1008 }) 1009 1010 1011 /** 1012 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0045 1013 * @tc.name webgl_test_isRenderbuffer_2 1014 * @tc.desc Test isRenderbuffer. 1015 */ 1016 it('webgl_test_isRenderbuffer_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1017 console.info("webgltest [webgl_test_isRenderbuffer_2] isRenderbuffer"); 1018 isRenderbuffer((renderbuffer) => { 1019 expect(gl.isRenderbuffer(null)).assertEqual(false); 1020 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1021 }); 1022 done(); 1023 }) 1024 1025 1026 /** 1027 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0046 1028 * @tc.name webgl_test_isRenderbuffer_3 1029 * @tc.desc Test isRenderbuffer. 1030 */ 1031 it('webgl_test_isRenderbuffer_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1032 console.info("webgltest [webgl_test_isRenderbuffer_3] isRenderbuffer"); 1033 isRenderbuffer((renderbuffer) => { 1034 expect(gl.isRenderbuffer(undefined)).assertEqual(false); 1035 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1036 }); 1037 done(); 1038 }) 1039 1040 /** 1041 * 将给定的 WebGLRenderbuffer 绑定到一个目标 1042 */ 1043 function bindRenderbuffer(callback, finish) { 1044 let buf = gl.createRenderbuffer(); 1045 let renderBufferBinding = gl.getParameter(gl.RENDERBUFFER_BINDING); 1046 console.info("webgltest renderBufferBinding:", renderBufferBinding); 1047 callback(buf); 1048 renderBufferBinding = gl.getParameter(gl.RENDERBUFFER_BINDING); 1049 finish(renderBufferBinding, buf); 1050 gl.deleteRenderbuffer(buf); 1051 } 1052 1053 /** 1054 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0047 1055 * @tc.name webgl_test_bindRenderbuffer 1056 * @tc.desc Test bindRenderbuffer. 1057 */ 1058 it('webgl_test_bindRenderbuffer', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1059 console.info("webgltest [webgl_test_bindRenderbuffer] bindRenderbuffer"); 1060 let buf = gl.createRenderbuffer(); 1061 let renderBufferBinding = gl.getParameter(gl.RENDERBUFFER_BINDING); 1062 console.info("webgltest renderBufferBinding:", renderBufferBinding); 1063 console.info("webgltest gl.bindRenderbuffer(gl.RENDERBUFFER,renderBuffer);"); 1064 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 1065 renderBufferBinding = gl.getParameter(gl.RENDERBUFFER_BINDING); 1066 console.info("webgltest renderBufferBinding:", renderBufferBinding); 1067 expect(renderBufferBinding == buf).assertTrue(); 1068 gl.deleteRenderbuffer(buf); 1069 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1070 done(); 1071 }) 1072 1073 1074 /** 1075 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0048 1076 * @tc.name webgl_test_bindRenderbuffer_1 1077 * @tc.desc Test bindRenderbuffer. 1078 */ 1079 it('webgl_test_bindRenderbuffer_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1080 console.info("webgltest [webgl_test_bindRenderbuffer_1] bindRenderbuffer"); 1081 bindRenderbuffer((buf) => { 1082 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 1083 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1084 }, (renderBufferBinding, buf) => { 1085 expect(renderBufferBinding).assertEqual(buf); 1086 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1087 }); 1088 done(); 1089 }) 1090 1091 1092 /** 1093 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0049 1094 * @tc.name webgl_test_bindRenderbuffer_2 1095 * @tc.desc Test bindRenderbuffer. 1096 */ 1097 it('webgl_test_bindRenderbuffer_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1098 console.info("webgltest [webgl_test_bindRenderbuffer_2] bindRenderbuffer"); 1099 bindRenderbuffer((buf) => { 1100 gl.bindRenderbuffer(gl.RENDERBUFFER, null); 1101 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1102 }, (renderBufferBinding, buf) => { 1103 expect(renderBufferBinding).assertEqual(null); 1104 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1105 }); 1106 done(); 1107 }) 1108 1109 1110 /** 1111 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0050 1112 * @tc.name webgl_test_bindRenderbuffer_3 1113 * @tc.desc Test bindRenderbuffer. 1114 */ 1115 it('webgl_test_bindRenderbuffer_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1116 console.info("webgltest [webgl_test_bindRenderbuffer_3] bindRenderbuffer"); 1117 bindRenderbuffer((buf) => { 1118 gl.bindRenderbuffer(gl.RENDERBUFFER, undefined); 1119 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1120 }, (renderBufferBinding, buf) => { 1121 expect(renderBufferBinding).assertEqual(null); 1122 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1123 }); 1124 done(); 1125 }) 1126 1127 /** 1128 * 创建并初始化一个renderbuffer对象的数据存储。 1129 */ 1130 function renderbufferStorage(callback, finish) { 1131 let buf = gl.createRenderbuffer(); 1132 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 1133 callback(buf); 1134 finish(buf); 1135 gl.deleteRenderbuffer(buf); 1136 } 1137 1138 /** 1139 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0051 1140 * @tc.name webgl_test_renderbufferStorage 1141 * @tc.desc Test renderbufferStorage. 1142 */ 1143 it('webgl_test_renderbufferStorage', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1144 async function (done) { 1145 console.info("webgltest [webgl_test_renderbufferStorage] renderbufferStorage"); 1146 let buf = gl.createRenderbuffer(); 1147 gl.bindRenderbuffer(gl.RENDERBUFFER, buf); 1148 console.info("webgltest RENDERBUFFER_WIDTH:", 1149 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 1150 console.info("webgltest RENDERBUFFER_HEIGHT:", 1151 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)); 1152 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 1153 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 1154 console.info("webgltest gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256);"); 1155 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256); 1156 console.info("webgltest RENDERBUFFER_WIDTH:", 1157 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)); 1158 console.info("webgltest RENDERBUFFER_HEIGHT:", 1159 gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)); 1160 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1161 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1162 gl.deleteRenderbuffer(buf); 1163 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1164 done(); 1165 }) 1166 1167 1168 /** 1169 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0052 1170 * @tc.name webgl_test_renderbufferStorage_1 1171 * @tc.desc Test renderbufferStorage. 1172 */ 1173 it('webgl_test_renderbufferStorage_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1174 async function (done) { 1175 console.info("webgltest [webgl_test_renderbufferStorage_1] renderbufferStorage"); 1176 renderbufferStorage((buf) => { 1177 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256); 1178 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1179 }, (buf) => { 1180 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1181 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1182 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1183 }); 1184 done(); 1185 }) 1186 1187 1188 /** 1189 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0053 1190 * @tc.name webgl_test_renderbufferStorage_2 1191 * @tc.desc Test renderbufferStorage. 1192 */ 1193 it('webgl_test_renderbufferStorage_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1194 async function (done) { 1195 console.info("webgltest [webgl_test_renderbufferStorage_2] renderbufferStorage"); 1196 renderbufferStorage((buf) => { 1197 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGB565, 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_0054 1210 * @tc.name webgl_test_renderbufferStorage_3 1211 * @tc.desc Test renderbufferStorage. 1212 */ 1213 it('webgl_test_renderbufferStorage_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1214 async function (done) { 1215 console.info("webgltest [webgl_test_renderbufferStorage_3] renderbufferStorage"); 1216 renderbufferStorage((buf) => { 1217 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGB5_A1, 256, 256); 1218 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1219 }, (buf) => { 1220 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1221 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1222 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1223 }); 1224 done(); 1225 }) 1226 1227 1228 /** 1229 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0055 1230 * @tc.name webgl_test_renderbufferStorage_4 1231 * @tc.desc Test renderbufferStorage. 1232 */ 1233 it('webgl_test_renderbufferStorage_4', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1234 async function (done) { 1235 console.info("webgltest [webgl_test_renderbufferStorage_4] renderbufferStorage"); 1236 renderbufferStorage((buf) => { 1237 gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, 256, 256); 1238 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1239 }, (buf) => { 1240 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1241 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1242 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1243 }); 1244 done(); 1245 }) 1246 1247 1248 /** 1249 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0056 1250 * @tc.name webgl_test_renderbufferStorage_5 1251 * @tc.desc Test renderbufferStorage. 1252 */ 1253 it('webgl_test_renderbufferStorage_5', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1254 async function (done) { 1255 console.info("webgltest [webgl_test_renderbufferStorage_5] renderbufferStorage"); 1256 renderbufferStorage((buf) => { 1257 gl.renderbufferStorage(gl.RENDERBUFFER, gl.STENCIL_INDEX8, 256, 256); 1258 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1259 }, (buf) => { 1260 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1261 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1262 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1263 }); 1264 done(); 1265 }) 1266 1267 1268 /** 1269 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0057 1270 * @tc.name webgl_test_renderbufferStorage_6 1271 * @tc.desc Test renderbufferStorage. 1272 */ 1273 it('webgl_test_renderbufferStorage_6', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1274 async function (done) { 1275 console.info("webgltest [webgl_test_renderbufferStorage_6] renderbufferStorage"); 1276 renderbufferStorage((buf) => { 1277 gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, 256, 256); 1278 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1279 }, (buf) => { 1280 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(256); 1281 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(256); 1282 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1283 }); 1284 done(); 1285 }) 1286 1287 1288 /** 1289 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0058 1290 * @tc.name webgl_test_renderbufferStorage_7 1291 * @tc.desc Test renderbufferStorage. 1292 */ 1293 it('webgl_test_renderbufferStorage_7', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1294 async function (done) { 1295 console.info("webgltest [webgl_test_renderbufferStorage_7] renderbufferStorage"); 1296 renderbufferStorage((buf) => { 1297 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 0, 0); 1298 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1299 }, (buf) => { 1300 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 1301 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 1302 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1303 }); 1304 done(); 1305 }) 1306 1307 1308 /** 1309 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0059 1310 * @tc.name webgl_test_renderbufferStorage_8 1311 * @tc.desc Test renderbufferStorage. 1312 */ 1313 it('webgl_test_renderbufferStorage_8', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1314 async function (done) { 1315 console.info("webgltest [webgl_test_renderbufferStorage_8] renderbufferStorage"); 1316 renderbufferStorage((buf) => { 1317 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, -1, -1); 1318 expect(checkError(gl)).assertEqual(gl.INVALID_VALUE); 1319 }, (buf) => { 1320 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 1321 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 1322 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1323 }); 1324 done(); 1325 }) 1326 1327 1328 /** 1329 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0060 1330 * @tc.name webgl_test_renderbufferStorage_9 1331 * @tc.desc Test renderbufferStorage. 1332 */ 1333 it('webgl_test_renderbufferStorage_9', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1334 async function (done) { 1335 console.info("webgltest [webgl_test_renderbufferStorage_9] renderbufferStorage"); 1336 renderbufferStorage((buf) => { 1337 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, null, null); 1338 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1339 }, (buf) => { 1340 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 1341 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 1342 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1343 }); 1344 done(); 1345 }) 1346 1347 1348 /** 1349 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0061 1350 * @tc.name webgl_test_renderbufferStorage_10 1351 * @tc.desc Test renderbufferStorage. 1352 */ 1353 it('webgl_test_renderbufferStorage_10', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1354 async function (done) { 1355 console.info("webgltest [webgl_test_renderbufferStorage_10] renderbufferStorage"); 1356 renderbufferStorage((buf) => { 1357 gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, undefined, undefined); 1358 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1359 }, (buf) => { 1360 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)).assertEqual(0); 1361 expect(gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_HEIGHT)).assertEqual(0); 1362 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1363 }); 1364 done(); 1365 }) 1366 1367 /** 1368 * FrameBuffer 1369 * 创建和初始化WebGLFramebuffer 对象 1370 */ 1371 1372 /** 1373 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0062 1374 * @tc.name webgl_test_createFramebuffer 1375 * @tc.desc Test createFramebuffer. 1376 */ 1377 it('webgl_test_createFramebuffer', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1378 console.info("webgltest [webgl_test_createFramebuffer] createFramebuffer"); 1379 let buf = gl.createFramebuffer(); 1380 console.info("webgltest newFramebuffer:", buf); 1381 expect(buf != null).assertTrue(); 1382 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1383 expect(gl.isFramebuffer(buf)).assertEqual(false); 1384 console.info("webgltest gl.bindFramebuffer(gl.FRAMEBUFFER, buf);"); 1385 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1386 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1387 expect(gl.isFramebuffer(buf)).assertEqual(true); 1388 checkFrameBufferStatus(); 1389 gl.deleteFramebuffer(buf); 1390 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1391 done(); 1392 }) 1393 1394 /** 1395 * 绑定WebGLFramebuffer 对象到一个目标 1396 */ 1397 function bindFramebuffer(callback, finish) { 1398 let buf = gl.createFramebuffer(); 1399 expect(buf != null).assertTrue(); 1400 expect(gl.isFramebuffer(buf)).assertEqual(false); 1401 callback(buf); 1402 finish(gl.isFramebuffer(buf)); 1403 checkFrameBufferStatus(); 1404 gl.deleteFramebuffer(buf); 1405 } 1406 1407 /** 1408 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0063 1409 * @tc.name webgl_test_bindFramebuffer 1410 * @tc.desc Test bindFramebuffer. 1411 */ 1412 it('webgl_test_bindFramebuffer', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1413 console.info("webgltest [webgl_test_bindFramebuffer] bindFramebuffer"); 1414 let buf = gl.createFramebuffer(); 1415 console.info("webgltest newFramebuffer:", buf); 1416 expect(buf != null).assertTrue(); 1417 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1418 expect(gl.isFramebuffer(buf)).assertEqual(false); 1419 console.info("webgltest gl.bindFramebuffer(gl.FRAMEBUFFER, buf);"); 1420 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1421 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1422 expect(gl.isFramebuffer(buf)).assertEqual(true); 1423 checkFrameBufferStatus(); 1424 gl.deleteFramebuffer(buf); 1425 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1426 done(); 1427 }) 1428 1429 1430 /** 1431 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0064 1432 * @tc.name webgl_test_bindFramebuffer_1 1433 * @tc.desc Test bindFramebuffer. 1434 */ 1435 it('webgl_test_bindFramebuffer_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1436 console.info("webgltest [webgl_test_bindFramebuffer_1] bindFramebuffer"); 1437 bindFramebuffer((buf) => { 1438 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1439 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1440 }, (isFramebuffer) => { 1441 expect(isFramebuffer).assertEqual(true); 1442 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1443 }); 1444 done(); 1445 }) 1446 1447 1448 /** 1449 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0065 1450 * @tc.name webgl_test_bindFramebuffer_2 1451 * @tc.desc Test bindFramebuffer. 1452 */ 1453 it('webgl_test_bindFramebuffer_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1454 console.info("webgltest [webgl_test_bindFramebuffer_2] bindFramebuffer"); 1455 bindFramebuffer((buf) => { 1456 gl.bindFramebuffer(gl.FRAMEBUFFER, null); 1457 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1458 }, (isFramebuffer) => { 1459 expect(isFramebuffer).assertEqual(false); 1460 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1461 }); 1462 done(); 1463 }) 1464 1465 1466 /** 1467 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0066 1468 * @tc.name webgl_test_bindFramebuffer_3 1469 * @tc.desc Test bindFramebuffer. 1470 */ 1471 it('webgl_test_bindFramebuffer_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1472 console.info("webgltest [webgl_test_bindFramebuffer_3] bindFramebuffer"); 1473 bindFramebuffer((buf) => { 1474 gl.bindFramebuffer(gl.FRAMEBUFFER, undefined); 1475 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1476 }, (isFramebuffer) => { 1477 expect(isFramebuffer).assertEqual(false); 1478 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1479 }); 1480 done(); 1481 }) 1482 1483 /** 1484 * 删除WebGLFramebuffer 对象 1485 */ 1486 function deleteFramebuffer(callback, finish) { 1487 let buf = gl.createFramebuffer(); 1488 expect(buf != null).assertTrue(); 1489 expect(gl.isFramebuffer(buf)).assertEqual(false); 1490 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1491 callback(buf); 1492 finish(gl.isFramebuffer(buf)); 1493 gl.deleteFramebuffer(buf); 1494 } 1495 1496 /** 1497 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0067 1498 * @tc.name webgl_test_deleteFramebuffer 1499 * @tc.desc Test deleteFramebuffer. 1500 */ 1501 it('webgl_test_deleteFramebuffer', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1502 console.info("webgltest [webgl_test_deleteFramebuffer] deleteFramebuffer"); 1503 let buf = gl.createFramebuffer(); 1504 console.info("webgltest newFramebuffer:", buf); 1505 expect(buf != null).assertTrue(); 1506 expect(gl.isFramebuffer(buf)).assertEqual(false); 1507 console.info("webgltest gl.bindFramebuffer(gl.FRAMEBUFFER, buf);"); 1508 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1509 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1510 expect(gl.isFramebuffer(buf)).assertEqual(true); 1511 console.log("webgltest gl.deleteFramebuffer(buf);"); 1512 gl.deleteFramebuffer(buf); 1513 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1514 expect(gl.isFramebuffer(buf)).assertEqual(false); 1515 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1516 done(); 1517 }) 1518 1519 1520 /** 1521 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0068 1522 * @tc.name webgl_test_deleteFramebuffer_1 1523 * @tc.desc Test deleteFramebuffer. 1524 */ 1525 it('webgl_test_deleteFramebuffer_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1526 async function (done) { 1527 console.info("webgltest [webgl_test_deleteFramebuffer_1] deleteFramebuffer"); 1528 deleteFramebuffer((buf) => { 1529 gl.deleteFramebuffer(buf); 1530 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1531 }, (isFramebuffer) => { 1532 expect(isFramebuffer).assertEqual(false); 1533 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1534 }); 1535 done(); 1536 }) 1537 1538 1539 /** 1540 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0069 1541 * @tc.name webgl_test_deleteFramebuffer_2 1542 * @tc.desc Test deleteFramebuffer. 1543 */ 1544 it('webgl_test_deleteFramebuffer_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1545 async function (done) { 1546 console.info("webgltest [webgl_test_deleteFramebuffer_2] deleteFramebuffer"); 1547 deleteFramebuffer((buf) => { 1548 gl.deleteFramebuffer(null); 1549 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1550 }, (isFramebuffer) => { 1551 expect(isFramebuffer).assertEqual(true); 1552 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1553 }); 1554 done(); 1555 }) 1556 1557 1558 /** 1559 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0070 1560 * @tc.name webgl_test_deleteFramebuffer_3 1561 * @tc.desc Test deleteFramebuffer. 1562 */ 1563 it('webgl_test_deleteFramebuffer_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1564 async function (done) { 1565 console.info("webgltest [webgl_test_deleteFramebuffer_3] deleteFramebuffer"); 1566 deleteFramebuffer((buf) => { 1567 gl.deleteFramebuffer(undefined); 1568 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1569 }, (isFramebuffer) => { 1570 expect(isFramebuffer).assertEqual(true); 1571 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1572 }); 1573 done(); 1574 }) 1575 1576 function checkFrameBufferStatus() { 1577 let status = gl.checkFramebufferStatus(gl.FRAMEBUFFER); 1578 switch (status) { 1579 case gl.FRAMEBUFFER_COMPLETE: 1580 console.info("webgltest checkFramebufferStatus FRAMEBUFFER_COMPLETE"); 1581 break; 1582 case gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 1583 console.info("webgltest checkFramebufferStatus FRAMEBUFFER_INCOMPLETE_ATTACHMENT"); 1584 break; 1585 case gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 1586 console.info("webgltest checkFramebufferStatus FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"); 1587 break; 1588 case gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 1589 console.info("webgltest checkFramebufferStatus FRAMEBUFFER_INCOMPLETE_DIMENSIONS"); 1590 break; 1591 case gl.FRAMEBUFFER_UNSUPPORTED: 1592 console.info("webgltest checkFramebufferStatus FRAMEBUFFER_UNSUPPORTED"); 1593 break; 1594 } 1595 return status; 1596 } 1597 1598 /** 1599 * 检查WebGLFramebuffer对象的完整性状态 1600 */ 1601 function checkFramebufferStatus(callback) { 1602 let buf = gl.createFramebuffer(); 1603 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1604 callback(buf); 1605 gl.deleteFramebuffer(buf); 1606 } 1607 1608 /** 1609 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0071 1610 * @tc.name webgl_test_checkFramebufferStatus 1611 * @tc.desc Test checkFramebufferStatus. 1612 */ 1613 it('webgl_test_checkFramebufferStatus', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1614 async function (done) { 1615 console.info("webgltest [webgl_test_checkFramebufferStatus] checkFramebufferStatus"); 1616 let buf = gl.createFramebuffer(); 1617 console.info("webgltest newFramebuffer:", buf); 1618 expect(buf != null).assertTrue(); 1619 let status = checkFrameBufferStatus(); 1620 expect(status == gl.FRAMEBUFFER_COMPLETE).assertEqual(true); 1621 console.info("webgltest gl.bindFramebuffer(gl.FRAMEBUFFER, buf);"); 1622 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1623 expect(gl.isFramebuffer(buf)).assertEqual(true); 1624 status = checkFrameBufferStatus(); 1625 expect(status == gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT).assertEqual(true); 1626 gl.deleteFramebuffer(buf); 1627 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1628 done(); 1629 }) 1630 1631 1632 /** 1633 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0072 1634 * @tc.name webgl_test_checkFramebufferStatus_1 1635 * @tc.desc Test checkFramebufferStatus. 1636 */ 1637 it('webgl_test_checkFramebufferStatus_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1638 async function (done) { 1639 console.info("webgltest [webgl_test_checkFramebufferStatus_1] checkFramebufferStatus"); 1640 checkFramebufferStatus((buf) => { 1641 let status = gl.checkFramebufferStatus(gl.FRAMEBUFFER); 1642 expect(status == gl.FRAMEBUFFER_COMPLETE).assertEqual(false); 1643 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1644 }); 1645 done(); 1646 }) 1647 1648 /** 1649 * 判定给定的WebGLFramebuffer是否有效 1650 */ 1651 function isFramebuffer(callback) { 1652 let buf = gl.createFramebuffer(); 1653 expect(gl.isFramebuffer(buf)).assertEqual(false); 1654 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1655 callback(buf); 1656 gl.deleteFramebuffer(buf); 1657 } 1658 1659 /** 1660 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0073 1661 * @tc.name webgl_test_isFramebuffer 1662 * @tc.desc Test isFramebuffer. 1663 */ 1664 it('webgl_test_isFramebuffer', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1665 console.info("webgltest [webgl_test_isFramebuffer] isFramebuffer"); 1666 let buf = gl.createFramebuffer(); 1667 console.info("webgltest newFramebuffer:", buf); 1668 expect(buf != null).assertTrue(); 1669 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1670 expect(gl.isFramebuffer(buf)).assertEqual(false); 1671 console.info("webgltest gl.bindFramebuffer(gl.FRAMEBUFFER, buf);"); 1672 gl.bindFramebuffer(gl.FRAMEBUFFER, buf); 1673 console.log("webgltest isFramebuffer() ", gl.isFramebuffer(buf)); 1674 expect(gl.isFramebuffer(buf)).assertEqual(true); 1675 checkFrameBufferStatus(); 1676 gl.deleteFramebuffer(buf); 1677 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1678 done(); 1679 }) 1680 1681 1682 /** 1683 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0074 1684 * @tc.name webgl_test_isFramebuffer_1 1685 * @tc.desc Test isFramebuffer. 1686 */ 1687 it('webgl_test_isFramebuffer_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1688 console.info("webgltest [webgl_test_isFramebuffer_1] isFramebuffer"); 1689 isFramebuffer((buf) => { 1690 expect(gl.isFramebuffer(buf)).assertEqual(true); 1691 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1692 }); 1693 done(); 1694 }) 1695 1696 1697 /** 1698 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0075 1699 * @tc.name webgl_test_isFramebuffer_2 1700 * @tc.desc Test isFramebuffer. 1701 */ 1702 it('webgl_test_isFramebuffer_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1703 console.info("webgltest [webgl_test_isFramebuffer_2] isFramebuffer"); 1704 isFramebuffer((buf) => { 1705 expect(gl.isFramebuffer(null)).assertEqual(false); 1706 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1707 }); 1708 done(); 1709 }) 1710 1711 1712 /** 1713 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0076 1714 * @tc.name webgl_test_isFramebuffer_3 1715 * @tc.desc Test isFramebuffer. 1716 */ 1717 it('webgl_test_isFramebuffer_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1718 console.info("webgltest [webgl_test_isFramebuffer_3] isFramebuffer"); 1719 isFramebuffer((buf) => { 1720 expect(gl.isFramebuffer(undefined)).assertEqual(false); 1721 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1722 }); 1723 done(); 1724 }) 1725 1726 /** 1727 * WebGL API 的 WebGLRenderingContext.framebufferRenderbuffer() 1728 * 方法将 WebGLRenderbuffer 对象附加到 WebGLFramebuffer 对象。 1729 */ 1730 function framebufferRenderbuffer(callback, finish) { 1731 let framebuffer = gl.createFramebuffer(); 1732 gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); 1733 let renderbuffer = gl.createRenderbuffer(); 1734 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 1735 callback(framebuffer, renderbuffer); 1736 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, 1737 gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,); 1738 finish(object, framebuffer, renderbuffer); 1739 gl.deleteRenderbuffer(renderbuffer); 1740 gl.deleteFramebuffer(framebuffer); 1741 } 1742 1743 /** 1744 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0077 1745 * @tc.name webgl_test_framebufferRenderbuffer 1746 * @tc.desc Test framebufferRenderbuffer. 1747 */ 1748 it('webgl_test_framebufferRenderbuffer', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1749 async function (done) { 1750 console.info("webgltest [webgl_test_framebufferRenderbuffer] framebufferRenderbuffer"); 1751 let framebuffer = gl.createFramebuffer(); 1752 console.info("webgltest framebuffer:", framebuffer); 1753 gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); 1754 expect(gl.isFramebuffer(framebuffer)).assertEqual(true); 1755 let renderbuffer = gl.createRenderbuffer(); 1756 console.info("webgltest renderbuffer:", renderbuffer); 1757 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 1758 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 1759 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer); 1760 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1761 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, 1762 gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,); 1763 console.info("webgltest getFramebufferAttachmentParameter:", object); 1764 expect(object).assertEqual(renderbuffer); 1765 gl.deleteRenderbuffer(renderbuffer); 1766 gl.deleteFramebuffer(framebuffer); 1767 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1768 done(); 1769 }) 1770 1771 1772 /** 1773 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0078 1774 * @tc.name webgl_test_framebufferRenderbuffer_1 1775 * @tc.desc Test framebufferRenderbuffer. 1776 */ 1777 it('webgl_test_framebufferRenderbuffer_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1778 async function (done) { 1779 console.info("webgltest [webgl_test_framebufferRenderbuffer_1] framebufferRenderbuffer"); 1780 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1781 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer); 1782 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1783 }, (object, framebuffer, renderbuffer) => { 1784 expect(object).assertEqual(renderbuffer); 1785 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1786 }); 1787 done(); 1788 }) 1789 1790 1791 /** 1792 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0079 1793 * @tc.name webgl_test_framebufferRenderbuffer_2 1794 * @tc.desc Test framebufferRenderbuffer. 1795 */ 1796 it('webgl_test_framebufferRenderbuffer_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1797 async function (done) { 1798 console.info("webgltest [webgl_test_framebufferRenderbuffer_2] framebufferRenderbuffer"); 1799 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1800 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, renderbuffer); 1801 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1802 }, (object, framebuffer, renderbuffer) => { 1803 expect(object).assertEqual(null); 1804 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1805 }); 1806 done(); 1807 }) 1808 1809 1810 /** 1811 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0080 1812 * @tc.name webgl_test_framebufferRenderbuffer_3 1813 * @tc.desc Test framebufferRenderbuffer. 1814 */ 1815 it('webgl_test_framebufferRenderbuffer_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1816 async function (done) { 1817 console.info("webgltest [webgl_test_framebufferRenderbuffer_3] framebufferRenderbuffer"); 1818 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1819 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.RENDERBUFFER, renderbuffer); 1820 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1821 }, (object, framebuffer, renderbuffer) => { 1822 expect(object).assertEqual(null); 1823 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1824 }); 1825 done(); 1826 }) 1827 1828 1829 /** 1830 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0081 1831 * @tc.name webgl_test_framebufferRenderbuffer_4 1832 * @tc.desc Test framebufferRenderbuffer. 1833 */ 1834 it('webgl_test_framebufferRenderbuffer_4', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1835 async function (done) { 1836 console.info("webgltest [webgl_test_framebufferRenderbuffer_4] framebufferRenderbuffer"); 1837 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1838 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, renderbuffer); 1839 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1840 }, (object, framebuffer, renderbuffer) => { 1841 expect(object).assertEqual(null); 1842 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1843 }); 1844 done(); 1845 }) 1846 1847 1848 /** 1849 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0082 1850 * @tc.name webgl_test_framebufferRenderbuffer_5 1851 * @tc.desc Test framebufferRenderbuffer. 1852 */ 1853 it('webgl_test_framebufferRenderbuffer_5', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1854 async function (done) { 1855 console.info("webgltest [webgl_test_framebufferRenderbuffer_5] framebufferRenderbuffer"); 1856 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1857 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, null); 1858 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1859 }, (object, framebuffer, renderbuffer) => { 1860 expect(object).assertEqual(null); 1861 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1862 }); 1863 done(); 1864 }) 1865 1866 1867 /** 1868 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0083 1869 * @tc.name webgl_test_framebufferRenderbuffer_6 1870 * @tc.desc Test framebufferRenderbuffer. 1871 */ 1872 it('webgl_test_framebufferRenderbuffer_6', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1873 async function (done) { 1874 console.info("webgltest [webgl_test_framebufferRenderbuffer_6] framebufferRenderbuffer"); 1875 framebufferRenderbuffer((framebuffer, renderbuffer) => { 1876 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, undefined); 1877 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1878 }, (object, framebuffer, renderbuffer) => { 1879 expect(object).assertEqual(null); 1880 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1881 }); 1882 done(); 1883 }) 1884 1885 /** 1886 * 获取帧缓冲区连接的相关信息。 1887 */ 1888 function getFramebufferAttachmentParameter(callback, finish) { 1889 let framebuffer = gl.createFramebuffer(); 1890 gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); 1891 let renderbuffer = gl.createRenderbuffer(); 1892 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 1893 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer); 1894 callback(framebuffer, renderbuffer); 1895 finish(framebuffer, renderbuffer); 1896 gl.deleteRenderbuffer(renderbuffer); 1897 gl.deleteFramebuffer(framebuffer); 1898 } 1899 1900 /** 1901 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0084 1902 * @tc.name webgl_test_getFramebufferAttachmentParameter 1903 * @tc.desc Test getFramebufferAttachmentParameter. 1904 */ 1905 it('webgl_test_getFramebufferAttachmentParameter', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1906 async function (done) { 1907 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter] getFramebufferAttachmentParameter"); 1908 let framebuffer = gl.createFramebuffer(); 1909 console.info("webgltest framebuffer:", framebuffer); 1910 gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer); 1911 expect(gl.isFramebuffer(framebuffer)).assertEqual(true); 1912 let renderbuffer = gl.createRenderbuffer(); 1913 console.info("webgltest renderbuffer:", renderbuffer); 1914 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer); 1915 expect(gl.isRenderbuffer(renderbuffer)).assertEqual(true); 1916 gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, renderbuffer); 1917 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, 1918 gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); 1919 console.info("webgltest gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); ", object); 1920 expect(object).assertEqual(renderbuffer); 1921 gl.deleteRenderbuffer(renderbuffer); 1922 gl.deleteFramebuffer(framebuffer); 1923 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1924 done(); 1925 }) 1926 1927 1928 /** 1929 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0085 1930 * @tc.name webgl_test_getFramebufferAttachmentParameter_1 1931 * @tc.desc Test getFramebufferAttachmentParameter. 1932 */ 1933 it('webgl_test_getFramebufferAttachmentParameter_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1934 async function (done) { 1935 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_1] getFramebufferAttachmentParameter"); 1936 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1937 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, 1938 gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); 1939 expect(object).assertEqual(renderbuffer); 1940 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1941 }, (framebuffer, renderbuffer) => { 1942 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1943 }); 1944 done(); 1945 }) 1946 1947 1948 /** 1949 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0086 1950 * @tc.name webgl_test_getFramebufferAttachmentParameter_2 1951 * @tc.desc Test getFramebufferAttachmentParameter. 1952 */ 1953 it('webgl_test_getFramebufferAttachmentParameter_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1954 async function (done) { 1955 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_2] getFramebufferAttachmentParameter"); 1956 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1957 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, 1958 gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE); 1959 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1960 }, (framebuffer, renderbuffer) => { 1961 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 1962 }); 1963 done(); 1964 }) 1965 1966 1967 /** 1968 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0087 1969 * @tc.name webgl_test_getFramebufferAttachmentParameter_3 1970 * @tc.desc Test getFramebufferAttachmentParameter. 1971 */ 1972 it('webgl_test_getFramebufferAttachmentParameter_3', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1973 async function (done) { 1974 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_3] getFramebufferAttachmentParameter"); 1975 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1976 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, 1977 gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL); 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 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0088 1988 * @tc.name webgl_test_getFramebufferAttachmentParameter_4 1989 * @tc.desc Test getFramebufferAttachmentParameter. 1990 */ 1991 it('webgl_test_getFramebufferAttachmentParameter_4', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 1992 async function (done) { 1993 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_4] getFramebufferAttachmentParameter"); 1994 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 1995 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, 1996 gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE); 1997 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 1998 }, (framebuffer, renderbuffer) => { 1999 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2000 }); 2001 done(); 2002 }) 2003 2004 2005 /** 2006 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0089 2007 * @tc.name webgl_test_getFramebufferAttachmentParameter_5 2008 * @tc.desc Test getFramebufferAttachmentParameter. 2009 */ 2010 it('webgl_test_getFramebufferAttachmentParameter_5', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 2011 async function (done) { 2012 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_5] getFramebufferAttachmentParameter"); 2013 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 2014 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, 2015 gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE); 2016 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 2017 }, (framebuffer, renderbuffer) => { 2018 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2019 }); 2020 done(); 2021 }) 2022 2023 2024 /** 2025 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0090 2026 * @tc.name webgl_test_getFramebufferAttachmentParameter_6 2027 * @tc.desc Test getFramebufferAttachmentParameter. 2028 */ 2029 it('webgl_test_getFramebufferAttachmentParameter_6', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 2030 async function (done) { 2031 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_6] getFramebufferAttachmentParameter"); 2032 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 2033 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, 2034 gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL); 2035 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 2036 }, (framebuffer, renderbuffer) => { 2037 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2038 }); 2039 done(); 2040 }) 2041 2042 2043 /** 2044 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0091 2045 * @tc.name webgl_test_getFramebufferAttachmentParameter_7 2046 * @tc.desc Test getFramebufferAttachmentParameter. 2047 */ 2048 it('webgl_test_getFramebufferAttachmentParameter_7', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, 2049 async function (done) { 2050 console.info("webgltest [webgl_test_getFramebufferAttachmentParameter_7] getFramebufferAttachmentParameter"); 2051 getFramebufferAttachmentParameter((framebuffer, renderbuffer) => { 2052 let object = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, 2053 gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE); 2054 expect(checkError(gl)).assertEqual(gl.INVALID_ENUM); 2055 }, (framebuffer, renderbuffer) => { 2056 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2057 }); 2058 done(); 2059 }) 2060 2061 /** 2062 * 更新缓冲区对象的数据储存集 2063 */ 2064 function bufferSubData(callback, finish) { 2065 let arr = new Float32Array([ 2066 0.0, 0.5, -0.5, 0.5, 1.0, 0.5, 2067 ]); 2068 let buffer = gl.createBuffer(); 2069 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 2070 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW); 2071 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 2072 expect(bufferSize == arr.length * arr.BYTES_PER_ELEMENT).assertTrue(); 2073 callback(arr); 2074 finish(); 2075 gl.deleteBuffer(buffer); 2076 } 2077 2078 /** 2079 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0092 2080 * @tc.name webgl_test_bufferSubData 2081 * @tc.desc Test bufferSubData. 2082 */ 2083 it('webgl_test_bufferSubData', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 2084 console.info("webgltest [webgl_test_bufferSubData] bufferSubData"); 2085 let arr = new Float32Array([ 2086 0.0, 0.5, -0.5, 0.5, 1.0, 0.5, 2087 ]); 2088 console.info("webgltest arr:", arr); 2089 console.info("webgltest arr.BYTES_PER_ELEMENT:", arr.BYTES_PER_ELEMENT); 2090 let buffer = gl.createBuffer(); 2091 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 2092 console.info("webgltest gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW);") 2093 gl.bufferData(gl.ARRAY_BUFFER, arr, gl.STATIC_DRAW); 2094 let bufferSize = gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE); 2095 console.info("webgltest bufferSize:", bufferSize); 2096 expect(bufferSize == arr.length * arr.BYTES_PER_ELEMENT).assertTrue(); 2097 console.info("webgltest gl.bufferSubData(gl.ARRAY_BUFFER, 0, arr);") 2098 gl.bufferSubData(gl.ARRAY_BUFFER, 0, arr); 2099 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2100 gl.deleteBuffer(buffer); 2101 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2102 done(); 2103 }) 2104 2105 2106 /** 2107 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0093 2108 * @tc.name webgl_test_bufferSubData_1 2109 * @tc.desc Test bufferSubData. 2110 */ 2111 it('webgl_test_bufferSubData_1', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 2112 console.info("webgltest [webgl_test_bufferSubData_1] bufferSubData"); 2113 bufferSubData((arr) => { 2114 gl.bufferSubData(gl.ARRAY_BUFFER, 0, arr); 2115 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2116 }, () => { 2117 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2118 }); 2119 done(); 2120 }) 2121 2122 2123 /** 2124 * @tc.number GRAPHIC_FUNCTION_JS_WEBGL_BUFFER_0094 2125 * @tc.name webgl_test_bufferSubData_2 2126 * @tc.desc Test bufferSubData. 2127 */ 2128 it('webgl_test_bufferSubData_2', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 2129 console.info("webgltest [webgl_test_bufferSubData_2] bufferSubData"); 2130 bufferSubData((arr) => { 2131 gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, arr); 2132 expect(checkError(gl)).assertEqual(gl.INVALID_OPERATION); 2133 }, () => { 2134 expect(checkError(gl)).assertEqual(gl.NO_ERROR); 2135 }); 2136 done(); 2137 }) 2138 }) 2139} 2140