Difference between revisions of "11.0"

m
(Updated changelog)
Line 17: Line 17:
 
* Added variants of all table-with-fields-returning get* functions, the new variants take an existing table to fill in.
 
* 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 [[RopeJoint:setMaxLength]].
 
* 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.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]]).
Line 43: Line 44:
 
* Added optional 'depth' and 'stencil' boolean fields to the table passed into [[love.graphics.setCanvas]], for enabling internal depth and stencil buffers if 'depthstencil' isn't used.
 
* Added optional 'depth' and 'stencil' boolean fields to the table passed into [[love.graphics.setCanvas]], for enabling internal depth and stencil buffers if 'depthstencil' isn't used.
 
* Added [[Texture:setDepthSampleMode|shadow sampler]] support for [[Canvas]]es.
 
* Added [[Texture:setDepthSampleMode|shadow sampler]] support for [[Canvas]]es.
 +
* Added [[love.graphics.setDepthMode]] for using the depth buffer for depth testing/writes. Depth values of rendered objects can currently only be set via shaders.
 +
* Added [[love.graphics.setMeshCullMode]], for culling back- or front-facing triangles when drawing a [[Mesh]].
 +
* Added [[love.graphics.setFrontFaceWinding]].
 
* 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.getStackDepth]].
Line 67: Line 71:
 
* Added the ability to prevent love from creating a stencil buffer for the window in [[love.conf]] and [[love.window.setMode]].
 
* Added the ability to prevent love from creating a stencil buffer for the window in [[love.conf]] and [[love.window.setMode]].
 
* Added [[love.window.updateMode]].
 
* Added [[love.window.updateMode]].
 +
* Added [[love.window.isMinimized]].
 +
* Added [[love.window.restore]].
  
  
Line 104: Line 110:
 
* Improved performance of [[Shader:send]] when the Shader is not active.
 
* Improved performance of [[Shader:send]] when the Shader is not active.
 
* Improved performance of [[love.math.randomNormal]] when LuaJIT's JIT compiler is enabled.  
 
* Improved performance of [[love.math.randomNormal]] when LuaJIT's JIT compiler is enabled.  
 +
* Improved performance of [[love.filesystem.lines]] and [[File:lines]], especially when reading from a file inside a zip/.love.
  
  
Line 129: Line 136:
 
* 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 [[love.timer.step]] to return the calculated delta time.
 +
* Changed [[love.run]] and [[love.errorhandler]] to return a function for their main loop, which gets called until love quits.
 
* 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.
 
* Changed [[love.keyboard.isDown]] and [[love.keyboard.isScancodeDown]] to error if an invalid enum value is given.
  
 +
* Updated and improved command line argument handling.
 
* Updated invalid enum value error messages to show a list of the valid enum values.
 
* 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.
Line 143: Line 152:
 
* 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.
 
* Updated [[love.graphics.newImage]] to treat file names ending with "@2x", "@3x", etc. as a pixel density scale factor if none is explicitly supplied.
 
* Updated [[love.graphics.newImage]] to treat file names ending with "@2x", "@3x", etc. as a pixel density scale factor if none is explicitly supplied.
 +
* Updated the maximum l[[ove.graphics]] transformation/state [[love.graphics.push|stack depth]] from 64 to 128.
 +
* Updated the default error handler to allow copying the error to the clipboard when the user decides to do so.
 +
* Updated [[love.filesystem.setRequirePath]] to support multiple template '?' characters in each path.
 
* Updated [[socket|luasocket]] to version 3.0rc1.
 
* Updated [[socket|luasocket]] to version 3.0rc1.
  
  
 
=== Fixes ===
 
=== Fixes ===
 +
* Fixed an error in the default [[love.errhand|error handler]] when the error message contains non UTF-8 bytes.
 
* Fixed a memory leak when sending love [[Object]]s to threads which never load that object's module.
 
* Fixed a memory leak when sending love [[Object]]s to threads which never load that object's module.
 
* Fixed os.execute always returning -1 in Linux.
 
* Fixed os.execute always returning -1 in Linux.
Line 156: Line 169:
 
* Fixed [[love.joystick.setGamepadMapping]]'s replacement code.
 
* Fixed [[love.joystick.setGamepadMapping]]'s replacement code.
 
* Fixed baseline calculation when rendering text.
 
* Fixed baseline calculation when rendering text.
 +
* Fixed [[Shader:send]] and [[Shader:sendColor]] ignoring the last argument for an array.
 
* 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 a crash when [[love.graphics.pop]] is called after [[love.window.setMode]] while the transformation stack was not empty.
 
* Fixed [[ParticleSystem:setParticleLifetime]] to error if a negative value is given.
 
* Fixed [[ParticleSystem:setParticleLifetime]] to error if a negative value is given.
 +
* Fixed [[love.window.isMaximized]].
 
* Fixed [[Video]] playback to work with a wider range of Ogg Theora files.
 
* Fixed [[Video]] playback to work with a wider range of Ogg Theora files.
 
* Fixed [[Video]] seeking to be faster.
 
* Fixed [[Video]] seeking to be faster.
* Fixed error in default [[love.errhand|error handler]] when the error message contains non UTF-8 bytes.
+
* Fixed [[BezierCurve]]s to error instead of hanging in some situations.
 +
* Fixed compilation of lua[[socket]] with newer luajit 2.1.0 beta versions.
  
  
 
[[Category:Versions]]
 
[[Category:Versions]]

Revision as of 17:20, 10 December 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.


Other 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.
  • Improved performance of love.filesystem.lines and File:lines, especially when reading from a file inside a zip/.love.


Other changes

  • 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 the 'multiply' BlendMode to error if not used with the 'premultiplied' BlendAlphaMode, since the formula only works with that anyway.
  • Changed some love.graphics, love.window, and love.event APIs to cause an error if a Canvas is active.
  • Changed stenciling functionality with a Canvas active to require stencil=true (or a custom stencil-formatted Canvas) to be set in love.graphics.setCanvas.
  • 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 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 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 love.run and love.errorhandler to return a function for their main loop, which gets called until love quits.
  • 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 and improved command line argument handling.
  • 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 love.math.random to have improved numeric distribution.
  • Updated love.graphics to support Core Profile OpenGL 3.3+ when available.
  • Updated Shaders to always expose derivative functions (dFdx, dFdy, fwidth) when available in OpenGL ES.
  • Updated Shaders 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 the error message when bad values are given to love.graphics.line.
  • 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 love.graphics.newImage to treat file names ending with "@2x", "@3x", etc. as a pixel density scale factor if none is explicitly supplied.
  • Updated the maximum love.graphics transformation/state stack depth from 64 to 128.
  • Updated the default error handler to allow copying the error to the clipboard when the user decides to do so.
  • Updated love.filesystem.setRequirePath to support multiple template '?' characters in each path.
  • Updated luasocket to version 3.0rc1.


Fixes