Difference between revisions of "0.10.0"

m (Add codename for 0.10.0)
m (Semantic mediawiki thing)
 
(22 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{notice|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.}}
+
[[File:NoGameScreen_0100.png|thumb|no-game screen]]
  
The codename for LÖVE 0.10.0 is '''Super Toast'''. It is currently '''<span style="color:#ff0000;">not released</span>'''.
+
The codename for LÖVE 0.10.0 is '''Super Toast'''. It is currently '''<span style="color:#0000ff;">released</span>'''.
  
 
== Changes from [[0.9.2]] ==
 
== Changes from [[0.9.2]] ==
Line 7: Line 7:
 
* Added an iOS port.
 
* Added an iOS port.
 
* Added an Android port.
 
* Added an Android port.
 +
* Added support for reading accelerometer values on mobile devices. Accelerometers are exposed as 3-axis [[Joystick]]s.
 
* Added the flag t.accelerometerjoystick to [[love.conf]]. Disables accelerometer-as-joystick functionality on mobile devices when false.
 
* Added the flag t.accelerometerjoystick to [[love.conf]]. Disables accelerometer-as-joystick functionality on mobile devices when false.
* Added the flag t.gammacorrect to [[love.conf]] (replaces t.window.srgb.) Enabling it globally enables gamma-correct rendering, when supported.
+
* Added the flag t.gammacorrect to [[love.conf]] (replaces t.window.srgb.) Enabling it globally enables [[love.graphics.isGammaCorrect|gamma-correct rendering]], when supported.
 +
* Added video playback support for Ogg Theora videos, via [[love.graphics.newVideo]].
 +
* Added [[love.video]] module. It is not used for displaying videos on-screen (see [[Video]] objects for that.)
 
* Added [[love.touch]] module. Note that it has important differences from the touch implementation in the LÖVE 0.9.2 Android and iOS ports.
 
* Added [[love.touch]] module. Note that it has important differences from the touch implementation in the LÖVE 0.9.2 Android and iOS ports.
 +
** Added [[love.touch.getTouches]]
 
** Added [[love.touch.getPosition]]
 
** Added [[love.touch.getPosition]]
** Added [[love.touch.getTouches]]
+
** Added [[love.touch.getPressure]]
 
* Added [[love.touchpressed]], [[love.touchreleased]], and [[love.touchmoved]].
 
* Added [[love.touchpressed]], [[love.touchreleased]], and [[love.touchmoved]].
 
* Added [[love.system.vibrate]].
 
* Added [[love.system.vibrate]].
Line 22: Line 26:
 
* Added [[love.mouse.hasCursor]].
 
* Added [[love.mouse.hasCursor]].
 
* Added a boolean argument to [[love.mousepressed]] and [[love.mousereleased]] indicating whether the button event originated from a touch press.
 
* Added a boolean argument to [[love.mousepressed]] and [[love.mousereleased]] indicating whether the button event originated from a touch press.
 +
* Added [[love.keyboard.isScancodeDown]].
 
* Added optional x/y/width/height arguments to [[love.keyboard.setTextInput]]. They tell the system where text will show up so on-screen keyboards can avoid that area.
 
* Added optional x/y/width/height arguments to [[love.keyboard.setTextInput]]. They tell the system where text will show up so on-screen keyboards can avoid that area.
 
* Added [[Source:getType]] (replaces [[Source:isStatic]].)
 
* Added [[Source:getType]] (replaces [[Source:isStatic]].)
Line 30: Line 35:
 
* Added [[love.graphics.points]] (replaces [[love.graphics.point]].)
 
* Added [[love.graphics.points]] (replaces [[love.graphics.point]].)
 
* Added [[love.graphics.intersectScissor]].
 
* Added [[love.graphics.intersectScissor]].
* Added an optional boolean argument to [[love.graphics.setBlendMode]] which indicates whether the blend mode should multiply alpha with rgb for the source color. It is true by default.
+
* Added an optional argument to [[love.graphics.setBlendMode]] which indicates whether to treat the colors of drawn objects as having pre-multiplied alpha.
 
* Added a new built-in [[Shader Variables|shader variable]]: "mat3 NormalMatrix".
 
* Added a new built-in [[Shader Variables|shader variable]]: "mat3 NormalMatrix".
 
* Added [[love.graphics.getSupported]] (replaces [[love.graphics.isSupported]].)
 
* Added [[love.graphics.getSupported]] (replaces [[love.graphics.isSupported]].)
Line 39: Line 44:
 
* Added [[love.graphics.discard]].
 
* Added [[love.graphics.discard]].
 
* Added [[love.graphics.isGammaCorrect]].
 
* Added [[love.graphics.isGammaCorrect]].
 +
* Added the "clampzero" [[WrapMode]].
 
