Quote:
Originally posted by sberlin Try adding "-Dsun.java2d.opengl=false" to the parameter for starting java. I've noticed at home that openGL is enabled by default on Java5 and basically made LimeWire look like a blob of splattered paint. |
In fact, after adding some debugging options in Java 1.4.2, OpenGL is ALSO enabled on that version (and I can see the warning displayed on the Console with Java 1.4.2 too)
I have seen yesterday the option "-Dsun.java2d.opengl=true" added in run.bat, and I have already tried to set it to false.
This has NO effect: the OpenGL pipeline is still used, on both Java 1.4 and 1.5 (where I see the warning on the console).
And images are still improperly displayed.
The kind of image corruption I get is when MULTIPLE distinct images need to be refreshed on the screen at the same time: this affects graphic buttons that are all refreshed at the same time, for example when the window is minimized then restored, or when moving the mouse across a row of buttons (one button needs to have its border flattened, and another needs to have its border raised, so both buttons need to be redrawn, and they will both display the same image, one is correct and the second is not).
I really think that this is not a OpenGL bug, but a synchronization issue within the new L&F theme manager (from jgoodies.com), where there's a shared instance whose member points to the image to refresh.
I DON'T have this issue with the current release of LimeWire 4.0.8 or even with Limewire beta 4.1.1 (without the jgoodies L&F), either on Java 1.4 or 1.5, but only with the current development version (4.1.5+) on both versions of Java.
The OpenGL message only appears since some recent beta version, when jgoodies L&F were enabled; and since then the images are incorrectly rendered, the display is desynchronized, and:
In addition when I move the window on the screen, all components are displayed at the wrong place, or the GUI freezes, sometimes Windows will hang. I really suspect that jgoodies-Looks needs its code to run only in the main GUI thread, and that it sollicitates some OpenGL functions which are not properly synchronized and can hang Windows completely if it is used out of the main thread.
Note that I tested the jgoodies Looks demo separately without problem (in addition, without the OpenGL warning on the console). So I suspect that the integration of jgoodies Looks in LimeWire breaks some assumption about multithreading safety.