• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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