I thank Tomas Hrasky too. This is a huge contribution! NURBS was a big hole in JOGL. It is very useful. If I have some time, I will test JOGL 1.1.1. In the past, we needed to use JGeom and I tried to rewrite the GLU NURBS by reusing some code coming from GL4Java but I failed.
Can you please provide a test case? All of the tests we have available are working fine.
i am very sorry. this was my bad. i used a buggy implementation of the renderdelegate.
edit: how about a new RC then?
Will aim to push 1.1.1-rc7 tomorrow.
so, how is RC7 and/or the final of 1.1.1 coming along? will we get a xmas present?
I don’t find gluQuadricCallback in JOGL 1.1.0. Is there something wrong?
This isn’t currently supported. If you would consider contributing code to support it that would be welcome. However it looks like this is of limited utility as the only valid callback is an error callback, and JOGL’s DebugGL should provide more in-depth error checking.
You’re right, I see what you mean, it seems more logical to rely on DebugGL.
I’ve found other strange things in the GLU in JOGL 1.1.1 RC7. There is a useless conditional structure :
if (nsign == 1.0f) {
normal3f(gl, (x * nsign), (y * nsign), (nz * nsign));
TXTR_COORD(gl, s, t);
gl.glVertex3f((x * r), (y * r), z);
normal3f(gl, (x * nsign), (y * nsign), (nz * nsign));
TXTR_COORD(gl, s, t + dt);
gl.glVertex3f((x * (r + dr)), (y * (r + dr)), (z + dz));
} else {
normal3f(gl, x * nsign, y * nsign, nz * nsign);
TXTR_COORD(gl, s, t);
gl.glVertex3f((x * r), (y * r), z);
normal3f(gl, x * nsign, y * nsign, nz * nsign);
TXTR_COORD(gl, s, t + dt);
gl.glVertex3f((x * (r + dr)), (y * (r + dr)), (z + dz));
}
If you agree with me, I can suggest you some corrections. On the other hand, it might be interesting to provide an implementation allowing to return all the coordinates in a buffer (rather than only using the immediate mode) in order to allow programmers to reuse them inside a VBO for example. I’m writing some methods to perform this now for my game.
The method gluCylinder generates one normal for every vertex in the quadric, this is the default behavior and the behavior of GLU_SMOOTH. Nevertheless, the normals are generated even though you call gluQuadricNormals(quadric,GLU.GLU_NONE) and too much normals are generated if you call gluQuadricNormals(quadric,GLU.GLU_FLAT). It would be better at least to rewrite the following method (in GLUquadricImpl) by adding a test :
/**
- Call glNormal3f after scaling normal to unit length.
- @param x
- @param y
-
@param z
*/
private void normal3f(GL gl, float x, float y, float z) {
if(normals != GLU.GLU_NONE)
{float mag;
mag = (float)Math.sqrt(x * x + y * y + z * z);
if (mag > 0.00001F) {
x /= mag;
y /= mag;
z /= mag;
}
gl.glNormal3f(x, y, z);
}
}
Then, it would solve one of the problem.
JSR-231 1.1.1 release candidate 7 has finally been released. I apologize to everyone for how long it has taken to publish this release.
This build contains bug fixes for the TextRenderer, some contributed by John Burkey. It adds control to the TextRenderer for whether to use vertex arrays or immediate mode, contributed by emzic. It adds control over whether GL_LINEAR filtering is enabled for the TextRenderer’s backing store, as some machines handle this poorly, resulting in fuzzy text. It also contains a small but deep bug fix in the native code which interacts with the JAWT which was preventing JOGL applets from being unloaded cleanly, and was also the root cause of bizarre ClassCastExceptions when running more than one JOGL applet on Mac OS X.
The JNLP extension has been updated:
http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jnlp
and a stable JNLP extension file for this release has been posted:
http://download.java.net/media/jogl/builds/archive/jsr-231-1.1.1-rc7/webstart/jogl.jnlp
Please try the new release and post if you have any problems or questions.
Another release candidate will follow this one with additional bug fixes to the TextRenderer.
I thought that “http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jnlp” points on the stable release JOGL 1.1.0. If I understand what you said, it’s pointing on JOGL 1.1.1???
It always points to the most recent promoted build. You can choose a “static version” of JOGL by using the .jnlp file for that release. For 1.1.0, it’s
http://download.java.net/media/jogl/builds/archive/jsr-231-1.1.0/webstart/jogl.jnlp
JSR-231 1.1.1 release candidate 8 has been released. This release fixes a couple more bugs in the TextRenderer; thanks to spiraljetty for the concise test cases illustrating these problems. Some additional controls to the TextRenderer motivated by emzic and other users were also added.
As part of this bug fix the TextRenderer’s code changed substantially. It is expected that this will have no user visible impact and that the only changes will be improvements in both correctness and performance when rendering mixed Unicode and Western European text. Still, please test this release and report any problems or regressions you find.
The JNLP extension has been updated:
http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jnlp
and a stable JNLP extension file for this release has been posted:
http://download.java.net/media/jogl/builds/archive/jsr-231-1.1.1-rc8/webstart/jogl.jnlp
It is hoped that this will be the last release candidate and that the final release of 1.1.1 will be done shortly, within about a month’s time. The JSR-231 maintenance release request will be sent to the JCP Program Management Office next week.
BTW I can’t get the xtrans demo to work at all. Any hints what type of debugging I need to turn on ? Basically the window just popus up and freezes and nothing shows, how do I know if it’s a driver problem?
D:\jogl\jogl-demos\src>java -Dsun.java2d.opengl=true demos.xtrans.Main
[I] WGLGraphicsConfig_initWGL
[I] OGLFuncs_OpenLibrary
[I] OGLFuncs_InitPlatformFuncs
[I] OGLFuncs_InitBaseFuncs
[I] WGLGraphicsConfig_getWGLConfigInfo
[I] OGLFuncs_InitExtFuncs
[I] WGLGC_GetPixelFormatForDC
[V] candidate pixel formats:
[V] pixfmt=7 db=1 alpha=0 depth=24 stencil=0 valid=true
[V] pixfmt=8 db=1 alpha=8 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=9 db=1 alpha=0 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=10 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=13 db=1 alpha=0 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=14 db=1 alpha=8 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=15 db=1 alpha=0 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=16 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=19 db=1 alpha=0 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=20 db=1 alpha=8 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=21 db=1 alpha=0 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=22 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=25 db=1 alpha=0 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=26 db=1 alpha=8 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=27 db=1 alpha=0 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=28 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=31 db=1 alpha=0 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=32 db=1 alpha=8 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=33 db=1 alpha=0 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=34 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=37 db=1 alpha=0 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=38 db=1 alpha=8 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=39 db=1 alpha=0 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=40 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=43 db=1 alpha=0 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=44 db=1 alpha=8 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=45 db=1 alpha=0 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=46 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=49 db=1 alpha=0 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=50 db=1 alpha=8 depth=24 stencil=0 valid=false (large depth)
[V] pixfmt=51 db=1 alpha=0 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=52 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=1829812196 db=1 alpha=8 depth=24 stencil=8 valid=false (large dep
th)
[V] pixfmt=369169695 db=1 alpha=8 depth=24 stencil=8 valid=false (large dept
h)
[V] pixfmt=727811152 db=1 alpha=8 depth=24 stencil=8 valid=false (large dept
h)
[V] pixfmt=45078528 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth
)
[V] pixfmt=717688600 db=1 alpha=8 depth=24 stencil=8 valid=false (large dept
h)
[V] pixfmt=58915308 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth
)
[V] pixfmt=0 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[V] pixfmt=0 db=1 alpha=8 depth=24 stencil=8 valid=false (large depth)
[I] WGLGC_GetPixelFormatForDC: chose 7 as the best pixel format
[I] OGLContext_IsExtensionAvailable: GL_ARB_fragment_shader=true
[I] OGLContext_IsExtensionAvailable: GL_ARB_multitexture=true
[I] OGLContext_IsExtensionAvailable: GL_ARB_texture_non_power_of_two=true
[I] OGLContext_IsExtensionAvailable: GL_ARB_texture_rectangle=true
[I] OGLContext_IsExtensionAvailable: GL_EXT_framebuffer_object=true
[I] OGLContext_IsFBObjectExtensionAvailable: fbobject supported
[I] OGLContext_IsLCDShaderSupportAvailable: LCD text shader supported
[I] OGLContext_IsBIOpShaderSupportAvailable: BufferedImageOp shader supported
[I] OGLContext_IsGradShaderSupportAvailable: Linear/RadialGradientPaint shader s
upported
[I] OGLContext_IsExtensionAvailable: GL_NV_fragment_program=true
[I] OGLContext_IsExtensionAvailable: GL_NV_fragment_program2=true
[I] WGLGraphicsConfig_getWGLConfigInfo: OpenGL version=2.0.1
[I] OGLContext_IsExtensionAvailable: WGL_ARB_pbuffer=true
[I] OGLContext_IsExtensionAvailable: WGL_ARB_make_current_read=true
[I] OGLContext_IsExtensionAvailable: WGL_ARB_pixel_format=true
If I resize the (now frozen window) I get this;
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] OGLSD_InitTextureObject: actual (w=45078528 h=45078528) != requested
[E] OGLSurfaceData_initFBObject: could not init texture object
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] OGLSD_InitTextureObject: actual (w=45078528 h=45078528) != requested
[E] OGLSurfaceData_initFBObject: could not init texture object
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] OGLSD_InitTextureObject: actual (w=45078528 h=45078528) != requested
[E] OGLSurfaceData_initFBObject: could not init texture object
[E] OGLSD_MakeOGLContextCurrent: could not make current
[E] OGLContext_SetSurfaces: could not make context current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] OGLSD_MakeOGLContextCurrent: could not make current
[E] OGLContext_SetSurfaces: could not make context current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] WGLSD_MakeCurrentToScratch: could not make current
[E] OGLSD_MakeOGLContextCurrent: could not make current
[E] OGLContext_SetSurfaces: could not make context current
Any ideas?
This demo requires the Java 2D OpenGL pipeline to be working properly, and this basically requires the absolute latest OpenGL drivers. I just upgraded to the 169.21 NVidia ForceWare drivers and they run the demo very well. You should check your vendor’s web site for a driver upgrade.
Hi!
I have tried to use the nightly build and I have got this exception when I launch TUER :
Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.nio.DirectByteBuffer cannot be cast to com.sun.opengl.impl.x11.JAWT_X11DrawingSurfaceInfo
at com.sun.opengl.impl.x11.X11OnscreenGLDrawable.lockSurface(X11OnscreenGLDrawable.java:152)
at com.sun.opengl.impl.x11.X11OnscreenGLContext.makeCurrentImpl(X11OnscreenGLContext.java:61)
at com.sun.opengl.impl.GLContextImpl.makeCurrent(GLContextImpl.java:134)
at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:182)
at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:265)
at javax.media.opengl.GLCanvas.display(GLCanvas.java:130)
at javax.media.opengl.GLCanvas.paint(GLCanvas.java:142)
at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
at sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:56)
at sun.awt.RepaintArea.paint(RepaintArea.java:224)
at sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:683)
at java.awt.Component.dispatchEventImpl(Component.java:4489)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Another people has got the same problem :
http://forum.java.sun.com/thread.jspa?messageID=10164398&tstart=0
I don’t know what to do. Please help me.
You have a mismatched jogl.jar and jogl.dll.
No I already checked it. I removed JOGL 1.1.0 before installing JOGL 1.1.1 RC8. I removed the 2 JARs in “jre/lib/ext” and the 4 .so files in “jre/lib/i386”. I will test again tonight.
Take a look at the LD_LIBRARY_PATH and scan these locations for jogl/gluegen .so files