Difference between revisions of "11.0"

m
(Updated changelog)
Line 6: Line 6:
  
 
=== Additions ===
 
=== Additions ===
 +
* Added formal deprecation warnings, on by default for non-fused games.
 
* Added [[Object:release]].
 
* Added [[Object:release]].
 
* Added [[Data:clone]].
 
* Added [[Data:clone]].
Line 12: Line 13:
 
* Added low gain, high gain, and band pass [[Filter]]s to love.audio [[Source]]s.
 
* Added low gain, high gain, and band pass [[Filter]]s to love.audio [[Source]]s.
 
* Added audio [[Effect]] APIs (reverb, echo, etc.)
 
* Added audio [[Effect]] APIs (reverb, echo, etc.)
 +
* Added variants of [[SoundData:getSample]] and [[SoundData:setSample]] which take a channel index parameter.
 +
* Added variants of all table-with-fields-returning get* functions, the new variants take an existing table to fill in.
 
* Added a variant to [[World:update]] for controlling the number of internal iterations to perform.
 
* Added a variant to [[World:update]] for controlling the number of internal iterations to perform.
 
* Added a click count argument to [[love.mousepressed]] and [[love.mousereleased]].
 
* Added a click count argument to [[love.mousepressed]] and [[love.mousereleased]].
 +
* Added [[love.filesystem.getInfo]] (replaces [[love.filesystem.exists]] / [[love.filesystem.isFile|isFile]] / [[love.filesystem.isDirectory|isDirectory]] / [[love.filesystem.isSymlink|isSymlink]] / [[love.filesystem.getLastModified|getLastModified]] / [[love.filesystem.getSize|getSize]]).
 
* Added [[love.filesystem.setCRequirePath]] and [[love.filesystem.getCRequirePath]], and use that to find C libraries for require.
 
* Added [[love.filesystem.setCRequirePath]] and [[love.filesystem.getCRequirePath]], and use that to find C libraries for require.
 
* Added [[Channel:hasRead]], which checks if a message has been read. Takes an id, which Channel:push will now return.
 
* Added [[Channel:hasRead]], which checks if a message has been read. Takes an id, which Channel:push will now return.
* Added [[love.math.encode]] and [[love.math.decode]], which support hex and base64.
+
* Added variants of [[Channel:demand]] and [[Channel:supply]] which take a timeout argument.
* Added [[love.math.hash]], which supports MD5, SHA-1 and the SHA-2 family.
+
* Added a default [[love.threaderror]] callback, which raises the error in the main thread.
 +
* Added love.data module. It includes hex/base64 [[love.data.encode|encoding functions]], MD5 and SHA [[love.data.hash|hashing]], [[love.data.packString|string packing]], and more.
 
* Added [[Transform]] objects to [[love.math]].
 
* Added [[Transform]] objects to [[love.math]].
 
* Added support for different [[ImageData]] [[PixelFormat]]s, including RGBA8 (the default), RGBA16, RGBA16F, and RGBA32F.
 
* Added support for different [[ImageData]] [[PixelFormat]]s, including RGBA8 (the default), RGBA16, RGBA16F, and RGBA32F.
Line 24: Line 29:
 
* Added the ability to specify a per-object pixel density scale factor when creating [[Image]]s, [[Canvas]]es, [[Font]]s, and [[Video]]s. Affects drawing.
 
* Added the ability to specify a per-object pixel density scale factor when creating [[Image]]s, [[Canvas]]es, [[Font]]s, and [[Video]]s. Affects drawing.
 
* Added [[Texture:getPixelWidth]], [[Texture:getPixelHeight]], [[love.graphics.getPixelWidth]], and [[love.graphics.getPixelHeight]].
 
* Added [[Texture:getPixelWidth]], [[Texture:getPixelHeight]], [[love.graphics.getPixelWidth]], and [[love.graphics.getPixelHeight]].
* Added [[Texture:getPixelDensity]], [[love.graphics.getPixelDensity]], and [[Font:getPixelDensity]].
+
* Added [[Texture:getDPIScale]], [[love.graphics.getDPIScale]], and [[Font:getDPIScale]].
 
* Added Array, Cubemap, and Volume [[TextureType]]s, corresponding [[Texture]] APIs, and variants to [[love.graphics.newImage]] and [[love.graphics.newCanvas]] for creating different texture types.
 
