Skip to content

Commit eaec361

Browse files
committed
add support for gles3.0 & gles3.1
1 parent fd55a50 commit eaec361

File tree

9 files changed

+1466
-9
lines changed

9 files changed

+1466
-9
lines changed

.vscode/tasks.json

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
"command": "bash",
2424
"args": [
2525
"vscode_tasks.sh",
26-
"--build",
2726
"--run"
2827
],
2928
"options": {
@@ -37,18 +36,15 @@
3736
"type": "shell",
3837
"command": "bash",
3938
"args": [
40-
"-c",
41-
"echo done!"
39+
"vscode_tasks.sh",
40+
"--build",
41+
"--run"
4242
],
4343
"options": {
4444
"cwd": "${workspaceFolder}"
4545
},
4646
"group": "build",
47-
"problemMatcher": "$gcc",
48-
"dependsOn": [
49-
"[Android] Build Android Demo",
50-
"[Android] Run Android Demo",
51-
]
47+
"problemMatcher": "$gcc"
5248
},
5349
{
5450
"label": "[Android] Build Native Library",

library/src/main/java/org/wysaid/nativePort/NativeLibraryLoader.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ public static void load() {
1010
System.loadLibrary("CGE");
1111
System.loadLibrary("CGEExt");
1212
CGEFFmpegNativeLibrary.avRegisterAll();
13+
onLoad();
1314
}
1415

16+
static native void onLoad();
1517
}

