libgdx 0.9.2 released

Hurray, a new libgdx version. Here’s the run-down of the most important changes, additions and fixes since 0.9.1.

  • A metric ton of bug fixes, see the SVN commit log.
  • Quite some improvements on the 3D API end. Still far from being done, you can see the WIP in the model-loaders extension. Not ready for prime time yet.
  • Two new demo games called Cuboc and Very Angry Robots. The later was kindly donated by Badly Drawn Rod.
  • A full-fledged UI library that has undergone some major changes since the first commit. Check out the latest blog posts by Nate on that topic as well as UITest.java. While this is only a tiny item on this list, a ton of work went into it and we should all bow down to Nate. Do it now!
  • Updated to the latest and greatest box2d version, including new shapes like ChainShape and EdgeShape, adding post/pre solve to the ContactListener and better pooling.
  • Fullscreen support and on-the-fly resolution changes on the desktop in addition to fullscreen antialiasing on all platforms if the hardware allows it.
  • Better configuration options via LwjglApplicationConfiguration/JoglApplicationConfiguration and AndroidApplicationConfiguration.
  • ImmediateModeRenderer20, so you can draw them fancy lines and stuff in OpenGL ES 2.0 as well
  • ShapeRenderer, build on top of the ImmediateModeRenderer implementations for even more convenient drawing of shapes
  • Completely reworked all resource classes like Texture, TextureAtlas, BitmapFont and so on to take OpenGL unaware XXXData instances. Cleaner design, less code in the resources themselves and paves the way for the next item on the list
  • Fancy schmancy AssetManager. I haven’t talked about it yet on here but will do so sometime next week, telling you how to use it. It’s incredibly powerful and allows for asynchronous loading of assets. See
    AssetManagerTest for a taste of what it is capable of.
  • ETC1 support, see ETC1Test
  • DecalBatch, kindly contributed by Vevusio who’s since disappeared. See DecalTest
  • Brand new JSON serialization framework to write and read object graphs. Again, thank Nate for that one. It’s the basis of the new Skin implementation among other things, so make yourself comfortable using it.
  • In-place operators for matrices, it’s been about time.

The above list is of course not extensive. For more detailed info check the SVN log.

Thanks to all the people helping out on the forums and reporting issues. Special thanks to Radioking for setting up the brand new Libgdx community wiki. Go check it out and contribute!

We have a couple of things cooking at the moment and iterate at quite a pace. So, sorry if we broke things in the process, but it’s for the betterment of the entire library.

As soon as the dust has settled a little i’ll try to get back to the 3D API again. At the moment i’m working through all the classes, improving the Javadocs. That might take some time. I also hope Tamas and i can finish of the development guide we’ve been talking about for so long in the coming month.

Finally, i just discovered that there’s a livewallpaper backend on Google code. We’ll contact the author and ask for permission to include it in libgdx itself. Good job on that one!

more fixes (box2d, scene2D etc.)

Hi there,

i just updated our box2d version with the latest trunk revision by Eric Catto. All the things reported on the issue tracker are fixed, thanks for your reports!

In addition we also fixed the NPE in scene2d. Remember though: the UI actors are all single touch!

Other fixes made it in as well, please see the SVN change log for that.

more scene2d changes

Some new scene2d changes are in. Updating should be pretty easy to fix up.

  • Table saw some love: you can now set a background nine patch or texture region, set a click listener, and turn on clipping. This obsoleted the Pane class (just use a Table and call enableClipping()) and makes handling clicks easier.
  • Button was rewritten by extending Table, which allows any widgets you like to be placed in a button. It has convenience methods for setting the button text (it just adds a Label to the button for you). It also has a “checked” state that is toggled when clicked. These changes obsoleted the ToggleButton, ImageButton, and ImageToggleButton.
  • The CheckBox became much simpler by extending the new Button.
  • Because Pane and the *Button classes are gone, your skin will need to be fixed up. Just remove style entries for classes that are gone, and make sure your Button and CheckBox entries are correct. See the skin for the UITest class for an example.
  • For all widgets, “name” had to be moved to the last constructor parameter to avoid ambiguity with other constructors that take a String but not a name.

We still haven’t fixed the NPE you get when multitouching buttons. Sorry! We’ll get to this very soon.