* Added the ability to specify custom mipmaps when creating an image, via [[love.graphics.newImage]](filename, {mipmaps={mip1, mip2, ...}}).
 
* Added the ability to specify custom mipmaps when creating an image, via [[love.graphics.newImage]](filename, {mipmaps={mip1, mip2, ...}}).
 
* Added optional x/y/width/height arguments to [[(Image):refresh|Image:refresh]] and [[Canvas:newImageData]].
 
* Added optional x/y/width/height arguments to [[(Image):refresh|Image:refresh]] and [[Canvas:newImageData]].
 
* Added [[(Image):getFlags|Image:getFlags]].
 
* Added [[(Image):getFlags|Image:getFlags]].
 
* Added one- and two-channel [[CanvasFormat|Canvas formats]]: r8, rg8, r16f, rg16f, r32f, and rg32f.
 
* Added one- and two-channel [[CanvasFormat|Canvas formats]]: r8, rg8, r16f, rg16f, r32f, and rg32f.
* Added support for different formats in each Canvas when using multi-canvas rendering. Added the "multicanvasformats" [[GraphicsFeature]] constant.
+
* Added support for different formats in each Canvas when using multi-canvas rendering.
 +
* Added the "multicanvasformats" [[GraphicsFeature]] constant.
 
* Added support for OpenGL ES 2 and 3.
 
* Added support for OpenGL ES 2 and 3.
* Added support for loading ETC1, ETC2, EAC, and PVRTC1 [[CompressedFormat|compressed textures]] on systems that support them.
+
* Added support for loading ETC, EAC, PVRTC, and ASTC [[CompressedFormat|compressed textures]] on systems that support them.
 
* Added custom vertex attribute support for [[Mesh]]es via new variants of [[love.graphics.newMesh]].
 
* Added custom vertex attribute support for [[Mesh]]es via new variants of [[love.graphics.newMesh]].
* Added [[Mesh:setVertexAttribute]] and [[Mesh:getVertexAttribute]], [[Mesh:getVertexFormat]], and [[Mesh:flush]].
+
* Added [[Mesh:setVertexAttribute]] and [[Mesh:getVertexAttribute]].
 +
* Added [[Mesh:getVertexFormat]].
 +
* Added an optional 'startvertex' argument to [[Mesh:setVertices]].
 +
* Added the ability for [[love.graphics.newMesh]] and [[Mesh:setVertices]] to accept a [[Data]] object.
 +
* Added [[Mesh:flush]].
 
* Added [[Mesh:setAttributeEnabled]] and [[Mesh:isAttributeEnabled]].
 
* Added [[Mesh:setAttributeEnabled]] and [[Mesh:isAttributeEnabled]].
 
* Added [[Mesh:attachAttribute]].
 
* Added [[Mesh:attachAttribute]].
 +
* Added [[SpriteBatch:attachAttribute]].
 
* Added [[Shader:sendColor]].
 
* Added [[Shader:sendColor]].
 
* Added new shader functions: gammaCorrectColor, gammaToLinear, and linearToGamma. The functions also have 'precise' and 'fast' variants.
 
* Added new shader functions: gammaCorrectColor, gammaToLinear, and linearToGamma. The functions also have 'precise' and 'fast' variants.
Line 62: Line 74:
 
* Added [[love.window.close]].
 
* Added [[love.window.close]].
 
* Added [[love.window.requestAttention]].
 
* Added [[love.window.requestAttention]].
 +
* Added [[love.window.setDisplaySleepEnabled]] and [[love.window.isDisplaySleepEnabled]].
 
* Added [[BezierCurve:renderSegment]] and [[BezierCurve:removeControlPoint]].
 
* Added [[BezierCurve:renderSegment]] and [[BezierCurve:removeControlPoint]].
 
* Added [[BezierCurve:getSegment]].
 
* Added [[BezierCurve:getSegment]].
Line 89: Line 102:
  
 
=== Removals ===
 
=== Removals ===
* Removed [[love.filesystem.exists]] (use [[love.filesystem.isFile]] or [[love.filesystem.isDirectory]] instead.)
+
* Removed callback variant of [[love.filesystem.getDirectoryItems]].
* Removed callback variant of [[love.filesystem.getDirectoryItems]]
 
 
* Removed the "wu" and "wd" constants for [[love.mousepressed]] (replaced by [[love.wheelmoved]].)
 
* Removed the "wu" and "wd" constants for [[love.mousepressed]] (replaced by [[love.wheelmoved]].)
 
* Removed the named mouse [[MouseConstant|button constants]] (replaced by button numbers.)
 
* Removed the named mouse [[MouseConstant|button constants]] (replaced by button numbers.)
Line 102: Line 114:
 
* Removed [[love.graphics.setStencil]] (replaced by [[love.graphics.stencil]] and [[love.graphics.setStencilTest]].)
 
