Features of LibGDX 1.2.0
Since the release of LibGDX Version 0.1 back in March 2010, a lot of work has been contributed in order to improve this library. The latest stable release of LibGDX is Version 1.2.0 from June 2014, which we are going to use throughout this book.
Here is a list of features taken from the official website (http://libgdx.badlogicgames.com/features.html).
Graphics
The graphic features are as follows:
- Render through OpenGL ES 2.0 on all platforms
- Custom OpenGL ES 2.0 bindings for Android 2.0 and higher versions
- Low-level OpenGL helpers:
- Vertex arrays and vertex buffer objects
- Meshes
- Textures
- Framebuffer objects (GLES 2.0 only)
- Shaders, integrating easily with meshes
- Immediate mode rendering emulation
- Simple shape rendering
- Automatic software or hardware mipmap generation
- ETC1 support (not available in JavaScript backend)
- Automatic handling of OpenGL ES context loss that restores all textures, shaders, and other OpenGL resources
- High-level 2D APIs:
- Custom CPU side bitmap manipulation library
- Orthographic camera
- High-performance sprite batching and caching
- Texture atlases with whitespace stripping support, which are either generated offline or online
- Bitmap fonts (does not support complex scripts such as Arabic or Chinese), which are either generated offline or loaded from TTF files (unsupported in JavaScript backend)
- 2D particle system
- TMX tile map support
- 2D scene-graph API
- 2D UI library, based on the scene-graph API, fully skinable
- High-level 3D APIs:
- Perspective camera
- Decal batching for 3D billboards or particle systems
- Basic loaders for Wavefront OBJ and MD5
- 3D rendering API with materials and lighting system and support to load FBX models via fbx-conv
Audio
The following are the audio features:
- Streaming music and sound effect playback for WAV, MP3, and OGG
- Direct access to audio device for PCM sample playback and recording (unsupported in JavaScript backend)
Input handling
The various input features are as follows:
- Using abstractions for mouse and touchscreen, keyboard, accelerometer, and compass
- The gesture detector that detects taps, panning, flinging, and pinch zooming
File I/O and storage
The following are the features for the file I/O and storage:
- Filesystem abstraction for all platforms
- Read-only filesystem emulation for JavaScript backend
- Binary file support for JavaScript backend
- Preferences for lightweight setting storage
Math and physics
The math and physics features for LibGDX are as follows:
- Matrix, vector, and quaternion classes. Matrix and vector operations are accelerated via native C code where possible.
- Bounding shapes and volumes.
- Frustum class to pick and cull.
- Catmull-Rom splines.
- Common interpolators.
- Concave polygon triangulator.
- Intersection and overlap testing.
- JNI wrapper for Box2D physics. It is so awesome that other engines use it as well.
- JNI wrapper for bullet physics.
Utilities
The different utilities in LibGDX are as follows:
- Custom collections with primitive support
- JSON writer and reader with POJO (de-)serialization support
- XML writer and reader
Tools
The following are the different tools in LibGDX:
- Particle editor
- Texture packer
- Bitmap font generator