0.9.1's API is fully backward compatible with existing 0.9.0 games. Most of the changes are bug fixes, internal code improvements, and some API additions and updates to flesh out LÖVE's features, especially in the love.graphics module.
Here are some of the more interesting changes:
• Canvases can now be used with SpriteBatches, ParticleSystems, and Meshes. Canvases and Images are now both sub-types of the new [wiki]Texture[/wiki] type, which those three things accept. [wiki]SpriteBatch:setTexture[/wiki] (etc.) have been added, and [wiki]SpriteBatch:setImage[/wiki] (etc.) is now deprecated, but not removed yet.
• Better support for retina displays in OS X has been added. To take advantage of it, you will need to enable the new "highdpi" window flag in either [wiki]love.conf[/wiki] or [wiki]love.window.setMode[/wiki]. When this is done on a compatible computer, the pixel resolution of the window will be double what the requested window size is. You will almost certainly need to adjust your code if you want to use this properly! The new function [wiki]love.window.getPixelScale[/wiki] can help immensely.
• Canvases now have antialiasing support. You will need to request it when creating the Canvas, with the new function variant [wiki]love.graphics.newCanvas[/wiki](width, height, texturetype, fsaa).
• A new function [wiki]Source:clone[/wiki] has been added. This lets you create multiple static Sources which play the same sound much more efficiently (in terms of loading time, memory usage, and code duplication.)
• Some nasty bugs have been fixed, including an off-by-one issue in [wiki]Joystick:isDown[/wiki], love.graphics.setCanvas breaking everything when love.graphics.setScissor is used sometimes, and 8-bit [wiki]SoundData[/wiki] sounding completely wrong when loaded into a [wiki]Source[/wiki].
I only highlighted a small portion of the changes above. The complete changelog is on the wiki, or right here:
Code: Select all
Additions: * Added love.getVersion. * Added love.system.openURL. * Added new screen BlendMode. * Added Source:clone. * Added ParticleSystem:clone. * Added ParticleSystem:moveTo, has smoother emitter movement compared to ParticleSystem:setPosition. * Added ParticleSystem:setRelativeRotation. * Added love.graphics.setWireframe and love.graphics.isWireframe for debugging. * Added Mesh:setDrawRange and Mesh:getDrawRange. * Added Mesh:setTexture, SpriteBatch:setTexture, and ParticleSystem:setTexture. Accepts Canvases and Images. * Added high-dpi window support for Retina displays in OS X, via the highdpi window flag. * Added love.window.getPixelScale. * Added love.graphics.getSystemLimit. * Added antialiasing support to Canvases. * Added Canvas:getFSAA. * Added love_ScreenSize built-in shader variable. * Added support for gamma-correct rendering. * Added a boolean srgb window setting to love.conf and love.window.setMode. * Added variant of love.graphics.newImage which interprets the image in the sRGB colorspace. * Added a new "srgb" TextureFormat for use with Canvases and Images. * Added love.graphics.isSupported("srgb") * Added love.math.gammaToLinear and love.math.linearToGamma. * Added RandomGenerator:getState and RandomGenerator:setState. * Added CircleShape:getPoint and CircleShape:setPoint. * Added Body:setUserData and Body:getUserData. * Added some missing obscure KeyConstants. * Added optional callback argument to love.filesystem.getDirectoryItems. Deprecations: * Deprecated Mesh:setImage, SpriteBatch:setImage, and ParticleSystem:setImage. * Deprecated love.graphics.getMaxImageSize and love.graphics.getMaxPointSize. Fixes: * Fixed love.graphics.scale with negative values causing incorrect line widths. * Fixed Joystick:isDown using 0-based button index arguments. * Fixed love.graphics.setCanvas() to restore the proper viewport and scissor rectangles. * Fixed TrueType font glyphs which request a monochrome bitmap pixel mode. * Fixed love.graphics.reset causing crashes when called in between love.graphics.push/pop. * Fixed tab characters ("\t") to display properly with love.graphics.print. * Fixed love.graphics.isCreated to return false if love.window.setMode fails. * Fixed love.window.setMode to only destroy OpenGL resources after checking if a fullscreen size is supported. * Fixed loading BC4 compressed textures. * Fixed World:getBodyList and World:getJointList causing hard crashes. * Fixed Fixture:setUserData and Fixture:getUserData to work in coroutines. * Fixed Source:setPitch to error when infinity or NaN is given. * Fixed SoundData objects being initialized with garbage sample values. * Fixed 8-bit SoundData samples when used with love.audio Sources. Other Changes: * Updated t.console in love.conf to create the console before modules are loaded in Windows. * Updated the default love.run code to make initial love.math.random calls more random. * Updated the error text for love.filesystem’s module searchers when require fails. * Updated the love.filesystem module searchers to be tried after package.preload instead of before. * Updated the love.filesystem C library loader to look in paths added via love.filesystem.mount, in Fused mode. * Updated love.graphics.newParticleSystem, love.graphics.newSpriteBatch, and love.graphics.newMesh to accept Canvases. * Updated Canvas drawing code, texture coordinates are no longer flipped vertically. * Updated Canvas:renderTo to work properly if a Canvas is currently active. * Updated ParticleSystem:setEmissionRate to accept non-integer numbers. * Updated Mesh vertex maps (index buffers) to use less VRAM space. * Updated love.graphics.newMesh and Mesh:setVertices to default the UV parameters to 0,0. * Updated fullscreen-desktop and resizable window modes in OS X to use fullscreen Spaces in Mac OS 10.7+. * Updated Source:play to return a boolean indicating success.