no-game screen

The codename for LÖVE 0.10.0 is Super Toast. It is currently released.

Additions





Changed APIs

Changed love.mousepressed, love.mousereleased, and love.mouse.isDown to use button numbers instead of named button constants.

Changed love.keypressed to be love.keypressed(key, scancode, isrepeat).

Changed love.keyreleased to be love.keyreleased(key, scancode).

Changed Font:getWrap's second return value to be a table containing the text split into lines.

Changed love.graphics.newImage's optional second argument to be a table of flags (flags are "mipmaps" and "linear".)

Changed the arguments for the standard variants of love.graphics.newMesh. They're now love.graphics.newMesh(vertices [, drawmode, usage]) and love.graphics.newMesh(vertexcount [, drawmode, usage]).

Changed ImageData:encode to return a FileData object. ImageData:encode's first parameter is now the format to encode to, and the second parameter is an optional filename to write to.





Renamed APIs





Removals





Bugfixes

Fixed utf8.char.

Fixed detection of fused executables.

Fixed crashes when objects which store Lua callback functions are garbage collected after being used in coroutines.

Fixed World:getCallbacks and World:getContactFilter when used in coroutines.

Fixed memory leaks in love.physics if World:destroy is never called. When a World is garbage collected it now destroys all associated bodies, fixtures, and joints.

Fixed love.keyboard.getKeyFromScancode crashing when an invalid scancode is given.

Fixed decoding of 8-bit WAV files.

Fixed a crash issue when rewinding streaming ogg Sources, when certain versions of libvorbis are used.

Fixed love.audio.stop() not rewinding streaming Sources.

Fixed the stencil buffer in Canvases when an unsupported MSAA value is used to create the Canvas.

Fixed Canvas:renderTo to restore the previous canvases if an error occurs in the passed function.

Fixed love.graphics.draw(canvas) to cause a Lua error if that canvas is the active one.

Fixed Mesh:getVertexMap to return nil, rather than an empty table, if no vertex map has been set.

Fixed love.graphics.getColorMask.

Fixed the default offset for particles when ParticleSystem:setQuads or ParticleSystem:setTexture is used.

Fixed love.graphics.shear resetting all love.graphics transformations.

Fixed the "add" and "subtract" BlendModes to no longer modify the alpha of the Canvas / screen.





Performance improvements

Improved the performance of World:rayCast and World:queryBoundingBox.

Improved the performance of love.graphics.line and other line drawing functions, when the "smooth" LineStyle is used.

Improved the performance of Shader:send when matrices are used.

Improved the performance of ImageData and SoundData methods when LuaJIT's JIT compiler is enabled, by using efficient FFI code.

Improved the performance of love.math.noise, love.math.gammaToLinear, love.math.linearToGamma, love.math.random, and RandomGenerator:random when LuaJIT's JIT compiler is enabled.





Other changes

Updated the compatibility warning notice to use a message box and to show the version specified in love.conf.

Updated the compatibility warning notice to display before main.lua is loaded.

Updated the __tostring metamethod of love objects to output the pointer value, similar to tostring(table).

Updated World:setCallbacks, World:setContactFilter, World:queryBoundingBox, and World:rayCast to have improved argument type checking.

Updated threads to load love.filesystem automatically.

Updated love.filesystem to enable symlinks by default.

Updated love.math.setRandomSeed and RandomGenerator:setSeed to produce better results for the first few random() calls.

Updated love.math.random and RandomGenerator:random to produce slightly better results in general.

Updated Source methods that deal with spatial audio to error rather than failing silently if the Source isn't mono.

Updated the 3D and 4D variants of love.math.noise to use Perlin noise rather than Simplex noise, to avoid patent issues.

Updated love.graphics.newImageFont to no longer treat separator pixels as spacing.

Updated the default font to use less memory.

Updated the behavior of text wrapping with love.graphics.printf and Font:getWrap to work better.

Updated love.graphics.print and love.graphics.printf to no longer automatically round the x and y position arguments.

Updated some of the error messages for love.graphics.newImage to be more descriptive.

Updated love.graphics color functions to automatically apply love.math.gammaToLinear to color values when gamma-correct rendering is enabled.

Updated the "normal" CanvasFormat to internally use "srgb" rather than "rgba8" when gamma-correct rendering is enabled.

Updated love.graphics.setColor to affect all drawn objects, including ParticleSystems, SpriteBatches, and Meshes, even when per-vertex or per-sprite colors are used.

Updated the default fullscreen type to be "desktop" rather than "exclusive".

Updated the minimum runtime system requirements of LOVE to require OpenGL 2.1 or OpenGL ES 2 support.

Updated the pixel shader effect function so screen_coords.y is 0 at the top of the screen instead of the bottom.

Updated Images to require setting the mipmaps flag to true on creation in order to use mipmaps.

Updated Images to allow mipmaps for non-power-of-two sizes.







