Bug 36 - glSelectBuffer/glFeedbackBuffer need direct buffers
Summary: glSelectBuffer/glFeedbackBuffer need direct buffers
Status: VERIFIED FIXED
Alias: None
Product: Jogl
Classification: JogAmp
Component: core (show other bugs)
Version: 1
Hardware: All all
: P3 normal
Assignee: Sven Gothel
URL:
Depends on:
Blocks:
 
Reported: 2003-09-07 03:34 CEST by Sven Gothel
Modified: 2010-03-24 07:45 CET (History)
0 users

See Also:
Type: DEFECT
SCM Refs:
Workaround: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2010-03-24 07:45:49 CET


---- Reported by timniblett 2003-09-07 15:34:12 ----

Here is the native code for glSelectBuffer 
 
JNIEXPORT void JNICALL  
Java_net_java_games_jogl_impl_windows_WindowsGLImpl_glSelectBuffer(JNIEn 
v *env, jobject _unused, jint size, jintArray buffer) { 
  GLuint * _ptr1 = NULL; 
  if (buffer != NULL) { 
    _ptr1 = (GLuint *) (*env)->GetPrimitiveArrayCritical(env, buffer, NULL); 
  } 
  glSelectBuffer((GLsizei) size, (GLuint *) _ptr1); 
  if (buffer != NULL) { 
    (*env)->ReleasePrimitiveArrayCritical(env, buffer, _ptr1, JNI_ABORT); 
  } 
} 
 
The "natural" way to use this is to fill the buffer and query it _after_ this call.  
However, there is no guarantee that the JVM hasn't moved the array somewhere 
or even that it passed a copy over in the first place. Using direct buffers would 
clear this up.



---- Additional Comments From kbr 2004-04-08 12:13:20 ----

This needs to be fixed by changing these routines to be NIO-only in the GlueGen
configuration file. Unfortunately this is an incompatible API change. We'll do
one more release under the current version number, bump the version number and
make the change.




---- Additional Comments From kbr 2004-04-20 18:42:27 ----

GlueGen has been updated to understand conversions from non-void* C
primitive pointer types to java.nio.Buffer subclasses. Some new
directives have been added to the JavaConfiguration class to control
emission of java.nio variants on a slightly finer grain, while also
allowing the default behavior to be changed to emit many more
combinations of java.nio and Java primitive array overloadings for
these functions. glSelectBuffer and glFeedbackBuffer have been made
NIO-only. The glue code for glEdgeFlagPointerEXT was also incorrect
and has been fixed by this change.




--- Bug imported by sgothel@jausoft.com 2010-03-24 07:45 EDT  ---

This bug was previously known as _bug_ 36 at https://jogl.dev.java.net/bugs/show_bug.cgi?id=36