* Added Array, Cubemap, and Volume [[TextureType]]s, corresponding [[Texture]] APIs, and variants to [[love.graphics.newImage]] and [[love.graphics.newCanvas]] for creating different texture types.
 
* Added [[love.graphics.getTextureTypes]], which returns a table with fields indicating support for each [[TextureType]].
 
* Added [[love.graphics.getTextureTypes]], which returns a table with fields indicating support for each [[TextureType]].
Line 38: Line 43:
 
* Added [[Texture:setDepthSampleMode|shadow sampler]] support for [[Canvas]]es.
 
* Added [[Texture:setDepthSampleMode|shadow sampler]] support for [[Canvas]]es.
 
* Added variants of [[love.graphics.clear]] to control how the active depth and stencil buffers are cleared.
 
* Added variants of [[love.graphics.clear]] to control how the active depth and stencil buffers are cleared.
 +
* Added [[love.graphics.getStackDepth]].
 
* Added [[love.graphics.flushBatch]] for manually flushing automatically batched draws.
 
* Added [[love.graphics.flushBatch]] for manually flushing automatically batched draws.
 
* Added [[SpriteBatch:setDrawRange]].
 
* Added [[SpriteBatch:setDrawRange]].
 +
* Added [[File]] and [[FileData]] variants of [[love.graphics.newShader]].
 
* Added per-[[Shader]] opt in support for the GLSL 3.30 and GLSL ES 3.00 shading languages.
 
* Added per-[[Shader]] opt in support for the GLSL 3.30 and GLSL ES 3.00 shading languages.
 
* Added 'void effect()' [[love.graphics.newShader|pixel shader entry point]].
 
* Added 'void effect()' [[love.graphics.newShader|pixel shader entry point]].
Line 46: Line 53:
 
* Added support for non-square [[Shader]] uniform matrices on desktop platforms and on mobile GLSL 3.
 
* Added support for non-square [[Shader]] uniform matrices on desktop platforms and on mobile GLSL 3.
 
* Added [[Shader:send]](matrixname, is_column_major, matrix, ...) which specifies how to interpret the matrix table arguments.
 
* Added [[Shader:send]](matrixname, is_column_major, matrix, ...) which specifies how to interpret the matrix table arguments.
 +
* Added [[Shader:send]] variants which accept a [[Data]] object.
 
* Added 'borderellipse' and 'borderrectangle' [[ParticleSystem]] distributions.
 
* Added 'borderellipse' and 'borderrectangle' [[ParticleSystem]] distributions.
 
* Added [[ParticleSystem:setAreaSpreadAngle]], [[ParticleSystem:getAreaSpreadAngle]], [[ParticleSystem:setAreaSpreadIsRelativeDirection]], and [[ParticleSystem: setAreaSpreadIsRelativeDirection]].
 
* Added [[ParticleSystem:setAreaSpreadAngle]], [[ParticleSystem:getAreaSpreadAngle]], [[ParticleSystem:setAreaSpreadIsRelativeDirection]], and [[ParticleSystem: setAreaSpreadIsRelativeDirection]].
Line 51: Line 59:
 
* Added 'glsl3', 'instancing', 'fullnpot','pixelshaderhighp', and 'shaderderivatives' [[GraphicsFeature]]s.
 
* Added 'glsl3', 'instancing', 'fullnpot','pixelshaderhighp', and 'shaderderivatives' [[GraphicsFeature]]s.
 
* Added 'anisotropy' graphics [[GraphicsLimit]].
 
* Added 'anisotropy' graphics [[GraphicsLimit]].
 +
* Added 'drawcallsbatched' field to [[love.graphics.getStats]].
 
* Added hardware [[Mesh]] instancing support via [[love.graphics.drawInstanced]] and a new [[Mesh:attachAttribute]] variant.
 
* Added hardware [[Mesh]] instancing support via [[love.graphics.drawInstanced]] and a new [[Mesh:attachAttribute]] variant.
 
* Added a [[Mesh:attachAttribute]] variant that takes a different target attribute name.
 
* Added a [[Mesh:attachAttribute]] variant that takes a different target attribute name.
Line 60: Line 69:
  
 
=== Renamed APIs ===
 
=== Renamed APIs ===
* Renamed [[love.window.getPixelScale]] to [[love.window.getPixelDensity]].
+
All renamed APIs in 0.11.0 are deprecated rather than removed, until the next major release.
 +