* Removed [[love.graphics.setStencil]] (replaced by [[love.graphics.stencil]] and [[love.graphics.setStencilTest]].)
 
* Removed the "canvas", "shader", "npot", "subtractive", and "mipmap" [[GraphicsFeature]] constants (the features always have guaranteed support now.)
 
* Removed the "canvas", "shader", "npot", "subtractive", and "mipmap" [[GraphicsFeature]] constants (the features always have guaranteed support now.)
 +
* Removed the "multicanvas" [[GraphicsFeature]] constant (use [[love.graphics.getSystemLimits]] instead.)
 
* Removed the "srgb" [[GraphicsFeature]] constant (use [[love.graphics.isGammaCorrect]] or [[love.graphics.getCanvasFormats]]().srgb instead.)
 
* Removed the "srgb" [[GraphicsFeature]] constant (use [[love.graphics.isGammaCorrect]] or [[love.graphics.getCanvasFormats]]().srgb instead.)
 
* Removed the "srgb" flag in [[love.window.setMode]] and in the t.window table in [[love.conf]] (Replaced by t.gammacorrect.)
 
* Removed the "srgb" flag in [[love.window.setMode]] and in the t.window table in [[love.conf]] (Replaced by t.gammacorrect.)
* Removed the "premultiplied" [[BlendMode]] ([[love.graphics.setBlendMode]]("alpha", false) now does the same thing.)
+
* Removed the "premultiplied" [[BlendMode]] ([[love.graphics.setBlendMode]]("alpha", "premultiplied") now does the same thing.)
 
* Removed [[Canvas:getPixel]] (use [[Canvas:newImageData]] instead.)
 
* Removed [[Canvas:getPixel]] (use [[Canvas:newImageData]] instead.)
 
* Removed [[Canvas:clear]] (use [[love.graphics.clear]] instead.)
 
* Removed [[Canvas:clear]] (use [[love.graphics.clear]] instead.)
 
* Removed [[Mesh:getVertices]].
 
* Removed [[Mesh:getVertices]].
 
* Removed [[Mesh:setVertexColors]] and [[Mesh:hasVertexColors]] (use [[Mesh:setAttributeEnabled]]("VertexColor", enable) instead.)
 
* Removed [[Mesh:setVertexColors]] and [[Mesh:hasVertexColors]] (use [[Mesh:setAttributeEnabled]]("VertexColor", enable) instead.)
* Removed functions deprecated in LOVE 0.9.x:
+
* Removed functions deprecated in LOVE [[0.9.1]] and [[0.9.2]]:
 
** Removed [[love.graphics.getMaxImageSize]] and [[love.graphics.getMaxPointSize]] (replaced by [[love.graphics.getSystemLimits]].)
 
** Removed [[love.graphics.getMaxImageSize]] and [[love.graphics.getMaxPointSize]] (replaced by [[love.graphics.getSystemLimits]].)
 
** Removed [[Mesh:setImage]], [[Mesh:getImage]], [[SpriteBatch:setImage]], [[SpriteBatch:getImage]], [[ParticleSystem:setImage]], and [[ParticleSystem:getImage]] (replaced by set/getTexture.)
 
** Removed [[Mesh:setImage]], [[Mesh:getImage]], [[SpriteBatch:setImage]], [[SpriteBatch:getImage]], [[ParticleSystem:setImage]], and [[ParticleSystem:getImage]] (replaced by set/getTexture.)
Line 122: Line 135:
 
* Fixed [[utf8|utf8.char]].
 
* Fixed [[utf8|utf8.char]].
 
* Fixed detection of fused executables.
 
* 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 [[World:getCallbacks]] and [[World:getContactFilter]] when used in coroutines.
* Fixed crashes when objects which store Lua callback functions are garbage collected after being 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 [[Body|bodies]], [[Fixture|fixtures]], and [[Joint|joints]].
 
* Fixed [[love.keyboard.getKeyFromScancode]] crashing when an invalid scancode is given.
 
* Fixed [[love.keyboard.getKeyFromScancode]] crashing when an invalid scancode is given.
 
* Fixed decoding of 8-bit WAV files.
 
* Fixed decoding of 8-bit WAV files.
Line 141: Line 155:
 
* Improved the performance of [[World:rayCast]] and [[World:queryBoundingBox]].
 
* 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 [[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 [[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.
  
  
Line 170: Line 186:
  
 
[[Category:Versions]]
 
[[Category:Versions]]
 +
{{#set:InternalVersion=100}}
 +
{{#set:Codename=Super Toast}}
 +
{{#set:Status=<span style="color:#0000ff;">Released</span>}}
 +
{{#set:ReleaseDate=2015-12-22}}

Latest revision as of 02:07, 20 December 2018

no-game screen

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

Changes from 0.9.2

Additions


Changed APIs


Renamed APIs


Removals


Bugfixes


Performance improvements


Other changes