summaryrefslogtreecommitdiffstats
path: root/make/config/jogl/gl-impl-CustomCCode-gles3.c
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2015-03-11 15:33:10 +0100
committerSven Gothel <[email protected]>2015-03-11 15:33:10 +0100
commit68391b118e93170c568edc21edad7f6b0c1f97a3 (patch)
treec0fd4e18d0bca4f1ca0875bf2d1d0df430afd09d /make/config/jogl/gl-impl-CustomCCode-gles3.c
parentcd92c17175db0c3a3a04b5b327cfcb887bf8a7d7 (diff)
Bug 1135: Complete GLBufferObjectTracker for GL 4.5 using GlueGen's DelegateImplementation/ReturnsOpaque (Bug 1144)
Using GlueGen's new DelegateImplementation/ReturnsOpaque feature (Bug 1144) allows us to drop manually C implementation stubs, while simply delegating into the renamed private generated variant using the manual stub. Completed glBufferStorage and glNamedBufferStorage for GL 4.4 while subsuming DSA's of GL 4.5 and GL_EXT_direct_state_access (only the single functions, otherwise extension is not compatible).
Diffstat (limited to 'make/config/jogl/gl-impl-CustomCCode-gles3.c')
-rw-r--r--make/config/jogl/gl-impl-CustomCCode-gles3.c69
1 files changed, 1 insertions, 68 deletions
diff --git a/make/config/jogl/gl-impl-CustomCCode-gles3.c b/make/config/jogl/gl-impl-CustomCCode-gles3.c
index f459bc865..d04a90efa 100644
--- a/make/config/jogl/gl-impl-CustomCCode-gles3.c
+++ b/make/config/jogl/gl-impl-CustomCCode-gles3.c
@@ -1,71 +1,3 @@
-/* Java->C glue code:
- * Java package: jogamp.opengl.es3.GLES3Impl
- * Java method: void dispatch_glBufferData(int target, long size, java.nio.Buffer data, int usage)
- * C function: void glBufferData(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage);
- */
-JNIEXPORT void JNICALL
-Java_jogamp_opengl_es3_GLES3Impl_dispatch_1glBufferData(JNIEnv *env, jobject _unused, jint target, jlong size, jobject data, jint data_byte_offset, jboolean data_is_nio, jint usage, jlong procAddress) {
- typedef void (GL_APIENTRY*_local_PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage);
- _local_PFNGLBUFFERDATAPROC ptr_glBufferData;
- GLvoid * _data_ptr = NULL;
- if ( NULL != data ) {
- _data_ptr = (GLvoid *) ( JNI_TRUE == data_is_nio ? (*env)->GetDirectBufferAddress(env, data) : (*env)->GetPrimitiveArrayCritical(env, data, NULL) ); }
- ptr_glBufferData = (_local_PFNGLBUFFERDATAPROC) (intptr_t) procAddress;
- assert(ptr_glBufferData != NULL);
- (* ptr_glBufferData) ((GLenum) target, (GLsizeiptr) size, (GLvoid *) (((char *) _data_ptr) + data_byte_offset), (GLenum) usage);
- if ( JNI_FALSE == data_is_nio && NULL != data ) {
- (*env)->ReleasePrimitiveArrayCritical(env, data, _data_ptr, JNI_ABORT); }
-}
-
-/* Java->C glue code:
- * Java package: jogamp.opengl.es3.GLES3Impl
- * Java method: boolean dispatch_glUnmapBuffer(int target)
- * C function: GLboolean glUnmapBuffer(GLenum target);
- */
-JNIEXPORT jboolean JNICALL
-Java_jogamp_opengl_es3_GLES3Impl_dispatch_1glUnmapBuffer(JNIEnv *env, jobject _unused, jint target, jlong procAddress) {
- typedef GLboolean (GL_APIENTRY*_local_PFNGLUNMAPBUFFERPROC)(GLenum target);
- _local_PFNGLUNMAPBUFFERPROC ptr_glUnmapBuffer;
- GLboolean _res;
- ptr_glUnmapBuffer = (_local_PFNGLUNMAPBUFFERPROC) (intptr_t) procAddress;
- assert(ptr_glUnmapBuffer != NULL);
- _res = (* ptr_glUnmapBuffer) ((GLenum) target);
- return _res;
-}
-
-typedef GLvoid* (GL_APIENTRY* PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
-
-/* Java->C glue code:
- * Java package: jogamp.opengl.es3.GLES3Impl
- * Java method: long dispatch_glMapBuffer(int target, int access)
- * C function: void * glMapBuffer(GLenum target, GLenum access);
- */
-JNIEXPORT jlong JNICALL
-Java_jogamp_opengl_es3_GLES3Impl_dispatch_1glMapBuffer(JNIEnv *env, jobject _unused, jint target, jint access, jlong glProcAddress) {
- typedef void *(GL_APIENTRY*_local_PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
- _local_PFNGLMAPBUFFERPROC ptr_glMapBuffer;
- void * _res;
- ptr_glMapBuffer = (_local_PFNGLMAPBUFFERPROC) (intptr_t) glProcAddress;
- assert(ptr_glMapBuffer != NULL);
- _res = (* ptr_glMapBuffer) ((GLenum) target, (GLenum) access);
- return (jlong) (intptr_t) _res;
-}
-
-/* Java->C glue code:
- * Java package: jogamp.opengl.es3.GLES3Impl
- * Java method: java.nio.ByteBuffer dispatch_glMapBufferRange(int target, long offset, long length, int access)
- * C function: void * glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
- */
-JNIEXPORT jlong JNICALL
-Java_jogamp_opengl_es3_GLES3Impl_dispatch_1glMapBufferRange(JNIEnv *env, jobject _unused, jint target, jlong offset, jlong length, jint access, jlong procAddress) {
- typedef void * (GL_APIENTRY*_local_PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
- _local_PFNGLMAPBUFFERRANGEPROC ptr_glMapBufferRange;
- void * _res;
- ptr_glMapBufferRange = (_local_PFNGLMAPBUFFERRANGEPROC) (intptr_t) procAddress;
- assert(ptr_glMapBufferRange != NULL);
- _res = (* ptr_glMapBufferRange) ((GLenum) target, (GLintptr) offset, (GLsizeiptr) length, (GLbitfield) access);
- return (jlong) (intptr_t) _res;
-}
/* Java->C glue code:
* Java package: jogamp.opengl.es3.GLES3Impl
@@ -76,3 +8,4 @@ JNIEXPORT jobject JNICALL
Java_jogamp_opengl_es3_GLES3Impl_newDirectByteBuffer(JNIEnv *env, jobject _unused, jlong addr, jlong capacity) {
return (*env)->NewDirectByteBuffer(env, (void*) (intptr_t) addr, capacity);
}
+