* Renamed [[love.window.getPixelScale]] to [[love.window.getDPIScale]].
 +
* Renamed [[love.mouse.hasCursor]] to [[love.mouse.isCursorSupported]].
 +
* Renamed [[love.errhand]] to [[love.errorhandler]]. If love.errhand is defined and love.errorhandler isn't, it will continue to work.
 +
* Renamed [[Source:getChannels|Source]]/[[SoundData:getChannels|SoundData]]/Decoder:getChannels to [[Source:getChannelCount|Source]]/[[SoundData:getChannelCount|SoundData]]/[[Decoder:getChannelCount]].
 +
* Renamed [[PrismaticJoint:hasLimitsEnabled]] and [[RevoluteJoint:hasLimitsEnabled]] to [[PrismaticJoint:areLimitsEnabled]] and [[RevoluteJoint:areLimitsEnabled]].
 +
* Renamed [[love.audio.getSourceCount]] to [[love.audio.getActiveSourceCount]].
 +
* Renamed [[love.math.compress]] and [[love.math.decompress]] to [[love.data.compress]] and [[love.data.decompress]], and updated the argument order.
 +
* Renamed all get[Object]List functions to get[Object]s.
 +
 
 +
 
 +
=== Deprecations ===
 +
* Deprecated [[love.filesystem.exists]] / [[love.filesystem.isFile|isFile]] / [[love.filesystem.isDirectory|isDirectory]] / [[love.filesystem.isSymlink|isSymlink]] / [[love.filesystem.getLastModified|getLastModified]] / [[love.filesystem.getSize|getSize]] (use [[love.filesystem.getInfo]] instead).
  
  
Line 94: Line 115:
 
** [[love.graphics.points]].
 
** [[love.graphics.points]].
 
** [[ImageData:setPixel]], [[ImageData:getPixel]], and [[ImageData:mapPixel]].
 
** [[ImageData:setPixel]], [[ImageData:getPixel]], and [[ImageData:mapPixel]].
* Changed high-dpi functionality to require much less code (often none at all) for things to appear at the correct sizes and positions.
+
** [[love.math.gammaToLinear]] and [[love.math.linearToGamma]].
 +
* Changed high-dpi functionality to require much less code (often none at all) for graphics to appear at the correct sizes and positions.
 
* Changed [[love.graphics.print]] and friends to ignore carriage returns.
 
* Changed [[love.graphics.print]] and friends to ignore carriage returns.
 
* Changed the 'multiply' [[BlendMode]] to error if not used with the 'premultiplied' [[BlendAlphaMode]], since the formula only works with that anyway.
 
* Changed the 'multiply' [[BlendMode]] to error if not used with the 'premultiplied' [[BlendAlphaMode]], since the formula only works with that anyway.
Line 101: Line 123:
 
* Changed [[Mesh:setDrawRange]] to take 'start' and 'count' parameters instead of 'min' and 'max'.
 
* Changed [[Mesh:setDrawRange]] to take 'start' and 'count' parameters instead of 'min' and 'max'.
 
* Changed the 'vsync' field of [[love.window.setMode]] and t.window in [[love.conf]]. It's now an integer with 0 disabling vsync.
 
* Changed the 'vsync' field of [[love.window.setMode]] and t.window in [[love.conf]]. It's now an integer with 0 disabling vsync.
 +
* Changed [[Channel]] and [[love.event.push]] table serialization to accept non-flat tables and detect cycles, cycles now cause an error rather than a stack overflow.
 
* Changed the [[love.audio]] playback APIs drastically.
 
* Changed the [[love.audio]] playback APIs drastically.
 
* Changed [[Source]] seeking behaviour, all kinds of Sources now behave similarly when seeking past the boundaries.
 
* Changed [[Source]] seeking behaviour, all kinds of Sources now behave similarly when seeking past the boundaries.
 +
* Changed [[love.timer.step]] to return the calculated delta time.
 
* Changed [[enet]] to no longer set the 'enet' global.
 
* Changed [[enet]] to no longer set the 'enet' global.
 +
* Changed [[love.keyboard.isDown]] and [[love.keyboard.isScancodeDown]] to error if an invalid enum value is given.
 +
* Updated invalid enum value error messages to show a list of the valid enum values.
 
* Updated [[Source:seek]] to work if the [[Source]] isn't playing.
 