library/src/main/jni/Android.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ LOCAL_SRC_FILES := \
3434
$(CGE_SOURCE)/common/cgeShaderFunctions.cpp \
3535
$(CGE_SOURCE)/common/cgeGlobal.cpp \
3636
$(CGE_SOURCE)/common/cgeTextureUtils.cpp \
37+
$(CGE_SOURCE)/common/cgeGL3Stub.c \
38+
$(CGE_SOURCE)/common/cgeGL31Stub.c \
3739
\
3840
$(CGE_SOURCE)/filters/cgeAdvancedEffects.cpp \
3941
$(CGE_SOURCE)/filters/cgeAdvancedEffectsCommon.cpp \
Lines changed: 251 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,251 @@
1+
/*
2+
** Copyright (c) 2013-2016 The Khronos Group Inc.
3+
**
4+
** Permission is hereby granted, free of charge, to any person obtaining a
5+
** copy of this software and/or associated documentation files (the
6+
** "Materials"), to deal in the Materials without restriction, including
7+
** without limitation the rights to use, copy, modify, merge, publish,
8+
** distribute, sublicense, and/or sell copies of the Materials, and to
9+
** permit persons to whom the Materials are furnished to do so, subject to
10+
** the following conditions:
11+
**
12+
** The above copyright notice and this permission notice shall be included
13+
** in all copies or substantial portions of the Materials.
14+
**
15+
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16+
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17+
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18+
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19+
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20+
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21+
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
22+
*/
23+
/*
24+
** This header is generated from the Khronos OpenGL / OpenGL ES XML
25+
** API Registry. The current version of the Registry, generator scripts
26+
** used to make the header, and the header can be found at
27+
** http://www.opengl.org/registry/
28+
**
29+
** Khronos $Revision$ on $Date$
30+
*/
31+
32+
#include "cgeGL31Stub.h"
33+
34+
#include <EGL/egl.h>
35+
36+
GLboolean cgeGl31StubInit()
37+
{
38+
#define FIND_PROC(s) s = (void*)eglGetProcAddress(#s)
39+
FIND_PROC(glDispatchCompute);
40+
FIND_PROC(glDispatchComputeIndirect);
41+
FIND_PROC(glDrawArraysIndirect);
42+
FIND_PROC(glDrawElementsIndirect);
43+
FIND_PROC(glFramebufferParameteri);
44+
FIND_PROC(glGetFramebufferParameteriv);
45+
FIND_PROC(glGetProgramInterfaceiv);
46+
FIND_PROC(glGetProgramResourceIndex);
47+
FIND_PROC(glGetProgramResourceName);
48+
FIND_PROC(glGetProgramResourceiv);
49+
FIND_PROC(glGetProgramResourceLocation);
50+
FIND_PROC(glUseProgramStages);
51+
FIND_PROC(glActiveShaderProgram);
52+
FIND_PROC(glCreateShaderProgramv);
53+
FIND_PROC(glBindProgramPipeline);
54+
FIND_PROC(glDeleteProgramPipelines);
55+
FIND_PROC(glGenProgramPipelines);
56+
FIND_PROC(glIsProgramPipeline);
57+
FIND_PROC(glGetProgramPipelineiv);
58+
FIND_PROC(glProgramUniform1i);
59+
FIND_PROC(glProgramUniform2i);
60+
FIND_PROC(glProgramUniform3i);
61+
FIND_PROC(glProgramUniform4i);
62+
FIND_PROC(glProgramUniform1ui);
63+
FIND_PROC(glProgramUniform2ui);
64+
FIND_PROC(glProgramUniform3ui);
65+
FIND_PROC(glProgramUniform4ui);
66+
FIND_PROC(glProgramUniform1f);
67+
FIND_PROC(glProgramUniform2f);
68+
FIND_PROC(glProgramUniform3f);
69+
FIND_PROC(glProgramUniform4f);
70+
FIND_PROC(glProgramUniform1iv);
71+
FIND_PROC(glProgramUniform2iv);
72+
FIND_PROC(glProgramUniform3iv);
73+
FIND_PROC(glProgramUniform4iv);
74+
FIND_PROC(glProgramUniform1uiv);
75+
FIND_PROC(glProgramUniform2uiv);
76+
FIND_PROC(glProgramUniform3uiv);
77+
FIND_PROC(glProgramUniform4uiv);
78+
FIND_PROC(glProgramUniform1fv);
79+
FIND_PROC(glProgramUniform2fv);
80+
FIND_PROC(glProgramUniform3fv);
81+
FIND_PROC(glProgramUniform4fv);
82+
FIND_PROC(glProgramUniformMatrix2fv);
83+
FIND_PROC(glProgramUniformMatrix3fv);
84+
FIND_PROC(glProgramUniformMatrix4fv);
85+
FIND_PROC(glProgramUniformMatrix2x3fv);
86+
FIND_PROC(glProgramUniformMatrix3x2fv);
87+
FIND_PROC(glProgramUniformMatrix2x4fv);
88+
FIND_PROC(glProgramUniformMatrix4x2fv);
89+
FIND_PROC(glProgramUniformMatrix3x4fv);
90+
FIND_PROC(glProgramUniformMatrix4x3fv);
91+
FIND_PROC(glValidateProgramPipeline);
92+
FIND_PROC(glGetProgramPipelineInfoLog);
93+
FIND_PROC(glBindImageTexture);
94+
FIND_PROC(glGetBooleani_v);
95+
FIND_PROC(glMemoryBarrier);
96+
FIND_PROC(glMemoryBarrierByRegion);
97+
FIND_PROC(glTexStorage2DMultisample);
98+
FIND_PROC(glGetMultisamplefv);
99+
FIND_PROC(glSampleMaski);
100+
FIND_PROC(glGetTexLevelParameteriv);
101+
FIND_PROC(glGetTexLevelParameterfv);
102+
FIND_PROC(glBindVertexBuffer);
103+
FIND_PROC(glVertexAttribFormat);
104+
FIND_PROC(glVertexAttribIFormat);
105+
FIND_PROC(glVertexAttribBinding);
106+
FIND_PROC(glVertexBindingDivisor);
107+
#undef FIND_PROC
108+
109+
if (!glDispatchCompute ||
110+
!glDispatchComputeIndirect ||
111+
!glDrawArraysIndirect ||
112+
!glDrawElementsIndirect ||
113+
!glFramebufferParameteri ||
114+
!glGetFramebufferParameteriv ||
115+
!glGetProgramInterfaceiv ||
116+
!glGetProgramResourceIndex ||
117+
!glGetProgramResourceName ||
118+
!glGetProgramResourceiv ||
119+
!glGetProgramResourceLocation ||
120+
!glUseProgramStages ||
121+
!glActiveShaderProgram ||
122+
!glCreateShaderProgramv ||
123+
!glBindProgramPipeline ||
124+
!glDeleteProgramPipelines ||
125+
!glGenProgramPipelines ||
126+
!glIsProgramPipeline ||
127+
!glGetProgramPipelineiv ||
128+
!glProgramUniform1i ||
129+
!glProgramUniform2i ||
130+
!glProgramUniform3i ||
131+
!glProgramUniform4i ||
132+
!glProgramUniform1ui ||
133+
!glProgramUniform2ui ||
134+
!glProgramUniform3ui ||
135+
!glProgramUniform4ui ||
136+
!glProgramUniform1f ||
137+
!glProgramUniform2f ||
138+
!glProgramUniform3f ||
139+
!glProgramUniform4f ||
140+
!glProgramUniform1iv ||
141+
!glProgramUniform2iv ||
142+
!glProgramUniform3iv ||
143+
!glProgramUniform4iv ||
144+
!glProgramUniform1uiv ||
145+
!glProgramUniform2uiv ||
146+
!glProgramUniform3uiv ||
147+
!glProgramUniform4uiv ||
148+
!glProgramUniform1fv ||
149+
!glProgramUniform2fv ||
150+
!glProgramUniform3fv ||
151+
!glProgramUniform4fv ||
152+
!glProgramUniformMatrix2fv ||
153+
!glProgramUniformMatrix3fv ||
154+
!glProgramUniformMatrix4fv ||
155+
!glProgramUniformMatrix2x3fv ||
156+
!glProgramUniformMatrix3x2fv ||
157+
!glProgramUniformMatrix2x4fv ||
158+
!glProgramUniformMatrix4x2fv ||
159+
!glProgramUniformMatrix3x4fv ||
160+
!glProgramUniformMatrix4x3fv ||
161+
!glValidateProgramPipeline ||
162+
!glGetProgramPipelineInfoLog ||
163+
!glBindImageTexture ||
164+
!glGetBooleani_v ||
165+
!glMemoryBarrier ||
166+
!glMemoryBarrierByRegion ||
167+
!glTexStorage2DMultisample ||
168+
!glGetMultisamplefv ||
169+
!glSampleMaski ||
170+
!glGetTexLevelParameteriv ||
171+
!glGetTexLevelParameterfv ||
172+
!glBindVertexBuffer ||
173+
!glVertexAttribFormat ||
174+
!glVertexAttribIFormat ||
175+
!glVertexAttribBinding ||
176+
!glVertexBindingDivisor)
177+
{
178+
return GL_FALSE;
179+
}
180+
181+
return GL_TRUE;
182+
}
183+
184+
GL_APICALL void (*GL_APIENTRY glDispatchCompute)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
185+
GL_APICALL void (*GL_APIENTRY glDispatchComputeIndirect)(GLintptr indirect);
186+
GL_APICALL void (*GL_APIENTRY glDrawArraysIndirect)(GLenum mode, const void* indirect);
187+
GL_APICALL void (*GL_APIENTRY glDrawElementsIndirect)(GLenum mode, GLenum type, const void* indirect);
188+
GL_APICALL void (*GL_APIENTRY glFramebufferParameteri)(GLenum target, GLenum pname, GLint param);
189+
GL_APICALL void (*GL_APIENTRY glGetFramebufferParameteriv)(GLenum target, GLenum pname, GLint* params);
190+
GL_APICALL void (*GL_APIENTRY glGetProgramInterfaceiv)(GLuint program, GLenum programInterface, GLenum pname, GLint* params);
191+
GL_APICALL GLuint (*GL_APIENTRY glGetProgramResourceIndex)(GLuint program, GLenum programInterface, const GLchar* name);
192+
GL_APICALL void (*GL_APIENTRY glGetProgramResourceName)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
193+
GL_APICALL void (*GL_APIENTRY glGetProgramResourceiv)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params);
194+
GL_APICALL GLint (*GL_APIENTRY glGetProgramResourceLocation)(GLuint program, GLenum programInterface, const GLchar* name);
195+
GL_APICALL void (*GL_APIENTRY glUseProgramStages)(GLuint pipeline, GLbitfield stages, GLuint program);
196+
GL_APICALL void (*GL_APIENTRY glActiveShaderProgram)(GLuint pipeline, GLuint program);
197+
GL_APICALL GLuint (*GL_APIENTRY glCreateShaderProgramv)(GLenum type, GLsizei count, const GLchar* const* strings);
198+
GL_APICALL void (*GL_APIENTRY glBindProgramPipeline)(GLuint pipeline);
199+
GL_APICALL void (*GL_APIENTRY glDeleteProgramPipelines)(GLsizei n, const GLuint* pipelines);
200+
GL_APICALL void (*GL_APIENTRY glGenProgramPipelines)(GLsizei n, GLuint* pipelines);
201+
GL_APICALL GLboolean (*GL_APIENTRY glIsProgramPipeline)(GLuint pipeline);
202+
GL_APICALL void (*GL_APIENTRY glGetProgramPipelineiv)(GLuint pipeline, GLenum pname, GLint* params);
203+
GL_APICALL void (*GL_APIENTRY glProgramUniform1i)(GLuint program, GLint location, GLint v0);
204+
GL_APICALL void (*GL_APIENTRY glProgramUniform2i)(GLuint program, GLint location, GLint v0, GLint v1);
205+
GL_APICALL void (*GL_APIENTRY glProgramUniform3i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
206+
GL_APICALL void (*GL_APIENTRY glProgramUniform4i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
207+
GL_APICALL void (*GL_APIENTRY glProgramUniform1ui)(GLuint program, GLint location, GLuint v0);
208+
GL_APICALL void (*GL_APIENTRY glProgramUniform2ui)(GLuint program, GLint location, GLuint v0, GLuint v1);
209+
GL_APICALL void (*GL_APIENTRY glProgramUniform3ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
210+
GL_APICALL void (*GL_APIENTRY glProgramUniform4ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
211+
GL_APICALL void (*GL_APIENTRY glProgramUniform1f)(GLuint program, GLint location, GLfloat v0);
212+
GL_APICALL void (*GL_APIENTRY glProgramUniform2f)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
213+
GL_APICALL void (*GL_APIENTRY glProgramUniform3f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
214+
GL_APICALL void (*GL_APIENTRY glProgramUniform4f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
215+
GL_APICALL void (*GL_APIENTRY glProgramUniform1iv)(GLuint program, GLint location, GLsizei count, const GLint* value);
216+
GL_APICALL void (*GL_APIENTRY glProgramUniform2iv)(GLuint program, GLint location, GLsizei count, const GLint* value);
217+
GL_APICALL void (*GL_APIENTRY glProgramUniform3iv)(GLuint program, GLint location, GLsizei count, const GLint* value);
218+
GL_APICALL void (*GL_APIENTRY glProgramUniform4iv)(GLuint program, GLint location, GLsizei count, const GLint* value);
219+
GL_APICALL void (*GL_APIENTRY glProgramUniform1uiv)(GLuint program, GLint location, GLsizei count, const GLuint* value);
220+
GL_APICALL void (*GL_APIENTRY glProgramUniform2uiv)(GLuint program, GLint location, GLsizei count, const GLuint* value);
221+
GL_APICALL void (*GL_APIENTRY glProgramUniform3uiv)(GLuint program, GLint location, GLsizei count, const GLuint* value);
222+
GL_APICALL void (*GL_APIENTRY glProgramUniform4uiv)(GLuint program, GLint location, GLsizei count, const GLuint* value);
223+
GL_APICALL void (*GL_APIENTRY glProgramUniform1fv)(GLuint program, GLint location, GLsizei count, const GLfloat* value);
224+
GL_APICALL void (*GL_APIENTRY glProgramUniform2fv)(GLuint program, GLint location, GLsizei count, const GLfloat* value);
225+
GL_APICALL void (*GL_APIENTRY glProgramUniform3fv)(GLuint program, GLint location, GLsizei count, const GLfloat* value);
226+
GL_APICALL void (*GL_APIENTRY glProgramUniform4fv)(GLuint program, GLint location, GLsizei count, const GLfloat* value);
227+
GL_APICALL void (*GL_APIENTRY glProgramUniformMatrix2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
228+
GL_APICALL void (*GL_APIENTRY glProgramUniformMatrix3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
229+
GL_APICALL void (*GL_APIENTRY glProgramUniformMatrix4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
230+
GL_APICALL void (*GL_APIENTRY glProgramUniformMatrix2x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
231+
GL_APICALL void (*GL_APIENTRY glProgramUniformMatrix3x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
232+
GL_APICALL void (*GL_APIENTRY glProgramUniformMatrix2x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
233+
GL_APICALL void (*GL_APIENTRY glProgramUniformMatrix4x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
234+
GL_APICALL void (*GL_APIENTRY glProgramUniformMatrix3x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
235+
GL_APICALL void (*GL_APIENTRY glProgramUniformMatrix4x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
236+
GL_APICALL void (*GL_APIENTRY glValidateProgramPipeline)(GLuint pipeline);
237+
GL_APICALL void (*GL_APIENTRY glGetProgramPipelineInfoLog)(GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
238+
GL_APICALL void (*GL_APIENTRY glBindImageTexture)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
239+
GL_APICALL void (*GL_APIENTRY glGetBooleani_v)(GLenum target, GLuint index, GLboolean* data);
240+
GL_APICALL void (*GL_APIENTRY glMemoryBarrier)(GLbitfield barriers);
241+
GL_APICALL void (*GL_APIENTRY glMemoryBarrierByRegion)(GLbitfield barriers);
242+
GL_APICALL void (*GL_APIENTRY glTexStorage2DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
243+
GL_APICALL void (*GL_APIENTRY glGetMultisamplefv)(GLenum pname, GLuint index, GLfloat* val);
244+
GL_APICALL void (*GL_APIENTRY glSampleMaski)(GLuint maskNumber, GLbitfield mask);
245+
GL_APICALL void (*GL_APIENTRY glGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint* params);
246+
GL_APICALL void (*GL_APIENTRY glGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat* params);
247+
GL_APICALL void (*GL_APIENTRY glBindVertexBuffer)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
248+
GL_APICALL void (*GL_APIENTRY glVertexAttribFormat)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
249+
GL_APICALL void (*GL_APIENTRY glVertexAttribIFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
250+
GL_APICALL void (*GL_APIENTRY glVertexAttribBinding)(GLuint attribindex, GLuint bindingindex);
251+
GL_APICALL void (*GL_APIENTRY glVertexBindingDivisor)(GLuint bindingindex, GLuint divisor);

0 commit comments

Comments
 (0)