LWJGL 2.0 Release Candidate 1

Started by Matzon, June 07, 2008, 20:48:44

Previous topic - Next topic

Matzon

Almost home free...

italic is changes from beta 1

LWJGL 2.0 changes
Major changes
* fmod and devil removed
* dropped support for windows 9x
* glu moved to lwjgl_util
* glu now uses buffers instead of arrays
* New Display.setParent() feature allows you to embed the Display into an existing AWT canvas.
   For example, this allows for an existing LWJGL based application to be used in an applet without porting to AWTGLCanvas.
   This means the death of AWTInputAdapter
* Mac OS X: Added support for x86_64
* Linux: Using openal-soft instead of the creative (was more or less broken anyway)
* Windows: Using openal-soft instead of creatives.
* Support for lzma and pack200 in appletloader
* Support for showing download speed in appletloader

Minor changes
* no more processMessages at isCloseRequested, isVisible, isDirty and isActive
* Removed 2D OpenGL initialization code from Display. It messes with the implicit, but well-defined, opengl default state and doesn't fit well with multiple context types (gl3 and d3d)
* NV_conditional_render extension added
* Support for GL_LAYER_NV
* Lots of input/focus fixes
* Support for ALC_ENUMERATE_ALL_EXT

Non 2.0 specific changes
* Restored 10.3 compatibility
* Updated openal-soft to latest, with alsa and oss backend (linux), winmm and dsound for windows.


Get it here

Remember to donate ;)

Matzon


irongiant

I'm trying this release tonight.
For now, I used the provided test case for the Display.setParent() "feature" and I found some problems.

1)

Resizing the window so only the title bar is visible causes the following exception:
Exception in thread "main" org.lwjgl.opengl.OpenGLException: Invalid value (1281)
        at org.lwjgl.opengl.Util.checkGLError(Util.java:54)
        at org.lwjgl.opengl.Display.swapBuffers(Display.java:626)
        at org.lwjgl.opengl.Display.update(Display.java:645)
        at DisplayParentTest.<init>(DisplayParentTest.java:63)
        at DisplayParentTest.main(DisplayParentTest.java:87)



2)

Sometimes the program crashes when entering fullscreen. I can't predict when it happens and no excpetion is thrown.


3)

Closing the window using the ususal means causes another exception.
EDIT: I forgot to mention this happens when the window listener is uncommented (maybe that's why it was commented..).
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: From thread Thread[AWT-EventQueue-0,6,main]: Thread[main,5,main] already has the context current
        at org.lwjgl.opengl.Context.checkAccess(Context.java:171)
        at org.lwjgl.opengl.Context.forceDestroy(Context.java:234)
        at org.lwjgl.opengl.Display.destroyContext(Display.java:890)
        at org.lwjgl.opengl.Display.destroy(Display.java:873)
        at DisplayParentTest$1.windowClosing(DisplayParentTest.java:29)
        at java.awt.Window.processWindowEvent(Window.java:1827)
        at java.awt.Window.processEvent(Window.java:1785)
        at java.awt.Component.dispatchEventImpl(Component.java:4413)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Window.dispatchEventImpl(Window.java:2440)
        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)

Matzon

1,3 fixed in svn - just some minor issues in the test.

Unable to reproduce the fullscreen bug - I have no problems at all on my nvidia card. A VM that can instant-crash without exceptions sounds .. weird ?

Fool Running

I'm definitely going to try move from 1.1.x now. ;D

Keep up the good work guys. 8)

EDIT: No problems moving to 2.0. Very nice! ;)
Programmers will, one day, rule the world... and the world won't notice until its too late.Just testing the marquee option ;D

irongiant

Quote from: Matzon on June 08, 2008, 09:30:11
Unable to reproduce the fullscreen bug - I have no problems at all on my nvidia card. A VM that can instant-crash without exceptions sounds .. weird ?

I meant, the program freezes and the VM keeps running. I have to terminate the process.
My bad..  :-[

I'm using Java 6 on XP SP3 with a Radeon, if that helps.

Matzon

not particularly... the next time it happens - please try and attach a debugger (https://visualvm.dev.java.net/) and get a heap dump and a thread dump.

elias4444

Looks like the ":" (colon) and the "~" (tilde) keys aren't working on Linux. This was fixed for the Mac in the last version, so I'm guessing it'll be something similar.
=-=-=-=-=-======-=-=-=-=-=-
http://www.tommytwisters.com

Fool Running

QuoteLooks like the ":" (colon) and the "~" (tilde) keys aren't working on Linux. This was fixed for the Mac in the last version, so I'm guessing it'll be something similar.
They're working for me in Linux. Maybe I'm not understanding what you mean by not working? ???
Programmers will, one day, rule the world... and the world won't notice until its too late.Just testing the marquee option ;D

elias4444

Hmmm... that's odd. Using Keyboard.getEventCharacter() doesn't return a colon for me when the user presses shift-semicolon. My code works fine on Windows and Mac now, just not linux.  :-\
=-=-=-=-=-======-=-=-=-=-=-
http://www.tommytwisters.com

Fool Running

Which Linux keyboard layout are you using?
I'm using the US Keyboard layout. If you're using a different layout, maybe it has something to do with that?
Programmers will, one day, rule the world... and the world won't notice until its too late.Just testing the marquee option ;D

marqx

I have the following problem using RC1:

Running Ubuntu (Hardy) x64, I create a JFrame containing a Canvas. I then use the Display.setParent(...)-method to place my LWJGL-window inside of the JFrame. Everything works like a charm except for one thing. For the most part, I only receive mouseclick-events when a mouse button is released and not when it is pressed down.

It appears as if this happens because the input focus is lost more or less directly after each mouse click. Pressing down a button sets the input focus on the Canvas (but does not produce a mouseevent), then when I release the mouse button I receive a mouseevent and more or less immediately after that the input focus is lost.

This problem doesn't present itself if I don't use the setParent(...)-method.

Any ideas or suggestions?

<Edit>
I can also add that, when running on Windows, the same code runs without any problems.
</Edit>