* Updated [[Source:seek]] to work if the [[Source]] isn't playing.
 
* Updated [[love.math.random]] to have improved numeric distribution.
 
* Updated [[love.math.random]] to have improved numeric distribution.
 
* Updated [[love.graphics]] to support Core Profile OpenGL 3.3+ when available.
 
* Updated [[love.graphics]] to support Core Profile OpenGL 3.3+ when available.
 
* Updated [[Shader]]s to always expose derivative functions (dFdx, dFdy, fwidth) when available in OpenGL ES.
 
* Updated [[Shader]]s to always expose derivative functions (dFdx, dFdy, fwidth) when available in OpenGL ES.
 +
* Updated [[Shader]]s to allow using VERTEX and PIXEL as variable names in shader code.
 
* Updated [[love.graphics.circle]], [[love.graphics.ellipse]], [[love.graphics.arc]], and [[love.graphics.rectangle]] to take transformation scale into account when determining the number of segments to use.
 
* Updated [[love.graphics.circle]], [[love.graphics.ellipse]], [[love.graphics.arc]], and [[love.graphics.rectangle]] to take transformation scale into account when determining the number of segments to use.
 +
* Updated the error message when bad values are given to [[love.graphics.line]].
 
* Updated [[Font]] glyph generation to improve antialiasing.
 
* Updated [[Font]] glyph generation to improve antialiasing.
 
* Updated [[Canvas:newImageData]] to return an [[ImageData]] with a format that matches the [[Canvas]]' as closely as possible.
 
* Updated [[Canvas:newImageData]] to return an [[ImageData]] with a format that matches the [[Canvas]]' as closely as possible.
Line 119: Line 147:
 
* Fixed os.execute always returning -1 in Linux.
 
* Fixed os.execute always returning -1 in Linux.
 
* Fixed the default reference angle for [[WeldJoint]], [[PrismaticJoint]], and [[RevoluteJoint]].
 
* Fixed the default reference angle for [[WeldJoint]], [[PrismaticJoint]], and [[RevoluteJoint]].
 +
* Fixed [[Fixture:getShape]] to reuse the existing internal [[Fixture]]-owned [[Shape]].
 +
* Fixed [[MouseJoint:setFrequency]] to error instead of crashing if a frequency of 0 is set.
 
* Fixed [[love.system.setClipboardText]] and [[love.system.getClipboardText]] to error instead of crashing, when a window hasn't been created.
 
* Fixed [[love.system.setClipboardText]] and [[love.system.getClipboardText]] to error instead of crashing, when a window hasn't been created.
 
* Fixed [[Joystick:getGamepadMapping]] to work with xinput controllers.
 
* Fixed [[Joystick:getGamepadMapping]] to work with xinput controllers.
 +
* Fixed [[love.joystick.setGamepadMapping]]'s replacement code.
 
* Fixed baseline calculation when rendering text.
 
* Fixed baseline calculation when rendering text.
 
* Fixed [[Shader Variables|VaryingTexCoords]] and [[Shader Variables|love_ScreenSize]] in shaders to be 'highp' in OpenGL ES, when supported.
 
* Fixed [[Shader Variables|VaryingTexCoords]] and [[Shader Variables|love_ScreenSize]] in shaders to be 'highp' in OpenGL ES, when supported.
 +
* Fixed [[ParticleSystem:setParticleLifetime]] to error if a negative value is given.
 +
* Fixed [[Video]] playback to work with a wider range of Ogg Theora files.
 +
* Fixed [[Video]] seeking to be faster.
 +
* Fixed error in default [[love.errhand|error handler]] when the error message contains non UTF-8 bytes.
  
  
 
[[Category:Versions]]
 
[[Category:Versions]]

Revision as of 18:34, 12 November 2017

O.png The information on this page may not be accurate or up to date due to the information pertaining to a version that is currently in development.  

The codename for LÖVE 0.11.0 is not yet announced. It is currently not released.

Changes from 0.10.2

Additions


Renamed APIs

All renamed APIs in 0.11.0 are deprecated rather than removed, until the next major release.


Deprecations


Removals


Performance Improvements

  • Improved performance when drawing Textures, shapes, lines, and points by automatically batching their draw calls together when possible.
  • Improved performance of Shader:send when the Shader is not active.
  • Improved performance of love.math.randomNormal when LuaJIT's JIT compiler is enabled.


Other changes


Fixes