• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-2024 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 
16 #include "napi/native_api.h"
17 #include "native_common.h"
18 
19 #include <ace/xcomponent/native_interface_xcomponent.h>
20 #include <EGL/egl.h>
21 #include <EGL/eglext.h>
22 #include <EGL/eglplatform.h>
23 #include <GLES3/gl32.h>
24 
25 #include <cmath>
26 #include <node_api.h>
27 
28 #define NUMERIC_VALUE
29 #ifdef NUMERIC_VALUE
30 
31 #define ARRAY_INDEX_ZERO 0
32 #define ARRAY_INDEX_ONE 1
33 #define ARRAY_INDEX_TWO 2
34 #define ARRAY_INDEX_THREE 3
35 #define ARRAY_INDEX_FORE 4
36 #define INT_INIT_VAL 0
37 #define CREAT_ERROR 0
38 #define CREAT_NUM_ONE 1
39 #define PIPELINES_NUM_ONE 1
40 #define INFO_LEN_ONE 1
41 #define TEXTURES_NUM_ONE 1
42 #define IMAGE2D_LEVEL 0
43 #define IMAGE_WIDTH 256
44 #define IMAGE_HEIGHT 256
45 #define IMAGE_DEPTH 256
46 #define IMAGE_BORDER 0
47 #define GL_BUF_SIZE 256
48 #define GEN_BUF_NUM 1
49 #define COUNT_NUM 1
50 #define ATTRIB_INDEX 0
51 #define VERTEX_NUM 3
52 #define RGB_SIZE 8
53 #define INIT_WIDTH 480
54 #define INIT_HEIGHT 800
55 #define INIT_EGL_VERSION 3
56 #define VARYING_NUM 2
57 #define ATTRIB_SIZE 3
58 #define FRAME_BUFFER_OBJECT 2
59 #define CLEAR_00 0.0f
60 #define CLEAR_01 0.1f
61 #define CLEAR_10 1.0f
62 #define CLEAR_50 5.0f
63 #define SUB_DATA_SIZE 32
64 #define COMPUTE_VAL 10
65 #define POINT_LIGHT_COUNT 4
66 #define MATRIX_2 2
67 #define MATRIX_3 3
68 #define MATRIX_4 4
69 #define MATRIX_6 6
70 #define MATRIX_8 8
71 #define MATRIX_9 9
72 #define MATRIX_12 12
73 #define MATRIX_15 15
74 #define MATRIX_16 16
75 #define IMAGE2D_LEVEL_ONE 1
76 #define TIME_OUT 1000000000
77 #define SAMPLES 4
78 #define OFF_SET 32
79 #define TEX_BUF_SIZE 1024
80 
81 #undef LOG_TAG
82 #undef LOG_DOMAIN
83 #define LOG_TAG "gl32"
84 #define LOG_DOMAIN 0xFEFE
85 #define GL_MAX_TEST_NUM 0xFFFF
86 #define GL_CLIENT_VERSION 0x02
87 #define GL_MAJOR_VERSION_2 0x02
88 #define GL_MAJOR_VERSION_3 0x03
89 #define GL_MINOR_VERSION_0 0x00
90 #endif
91 
92 #define STATE_VALUE
93 #ifdef STATE_VALUE
94 
95 #define SUCCESS 0
96 #define FAILED -1
97 #endif
98 
99 typedef struct _EGLWindow {
100     EGLDisplay eglDisPlay;
101     EGLSurface eglLSurface;
102     EGLContext eglContext;
103 } EGLWindow;
104 
initGLES(EGLWindow * eglWindow)105 static void initGLES(EGLWindow *eglWindow)
106 {
107     if (eglWindow == nullptr) {
108         return;
109     }
110     eglWindow->eglDisPlay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
111     if (eglWindow->eglDisPlay == EGL_NO_DISPLAY) {
112         return;
113     }
114     EGLint majorVersion = GL_MAJOR_VERSION_2;
115     EGLint minorVersion = GL_MINOR_VERSION_0;
116     EGLBoolean ret = eglInitialize(eglWindow->eglDisPlay, &majorVersion, &minorVersion);
117     if (ret == EGL_FALSE) {
118         return;
119     }
120     EGLint clientVersion = majorVersion == GL_MAJOR_VERSION_3 ? EGL_OPENGL_ES3_BIT : EGL_OPENGL_ES2_BIT;
121     const EGLint configAttribs[] = {
122         EGL_RED_SIZE,   RGB_SIZE, EGL_GREEN_SIZE,      RGB_SIZE,      EGL_BLUE_SIZE,    RGB_SIZE,
123         EGL_ALPHA_SIZE, RGB_SIZE, EGL_RENDERABLE_TYPE, clientVersion, EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
124         EGL_NONE};
125     EGLConfig config = nullptr;
126     EGLint numConfigs = 0x00;
127     ret = eglChooseConfig(eglWindow->eglDisPlay, configAttribs, &config, GL_ONE, &numConfigs);
128     if (ret == EGL_FALSE) {
129         return;
130     }
131     const EGLint surfaceAttribs[] = {EGL_WIDTH,          INIT_WIDTH,         EGL_HEIGHT,
132                                      INIT_HEIGHT,        EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGBA,
133                                      EGL_TEXTURE_TARGET, EGL_TEXTURE_2D,     EGL_NONE};
134     eglWindow->eglLSurface = eglCreatePbufferSurface(eglWindow->eglDisPlay, config, surfaceAttribs);
135     if (eglWindow->eglLSurface == EGL_NO_SURFACE) {
136         return;
137     }
138     const EGLint contextAttribs[] = {EGL_CONTEXT_CLIENT_VERSION, GL_CLIENT_VERSION, EGL_NONE};
139     eglWindow->eglContext = eglCreateContext(eglWindow->eglDisPlay, config, EGL_NO_CONTEXT, contextAttribs);
140     if (eglWindow->eglContext == EGL_NO_CONTEXT) {
141         return;
142     }
143     eglMakeCurrent(eglWindow->eglDisPlay, eglWindow->eglLSurface, eglWindow->eglLSurface,
144                    eglWindow->eglContext);
145     return;
146 }
147 
destroyGLES(EGLWindow * eglWindow)148 static void destroyGLES(EGLWindow *eglWindow)
149 {
150     if (eglWindow == nullptr) {
151         return;
152     }
153     if (eglWindow->eglDisPlay != EGL_NO_DISPLAY && eglWindow->eglLSurface != EGL_NO_SURFACE) {
154         eglDestroySurface(eglWindow->eglDisPlay, eglWindow->eglLSurface);
155     }
156     if (eglWindow->eglDisPlay != EGL_NO_DISPLAY && eglWindow->eglContext != EGL_NO_CONTEXT) {
157         eglDestroyContext(eglWindow->eglDisPlay, eglWindow->eglContext);
158     }
159     if (eglWindow->eglDisPlay != EGL_NO_DISPLAY) {
160         eglTerminate(eglWindow->eglDisPlay);
161     }
162     eglSwapBuffers(eglWindow->eglDisPlay, eglWindow->eglLSurface);
163     eglWindow->eglDisPlay = EGL_NO_DISPLAY;
164     eglWindow->eglLSurface = EGL_NO_SURFACE;
165     eglWindow->eglContext = EGL_NO_CONTEXT;
166     return;
167 }
168 
169 static const char *vertexSource = "attribute vec4 position;\n"
170                                   "uniform mat4 mvpMatrix;\n"
171                                   "void main() {\n"
172                                   "  gl_Position = mvpMatrix * position;\n"
173                                   "}\n";
174 
175 static const char *fragmentSource = "precision mediump float;\n"
176                                     "uniform float color;\n"
177                                     "void main() {\n"
178                                     "  gl_FragColor = vec4(color, 0.0, 0.0, 1.0);\n;\n"
179                                     "}\n";
180 
181 static const char *vertexShaderSource = "    #version 300 es                          \n\
182                                       		layout(location = 0) in vec4 vPosition;  \n\
183                                       		layout (std140) uniform MatrixBlock { \n\
184                                                 mat4 viewMatrix;  \n\
185                                                 mat4 projMatrix; \n\
186                                             } matrices;                             \n\
187                                                                        \n\
188                                       		void main()                              \n\
189                                       		{                                        \n\
190                                       		   gl_Position = vPosition;              \n\
191                                       		}        ";
192 static const char *fragmentShaderSource = "     #version 300 es                              \n\
193                                           		precision mediump float;                     \n\
194                                           		out vec4 fragColor;                          \n\
195                                           		void main()                                  \n\
196                                           		{                                            \n\
197                                           		   fragColor = vec4 ( 1.0, 0.0, 0.0, 1.0 );  \n\
198                                           		}";
199 
200 static const char *fragmentShaderSourceCompute = "#version 310 es\n\
201                                                 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n\
202                                                 layout(std430, binding = 0) buffer OutputBuffer {\n\
203                                                     float data[];\n\
204                                                 } outputBuffer;\n\
205                                                 void main() {\n\
206                                                     uint index = gl_GlobalInvocationID.x;\n\
207                                                     outputBuffer.data[index] = float(index);\n\
208                                                 }";
209 static const char *fragmentShaderSourceComputeIndirect = "#version 310 es\n\
210                                                         layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n\
211                                                         layout(std430, binding = 0) buffer OutputBuffer {\n\
212                                                             float data[];\n\
213                                                         } outputBuffer;\n\
214                                                         void main() {\n\
215                                                             uint index = gl_GlobalInvocationID.x;\n\
216                                                             outputBuffer.data[index] = float(index);\n\
217                                                         }";
218 static EGLDisplay display = nullptr;
219 static EGLContext context = nullptr;
220 static EGLSurface surface = nullptr;
221 
222 GLuint esLoadShader(GLenum type, const char *shaderSrc);
223 static napi_value getError(const napi_env env, const GLenum glError);
224 void initGLES();
225 void destroyGLES();
226 
initGLES()227 void initGLES()
228 {
229     display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
230     eglInitialize(display, nullptr, nullptr);
231     EGLint numConfigs = INT_INIT_VAL;
232     const EGLint configAttribs[] = {EGL_RED_SIZE,  RGB_SIZE, EGL_GREEN_SIZE,      RGB_SIZE,
233                                     EGL_BLUE_SIZE, RGB_SIZE, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES3_BIT,
234                                     EGL_NONE};
235     EGLConfig config = nullptr;
236     eglChooseConfig(display, configAttribs, &config, CREAT_NUM_ONE, &numConfigs);
237     const EGLint surfaceAttribs[] = {EGL_WIDTH, INIT_WIDTH, EGL_HEIGHT, INIT_HEIGHT, EGL_NONE};
238     surface = eglCreatePbufferSurface(display, config, surfaceAttribs);
239     const EGLint contextAttribs[] = {EGL_CONTEXT_CLIENT_VERSION, INIT_EGL_VERSION, EGL_NONE};
240     context = eglCreateContext(display, config, EGL_NO_CONTEXT, contextAttribs);
241     eglMakeCurrent(display, surface, surface, context);
242 }
destroyGLES()243 void destroyGLES()
244 {
245     eglDestroySurface(display, surface);
246     eglDestroyContext(display, context);
247     eglTerminate(display);
248     eglSwapBuffers(display, surface);
249 }
250 
getError(const napi_env env,const GLenum glError)251 static napi_value getError(const napi_env env, const GLenum glError)
252 {
253     napi_value result = nullptr;
254     if (GL_NO_ERROR == glError) {
255         napi_create_int32(env, SUCCESS, &result);
256     } else {
257         napi_create_int32(env, FAILED, &result);
258     }
259     return result;
260 }
261 
esLoadShader(GLenum type,const char * shaderSrc)262 GLuint esLoadShader(GLenum type, const char *shaderSrc)
263 {
264     GLuint shader = INT_INIT_VAL;
265     shader = glCreateShader(type);
266     if (CREAT_ERROR == shader) {
267         return CREAT_ERROR;
268     }
269     glShaderSource(shader, CREAT_NUM_ONE, &shaderSrc, nullptr);
270     glCompileShader(shader);
271     return shader;
272 }
273 
274 static GLuint shaderVertex = INT_INIT_VAL;
275 static GLuint shaderFragment = INT_INIT_VAL;
initProgram(void)276 static GLuint initProgram(void)
277 {
278     shaderVertex = esLoadShader(GL_VERTEX_SHADER, vertexShaderSource);
279     shaderFragment = esLoadShader(GL_FRAGMENT_SHADER, fragmentShaderSource);
280     GLuint programObject = glCreateProgram();
281     glAttachShader(programObject, shaderVertex);
282     glAttachShader(programObject, shaderFragment);
283     glLinkProgram(programObject);
284     return programObject;
285 }
286 
initProgram(const char * vertexSource,const char * fragmentSource)287 static GLuint initProgram(const char *vertexSource, const char *fragmentSource)
288 {
289     shaderVertex = esLoadShader(GL_VERTEX_SHADER, vertexSource);
290     shaderFragment = esLoadShader(GL_FRAGMENT_SHADER, fragmentSource);
291     GLuint programObject = glCreateProgram();
292     glAttachShader(programObject, shaderVertex);
293     glAttachShader(programObject, shaderFragment);
294     glLinkProgram(programObject);
295     return programObject;
296 }
297 
deleteProgram(void)298 static void deleteProgram(void)
299 {
300     glDeleteShader(shaderVertex);
301     glDeleteShader(shaderFragment);
302 }
303 
GLSamplerParameterfv(napi_env env,napi_callback_info info)304 static napi_value GLSamplerParameterfv(napi_env env, napi_callback_info info)
305 {
306     initGLES();
307     GLfloat params[ARRAY_INDEX_TWO] = {INT_INIT_VAL};
308     GLuint sampler = INT_INIT_VAL;
309     glGenSamplers(CREAT_NUM_ONE, &sampler);
310     params[ARRAY_INDEX_ZERO] = GL_NEAREST;
311     params[ARRAY_INDEX_ONE] = GL_LINEAR;
312     glSamplerParameterfv(sampler, GL_TEXTURE_MIN_FILTER, params);
313     GLenum glError = glGetError();
314     glDeleteSamplers(CREAT_NUM_ONE, &sampler);
315     destroyGLES();
316     return getError(env, glError);
317 }
318 
GLSamplerParameteri(napi_env env,napi_callback_info info)319 static napi_value GLSamplerParameteri(napi_env env, napi_callback_info info)
320 {
321     initGLES();
322     GLuint sampler = INT_INIT_VAL;
323     glGenSamplers(CREAT_NUM_ONE, &sampler);
324     glSamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
325     GLenum glError = glGetError();
326     glDeleteSamplers(CREAT_NUM_ONE, &sampler);
327     destroyGLES();
328     return getError(env, glError);
329 }
330 
GLSamplerParameterIiv(napi_env env,napi_callback_info info)331 static napi_value GLSamplerParameterIiv(napi_env env, napi_callback_info info)
332 {
333     initGLES();
334     GLint params[ARRAY_INDEX_TWO] = {INT_INIT_VAL};
335     GLuint sampler = INT_INIT_VAL;
336     glGenSamplers(CREAT_NUM_ONE, &sampler);
337     params[ARRAY_INDEX_ZERO] = GL_NEAREST;
338     params[ARRAY_INDEX_ONE] = GL_LINEAR;
339     glSamplerParameterIiv(sampler, GL_TEXTURE_MAG_FILTER, params);
340     GLenum glError = glGetError();
341     glDeleteSamplers(CREAT_NUM_ONE, &sampler);
342     destroyGLES();
343     return getError(env, glError);
344 }
345 
GLSamplerParameterIuiv(napi_env env,napi_callback_info info)346 static napi_value GLSamplerParameterIuiv(napi_env env, napi_callback_info info)
347 {
348     initGLES();
349     GLuint params[ARRAY_INDEX_TWO] = {INT_INIT_VAL};
350     GLuint sampler = INT_INIT_VAL;
351     glGenSamplers(CREAT_NUM_ONE, &sampler);
352     params[ARRAY_INDEX_ZERO] = GL_NEAREST;
353     params[ARRAY_INDEX_ONE] = GL_LINEAR;
354     glSamplerParameterIuiv(sampler, GL_TEXTURE_MAG_FILTER, params);
355     GLenum glError = glGetError();
356     glDeleteSamplers(CREAT_NUM_ONE, &sampler);
357     destroyGLES();
358     return getError(env, glError);
359 }
360 
GLSamplerParameteriv(napi_env env,napi_callback_info info)361 static napi_value GLSamplerParameteriv(napi_env env, napi_callback_info info)
362 {
363     initGLES();
364     GLint params[ARRAY_INDEX_TWO] = {INT_INIT_VAL};
365     GLuint sampler = INT_INIT_VAL;
366     glGenSamplers(CREAT_NUM_ONE, &sampler);
367     params[ARRAY_INDEX_ZERO] = GL_NEAREST;
368     params[ARRAY_INDEX_ONE] = GL_LINEAR;
369     glSamplerParameteriv(sampler, GL_TEXTURE_MAG_FILTER, params);
370     GLenum glError = glGetError();
371     glDeleteSamplers(CREAT_NUM_ONE, &sampler);
372     destroyGLES();
373     return getError(env, glError);
374 }
375 
GLScissor(napi_env env,napi_callback_info info)376 static napi_value GLScissor(napi_env env, napi_callback_info info)
377 {
378     initGLES();
379     glEnable(GL_SCISSOR_TEST);
380     glScissor(IMAGE_WIDTH, IMAGE_HEIGHT, INIT_WIDTH, INIT_HEIGHT);
381     GLenum glError = glGetError();
382     glDisable(GL_SCISSOR_TEST);
383     destroyGLES();
384     return getError(env, glError);
385 }
386 
GLShaderBinary(napi_env env,napi_callback_info info)387 static napi_value GLShaderBinary(napi_env env, napi_callback_info info)
388 {
389     initGLES();
390     GLubyte binary[TEX_BUF_SIZE] = {INT_INIT_VAL};
391     GLuint shader = glCreateShader(GL_FRAGMENT_SHADER);
392     glShaderBinary(CREAT_NUM_ONE, &shader, INT_INIT_VAL, binary, INT_INIT_VAL);
393     GLenum glError = glGetError();
394     glDeleteShader(shader);
395     destroyGLES();
396     return getError(env, glError);
397 }
398 
GLShaderSource(napi_env env,napi_callback_info info)399 static napi_value GLShaderSource(napi_env env, napi_callback_info info)
400 {
401     initGLES();
402     GLuint shader = glCreateShader(GL_VERTEX_SHADER);
403     glShaderSource(shader, CREAT_NUM_ONE, &vertexShaderSource, nullptr);
404     GLenum glError = glGetError();
405     glDeleteShader(shader);
406     destroyGLES();
407     return getError(env, glError);
408 }
409 
GLStencilFunc(napi_env env,napi_callback_info info)410 static napi_value GLStencilFunc(napi_env env, napi_callback_info info)
411 {
412     initGLES();
413     glEnable(GL_STENCIL_TEST);
414     glStencilFunc(GL_ALWAYS, CREAT_NUM_ONE, GL_INVALID_INDEX);
415     GLenum glError = glGetError();
416     destroyGLES();
417     return getError(env, glError);
418 }
419 
GLStencilFuncSeparate(napi_env env,napi_callback_info info)420 static napi_value GLStencilFuncSeparate(napi_env env, napi_callback_info info)
421 {
422     initGLES();
423     glEnable(GL_STENCIL_TEST);
424     glStencilFuncSeparate(GL_FRONT, GL_EQUAL, CREAT_NUM_ONE, GL_INVALID_INDEX);
425     GLenum glError = glGetError();
426     destroyGLES();
427     return getError(env, glError);
428 }
429 
GLStencilMask(napi_env env,napi_callback_info info)430 static napi_value GLStencilMask(napi_env env, napi_callback_info info)
431 {
432     initGLES();
433     glEnable(GL_STENCIL_TEST);
434     glStencilMask(CREAT_NUM_ONE);
435     GLenum glError = glGetError();
436     destroyGLES();
437     return getError(env, glError);
438 }
439 
GLStencilMaskSeparate(napi_env env,napi_callback_info info)440 static napi_value GLStencilMaskSeparate(napi_env env, napi_callback_info info)
441 {
442     initGLES();
443     glEnable(GL_STENCIL_TEST);
444     glStencilMaskSeparate(GL_FRONT_AND_BACK, CREAT_NUM_ONE);
445     GLenum glError = glGetError();
446     destroyGLES();
447     return getError(env, glError);
448 }
449 
GLStencilOp(napi_env env,napi_callback_info info)450 static napi_value GLStencilOp(napi_env env, napi_callback_info info)
451 {
452     initGLES();
453     glEnable(GL_STENCIL_TEST);
454     glStencilOp(GL_KEEP, GL_ZERO, GL_REPLACE);
455     GLenum glError = glGetError();
456     destroyGLES();
457     return getError(env, glError);
458 }
459 
GLStencilOpSeparate(napi_env env,napi_callback_info info)460 static napi_value GLStencilOpSeparate(napi_env env, napi_callback_info info)
461 {
462     initGLES();
463     glEnable(GL_STENCIL_TEST);
464     glStencilOpSeparate(GL_FRONT_AND_BACK, GL_KEEP, GL_ZERO, GL_REPLACE);
465     GLenum glError = glGetError();
466     destroyGLES();
467     return getError(env, glError);
468 }
469 
GLTexBuffer(napi_env env,napi_callback_info info)470 static napi_value GLTexBuffer(napi_env env, napi_callback_info info)
471 {
472     initGLES();
473     GLuint texture = INT_INIT_VAL;
474     GLuint buffer = INT_INIT_VAL;
475     glGenBuffers(CREAT_NUM_ONE, &buffer);
476     glBindBuffer(GL_TEXTURE_BUFFER, buffer);
477     glBufferData(GL_TEXTURE_BUFFER, GL_BUF_SIZE, nullptr, GL_DYNAMIC_DRAW);
478     glGenTextures(CREAT_NUM_ONE, &texture);
479     glBindTexture(GL_TEXTURE_BUFFER, texture);
480     glTexBuffer(GL_TEXTURE_BUFFER, GL_R32F, buffer);
481     GLenum glError = glGetError();
482     glDeleteBuffers(CREAT_NUM_ONE, &buffer);
483     glDeleteTextures(CREAT_NUM_ONE, &texture);
484     destroyGLES();
485     return getError(env, glError);
486 }
487 
GLTexBufferRange(napi_env env,napi_callback_info info)488 static napi_value GLTexBufferRange(napi_env env, napi_callback_info info)
489 {
490     initGLES();
491     GLuint texture = INT_INIT_VAL;
492     GLuint buffer = INT_INIT_VAL;
493     glGenBuffers(CREAT_NUM_ONE, &buffer);
494     glBindBuffer(GL_TEXTURE_BUFFER, buffer);
495     glBufferData(GL_TEXTURE_BUFFER, GL_BUF_SIZE, nullptr, GL_DYNAMIC_DRAW);
496     glGenTextures(CREAT_NUM_ONE, &texture);
497     glBindTexture(GL_TEXTURE_BUFFER, texture);
498     glTexBufferRange(GL_TEXTURE_BUFFER, GL_R32F, buffer, INT_INIT_VAL, CREAT_NUM_ONE);
499     GLenum glError = glGetError();
500     glDeleteBuffers(CREAT_NUM_ONE, &buffer);
501     glDeleteTextures(CREAT_NUM_ONE, &texture);
502     destroyGLES();
503     return getError(env, glError);
504 }
505 
GLTexImage2D(napi_env env,napi_callback_info info)506 static napi_value GLTexImage2D(napi_env env, napi_callback_info info)
507 {
508     initGLES();
509     unsigned char pixels[] = {255, 255, 255, 0, 0, 0, 255, 255, 255, 0, 0, 0};
510     GLuint texture = INT_INIT_VAL;
511     glGenTextures(CREAT_NUM_ONE, &texture);
512     glBindTexture(GL_TEXTURE_2D, texture);
513     glTexImage2D(GL_TEXTURE_2D, INT_INIT_VAL, GL_RGB, VARYING_NUM, VARYING_NUM, INT_INIT_VAL, GL_RGB, GL_UNSIGNED_BYTE,
514                  pixels);
515     GLenum glError = glGetError();
516     glDeleteTextures(CREAT_NUM_ONE, &texture);
517     destroyGLES();
518     return getError(env, glError);
519 }
520 
GLTexImage3D(napi_env env,napi_callback_info info)521 static napi_value GLTexImage3D(napi_env env, napi_callback_info info)
522 {
523     initGLES();
524     GLuint texture = INT_INIT_VAL;
525     glGenTextures(CREAT_NUM_ONE, &texture);
526     glBindTexture(GL_TEXTURE_3D, texture);
527     glTexImage3D(GL_TEXTURE_3D, INT_INIT_VAL, GL_RGB, IMAGE_WIDTH, IMAGE_HEIGHT, IMAGE_DEPTH, INT_INIT_VAL, GL_RGB,
528                  GL_UNSIGNED_BYTE, nullptr);
529     GLenum glError = glGetError();
530     glDeleteTextures(CREAT_NUM_ONE, &texture);
531     destroyGLES();
532     return getError(env, glError);
533 }
534 
GLTexParameterf(napi_env env,napi_callback_info info)535 static napi_value GLTexParameterf(napi_env env, napi_callback_info info)
536 {
537     initGLES();
538     GLuint texture = INT_INIT_VAL;
539     glGenTextures(CREAT_NUM_ONE, &texture);
540     glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, CLEAR_10);
541     GLenum glError = glGetError();
542     glDeleteTextures(CREAT_NUM_ONE, &texture);
543     destroyGLES();
544     return getError(env, glError);
545 }
546 
GLTexParameterfv(napi_env env,napi_callback_info info)547 static napi_value GLTexParameterfv(napi_env env, napi_callback_info info)
548 {
549     initGLES();
550     GLuint texture = INT_INIT_VAL;
551     GLfloat color[] = {CLEAR_10, CLEAR_10, CLEAR_10, CLEAR_10};
552     glGenTextures(CREAT_NUM_ONE, &texture);
553     glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, color);
554     GLenum glError = glGetError();
555     glDeleteTextures(CREAT_NUM_ONE, &texture);
556     destroyGLES();
557     return getError(env, glError);
558 }
559 
GLTexParameteri(napi_env env,napi_callback_info info)560 static napi_value GLTexParameteri(napi_env env, napi_callback_info info)
561 {
562     initGLES();
563     GLuint texture = INT_INIT_VAL;
564     glGenTextures(CREAT_NUM_ONE, &texture);
565     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, CREAT_NUM_ONE);
566     GLenum glError = glGetError();
567     glDeleteTextures(CREAT_NUM_ONE, &texture);
568     destroyGLES();
569     return getError(env, glError);
570 }
571 
GLTexParameterIiv(napi_env env,napi_callback_info info)572 static napi_value GLTexParameterIiv(napi_env env, napi_callback_info info)
573 {
574     initGLES();
575     GLuint texture = INT_INIT_VAL;
576     GLint color[] = {CREAT_NUM_ONE, CREAT_NUM_ONE, CREAT_NUM_ONE, CREAT_NUM_ONE};
577     glGenTextures(CREAT_NUM_ONE, &texture);
578     glTexParameterIiv(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, color);
579     GLenum glError = glGetError();
580     glDeleteTextures(CREAT_NUM_ONE, &texture);
581     destroyGLES();
582     return getError(env, glError);
583 }
584 
GLTexParameterIuiv(napi_env env,napi_callback_info info)585 static napi_value GLTexParameterIuiv(napi_env env, napi_callback_info info)
586 {
587     initGLES();
588     GLuint texture = INT_INIT_VAL;
589     GLuint color[] = {CREAT_NUM_ONE, CREAT_NUM_ONE, CREAT_NUM_ONE, CREAT_NUM_ONE};
590     glGenTextures(CREAT_NUM_ONE, &texture);
591     glTexParameterIuiv(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, color);
592     GLenum glError = glGetError();
593     glDeleteTextures(CREAT_NUM_ONE, &texture);
594     destroyGLES();
595     return getError(env, glError);
596 }
597 
GLTexParameteriv(napi_env env,napi_callback_info info)598 static napi_value GLTexParameteriv(napi_env env, napi_callback_info info)
599 {
600     initGLES();
601     GLuint texture = INT_INIT_VAL;
602     GLint color[] = {CREAT_NUM_ONE, CREAT_NUM_ONE, CREAT_NUM_ONE, CREAT_NUM_ONE};
603     glGenTextures(CREAT_NUM_ONE, &texture);
604     glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, color);
605     GLenum glError = glGetError();
606     glDeleteTextures(CREAT_NUM_ONE, &texture);
607     destroyGLES();
608     return getError(env, glError);
609 }
610 
GLTexStorage2D(napi_env env,napi_callback_info info)611 static napi_value GLTexStorage2D(napi_env env, napi_callback_info info)
612 {
613     initGLES();
614     GLuint texture;
615     glGenTextures(CREAT_NUM_ONE, &texture);
616     glBindTexture(GL_TEXTURE_2D, texture);
617     glTexStorage2D(GL_TEXTURE_2D, CREAT_NUM_ONE, GL_RGBA8, IMAGE_WIDTH, IMAGE_HEIGHT);
618     GLenum glError = glGetError();
619     glDeleteTextures(CREAT_NUM_ONE, &texture);
620     destroyGLES();
621     return getError(env, glError);
622 }
623 
GLTexStorage2DMultisample(napi_env env,napi_callback_info info)624 static napi_value GLTexStorage2DMultisample(napi_env env, napi_callback_info info)
625 {
626     initGLES();
627     GLuint texture = INT_INIT_VAL;
628     glGenTextures(CREAT_NUM_ONE, &texture);
629     glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, texture);
630     glTexStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, SAMPLES, GL_RGB8, IMAGE_WIDTH, IMAGE_HEIGHT, INT_INIT_VAL);
631     GLenum glError = glGetError();
632     glDeleteTextures(CREAT_NUM_ONE, &texture);
633     destroyGLES();
634     return getError(env, glError);
635 }
636 
GLTexStorage3D(napi_env env,napi_callback_info info)637 static napi_value GLTexStorage3D(napi_env env, napi_callback_info info)
638 {
639     initGLES();
640     GLuint texture = INT_INIT_VAL;
641     glGenTextures(CREAT_NUM_ONE, &texture);
642     glBindTexture(GL_TEXTURE_2D_ARRAY, texture);
643     glTexStorage3D(GL_TEXTURE_2D_ARRAY, IMAGE2D_LEVEL_ONE, GL_RGBA8, INIT_WIDTH, INIT_HEIGHT, VARYING_NUM);
644     GLenum glError = glGetError();
645     glDeleteTextures(CREAT_NUM_ONE, &texture);
646     destroyGLES();
647     return getError(env, glError);
648 }
649 
GLTexStorage3DMultisample(napi_env env,napi_callback_info info)650 static napi_value GLTexStorage3DMultisample(napi_env env, napi_callback_info info)
651 {
652     initGLES();
653     GLuint texture = INT_INIT_VAL;
654     glGenTextures(CREAT_NUM_ONE, &texture);
655     glBindTexture(GL_TEXTURE_2D_MULTISAMPLE_ARRAY, texture);
656     glTexStorage3DMultisample(GL_TEXTURE_2D_MULTISAMPLE_ARRAY, CREAT_NUM_ONE, GL_RGBA8, SUB_DATA_SIZE, SUB_DATA_SIZE,
657                               SUB_DATA_SIZE, GL_FALSE);
658     GLenum glError = glGetError();
659     glDeleteTextures(CREAT_NUM_ONE, &texture);
660     destroyGLES();
661     return getError(env, glError);
662 }
663 
GLTexSubImage2D(napi_env env,napi_callback_info info)664 static napi_value GLTexSubImage2D(napi_env env, napi_callback_info info)
665 {
666     initGLES();
667     GLuint texture = INT_INIT_VAL;
668     glGenTextures(CREAT_NUM_ONE, &texture);
669     glBindTexture(GL_TEXTURE_2D, texture);
670     glTexImage2D(GL_TEXTURE_2D, INT_INIT_VAL, GL_RGB, VARYING_NUM, VARYING_NUM, INT_INIT_VAL, GL_RGB, GL_UNSIGNED_BYTE,
671                  nullptr);
672     glTexSubImage2D(GL_TEXTURE_2D, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL, VARYING_NUM, VARYING_NUM, GL_RGB,
673                     GL_UNSIGNED_BYTE, nullptr);
674     GLenum glError = glGetError();
675     glDeleteTextures(CREAT_NUM_ONE, &texture);
676     destroyGLES();
677     return getError(env, glError);
678 }
679 
GLTexSubImage3D(napi_env env,napi_callback_info info)680 static napi_value GLTexSubImage3D(napi_env env, napi_callback_info info)
681 {
682     initGLES();
683     GLuint texture = INT_INIT_VAL;
684     glGenTextures(CREAT_NUM_ONE, &texture);
685     glBindTexture(GL_TEXTURE_2D_ARRAY, texture);
686     glTexImage3D(GL_TEXTURE_2D_ARRAY, INT_INIT_VAL, GL_RGB, IMAGE_WIDTH, IMAGE_HEIGHT, IMAGE_DEPTH, INT_INIT_VAL,
687                  GL_RGB, GL_UNSIGNED_BYTE, nullptr);
688     glTexSubImage3D(GL_TEXTURE_2D_ARRAY, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL, IMAGE_WIDTH,
689                     IMAGE_HEIGHT, IMAGE_DEPTH, GL_RGB, GL_UNSIGNED_BYTE, nullptr);
690     GLenum glError = glGetError();
691     glDeleteTextures(CREAT_NUM_ONE, &texture);
692     destroyGLES();
693     return getError(env, glError);
694 }
695 
GLTransformFeedbackVaryings(napi_env env,napi_callback_info info)696 static napi_value GLTransformFeedbackVaryings(napi_env env, napi_callback_info info)
697 {
698     initGLES();
699     GLuint programObject = initProgram();
700     GLuint feedbackObjId = INT_INIT_VAL;
701     glGenTransformFeedbacks(CREAT_NUM_ONE, &feedbackObjId);
702     glBindTransformFeedback(GL_TRANSFORM_FEEDBACK, feedbackObjId);
703     const char *varyingNames[] = {"outValue"};
704     glTransformFeedbackVaryings(programObject, CREAT_NUM_ONE, varyingNames, GL_SEPARATE_ATTRIBS);
705     GLenum glError = glGetError();
706     deleteProgram();
707     glDeleteProgram(programObject);
708     glDeleteTransformFeedbacks(CREAT_NUM_ONE, &feedbackObjId);
709     destroyGLES();
710     return getError(env, glError);
711 }
712 
GLUniform1f(napi_env env,napi_callback_info info)713 static napi_value GLUniform1f(napi_env env, napi_callback_info info)
714 {
715     initGLES();
716     GLuint programObject = initProgram();
717     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
718     glUseProgram(programObject);
719     glUniform1f(uniformLocation, CLEAR_10);
720     GLenum glError = glGetError();
721     deleteProgram();
722     glDeleteProgram(programObject);
723     destroyGLES();
724     return getError(env, glError);
725 }
726 
GLUniform1fv(napi_env env,napi_callback_info info)727 static napi_value GLUniform1fv(napi_env env, napi_callback_info info)
728 {
729     initGLES();
730     GLuint programObject = initProgram();
731     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
732     glUseProgram(programObject);
733     GLfloat brightness[POINT_LIGHT_COUNT] = {0.8f, 0.2f, 0.6f, 0.4f};
734     glUniform1fv(uniformLocation, POINT_LIGHT_COUNT, brightness);
735     GLenum glError = glGetError();
736     deleteProgram();
737     glDeleteProgram(programObject);
738     destroyGLES();
739     return getError(env, glError);
740 }
741 
GLUniform1i(napi_env env,napi_callback_info info)742 static napi_value GLUniform1i(napi_env env, napi_callback_info info)
743 {
744     initGLES();
745     GLuint programObject = initProgram();
746     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
747     glUseProgram(programObject);
748     glUniform1i(uniformLocation, INT_INIT_VAL);
749     GLenum glError = glGetError();
750     deleteProgram();
751     glDeleteProgram(programObject);
752     destroyGLES();
753     return getError(env, glError);
754 }
755 
GLUniform1iv(napi_env env,napi_callback_info info)756 static napi_value GLUniform1iv(napi_env env, napi_callback_info info)
757 {
758     initGLES();
759     GLuint programObject = initProgram();
760     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
761     glUseProgram(programObject);
762     GLint brightness[POINT_LIGHT_COUNT] = {0, 0, 0, 0};
763     glUniform1iv(uniformLocation, POINT_LIGHT_COUNT, brightness);
764     GLenum glError = glGetError();
765     deleteProgram();
766     glDeleteProgram(programObject);
767     destroyGLES();
768     return getError(env, glError);
769 }
770 
GLUniform1ui(napi_env env,napi_callback_info info)771 static napi_value GLUniform1ui(napi_env env, napi_callback_info info)
772 {
773     initGLES();
774     GLuint programObject = initProgram();
775     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
776     glUseProgram(programObject);
777     glUniform1ui(uniformLocation, INT_INIT_VAL);
778     GLenum glError = glGetError();
779     deleteProgram();
780     glDeleteProgram(programObject);
781     destroyGLES();
782     return getError(env, glError);
783 }
784 
GLUniform1uiv(napi_env env,napi_callback_info info)785 static napi_value GLUniform1uiv(napi_env env, napi_callback_info info)
786 {
787     initGLES();
788     GLuint programObject = initProgram();
789     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
790     glUseProgram(programObject);
791     GLuint brightness[POINT_LIGHT_COUNT] = {0, 0, 0, 0};
792     glUniform1uiv(uniformLocation, POINT_LIGHT_COUNT, brightness);
793     GLenum glError = glGetError();
794     deleteProgram();
795     glDeleteProgram(programObject);
796     destroyGLES();
797     return getError(env, glError);
798 }
799 
GLUniform2f(napi_env env,napi_callback_info info)800 static napi_value GLUniform2f(napi_env env, napi_callback_info info)
801 {
802     initGLES();
803     GLuint programObject = initProgram();
804     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
805     glUseProgram(programObject);
806     glUniform2f(uniformLocation, CLEAR_10, CLEAR_10);
807     GLenum glError = glGetError();
808     deleteProgram();
809     glDeleteProgram(programObject);
810     destroyGLES();
811     return getError(env, glError);
812 }
813 
GLUniform2fv(napi_env env,napi_callback_info info)814 static napi_value GLUniform2fv(napi_env env, napi_callback_info info)
815 {
816     initGLES();
817     GLuint programObject = initProgram();
818     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
819     glUseProgram(programObject);
820     GLfloat brightness[POINT_LIGHT_COUNT] = {0.8f, 0.2f, 0.6f, 0.4f};
821     glUniform2fv(uniformLocation, POINT_LIGHT_COUNT, brightness);
822     GLenum glError = glGetError();
823     deleteProgram();
824     glDeleteProgram(programObject);
825     destroyGLES();
826     return getError(env, glError);
827 }
828 
GLUniform2i(napi_env env,napi_callback_info info)829 static napi_value GLUniform2i(napi_env env, napi_callback_info info)
830 {
831     initGLES();
832     GLuint programObject = initProgram();
833     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
834     glUseProgram(programObject);
835     glUniform2i(uniformLocation, INT_INIT_VAL, INT_INIT_VAL);
836     GLenum glError = glGetError();
837     deleteProgram();
838     glDeleteProgram(programObject);
839     destroyGLES();
840     return getError(env, glError);
841 }
842 
GLUniform2iv(napi_env env,napi_callback_info info)843 static napi_value GLUniform2iv(napi_env env, napi_callback_info info)
844 {
845     initGLES();
846     GLuint programObject = initProgram();
847     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
848     glUseProgram(programObject);
849     GLint brightness[POINT_LIGHT_COUNT] = {0, 0, 0, 0};
850     glUniform2iv(uniformLocation, POINT_LIGHT_COUNT, brightness);
851     GLenum glError = glGetError();
852     deleteProgram();
853     glDeleteProgram(programObject);
854     destroyGLES();
855     return getError(env, glError);
856 }
857 
GLUniform2ui(napi_env env,napi_callback_info info)858 static napi_value GLUniform2ui(napi_env env, napi_callback_info info)
859 {
860     initGLES();
861     GLuint programObject = initProgram();
862     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
863     glUseProgram(programObject);
864     glUniform2ui(uniformLocation, INT_INIT_VAL, INT_INIT_VAL);
865     GLenum glError = glGetError();
866     deleteProgram();
867     glDeleteProgram(programObject);
868     destroyGLES();
869     return getError(env, glError);
870 }
871 
GLUniform2uiv(napi_env env,napi_callback_info info)872 static napi_value GLUniform2uiv(napi_env env, napi_callback_info info)
873 {
874     initGLES();
875     GLuint programObject = initProgram();
876     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
877     glUseProgram(programObject);
878     GLuint brightness[POINT_LIGHT_COUNT] = {0, 0, 0, 0};
879     glUniform2uiv(uniformLocation, POINT_LIGHT_COUNT, brightness);
880     GLenum glError = glGetError();
881     deleteProgram();
882     glDeleteProgram(programObject);
883     destroyGLES();
884     return getError(env, glError);
885 }
886 
GLUniform3f(napi_env env,napi_callback_info info)887 static napi_value GLUniform3f(napi_env env, napi_callback_info info)
888 {
889     initGLES();
890     GLuint programObject = initProgram();
891     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
892     glUseProgram(programObject);
893     glUniform3f(uniformLocation, CLEAR_10, CLEAR_10, CLEAR_10);
894     GLenum glError = glGetError();
895     deleteProgram();
896     glDeleteProgram(programObject);
897     destroyGLES();
898     return getError(env, glError);
899 }
900 
GLUniform3fv(napi_env env,napi_callback_info info)901 static napi_value GLUniform3fv(napi_env env, napi_callback_info info)
902 {
903     initGLES();
904     GLuint programObject = initProgram();
905     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
906     glUseProgram(programObject);
907     GLfloat brightness[POINT_LIGHT_COUNT] = {0.8f, 0.2f, 0.6f, 0.4f};
908     glUniform3fv(uniformLocation, POINT_LIGHT_COUNT, brightness);
909     GLenum glError = glGetError();
910     deleteProgram();
911     glDeleteProgram(programObject);
912     destroyGLES();
913     return getError(env, glError);
914 }
915 
GLUniform3i(napi_env env,napi_callback_info info)916 static napi_value GLUniform3i(napi_env env, napi_callback_info info)
917 {
918     initGLES();
919     GLuint programObject = initProgram();
920     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
921     glUseProgram(programObject);
922     glUniform3i(uniformLocation, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL);
923     GLenum glError = glGetError();
924     deleteProgram();
925     glDeleteProgram(programObject);
926     destroyGLES();
927     return getError(env, glError);
928 }
929 
GLUniform3iv(napi_env env,napi_callback_info info)930 static napi_value GLUniform3iv(napi_env env, napi_callback_info info)
931 {
932     initGLES();
933     GLuint programObject = initProgram();
934     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
935     glUseProgram(programObject);
936     GLint brightness[POINT_LIGHT_COUNT] = {0, 0, 0, 0};
937     glUniform3iv(uniformLocation, POINT_LIGHT_COUNT, brightness);
938     GLenum glError = glGetError();
939     deleteProgram();
940     glDeleteProgram(programObject);
941     destroyGLES();
942     return getError(env, glError);
943 }
944 
GLUniform3ui(napi_env env,napi_callback_info info)945 static napi_value GLUniform3ui(napi_env env, napi_callback_info info)
946 {
947     initGLES();
948     GLuint programObject = initProgram();
949     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
950     glUseProgram(programObject);
951     glUniform3ui(uniformLocation, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL);
952     GLenum glError = glGetError();
953     deleteProgram();
954     glDeleteProgram(programObject);
955     destroyGLES();
956     return getError(env, glError);
957 }
958 
GLUniform3uiv(napi_env env,napi_callback_info info)959 static napi_value GLUniform3uiv(napi_env env, napi_callback_info info)
960 {
961     initGLES();
962     GLuint programObject = initProgram();
963     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
964     glUseProgram(programObject);
965     GLuint brightness[POINT_LIGHT_COUNT] = {0, 0, 0, 0};
966     glUniform3uiv(uniformLocation, POINT_LIGHT_COUNT, brightness);
967     GLenum glError = glGetError();
968     deleteProgram();
969     glDeleteProgram(programObject);
970     destroyGLES();
971     return getError(env, glError);
972 }
973 
GLUniform4f(napi_env env,napi_callback_info info)974 static napi_value GLUniform4f(napi_env env, napi_callback_info info)
975 {
976     initGLES();
977     GLuint programObject = initProgram();
978     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
979     glUseProgram(programObject);
980     glUniform4f(uniformLocation, CLEAR_10, CLEAR_10, CLEAR_10, CLEAR_10);
981     GLenum glError = glGetError();
982     deleteProgram();
983     glDeleteProgram(programObject);
984     destroyGLES();
985     return getError(env, glError);
986 }
987 
GLUniform4fv(napi_env env,napi_callback_info info)988 static napi_value GLUniform4fv(napi_env env, napi_callback_info info)
989 {
990     initGLES();
991     GLuint programObject = initProgram();
992     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
993     glUseProgram(programObject);
994     GLfloat brightness[POINT_LIGHT_COUNT] = {0.8f, 0.2f, 0.6f, 0.4f};
995     glUniform4fv(uniformLocation, POINT_LIGHT_COUNT, brightness);
996     GLenum glError = glGetError();
997     deleteProgram();
998     glDeleteProgram(programObject);
999     destroyGLES();
1000     return getError(env, glError);
1001 }
1002 
GLUniform4i(napi_env env,napi_callback_info info)1003 static napi_value GLUniform4i(napi_env env, napi_callback_info info)
1004 {
1005     initGLES();
1006     GLuint programObject = initProgram();
1007     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
1008     glUseProgram(programObject);
1009     glUniform4i(uniformLocation, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL);
1010     GLenum glError = glGetError();
1011     deleteProgram();
1012     glDeleteProgram(programObject);
1013     destroyGLES();
1014     return getError(env, glError);
1015 }
1016 
GLUniform4iv(napi_env env,napi_callback_info info)1017 static napi_value GLUniform4iv(napi_env env, napi_callback_info info)
1018 {
1019     initGLES();
1020     GLuint programObject = initProgram();
1021     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1022     glUseProgram(programObject);
1023     GLint brightness[POINT_LIGHT_COUNT] = {0, 0, 0, 0};
1024     glUniform4iv(uniformLocation, POINT_LIGHT_COUNT, brightness);
1025     GLenum glError = glGetError();
1026     deleteProgram();
1027     glDeleteProgram(programObject);
1028     destroyGLES();
1029     return getError(env, glError);
1030 }
1031 
GLUniform4ui(napi_env env,napi_callback_info info)1032 static napi_value GLUniform4ui(napi_env env, napi_callback_info info)
1033 {
1034     initGLES();
1035     GLuint programObject = initProgram();
1036     GLint uniformLocation = glGetUniformLocation(programObject, "u_brightness");
1037     glUseProgram(programObject);
1038     glUniform4ui(uniformLocation, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL);
1039     GLenum glError = glGetError();
1040     deleteProgram();
1041     glDeleteProgram(programObject);
1042     destroyGLES();
1043     return getError(env, glError);
1044 }
1045 
GLUniform4uiv(napi_env env,napi_callback_info info)1046 static napi_value GLUniform4uiv(napi_env env, napi_callback_info info)
1047 {
1048     initGLES();
1049     GLuint programObject = initProgram();
1050     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1051     glUseProgram(programObject);
1052     GLuint brightness[POINT_LIGHT_COUNT] = {0, 0, 0, 0};
1053     glUniform4uiv(uniformLocation, POINT_LIGHT_COUNT, brightness);
1054     GLenum glError = glGetError();
1055     deleteProgram();
1056     glDeleteProgram(programObject);
1057     destroyGLES();
1058     return getError(env, glError);
1059 }
1060 
GLUniformBlockBinding(napi_env env,napi_callback_info info)1061 static napi_value GLUniformBlockBinding(napi_env env, napi_callback_info info)
1062 {
1063     initGLES();
1064     GLuint programObject = initProgram();
1065     GLuint matricesIndex = glGetUniformBlockIndex(programObject, "MatrixBlock");
1066     glUniformBlockBinding(programObject, matricesIndex, VARYING_NUM);
1067     GLenum glError = glGetError();
1068     deleteProgram();
1069     glDeleteProgram(programObject);
1070     destroyGLES();
1071     return getError(env, glError);
1072 }
1073 
GLUniformMatrix2fv(napi_env env,napi_callback_info info)1074 static napi_value GLUniformMatrix2fv(napi_env env, napi_callback_info info)
1075 {
1076     initGLES();
1077     GLuint programObject = initProgram();
1078     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1079     glUseProgram(programObject);
1080     GLfloat matrix[MATRIX_4] = {CLEAR_10, CLEAR_00, CLEAR_00, CLEAR_10};
1081     glUniformMatrix2fv(uniformLocation, CREAT_NUM_ONE, GL_TRUE, matrix);
1082     GLenum glError = glGetError();
1083     deleteProgram();
1084     glDeleteProgram(programObject);
1085     destroyGLES();
1086     return getError(env, glError);
1087 }
1088 
GLUniformMatrix2x3fv(napi_env env,napi_callback_info info)1089 static napi_value GLUniformMatrix2x3fv(napi_env env, napi_callback_info info)
1090 {
1091     initGLES();
1092     GLuint programObject = initProgram();
1093     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1094     glUseProgram(programObject);
1095     GLfloat matrix[MATRIX_6] = {CLEAR_10, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_10, CLEAR_00};
1096     glUniformMatrix2x3fv(uniformLocation, CREAT_NUM_ONE, GL_TRUE, matrix);
1097     GLenum glError = glGetError();
1098     deleteProgram();
1099     glDeleteProgram(programObject);
1100     destroyGLES();
1101     return getError(env, glError);
1102 }
1103 
GLUniformMatrix2x4fv(napi_env env,napi_callback_info info)1104 static napi_value GLUniformMatrix2x4fv(napi_env env, napi_callback_info info)
1105 {
1106     initGLES();
1107     GLuint programObject = initProgram();
1108     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1109     glUseProgram(programObject);
1110     GLfloat matrix[MATRIX_8] = {CLEAR_10, CLEAR_00, CLEAR_00, CLEAR_10, CLEAR_00, CLEAR_10, CLEAR_00, CLEAR_10};
1111     glUniformMatrix2x4fv(uniformLocation, CREAT_NUM_ONE, GL_TRUE, matrix);
1112     GLenum glError = glGetError();
1113     deleteProgram();
1114     glDeleteProgram(programObject);
1115     destroyGLES();
1116     return getError(env, glError);
1117 }
1118 
GLUniformMatrix3fv(napi_env env,napi_callback_info info)1119 static napi_value GLUniformMatrix3fv(napi_env env, napi_callback_info info)
1120 {
1121     initGLES();
1122     GLuint programObject = initProgram();
1123     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1124     glUseProgram(programObject);
1125     GLfloat matrix[MATRIX_9] = {CLEAR_10, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_10,
1126                                 CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_10};
1127     glUniformMatrix3fv(uniformLocation, CREAT_NUM_ONE, GL_TRUE, matrix);
1128     GLenum glError = glGetError();
1129     deleteProgram();
1130     glDeleteProgram(programObject);
1131     destroyGLES();
1132     return getError(env, glError);
1133 }
1134 
GLUniformMatrix3x2fv(napi_env env,napi_callback_info info)1135 static napi_value GLUniformMatrix3x2fv(napi_env env, napi_callback_info info)
1136 {
1137     initGLES();
1138     GLuint programObject = initProgram();
1139     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1140     glUseProgram(programObject);
1141     GLfloat matrix[MATRIX_6] = {CLEAR_10, CLEAR_00, CLEAR_00, CLEAR_10, CLEAR_00, CLEAR_00};
1142     glUniformMatrix3x2fv(uniformLocation, CREAT_NUM_ONE, GL_TRUE, matrix);
1143     GLenum glError = glGetError();
1144     deleteProgram();
1145     glDeleteProgram(programObject);
1146     destroyGLES();
1147     return getError(env, glError);
1148 }
1149 
GLUniformMatrix3x4fv(napi_env env,napi_callback_info info)1150 static napi_value GLUniformMatrix3x4fv(napi_env env, napi_callback_info info)
1151 {
1152     initGLES();
1153     GLuint programObject = initProgram();
1154     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1155     glUseProgram(programObject);
1156     GLfloat matrix[MATRIX_12] = {CLEAR_10, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_10,
1157                                  CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_10, CLEAR_00};
1158     glUniformMatrix3x4fv(uniformLocation, CREAT_NUM_ONE, GL_TRUE, matrix);
1159     GLenum glError = glGetError();
1160     deleteProgram();
1161     glDeleteProgram(programObject);
1162     destroyGLES();
1163     return getError(env, glError);
1164 }
1165 
GLUniformMatrix4fv(napi_env env,napi_callback_info info)1166 static napi_value GLUniformMatrix4fv(napi_env env, napi_callback_info info)
1167 {
1168     initGLES();
1169     GLuint programObject = initProgram();
1170     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1171     glUseProgram(programObject);
1172     GLfloat matrix[MATRIX_16] = {CLEAR_10, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_10, CLEAR_00, CLEAR_00,
1173                                  CLEAR_00, CLEAR_00, CLEAR_10, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_10};
1174     glUniformMatrix4fv(uniformLocation, CREAT_NUM_ONE, GL_TRUE, matrix);
1175     GLenum glError = glGetError();
1176     deleteProgram();
1177     glDeleteProgram(programObject);
1178     destroyGLES();
1179     return getError(env, glError);
1180 }
1181 
GLUniformMatrix4x2fv(napi_env env,napi_callback_info info)1182 static napi_value GLUniformMatrix4x2fv(napi_env env, napi_callback_info info)
1183 {
1184     initGLES();
1185     GLuint programObject = initProgram();
1186     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1187     glUseProgram(programObject);
1188     GLfloat matrix[MATRIX_8] = {
1189         CLEAR_10, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_10, CLEAR_00, CLEAR_00,
1190     };
1191     glUniformMatrix4x2fv(uniformLocation, CREAT_NUM_ONE, GL_TRUE, matrix);
1192     GLenum glError = glGetError();
1193     deleteProgram();
1194     glDeleteProgram(programObject);
1195     destroyGLES();
1196     return getError(env, glError);
1197 }
1198 
GLUniformMatrix4x3fv(napi_env env,napi_callback_info info)1199 static napi_value GLUniformMatrix4x3fv(napi_env env, napi_callback_info info)
1200 {
1201     initGLES();
1202     GLuint programObject = initProgram();
1203     GLint uniformLocation = glGetUniformLocation(programObject, "u_pointLights[0].brightness");
1204     glUseProgram(programObject);
1205     GLfloat matrix[MATRIX_12] = {
1206         CLEAR_10, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_10,
1207         CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_10, CLEAR_00,
1208     };
1209     glUniformMatrix4x3fv(uniformLocation, CREAT_NUM_ONE, GL_TRUE, matrix);
1210     GLenum glError = glGetError();
1211     deleteProgram();
1212     glDeleteProgram(programObject);
1213     destroyGLES();
1214     return getError(env, glError);
1215 }
1216 
GLUnmapBuffer(napi_env env,napi_callback_info info)1217 static napi_value GLUnmapBuffer(napi_env env, napi_callback_info info)
1218 {
1219     initGLES();
1220     GLuint buffer;
1221     glGenBuffers(CREAT_NUM_ONE, &buffer);
1222     glBindBuffer(GL_ARRAY_BUFFER, buffer);
1223     glBufferData(GL_ARRAY_BUFFER, GL_BUF_SIZE, nullptr, GL_DYNAMIC_DRAW);
1224     glMapBufferRange(GL_ARRAY_BUFFER, INT_INIT_VAL, GL_BUF_SIZE,
1225                      GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT | GL_MAP_FLUSH_EXPLICIT_BIT);
1226     glFlushMappedBufferRange(GL_ARRAY_BUFFER, INT_INIT_VAL, GL_BUF_SIZE);
1227     GLboolean glRet = glUnmapBuffer(GL_ARRAY_BUFFER);
1228     glDeleteBuffers(CREAT_NUM_ONE, &buffer);
1229     destroyGLES();
1230     napi_value result = nullptr;
1231     if (GL_TRUE == glRet) {
1232         napi_create_int32(env, SUCCESS, &result);
1233     } else {
1234         napi_create_int32(env, FAILED, &result);
1235     }
1236     return result;
1237 }
1238 
GLUseProgram(napi_env env,napi_callback_info info)1239 static napi_value GLUseProgram(napi_env env, napi_callback_info info)
1240 {
1241     initGLES();
1242     GLuint programObject = initProgram();
1243     glUseProgram(programObject);
1244     GLenum glError = glGetError();
1245     deleteProgram();
1246     glDeleteProgram(programObject);
1247     destroyGLES();
1248     return getError(env, glError);
1249 }
1250 
GLUseProgramStages(napi_env env,napi_callback_info info)1251 static napi_value GLUseProgramStages(napi_env env, napi_callback_info info)
1252 {
1253     initGLES();
1254     GLuint pipeline = INT_INIT_VAL;
1255     glGenProgramPipelines(PIPELINES_NUM_ONE, &pipeline);
1256     glBindProgramPipeline(pipeline);
1257     GLuint program = glCreateShaderProgramv(GL_FRAGMENT_SHADER, CREAT_NUM_ONE, &fragmentShaderSource);
1258     glUseProgramStages(pipeline, GL_FRAGMENT_SHADER_BIT, program);
1259     GLenum glError = glGetError();
1260     glDeleteProgram(program);
1261     glDeleteProgramPipelines(CREAT_NUM_ONE, &pipeline);
1262     destroyGLES();
1263     return getError(env, glError);
1264 }
1265 
GLValidateProgram(napi_env env,napi_callback_info info)1266 static napi_value GLValidateProgram(napi_env env, napi_callback_info info)
1267 {
1268     initGLES();
1269     GLuint programObject = initProgram();
1270     glValidateProgram(programObject);
1271     GLenum glError = glGetError();
1272     deleteProgram();
1273     glDeleteProgram(programObject);
1274     destroyGLES();
1275     return getError(env, glError);
1276 }
1277 
GLValidateProgramPipeline(napi_env env,napi_callback_info info)1278 static napi_value GLValidateProgramPipeline(napi_env env, napi_callback_info info)
1279 {
1280     initGLES();
1281     GLuint pipeline = INT_INIT_VAL;
1282     glGenProgramPipelines(PIPELINES_NUM_ONE, &pipeline);
1283     glBindProgramPipeline(pipeline);
1284     glValidateProgramPipeline(pipeline);
1285     GLenum glError = glGetError();
1286     glDeleteProgramPipelines(CREAT_NUM_ONE, &pipeline);
1287     return getError(env, glError);
1288 }
1289 
GLVertexAttrib1f(napi_env env,napi_callback_info info)1290 static napi_value GLVertexAttrib1f(napi_env env, napi_callback_info info)
1291 {
1292     initGLES();
1293     GLuint programObject = initProgram();
1294     glUseProgram(programObject);
1295     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1296     glVertexAttrib1f(attribLocation, CLEAR_10);
1297     GLenum glError = glGetError();
1298     deleteProgram();
1299     glDeleteProgram(programObject);
1300     destroyGLES();
1301     return getError(env, glError);
1302 }
1303 
GLVertexAttrib1fv(napi_env env,napi_callback_info info)1304 static napi_value GLVertexAttrib1fv(napi_env env, napi_callback_info info)
1305 {
1306     initGLES();
1307     GLuint programObject = initProgram();
1308     glUseProgram(programObject);
1309     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1310     GLfloat value[ARRAY_INDEX_ONE] = {CLEAR_10};
1311     glVertexAttrib1fv(attribLocation, value);
1312     GLenum glError = glGetError();
1313     deleteProgram();
1314     glDeleteProgram(programObject);
1315     destroyGLES();
1316     return getError(env, glError);
1317 }
1318 
GLVertexAttrib2f(napi_env env,napi_callback_info info)1319 static napi_value GLVertexAttrib2f(napi_env env, napi_callback_info info)
1320 {
1321     initGLES();
1322     GLuint programObject = initProgram();
1323     glUseProgram(programObject);
1324     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1325     glVertexAttrib2f(attribLocation, CLEAR_10, CLEAR_10);
1326     GLenum glError = glGetError();
1327     deleteProgram();
1328     glDeleteProgram(programObject);
1329     destroyGLES();
1330     return getError(env, glError);
1331 }
1332 
GLVertexAttrib2fv(napi_env env,napi_callback_info info)1333 static napi_value GLVertexAttrib2fv(napi_env env, napi_callback_info info)
1334 {
1335     initGLES();
1336     GLuint programObject = initProgram();
1337     glUseProgram(programObject);
1338     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1339     GLfloat value[ARRAY_INDEX_TWO] = {CLEAR_10, CLEAR_10};
1340     glVertexAttrib2fv(attribLocation, value);
1341     GLenum glError = glGetError();
1342     deleteProgram();
1343     glDeleteProgram(programObject);
1344     destroyGLES();
1345     return getError(env, glError);
1346 }
1347 
GLVertexAttrib3f(napi_env env,napi_callback_info info)1348 static napi_value GLVertexAttrib3f(napi_env env, napi_callback_info info)
1349 {
1350     initGLES();
1351     GLuint programObject = initProgram();
1352     glUseProgram(programObject);
1353     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1354     glVertexAttrib3f(attribLocation, CLEAR_10, CLEAR_10, CLEAR_10);
1355     GLenum glError = glGetError();
1356     deleteProgram();
1357     glDeleteProgram(programObject);
1358     destroyGLES();
1359     return getError(env, glError);
1360 }
1361 
GLVertexAttrib3fv(napi_env env,napi_callback_info info)1362 static napi_value GLVertexAttrib3fv(napi_env env, napi_callback_info info)
1363 {
1364     initGLES();
1365     GLuint programObject = initProgram();
1366     glUseProgram(programObject);
1367     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1368     GLfloat value[ARRAY_INDEX_THREE] = {CLEAR_10, CLEAR_10, CLEAR_10};
1369     glVertexAttrib3fv(attribLocation, value);
1370     GLenum glError = glGetError();
1371     deleteProgram();
1372     glDeleteProgram(programObject);
1373     destroyGLES();
1374     return getError(env, glError);
1375 }
1376 
GLVertexAttrib4f(napi_env env,napi_callback_info info)1377 static napi_value GLVertexAttrib4f(napi_env env, napi_callback_info info)
1378 {
1379     initGLES();
1380     GLuint programObject = initProgram();
1381     glUseProgram(programObject);
1382     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1383     glVertexAttrib4f(attribLocation, CLEAR_10, CLEAR_10, CLEAR_10, CLEAR_10);
1384     GLenum glError = glGetError();
1385     deleteProgram();
1386     glDeleteProgram(programObject);
1387     destroyGLES();
1388     return getError(env, glError);
1389 }
1390 
GLVertexAttrib4fv(napi_env env,napi_callback_info info)1391 static napi_value GLVertexAttrib4fv(napi_env env, napi_callback_info info)
1392 {
1393     initGLES();
1394     GLuint programObject = initProgram();
1395     glUseProgram(programObject);
1396     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1397     GLfloat value[ARRAY_INDEX_FORE] = {CLEAR_10, CLEAR_10, CLEAR_10, CLEAR_10};
1398     glVertexAttrib4fv(attribLocation, value);
1399     GLenum glError = glGetError();
1400     deleteProgram();
1401     glDeleteProgram(programObject);
1402     destroyGLES();
1403     return getError(env, glError);
1404 }
1405 
GLVertexAttribBinding(napi_env env,napi_callback_info info)1406 static napi_value GLVertexAttribBinding(napi_env env, napi_callback_info info)
1407 {
1408     initGLES();
1409     GLuint vao = INT_INIT_VAL;
1410     GLuint vbo = INT_INIT_VAL;
1411     glGenVertexArrays(CREAT_NUM_ONE, &vao);
1412     glBindVertexArray(vao);
1413     glGenBuffers(CREAT_NUM_ONE, &vbo);
1414     glBindBuffer(GL_ARRAY_BUFFER, vbo);
1415     GLfloat vertices[] = {CLEAR_10, CLEAR_10, CLEAR_10, CLEAR_10};
1416     glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
1417     glEnableVertexAttribArray(ARRAY_INDEX_ZERO);
1418     glVertexAttribFormat(ARRAY_INDEX_ZERO, ARRAY_INDEX_THREE, GL_FLOAT, GL_FALSE, ARRAY_INDEX_ZERO);
1419     glVertexAttribBinding(ARRAY_INDEX_ZERO, ARRAY_INDEX_ZERO);
1420     GLenum glError = glGetError();
1421     glDeleteBuffers(CREAT_NUM_ONE, &vbo);
1422     glDeleteVertexArrays(CREAT_NUM_ONE, &vao);
1423     destroyGLES();
1424     return getError(env, glError);
1425 }
1426 
GLVertexAttribDivisor(napi_env env,napi_callback_info info)1427 static napi_value GLVertexAttribDivisor(napi_env env, napi_callback_info info)
1428 {
1429     initGLES();
1430     GLuint vao = INT_INIT_VAL;
1431     GLuint vbo = INT_INIT_VAL;
1432     glGenVertexArrays(CREAT_NUM_ONE, &vao);
1433     glBindVertexArray(vao);
1434     glGenBuffers(CREAT_NUM_ONE, &vbo);
1435     glBindBuffer(GL_ARRAY_BUFFER, vbo);
1436     GLfloat vertices[] = {CLEAR_10, CLEAR_10, CLEAR_10, CLEAR_10};
1437     glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
1438     glEnableVertexAttribArray(ARRAY_INDEX_ZERO);
1439     glVertexAttribPointer(INT_INIT_VAL, ARRAY_INDEX_THREE, GL_FLOAT, GL_FALSE, ARRAY_INDEX_THREE * sizeof(GLfloat),
1440                           nullptr);
1441     glVertexAttribDivisor(INT_INIT_VAL, CREAT_NUM_ONE);
1442     GLenum glError = glGetError();
1443     glDeleteBuffers(CREAT_NUM_ONE, &vbo);
1444     glDeleteVertexArrays(CREAT_NUM_ONE, &vao);
1445     destroyGLES();
1446     return getError(env, glError);
1447 }
1448 
GLVertexAttribFormat(napi_env env,napi_callback_info info)1449 static napi_value GLVertexAttribFormat(napi_env env, napi_callback_info info)
1450 {
1451     initGLES();
1452     GLuint vao = INT_INIT_VAL;
1453     GLuint vbo = INT_INIT_VAL;
1454     glGenVertexArrays(CREAT_NUM_ONE, &vao);
1455     glBindVertexArray(vao);
1456     glGenBuffers(CREAT_NUM_ONE, &vbo);
1457     glBindBuffer(GL_ARRAY_BUFFER, vbo);
1458     GLfloat vertices[] = {CLEAR_10, CLEAR_10, CLEAR_10, CLEAR_10};
1459     glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
1460     glEnableVertexAttribArray(ARRAY_INDEX_ZERO);
1461     glVertexAttribFormat(ARRAY_INDEX_ZERO, ARRAY_INDEX_THREE, GL_FLOAT, GL_FALSE, ARRAY_INDEX_ZERO);
1462     GLenum glError = glGetError();
1463     glDeleteBuffers(CREAT_NUM_ONE, &vbo);
1464     glDeleteVertexArrays(CREAT_NUM_ONE, &vao);
1465     destroyGLES();
1466     return getError(env, glError);
1467 }
1468 
GLVertexAttribI4i(napi_env env,napi_callback_info info)1469 static napi_value GLVertexAttribI4i(napi_env env, napi_callback_info info)
1470 {
1471     initGLES();
1472     GLuint programObject = initProgram();
1473     glUseProgram(programObject);
1474     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1475     glVertexAttribI4i(attribLocation, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL);
1476     GLenum glError = glGetError();
1477     deleteProgram();
1478     glDeleteProgram(programObject);
1479     destroyGLES();
1480     return getError(env, glError);
1481 }
1482 
GLVertexAttribI4iv(napi_env env,napi_callback_info info)1483 static napi_value GLVertexAttribI4iv(napi_env env, napi_callback_info info)
1484 {
1485     initGLES();
1486     GLuint programObject = initProgram();
1487     glUseProgram(programObject);
1488     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1489     GLint value[ARRAY_INDEX_FORE] = {INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL};
1490     glVertexAttribI4iv(attribLocation, value);
1491     GLenum glError = glGetError();
1492     deleteProgram();
1493     glDeleteProgram(programObject);
1494     destroyGLES();
1495     return getError(env, glError);
1496 }
1497 
GLVertexAttribI4ui(napi_env env,napi_callback_info info)1498 static napi_value GLVertexAttribI4ui(napi_env env, napi_callback_info info)
1499 {
1500     initGLES();
1501     GLuint programObject = initProgram();
1502     glUseProgram(programObject);
1503     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1504     glVertexAttribI4ui(attribLocation, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL);
1505     GLenum glError = glGetError();
1506     deleteProgram();
1507     glDeleteProgram(programObject);
1508     destroyGLES();
1509     return getError(env, glError);
1510 }
1511 
GLVertexAttribI4uiv(napi_env env,napi_callback_info info)1512 static napi_value GLVertexAttribI4uiv(napi_env env, napi_callback_info info)
1513 {
1514     initGLES();
1515     GLuint programObject = initProgram();
1516     glUseProgram(programObject);
1517     GLint attribLocation = glGetAttribLocation(programObject, "vPosition");
1518     GLuint value[ARRAY_INDEX_FORE] = {INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL};
1519     glVertexAttribI4uiv(attribLocation, value);
1520     GLenum glError = glGetError();
1521     deleteProgram();
1522     glDeleteProgram(programObject);
1523     destroyGLES();
1524     return getError(env, glError);
1525 }
1526 
GLVertexAttribIFormat(napi_env env,napi_callback_info info)1527 static napi_value GLVertexAttribIFormat(napi_env env, napi_callback_info info)
1528 {
1529     initGLES();
1530     GLuint vao = INT_INIT_VAL;
1531     GLuint vbo = INT_INIT_VAL;
1532     glGenVertexArrays(CREAT_NUM_ONE, &vao);
1533     glBindVertexArray(vao);
1534     glGenBuffers(CREAT_NUM_ONE, &vbo);
1535     glBindBuffer(GL_ARRAY_BUFFER, vbo);
1536     GLfloat vertices[] = {CLEAR_10, CLEAR_10, CLEAR_10, CLEAR_10};
1537     glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
1538     glEnableVertexAttribArray(ARRAY_INDEX_ZERO);
1539     glVertexAttribIFormat(INT_INIT_VAL, ARRAY_INDEX_FORE, GL_INT, INT_INIT_VAL);
1540     GLenum glError = glGetError();
1541     glDeleteBuffers(CREAT_NUM_ONE, &vbo);
1542     glDeleteVertexArrays(CREAT_NUM_ONE, &vao);
1543     destroyGLES();
1544     return getError(env, glError);
1545 }
1546 
GLVertexAttribIPointer(napi_env env,napi_callback_info info)1547 static napi_value GLVertexAttribIPointer(napi_env env, napi_callback_info info)
1548 {
1549     initGLES();
1550     GLint vertices[] = {INT_INIT_VAL, INT_INIT_VAL, INT_INIT_VAL};
1551     GLuint VAO = INT_INIT_VAL;
1552     GLuint VBO = INT_INIT_VAL;
1553     glGenVertexArrays(CREAT_NUM_ONE, &VAO);
1554     glBindVertexArray(VAO);
1555     glGenBuffers(CREAT_NUM_ONE, &VBO);
1556     glBindBuffer(GL_ARRAY_BUFFER, VBO);
1557     glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
1558     glVertexAttribIPointer(INT_INIT_VAL, MATRIX_3, GL_INT, MATRIX_3 * sizeof(GLint), nullptr);
1559     GLenum glError = glGetError();
1560     glDeleteBuffers(CREAT_NUM_ONE, &VBO);
1561     glDeleteVertexArrays(CREAT_NUM_ONE, &VAO);
1562     destroyGLES();
1563     return getError(env, glError);
1564 }
1565 
GLVertexAttribPointer(napi_env env,napi_callback_info info)1566 static napi_value GLVertexAttribPointer(napi_env env, napi_callback_info info)
1567 {
1568     initGLES();
1569     GLfloat vertices[] = {CLEAR_00, 0.5f, CLEAR_00, -0.5f, -0.5f, CLEAR_00, 0.5f, -0.5f, CLEAR_00};
1570     GLuint VAO = INT_INIT_VAL;
1571     GLuint VBO = INT_INIT_VAL;
1572     glGenVertexArrays(CREAT_NUM_ONE, &VAO);
1573     glBindVertexArray(VAO);
1574     glGenBuffers(CREAT_NUM_ONE, &VBO);
1575     glBindBuffer(GL_ARRAY_BUFFER, VBO);
1576     glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
1577     glVertexAttribPointer(INT_INIT_VAL, ATTRIB_SIZE, GL_FLOAT, GL_FALSE, INT_INIT_VAL, INT_INIT_VAL);
1578     GLenum glError = glGetError();
1579     glDeleteBuffers(CREAT_NUM_ONE, &VBO);
1580     glDeleteVertexArrays(CREAT_NUM_ONE, &VAO);
1581     destroyGLES();
1582     return getError(env, glError);
1583 }
1584 
GLVertexBindingDivisor(napi_env env,napi_callback_info info)1585 static napi_value GLVertexBindingDivisor(napi_env env, napi_callback_info info)
1586 {
1587     initGLES();
1588     GLfloat vertices[] = {CLEAR_00, 0.5f, CLEAR_00, -0.5f, -0.5f, CLEAR_00, 0.5f, -0.5f, CLEAR_00};
1589     GLuint VAO = INT_INIT_VAL;
1590     GLuint VBO = INT_INIT_VAL;
1591     glGenVertexArrays(CREAT_NUM_ONE, &VAO);
1592     glBindVertexArray(VAO);
1593     glGenBuffers(CREAT_NUM_ONE, &VBO);
1594     glBindBuffer(GL_ARRAY_BUFFER, VBO);
1595     glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
1596     glVertexAttribPointer(INT_INIT_VAL, ATTRIB_SIZE, GL_FLOAT, GL_FALSE, INT_INIT_VAL, INT_INIT_VAL);
1597     glVertexBindingDivisor(INT_INIT_VAL, CREAT_NUM_ONE);
1598     GLenum glError = glGetError();
1599     glDeleteBuffers(CREAT_NUM_ONE, &VBO);
1600     glDeleteVertexArrays(CREAT_NUM_ONE, &VAO);
1601     destroyGLES();
1602     return getError(env, glError);
1603 }
1604 
GLViewport(napi_env env,napi_callback_info info)1605 static napi_value GLViewport(napi_env env, napi_callback_info info)
1606 {
1607     initGLES();
1608     glViewport(IMAGE_WIDTH, IMAGE_HEIGHT, IMAGE_WIDTH, IMAGE_HEIGHT);
1609     GLenum glError = glGetError();
1610     destroyGLES();
1611     return getError(env, glError);
1612 }
1613 
GLWaitSync(napi_env env,napi_callback_info info)1614 static napi_value GLWaitSync(napi_env env, napi_callback_info info)
1615 {
1616     initGLES();
1617     GLsync syncObject = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, INT_INIT_VAL);
1618     glWaitSync(syncObject, INT_INIT_VAL, GL_TIMEOUT_IGNORED);
1619     GLenum glError = glGetError();
1620     glDeleteSync(syncObject);
1621     destroyGLES();
1622     return getError(env, glError);
1623 }
1624 
GLGetProgramPipelineInfoLog(napi_env env,napi_callback_info info)1625 static napi_value GLGetProgramPipelineInfoLog(napi_env env, napi_callback_info info)
1626 {
1627     initGLES();
1628     GLuint pipeline = INT_INIT_VAL;
1629     glGenProgramPipelines(PIPELINES_NUM_ONE, &pipeline);
1630     glBindProgramPipeline(pipeline);
1631     GLuint program = glCreateShaderProgramv(GL_FRAGMENT_SHADER, CREAT_NUM_ONE, &fragmentShaderSource);
1632     glUseProgramStages(pipeline, GL_FRAGMENT_SHADER_BIT, program);
1633     GLchar log[256];
1634     GLsizei length;
1635     glGetProgramPipelineInfoLog(pipeline, GL_BUF_SIZE, &length, log);
1636     GLenum glError = glGetError();
1637     glDeleteProgramPipelines(CREAT_NUM_ONE, &pipeline);
1638     glDeleteProgram(program);
1639     destroyGLES();
1640     return getError(env, glError);
1641 }
1642 
GLGetActiveUniform(napi_env env,napi_callback_info info)1643 static napi_value GLGetActiveUniform(napi_env env, napi_callback_info info)
1644 {
1645     initGLES();
1646     GLenum glError = GL_NO_ERROR;
1647     GLuint program = initProgram(vertexSource, fragmentSource);
1648     GLint activeUniformCount;
1649     glGetProgramiv(program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &activeUniformCount);
1650     GLchar uniformName[SUB_DATA_SIZE];
1651     GLsizei length;
1652     GLint size;
1653     GLenum type;
1654     if (activeUniformCount > 0) {
1655         glGetActiveUniform(program, ARRAY_INDEX_ZERO, SUB_DATA_SIZE, &length, &size, &type, uniformName);
1656         glError = glGetError();
1657     }
1658     deleteProgram();
1659     glDeleteProgram(program);
1660     destroyGLES();
1661     return getError(env, glError);
1662 }
1663 
GLGetActiveUniformBlockiv(napi_env env,napi_callback_info info)1664 static napi_value GLGetActiveUniformBlockiv(napi_env env, napi_callback_info info)
1665 {
1666     initGLES();
1667     GLuint program = initProgram(vertexShaderSource, fragmentShaderSource);
1668     GLuint blockIndex = glGetUniformBlockIndex(program, "MatrixBlock");
1669     GLint param;
1670     glGetActiveUniformBlockiv(program, blockIndex, GL_UNIFORM_BLOCK_NAME_LENGTH, &param);
1671     GLenum glError = glGetError();
1672     deleteProgram();
1673     glDeleteProgram(program);
1674     destroyGLES();
1675     return getError(env, glError);
1676 }
1677 
GLGetActiveUniformBlockName(napi_env env,napi_callback_info info)1678 static napi_value GLGetActiveUniformBlockName(napi_env env, napi_callback_info info)
1679 {
1680     initGLES();
1681     GLuint program = initProgram(vertexShaderSource, fragmentShaderSource);
1682     GLuint blockIndex = glGetUniformBlockIndex(program, "MatrixBlock");
1683     GLint nameLen;
1684     glGetActiveUniformBlockiv(program, blockIndex, GL_UNIFORM_BLOCK_NAME_LENGTH, &nameLen);
1685     GLsizei length;
1686     GLchar blockName[nameLen];
1687     glGetActiveUniformBlockName(program, blockIndex, nameLen, &length, blockName);
1688     GLenum glError = glGetError();
1689     deleteProgram();
1690     glDeleteProgram(program);
1691     destroyGLES();
1692     return getError(env, glError);
1693 }
1694 
GLGetActiveUniformsiv(napi_env env,napi_callback_info info)1695 static napi_value GLGetActiveUniformsiv(napi_env env, napi_callback_info info)
1696 {
1697     initGLES();
1698     GLuint program = initProgram(vertexShaderSource, fragmentShaderSource);
1699     GLuint blockIndex = glGetUniformBlockIndex(program, "MatrixBlock");
1700     GLint params;
1701     glGetActiveUniformsiv(program, CREAT_NUM_ONE, &blockIndex, GL_UNIFORM_TYPE, &params);
1702     GLenum glError = glGetError();
1703     deleteProgram();
1704     glDeleteProgram(program);
1705     destroyGLES();
1706     return getError(env, glError);
1707 }
1708 
GLGetnUniformfv(napi_env env,napi_callback_info info)1709 static napi_value GLGetnUniformfv(napi_env env, napi_callback_info info)
1710 {
1711     initGLES();
1712     GLuint program = initProgram(vertexSource, fragmentSource);
1713     GLint location = glGetUniformLocation(program, "color");
1714     GLfloat param;
1715     glGetnUniformfv(program, location, sizeof(GLfloat), &param);
1716     GLenum glError = glGetError();
1717     deleteProgram();
1718     glDeleteProgram(program);
1719     destroyGLES();
1720     return getError(env, glError);
1721 }
GLGetnUniformiv(napi_env env,napi_callback_info info)1722 static napi_value GLGetnUniformiv(napi_env env, napi_callback_info info)
1723 {
1724     initGLES();
1725     GLuint program = initProgram(vertexSource, fragmentSource);
1726     GLint location = glGetUniformLocation(program, "color");
1727     GLint param;
1728     glGetnUniformiv(program, location, sizeof(GLint), &param);
1729     GLenum glError = glGetError();
1730     deleteProgram();
1731     glDeleteProgram(program);
1732     destroyGLES();
1733     return getError(env, glError);
1734 }
GLGetnUniformuiv(napi_env env,napi_callback_info info)1735 static napi_value GLGetnUniformuiv(napi_env env, napi_callback_info info)
1736 {
1737     initGLES();
1738     GLuint program = initProgram(vertexSource, fragmentSource);
1739     GLint location = glGetUniformLocation(program, "color");
1740     GLuint param;
1741     glGetnUniformuiv(program, location, sizeof(GLuint), &param);
1742     GLenum glError = glGetError();
1743     deleteProgram();
1744     glDeleteProgram(program);
1745     destroyGLES();
1746     return getError(env, glError);
1747 }
1748 
GLActiveShaderProgramAbnormal(napi_env env,napi_callback_info info)1749 static napi_value GLActiveShaderProgramAbnormal(napi_env env, napi_callback_info info)
1750 {
1751     (void)info;
1752     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1753     initGLES(&eglWindow);
1754     glActiveShaderProgram(GL_ZERO, GL_ZERO);
1755     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glActiveShaderProgram error");
1756     destroyGLES(&eglWindow);
1757     napi_value result = nullptr;
1758     napi_create_int32(env, FAILED, &result);
1759     return result;
1760 }
1761 
GLActiveTextureAbnormal(napi_env env,napi_callback_info info)1762 static napi_value GLActiveTextureAbnormal(napi_env env, napi_callback_info info)
1763 {
1764     (void)info;
1765     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1766     initGLES(&eglWindow);
1767     glActiveTexture(GL_ZERO);
1768     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glActiveTexture error");
1769     destroyGLES(&eglWindow);
1770     napi_value result = nullptr;
1771     napi_create_int32(env, FAILED, &result);
1772     return result;
1773 }
1774 
GLAttachShaderAbnormal(napi_env env,napi_callback_info info)1775 static napi_value GLAttachShaderAbnormal(napi_env env, napi_callback_info info)
1776 {
1777     (void)info;
1778     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1779     initGLES(&eglWindow);
1780     glAttachShader(GL_ZERO, GL_ZERO);
1781     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glAttachShader error");
1782     destroyGLES(&eglWindow);
1783     napi_value result = nullptr;
1784     napi_create_int32(env, FAILED, &result);
1785     return result;
1786 }
1787 
GLBeginQueryAbnormal(napi_env env,napi_callback_info info)1788 static napi_value GLBeginQueryAbnormal(napi_env env, napi_callback_info info)
1789 {
1790     (void)info;
1791     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1792     initGLES(&eglWindow);
1793     glBeginQuery(GL_ZERO, GL_ZERO);
1794     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBeginQuery error");
1795     destroyGLES(&eglWindow);
1796     napi_value result = nullptr;
1797     napi_create_int32(env, FAILED, &result);
1798     return result;
1799 }
1800 
GLBeginTransformFeedbackAbnormal(napi_env env,napi_callback_info info)1801 static napi_value GLBeginTransformFeedbackAbnormal(napi_env env, napi_callback_info info)
1802 {
1803     (void)info;
1804     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1805     initGLES(&eglWindow);
1806     glBeginTransformFeedback(GL_ZERO);
1807     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBeginTransformFeedback error");
1808     destroyGLES(&eglWindow);
1809     napi_value result = nullptr;
1810     napi_create_int32(env, FAILED, &result);
1811     return result;
1812 }
1813 
GLBindAttribLocationAbnormal(napi_env env,napi_callback_info info)1814 static napi_value GLBindAttribLocationAbnormal(napi_env env, napi_callback_info info)
1815 {
1816     (void)info;
1817     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1818     initGLES(&eglWindow);
1819     glBindAttribLocation(GL_ZERO, GL_ZERO, nullptr);
1820     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindAttribLocation error");
1821     destroyGLES(&eglWindow);
1822     napi_value result = nullptr;
1823     napi_create_int32(env, FAILED, &result);
1824     return result;
1825 }
1826 
GLBindBufferAbnormal(napi_env env,napi_callback_info info)1827 static napi_value GLBindBufferAbnormal(napi_env env, napi_callback_info info)
1828 {
1829     (void)info;
1830     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1831     initGLES(&eglWindow);
1832     glBindBuffer(GL_ZERO, GL_ZERO);
1833     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindBuffer error");
1834     destroyGLES(&eglWindow);
1835     napi_value result = nullptr;
1836     napi_create_int32(env, FAILED, &result);
1837     return result;
1838 }
1839 
GLBindBufferBaseAbnormal(napi_env env,napi_callback_info info)1840 static napi_value GLBindBufferBaseAbnormal(napi_env env, napi_callback_info info)
1841 {
1842     (void)info;
1843     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1844     initGLES(&eglWindow);
1845     glBindBufferBase(GL_ZERO, GL_ZERO, GL_ZERO);
1846     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindBufferBase error");
1847     destroyGLES(&eglWindow);
1848     napi_value result = nullptr;
1849     napi_create_int32(env, FAILED, &result);
1850     return result;
1851 }
1852 
GLBindBufferRangeAbnormal(napi_env env,napi_callback_info info)1853 static napi_value GLBindBufferRangeAbnormal(napi_env env, napi_callback_info info)
1854 {
1855     (void)info;
1856     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1857     initGLES(&eglWindow);
1858     glBindBufferRange(GL_ZERO, GL_ZERO, GL_ZERO, GL_ONE, GL_ZERO);
1859     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindBufferRange error");
1860     destroyGLES(&eglWindow);
1861     napi_value result = nullptr;
1862     napi_create_int32(env, FAILED, &result);
1863     return result;
1864 }
1865 
GLBindFramebufferAbnormal(napi_env env,napi_callback_info info)1866 static napi_value GLBindFramebufferAbnormal(napi_env env, napi_callback_info info)
1867 {
1868     (void)info;
1869     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1870     initGLES(&eglWindow);
1871     glBindFramebuffer(GL_ZERO, GL_ZERO);
1872     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindFramebuffer error");
1873     destroyGLES(&eglWindow);
1874     napi_value result = nullptr;
1875     napi_create_int32(env, FAILED, &result);
1876     return result;
1877 }
1878 
GLBindImageTextureAbnormal(napi_env env,napi_callback_info info)1879 static napi_value GLBindImageTextureAbnormal(napi_env env, napi_callback_info info)
1880 {
1881     (void)info;
1882     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1883     initGLES(&eglWindow);
1884     glBindImageTexture(GL_ZERO, GL_ZERO, FAILED, GL_FALSE, GL_ZERO, GL_READ_ONLY, GL_RGBA8);
1885     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindImageTexture error");
1886     destroyGLES(&eglWindow);
1887     napi_value result = nullptr;
1888     napi_create_int32(env, FAILED, &result);
1889     return result;
1890 }
1891 
GLBindProgramPipelineAbnormal(napi_env env,napi_callback_info info)1892 static napi_value GLBindProgramPipelineAbnormal(napi_env env, napi_callback_info info)
1893 {
1894     (void)info;
1895     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1896     initGLES(&eglWindow);
1897     glBindProgramPipeline(GL_MAX_TEST_NUM);
1898     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindProgramPipeline error");
1899     destroyGLES(&eglWindow);
1900     napi_value result = nullptr;
1901     napi_create_int32(env, FAILED, &result);
1902     return result;
1903 }
1904 
GLBindRenderbufferAbnormal(napi_env env,napi_callback_info info)1905 static napi_value GLBindRenderbufferAbnormal(napi_env env, napi_callback_info info)
1906 {
1907     (void)info;
1908     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1909     initGLES(&eglWindow);
1910     glBindRenderbuffer(GL_ZERO, GL_ZERO);
1911     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindRenderbuffer error");
1912     destroyGLES(&eglWindow);
1913     napi_value result = nullptr;
1914     napi_create_int32(env, FAILED, &result);
1915     return result;
1916 }
1917 
GLBindSamplerAbnormal(napi_env env,napi_callback_info info)1918 static napi_value GLBindSamplerAbnormal(napi_env env, napi_callback_info info)
1919 {
1920     (void)info;
1921     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1922     initGLES(&eglWindow);
1923     glBindSampler(GL_MAX_TEST_NUM, GL_ZERO);
1924     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindSampler error");
1925     destroyGLES(&eglWindow);
1926     napi_value result = nullptr;
1927     napi_create_int32(env, FAILED, &result);
1928     return result;
1929 }
1930 
GLBindTextureAbnormal(napi_env env,napi_callback_info info)1931 static napi_value GLBindTextureAbnormal(napi_env env, napi_callback_info info)
1932 {
1933     (void)info;
1934     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1935     initGLES(&eglWindow);
1936     glBindTexture(GL_ZERO, GL_ZERO);
1937     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindTexture error");
1938     destroyGLES(&eglWindow);
1939     napi_value result = nullptr;
1940     napi_create_int32(env, FAILED, &result);
1941     return result;
1942 }
1943 
GLBindTransformFeedbackAbnormal(napi_env env,napi_callback_info info)1944 static napi_value GLBindTransformFeedbackAbnormal(napi_env env, napi_callback_info info)
1945 {
1946     (void)info;
1947     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1948     initGLES(&eglWindow);
1949     glBindTransformFeedback(GL_ZERO, GL_ZERO);
1950     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindTransformFeedback error");
1951     destroyGLES(&eglWindow);
1952     napi_value result = nullptr;
1953     napi_create_int32(env, FAILED, &result);
1954     return result;
1955 }
1956 
GLBindVertexArrayAbnormal(napi_env env,napi_callback_info info)1957 static napi_value GLBindVertexArrayAbnormal(napi_env env, napi_callback_info info)
1958 {
1959     (void)info;
1960     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1961     initGLES(&eglWindow);
1962     glBindVertexArray(GL_MAX_TEST_NUM);
1963     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindVertexArray error");
1964     destroyGLES(&eglWindow);
1965     napi_value result = nullptr;
1966     napi_create_int32(env, FAILED, &result);
1967     return result;
1968 }
1969 
GLBindVertexBufferAbnormal(napi_env env,napi_callback_info info)1970 static napi_value GLBindVertexBufferAbnormal(napi_env env, napi_callback_info info)
1971 {
1972     (void)info;
1973     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1974     initGLES(&eglWindow);
1975     glBindVertexBuffer(GL_MAX_VERTEX_ATTRIB_BINDINGS, GL_ZERO, FAILED, FAILED);
1976     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBindVertexBuffer error");
1977     destroyGLES(&eglWindow);
1978     napi_value result = nullptr;
1979     napi_create_int32(env, FAILED, &result);
1980     return result;
1981 }
1982 
GLBlendEquationAbnormal(napi_env env,napi_callback_info info)1983 static napi_value GLBlendEquationAbnormal(napi_env env, napi_callback_info info)
1984 {
1985     (void)info;
1986     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
1987     initGLES(&eglWindow);
1988     glBlendEquation(GL_ZERO);
1989     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBlendEquation error");
1990     destroyGLES(&eglWindow);
1991     napi_value result = nullptr;
1992     napi_create_int32(env, FAILED, &result);
1993     return result;
1994 }
1995 
GLBlendEquationiAbnormal(napi_env env,napi_callback_info info)1996 static napi_value GLBlendEquationiAbnormal(napi_env env, napi_callback_info info)
1997 {
1998     (void)info;
1999     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2000     initGLES(&eglWindow);
2001     glBlendEquationi(GL_ZERO, GL_ZERO);
2002     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBlendEquationi error");
2003     destroyGLES(&eglWindow);
2004     napi_value result = nullptr;
2005     napi_create_int32(env, FAILED, &result);
2006     return result;
2007 }
2008 
GLBlendEquationSeparateAbnormal(napi_env env,napi_callback_info info)2009 static napi_value GLBlendEquationSeparateAbnormal(napi_env env, napi_callback_info info)
2010 {
2011     (void)info;
2012     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2013     initGLES(&eglWindow);
2014     glBlendEquationSeparate(GL_ZERO, GL_ZERO);
2015     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBlendEquationSeparate error");
2016     destroyGLES(&eglWindow);
2017     napi_value result = nullptr;
2018     napi_create_int32(env, FAILED, &result);
2019     return result;
2020 }
2021 
GLBlendEquationSeparateiAbnormal(napi_env env,napi_callback_info info)2022 static napi_value GLBlendEquationSeparateiAbnormal(napi_env env, napi_callback_info info)
2023 {
2024     (void)info;
2025     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2026     initGLES(&eglWindow);
2027     glBlendEquationSeparatei(GL_ZERO, GL_ZERO, GL_ZERO);
2028     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBlendEquationSeparatei error");
2029     destroyGLES(&eglWindow);
2030     napi_value result = nullptr;
2031     napi_create_int32(env, FAILED, &result);
2032     return result;
2033 }
2034 
GLBlendFuncAbnormal(napi_env env,napi_callback_info info)2035 static napi_value GLBlendFuncAbnormal(napi_env env, napi_callback_info info)
2036 {
2037     (void)info;
2038     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2039     initGLES(&eglWindow);
2040     glBlendFunc(GL_MAX_TEST_NUM, GL_MAX_TEST_NUM);
2041     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBlendFunc error");
2042     destroyGLES(&eglWindow);
2043     napi_value result = nullptr;
2044     napi_create_int32(env, FAILED, &result);
2045     return result;
2046 }
2047 
GLBlendFunciAbnormal(napi_env env,napi_callback_info info)2048 static napi_value GLBlendFunciAbnormal(napi_env env, napi_callback_info info)
2049 {
2050     (void)info;
2051     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2052     initGLES(&eglWindow);
2053     glBlendFunci(GL_MAX_DRAW_BUFFERS, GL_MAX_TEST_NUM, GL_MAX_TEST_NUM);
2054     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBlendFunci error");
2055     destroyGLES(&eglWindow);
2056     napi_value result = nullptr;
2057     napi_create_int32(env, FAILED, &result);
2058     return result;
2059 }
2060 
GLBlendFuncSeparateAbnormal(napi_env env,napi_callback_info info)2061 static napi_value GLBlendFuncSeparateAbnormal(napi_env env, napi_callback_info info)
2062 {
2063     (void)info;
2064     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2065     initGLES(&eglWindow);
2066     glBlendFuncSeparate(GL_CULL_FACE, GL_CULL_FACE, GL_CULL_FACE, GL_CULL_FACE);
2067     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBlendFuncSeparate error");
2068     destroyGLES(&eglWindow);
2069     napi_value result = nullptr;
2070     napi_create_int32(env, FAILED, &result);
2071     return result;
2072 }
2073 
GLBlendFuncSeparateiAbnormal(napi_env env,napi_callback_info info)2074 static napi_value GLBlendFuncSeparateiAbnormal(napi_env env, napi_callback_info info)
2075 {
2076     (void)info;
2077     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2078     initGLES(&eglWindow);
2079     glBlendFuncSeparatei(GL_MAX_DRAW_BUFFERS, GL_CULL_FACE, GL_CULL_FACE, GL_CULL_FACE, GL_CULL_FACE);
2080     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBlendFuncSeparatei error");
2081     destroyGLES(&eglWindow);
2082     napi_value result = nullptr;
2083     napi_create_int32(env, FAILED, &result);
2084     return result;
2085 }
2086 
GLBlitFramebufferAbnormal(napi_env env,napi_callback_info info)2087 static napi_value GLBlitFramebufferAbnormal(napi_env env, napi_callback_info info)
2088 {
2089     (void)info;
2090     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2091     initGLES(&eglWindow);
2092     glBlitFramebuffer(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
2093     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBlitFramebuffer error");
2094     destroyGLES(&eglWindow);
2095     napi_value result = nullptr;
2096     napi_create_int32(env, FAILED, &result);
2097     return result;
2098 }
2099 
GLBufferDataAbnormal(napi_env env,napi_callback_info info)2100 static napi_value GLBufferDataAbnormal(napi_env env, napi_callback_info info)
2101 {
2102     (void)info;
2103     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2104     initGLES(&eglWindow);
2105     glBufferData(GL_ARRAY_BUFFER, FAILED, nullptr, GL_STREAM_DRAW);
2106     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBufferData error");
2107     destroyGLES(&eglWindow);
2108     napi_value result = nullptr;
2109     napi_create_int32(env, FAILED, &result);
2110     return result;
2111 }
2112 
GLBufferSubDataAbnormal(napi_env env,napi_callback_info info)2113 static napi_value GLBufferSubDataAbnormal(napi_env env, napi_callback_info info)
2114 {
2115     (void)info;
2116     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2117     initGLES(&eglWindow);
2118     glBufferSubData(GL_ZERO, FAILED, FAILED, nullptr);
2119     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glBufferSubData error");
2120     destroyGLES(&eglWindow);
2121     napi_value result = nullptr;
2122     napi_create_int32(env, FAILED, &result);
2123     return result;
2124 }
2125 
GLCheckFramebufferStatusAbnormal(napi_env env,napi_callback_info info)2126 static napi_value GLCheckFramebufferStatusAbnormal(napi_env env, napi_callback_info info)
2127 {
2128     (void)info;
2129     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2130     initGLES(&eglWindow);
2131     glCheckFramebufferStatus(GL_ZERO);
2132     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCheckFramebufferStatus error");
2133     destroyGLES(&eglWindow);
2134     napi_value result = nullptr;
2135     napi_create_int32(env, FAILED, &result);
2136     return result;
2137 }
2138 
GLClearAbnormal(napi_env env,napi_callback_info info)2139 static napi_value GLClearAbnormal(napi_env env, napi_callback_info info)
2140 {
2141     (void)info;
2142     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2143     initGLES(&eglWindow);
2144     glClear(GL_COLOR_BUFFER_BIT | GL_ONE);
2145     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glClear error");
2146     destroyGLES(&eglWindow);
2147     napi_value result = nullptr;
2148     napi_create_int32(env, FAILED, &result);
2149     return result;
2150 }
2151 
GLClearBufferfiAbnormal(napi_env env,napi_callback_info info)2152 static napi_value GLClearBufferfiAbnormal(napi_env env, napi_callback_info info)
2153 {
2154     (void)info;
2155     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2156     initGLES(&eglWindow);
2157     glClearBufferfi(GL_ZERO, GL_ZERO, CLEAR_00, GL_ZERO);
2158     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glClearBufferfi error");
2159     destroyGLES(&eglWindow);
2160     napi_value result = nullptr;
2161     napi_create_int32(env, FAILED, &result);
2162     return result;
2163 }
2164 
GLClearBufferfvAbnormal(napi_env env,napi_callback_info info)2165 static napi_value GLClearBufferfvAbnormal(napi_env env, napi_callback_info info)
2166 {
2167     (void)info;
2168     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2169     initGLES(&eglWindow);
2170     glClearBufferfv(GL_ZERO, GL_ZERO, nullptr);
2171     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "GlClearBufferfvAbnormal error");
2172     destroyGLES(&eglWindow);
2173     napi_value result = nullptr;
2174     napi_create_int32(env, FAILED, &result);
2175     return result;
2176 }
2177 
GLClearBufferivAbnormal(napi_env env,napi_callback_info info)2178 static napi_value GLClearBufferivAbnormal(napi_env env, napi_callback_info info)
2179 {
2180     (void)info;
2181     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2182     initGLES(&eglWindow);
2183     glClearBufferiv(GL_ZERO, GL_ZERO, nullptr);
2184     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glClearBufferiv error");
2185     destroyGLES(&eglWindow);
2186     napi_value result = nullptr;
2187     napi_create_int32(env, FAILED, &result);
2188     return result;
2189 }
2190 
GLClearBufferuivAbnormal(napi_env env,napi_callback_info info)2191 static napi_value GLClearBufferuivAbnormal(napi_env env, napi_callback_info info)
2192 {
2193     (void)info;
2194     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2195     initGLES(&eglWindow);
2196     glClearBufferuiv(GL_ZERO, GL_ZERO, nullptr);
2197     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glClearBufferuiv error");
2198     destroyGLES(&eglWindow);
2199     napi_value result = nullptr;
2200     napi_create_int32(env, FAILED, &result);
2201     return result;
2202 }
2203 
GLClientWaitSyncAbnormal(napi_env env,napi_callback_info info)2204 static napi_value GLClientWaitSyncAbnormal(napi_env env, napi_callback_info info)
2205 {
2206     (void)info;
2207     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2208     initGLES(&eglWindow);
2209     glClientWaitSync(reinterpret_cast<GLsync>(GL_MAX_TEST_NUM), GL_SYNC_FLUSH_COMMANDS_BIT, GL_ZERO);
2210     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glClientWaitSync error");
2211     destroyGLES(&eglWindow);
2212     napi_value result = nullptr;
2213     napi_create_int32(env, FAILED, &result);
2214     return result;
2215 }
2216 
GLColorMaskiAbnormal(napi_env env,napi_callback_info info)2217 static napi_value GLColorMaskiAbnormal(napi_env env, napi_callback_info info)
2218 {
2219     (void)info;
2220     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2221     initGLES(&eglWindow);
2222     glColorMaski(GL_MAX_DRAW_BUFFERS, GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
2223     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glColorMaski error");
2224     destroyGLES(&eglWindow);
2225     napi_value result = nullptr;
2226     napi_create_int32(env, FAILED, &result);
2227     return result;
2228 }
2229 
GLCopyBufferSubDataAbnormal(napi_env env,napi_callback_info info)2230 static napi_value GLCopyBufferSubDataAbnormal(napi_env env, napi_callback_info info)
2231 {
2232     (void)info;
2233     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2234     initGLES(&eglWindow);
2235     glCopyBufferSubData(GL_ZERO, GL_ZERO, FAILED, FAILED, FAILED);
2236     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCopyBufferSubData error");
2237     destroyGLES(&eglWindow);
2238     napi_value result = nullptr;
2239     napi_create_int32(env, FAILED, &result);
2240     return result;
2241 }
2242 
GLCopyImageSubDataAbnormal(napi_env env,napi_callback_info info)2243 static napi_value GLCopyImageSubDataAbnormal(napi_env env, napi_callback_info info)
2244 {
2245     (void)info;
2246     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2247     initGLES(&eglWindow);
2248     glCopyImageSubData(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO,
2249                        GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
2250     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCopyImageSubData error");
2251     destroyGLES(&eglWindow);
2252     napi_value result = nullptr;
2253     napi_create_int32(env, FAILED, &result);
2254     return result;
2255 }
2256 
GLCopyTexImage2DAbnormal(napi_env env,napi_callback_info info)2257 static napi_value GLCopyTexImage2DAbnormal(napi_env env, napi_callback_info info)
2258 {
2259     (void)info;
2260     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2261     initGLES(&eglWindow);
2262     glCopyTexImage2D(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
2263     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCopyTexImage2D error");
2264     destroyGLES(&eglWindow);
2265     napi_value result = nullptr;
2266     napi_create_int32(env, FAILED, &result);
2267     return result;
2268 }
2269 
GLCopyTexSubImage2DAbnormal(napi_env env,napi_callback_info info)2270 static napi_value GLCopyTexSubImage2DAbnormal(napi_env env, napi_callback_info info)
2271 {
2272     (void)info;
2273     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2274     initGLES(&eglWindow);
2275     glCopyTexSubImage2D(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
2276     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCopyTexSubImage2D error");
2277     destroyGLES(&eglWindow);
2278     napi_value result = nullptr;
2279     napi_create_int32(env, FAILED, &result);
2280     return result;
2281 }
2282 
GLCreateShaderAbnormal(napi_env env,napi_callback_info info)2283 static napi_value GLCreateShaderAbnormal(napi_env env, napi_callback_info info)
2284 {
2285     (void)info;
2286     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2287     initGLES(&eglWindow);
2288     glCreateShader(GL_ZERO);
2289     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCreateShader error");
2290     destroyGLES(&eglWindow);
2291     napi_value result = nullptr;
2292     napi_create_int32(env, FAILED, &result);
2293     return result;
2294 }
2295 
GLCreateShaderProgramvAbnormal(napi_env env,napi_callback_info info)2296 static napi_value GLCreateShaderProgramvAbnormal(napi_env env, napi_callback_info info)
2297 {
2298     (void)info;
2299     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2300     initGLES(&eglWindow);
2301     glCreateShaderProgramv(GL_ZERO, FAILED, nullptr);
2302     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCreateShaderProgramv error");
2303     destroyGLES(&eglWindow);
2304     napi_value result = nullptr;
2305     napi_create_int32(env, FAILED, &result);
2306     return result;
2307 }
2308 
GLCullFaceAbnormal(napi_env env,napi_callback_info info)2309 static napi_value GLCullFaceAbnormal(napi_env env, napi_callback_info info)
2310 {
2311     (void)info;
2312     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2313     initGLES(&eglWindow);
2314     glCullFace(GL_ZERO);
2315     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCullFace error");
2316     destroyGLES(&eglWindow);
2317     napi_value result = nullptr;
2318     napi_create_int32(env, FAILED, &result);
2319     return result;
2320 }
2321 
GLDebugMessageControlAbnormal(napi_env env,napi_callback_info info)2322 static napi_value GLDebugMessageControlAbnormal(napi_env env, napi_callback_info info)
2323 {
2324     (void)info;
2325     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2326     initGLES(&eglWindow);
2327     glDebugMessageControl(GL_ZERO, GL_ZERO, GL_ZERO, FAILED, nullptr, GL_TRUE);
2328     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDebugMessageControl error");
2329     destroyGLES(&eglWindow);
2330     napi_value result = nullptr;
2331     napi_create_int32(env, FAILED, &result);
2332     return result;
2333 }
2334 
GLDeleteBuffersAbnormal(napi_env env,napi_callback_info info)2335 static napi_value GLDeleteBuffersAbnormal(napi_env env, napi_callback_info info)
2336 {
2337     (void)info;
2338     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2339     initGLES(&eglWindow);
2340     glDeleteBuffers(FAILED, nullptr);
2341     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteBuffers error");
2342     destroyGLES(&eglWindow);
2343     napi_value result = nullptr;
2344     napi_create_int32(env, FAILED, &result);
2345     return result;
2346 }
2347 
GLDeleteFramebuffersAbnormal(napi_env env,napi_callback_info info)2348 static napi_value GLDeleteFramebuffersAbnormal(napi_env env, napi_callback_info info)
2349 {
2350     (void)info;
2351     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2352     initGLES(&eglWindow);
2353     glDeleteFramebuffers(FAILED, nullptr);
2354     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteFramebuffers error");
2355     destroyGLES(&eglWindow);
2356     napi_value result = nullptr;
2357     napi_create_int32(env, FAILED, &result);
2358     return result;
2359 }
2360 
GLDeleteProgramAbnormal(napi_env env,napi_callback_info info)2361 static napi_value GLDeleteProgramAbnormal(napi_env env, napi_callback_info info)
2362 {
2363     (void)info;
2364     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2365     initGLES(&eglWindow);
2366     glDeleteProgram(GL_MAX_TEST_NUM);
2367     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteProgram error");
2368     destroyGLES(&eglWindow);
2369     napi_value result = nullptr;
2370     napi_create_int32(env, FAILED, &result);
2371     return result;
2372 }
2373 
GLDeleteProgramPipelinesAbnormal(napi_env env,napi_callback_info info)2374 static napi_value GLDeleteProgramPipelinesAbnormal(napi_env env, napi_callback_info info)
2375 {
2376     (void)info;
2377     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2378     initGLES(&eglWindow);
2379     glDeleteProgramPipelines(FAILED, nullptr);
2380     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteProgramPipelines error");
2381     destroyGLES(&eglWindow);
2382     napi_value result = nullptr;
2383     napi_create_int32(env, FAILED, &result);
2384     return result;
2385 }
2386 
GLDeleteQueriesAbnormal(napi_env env,napi_callback_info info)2387 static napi_value GLDeleteQueriesAbnormal(napi_env env, napi_callback_info info)
2388 {
2389     (void)info;
2390     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2391     initGLES(&eglWindow);
2392     glDeleteQueries(FAILED, nullptr);
2393     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteQueries error");
2394     destroyGLES(&eglWindow);
2395     napi_value result = nullptr;
2396     napi_create_int32(env, FAILED, &result);
2397     return result;
2398 }
2399 
GLDeleteRenderbuffersAbnormal(napi_env env,napi_callback_info info)2400 static napi_value GLDeleteRenderbuffersAbnormal(napi_env env, napi_callback_info info)
2401 {
2402     (void)info;
2403     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2404     initGLES(&eglWindow);
2405     glDeleteRenderbuffers(FAILED, nullptr);
2406     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteRenderbuffers error");
2407     destroyGLES(&eglWindow);
2408     napi_value result = nullptr;
2409     napi_create_int32(env, FAILED, &result);
2410     return result;
2411 }
2412 
GLDeleteSamplersAbnormal(napi_env env,napi_callback_info info)2413 static napi_value GLDeleteSamplersAbnormal(napi_env env, napi_callback_info info)
2414 {
2415     (void)info;
2416     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2417     initGLES(&eglWindow);
2418     glDeleteSamplers(FAILED, nullptr);
2419     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteSamplers error");
2420     destroyGLES(&eglWindow);
2421     napi_value result = nullptr;
2422     napi_create_int32(env, FAILED, &result);
2423     return result;
2424 }
2425 
GLDeleteShaderAbnormal(napi_env env,napi_callback_info info)2426 static napi_value GLDeleteShaderAbnormal(napi_env env, napi_callback_info info)
2427 {
2428     (void)info;
2429     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2430     initGLES(&eglWindow);
2431     glDeleteShader(GL_MAX_TEST_NUM);
2432     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteShader error");
2433     destroyGLES(&eglWindow);
2434     napi_value result = nullptr;
2435     napi_create_int32(env, FAILED, &result);
2436     return result;
2437 }
2438 
GLDeleteSyncAbnormal(napi_env env,napi_callback_info info)2439 static napi_value GLDeleteSyncAbnormal(napi_env env, napi_callback_info info)
2440 {
2441     (void)info;
2442     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2443     initGLES(&eglWindow);
2444     glDeleteSync(reinterpret_cast<GLsync>(GL_MAX_TEST_NUM));
2445     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteSync error");
2446     destroyGLES(&eglWindow);
2447     napi_value result = nullptr;
2448     napi_create_int32(env, FAILED, &result);
2449     return result;
2450 }
2451 
GLDeleteTexturesAbnormal(napi_env env,napi_callback_info info)2452 static napi_value GLDeleteTexturesAbnormal(napi_env env, napi_callback_info info)
2453 {
2454     (void)info;
2455     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2456     initGLES(&eglWindow);
2457     glDeleteTextures(FAILED, nullptr);
2458     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteTextures error");
2459     destroyGLES(&eglWindow);
2460     napi_value result = nullptr;
2461     napi_create_int32(env, FAILED, &result);
2462     return result;
2463 }
2464 
GLDeleteTransformFeedbacksAbnormal(napi_env env,napi_callback_info info)2465 static napi_value GLDeleteTransformFeedbacksAbnormal(napi_env env, napi_callback_info info)
2466 {
2467     (void)info;
2468     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2469     initGLES(&eglWindow);
2470     glDeleteTransformFeedbacks(FAILED, nullptr);
2471     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteTransformFeedbacks error");
2472     destroyGLES(&eglWindow);
2473     napi_value result = nullptr;
2474     napi_create_int32(env, FAILED, &result);
2475     return result;
2476 }
2477 
GLDeleteVertexArraysAbnormal(napi_env env,napi_callback_info info)2478 static napi_value GLDeleteVertexArraysAbnormal(napi_env env, napi_callback_info info)
2479 {
2480     (void)info;
2481     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2482     initGLES(&eglWindow);
2483     glDeleteVertexArrays(FAILED, nullptr);
2484     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDeleteVertexArrays error");
2485     destroyGLES(&eglWindow);
2486     napi_value result = nullptr;
2487     napi_create_int32(env, FAILED, &result);
2488     return result;
2489 }
2490 
GLDepthFuncAbnormal(napi_env env,napi_callback_info info)2491 static napi_value GLDepthFuncAbnormal(napi_env env, napi_callback_info info)
2492 {
2493     (void)info;
2494     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2495     initGLES(&eglWindow);
2496     glDepthFunc(GL_ZERO);
2497     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDepthFunc error");
2498     destroyGLES(&eglWindow);
2499     napi_value result = nullptr;
2500     napi_create_int32(env, FAILED, &result);
2501     return result;
2502 }
2503 
GLDetachShaderAbnormal(napi_env env,napi_callback_info info)2504 static napi_value GLDetachShaderAbnormal(napi_env env, napi_callback_info info)
2505 {
2506     (void)info;
2507     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2508     initGLES(&eglWindow);
2509     glDetachShader(GL_MAX_TEST_NUM, GL_MAX_TEST_NUM);
2510     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDetachShader error");
2511     destroyGLES(&eglWindow);
2512     napi_value result = nullptr;
2513     napi_create_int32(env, FAILED, &result);
2514     return result;
2515 }
2516 
GLDisableAbnormal(napi_env env,napi_callback_info info)2517 static napi_value GLDisableAbnormal(napi_env env, napi_callback_info info)
2518 {
2519     (void)info;
2520     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2521     initGLES(&eglWindow);
2522     glDisable(GL_ZERO);
2523     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDisable error");
2524     destroyGLES(&eglWindow);
2525     napi_value result = nullptr;
2526     napi_create_int32(env, FAILED, &result);
2527     return result;
2528 }
2529 
GLDisableiAbnormal(napi_env env,napi_callback_info info)2530 static napi_value GLDisableiAbnormal(napi_env env, napi_callback_info info)
2531 {
2532     (void)info;
2533     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2534     initGLES(&eglWindow);
2535     glDisablei(GL_ZERO, GL_ZERO);
2536     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDisablei error");
2537     destroyGLES(&eglWindow);
2538     napi_value result = nullptr;
2539     napi_create_int32(env, FAILED, &result);
2540     return result;
2541 }
2542 
GLDisableVertexAttribArrayAbnormal(napi_env env,napi_callback_info info)2543 static napi_value GLDisableVertexAttribArrayAbnormal(napi_env env, napi_callback_info info)
2544 {
2545     (void)info;
2546     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2547     initGLES(&eglWindow);
2548     glDisableVertexAttribArray(GL_MAX_VERTEX_ATTRIBS);
2549     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDisableVertexAttribArray error");
2550     destroyGLES(&eglWindow);
2551     napi_value result = nullptr;
2552     napi_create_int32(env, FAILED, &result);
2553     return result;
2554 }
2555 
GLDispatchComputeAbnormal(napi_env env,napi_callback_info info)2556 static napi_value GLDispatchComputeAbnormal(napi_env env, napi_callback_info info)
2557 {
2558     (void)info;
2559     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2560     initGLES(&eglWindow);
2561     glDispatchCompute(GL_MAX_TEST_NUM, GL_MAX_TEST_NUM, GL_MAX_TEST_NUM);
2562     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDispatchCompute error");
2563     destroyGLES(&eglWindow);
2564     napi_value result = nullptr;
2565     napi_create_int32(env, FAILED, &result);
2566     return result;
2567 }
2568 
GLDispatchComputeIndirectAbnormal(napi_env env,napi_callback_info info)2569 static napi_value GLDispatchComputeIndirectAbnormal(napi_env env, napi_callback_info info)
2570 {
2571     (void)info;
2572     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2573     initGLES(&eglWindow);
2574     glDispatchComputeIndirect(FAILED);
2575     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDispatchComputeIndirect error");
2576     destroyGLES(&eglWindow);
2577     napi_value result = nullptr;
2578     napi_create_int32(env, FAILED, &result);
2579     return result;
2580 }
2581 
GLDrawArraysAbnormal(napi_env env,napi_callback_info info)2582 static napi_value GLDrawArraysAbnormal(napi_env env, napi_callback_info info)
2583 {
2584     (void)info;
2585     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2586     initGLES(&eglWindow);
2587     glDrawArrays(GL_POINTS, GL_ZERO, FAILED);
2588     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawArrays error");
2589     destroyGLES(&eglWindow);
2590     napi_value result = nullptr;
2591     napi_create_int32(env, FAILED, &result);
2592     return result;
2593 }
2594 
GLDrawArraysIndirectAbnormal(napi_env env,napi_callback_info info)2595 static napi_value GLDrawArraysIndirectAbnormal(napi_env env, napi_callback_info info)
2596 {
2597     (void)info;
2598     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2599     initGLES(&eglWindow);
2600     glDrawArraysIndirect(GL_ZERO, nullptr);
2601     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawArraysIndirect error");
2602     destroyGLES(&eglWindow);
2603     napi_value result = nullptr;
2604     napi_create_int32(env, FAILED, &result);
2605     return result;
2606 }
2607 
GLDrawArraysInstancedAbnormal(napi_env env,napi_callback_info info)2608 static napi_value GLDrawArraysInstancedAbnormal(napi_env env, napi_callback_info info)
2609 {
2610     (void)info;
2611     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2612     initGLES(&eglWindow);
2613     glDrawArraysInstanced(GL_POINTS, GL_ZERO, FAILED, FAILED);
2614     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawArraysInstanced error");
2615     destroyGLES(&eglWindow);
2616     napi_value result = nullptr;
2617     napi_create_int32(env, FAILED, &result);
2618     return result;
2619 }
2620 
GLDrawBuffersAbnormal(napi_env env,napi_callback_info info)2621 static napi_value GLDrawBuffersAbnormal(napi_env env, napi_callback_info info)
2622 {
2623     (void)info;
2624     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2625     initGLES(&eglWindow);
2626     glDrawBuffers(FAILED, nullptr);
2627     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawBuffers error");
2628     destroyGLES(&eglWindow);
2629     napi_value result = nullptr;
2630     napi_create_int32(env, FAILED, &result);
2631     return result;
2632 }
2633 
GLFlushMappedBufferRangeAbnormal(napi_env env,napi_callback_info info)2634 static napi_value GLFlushMappedBufferRangeAbnormal(napi_env env, napi_callback_info info)
2635 {
2636     (void)info;
2637     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2638     initGLES(&eglWindow);
2639     glFlushMappedBufferRange(GL_ARRAY_BUFFER, FAILED, FAILED);
2640     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glFlushMappedBufferRange error");
2641     destroyGLES(&eglWindow);
2642     napi_value result = nullptr;
2643     napi_create_int32(env, FAILED, &result);
2644     return result;
2645 }
2646 
GLFramebufferParameteriAbnormal(napi_env env,napi_callback_info info)2647 static napi_value GLFramebufferParameteriAbnormal(napi_env env, napi_callback_info info)
2648 {
2649     (void)info;
2650     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2651     initGLES(&eglWindow);
2652     glFramebufferParameteri(GL_ZERO, GL_FRAMEBUFFER_DEFAULT_WIDTH, GL_ZERO);
2653     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glFramebufferParameteri error");
2654     destroyGLES(&eglWindow);
2655     napi_value result = nullptr;
2656     napi_create_int32(env, FAILED, &result);
2657     return result;
2658 }
2659 
GLFramebufferRenderbufferAbnormal(napi_env env,napi_callback_info info)2660 static napi_value GLFramebufferRenderbufferAbnormal(napi_env env, napi_callback_info info)
2661 {
2662     (void)info;
2663     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2664     initGLES(&eglWindow);
2665     glFramebufferRenderbuffer(GL_ZERO, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, GL_ZERO);
2666     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glFramebufferRenderbuffer error");
2667     destroyGLES(&eglWindow);
2668     napi_value result = nullptr;
2669     napi_create_int32(env, FAILED, &result);
2670     return result;
2671 }
2672 
GLFramebufferTextureAbnormal(napi_env env,napi_callback_info info)2673 static napi_value GLFramebufferTextureAbnormal(napi_env env, napi_callback_info info)
2674 {
2675     (void)info;
2676     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2677     initGLES(&eglWindow);
2678     glFramebufferTexture(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
2679     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glFramebufferTexture error");
2680     destroyGLES(&eglWindow);
2681     napi_value result = nullptr;
2682     napi_create_int32(env, FAILED, &result);
2683     return result;
2684 }
2685 
GLFramebufferTexture2DAbnormal(napi_env env,napi_callback_info info)2686 static napi_value GLFramebufferTexture2DAbnormal(napi_env env, napi_callback_info info)
2687 {
2688     (void)info;
2689     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2690     initGLES(&eglWindow);
2691     glFramebufferTexture2D(GL_ZERO, GL_ZERO, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_ZERO, GL_ZERO);
2692     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glFramebufferTexture2D error");
2693     destroyGLES(&eglWindow);
2694     napi_value result = nullptr;
2695     napi_create_int32(env, FAILED, &result);
2696     return result;
2697 }
2698 
GLFramebufferTextureLayerAbnormal(napi_env env,napi_callback_info info)2699 static napi_value GLFramebufferTextureLayerAbnormal(napi_env env, napi_callback_info info)
2700 {
2701     (void)info;
2702     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2703     initGLES(&eglWindow);
2704     glFramebufferTextureLayer(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
2705     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glFramebufferTextureLayer error");
2706     destroyGLES(&eglWindow);
2707     napi_value result = nullptr;
2708     napi_create_int32(env, FAILED, &result);
2709     return result;
2710 }
2711 
GLFrontFaceAbnormal(napi_env env,napi_callback_info info)2712 static napi_value GLFrontFaceAbnormal(napi_env env, napi_callback_info info)
2713 {
2714     (void)info;
2715     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2716     initGLES(&eglWindow);
2717     glFrontFace(GL_ZERO);
2718     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glFrontFace error");
2719     destroyGLES(&eglWindow);
2720     napi_value result = nullptr;
2721     napi_create_int32(env, FAILED, &result);
2722     return result;
2723 }
2724 
GLGenBuffersAbnormal(napi_env env,napi_callback_info info)2725 static napi_value GLGenBuffersAbnormal(napi_env env, napi_callback_info info)
2726 {
2727     (void)info;
2728     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2729     initGLES(&eglWindow);
2730     glGenBuffers(FAILED, nullptr);
2731     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGenBuffers error");
2732     destroyGLES(&eglWindow);
2733     napi_value result = nullptr;
2734     napi_create_int32(env, FAILED, &result);
2735     return result;
2736 }
2737 
GLGenerateMipmapAbnormal(napi_env env,napi_callback_info info)2738 static napi_value GLGenerateMipmapAbnormal(napi_env env, napi_callback_info info)
2739 {
2740     (void)info;
2741     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2742     initGLES(&eglWindow);
2743     glGenerateMipmap(GL_ZERO);
2744     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGenerateMipmap error");
2745     destroyGLES(&eglWindow);
2746     napi_value result = nullptr;
2747     napi_create_int32(env, FAILED, &result);
2748     return result;
2749 }
2750 
GLGenFramebuffersAbnormal(napi_env env,napi_callback_info info)2751 static napi_value GLGenFramebuffersAbnormal(napi_env env, napi_callback_info info)
2752 {
2753     (void)info;
2754     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2755     initGLES(&eglWindow);
2756     glGenFramebuffers(FAILED, nullptr);
2757     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGenFramebuffers error");
2758     destroyGLES(&eglWindow);
2759     napi_value result = nullptr;
2760     napi_create_int32(env, FAILED, &result);
2761     return result;
2762 }
2763 
GLGenProgramPipelinesAbnormal(napi_env env,napi_callback_info info)2764 static napi_value GLGenProgramPipelinesAbnormal(napi_env env, napi_callback_info info)
2765 {
2766     (void)info;
2767     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2768     initGLES(&eglWindow);
2769     glGenProgramPipelines(FAILED, nullptr);
2770     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGenProgramPipelines error");
2771     destroyGLES(&eglWindow);
2772     napi_value result = nullptr;
2773     napi_create_int32(env, FAILED, &result);
2774     return result;
2775 }
2776 
GLGenQueriesAbnormal(napi_env env,napi_callback_info info)2777 static napi_value GLGenQueriesAbnormal(napi_env env, napi_callback_info info)
2778 {
2779     (void)info;
2780     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2781     initGLES(&eglWindow);
2782     glGenQueries(FAILED, nullptr);
2783     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGenQueries error");
2784     destroyGLES(&eglWindow);
2785     napi_value result = nullptr;
2786     napi_create_int32(env, FAILED, &result);
2787     return result;
2788 }
2789 
GLGenRenderbuffersAbnormal(napi_env env,napi_callback_info info)2790 static napi_value GLGenRenderbuffersAbnormal(napi_env env, napi_callback_info info)
2791 {
2792     (void)info;
2793     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2794     initGLES(&eglWindow);
2795     glGenRenderbuffers(FAILED, nullptr);
2796     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGenRenderbuffers error");
2797     destroyGLES(&eglWindow);
2798     napi_value result = nullptr;
2799     napi_create_int32(env, FAILED, &result);
2800     return result;
2801 }
2802 
GLGenSamplersAbnormal(napi_env env,napi_callback_info info)2803 static napi_value GLGenSamplersAbnormal(napi_env env, napi_callback_info info)
2804 {
2805     (void)info;
2806     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2807     initGLES(&eglWindow);
2808     glGenSamplers(FAILED, nullptr);
2809     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGenSamplers error");
2810     destroyGLES(&eglWindow);
2811     napi_value result = nullptr;
2812     napi_create_int32(env, FAILED, &result);
2813     return result;
2814 }
2815 
GLGenTexturesAbnormal(napi_env env,napi_callback_info info)2816 static napi_value GLGenTexturesAbnormal(napi_env env, napi_callback_info info)
2817 {
2818     (void)info;
2819     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2820     initGLES(&eglWindow);
2821     glGenTextures(FAILED, nullptr);
2822     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGenTextures error");
2823     destroyGLES(&eglWindow);
2824     napi_value result = nullptr;
2825     napi_create_int32(env, FAILED, &result);
2826     return result;
2827 }
2828 
GLGenTransformFeedbacksAbnormal(napi_env env,napi_callback_info info)2829 static napi_value GLGenTransformFeedbacksAbnormal(napi_env env, napi_callback_info info)
2830 {
2831     (void)info;
2832     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2833     initGLES(&eglWindow);
2834     glGenTransformFeedbacks(FAILED, nullptr);
2835     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGenTransformFeedbacks error");
2836     destroyGLES(&eglWindow);
2837     napi_value result = nullptr;
2838     napi_create_int32(env, FAILED, &result);
2839     return result;
2840 }
2841 
GLGenVertexArraysAbnormal(napi_env env,napi_callback_info info)2842 static napi_value GLGenVertexArraysAbnormal(napi_env env, napi_callback_info info)
2843 {
2844     (void)info;
2845     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2846     initGLES(&eglWindow);
2847     glGenVertexArrays(FAILED, nullptr);
2848     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGenVertexArrays error");
2849     destroyGLES(&eglWindow);
2850     napi_value result = nullptr;
2851     napi_create_int32(env, FAILED, &result);
2852     return result;
2853 }
2854 
GLGetActiveAttribAbnormal(napi_env env,napi_callback_info info)2855 static napi_value GLGetActiveAttribAbnormal(napi_env env, napi_callback_info info)
2856 {
2857     (void)info;
2858     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2859     initGLES(&eglWindow);
2860     glGetActiveAttrib(GL_ZERO, GL_ZERO, FAILED, nullptr, nullptr, nullptr, nullptr);
2861     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetActiveAttrib error");
2862     destroyGLES(&eglWindow);
2863     napi_value result = nullptr;
2864     napi_create_int32(env, FAILED, &result);
2865     return result;
2866 }
2867 
GLGetAttachedShadersAbnormal(napi_env env,napi_callback_info info)2868 static napi_value GLGetAttachedShadersAbnormal(napi_env env, napi_callback_info info)
2869 {
2870     (void)info;
2871     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2872     initGLES(&eglWindow);
2873     glGetAttachedShaders(GL_ZERO, FAILED, nullptr, nullptr);
2874     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetAttachedShaders error");
2875     destroyGLES(&eglWindow);
2876     napi_value result = nullptr;
2877     napi_create_int32(env, FAILED, &result);
2878     return result;
2879 }
2880 
GLGetAttribLocationAbnormal(napi_env env,napi_callback_info info)2881 static napi_value GLGetAttribLocationAbnormal(napi_env env, napi_callback_info info)
2882 {
2883     (void)info;
2884     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2885     initGLES(&eglWindow);
2886 
2887     GLint ret = glGetAttribLocation(GL_ZERO, nullptr);
2888     NAPI_ASSERT(env, ret == FAILED, "glGetAttribLocation error");
2889     destroyGLES(&eglWindow);
2890     napi_value result = nullptr;
2891     napi_create_int32(env, FAILED, &result);
2892     return result;
2893 }
2894 
GLGetBooleani_vAbnormal(napi_env env,napi_callback_info info)2895 static napi_value GLGetBooleani_vAbnormal(napi_env env, napi_callback_info info)
2896 {
2897     (void)info;
2898     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2899     initGLES(&eglWindow);
2900     glGetBooleani_v(GL_ZERO, GL_ZERO, nullptr);
2901     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetBooleani_v error");
2902     destroyGLES(&eglWindow);
2903     napi_value result = nullptr;
2904     napi_create_int32(env, FAILED, &result);
2905     return result;
2906 }
2907 
GLGetBooleanvAbnormal(napi_env env,napi_callback_info info)2908 static napi_value GLGetBooleanvAbnormal(napi_env env, napi_callback_info info)
2909 {
2910     (void)info;
2911     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2912     initGLES(&eglWindow);
2913     glGetBooleanv(GL_ZERO, nullptr);
2914     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetBooleanv error");
2915     destroyGLES(&eglWindow);
2916     napi_value result = nullptr;
2917     napi_create_int32(env, FAILED, &result);
2918     return result;
2919 }
2920 
GLGetBufferParameteri64vAbnormal(napi_env env,napi_callback_info info)2921 static napi_value GLGetBufferParameteri64vAbnormal(napi_env env, napi_callback_info info)
2922 {
2923     (void)info;
2924     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2925     initGLES(&eglWindow);
2926     glGetBufferParameteri64v(GL_ZERO, GL_ZERO, nullptr);
2927     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetBufferParameteri64v error");
2928     destroyGLES(&eglWindow);
2929     napi_value result = nullptr;
2930     napi_create_int32(env, FAILED, &result);
2931     return result;
2932 }
2933 
GLGetBufferParameterivAbnormal(napi_env env,napi_callback_info info)2934 static napi_value GLGetBufferParameterivAbnormal(napi_env env, napi_callback_info info)
2935 {
2936     (void)info;
2937     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2938     initGLES(&eglWindow);
2939     glGetBufferParameteriv(GL_ZERO, GL_ZERO, nullptr);
2940     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetBufferParameteriv error");
2941     destroyGLES(&eglWindow);
2942     napi_value result = nullptr;
2943     napi_create_int32(env, FAILED, &result);
2944     return result;
2945 }
2946 
GLGetBufferPointervAbnormal(napi_env env,napi_callback_info info)2947 static napi_value GLGetBufferPointervAbnormal(napi_env env, napi_callback_info info)
2948 {
2949     (void)info;
2950     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2951     initGLES(&eglWindow);
2952     glGetBufferPointerv(GL_ZERO, GL_ZERO, nullptr);
2953     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetBufferPointerv error");
2954     destroyGLES(&eglWindow);
2955     napi_value result = nullptr;
2956     napi_create_int32(env, FAILED, &result);
2957     return result;
2958 }
2959 
GLGetFloatvAbnormal(napi_env env,napi_callback_info info)2960 static napi_value GLGetFloatvAbnormal(napi_env env, napi_callback_info info)
2961 {
2962     (void)info;
2963     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2964     initGLES(&eglWindow);
2965     glGetFloatv(GL_ZERO, nullptr);
2966     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetFloatv error");
2967     destroyGLES(&eglWindow);
2968     napi_value result = nullptr;
2969     napi_create_int32(env, FAILED, &result);
2970     return result;
2971 }
2972 
GLGetFragDataLocationAbnormal(napi_env env,napi_callback_info info)2973 static napi_value GLGetFragDataLocationAbnormal(napi_env env, napi_callback_info info)
2974 {
2975     (void)info;
2976     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2977     initGLES(&eglWindow);
2978     glGetFragDataLocation(GL_MAX_TEST_NUM, nullptr);
2979     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetFragDataLocation error");
2980     destroyGLES(&eglWindow);
2981     napi_value result = nullptr;
2982     napi_create_int32(env, FAILED, &result);
2983     return result;
2984 }
2985 
GLGetFramebufferAttachmentParameterivAbnormal(napi_env env,napi_callback_info info)2986 static napi_value GLGetFramebufferAttachmentParameterivAbnormal(napi_env env, napi_callback_info info)
2987 {
2988     (void)info;
2989     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
2990     initGLES(&eglWindow);
2991     glGetFramebufferAttachmentParameteriv(GL_ZERO, GL_ZERO, GL_ZERO, nullptr);
2992     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetFramebufferAttachmentParameteriv error");
2993     destroyGLES(&eglWindow);
2994     napi_value result = nullptr;
2995     napi_create_int32(env, FAILED, &result);
2996     return result;
2997 }
2998 
GLGetFramebufferParameterivAbnormal(napi_env env,napi_callback_info info)2999 static napi_value GLGetFramebufferParameterivAbnormal(napi_env env, napi_callback_info info)
3000 {
3001     (void)info;
3002     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3003     initGLES(&eglWindow);
3004     glGetFramebufferParameteriv(GL_ZERO, GL_ZERO, nullptr);
3005     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetFramebufferParameteriv error");
3006     destroyGLES(&eglWindow);
3007     napi_value result = nullptr;
3008     napi_create_int32(env, FAILED, &result);
3009     return result;
3010 }
3011 
GLGetInteger64i_vAbnormal(napi_env env,napi_callback_info info)3012 static napi_value GLGetInteger64i_vAbnormal(napi_env env, napi_callback_info info)
3013 {
3014     (void)info;
3015     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3016     initGLES(&eglWindow);
3017     glGetInteger64i_v(GL_ZERO, GL_ZERO, nullptr);
3018     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetInteger64i_v error");
3019     destroyGLES(&eglWindow);
3020     napi_value result = nullptr;
3021     napi_create_int32(env, FAILED, &result);
3022     return result;
3023 }
3024 
GLGetInteger64vAbnormal(napi_env env,napi_callback_info info)3025 static napi_value GLGetInteger64vAbnormal(napi_env env, napi_callback_info info)
3026 {
3027     (void)info;
3028     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3029     initGLES(&eglWindow);
3030     glGetInteger64v(GL_ZERO, nullptr);
3031     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetInteger64v error");
3032     destroyGLES(&eglWindow);
3033     napi_value result = nullptr;
3034     napi_create_int32(env, FAILED, &result);
3035     return result;
3036 }
3037 
GLGetIntegeri_vAbnormal(napi_env env,napi_callback_info info)3038 static napi_value GLGetIntegeri_vAbnormal(napi_env env, napi_callback_info info)
3039 {
3040     (void)info;
3041     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3042     initGLES(&eglWindow);
3043     glGetIntegeri_v(GL_ZERO, GL_ZERO, nullptr);
3044     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetIntegeri_v error");
3045     destroyGLES(&eglWindow);
3046     napi_value result = nullptr;
3047     napi_create_int32(env, FAILED, &result);
3048     return result;
3049 }
3050 
GLGetIntegervAbnormal(napi_env env,napi_callback_info info)3051 static napi_value GLGetIntegervAbnormal(napi_env env, napi_callback_info info)
3052 {
3053     (void)info;
3054     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3055     initGLES(&eglWindow);
3056     glGetIntegerv(GL_ZERO, nullptr);
3057     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetIntegerv error");
3058     destroyGLES(&eglWindow);
3059     napi_value result = nullptr;
3060     napi_create_int32(env, FAILED, &result);
3061     return result;
3062 }
3063 
GLGetInternalformativAbnormal(napi_env env,napi_callback_info info)3064 static napi_value GLGetInternalformativAbnormal(napi_env env, napi_callback_info info)
3065 {
3066     (void)info;
3067     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3068     initGLES(&eglWindow);
3069     glGetInternalformativ(GL_ZERO, GL_ZERO, GL_ZERO, FAILED, nullptr);
3070     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetInternalformativ error");
3071     destroyGLES(&eglWindow);
3072     napi_value result = nullptr;
3073     napi_create_int32(env, FAILED, &result);
3074     return result;
3075 }
3076 
GLGetObjectLabelAbnormal(napi_env env,napi_callback_info info)3077 static napi_value GLGetObjectLabelAbnormal(napi_env env, napi_callback_info info)
3078 {
3079     (void)info;
3080     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3081     initGLES(&eglWindow);
3082     glGetObjectLabel(GL_ZERO, GL_ZERO, GL_ZERO, nullptr, nullptr);
3083     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetObjectLabel error");
3084     destroyGLES(&eglWindow);
3085     napi_value result = nullptr;
3086     napi_create_int32(env, FAILED, &result);
3087     return result;
3088 }
3089 
GLGetObjectPtrLabelAbnormal(napi_env env,napi_callback_info info)3090 static napi_value GLGetObjectPtrLabelAbnormal(napi_env env, napi_callback_info info)
3091 {
3092     (void)info;
3093     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3094     initGLES(&eglWindow);
3095     glGetObjectPtrLabel(nullptr, GL_ZERO, nullptr, nullptr);
3096     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetObjectPtrLabel error");
3097     destroyGLES(&eglWindow);
3098     napi_value result = nullptr;
3099     napi_create_int32(env, FAILED, &result);
3100     return result;
3101 }
3102 
GLGetPointervAbnormal(napi_env env,napi_callback_info info)3103 static napi_value GLGetPointervAbnormal(napi_env env, napi_callback_info info)
3104 {
3105     (void)info;
3106     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3107     initGLES(&eglWindow);
3108     glGetPointerv(GL_ZERO, nullptr);
3109     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetPointerv error");
3110     destroyGLES(&eglWindow);
3111     napi_value result = nullptr;
3112     napi_create_int32(env, FAILED, &result);
3113     return result;
3114 }
3115 
GLGetProgramBinaryAbnormal(napi_env env,napi_callback_info info)3116 static napi_value GLGetProgramBinaryAbnormal(napi_env env, napi_callback_info info)
3117 {
3118     (void)info;
3119     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3120     initGLES(&eglWindow);
3121     glGetProgramBinary(GL_ZERO, GL_ZERO, nullptr, nullptr, nullptr);
3122     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetProgramBinary error");
3123     destroyGLES(&eglWindow);
3124     napi_value result = nullptr;
3125     napi_create_int32(env, FAILED, &result);
3126     return result;
3127 }
3128 
GLGetProgramInterfaceivAbnormal(napi_env env,napi_callback_info info)3129 static napi_value GLGetProgramInterfaceivAbnormal(napi_env env, napi_callback_info info)
3130 {
3131     (void)info;
3132     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3133     initGLES(&eglWindow);
3134     glGetProgramInterfaceiv(GL_ZERO, GL_ZERO, GL_ZERO, nullptr);
3135     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetProgramInterfaceiv error");
3136     destroyGLES(&eglWindow);
3137     napi_value result = nullptr;
3138     napi_create_int32(env, FAILED, &result);
3139     return result;
3140 }
3141 
GLGetProgramivAbnormal(napi_env env,napi_callback_info info)3142 static napi_value GLGetProgramivAbnormal(napi_env env, napi_callback_info info)
3143 {
3144     (void)info;
3145     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3146     initGLES(&eglWindow);
3147     glGetProgramiv(GL_ZERO, GL_ZERO, nullptr);
3148     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetProgramiv error");
3149     destroyGLES(&eglWindow);
3150     napi_value result = nullptr;
3151     napi_create_int32(env, FAILED, &result);
3152     return result;
3153 }
3154 
GLGetProgramPipelineivAbnormal(napi_env env,napi_callback_info info)3155 static napi_value GLGetProgramPipelineivAbnormal(napi_env env, napi_callback_info info)
3156 {
3157     (void)info;
3158     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3159     initGLES(&eglWindow);
3160     glGetProgramPipelineiv(GL_ZERO, GL_ZERO, nullptr);
3161     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetProgramPipelineiv error");
3162     destroyGLES(&eglWindow);
3163     napi_value result = nullptr;
3164     napi_create_int32(env, FAILED, &result);
3165     return result;
3166 }
3167 
GLGetProgramResourceIndexAbnormal(napi_env env,napi_callback_info info)3168 static napi_value GLGetProgramResourceIndexAbnormal(napi_env env, napi_callback_info info)
3169 {
3170     (void)info;
3171     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3172     initGLES(&eglWindow);
3173     glGetProgramResourceIndex(GL_ZERO, GL_ZERO, nullptr);
3174     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetProgramResourceIndex error");
3175     destroyGLES(&eglWindow);
3176     napi_value result = nullptr;
3177     napi_create_int32(env, FAILED, &result);
3178     return result;
3179 }
3180 
GLGetProgramResourceivAbnormal(napi_env env,napi_callback_info info)3181 static napi_value GLGetProgramResourceivAbnormal(napi_env env, napi_callback_info info)
3182 {
3183     (void)info;
3184     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3185     initGLES(&eglWindow);
3186     glGetProgramResourceiv(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, nullptr, GL_ZERO, nullptr, nullptr);
3187     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetProgramResourceiv error");
3188     destroyGLES(&eglWindow);
3189     napi_value result = nullptr;
3190     napi_create_int32(env, FAILED, &result);
3191     return result;
3192 }
3193 
GLGetProgramResourceLocationAbnormal(napi_env env,napi_callback_info info)3194 static napi_value GLGetProgramResourceLocationAbnormal(napi_env env, napi_callback_info info)
3195 {
3196     (void)info;
3197     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3198     initGLES(&eglWindow);
3199     glGetProgramResourceLocation(GL_ZERO, GL_ZERO, nullptr);
3200     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetProgramResourceLocation error");
3201     destroyGLES(&eglWindow);
3202     napi_value result = nullptr;
3203     napi_create_int32(env, FAILED, &result);
3204     return result;
3205 }
3206 
GLGetProgramResourceNameAbnormal(napi_env env,napi_callback_info info)3207 static napi_value GLGetProgramResourceNameAbnormal(napi_env env, napi_callback_info info)
3208 {
3209     (void)info;
3210     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3211     initGLES(&eglWindow);
3212     glGetProgramResourceName(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, nullptr, nullptr);
3213     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetProgramResourceName error");
3214     destroyGLES(&eglWindow);
3215     napi_value result = nullptr;
3216     napi_create_int32(env, FAILED, &result);
3217     return result;
3218 }
3219 
GLGetQueryivAbnormal(napi_env env,napi_callback_info info)3220 static napi_value GLGetQueryivAbnormal(napi_env env, napi_callback_info info)
3221 {
3222     (void)info;
3223     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3224     initGLES(&eglWindow);
3225     glGetQueryiv(GL_ZERO, GL_ZERO, nullptr);
3226     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetQueryiv error");
3227     destroyGLES(&eglWindow);
3228     napi_value result = nullptr;
3229     napi_create_int32(env, FAILED, &result);
3230     return result;
3231 }
3232 
GLGetQueryObjectuivAbnormal(napi_env env,napi_callback_info info)3233 static napi_value GLGetQueryObjectuivAbnormal(napi_env env, napi_callback_info info)
3234 {
3235     (void)info;
3236     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3237     initGLES(&eglWindow);
3238     glGetQueryObjectuiv(GL_ZERO, GL_ZERO, nullptr);
3239     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetQueryObjectuiv error");
3240     destroyGLES(&eglWindow);
3241     napi_value result = nullptr;
3242     napi_create_int32(env, FAILED, &result);
3243     return result;
3244 }
3245 
GLGetRenderbufferParameterivAbnormal(napi_env env,napi_callback_info info)3246 static napi_value GLGetRenderbufferParameterivAbnormal(napi_env env, napi_callback_info info)
3247 {
3248     (void)info;
3249     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3250     initGLES(&eglWindow);
3251     glGetRenderbufferParameteriv(GL_ZERO, GL_ZERO, nullptr);
3252     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetRenderbufferParameteriv error");
3253     destroyGLES(&eglWindow);
3254     napi_value result = nullptr;
3255     napi_create_int32(env, FAILED, &result);
3256     return result;
3257 }
3258 
GLGetSamplerParameterfvAbnormal(napi_env env,napi_callback_info info)3259 static napi_value GLGetSamplerParameterfvAbnormal(napi_env env, napi_callback_info info)
3260 {
3261     (void)info;
3262     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3263     initGLES(&eglWindow);
3264     glGetSamplerParameterfv(GL_ZERO, GL_ZERO, nullptr);
3265     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetSamplerParameterfv error");
3266     destroyGLES(&eglWindow);
3267     napi_value result = nullptr;
3268     napi_create_int32(env, FAILED, &result);
3269     return result;
3270 }
3271 
GLGetSamplerParameterIivAbnormal(napi_env env,napi_callback_info info)3272 static napi_value GLGetSamplerParameterIivAbnormal(napi_env env, napi_callback_info info)
3273 {
3274     (void)info;
3275     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3276     initGLES(&eglWindow);
3277     glGetSamplerParameterIiv(GL_ZERO, GL_ZERO, nullptr);
3278     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetSamplerParameterIiv error");
3279     destroyGLES(&eglWindow);
3280     napi_value result = nullptr;
3281     napi_create_int32(env, FAILED, &result);
3282     return result;
3283 }
3284 
GLGetSamplerParameterIuivAbnormal(napi_env env,napi_callback_info info)3285 static napi_value GLGetSamplerParameterIuivAbnormal(napi_env env, napi_callback_info info)
3286 {
3287     (void)info;
3288     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3289     initGLES(&eglWindow);
3290     glGetSamplerParameterIuiv(GL_ZERO, GL_ZERO, nullptr);
3291     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetSamplerParameterIuiv error");
3292     destroyGLES(&eglWindow);
3293     napi_value result = nullptr;
3294     napi_create_int32(env, FAILED, &result);
3295     return result;
3296 }
3297 
GLGetSamplerParameterivAbnormal(napi_env env,napi_callback_info info)3298 static napi_value GLGetSamplerParameterivAbnormal(napi_env env, napi_callback_info info)
3299 {
3300     (void)info;
3301     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3302     initGLES(&eglWindow);
3303     glGetSamplerParameteriv(GL_ZERO, GL_ZERO, nullptr);
3304     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glGetSamplerParameteriv error");
3305     destroyGLES(&eglWindow);
3306     napi_value result = nullptr;
3307     napi_create_int32(env, FAILED, &result);
3308     return result;
3309 }
3310 
GLUniform1fAbnormal(napi_env env,napi_callback_info info)3311 static napi_value GLUniform1fAbnormal(napi_env env, napi_callback_info info)
3312 {
3313     (void)info;
3314     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3315     initGLES(&eglWindow);
3316     glUniform1f(GL_ZERO, CLEAR_00);
3317     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform1f error");
3318     destroyGLES(&eglWindow);
3319     napi_value result = nullptr;
3320     napi_create_int32(env, FAILED, &result);
3321     return result;
3322 }
3323 
GLUniform1fvAbnormal(napi_env env,napi_callback_info info)3324 static napi_value GLUniform1fvAbnormal(napi_env env, napi_callback_info info)
3325 {
3326     (void)info;
3327     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3328     initGLES(&eglWindow);
3329     glUniform1fv(GL_ZERO, FAILED, nullptr);
3330     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform1fv error");
3331     destroyGLES(&eglWindow);
3332     napi_value result = nullptr;
3333     napi_create_int32(env, FAILED, &result);
3334     return result;
3335 }
3336 
GLUniform1iAbnormal(napi_env env,napi_callback_info info)3337 static napi_value GLUniform1iAbnormal(napi_env env, napi_callback_info info)
3338 {
3339     (void)info;
3340     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3341     initGLES(&eglWindow);
3342     glUniform1i(GL_ZERO, GL_ZERO);
3343     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform1i error");
3344     destroyGLES(&eglWindow);
3345     napi_value result = nullptr;
3346     napi_create_int32(env, FAILED, &result);
3347     return result;
3348 }
3349 
GLUniform1ivAbnormal(napi_env env,napi_callback_info info)3350 static napi_value GLUniform1ivAbnormal(napi_env env, napi_callback_info info)
3351 {
3352     (void)info;
3353     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3354     initGLES(&eglWindow);
3355     glUniform1iv(GL_ZERO, FAILED, nullptr);
3356     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform1iv error");
3357     destroyGLES(&eglWindow);
3358     napi_value result = nullptr;
3359     napi_create_int32(env, FAILED, &result);
3360     return result;
3361 }
3362 
GLUniform1uiAbnormal(napi_env env,napi_callback_info info)3363 static napi_value GLUniform1uiAbnormal(napi_env env, napi_callback_info info)
3364 {
3365     (void)info;
3366     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3367     initGLES(&eglWindow);
3368     glUniform1ui(GL_ZERO, GL_ZERO);
3369     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform1ui error");
3370     destroyGLES(&eglWindow);
3371     napi_value result = nullptr;
3372     napi_create_int32(env, FAILED, &result);
3373     return result;
3374 }
3375 
GLUniform1uivAbnormal(napi_env env,napi_callback_info info)3376 static napi_value GLUniform1uivAbnormal(napi_env env, napi_callback_info info)
3377 {
3378     (void)info;
3379     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3380     initGLES(&eglWindow);
3381     glUniform1uiv(GL_ZERO, FAILED, nullptr);
3382     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform1uiv error");
3383     destroyGLES(&eglWindow);
3384     napi_value result = nullptr;
3385     napi_create_int32(env, FAILED, &result);
3386     return result;
3387 }
3388 
GLUniform2fAbnormal(napi_env env,napi_callback_info info)3389 static napi_value GLUniform2fAbnormal(napi_env env, napi_callback_info info)
3390 {
3391     (void)info;
3392     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3393     initGLES(&eglWindow);
3394     glUniform2f(GL_ZERO, CLEAR_00, CLEAR_00);
3395     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform2f error");
3396     destroyGLES(&eglWindow);
3397     napi_value result = nullptr;
3398     napi_create_int32(env, FAILED, &result);
3399     return result;
3400 }
3401 
GLUniform2fvAbnormal(napi_env env,napi_callback_info info)3402 static napi_value GLUniform2fvAbnormal(napi_env env, napi_callback_info info)
3403 {
3404     (void)info;
3405     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3406     initGLES(&eglWindow);
3407     glUniform2fv(GL_ZERO, FAILED, nullptr);
3408     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform2fv error");
3409     destroyGLES(&eglWindow);
3410     napi_value result = nullptr;
3411     napi_create_int32(env, FAILED, &result);
3412     return result;
3413 }
3414 
GLUniform2iAbnormal(napi_env env,napi_callback_info info)3415 static napi_value GLUniform2iAbnormal(napi_env env, napi_callback_info info)
3416 {
3417     (void)info;
3418     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3419     initGLES(&eglWindow);
3420     glUniform2i(GL_ZERO, GL_ZERO, GL_ZERO);
3421     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform2i error");
3422     destroyGLES(&eglWindow);
3423     napi_value result = nullptr;
3424     napi_create_int32(env, FAILED, &result);
3425     return result;
3426 }
3427 
GLUniform2ivAbnormal(napi_env env,napi_callback_info info)3428 static napi_value GLUniform2ivAbnormal(napi_env env, napi_callback_info info)
3429 {
3430     (void)info;
3431     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3432     initGLES(&eglWindow);
3433     glUniform2iv(GL_ZERO, FAILED, nullptr);
3434     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform2iv error");
3435     destroyGLES(&eglWindow);
3436     napi_value result = nullptr;
3437     napi_create_int32(env, FAILED, &result);
3438     return result;
3439 }
3440 
GLUniform2uiAbnormal(napi_env env,napi_callback_info info)3441 static napi_value GLUniform2uiAbnormal(napi_env env, napi_callback_info info)
3442 {
3443     (void)info;
3444     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3445     initGLES(&eglWindow);
3446     glUniform2ui(GL_ZERO, GL_ZERO, GL_ZERO);
3447     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform2ui error");
3448     destroyGLES(&eglWindow);
3449     napi_value result = nullptr;
3450     napi_create_int32(env, FAILED, &result);
3451     return result;
3452 }
3453 
GLUniform2uivAbnormal(napi_env env,napi_callback_info info)3454 static napi_value GLUniform2uivAbnormal(napi_env env, napi_callback_info info)
3455 {
3456     (void)info;
3457     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3458     initGLES(&eglWindow);
3459     glUniform2uiv(GL_ZERO, FAILED, nullptr);
3460     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform2uiv error");
3461     destroyGLES(&eglWindow);
3462     napi_value result = nullptr;
3463     napi_create_int32(env, FAILED, &result);
3464     return result;
3465 }
3466 
GLUniform3fAbnormal(napi_env env,napi_callback_info info)3467 static napi_value GLUniform3fAbnormal(napi_env env, napi_callback_info info)
3468 {
3469     (void)info;
3470     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3471     initGLES(&eglWindow);
3472     glUniform3f(GL_ZERO, CLEAR_00, CLEAR_00, CLEAR_00);
3473     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform3f error");
3474     destroyGLES(&eglWindow);
3475     napi_value result = nullptr;
3476     napi_create_int32(env, FAILED, &result);
3477     return result;
3478 }
3479 
GLUniform3fvAbnormal(napi_env env,napi_callback_info info)3480 static napi_value GLUniform3fvAbnormal(napi_env env, napi_callback_info info)
3481 {
3482     (void)info;
3483     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3484     initGLES(&eglWindow);
3485     glUniform3fv(GL_ZERO, FAILED, nullptr);
3486     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform3fv error");
3487     destroyGLES(&eglWindow);
3488     napi_value result = nullptr;
3489     napi_create_int32(env, FAILED, &result);
3490     return result;
3491 }
3492 
GLUniform3iAbnormal(napi_env env,napi_callback_info info)3493 static napi_value GLUniform3iAbnormal(napi_env env, napi_callback_info info)
3494 {
3495     (void)info;
3496     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3497     initGLES(&eglWindow);
3498     glUniform3i(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
3499     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform3i error");
3500     destroyGLES(&eglWindow);
3501     napi_value result = nullptr;
3502     napi_create_int32(env, FAILED, &result);
3503     return result;
3504 }
3505 
GLUniform3ivAbnormal(napi_env env,napi_callback_info info)3506 static napi_value GLUniform3ivAbnormal(napi_env env, napi_callback_info info)
3507 {
3508     (void)info;
3509     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3510     initGLES(&eglWindow);
3511     glUniform3iv(GL_ZERO, FAILED, nullptr);
3512     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform3iv error");
3513     destroyGLES(&eglWindow);
3514     napi_value result = nullptr;
3515     napi_create_int32(env, FAILED, &result);
3516     return result;
3517 }
3518 
GLUniform3uiAbnormal(napi_env env,napi_callback_info info)3519 static napi_value GLUniform3uiAbnormal(napi_env env, napi_callback_info info)
3520 {
3521     (void)info;
3522     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3523     initGLES(&eglWindow);
3524     glUniform3ui(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
3525     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform3ui error");
3526     destroyGLES(&eglWindow);
3527     napi_value result = nullptr;
3528     napi_create_int32(env, FAILED, &result);
3529     return result;
3530 }
3531 
GLUniform3uivAbnormal(napi_env env,napi_callback_info info)3532 static napi_value GLUniform3uivAbnormal(napi_env env, napi_callback_info info)
3533 {
3534     (void)info;
3535     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3536     initGLES(&eglWindow);
3537     glUniform3uiv(GL_ZERO, FAILED, nullptr);
3538     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform3uiv error");
3539     destroyGLES(&eglWindow);
3540     napi_value result = nullptr;
3541     napi_create_int32(env, FAILED, &result);
3542     return result;
3543 }
3544 
GLUniform4fAbnormal(napi_env env,napi_callback_info info)3545 static napi_value GLUniform4fAbnormal(napi_env env, napi_callback_info info)
3546 {
3547     (void)info;
3548     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3549     initGLES(&eglWindow);
3550     glUniform4f(GL_ZERO, CLEAR_00, CLEAR_00, CLEAR_00, CLEAR_00);
3551     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform4f error");
3552     destroyGLES(&eglWindow);
3553     napi_value result = nullptr;
3554     napi_create_int32(env, FAILED, &result);
3555     return result;
3556 }
3557 
GLUniform4fvAbnormal(napi_env env,napi_callback_info info)3558 static napi_value GLUniform4fvAbnormal(napi_env env, napi_callback_info info)
3559 {
3560     (void)info;
3561     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3562     initGLES(&eglWindow);
3563     glUniform4fv(GL_ZERO, FAILED, nullptr);
3564     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform4fv error");
3565     destroyGLES(&eglWindow);
3566     napi_value result = nullptr;
3567     napi_create_int32(env, FAILED, &result);
3568     return result;
3569 }
3570 
GLUniform4iAbnormal(napi_env env,napi_callback_info info)3571 static napi_value GLUniform4iAbnormal(napi_env env, napi_callback_info info)
3572 {
3573     (void)info;
3574     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3575     initGLES(&eglWindow);
3576     glUniform4i(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
3577     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform4i error");
3578     destroyGLES(&eglWindow);
3579     napi_value result = nullptr;
3580     napi_create_int32(env, FAILED, &result);
3581     return result;
3582 }
3583 
GLUniform4ivAbnormal(napi_env env,napi_callback_info info)3584 static napi_value GLUniform4ivAbnormal(napi_env env, napi_callback_info info)
3585 {
3586     (void)info;
3587     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3588     initGLES(&eglWindow);
3589     glUniform4iv(GL_ZERO, FAILED, nullptr);
3590     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform4iv error");
3591     destroyGLES(&eglWindow);
3592     napi_value result = nullptr;
3593     napi_create_int32(env, FAILED, &result);
3594     return result;
3595 }
3596 
GLUniform4uiAbnormal(napi_env env,napi_callback_info info)3597 static napi_value GLUniform4uiAbnormal(napi_env env, napi_callback_info info)
3598 {
3599     (void)info;
3600     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3601     initGLES(&eglWindow);
3602     glUniform4ui(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
3603     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform4ui error");
3604     destroyGLES(&eglWindow);
3605     napi_value result = nullptr;
3606     napi_create_int32(env, FAILED, &result);
3607     return result;
3608 }
3609 
GLUniform4uivAbnormal(napi_env env,napi_callback_info info)3610 static napi_value GLUniform4uivAbnormal(napi_env env, napi_callback_info info)
3611 {
3612     (void)info;
3613     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3614     initGLES(&eglWindow);
3615     glUniform4uiv(GL_ZERO, FAILED, nullptr);
3616     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniform4uiv error");
3617     destroyGLES(&eglWindow);
3618     napi_value result = nullptr;
3619     napi_create_int32(env, FAILED, &result);
3620     return result;
3621 }
3622 
GLUniformBlockBindingAbnormal(napi_env env,napi_callback_info info)3623 static napi_value GLUniformBlockBindingAbnormal(napi_env env, napi_callback_info info)
3624 {
3625     (void)info;
3626     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3627     initGLES(&eglWindow);
3628     glUniformBlockBinding(GL_ZERO, GL_MAX_TEST_NUM, GL_ZERO);
3629     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniformBlockBinding error");
3630     destroyGLES(&eglWindow);
3631     napi_value result = nullptr;
3632     napi_create_int32(env, FAILED, &result);
3633     return result;
3634 }
3635 
GLUniformMatrix2fvAbnormal(napi_env env,napi_callback_info info)3636 static napi_value GLUniformMatrix2fvAbnormal(napi_env env, napi_callback_info info)
3637 {
3638     (void)info;
3639     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3640     initGLES(&eglWindow);
3641     glUniformMatrix2fv(GL_ZERO, FAILED, GL_TRUE, nullptr);
3642     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniformMatrix2fv error");
3643     destroyGLES(&eglWindow);
3644     napi_value result = nullptr;
3645     napi_create_int32(env, FAILED, &result);
3646     return result;
3647 }
3648 
GLUniformMatrix2x3fvAbnormal(napi_env env,napi_callback_info info)3649 static napi_value GLUniformMatrix2x3fvAbnormal(napi_env env, napi_callback_info info)
3650 {
3651     (void)info;
3652     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3653     initGLES(&eglWindow);
3654     glUniformMatrix2x3fv(GL_ZERO, FAILED, GL_TRUE, nullptr);
3655     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniformMatrix2x3fv error");
3656     destroyGLES(&eglWindow);
3657     napi_value result = nullptr;
3658     napi_create_int32(env, FAILED, &result);
3659     return result;
3660 }
3661 
GLUniformMatrix2x4fvAbnormal(napi_env env,napi_callback_info info)3662 static napi_value GLUniformMatrix2x4fvAbnormal(napi_env env, napi_callback_info info)
3663 {
3664     (void)info;
3665     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3666     initGLES(&eglWindow);
3667     glUniformMatrix2x4fv(GL_ZERO, FAILED, GL_TRUE, nullptr);
3668     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniformMatrix2x4fv error");
3669     destroyGLES(&eglWindow);
3670     napi_value result = nullptr;
3671     napi_create_int32(env, FAILED, &result);
3672     return result;
3673 }
3674 
GLUniformMatrix3fvAbnormal(napi_env env,napi_callback_info info)3675 static napi_value GLUniformMatrix3fvAbnormal(napi_env env, napi_callback_info info)
3676 {
3677     (void)info;
3678     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3679     initGLES(&eglWindow);
3680     glUniformMatrix3fv(GL_ZERO, FAILED, GL_TRUE, nullptr);
3681     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniformMatrix3fv error");
3682     destroyGLES(&eglWindow);
3683     napi_value result = nullptr;
3684     napi_create_int32(env, FAILED, &result);
3685     return result;
3686 }
3687 
GLUniformMatrix3x2fvAbnormal(napi_env env,napi_callback_info info)3688 static napi_value GLUniformMatrix3x2fvAbnormal(napi_env env, napi_callback_info info)
3689 {
3690     (void)info;
3691     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3692     initGLES(&eglWindow);
3693     glUniformMatrix3x2fv(GL_ZERO, FAILED, GL_TRUE, nullptr);
3694     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniformMatrix3x2fv error");
3695     destroyGLES(&eglWindow);
3696     napi_value result = nullptr;
3697     napi_create_int32(env, FAILED, &result);
3698     return result;
3699 }
3700 
GLUniformMatrix3x4fvAbnormal(napi_env env,napi_callback_info info)3701 static napi_value GLUniformMatrix3x4fvAbnormal(napi_env env, napi_callback_info info)
3702 {
3703     (void)info;
3704     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3705     initGLES(&eglWindow);
3706     glUniformMatrix3x4fv(GL_ZERO, FAILED, GL_TRUE, nullptr);
3707     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniformMatrix3x4fv error");
3708     destroyGLES(&eglWindow);
3709     napi_value result = nullptr;
3710     napi_create_int32(env, FAILED, &result);
3711     return result;
3712 }
3713 
GLUniformMatrix4fvAbnormal(napi_env env,napi_callback_info info)3714 static napi_value GLUniformMatrix4fvAbnormal(napi_env env, napi_callback_info info)
3715 {
3716     (void)info;
3717     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3718     initGLES(&eglWindow);
3719     glUniformMatrix4fv(GL_ZERO, FAILED, GL_TRUE, nullptr);
3720     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniformMatrix4fv error");
3721     destroyGLES(&eglWindow);
3722     napi_value result = nullptr;
3723     napi_create_int32(env, FAILED, &result);
3724     return result;
3725 }
3726 
GLUniformMatrix4x2fvAbnormal(napi_env env,napi_callback_info info)3727 static napi_value GLUniformMatrix4x2fvAbnormal(napi_env env, napi_callback_info info)
3728 {
3729     (void)info;
3730     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3731     initGLES(&eglWindow);
3732     glUniformMatrix4x2fv(GL_ZERO, GL_ZERO, GL_TRUE, nullptr);
3733     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniformMatrix4x2fv error");
3734     destroyGLES(&eglWindow);
3735     napi_value result = nullptr;
3736     napi_create_int32(env, FAILED, &result);
3737     return result;
3738 }
3739 
GLUniformMatrix4x3fvAbnormal(napi_env env,napi_callback_info info)3740 static napi_value GLUniformMatrix4x3fvAbnormal(napi_env env, napi_callback_info info)
3741 {
3742     (void)info;
3743     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3744     initGLES(&eglWindow);
3745     glUniformMatrix4x3fv(GL_ZERO, FAILED, GL_TRUE, nullptr);
3746     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glUniformMatrix4x3fv error");
3747     destroyGLES(&eglWindow);
3748     napi_value result = nullptr;
3749     napi_create_int32(env, FAILED, &result);
3750     return result;
3751 }
3752 
GLCompileShaderAbnormal(napi_env env,napi_callback_info info)3753 static napi_value GLCompileShaderAbnormal(napi_env env, napi_callback_info info)
3754 {
3755     (void)info;
3756     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3757     initGLES(&eglWindow);
3758     glCompileShader(GL_MAX_TEST_NUM);
3759     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCompileShader error");
3760     destroyGLES(&eglWindow);
3761     napi_value result = nullptr;
3762     napi_create_int32(env, FAILED, &result);
3763     return result;
3764 }
3765 
GLCompressedTexImage2DAbnormal(napi_env env,napi_callback_info info)3766 static napi_value GLCompressedTexImage2DAbnormal(napi_env env, napi_callback_info info)
3767 {
3768     (void)info;
3769     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3770     initGLES(&eglWindow);
3771     glCompressedTexImage2D(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ONE, GL_ZERO, nullptr);
3772     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCompressedTexImage2D error");
3773     destroyGLES(&eglWindow);
3774     napi_value result = nullptr;
3775     napi_create_int32(env, FAILED, &result);
3776     return result;
3777 }
3778 
GLCompressedTexImage3DAbnormal(napi_env env,napi_callback_info info)3779 static napi_value GLCompressedTexImage3DAbnormal(napi_env env, napi_callback_info info)
3780 {
3781     (void)info;
3782     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3783     initGLES(&eglWindow);
3784     glCompressedTexImage3D(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ONE, GL_ZERO, nullptr);
3785     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCompressedTexImage3D error");
3786     destroyGLES(&eglWindow);
3787     napi_value result = nullptr;
3788     napi_create_int32(env, FAILED, &result);
3789     return result;
3790 }
3791 
GLCompressedTexSubImage2DAbnormal(napi_env env,napi_callback_info info)3792 static napi_value GLCompressedTexSubImage2DAbnormal(napi_env env, napi_callback_info info)
3793 {
3794     (void)info;
3795     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3796     initGLES(&eglWindow);
3797     glCompressedTexSubImage2D(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, nullptr);
3798     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCompressedTexSubImage2D error");
3799     destroyGLES(&eglWindow);
3800     napi_value result = nullptr;
3801     napi_create_int32(env, FAILED, &result);
3802     return result;
3803 }
3804 
GLCompressedTexSubImage3DAbnormal(napi_env env,napi_callback_info info)3805 static napi_value GLCompressedTexSubImage3DAbnormal(napi_env env, napi_callback_info info)
3806 {
3807     (void)info;
3808     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3809     initGLES(&eglWindow);
3810     glCompressedTexSubImage3D(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO,
3811                               nullptr);
3812     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCompressedTexSubImage3D error");
3813     destroyGLES(&eglWindow);
3814     napi_value result = nullptr;
3815     napi_create_int32(env, FAILED, &result);
3816     return result;
3817 }
3818 
GLCopyTexSubImage3DAbnormal(napi_env env,napi_callback_info info)3819 static napi_value GLCopyTexSubImage3DAbnormal(napi_env env, napi_callback_info info)
3820 {
3821     (void)info;
3822     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3823     initGLES(&eglWindow);
3824     glCopyTexSubImage3D(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO);
3825     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glCopyTexSubImage3D error");
3826     destroyGLES(&eglWindow);
3827     napi_value result = nullptr;
3828     napi_create_int32(env, FAILED, &result);
3829     return result;
3830 }
3831 
GLDrawElementsAbnormal(napi_env env,napi_callback_info info)3832 static napi_value GLDrawElementsAbnormal(napi_env env, napi_callback_info info)
3833 {
3834     (void)info;
3835     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3836     initGLES(&eglWindow);
3837     glDrawElements(GL_ZERO, FAILED, GL_ZERO, nullptr);
3838     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawElements error");
3839     destroyGLES(&eglWindow);
3840     napi_value result = nullptr;
3841     napi_create_int32(env, FAILED, &result);
3842     return result;
3843 }
3844 
GLDrawElementsBaseVertexAbnormal(napi_env env,napi_callback_info info)3845 static napi_value GLDrawElementsBaseVertexAbnormal(napi_env env, napi_callback_info info)
3846 {
3847     (void)info;
3848     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3849     initGLES(&eglWindow);
3850     glDrawElementsBaseVertex(GL_ZERO, GL_ZERO, GL_ZERO, nullptr, GL_ZERO);
3851     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawElementsBaseVertex error");
3852     destroyGLES(&eglWindow);
3853     napi_value result = nullptr;
3854     napi_create_int32(env, FAILED, &result);
3855     return result;
3856 }
3857 
GLDrawElementsIndirectAbnormal(napi_env env,napi_callback_info info)3858 static napi_value GLDrawElementsIndirectAbnormal(napi_env env, napi_callback_info info)
3859 {
3860     (void)info;
3861     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3862     initGLES(&eglWindow);
3863     glDrawElementsIndirect(GL_ZERO, GL_ZERO, nullptr);
3864     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawElementsIndirect error");
3865     destroyGLES(&eglWindow);
3866     napi_value result = nullptr;
3867     napi_create_int32(env, FAILED, &result);
3868     return result;
3869 }
3870 
GLDrawElementsInstancedAbnormal(napi_env env,napi_callback_info info)3871 static napi_value GLDrawElementsInstancedAbnormal(napi_env env, napi_callback_info info)
3872 {
3873     (void)info;
3874     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3875     initGLES(&eglWindow);
3876     glDrawElementsInstanced(GL_ZERO, FAILED, GL_ZERO, nullptr, FAILED);
3877     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawElementsInstanced error");
3878     destroyGLES(&eglWindow);
3879     napi_value result = nullptr;
3880     napi_create_int32(env, FAILED, &result);
3881     return result;
3882 }
3883 
GLDrawElementsInstancedBaseVertexAbnormal(napi_env env,napi_callback_info info)3884 static napi_value GLDrawElementsInstancedBaseVertexAbnormal(napi_env env, napi_callback_info info)
3885 {
3886     (void)info;
3887     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3888     initGLES(&eglWindow);
3889     glDrawElementsInstancedBaseVertex(FAILED, GL_ONE, GL_UNSIGNED_BYTE, nullptr, GL_ONE, GL_ONE);
3890     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawElementsInstancedBaseVertex error");
3891     destroyGLES(&eglWindow);
3892     napi_value result = nullptr;
3893     napi_create_int32(env, FAILED, &result);
3894     return result;
3895 }
3896 
GLDrawRangeElementsAbnormal(napi_env env,napi_callback_info info)3897 static napi_value GLDrawRangeElementsAbnormal(napi_env env, napi_callback_info info)
3898 {
3899     (void)info;
3900     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3901     initGLES(&eglWindow);
3902     glDrawRangeElements(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, nullptr);
3903     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawRangeElements error");
3904     destroyGLES(&eglWindow);
3905     napi_value result = nullptr;
3906     napi_create_int32(env, FAILED, &result);
3907     return result;
3908 }
3909 
GLDrawRangeElementsBaseVertexAbnormal(napi_env env,napi_callback_info info)3910 static napi_value GLDrawRangeElementsBaseVertexAbnormal(napi_env env, napi_callback_info info)
3911 {
3912     (void)info;
3913     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3914     initGLES(&eglWindow);
3915     glDrawRangeElementsBaseVertex(GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, nullptr, GL_ZERO);
3916     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glDrawRangeElementsBaseVertex error");
3917     destroyGLES(&eglWindow);
3918     napi_value result = nullptr;
3919     napi_create_int32(env, FAILED, &result);
3920     return result;
3921 }
3922 
GLEnableAbnormal(napi_env env,napi_callback_info info)3923 static napi_value GLEnableAbnormal(napi_env env, napi_callback_info info)
3924 {
3925     (void)info;
3926     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3927     initGLES(&eglWindow);
3928     glEnable(GL_ZERO);
3929     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glEnable error");
3930     destroyGLES(&eglWindow);
3931     napi_value result = nullptr;
3932     napi_create_int32(env, FAILED, &result);
3933     return result;
3934 }
3935 
GLEnableiAbnormal(napi_env env,napi_callback_info info)3936 static napi_value GLEnableiAbnormal(napi_env env, napi_callback_info info)
3937 {
3938     (void)info;
3939     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3940     initGLES(&eglWindow);
3941     glEnablei(GL_ZERO, GL_ZERO);
3942     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glEnablei error");
3943     destroyGLES(&eglWindow);
3944     napi_value result = nullptr;
3945     napi_create_int32(env, FAILED, &result);
3946     return result;
3947 }
3948 
GLEnableVertexAttribArrayAbnormal(napi_env env,napi_callback_info info)3949 static napi_value GLEnableVertexAttribArrayAbnormal(napi_env env, napi_callback_info info)
3950 {
3951     (void)info;
3952     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3953     initGLES(&eglWindow);
3954     glEnableVertexAttribArray(GL_MAX_VERTEX_ATTRIBS);
3955     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glEnableVertexAttribArray error");
3956     destroyGLES(&eglWindow);
3957     napi_value result = nullptr;
3958     napi_create_int32(env, FAILED, &result);
3959     return result;
3960 }
3961 
GLEndQueryAbnormal(napi_env env,napi_callback_info info)3962 static napi_value GLEndQueryAbnormal(napi_env env, napi_callback_info info)
3963 {
3964     (void)info;
3965     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3966     initGLES(&eglWindow);
3967     glEndQuery(GL_ZERO);
3968     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glEndQuery error");
3969     destroyGLES(&eglWindow);
3970     napi_value result = nullptr;
3971     napi_create_int32(env, FAILED, &result);
3972     return result;
3973 }
3974 
GLEndTransformFeedbackAbnormal(napi_env env,napi_callback_info info)3975 static napi_value GLEndTransformFeedbackAbnormal(napi_env env, napi_callback_info info)
3976 {
3977     (void)info;
3978     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3979     initGLES(&eglWindow);
3980     glEndTransformFeedback();
3981     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glEndTransformFeedback error");
3982     destroyGLES(&eglWindow);
3983     napi_value result = nullptr;
3984     napi_create_int32(env, FAILED, &result);
3985     return result;
3986 }
3987 
GLFenceSyncAbnormal(napi_env env,napi_callback_info info)3988 static napi_value GLFenceSyncAbnormal(napi_env env, napi_callback_info info)
3989 {
3990     (void)info;
3991     EGLWindow eglWindow = {EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_CONTEXT};
3992     initGLES(&eglWindow);
3993     glFenceSync(GL_ZERO, GL_ONE);
3994     NAPI_ASSERT(env, glGetError() != GL_NO_ERROR, "glFenceSync error");
3995     destroyGLES(&eglWindow);
3996     napi_value result = nullptr;
3997     napi_create_int32(env, FAILED, &result);
3998     return result;
3999 }
4000 
4001 EXTERN_C_START
Init(napi_env env,napi_value exports)4002 static napi_value Init(napi_env env, napi_value exports)
4003 {
4004     napi_property_descriptor desc[] = {
4005         {"gLSamplerParameterfv", nullptr, GLSamplerParameterfv, nullptr, nullptr, nullptr, napi_default, nullptr},
4006         {"gLSamplerParameteri", nullptr, GLSamplerParameteri, nullptr, nullptr, nullptr, napi_default, nullptr},
4007         {"gLSamplerParameterIiv", nullptr, GLSamplerParameterIiv, nullptr, nullptr, nullptr, napi_default, nullptr},
4008         {"gLSamplerParameterIuiv", nullptr, GLSamplerParameterIuiv, nullptr, nullptr, nullptr, napi_default, nullptr},
4009         {"gLSamplerParameteriv", nullptr, GLSamplerParameteriv, nullptr, nullptr, nullptr, napi_default, nullptr},
4010         {"gLScissor", nullptr, GLScissor, nullptr, nullptr, nullptr, napi_default, nullptr},
4011         {"gLShaderBinary", nullptr, GLShaderBinary, nullptr, nullptr, nullptr, napi_default, nullptr},
4012         {"gLShaderSource", nullptr, GLShaderSource, nullptr, nullptr, nullptr, napi_default, nullptr},
4013         {"gLStencilFunc", nullptr, GLStencilFunc, nullptr, nullptr, nullptr, napi_default, nullptr},
4014         {"gLStencilFuncSeparate", nullptr, GLStencilFuncSeparate, nullptr, nullptr, nullptr, napi_default, nullptr},
4015         {"gLStencilMask", nullptr, GLStencilMask, nullptr, nullptr, nullptr, napi_default, nullptr},
4016         {"gLStencilMaskSeparate", nullptr, GLStencilMaskSeparate, nullptr, nullptr, nullptr, napi_default, nullptr},
4017         {"gLStencilOp", nullptr, GLStencilOp, nullptr, nullptr, nullptr, napi_default, nullptr},
4018         {"gLStencilOpSeparate", nullptr, GLStencilOpSeparate, nullptr, nullptr, nullptr, napi_default, nullptr},
4019         {"gLTexBuffer", nullptr, GLTexBuffer, nullptr, nullptr, nullptr, napi_default, nullptr},
4020         {"gLTexBufferRange", nullptr, GLTexBufferRange, nullptr, nullptr, nullptr, napi_default, nullptr},
4021         {"gLTexImage2D", nullptr, GLTexImage2D, nullptr, nullptr, nullptr, napi_default, nullptr},
4022         {"gLTexImage3D", nullptr, GLTexImage3D, nullptr, nullptr, nullptr, napi_default, nullptr},
4023         {"gLTexParameterf", nullptr, GLTexParameterf, nullptr, nullptr, nullptr, napi_default, nullptr},
4024         {"gLTexParameterfv", nullptr, GLTexParameterfv, nullptr, nullptr, nullptr, napi_default, nullptr},
4025         {"gLTexParameteri", nullptr, GLTexParameteri, nullptr, nullptr, nullptr, napi_default, nullptr},
4026         {"gLTexParameterIiv", nullptr, GLTexParameterIiv, nullptr, nullptr, nullptr, napi_default, nullptr},
4027         {"gLTexParameterIuiv", nullptr, GLTexParameterIuiv, nullptr, nullptr, nullptr, napi_default, nullptr},
4028         {"gLTexParameteriv", nullptr, GLTexParameteriv, nullptr, nullptr, nullptr, napi_default, nullptr},
4029         {"gLTexStorage2D", nullptr, GLTexStorage2D, nullptr, nullptr, nullptr, napi_default, nullptr},
4030         {"gLTexStorage2DMultisample", nullptr, GLTexStorage2DMultisample, nullptr, nullptr, nullptr, napi_default,
4031          nullptr},
4032         {"gLTexStorage3D", nullptr, GLTexStorage3D, nullptr, nullptr, nullptr, napi_default, nullptr},
4033         {"gLTexStorage3DMultisample", nullptr, GLTexStorage3DMultisample, nullptr, nullptr, nullptr, napi_default,
4034          nullptr},
4035         {"gLTexSubImage2D", nullptr, GLTexSubImage2D, nullptr, nullptr, nullptr, napi_default, nullptr},
4036         {"gLTexSubImage3D", nullptr, GLTexSubImage3D, nullptr, nullptr, nullptr, napi_default, nullptr},
4037         {"gLTransformFeedbackVaryings", nullptr, GLTransformFeedbackVaryings, nullptr, nullptr, nullptr, napi_default,
4038          nullptr},
4039         {"gLUniform1f", nullptr, GLUniform1f, nullptr, nullptr, nullptr, napi_default, nullptr},
4040         {"gLUniform1fv", nullptr, GLUniform1fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4041         {"gLUniform1i", nullptr, GLUniform1i, nullptr, nullptr, nullptr, napi_default, nullptr},
4042         {"gLUniform1iv", nullptr, GLUniform1iv, nullptr, nullptr, nullptr, napi_default, nullptr},
4043         {"gLUniform1ui", nullptr, GLUniform1ui, nullptr, nullptr, nullptr, napi_default, nullptr},
4044         {"gLUniform1uiv", nullptr, GLUniform1uiv, nullptr, nullptr, nullptr, napi_default, nullptr},
4045         {"gLUniform2f", nullptr, GLUniform2f, nullptr, nullptr, nullptr, napi_default, nullptr},
4046         {"gLUniform2fv", nullptr, GLUniform2fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4047         {"gLUniform2i", nullptr, GLUniform2i, nullptr, nullptr, nullptr, napi_default, nullptr},
4048         {"gLUniform2iv", nullptr, GLUniform2iv, nullptr, nullptr, nullptr, napi_default, nullptr},
4049         {"gLUniform2ui", nullptr, GLUniform2ui, nullptr, nullptr, nullptr, napi_default, nullptr},
4050         {"gLUniform2uiv", nullptr, GLUniform2uiv, nullptr, nullptr, nullptr, napi_default, nullptr},
4051         {"gLUniform3f", nullptr, GLUniform3f, nullptr, nullptr, nullptr, napi_default, nullptr},
4052         {"gLUniform3fv", nullptr, GLUniform3fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4053         {"gLUniform3i", nullptr, GLUniform3i, nullptr, nullptr, nullptr, napi_default, nullptr},
4054         {"gLUniform3iv", nullptr, GLUniform3iv, nullptr, nullptr, nullptr, napi_default, nullptr},
4055         {"gLUniform3ui", nullptr, GLUniform3ui, nullptr, nullptr, nullptr, napi_default, nullptr},
4056         {"gLUniform3uiv", nullptr, GLUniform3uiv, nullptr, nullptr, nullptr, napi_default, nullptr},
4057         {"gLUniform4f", nullptr, GLUniform4f, nullptr, nullptr, nullptr, napi_default, nullptr},
4058         {"gLUniform4fv", nullptr, GLUniform4fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4059         {"gLUniform4i", nullptr, GLUniform4i, nullptr, nullptr, nullptr, napi_default, nullptr},
4060         {"gLUniform4iv", nullptr, GLUniform4iv, nullptr, nullptr, nullptr, napi_default, nullptr},
4061         {"gLUniform4ui", nullptr, GLUniform4ui, nullptr, nullptr, nullptr, napi_default, nullptr},
4062         {"gLUniform4uiv", nullptr, GLUniform4uiv, nullptr, nullptr, nullptr, napi_default, nullptr},
4063         {"gLUniformBlockBinding", nullptr, GLUniformBlockBinding, nullptr, nullptr, nullptr, napi_default, nullptr},
4064         {"gLUniformMatrix2fv", nullptr, GLUniformMatrix2fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4065         {"gLUniformMatrix2x3fv", nullptr, GLUniformMatrix2x3fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4066         {"gLUniformMatrix2x4fv", nullptr, GLUniformMatrix2x4fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4067         {"gLUniformMatrix3fv", nullptr, GLUniformMatrix3fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4068         {"gLUniformMatrix3x2fv", nullptr, GLUniformMatrix3x2fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4069         {"gLUniformMatrix3x4fv", nullptr, GLUniformMatrix3x4fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4070         {"gLUniformMatrix4fv", nullptr, GLUniformMatrix4fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4071         {"gLUniformMatrix4x2fv", nullptr, GLUniformMatrix4x2fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4072         {"gLUniformMatrix4x3fv", nullptr, GLUniformMatrix4x3fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4073         {"gLUnmapBuffer", nullptr, GLUnmapBuffer, nullptr, nullptr, nullptr, napi_default, nullptr},
4074         {"gLUseProgram", nullptr, GLUseProgram, nullptr, nullptr, nullptr, napi_default, nullptr},
4075         {"gLUseProgramStages", nullptr, GLUseProgramStages, nullptr, nullptr, nullptr, napi_default, nullptr},
4076         {"gLValidateProgram", nullptr, GLValidateProgram, nullptr, nullptr, nullptr, napi_default, nullptr},
4077         {"gLValidateProgramPipeline", nullptr, GLValidateProgramPipeline, nullptr, nullptr, nullptr, napi_default,
4078          nullptr},
4079         {"gLVertexAttrib1f", nullptr, GLVertexAttrib1f, nullptr, nullptr, nullptr, napi_default, nullptr},
4080         {"gLVertexAttrib1fv", nullptr, GLVertexAttrib1fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4081         {"gLVertexAttrib2f", nullptr, GLVertexAttrib2f, nullptr, nullptr, nullptr, napi_default, nullptr},
4082         {"gLVertexAttrib2fv", nullptr, GLVertexAttrib2fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4083         {"gLVertexAttrib3f", nullptr, GLVertexAttrib3f, nullptr, nullptr, nullptr, napi_default, nullptr},
4084         {"gLVertexAttrib3fv", nullptr, GLVertexAttrib3fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4085         {"gLVertexAttrib4f", nullptr, GLVertexAttrib4f, nullptr, nullptr, nullptr, napi_default, nullptr},
4086         {"gLVertexAttrib4fv", nullptr, GLVertexAttrib4fv, nullptr, nullptr, nullptr, napi_default, nullptr},
4087         {"gLVertexAttribBinding", nullptr, GLVertexAttribBinding, nullptr, nullptr, nullptr, napi_default, nullptr},
4088         {"gLVertexAttribDivisor", nullptr, GLVertexAttribDivisor, nullptr, nullptr, nullptr, napi_default, nullptr},
4089         {"gLVertexAttribFormat", nullptr, GLVertexAttribFormat, nullptr, nullptr, nullptr, napi_default, nullptr},
4090         {"gLVertexAttribI4i", nullptr, GLVertexAttribI4i, nullptr, nullptr, nullptr, napi_default, nullptr},
4091         {"gLVertexAttribI4iv", nullptr, GLVertexAttribI4iv, nullptr, nullptr, nullptr, napi_default, nullptr},
4092         {"gLVertexAttribI4ui", nullptr, GLVertexAttribI4ui, nullptr, nullptr, nullptr, napi_default, nullptr},
4093         {"gLVertexAttribI4uiv", nullptr, GLVertexAttribI4uiv, nullptr, nullptr, nullptr, napi_default, nullptr},
4094         {"gLVertexAttribIFormat", nullptr, GLVertexAttribIFormat, nullptr, nullptr, nullptr, napi_default, nullptr},
4095         {"gLVertexAttribIPointer", nullptr, GLVertexAttribIPointer, nullptr, nullptr, nullptr, napi_default, nullptr},
4096         {"gLVertexAttribPointer", nullptr, GLVertexAttribPointer, nullptr, nullptr, nullptr, napi_default, nullptr},
4097         {"gLVertexBindingDivisor", nullptr, GLVertexBindingDivisor, nullptr, nullptr, nullptr, napi_default, nullptr},
4098         {"gLViewport", nullptr, GLViewport, nullptr, nullptr, nullptr, napi_default, nullptr},
4099         {"gLWaitSync", nullptr, GLWaitSync, nullptr, nullptr, nullptr, napi_default, nullptr},
4100         {"glActiveShaderProgramAbnormal", nullptr, GLActiveShaderProgramAbnormal, nullptr, nullptr, nullptr,
4101          napi_default, nullptr},
4102         {"glActiveTextureAbnormal", nullptr, GLActiveTextureAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4103         {"glAttachShaderAbnormal", nullptr, GLAttachShaderAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4104         {"glBeginQueryAbnormal", nullptr, GLBeginQueryAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4105         {"glBeginTransformFeedbackAbnormal", nullptr, GLBeginTransformFeedbackAbnormal, nullptr, nullptr, nullptr,
4106          napi_default, nullptr},
4107         {"glBindAttribLocationAbnormal", nullptr, GLBindAttribLocationAbnormal, nullptr, nullptr, nullptr, napi_default,
4108          nullptr},
4109         {"glBindBufferAbnormal", nullptr, GLBindBufferAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4110         {"glBindBufferBaseAbnormal", nullptr, GLBindBufferBaseAbnormal, nullptr, nullptr, nullptr, napi_default,
4111          nullptr},
4112         {"glBindBufferRangeAbnormal", nullptr, GLBindBufferRangeAbnormal, nullptr, nullptr, nullptr, napi_default,
4113          nullptr},
4114         {"glBindFramebufferAbnormal", nullptr, GLBindFramebufferAbnormal, nullptr, nullptr, nullptr, napi_default,
4115          nullptr},
4116         {"glBindImageTextureAbnormal", nullptr, GLBindImageTextureAbnormal, nullptr, nullptr, nullptr, napi_default,
4117          nullptr},
4118         {"glBindProgramPipelineAbnormal", nullptr, GLBindProgramPipelineAbnormal, nullptr, nullptr, nullptr,
4119          napi_default, nullptr},
4120         {"glBindRenderbufferAbnormal", nullptr, GLBindRenderbufferAbnormal, nullptr, nullptr, nullptr, napi_default,
4121          nullptr},
4122         {"glBindSamplerAbnormal", nullptr, GLBindSamplerAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4123         {"glBindTextureAbnormal", nullptr, GLBindTextureAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4124         {"glBindTransformFeedbackAbnormal", nullptr, GLBindTransformFeedbackAbnormal, nullptr, nullptr, nullptr,
4125          napi_default, nullptr},
4126         {"glBindVertexArrayAbnormal", nullptr, GLBindVertexArrayAbnormal, nullptr, nullptr, nullptr, napi_default,
4127          nullptr},
4128         {"glBindVertexBufferAbnormal", nullptr, GLBindVertexBufferAbnormal, nullptr, nullptr, nullptr, napi_default,
4129          nullptr},
4130         {"glBlendEquationAbnormal", nullptr, GLBlendEquationAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4131         {"glBlendEquationiAbnormal", nullptr, GLBlendEquationiAbnormal, nullptr, nullptr, nullptr, napi_default,
4132          nullptr},
4133         {"glBlendEquationSeparateAbnormal", nullptr, GLBlendEquationSeparateAbnormal, nullptr, nullptr, nullptr,
4134          napi_default, nullptr},
4135         {"glBlendEquationSeparateiAbnormal", nullptr, GLBlendEquationSeparateiAbnormal, nullptr, nullptr, nullptr,
4136          napi_default, nullptr},
4137         {"glBlendFuncAbnormal", nullptr, GLBlendFuncAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4138         {"glBlendFunciAbnormal", nullptr, GLBlendFunciAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4139         {"glBlendFuncSeparateAbnormal", nullptr, GLBlendFuncSeparateAbnormal, nullptr, nullptr, nullptr, napi_default,
4140          nullptr},
4141         {"glBlendFuncSeparateiAbnormal", nullptr, GLBlendFuncSeparateiAbnormal, nullptr, nullptr, nullptr, napi_default,
4142          nullptr},
4143         {"glBlitFramebufferAbnormal", nullptr, GLBlitFramebufferAbnormal, nullptr, nullptr, nullptr, napi_default,
4144          nullptr},
4145         {"glBufferDataAbnormal", nullptr, GLBufferDataAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4146         {"glBufferSubDataAbnormal", nullptr, GLBufferSubDataAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4147         {"glCheckFramebufferStatusAbnormal", nullptr, GLCheckFramebufferStatusAbnormal, nullptr, nullptr, nullptr,
4148          napi_default, nullptr},
4149         {"glClearAbnormal", nullptr, GLClearAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4150         {"glClearBufferfiAbnormal", nullptr, GLClearBufferfiAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4151         {"glClearBufferfvAbnormal", nullptr, GLClearBufferfvAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4152         {"glClearBufferivAbnormal", nullptr, GLClearBufferivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4153         {"glClearBufferuivAbnormal", nullptr, GLClearBufferuivAbnormal, nullptr, nullptr, nullptr, napi_default,
4154          nullptr},
4155         {"glClientWaitSyncAbnormal", nullptr, GLClientWaitSyncAbnormal, nullptr, nullptr, nullptr, napi_default,
4156          nullptr},
4157         {"glColorMaskiAbnormal", nullptr, GLColorMaskiAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4158         {"glCopyBufferSubDataAbnormal", nullptr, GLCopyBufferSubDataAbnormal, nullptr, nullptr, nullptr, napi_default,
4159          nullptr},
4160         {"glCopyImageSubDataAbnormal", nullptr, GLCopyImageSubDataAbnormal, nullptr, nullptr, nullptr, napi_default,
4161          nullptr},
4162         {"glCopyTexImage2DAbnormal", nullptr, GLCopyTexImage2DAbnormal, nullptr, nullptr, nullptr, napi_default,
4163          nullptr},
4164         {"glCopyTexSubImage2DAbnormal", nullptr, GLCopyTexSubImage2DAbnormal, nullptr, nullptr, nullptr, napi_default,
4165          nullptr},
4166         {"glCreateShaderAbnormal", nullptr, GLCreateShaderAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4167         {"glCreateShaderProgramvAbnormal", nullptr, GLCreateShaderProgramvAbnormal, nullptr, nullptr, nullptr,
4168          napi_default, nullptr},
4169         {"glCullFaceAbnormal", nullptr, GLCullFaceAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4170         {"glDebugMessageControlAbnormal", nullptr, GLDebugMessageControlAbnormal, nullptr, nullptr, nullptr,
4171          napi_default, nullptr},
4172         {"glDeleteBuffersAbnormal", nullptr, GLDeleteBuffersAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4173         {"glDeleteFramebuffersAbnormal", nullptr, GLDeleteFramebuffersAbnormal, nullptr, nullptr, nullptr, napi_default,
4174          nullptr},
4175         {"glDeleteProgramAbnormal", nullptr, GLDeleteProgramAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4176         {"glDeleteProgramPipelinesAbnormal", nullptr, GLDeleteProgramPipelinesAbnormal, nullptr, nullptr, nullptr,
4177          napi_default, nullptr},
4178         {"glDeleteQueriesAbnormal", nullptr, GLDeleteQueriesAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4179         {"glDeleteRenderbuffersAbnormal", nullptr, GLDeleteRenderbuffersAbnormal, nullptr, nullptr, nullptr,
4180          napi_default, nullptr},
4181         {"glDeleteSamplersAbnormal", nullptr, GLDeleteSamplersAbnormal, nullptr, nullptr, nullptr, napi_default,
4182          nullptr},
4183         {"glDeleteShaderAbnormal", nullptr, GLDeleteShaderAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4184         {"glDeleteSyncAbnormal", nullptr, GLDeleteSyncAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4185         {"glDeleteTexturesAbnormal", nullptr, GLDeleteTexturesAbnormal, nullptr, nullptr, nullptr, napi_default,
4186          nullptr},
4187         {"glDeleteTransformFeedbacksAbnormal", nullptr, GLDeleteTransformFeedbacksAbnormal, nullptr, nullptr, nullptr,
4188          napi_default, nullptr},
4189         {"glDeleteVertexArraysAbnormal", nullptr, GLDeleteVertexArraysAbnormal, nullptr, nullptr, nullptr, napi_default,
4190          nullptr},
4191         {"glDepthFuncAbnormal", nullptr, GLDepthFuncAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4192         {"glDetachShaderAbnormal", nullptr, GLDetachShaderAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4193         {"glDisableAbnormal", nullptr, GLDisableAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4194         {"glDisableiAbnormal", nullptr, GLDisableiAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4195         {"glDisableVertexAttribArrayAbnormal", nullptr, GLDisableVertexAttribArrayAbnormal, nullptr, nullptr, nullptr,
4196          napi_default, nullptr},
4197         {"glDispatchComputeAbnormal", nullptr, GLDispatchComputeAbnormal, nullptr, nullptr, nullptr, napi_default,
4198          nullptr},
4199         {"glDispatchComputeIndirectAbnormal", nullptr, GLDispatchComputeIndirectAbnormal, nullptr, nullptr, nullptr,
4200          napi_default, nullptr},
4201         {"glDrawArraysAbnormal", nullptr, GLDrawArraysAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4202         {"glDrawArraysIndirectAbnormal", nullptr, GLDrawArraysIndirectAbnormal, nullptr, nullptr, nullptr, napi_default,
4203          nullptr},
4204         {"glDrawArraysInstancedAbnormal", nullptr, GLDrawArraysInstancedAbnormal, nullptr, nullptr, nullptr,
4205          napi_default, nullptr},
4206         {"glDrawBuffersAbnormal", nullptr, GLDrawBuffersAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4207         {"glFlushMappedBufferRangeAbnormal", nullptr, GLFlushMappedBufferRangeAbnormal, nullptr, nullptr, nullptr,
4208          napi_default, nullptr},
4209         {"glFramebufferParameteriAbnormal", nullptr, GLFramebufferParameteriAbnormal, nullptr, nullptr, nullptr,
4210          napi_default, nullptr},
4211         {"glFramebufferRenderbufferAbnormal", nullptr, GLFramebufferRenderbufferAbnormal, nullptr, nullptr, nullptr,
4212          napi_default, nullptr},
4213         {"glFramebufferTextureAbnormal", nullptr, GLFramebufferTextureAbnormal, nullptr, nullptr, nullptr, napi_default,
4214          nullptr},
4215         {"glFramebufferTexture2DAbnormal", nullptr, GLFramebufferTexture2DAbnormal, nullptr, nullptr, nullptr,
4216          napi_default, nullptr},
4217         {"glFramebufferTextureLayerAbnormal", nullptr, GLFramebufferTextureLayerAbnormal, nullptr, nullptr, nullptr,
4218          napi_default, nullptr},
4219         {"glFrontFaceAbnormal", nullptr, GLFrontFaceAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4220         {"glGenBuffersAbnormal", nullptr, GLGenBuffersAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4221         {"glGenerateMipmapAbnormal", nullptr, GLGenerateMipmapAbnormal, nullptr, nullptr, nullptr, napi_default,
4222          nullptr},
4223         {"glGenFramebuffersAbnormal", nullptr, GLGenFramebuffersAbnormal, nullptr, nullptr, nullptr, napi_default,
4224          nullptr},
4225         {"glGenProgramPipelinesAbnormal", nullptr, GLGenProgramPipelinesAbnormal, nullptr, nullptr, nullptr,
4226          napi_default, nullptr},
4227         {"glGenQueriesAbnormal", nullptr, GLGenQueriesAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4228         {"glGenRenderbuffersAbnormal", nullptr, GLGenRenderbuffersAbnormal, nullptr, nullptr, nullptr, napi_default,
4229          nullptr},
4230         {"glGenSamplersAbnormal", nullptr, GLGenSamplersAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4231         {"glGenTexturesAbnormal", nullptr, GLGenTexturesAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4232         {"glGenTransformFeedbacksAbnormal", nullptr, GLGenTransformFeedbacksAbnormal, nullptr, nullptr, nullptr,
4233          napi_default, nullptr},
4234         {"glGenVertexArraysAbnormal", nullptr, GLGenVertexArraysAbnormal, nullptr, nullptr, nullptr, napi_default,
4235          nullptr},
4236         {"glGetActiveAttribAbnormal", nullptr, GLGetActiveAttribAbnormal, nullptr, nullptr, nullptr, napi_default,
4237          nullptr},
4238         {"glGetAttachedShadersAbnormal", nullptr, GLGetAttachedShadersAbnormal, nullptr, nullptr, nullptr, napi_default,
4239          nullptr},
4240         {"glGetAttribLocationAbnormal", nullptr, GLGetAttribLocationAbnormal, nullptr, nullptr, nullptr, napi_default,
4241          nullptr},
4242         {"glGetBooleani_vAbnormal", nullptr, GLGetBooleani_vAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4243         {"glGetBooleanvAbnormal", nullptr, GLGetBooleanvAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4244         {"glGetBufferParameteri64vAbnormal", nullptr, GLGetBufferParameteri64vAbnormal, nullptr, nullptr, nullptr,
4245          napi_default, nullptr},
4246         {"glGetBufferParameterivAbnormal", nullptr, GLGetBufferParameterivAbnormal, nullptr, nullptr, nullptr,
4247          napi_default, nullptr},
4248         {"glGetBufferPointervAbnormal", nullptr, GLGetBufferPointervAbnormal, nullptr, nullptr, nullptr, napi_default,
4249          nullptr},
4250         {"glGetFloatvAbnormal", nullptr, GLGetFloatvAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4251         {"glGetFragDataLocationAbnormal", nullptr, GLGetFragDataLocationAbnormal, nullptr, nullptr, nullptr,
4252          napi_default, nullptr},
4253         {"glGetFramebufferAttachmentParameterivAbnormal", nullptr, GLGetFramebufferAttachmentParameterivAbnormal,
4254          nullptr, nullptr, nullptr, napi_default, nullptr},
4255         {"glGetFramebufferParameterivAbnormal", nullptr, GLGetFramebufferParameterivAbnormal, nullptr, nullptr, nullptr,
4256          napi_default, nullptr},
4257         {"glGetInteger64i_vAbnormal", nullptr, GLGetInteger64i_vAbnormal, nullptr, nullptr, nullptr, napi_default,
4258          nullptr},
4259         {"glGetInteger64vAbnormal", nullptr, GLGetInteger64vAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4260         {"glGetIntegeri_vAbnormal", nullptr, GLGetIntegeri_vAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4261         {"glGetIntegervAbnormal", nullptr, GLGetIntegervAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4262         {"glGetInternalformativAbnormal", nullptr, GLGetInternalformativAbnormal, nullptr, nullptr, nullptr,
4263          napi_default, nullptr},
4264         {"glGetObjectLabelAbnormal", nullptr, GLGetObjectLabelAbnormal, nullptr, nullptr, nullptr, napi_default,
4265          nullptr},
4266         {"glGetObjectPtrLabelAbnormal", nullptr, GLGetObjectPtrLabelAbnormal, nullptr, nullptr, nullptr, napi_default,
4267          nullptr},
4268         {"glGetPointervAbnormal", nullptr, GLGetPointervAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4269         {"glGetProgramBinaryAbnormal", nullptr, GLGetProgramBinaryAbnormal, nullptr, nullptr, nullptr, napi_default,
4270          nullptr},
4271         {"glGetProgramInterfaceivAbnormal", nullptr, GLGetProgramInterfaceivAbnormal, nullptr, nullptr, nullptr,
4272          napi_default, nullptr},
4273         {"glGetProgramivAbnormal", nullptr, GLGetProgramivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4274         {"glGetProgramPipelineivAbnormal", nullptr, GLGetProgramPipelineivAbnormal, nullptr, nullptr, nullptr,
4275          napi_default, nullptr},
4276         {"glGetProgramResourceIndexAbnormal", nullptr, GLGetProgramResourceIndexAbnormal, nullptr, nullptr, nullptr,
4277          napi_default, nullptr},
4278         {"glGetProgramResourceivAbnormal", nullptr, GLGetProgramResourceivAbnormal, nullptr, nullptr, nullptr,
4279          napi_default, nullptr},
4280         {"glGetProgramResourceLocationAbnormal", nullptr, GLGetProgramResourceLocationAbnormal, nullptr, nullptr,
4281          nullptr, napi_default, nullptr},
4282         {"glGetProgramResourceNameAbnormal", nullptr, GLGetProgramResourceNameAbnormal, nullptr, nullptr, nullptr,
4283          napi_default, nullptr},
4284         {"glGetQueryivAbnormal", nullptr, GLGetQueryivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4285         {"glGetQueryObjectuivAbnormal", nullptr, GLGetQueryObjectuivAbnormal, nullptr, nullptr, nullptr, napi_default,
4286          nullptr},
4287         {"glGetRenderbufferParameterivAbnormal", nullptr, GLGetRenderbufferParameterivAbnormal, nullptr, nullptr,
4288          nullptr, napi_default, nullptr},
4289         {"glGetSamplerParameterfvAbnormal", nullptr, GLGetSamplerParameterfvAbnormal, nullptr, nullptr, nullptr,
4290          napi_default, nullptr},
4291         {"glGetSamplerParameterIivAbnormal", nullptr, GLGetSamplerParameterIivAbnormal, nullptr, nullptr, nullptr,
4292          napi_default, nullptr},
4293         {"glGetSamplerParameterIuivAbnormal", nullptr, GLGetSamplerParameterIuivAbnormal, nullptr, nullptr, nullptr,
4294          napi_default, nullptr},
4295         {"glGetSamplerParameterivAbnormal", nullptr, GLGetSamplerParameterivAbnormal, nullptr, nullptr, nullptr,
4296          napi_default, nullptr},
4297         {"glUniform1fAbnormal", nullptr, GLUniform1fAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4298         {"glUniform1fvAbnormal", nullptr, GLUniform1fvAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4299         {"glUniform1iAbnormal", nullptr, GLUniform1iAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4300         {"glUniform1ivAbnormal", nullptr, GLUniform1ivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4301         {"glUniform1uiAbnormal", nullptr, GLUniform1uiAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4302         {"glUniform1uivAbnormal", nullptr, GLUniform1uivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4303         {"glUniform2fAbnormal", nullptr, GLUniform2fAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4304         {"glUniform2fvAbnormal", nullptr, GLUniform2fvAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4305         {"glUniform2iAbnormal", nullptr, GLUniform2iAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4306         {"glUniform2ivAbnormal", nullptr, GLUniform2ivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4307         {"glUniform2uiAbnormal", nullptr, GLUniform2uiAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4308         {"glUniform2uivAbnormal", nullptr, GLUniform2uivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4309         {"glUniform3fAbnormal", nullptr, GLUniform3fAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4310         {"glUniform3fvAbnormal", nullptr, GLUniform3fvAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4311         {"glUniform3iAbnormal", nullptr, GLUniform3iAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4312         {"glUniform3ivAbnormal", nullptr, GLUniform3ivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4313         {"glUniform3uiAbnormal", nullptr, GLUniform3uiAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4314         {"glUniform3uivAbnormal", nullptr, GLUniform3uivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4315         {"glUniform4fAbnormal", nullptr, GLUniform4fAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4316         {"glUniform4fvAbnormal", nullptr, GLUniform4fvAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4317         {"glUniform4iAbnormal", nullptr, GLUniform4iAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4318         {"glUniform4ivAbnormal", nullptr, GLUniform4ivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4319         {"glUniform4uiAbnormal", nullptr, GLUniform4uiAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4320         {"glUniform4uivAbnormal", nullptr, GLUniform4uivAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4321         {"glUniformBlockBindingAbnormal", nullptr, GLUniformBlockBindingAbnormal, nullptr, nullptr, nullptr,
4322          napi_default, nullptr},
4323         {"glUniformMatrix2fvAbnormal", nullptr, GLUniformMatrix2fvAbnormal, nullptr, nullptr, nullptr, napi_default,
4324          nullptr},
4325         {"glUniformMatrix2x3fvAbnormal", nullptr, GLUniformMatrix2x3fvAbnormal, nullptr, nullptr, nullptr, napi_default,
4326          nullptr},
4327         {"glUniformMatrix2x4fvAbnormal", nullptr, GLUniformMatrix2x4fvAbnormal, nullptr, nullptr, nullptr, napi_default,
4328          nullptr},
4329         {"glUniformMatrix3fvAbnormal", nullptr, GLUniformMatrix3fvAbnormal, nullptr, nullptr, nullptr, napi_default,
4330          nullptr},
4331         {"glUniformMatrix3x2fvAbnormal", nullptr, GLUniformMatrix3x2fvAbnormal, nullptr, nullptr, nullptr, napi_default,
4332          nullptr},
4333         {"glUniformMatrix3x4fvAbnormal", nullptr, GLUniformMatrix3x4fvAbnormal, nullptr, nullptr, nullptr, napi_default,
4334          nullptr},
4335         {"glUniformMatrix4fvAbnormal", nullptr, GLUniformMatrix4fvAbnormal, nullptr, nullptr, nullptr, napi_default,
4336          nullptr},
4337         {"glUniformMatrix4x2fvAbnormal", nullptr, GLUniformMatrix4x2fvAbnormal, nullptr, nullptr, nullptr, napi_default,
4338          nullptr},
4339         {"glUniformMatrix4x3fvAbnormal", nullptr, GLUniformMatrix4x3fvAbnormal, nullptr, nullptr, nullptr, napi_default,
4340          nullptr},
4341         {"glCompileShaderAbnormal", nullptr, GLCompileShaderAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4342         {"glCompressedTexImage2DAbnormal", nullptr, GLCompressedTexImage2DAbnormal, nullptr, nullptr, nullptr,
4343          napi_default, nullptr},
4344         {"glCompressedTexImage3DAbnormal", nullptr, GLCompressedTexImage3DAbnormal, nullptr, nullptr, nullptr,
4345          napi_default, nullptr},
4346         {"glCompressedTexSubImage2DAbnormal", nullptr, GLCompressedTexSubImage2DAbnormal, nullptr, nullptr, nullptr,
4347          napi_default, nullptr},
4348         {"glCompressedTexSubImage3DAbnormal", nullptr, GLCompressedTexSubImage3DAbnormal, nullptr, nullptr, nullptr,
4349          napi_default, nullptr},
4350         {"glCopyTexSubImage3DAbnormal", nullptr, GLCopyTexSubImage3DAbnormal, nullptr, nullptr, nullptr, napi_default,
4351          nullptr},
4352         {"glDrawElementsAbnormal", nullptr, GLDrawElementsAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4353         {"glDrawElementsBaseVertexAbnormal", nullptr, GLDrawElementsBaseVertexAbnormal, nullptr, nullptr, nullptr,
4354          napi_default, nullptr},
4355         {"glDrawElementsIndirectAbnormal", nullptr, GLDrawElementsIndirectAbnormal, nullptr, nullptr, nullptr,
4356          napi_default, nullptr},
4357         {"glDrawElementsInstancedAbnormal", nullptr, GLDrawElementsInstancedAbnormal, nullptr, nullptr, nullptr,
4358          napi_default, nullptr},
4359         {"glDrawElementsInstancedBaseVertexAbnormal", nullptr, GLDrawElementsInstancedBaseVertexAbnormal, nullptr,
4360          nullptr, nullptr, napi_default, nullptr},
4361         {"glDrawRangeElementsAbnormal", nullptr, GLDrawRangeElementsAbnormal, nullptr, nullptr, nullptr, napi_default,
4362          nullptr},
4363         {"glDrawRangeElementsBaseVertexAbnormal", nullptr, GLDrawRangeElementsBaseVertexAbnormal, nullptr, nullptr,
4364          nullptr, napi_default, nullptr},
4365         {"glEnableAbnormal", nullptr, GLEnableAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4366         {"glEnableiAbnormal", nullptr, GLEnableiAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4367         {"glEnableVertexAttribArrayAbnormal", nullptr, GLEnableVertexAttribArrayAbnormal, nullptr, nullptr, nullptr,
4368          napi_default, nullptr},
4369         {"glEndQueryAbnormal", nullptr, GLEndQueryAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4370         {"glEndTransformFeedbackAbnormal", nullptr, GLEndTransformFeedbackAbnormal, nullptr, nullptr, nullptr,
4371          napi_default, nullptr},
4372         {"glFenceSyncAbnormal", nullptr, GLFenceSyncAbnormal, nullptr, nullptr, nullptr, napi_default, nullptr},
4373 
4374     };
4375     napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
4376     return exports;
4377 }
4378 EXTERN_C_END
4379 
4380 static napi_module demoModule = {
4381     .nm_version = 1,
4382     .nm_flags = 0,
4383     .nm_filename = nullptr,
4384     .nm_register_func = Init,
4385     .nm_modname = "media",
4386     .nm_priv = ((void *)0),
4387     .reserved = {0},
4388 };
4389 
RegisterEntryModule(void)4390 extern "C" __attribute__((constructor)) void RegisterEntryModule(void) { napi_module_register(&demoModule); }
4391