aboutsummaryrefslogtreecommitdiffstats
path: root/make/gl-impl-CustomCCode.c
diff options
context:
space:
mode:
authorKenneth Russel <[email protected]>2003-08-07 19:53:38 +0000
committerKenneth Russel <[email protected]>2003-08-07 19:53:38 +0000
commitdb0bdc71eec40d7fcd22ddcea87178c8805d4312 (patch)
treed04e66f83bcf5eeeaa5283f17a86f9093d678e1c /make/gl-impl-CustomCCode.c
parentdd16a976876a779dc0ee6da9ebf5ada29f5781c7 (diff)
Changed glMapBufferARB's implementation to return the same ByteBuffer
if the address and capacity of the underlying buffer object haven't changed. This saves applications the cost of re-slicing the returned buffer each frame and avoids allocation of one or more finalizable objects per frame. Moved GlueGen's checking of whether a passed buffer is direct up into Java from C to be able to handle buffers that wrap the NULL pointer (needed for the "buffer offsets" used by ARB_vertex_buffer_object). Ported the VertexArrayRange demo to VertexBufferObject. Currently slower than VertexArrayRange but needs to be updated to triangulate the geometry more efficiently (currently the triangle strips are only 48 vertices long) and to move the indices into fast RAM. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@47 232f8b59-042b-4e1e-8c03-345bb8c30851
Diffstat (limited to 'make/gl-impl-CustomCCode.c')
-rw-r--r--make/gl-impl-CustomCCode.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/make/gl-impl-CustomCCode.c b/make/gl-impl-CustomCCode.c
index 1616353d9..0f02f2d48 100644
--- a/make/gl-impl-CustomCCode.c
+++ b/make/gl-impl-CustomCCode.c
@@ -1,15 +1,14 @@
/* Java->C glue code:
* Java package: net.java.games.jogl.impl.windows.WindowsGLImpl
- * Java method: java.nio.ByteBuffer dispatch_glMapBufferARB(int target, int access)
+ * Java method: long dispatch_glMapBufferARB(int target, int access)
* C function: LPVOID glMapBufferARB(GLenum target, GLenum access);
*/
-JNIEXPORT jobject JNICALL
-Java_net_java_games_jogl_impl_windows_WindowsGLImpl_dispatch_1glMapBufferARB(JNIEnv *env, jobject _unused, jint target, jint access, jint size, jlong glProcAddress) {
+JNIEXPORT jlong JNICALL
+Java_net_java_games_jogl_impl_windows_WindowsGLImpl_dispatch_1glMapBufferARB(JNIEnv *env, jobject _unused, jint target, jint access, jlong glProcAddress) {
PFNGLMAPBUFFERARBPROC ptr_glMapBufferARB;
LPVOID _res;
ptr_glMapBufferARB = (PFNGLMAPBUFFERARBPROC) (intptr_t) glProcAddress;
assert(ptr_glMapBufferARB != NULL);
_res = (* ptr_glMapBufferARB) ((GLenum) target, (GLenum) access);
- if (_res == NULL) return NULL;
- return (*env)->NewDirectByteBuffer(env, _res, size);
+ return (jlong) (intptr_t) _res;
}