diff --git a/opengl/tools/glgen/specs/gles11/GLES30.spec b/opengl/tools/glgen/specs/gles11/GLES30.spec index f181976eb..cf5a75870 100644 --- a/opengl/tools/glgen/specs/gles11/GLES30.spec +++ b/opengl/tools/glgen/specs/gles11/GLES30.spec @@ -218,15 +218,15 @@ void glGetActiveUniformBlockiv ( GLuint program, GLuint uniformBlockIndex, GLenu void glUniformBlockBinding ( GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding ) void glDrawArraysInstanced ( GLenum mode, GLint first, GLsizei count, GLsizei instanceCount ) void glDrawElementsInstanced ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount ) -// GLsync glFenceSync ( GLenum condition, GLbitfield flags ) -// GLboolean glIsSync ( GLsync sync ) -// void glDeleteSync ( GLsync sync ) -// GLenum glClientWaitSync ( GLsync sync, GLbitfield flags, GLuint64 timeout ) -// void glWaitSync ( GLsync sync, GLbitfield flags, GLuint64 timeout ) -// void glGetInteger64v ( GLenum pname, GLint64 *params ) -// void glGetSynciv ( GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values ) -// void glGetInteger64i_v ( GLenum target, GLuint index, GLint64 *data ) -// void glGetBufferParameteri64v ( GLenum target, GLenum pname, GLint64 *params ) +GLsync glFenceSync ( GLenum condition, GLbitfield flags ) +GLboolean glIsSync ( GLsync sync ) +void glDeleteSync ( GLsync sync ) +GLenum glClientWaitSync ( GLsync sync, GLbitfield flags, GLuint64 timeout ) +void glWaitSync ( GLsync sync, GLbitfield flags, GLuint64 timeout ) +void glGetInteger64v ( GLenum pname, GLint64 *params ) +void glGetSynciv ( GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values ) +void glGetInteger64i_v ( GLenum target, GLuint index, GLint64 *data ) +void glGetBufferParameteri64v ( GLenum target, GLenum pname, GLint64 *params ) void glGenSamplers ( GLsizei count, GLuint *samplers ) void glDeleteSamplers ( GLsizei count, const GLuint *samplers ) GLboolean glIsSampler ( GLuint sampler ) diff --git a/opengl/tools/glgen/src/JType.java b/opengl/tools/glgen/src/JType.java index 795d833e1..b10e7e255 100644 --- a/opengl/tools/glgen/src/JType.java +++ b/opengl/tools/glgen/src/JType.java @@ -48,6 +48,8 @@ public class JType { typeMapping.put(new CType("char", true, true), new JType("String", false, false)); typeMapping.put(new CType("GLchar", true, true), new JType("String", false, false)); typeMapping.put(new CType("int"), new JType("int")); + typeMapping.put(new CType("GLuint64"), new JType("long")); + typeMapping.put(new CType("GLsync"), new JType("long")); // EGL primitive types typeMapping.put(new CType("EGLint"), new JType("int")); @@ -103,6 +105,8 @@ public class JType { new JType("java.nio.IntBuffer", true, false)); typeMapping.put(new CType("GLshort", true, true), new JType("java.nio.ShortBuffer", true, false)); + typeMapping.put(new CType("GLint64", false, true), + new JType("java.nio.LongBuffer", true, false)); // Typed pointers map to arrays + offsets arrayTypeMapping.put(new CType("char", false, true), @@ -124,6 +128,7 @@ public class JType { arrayTypeMapping.put(new CType("GLuint", true, true), new JType("int", false, true)); arrayTypeMapping.put(new CType("GLintptr"), new JType("int", false, true)); arrayTypeMapping.put(new CType("GLsizeiptr"), new JType("int", false, true)); + arrayTypeMapping.put(new CType("GLint64", false, true), new JType("long", false, true)); //EGL typed pointers map to arrays + offsets arrayTypeMapping.put(new CType("EGLint", false, true), new JType("int", false, true)); diff --git a/opengl/tools/glgen/src/JniCodeEmitter.java b/opengl/tools/glgen/src/JniCodeEmitter.java index ffe376717..ba1152a7a 100644 --- a/opengl/tools/glgen/src/JniCodeEmitter.java +++ b/opengl/tools/glgen/src/JniCodeEmitter.java @@ -1421,7 +1421,8 @@ public class JniCodeEmitter { "return toEGLHandle(_env, " + baseType + "Class, " + baseType + "Constructor, _returnValue);"); } else { - out.println(indent + "return _returnValue;"); + out.println(indent + "return (" + + getJniType(jfunc.getType()) + ")_returnValue;"); } }