LibGDX LWJGL3 Backend

Hi, my name is Natan, I want to share with you guys a project I created.

What is this?
Lwjgl3 backend is a project to use Lwjgl v.3 instead of v.2 for desktop.

Why you made this?
I have a personal projects that I need a easy multiwindow functionality and LWJGL 2 backend was not nice. And also I didn’t found no one working on lwjgl3 backend.

How you make this?
I adapted some logic/code from lwjgl2 and JGLFW backend to make it work with LWJGL3 lib.

What about JGLFW backend?
Well, some stuff is missing like sound and multi window. And it doesn’t seems active.

Which OS does it work?
Windows, Mac and Linux. (Tested on mac mini (last os) and Windows 8.1 64 bit. Note: Lwjgl3 with Swing/AWT on mac dont work at this moment

How do I try?
You can use the github rep or the libs below. Installation is same as other backends (working with source or jar) Note: on Mac you need to add vm option -XstartOnFirstThread

What works?


AudioRecorder random crash on start. 
ControllerTest  crash.
FloatTexture crash.
FullScreen crash. Didnt touch Fullscreen implementation yet 
ShaderTest crash.
SuperKoalio crash (com.badlogic.gdx.maps.tiled.TiledMapImageLayer cannot be cast to com.badlogic.gdx.maps.tiled.TiledMapTileLayer) 

The last time I tested only the tests above was crashing. (So many classes to test ::slight_smile: )

How Multi Window works with libgdx?
Its the same concept as Lwjgl2 multiwindow. All ApplicationListeners are in a single thread and the thread updates everyone. For every listener, static global calls (Gdx.#) is changed so you don’t need to worry about calling Gdx.#.

Why not multi threaded?
With Gdx.# static calls can have problems with multi threaded. (Fix me if I’m wrong)

What is LWJGL3WindowController?
Its a class that handles all Lwjgl3Application for multi window. After calling #start() it will block. You can add or remove window with this class. See example in source. You can also check which window is active if you want to call GLFW directly.

Is there GLFW examples?
Yes, Lwjgl3 and GLFW website has examples.

Github:

Libs:

Eclipse test project

http://www.badlogicgames.com/forum/download/file.php?id=2800