Home | History | Annotate | Download | only in libgdx
      1 [1.9.3]
      2 - Switched to MobiDevelop's RoboVM fork (http://robovm.mobidevelop.com)
      3 - Addition of Intel Multi-OS Engine backend for deploying to iOS
      4 - Updated iOS native build scripts to iOS 9.3 and TVOS 9.2
      5 - API Addition: GestureDetector#pinchStop() called when no longer pinching
      6 - API Addition: Gdx.graphics.setUndecorated/setResizable API added to Graphics https://github.com/libgdx/libgdx/pull/3847
      7 - API Addition: Gdx.graphics.getGLVersion(), grab the GL version and implementation type. https://github.com/libgdx/libgdx/pull/3788
      8 - API Change: Lwjgl3WindowListener -> filesDropped(String[] files) adds drag'n drop support for the lwjgl3 backend
      9 - Added isComplete() to ParticleEffect to make it easier to know when all the emitters are done, behaves the same as in the 2D API.
     10 - API Change: renamed Lwjgl3WindowListener.windowIsClosing() to closeRequested() to better communicate its intent.
     11 - Add IndexData.updateIndices method to increase performance when used with IndexBufferObjectSubData. 
     12 - Added FlushablePool
     13 - Added ShapeCache see https://github.com/libgdx/libgdx/pull/3953
     14 - API Change: moved shape builder logic out of MeshBuilder, see: https://github.com/libgdx/libgdx/pull/3996
     15 - API Change: Table reset now calls clearChildren, not clear.
     16 - Fixed crashes in AndroidMusic.java when isPlaying is called. Errors are now logged only rather than crashing the app.
     17 - Added emulation of ScreenUtils for GWT
     18 - Improved performance of glReadPixels() on GWT. New method is 20-30 times faster
     19 - Fixed crash on Mac when using LWJGL2, custom cursors and embedding the game in an AWT window
     20 - Fixed getDisplayModes(Monitor monitor) returning wrong data on LWJGL2 backend
     21 - Fixed Gdx.input.getCurrentEventTime() not being set on LWJGL3, fixes GestureDetector and flick scroll not working
     22 - Fixed not being able to select non-latin characters in TextFields
     23 - Bullet: added CustomActionInterface, see https://github.com/libgdx/libgdx/pull/4025
     24 - Add window size limits option to LWJGL3 app and window configurations
     25 
     26 [1.9.2]
     27 - Added TextureArray wrapper see https://github.com/libgdx/libgdx/pull/3807
     28 - Fixed bug in AndroidGL20.cpp which cast a pointer to a 32-bit int. Crash on 64-bit ARM, but only for a specific code path and address...
     29 - Fixed multiple controllers registering on same index with LWJGL3, see https://github.com/libgdx/libgdx/issues/3774
     30 - Fixed the FreeTypeFontGenerator texture bleeding, see https://github.com/libgdx/libgdx/issues/3521
     31 
     32 [1.9.1]
     33 - API Change: Override GwtApplication#createApplicationListener() to create your ApplicationListener
     34   on GWT, overriding GwtApplication#getApplicationListener() isn't needed anymore, see https://github.com/libgdx/libgdx/issues/3628
     35 - Fixed ARM64 and x86_64 binaries for Android
     36 
     37 [1.9.0]
     38 - API Change: Lwjgl3ApplicationConfiguration#setBackbufferConfig -> setBackBufferConfig
     39 - Fixed HexagonalTiledMapRenderer, see https://github.com/libgdx/libgdx/pull/3654
     40 - Added support for locking the screen orientation in GWT, see https://github.com/libgdx/libgdx/pull/3633
     41 - Added Gdx-Kiwi and gdx-lml to extensions, see https://github.com/libgdx/libgdx/pull/3597
     42 - Added Gyroscope support in Input, implemented for Android, see https://github.com/libgdx/libgdx/pull/3594
     43 - Fixed touch mapping on iOS, see https://github.com/libgdx/libgdx/pull/3590
     44 - Added orientation to Box2D Transform class, see https://github.com/libgdx/libgdx/pull/3308
     45 - Added system cursors to GWT, fix 'Ibeam' system cursor not working on LWJGL3.
     46 - Added experimental AndroidApplicationConfiguration#useGL30 and IOSApplicationConfiguration#useGL30 for testing OpenGL ES 3.0 support on mobile devices, do not use in production.
     47 - Fix broken kerning for FreeType fonts, see https://github.com/libgdx/libgdx/pull/3756
     48 - Added ARM64 and x86_64 binaries for Android
     49 - API Addition: FreeTypeFontParameter has an additional field for tweaking hinting, see https://github.com/libgdx/libgdx/pull/3757
     50 
     51 [1.8.0]
     52 - API Change: Rewrote FreeType shadow rendering (much better).
     53 - Added spaceX/Y to FreeType fonts.
     54 - Higher quality FreeType font rendering.
     55 - Hiero updated to v5, now with FreeType support and other new features!
     56 - GlyphLayout now allocates much, much less memory when processing long text that wraps.
     57 - Added LWJGL 3 backend, see https://github.com/libgdx/libgdx/issues/3673 for more info.
     58 - Added Graphics#getBackBufferWidth and Graphics#getBackBufferHeight for HDPI handling
     59 - API Change: Added HdpiUtils. Instead of calling GL20#glViewport and GL20#glScissor yourself
     60   please use HdpiUtils instead. It will ensure that you handle HDPI monitors correctly when
     61   using those OpenGL functions. On HDPI monitors, the size reported by Gdx.graphics 
     62   getWidth/getHeight is in logical coordinates as dictated by the operating system, usually half
     63   the HDPI resolution. The OpenGL drawing surface works in backbuffer coordinates at the full
     64   HDPI resolution. If you pass logical coordinates to glViewport and glScissor, you only 
     65   affect a quarter of the real backbuffer size. Use HdpiUtils instead, it will do the right thing, while letting you continue to work in logical (aka returned by Gdx.graphics.getWidth/getHeight) coordinates.
     66 - API Change: Graphis#getDesktopDisplayMode() has been renamed to Graphics#getDisplayMode() and
     67   returns the current display mode of the monitor the window is shown on (primary monitor on
     68   all backends except LWJGL3, which supports real multi-monitor setups).
     69 - API Change: Graphics#getDisplayModes() return the display modes of the monitor the monitor
     70   the window is shown on (primary monitor on all backends except LWJGL3 which supports real
     71   multi-monitor setups).
     72 - API Change: Graphics#setDisplayMode(DisplayMode) has been renamed to 
     73   Graphics#setFullscreenMode(). If the window is in windowed mode, it will be switched 
     74   to fullscreen mode on the monitor from which the DisplayMode stems from.
     75 - API Change: Graphics#setDisplayMode(int, int, boolean) has been renamed to 
     76   Graphics#setWindowedMode(int, int). This will NOT allow you to switch to fullscreen anymore, 
     77   use Graphics#setFullscreenMode() instead. If the window is in fullscreen mode, it will be
     78   switched to windowed mode on the monitor the window was in fullscreen mode on.
     79  - API Addition: Graphics#Monitor, represents a monitor connected to the machine the app is
     80   running on. A monitor is defined by a name and it's position relative to other connected
     81   monitors. All backends except the LWJGL3 backend will report only the primary monitor
     82  - API Addition: Graphics#getPrimaryMonitor() returns the primary monitor you usually want
     83   to work with.
     84  - API Addition: Graphics#getMonitor() returns the monitor your app's window is shown on,
     85   which may not be the primary monitor in >= 2 monitor systems. All backends except the 
     86   LWJGL3 backend will report only the primary monitor.
     87  - API Addition: Graphics#getMonitors() returns all monitors connected to the system. All
     88   backends except the LWJGL3 backend will only report the primary monitor.
     89  - API Addition: Graphics#getDisplayMode(Monitor) returns the display mode of the monitor
     90   the app's window is shown on. All backends except the LWJGL3 backend will report the
     91   primary monitor display mode instead of the actual monitor's display mode. Not a problem
     92   as all other backends run on systems with only a single monitor so far (primary monitor).
     93 - Added option to include credentials on cross-origin http requests (used only for GWT backend).
     94 - Added option to specify crossorigin attribute when loading images with AssetDownloader (GWT), see #3216.
     95 - API Change: removed Sound#setPriority, this was only implemented for the Android backend. However, Android itself never honored priority settings.
     96 - API Change: cursor API has been cleaned up. To create a custom cursor, call Graphics#newCursor(), to set the custom cursor call Graphics#setCursor(), to set a system cursor call Graphics#setSystemCursor(). The Cursor#setSystemCursor method has been removed as that was not the
     97 right place. Note that cursors only work on the LWJGL, LWJGL3 and GWT backends. Note that system cursors only fully work on LWJGL3 as the other two backends lack a means to set a specific system cursor. These backends fall back to displaying an arrow cursor when setting any system cursor.
     98 - API Addition: Added Lwjgl3WindowListener, allows you to hook into per-window iconficiation, focus and close events. Also allows you to prevent closing the window when a close event arrives.
     99 
    100 [1.7.2]
    101 - Added AndroidAudio#newMusic(FileDescriptor) to allow loading music from a file descriptor, see #2970
    102 - Added GLOnlyTextureData, which is now the default for FrameBuffer and FrameBufferCubemap, see #3539
    103 - Added rotationChanged() for Actor class, called when rotation changes, see https://github.com/libgdx/libgdx/pull/3563
    104 - Fixed crash on MacOS when enumerating connected gamepads.
    105 - ParticleEmitter no longer says it's complete when it's set to continuous, see #3516
    106 - Improved JSON parsing and object mapping error messages.
    107 - Updated FreeType from version 2.5.5 to 2.6.2.
    108 - Fixed corrupt FreeType rendering for some font sizes.
    109 - API Change: FreeTypeFontParameter has new fields for rendering borders and shadows.
    110 - FreeTypeFontParameter can render much better fonts at small sizes using gamma settings.
    111 - BitmapFont can now render missing (tofu) glyph for glyphs not in the font.
    112 - FreeTypeFontGenerator depreacted methods removed.
    113 - Fixed BitmapFont color tags changing glyph spacing versus not using color tags. BitmapFont#getGlyphs has a new paramter. See #3455.
    114 - Skin's TintedDrawable now works with TiledDrawable. #3627
    115 - Updated jnigen to Java Parser 2.3.0 (http://javaparser.github.io/javaparser/).
    116 - FreeType fonts no longer look terrible at small size. This is a big deal!
    117 - Updated to RoboVM 1.12.0, includes tvOS support!
    118 
    119 [1.7.1]
    120 - Fixes AtlasTmxMapLoader region name loading to tileset name instead of filename
    121 - Changes TiledMapPacker output, region names are tileset names, adjusts gid, defaults to one atlas per map
    122 - API Change: members of Renderable and MeshPart are changed, see https://github.com/libgdx/libgdx/pull/3483
    123 - Added Vector#setToRandomDirection(), see #3222
    124 - Updated to stb_image v2.08
    125 - Added Node#copy(), used when creating a ModelInstance from a Model to allow using custom nodes
    126 - Add ModelCache, see https://github.com/libgdx/libgdx/wiki/ModelCache
    127 - Updated bullet to v2.83.6
    128 - Updated to RoboVM 1.9, for free life-time license read http://www.badlogicgames.com/wordpress/?p=3762
    129 
    130 [1.7.0]
    131 - Gdx.input.setCursorImage removed, replaced with Gdx.graphics.setCursor and Gdx.graphics.newCursor see https://github.com/libgdx/libgdx/pull/2841/
    132 - Fixed an issue with UTF8 decoding in GWT emulation of InputStreamReader
    133 - Updated to RoboVM 1.8 for iOS 9 support.
    134 
    135 [1.6.5]
    136 - Objects from animated tiles in TMX maps are now supported.
    137 - Made possible to use any actor for tooltips.
    138 - Improved cross-platform reflection api for annotations.
    139 - NinePatch#scale now also scales middle patch size.
    140 - GLFrameBuffer is now abstract, renamed setupTexture to createColorTexture, added disposeColorTexture
    141 - Added LwjglApplicationConfiguration#gles30Context*Version, see https://github.com/libgdx/libgdx/pull/2941
    142 - Added OpenGL error checking to GLProfiler, see https://github.com/libgdx/libgdx/pull/2889
    143 - Updated to RoboVM 1.6
    144 
    145 [1.6.4]
    146 - TextField cursor and selection size changed. https://github.com/libgdx/libgdx/commit/2a830dea348948d2a37bd8f6338af2023fec9b09
    147 - FreeTypeFontGenerator setting to improve shadows and borders.
    148 - ScrollPane scrolls smoothly when the scrolled area is much larger than the scrollbars.
    149 - TexturePacker sorts page regions by name.
    150 - GlyphLayout text wrapping changed to not trim whitespace. https://github.com/libgdx/libgdx/commit/ee42693da067da7c5ddd747f051c1423d262cb96
    151 - Fixed BitmapFont computing space width incorrectly when padding is used and no space glyph is in the font.
    152 - Fixed TextArea cursor and selection drawing positions.
    153 - Fixed ActorGestureListener pan and zoom when the actor is rotated or scaled.
    154 - Fixed TextField for non-pixel display.
    155 - Allow ellipsis string to be set on Label.
    156 - AssetManager gets hook for handling loading failure.
    157 - TextField now fires a ChangeEvent when the text change. Can be cancelled too!
    158 - Added tooltips to scene2d.ui.
    159 - Updated to RoboVM 1.5
    160 
    161 [1.6.3]
    162 - Updated to RoboVM 1.4
    163 
    164 [1.6.2]
    165 - API Change: TiledMapImageLayer now uses floats instead of ints for positioning
    166 - API Change: Added GLFrameBuffer and FrameBufferCubemap: Framebuffer now extends GLFramebuffer, see #2933
    167 
    168 [1.6.1]
    169 - Added optional hostname argument to Net.newServerSocket method to allow specific ip bindings for server applications made with gdx.
    170 - Changed the way iOS native libs are handled. Removed updateRoboVMXML and copyNatives task from ios/build.gradle. Instead natives are now packaged in jars, within the META-INF/robovm/ios folder. Additionally, a robovm.xml file is stored there that gets merged with the project's robovm.xml file by RoboVM.
    171 
    172 [1.6.0]
    173 - API Change: GlyphLayout xAdvances now have an additional entry at the beginning. This was required to implement tighter text bounds. #3034
    174 - API Change: Label#getTextBounds changed to getGlyphLayout. This exposes all the runs, not just the width and height.
    175 - In the 2D ParticleEditor, all chart points can be dragged at once by holding ctrl. They can be dragged proportionally by holding ctrl-shift.
    176 - Added Merge button to the 2D ParticleEditor, for merging a loaded particle effect file with the currently open particle effect.
    177 - Added ability to retrieve method annotations to reflection api
    178 - Added PixmapPacker.updateTextureRegions() method.
    179 - Added ability to pack "anonymous" pixmaps into PixmapPacker, which will appear in the generated texture but not a generated or updated TextureAtlas
    180 - Added PixmapPacker.packDirectToTexture() methods.
    181 - API Change: PixmapPacker.generateTextureAtlas(...) now returns an atlas which can be updated with subsequent calls to PixmapPacker.updateTextureAtlas(...)
    182 - API Change: FreeTypeFontGenerator.generateFont(...) now works with a user-provided PixmapPacker.
    183 - Added DirectionalLightsAttribute, PointLightsAttribute and SpotLightsAttribute, removed Environment#directionalLights/pointLights/spotLights, added Environment#remove, lights are now just like any other attribute. See also https://github.com/libgdx/libgdx/wiki/Material-and-environment#lights
    184 - API Change: BitmapFont metrics now respect padding. #3074
    185 - Update bullet wrapper to v2.83
    186 - Added AnimatedTiledMapTile.getFrameTiles() method
    187 
    188 [1.5.6]
    189 - API Change: Refactored Window. https://github.com/libgdx/libgdx/commit/7d372b3c67d4fcfe4e82546b0ad6891d14d03242
    190 - Added VertexBufferObjectWithVAO, see https://github.com/libgdx/libgdx/pull/2527
    191 - API Change: Removed Mesh.create(...), use MeshBuilder instead
    192 - API Change: BitmapFontData, BitmapFont, and BitmapFontCache have been refactored. http://www.badlogicgames.com/wordpress/?p=3658
    193 - FreeTypeFontGenerator can now render glyphs on the fly.
    194 - Attribute now implements Comparable, custom attributes might need to be updated, see: https://github.com/libgdx/libgdx/wiki/Material-and-environment#custom-attributes
    195 - API Change: Removed (previously deprecated) GLTexture#createTextureData/createGLHandle, Ray#getEndPoint(float), Color#tmp, Node#parent/children, VertexAttribute#Color(), Usage#Color, ModelBuilder#createFromMesh, BoundingBox#getCenter()/updateCorners()/getCorners(), Matrix4.tmp
    196 
    197 [1.5.5]
    198 - Added iOS ARM-64 bit support for Bullet physics
    199 - 3D Animation, NodeAnimation keyframes are separated into translation, rotation and scaling
    200 - Added capability to enable color markup from inside skin json file.
    201 - Exposed method ControllerManager#clearListeners on Controllers class
    202 - Net#openURI now returns a boolean to indicate whether the uri was actually opened.
    203 - DefaultShader now always combines material and environment attributes
    204 - Added ShapeRenderer constructor to pass a custom shader program to ImmediateModeRenderer20.
    205 - API Change: Group#toString now returns actor hierarchy. Group#print is gone.
    206 - Added SpotLight class, see https://github.com/libgdx/libgdx/pull/2907
    207 - Added support for resolving file handles using classpaths (ClasspathFileHandleResolver)
    208 
    209 [1.5.4]
    210 - Added support for image layers in Tiled maps (TiledMapImageLayer)
    211 - Added support for loading texture objects from TMX Maps (TextureMapObject)
    212 - Added support for border and shadow with FreeTypeFontGenerator - see https://github.com/libgdx/libgdx/pull/2774
    213 - Now unknown markup colors are silently ignored and considered as normal text.
    214 - Updated freetype from version 2.4.10 to 2.5.5
    215 - Added 3rd party extensions to setup application, see 
    216 - Updated to RoboVM 1.0.0-beta-04
    217 - Updated to GWT 2.6.1, sadly GWT 2.7.0 isn't production ready yet.
    218 
    219 [1.5.3]
    220 - API Change: TextField#setRightAlign -> TextField#setAlignment
    221 - I18NBundle is now compatible with Android 2.2
    222 - Fixed GWT reflection includes for 3D particles
    223 - 3D ParticleEffectLoader registered by default
    224 - Added HttpRequestBuilder, see https://github.com/libgdx/libgdx/pull/2698
    225 - Added LwjglApplicationConfiguration.useHDPI for Mac OS X with retina displays. Allows you to get "real" pixel coordinates for mouse and display coordinates.
    226 - Updated RoboVM to 1.0.0-beta-03
    227 
    228 [1.5.2]
    229 - Fixed issue #2433 with color markup and alpha animation. 
    230 - Fixed natives loading for LWJGL on Mac OS X
    231 
    232 [1.5.1]
    233 - Gradle updated to 2.2
    234 - Android Gradle tooling updated to 1.0.0
    235 - API Change: Switched from Timer to AnimationScheduler for driving main loop on GWT. Removed fps field from GwtApplicationConfiguration to instead let the browser choose the most optimal rate.
    236 - API Change: Added pause and resume handling on GWT backend. When the browser supports the page visibility api, pause and resume will be called when the tab or window loses and gains visibility.
    237 - API Change: Added concept of target actor, separate from the actor the action is added to. This allows an action to be added to one actor but affect another. This is useful to create a sequence of actions that affect many different actors. Previously this would require adding actions to each actor and using delays to get them to play in the correct order.
    238 - Added 64-bit support for iOS sim and device
    239 - Deprecated Node#children and Node#parent, added inheritTransform flag and methods to add/get/remove children
    240 - API Change: By default keyframes are no longer copied from Model to ModelInstance but shared instead, can be changed using the `ModelInstance.defaultShareKeyframes` flag or `shareKeyframes` constructor argument.
    241 - JSON minimal format now makes commas optional: newline can be used in place of any comma.
    242 - JSON minimal format is now more lenient with unquoted strings: spaces and more are allowed.
    243 - API Change: Added support for KTX/ZKTX file format, https://github.com/libgdx/libgdx/pull/2431
    244 - Update stb_image from v1.33 to v1.48, see https://github.com/libgdx/libgdx/pull/2668
    245 - Bullet Wrapper: added Gimpact, see https://github.com/libgdx/libgdx/issues/2619
    246 - API Addition: Added MeshPartBuilder#addMesh(...), can be used to more easily combine meshes/models
    247 - Update to LWJGL 2.9.2, fixes fullscreen mode on "retina" displays
    248 - Fixes to RoboVM backend which would crash if accelerometer is used.
    249 
    250 [1.5.0]
    251 - API Addition: IOSInput now uses CMCoreMotion for accelerometer and magnetometer
    252 - API Addition: Added getter for UITextField on IOS for keyboard customization 
    253 - API Addition: Added ability to save PixmapPackers to atlas files. See PixmapPackerIO.
    254 - API Addition: Added HttpRequestHeader and HttpResponseHeader with constants for HTTP headers.
    255 - API Addition: HttpRequest is now poolable.
    256 - New PNG encoder that supports compression, more efficient vertical flipping, and minimal allocation when encoding multiple PNGs.
    257 - API Change: Label#setEllipse -> Label#setEllipsis.
    258 - API Change: BatchTiledMapRenderer *SpriteBatch fields and methods renamed to *Batch
    259 - API Change: ScrollPane#scrollToCenter -> ScrollPane#scrollTo; see optional boolean arguments centerHorizontal and centerVertical (scrollToCenter centered vertically only).
    260 - API Change: Changed Input#getTextInput to accept both text and hint, removed Input#getPlaceholderTextInput.
    261 - Bug Fix: Fixed potential NPE with immersive mode in the Android fragment backend. 
    262 - iOS backend now supports sound ids, thanks Tomski!
    263 
    264 
    265 [1.4.1]
    266 - Update to the Gradle Integration plugin nightly build if you are on Eclipse 4.4.x!
    267 - Update Intellij IDEA to 13.1.5+, because Gradle!
    268 - Updated to Gradle 2.1 and Android build tools 20, default Android version to 20. You need to install the latest Android build tools via the SDK manager
    269 - API Change: deprecation of bounding box methods, see https://github.com/libgdx/libgdx/pull/2408
    270 - Added non-continuous rendering to iOS backend, thanks Dominik!
    271 - Setup now uses Gradle 2.1 with default Android API level 20, build tools 20.0.0
    272 - Non-continuous renderering implemented for iOS
    273 - Added color markup support for scene2d label and window title.
    274 - API Change: removed default constructor of DecalBatch, removed DefaultGroupStrategy
    275 - Updated to latests RoboVM release, 1.0.0-alpha-04, please update your RoboVM plugins/installations
    276 - Reduced I18NBundle loading times on Android and bypassed unclosed stream on iOS. 
    277 - Removed the gdx-ai extension from the libGDX repository. Now it lives in its own repository under the libGDX umbrella, see https://github.com/libgdx/gdx-ai
    278 - API Addition: Added randomSign and randomTriangular methods to MathUtils.
    279 - API Addition: Decal has now a getter for the Color.
    280 - API Addition: now I18NBundle can be set so that no exception is thrown when the key can not be found.
    281 - API Addition: added annotation support in reflection layer, thanks code-disaster! https://github.com/libgdx/libgdx/pull/2215
    282 - API Addition: shapes like Rect, Circle etc. now implement Shape2D interface so you can put them all into a single collection https://github.com/libgdx/libgdx/pull/2178 
    283 - API Addition: bitmap fonts can now be loaded from an atlas via AssetManager/BitmapFontLoader, see https://github.com/libgdx/libgdx/pull/2110
    284 - API Change: updated to RoboVM 1.0.0-SNAPSHOT for now until the next alpha is released.
    285 - API Change: Table now uses padding from its background drawable by default. https://github.com/libgdx/libgdx/issues/2322
    286 - Drawables now know their names, making debugging easier.
    287 - API Change: Table fill now respects the widget's minimum size.
    288 - Texture packer, fixed image size written to atlas file.
    289 - API Change: Cell no longer uses primitive wrappers in public API and boxing is minimized.
    290 - API Addition: TextureAttribute now supports uv transform (texture regions).
    291 - API Change: Added parameters to Elastic Interpolation.
    292 - API Change: Removed Actor#setCenterPosition, added setPosition(x,y,align).
    293 - API Change: JsonReader, forward slash added to characters an unquoted strings cannot start with.
    294 - API Change: Stage#cancelTouchFocus(EventListener,Actor) changed to cancelTouchFocusExcept.
    295 - API Change: Json/JsonWriter.setQuoteLongValues() quotes Long, BigDecimal and BigInteger types to prevent truncation in languages like JavaScript and PHP.
    296 
    297 [1.3.1]
    298 - API change: Viewport refactoring. https://github.com/libgdx/libgdx/pull/2220
    299 - Fixed GWT issues
    300 
    301 [1.3.0]
    302 - Added Input.isKeyJustPressed.
    303 - API Addition: multiple recipients are now supported by MessageDispatcher, see https://github.com/libgdx/libgdx/wiki/Message-Handling#multiple-recipients
    304 - API Change: State#onMessage now takes the message receiver as argument.
    305 - API Addition: added StackStateMachine to the gdx-ai extension.
    306 - API change: ShapeRenderer: rect methods accept scale, more methods can work under both line and fill types, auto shape type changing.
    307 - API change: Built-in ShapeRenderer debugging for Stage, see https://github.com/libgdx/libgdx/pull/2011
    308 - Files#getLocalStoragePath now returns the actual path instead of the empty string synonym on desktop (LWJGL and JGLFW).
    309 - Fixed and improved xorshift128+ PRNG implementation.
    310 - Added support for Tiled's animated tiles, and varying frame duration tile animations.
    311 - Fixed an issue with time granularity in MessageDispatcher.
    312 - Updated to Android API level 19 and build tools 19.1.0 which will require the latest Eclipse ADT 23.02, see http://stackoverflow.com/questions/24437564/update-eclipse-with-android-development-tools-23 for how things are broken this time...
    313 - Updated to RoboVM 0.0.14 and RoboVM Gradle plugin version 0.0.10
    314 - API Addition: added FreeTypeFontLoader so you can transparently load BitmapFonts generated through gdx-freetype via AssetManager, see https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/badlogic/gdx/tests/FreeTypeFontLoaderTest.java
    315 - Preferences put methods now return "this" for chaining
    316 - Fixed issue 2048 where MessageDispatcher was dispatching delayed messages immediately.
    317 - API Addition: 3d particle system and accompanying editor, contributed by lordjone, see https://github.com/libgdx/libgdx/pull/2005
    318 - API Addition: extended shape classes like Circle, Ellipse etc. with hashcode/equals and other helper methods, see https://github.com/libgdx/libgdx/pull/2018
    319 - minor API change (will not increase minor revision number): fixed a bug in handling of atlasPrefixes, https://github.com/libgdx/libgdx/pull/2023
    320 - Bullet: btManifoldPoint member getters/setters changed from btVector3 to Vector3, also it is no longer pooled, instead static instances are used for callback methods
    321 - Added Intersector#intersectRayRay to detect if two 2D rays intersect, see https://github.com/libgdx/libgdx/pull/2132
    322 - Bullet: ClosestRayResultCallback, AllHitsRayResultCallback, LocalConvexResult, ClosestConvexResultCallback and subclasses now use getter/setters taking a Vector3 instead of btVector3, see https://github.com/libgdx/libgdx/pull/2176
    323 - 2d particle system supports pre-multiplied alpha.
    324 - Bullet: btIDebugDrawer/DebugDrawer now use pooled Vector3 instances instead of btVector3, see https://github.com/libgdx/libgdx/issues/2174
    325 
    326 [1.2.0]
    327 - API Addition: Some OpenGL profiling utilities have been added, see https://github.com/libgdx/libgdx/wiki/Profiling
    328 - API Addition: A FreeTypeFontGeneratorLoader has been added to the gdx-freetype extension
    329 - API change: Animation#frameDuration and #animationDuration are now hidden behind a getter/setter and dynamic
    330 - API Addition: Vector#setZero
    331 - API Addition: gdx-ai, extension for AI algorithms. Currently supports FSMs, see https://github.com/libgdx/libgdx/wiki/Artificial-Intelligence
    332 - API change: TableLayout has been forked and integrated into libgdx more tightly, see http://www.badlogicgames.com/wordpress/?p=3458
    333 - API Addition: added equals/hashCode methods to Rectangle, may break old code (very, very unlikely)
    334 - API Addition: scene2D Actors now have a setCenterPosition method, see https://github.com/libgdx/libgdx/pull/2000
    335 
    336 [1.1.0]
    337 - Updated to RoboVM 0.0.13 and RoboVM Gradle plugin 0.0.9
    338 - Big improvements to setup-ui and build times in Intellij IDEA https://github.com/libgdx/libgdx/pull/1865
    339 - Setup now uses android build tools version: 19.1.0
    340 - BitmapFontCache now supports in-string colored text through a simple markup language, see https://github.com/libgdx/libgdx/wiki/Color-Markup-Language
    341 - Added i18n localization/internationalization support, thanks davebaol, see https://github.com/libgdx/libgdx/wiki/Internationalization-and-Localization
    342 - Possibility to override density on desktop to simulate mobile devices, see https://github.com/libgdx/libgdx/pull/1825
    343 - Progressive JPEG support through JPGD (https://code.google.com/p/jpeg-compressor/).
    344 - Mavenized JGLFW backend
    345 - Box2D: Added MotorJoint and ghost vertices on EdgeShape
    346 - Updated GWT Box2D to latest version
    347 - Updated native Box2D to latest version 2.3.1, no API changes
    348 - API change: Matrix4.set(x,y,z, translation) changed, z axis is no more flipped
    349 - API addition: Matrix4.avg(Matrix4[],float[]) that lets weighted averaging multiple matrices, Quaternion.slerp(Quaternion[],float[]) that lets weighted slerping multiple Quaternions
    350 - fixed the long standing issue of the alpha=1 not actually being fully opaque, thanks kalle! https://github.com/libgdx/libgdx/issues/1815
    351 - down to 25 issues on the tracker, 8 bugs, 17 enhancement requests :)
    352 
    353 
    354 [1.0.1]
    355 - updated to RoboVM 0.12 (and so should you!)
    356 - fixed GC issues on iOS with regards to touch (thanks Niklas!), see https://github.com/libgdx/libgdx/pull/1758
    357 - updated gwt gradle plugin to 0.4, android build tools to 0.10, gradle version to 1.11
    358 - Tiled maps are now always y-up
    359 - Tiled maps now support drawing offsets for tiles
    360 - FileHandle#list is now supported in GWT!
    361 - FileHandle#list now supports FileFilters
    362 - Controllers now reinitialize on the desktop when switching between windowed/fullscreen
    363 - added a Texture unpacker that will extract all images from a texture atlas, see https://github.com/libgdx/libgdx/pull/1774
    364 - updates to gdx-setup
    365 - CustomCollisionDispatcher in bullet, see https://github.com/libgdx/libgdx/commit/916fc85cecf433c3461b458e00f8afc516ad21e3
    366 
    367 [1.0.0]
    368 - Box2D is no longer in the core, it has been moved to an extension. See http://www.badlogicgames.com/wordpress/?p=3404
    369 - Merged gdx-openal project into gdx-backend-lwjgl
    370 - Now LoadedCallback in AssetLoaderParameters is always called after loading an asset from AssetManager, even if the asset is already loaded
    371 - Added Payload as a new parameter to Source.dragStop, see https://github.com/libgdx/libgdx/pull/1666
    372 - You can now load PolygonRegions via AssetLoader,  see https://github.com/libgdx/libgdx/pull/1602
    373 - implemented software keyboard support in RoboVM iOS backend
    374 - Fixed an issue where key event timestamp is not set by the android backend.
    375 - scene2d.ui, added to TextArea the preferred number of rows used to calculate the preferred height.
    376 - scene2d.actions, fixed infinite recursion for event listener's handle(event).
    377 - Various Quaternion changes.
    378 - scene2d.ui, fixed a drawing issue with knobBefore when there's no knob (typical progress bar).
    379 - Various MeshBuilder fixes and additions.
    380 - Math package: added cumulative distribution.
    381 - Fixed Music isPlaying() on iOS when is paused.
    382 - Added support for C-style comments to JsonReader (mainly used for json skin files).
    383 - Support for resource removal from Skin objects.
    384 - Added fling gesture to generate fling in scrollpane.
    385 - Vector classes now have mulAdd method for adding pre-multiplied values
    386 - Vector implementations no longer use squared value for margin comparisons, see: isZero(float margin), isUnit(float margin).
    387 - Vector2 now has isUnit and isZero methods (copied from Vector3)
    388 - Removed deprecated methods from Vector classes.
    389 - Added new headless backend for server applications
    390 - Support 'scaledSize' as a json skin data value for BitmapFont
    391 - Added setAlpha(float a) method to Sprite class
    392 - Added Input.Keys.toString(int keycode) and Input.Keys.valueOf(String keyname) methods
    393 - Added Immersive Mode support to Android backend
    394 - Added userObject to Actor in scene2d, allowing for custom data storage
    395 - Altered Android's hide status bar behavior
    396 - Changed the way wakelocks are implemented. You no longer need any special permissions for the libgdx wakelock
    397 - BitmapFontCache setColor changes to match SpriteBatch and friends. http://www.badlogicgames.com/forum/viewtopic.php?f=23&t=12112
    398 - Changed ParticleEffect: the ParticleEffect.save method now takes a Writer instead of a File
    399 - TexturePacker2 renamed to TexturePacker, added grid and scaling settings.
    400 - Added support for custom prefrences on the desktop backends.
    401 - Fixed double resume calls on iOS.
    402 - Android Music no longer throws exceptions if MediaPlayer is null.
    403 - PolygonSpriteBatch implements Batch.
    404 - New scene2d actions: EventAction, CountdownEventAction.
    405 - Adds cancelHttpRequest() method to Net interface
    406 - Updated GWT/HTML5 Backend to GWT 2.6.0
    407 - Minimal Android version is 2.2, see http://www.badlogicgames.com/wordpress/?p=3297
    408 - Updated to LWJGL 2.9.1
    409 - Can now embed your libgdx app as a fragment, more info on the wiki
    410 - scene2d.ui, renamed Actor methods translate, rotate, scale, size to moveBy, rotateBy, scaleBy, sizeBy. May have conflicts with Actions static import, eg you'll need to use "Actions.moveBy"
    411 - scene2d.ui, Table background is now drawn usign the table's transform
    412 - scene2d.ui, added Container which is similar to a Table with one cell, but more lightweight
    413 - Added texture filters and mip map generation to BitMapFontLoader and FreeTypeFontGenerator
    414 - scene2d.ui, VerticalGroup and HorizontalGroup got pad, fill and an API similar to Table/Container
    415 - Removed OpenGL ES 1.0, 1.1 support; see http://www.badlogicgames.com/wordpress/?p=3311
    416 - Added OpenGL ES 3 support
    417 - Updated Android backend, demos, tests to 4.4
    418 - Added Viewport, changed Stage to have a Viewport instead of a Camera (API change, see http://www.badlogicgames.com/wordpress/?p=3322 ).
    419 - Changed play mode constants of Animation class to enumeration, see http://www.badlogicgames.com/wordpress/?p=3330
    420 - Updated to RoboVM 0.0.11 and RoboVM Gradle plugin 0.0.6, see http://www.badlogicgames.com/wordpress/?p=3351
    421 - Updated to Swig 3.0 for Bullet, disabled SIMD on Mac OS X as alignements are broken in Bullet, see https://github.com/libgdx/libgdx/pull/1595
    422 - TextureData can only be Custom or Pixmap; compressed image files are considered custom
    423 
    424 [0.9.9]
    425 - added setCursorImage method to Input interface to support custom mouse cursors on the desktop
    426 - removed Xamarin backend, see http://www.badlogicgames.com/wordpress/?p=3213
    427 - added Select class for selecting kth ordered statistic from arrays (see Array.selectRanked() method)
    428 - refactored Box2D to use badlogic Arrays instead of java.util.ArrayLists
    429 - MipMapGenerator methods now don't take disposePixmap argument anymore
    430 - added GLTexture, base class for all textures, encapsulates target (2d, cubemap, ...)
    431 - added CubeMap, 6 sided texture
    432 - changed TextureData#consumeCompressedData, takes target now
    433 - added RoboVM backend jar and native libs (libObjectAL, libgdx, in ios/ folder of distribution)
    434 - added RoboVM backend to build
    435 - changed Bullet wrapper API, see http://www.badlogicgames.com/wordpress/?p=3150
    436 - changed MusicLoader and SoundLoader to be asynchronous loaders
    437 - changed behaviour of Net#sendHttpRequest() so HttpResponseListener#handleHttpResponse() callback is executed in worker thread instead of main thread
    438 - added Bresenham2, for drawing lines on an integer 2D grid
    439 - added GridPoint2 and GridPoint3, representing integer points in a 2D or 3D grid
    440 - added attribute location caching for VertexData/Mesh. Hand vertex attribs to a ShaderProgram, get back int[], pass that to Mesh
    441 - added Android x86 builds, removed libandroidgl20.so, it's now build as part of gdx-core for Android
    442 - changed method signature on Box2D World#getBodies and World#getJoints, pass in an Array to fill
    443 - removed glGetShaderSource from GL20, use ShaderProgram#getVertexShaderSource/getFragmentShaderSource instead
    444 - added reflection api
    445 - added AsynchExecutor, execute tasks asynchronously. Used for GWT mainly.
    446 - removed FileHandle#file(), has no business in there.
    447 - removed box2deditor
    448 - removed custom typedarrays in gwt backend
    449 - added classpath files support for gwt backend (limited)
    450 - moved AndroidWallpaperListener to Android Backend
    451 - added new VertexAttribute Usage flags, bone weight, tangent, binormal. previously encoded as Usage.Generic. Also
    452   added field "unit" to VertexAttribute, used by texture coordinates and bone weights to specify index/unit.
    453 - setup-ui template for iOS disables pngcrush, also updated wiki iOS article
    454 - add Pixmap#fillTriangle via jni gdx2d_fill_triangle() to fill a triangle based on its vertices.
    455 - add asynchronous download with continuous progress feedback to GWT asset preloader, see https://github.com/libgdx/libgdx/pull/409?w=1
    456 - add capability to add/exclude package/classes GWT Reflection system, see https://github.com/libgdx/libgdx/pull/409?w=1
    457 - add updated gdx-tiled-preprocessor, generate one single TextureAtlas for all the specified Tiled maps, see http://www.badlogicgames.com/forum/viewtopic.php?f=17&t=8911
    458 - maps API, add new AtlasTiledMapLoader for loading maps produced by the tiled preprocessor tool
    459 - ImageProcessor, TexturePacker2 now accepts BufferedImage objects as input
    460 - TexturePacker2 now avoids duplicated aliases
    461 - Updated to LWJGL 2.9.0
    462 - refactored JSON API, see http://www.badlogicgames.com/wordpress/?p=2993
    463 - Updated Box2D to the latest trunk. Body#applyXXX methods now take an additional boolean parameter.
    464 - TmxMapLoader has a flag in Parameters that lets you specify whether to generate mipmaps
    465 - Animation#isAnimationFinished was fixed to behave as per javadocs (ignores looping)
    466 - remove GLU interface and implementations. Use Matrix4 et al instead. see http://www.badlogicgames.com/wordpress/?p=2886
    467 - new maps API, see http://www.badlogicgames.com/wordpress/?p=2870
    468 - removed static public tmp Vector2 instances, manage such temporary vars yourself, see http://www.badlogicgames.com/wordpress/?p=2840
    469 - changed Scene2D Group#clear(), see http://www.badlogicgames.com/wordpress/?p=2837
    470 - changed the build system, natives are now fetched from the build server, see http://www.badlogicgames.com/wordpress/?p=2821
    471 - freetype extension supported on iOS, see http://www.badlogicgames.com/wordpress/?p=2819
    472 - changed ShapeRenderer API, see http://www.badlogicgames.com/wordpress/?p=2809
    473 - changed Actions.add to addAction, changed parameter order, and added removeAction, addListener, removeListener
    474 - Box2d joints now allow for user data
    475 - Changes to Intersector, Circle, Rectangle and BoundingBox for consistency in #overlap, #intersect and #contains methods, see https://github.com/libgdx/libgdx/pull/312
    476 - Removed LwjglApplicationConfiguration CPU sync. Added foreground and background target framerate.
    477 - scene2d, no longer use getters/setters internally for Actor x, y, width, height, scalex, scaley and rotation.
    478 - Array, detect nested iterator usage and throw exception.
    479 - Added getVolume to Music class and Android, IOS and GWT backends
    480 - 1381, fixed JSON parsing of longs. In addition to Float, it now parses Long if no decimal point is found.
    481 - Changed Array constructors that took an array to have offset and count
    482 - scene2d, Actor parentToLocalCoordinates and localToParentCoordinates refactoring, see http://www.badlogicgames.com/forum/viewtopic.php?p=40441#p40441
    483 - scene2d, Action#setActor no longer calls reset if the Action has no pool. This allows non-pooled actions to be add and removed from actors, restarted, and reused.
    484 - ScrollBar#setForceOverscroll renamed to setForceScroll, as it affects more than just overscroll.
    485 - ArrayMap#addAll renamed to putAll to match the other maps.
    486 - Added ObjectSet and IntSet.
    487 - Added completion listener to Music.
    488 - Added Music#setPan.
    489 - Sound#play and Sound#loop on Android now return -1 on failure, to match other backends.
    490 - DelegateAction subclasses need to implement delegate() instead of act(). http://www.badlogicgames.com/forum/viewtopic.php?p=43576#p43576
    491 - Added pause and resume methods to Sound.
    492 - Changed AssetErrorListener#error to have AssetDescriptor to enable access to parameters of failed asset.
    493 - Changed SelectBoxStyle to have ScrollPaneStyle and ListStyle for fully customizing the drop down list. http://www.badlogicgames.com/wordpress/?p=3110
    494 - AssetLoader now takes a FileHandle that is the resolved file name. The AssetLoader no longer has to resolve the file name, so we can prevent it from being resolved twice.
    495 - Rewrote EarClippingTriangulator to not allocate (no more Vector2s).
    496 - Added ParticleEffectLoader to make AssetManager load ParticleEffects
    497 - Added GeometryUtils, more Intersector functions, DelaunayTriangulator, ConvexHull.
    498 - Added getBoundingBox to ParticleEffect
    499 - EarClippingTriangulator changed to return triangle indices.
    500 - PolygonSpriteBatch and friends refactored to use triangle indices.
    501 - Added add(T, float), remove(int), remove(T) and clear() methods to BinaryHeap
    502 - Bitmap Font changes:
    503 	- FreeTypeFontGenerator allows you to specify the PixmapPacker now, to create an atlas with many different fonts (see FreeTypePackTest)
    504 	- BitmapFont, BitmapFontCache and FreeTypeFontGenerator now support fonts with multiple texture pages. (see BitmapFontTest and FreeTypePackTest)
    505 	- BitmapFontData.imagePath and getImagePath() is depreacted, use imagePaths[] and getImagePath(int) instead
    506 	- Added two BitmapFont constructors for convenience; no need to specify flip boolean
    507 	- Added getCache() to BitmapFont, for expert users who wish to use the BitmapFontCache (see BitmapFontTest)
    508 	- FreeTypeFontGenerator now includes setMaxTextureSize and getMaxTextureSize to cap the generated glyph atlas size (default 1024)
    509 - added render-hooks beginRender() and endRender() to BatchTiledMapRenderer
    510 - Added panStop to GestureListener interface.
    511 - ScissorStack#calculateScissors changed to take viewport, enabling it to work with glViewport.
    512 - Added Bits#getAndClear, Bits#getAndSet and Bits#containsAll
    513 - Added setX and setY to TextureAtlas.AtlasSprite so it matches expected behavior
    514 
    515 [0.9.8]
    516 - see http://www.badlogicgames.com/wordpress/?p=2791
    517 
    518 [0.9.7]
    519 - see http://www.badlogicgames.com/wordpress/?p=2664
    520 
    521 [0.9.6]
    522 - see http://www.badlogicgames.com/wordpress/?p=2513
    523