Here are a few big changes and highlights, and the full changelog, as well as download links can of course be found below, and on the wiki and front page respectively.
- The lua 5.3 UTF-8 module was added, bringing easy handling of UTF-8 in strings.
- Added [wiki]love.joystick.loadGamepadMappings[/wiki] and [wiki]love.joystick.saveGamepadMappings[/wiki] to easily load and store gamepad mapping databases. See [wiki]love.joystick.setGamepadMapping[/wiki] for more details.
- Added relative mouse mode ([wiki]love.mouse.setRelativeMode[/wiki]) and the corresponding [wiki]love.mousemoved[/wiki].
- Added symlink support to love.filesystem, as well as [wiki]love.filesystem.getRealDirectory[/wiki], making development and debugging easier.
- Fixed a bunch of memory leaks, crashes and other bugs.
- Renamed FSAA to MSAA.
- The 'console' option now tries to re-use its console, and it can open earlier, allowing its use in early stages of game loading.
- Replace several error messages with clearer, more obvious ones.
Code: Select all
* Added Lua 5.3's UTF-8 module (via utf8 = require("utf8")). * Added Shader:getExternVariable. * Added several new canvas texture formats. * Added love.graphics.getCanvasFormats. * Added love.graphics.getCompressedImageFormats. * Added ParticleSystem:setQuads. * Added ParticleSystem:setLinearDamping. * Added SpriteBatch:flush. * Added love.graphics.getStats. * Added "mirroredrepeat" wrap mode. * Added love.audio.setDopplerScale and love.audio.getDopplerScale. * Added optional duration argument to Joystick:setVibration. * Added love.joystick.loadGamepadMappings and love.joystick.saveGamepadMappings. * Added Joint:setUserData and Joint:getUserData. * Added Joint:getBodies. * Added GearJoint:getJoints. * Added Contact:getFixtures and Body:getContactList. * Added Body:getWorld. * Added Body:getJointList. * Added Body/Contact/Fixture/Joint/World:isDestroyed. * Added love.mousemoved event callback. * Added love.mouse.setRelativeMode and love.mouse.getRelativeMode. * Added Scancode enums, love.keyboard.getKeyFromScancode, and love.keyboard.getScancodeFromKey. * Added love.window.getDisplayName. * Added love.window.minimize. * Added love.window.maximize. * Added love.window.showMessageBox. * Added 'refreshrate' field to the table returned by love.window.getMode. * Added love.window.toPixels and love.window.fromPixels. * Added love.window.setPosition and love.window.getPosition, and 'x' and 'y' fields to love.window.setMode and t.window in love.conf. * Added love.filesystem.isSymlink, love.filesystem.setSymlinksEnabled, and love.filesystem.areSymlinksEnabled. * Added love.filesystem.getRealDirectory. * Deprecated SpriteBatch:bind and SpriteBatch:unbind. * Deprecated all uses of the name 'FSAA' in favor of 'MSAA'. * Deprecated the 'hdrcanvas' graphics feature enum in favor of getCanvasFormats. * Deprecated the 'dxt' and 'bc5' graphics feature enums in favor of getCompressedImageFormats. * Fixed crashes when love objects are used in multiple threads. * Fixed love.filesystem.setIdentity breaking in some situations when called multiple times. * Fixed the default love.filesystem identity when in Fused mode in Windows. * Fixed love.system.openURL sometimes blocking indefinitely on Linux. * Fixed love.joystick.setGamepadMapping. * Fixed the order of vertices in ChainShapes. * Fixed love.mouse.getPosition returning outdated values if love.mouse.setPosition is used in the same frame. * Fixed love.graphics.newFont to error when given an invalid size argument. * Fixed the filename and backtrace given when love.graphics.print errors. * Fixed a small memory leak if love.graphics.newCanvas errors. * Fixed shader:getWarnings returning unnecessary information. * Fixed some cases of noncompliant shader code not properly erroring on some nvidia drivers. * Fixed a potential crash when Shader objects are garbage collected. * Fixed a potential small memory leak triggered when love.graphics.newShader errors. * Fixed love.graphics.newMesh(vertexcount, ...) causing the Mesh to do instanced rendering. * Fixed Mesh:getVertexMap. * Fixed Image:refresh generating mipmaps multiple times if mipmap filtering is enabled. * Fixed Image:setMipmapFilter to not keep bad state around if it errors. * Fixed Mesh:setDrawRange when the Mesh has a vertex map set. * Fixed internal detection of the 'position' and 'effect' shader functions. * Fixed Texture memory leak when Meshes are garbage collected. * Fixed the default line join mode to be 'miter' instead of an undefined value. * Fixed the default error handler text size when highdpi mode is enabled on a Retina monitor. * Fixed the default error handler background color when sRGB mode is enabled for the window. * Fixed love.window.setMode to fall back to the largest available mode if a width or height greater than the largest supported is specified and fullscreen is used. * Fixed the state of wireframe mode when love.window.setMode is called. * Fixed Canvas:getPixel to error if the coordinates are not within the Canvas' size. * Fixed detection of compressed textures to work regardless of the file's extension. * Renamed all cases of FSAA to MSAA. The FSAA names still exist for backward-compatibility. * Updated the Windows executable to automatically prefer the higher performance GPU on nvidia Optimus systems. * Updated the --console command-line argument in Windows to open the console before conf.lua is loaded. * Updated t.console and the --console command-line argument in Windows to use the existing Console window, if love was launched from one. * Updated the love executable to verify that the love library's version matches. * Updated the Lua wrapper code for modules to avoid crashes when the module's instance is created, deleted, and recreated. * Updated internal code for handling garbage collection of love objects to be more efficient. * Updated love's initialization code to trigger a Lua error if love.conf has an error in it. * Updated the paths returned by love.filesystem.getSaveDirectory and friends to strip double-slashes from the string. * Updated the error message when love.filesystem.write or File:open fails because the directory doesn't exist. * Updated the error message when love.math.setRandomseed(0) is attempted. * Updated the error message when invalid UTF-8 strings are used in love functions that expect UTF-8. * Updated love.physics.newPolygonShape and love.physics.newChainShape to accept a table of vertices. * Updated love.physics.newChainShape to error if the number of arguments is invalid. * Updated love.thread.newThread to accept a literal string of code directly. * Updated love-created threads to use names visible in external debuggers. * Updated SpriteBatch:unbind to use less VRAM if the SpriteBatch has the static usage hint. * Updated love.graphics.newImage, love.image.newImageData, etc. to leave less Lua-owned memory around. * Updated love.graphics.push to accept different stack types to push. Current types are "transform" and "all". * Updated love shaders to accept GLSL ES precision qualifiers on variables, although they do nothing. * Updated the error message for love.graphics.newShader to be less cryptic if an invalid filename is given. * Updated compressed texture loading code to allow BC6 and BC7 compressed textures (if the graphics driver supports them.)