Hi
I have rarely tested my game under Windows since my switch from JMonkeyEngine 2 to Ardor3D and as it was very slow until I added a performance test, I thought the lack of responsiveness came from the low frame rate. However, it still stutters now on a laptop Packard Bell MH36 under Windows 7 64 bits with Java 1.7. I use the latest aggregated build of JOGL 2.0.2 and NEWT. I notice some lag only under Windows when I use the mouse look even though the frame rate is correct (around 60 FPS). Using a mouse instead of the build-in touchpad doesn’t improve the situation. This bug is not reproducible on the same machine under Mageia Linux 2. I thought it came from NEWT, then I modified Jake 2 (Quake 2 Java port) in order to use the same version of JOGL and it worked correctly. When I run my game on an high end desktop computer under Windows 7, it works very well. I assume the problem comes neither from my hardware nor from NEWT but rather from Ardor3D. NEWT uses SetCursorPos under Windows and XWarpPointer under Linux. After some investigations, I have discovered that the method JoglNewtMouseWrapper.mouseMoved(MouseEvent) has a different behaviour under Linux and Windows:
https://github.com/gouessej/Ardor3D/blob/master/ardor3d-jogl/src/main/java/com/ardor3d/input/jogl/JoglNewtMouseWrapper.java#L147
Under Windows (on my laptop), no event is properly ignored, it never goes to the line 170 whereas it does under Linux.
I know that there are more accurate options to handle relative mouse moves under Windows, for example Raw Input API and DirectInput, but it would require a lot of work, I would have to write a separate mouse wrapper based on JInput. Moreover, if it works with Jake 2 without JInput, there is probably something wrong in my code. I plan to use JInput or a similar API later only for controllers. I have tried to fix this bug for about 2 weeks without success, your help would be more than welcome. I know some of you already implemented similar features in other engines (cylab?), I would be glad to see your suggestions. You can test my game here. You can force the mouse pointer to stay visible by modifying this setting in the options. At first, can you tell me whether you reproduce this bug under Windows please? Best regards.