Difference between revisions of "12.0"

m
(Updated changelog)
Line 7: Line 7:
 
=== Additions ===
 
=== Additions ===
 
'''General'''
 
'''General'''
 +
* Added support for launching a specific .lua file as the main file.
 
* Added [[love.parsedGameArguments]] and [[love.rawGameArguments]] tables, in the main thread.
 
* Added [[love.parsedGameArguments]] and [[love.rawGameArguments]] tables, in the main thread.
 
* Added [[love.markDeprecated]].
 
* Added [[love.markDeprecated]].
Line 12: Line 13:
 
* Added [[love.system.getPreferredLocales]].
 
* Added [[love.system.getPreferredLocales]].
 
* Added [[love.localechanged]] callback.
 
* Added [[love.localechanged]] callback.
 +
* Added [[love.dropbegan]] and [[love.dropcompleted]] callbacks.
 
* Added t.highdpi startup flag in [[love.conf]], replacing t.window.highdpi and the highdpi flag of [[love.window.setMode]].
 
* Added t.highdpi startup flag in [[love.conf]], replacing t.window.highdpi and the highdpi flag of [[love.window.setMode]].
 +
* Added support for highdpi mode in Windows.
 +
* Added [[HTTPS]] Lua module.
  
  
Line 19: Line 23:
 
* Added [[love.filesystem.mountCommonPath]], [[love.filesystem.unmountCommonPath|unmountCommonPath]], and [[love.filesystem.getFullCommonPath|getFullCommonPath]].
 
* Added [[love.filesystem.mountCommonPath]], [[love.filesystem.unmountCommonPath|unmountCommonPath]], and [[love.filesystem.getFullCommonPath|getFullCommonPath]].
 
* Added 'readonly' field to [[love.filesystem.getInfo]]'s returned table.
 
* Added 'readonly' field to [[love.filesystem.getInfo]]'s returned table.
 +
* Added an optional load mode parameter to [[love.filesystem.load]]] to only allow binary chunks, text chunks, or both.
 +
* Added [[love.filesystem.openFile]] (replaces [[love.filesystem.newFile]]).
  
  
 
''' Audio '''
 
''' Audio '''
 +
* Added optional [[StreamType|stream type]] parameter to [[love.audio.newSource]] streaming sources ("file" or "memory"). It defaults to "file".
 +
* Added [[love.audio.getPlaybackDevice]], [[love.audio.getPlaybackDevices]], and [[love.audio.setPlaybackDevice]].
 
* Added [[SoundData:copyFrom]].
 
* Added [[SoundData:copyFrom]].
 
* Added [[SoundData:slice]].
 
* Added [[SoundData:slice]].
 +
* Added [[love.audiodisconnected]] callback.
  
  
Line 31: Line 40:
 
* Added new [[GamepadButton|Gamepad API buttons]]: "misc1", "paddle1", "paddle2", "paddle3", "paddle4". and "touchpad".
 
* Added new [[GamepadButton|Gamepad API buttons]]: "misc1", "paddle1", "paddle2", "paddle3", "paddle4". and "touchpad".
 
* Added [[love.keyboard.isModifierActive]].
 
* Added [[love.keyboard.isModifierActive]].
 +
 +
 +
''' Math '''
 +
* Added [[love.math.perlinNoise]] and [[love.math.simplexNoise]] (replaces [[love.math.noise]]).
 +
 +
 +
''' Physics '''
 +
* Added [[World:getFixturesInArea]].
  
  
 
''' Graphics '''
 
''' Graphics '''
 
* Added a Metal backend to [[love.graphics]], available on macOS 10.15+ and iOS 13+.
 
* Added a Metal backend to [[love.graphics]], available on macOS 10.15+ and iOS 13+.
 +
* Added a Vulkan backend to [[love.graphics]], available on Windows, Linux, and Android 7+.
 
* Added '--renderers a,b,c' and '--excluderenderers a,b,c' command line arguments.
 
* Added '--renderers a,b,c' and '--excluderenderers a,b,c' command line arguments.
 
* Added t.renderers and t.excluderenderers [[love.conf]] options.
 
* Added t.renderers and t.excluderenderers [[love.conf]] options.
Line 40: Line 58:
 
* Added [[love.graphics.newTexture]]. [[love.graphics.newImage|newImage]] and [[love.graphics.newCanvas|newCanvas]] still exist as convenience constructor functions.
 
* Added [[love.graphics.newTexture]]. [[love.graphics.newImage|newImage]] and [[love.graphics.newCanvas|newCanvas]] still exist as convenience constructor functions.
 
* Added [[love.graphics.getTextureFormats]], which replaces [[love.graphics.getImageFormats|getImageFormats]] and [[love.graphics.getCanvasFormats|getCanvasFormats]].
 
* Added [[love.graphics.getTextureFormats]], which replaces [[love.graphics.getImageFormats|getImageFormats]] and [[love.graphics.getCanvasFormats|getCanvasFormats]].
* Added integer [[PixelFormat|texture formats]].
+
* Added integer [[PixelFormat|pixel formats]] for [[Texture]]s and [[ImageData]].
 
* Added Graphics [[Buffer]] objects, including vertex, index, texel, and shader storage buffers.
 
* Added Graphics [[Buffer]] objects, including vertex, index, texel, and shader storage buffers.
 
* Added [[love.graphics.copyBuffer]], [[love.graphics.copyBufferToTexture|copyBufferToTexture]], and [[love.graphics.copyTextureToBuffer|copyTextureToBuffer]].
 
* Added [[love.graphics.copyBuffer]], [[love.graphics.copyBufferToTexture|copyBufferToTexture]], and [[love.graphics.copyTextureToBuffer|copyTextureToBuffer]].
Line 46: Line 64:
 
* Added [[Mesh:getAttachedAttributes]].
 
* Added [[Mesh:getAttachedAttributes]].
 
* Added integer [[BufferDataFormat|buffer data formats]].
 
* Added integer [[BufferDataFormat|buffer data formats]].
* Added 'staging' [[BufferDataUsage|buffer data usage enum]], useful for Buffers used in intermediate copy steps.
+
* Added [[love.graphics.readbackTexture]] and [[love.graphics.readbackTextureAsync]] (replaces [[Texture:newImageData]]).
 +
* Added [[love.graphics.readbackBuffer]] and [[love.graphics.readbackBufferAsync]].
 +
* Added 'readback' [[BufferDataUsage|buffer data usage enum]], useful for advanced memory optimization when using [[love.graphics.readbackBuffer]].
 
* Added new lower level 'vertexmain' and 'pixelmain' shader entry points.
 
* Added new lower level 'vertexmain' and 'pixelmain' shader entry points.
 
* Added [[Shader|Compute Shader]] support via new 'computemain' shader entry point.
 
* Added [[Shader|Compute Shader]] support via new 'computemain' shader entry point.
Line 61: Line 81:
 
* Added new 'clampone' [[WrapMode]].
 
* Added new 'clampone' [[WrapMode]].
 
* Added a variant of [[Font:getWidth]] which takes a codepoint number argument.
 
* Added a variant of [[Font:getWidth]] which takes a codepoint number argument.
 +
* Added support for saving .exr image files via [[ImageData:encode]].
  
  
Line 66: Line 87:
 
* Changed the default font from Vera size 12 to Noto Sans size 13.
 
* Changed the default font from Vera size 12 to Noto Sans size 13.
 
* Changed the [[Texture]] class and implementation to no longer have separate [[Canvas]] and [[Image]] subclasses.
 
* Changed the [[Texture]] class and implementation to no longer have separate [[Canvas]] and [[Image]] subclasses.
* Changed [[Texture]]s created from image files and [[ImageData]] to no longer hold onto a CPU copy of their pixel data after creation.
+
* Changed [[Texture]]s created from image files and from [[ImageData]] to no longer hold onto a CPU copy of their pixel data after creation.
 +
* Changed [[love.graphics.newImage]] to error instead of loading a placeholder texture, when the image dimensions are too large for the system.
 
* Changed [[love.graphics.newMesh]] to no longer default to the "fan" [[MeshDrawMode|Mesh draw mode]].
 
* Changed [[love.graphics.newMesh]] to no longer default to the "fan" [[MeshDrawMode|Mesh draw mode]].
 
* Changed the behaviour of [[Mesh]]es to no longer allow a vertex map or index buffer when the "fan" mesh draw mode is used.
 
* Changed the behaviour of [[Mesh]]es to no longer allow a vertex map or index buffer when the "fan" mesh draw mode is used.
 
* Changed [[love.window.setMode]] to no longer clear the contents of Canvases or otherwise recreate OpenGL resources.
 
* Changed [[love.window.setMode]] to no longer clear the contents of Canvases or otherwise recreate OpenGL resources.
 
* Changed [[love.graphics.points]] to require 'love_PointSize' to be set in the vertex shader, if a custom shader is used.
 
* Changed [[love.graphics.points]] to require 'love_PointSize' to be set in the vertex shader, if a custom shader is used.
 +
* Changed audio file decoding to choose the most appropriate decoder based on file contents instead of the file extension.
 +
* Changed [[Video]]s to stream audio from the file instead of loading all the video file into memory for use with audio decoding.
 +
* Changed [[love.filesystem.exists]] to no longer be deprecated.
 
* Changed [[RevoluteJoint:getMotorTorque]] to take 'dt' as a parameter instead of 'inverse_dt'.
 
* Changed [[RevoluteJoint:getMotorTorque]] to take 'dt' as a parameter instead of 'inverse_dt'.
* Changed [[love.math.noise]] to use higher precision numbers for its internal calculations.
+
* Changed [[love.math.perlinNoise]] and [[love.math.simplexNoise]] to use higher precision numbers for its internal calculations.
 +
* Renamed 'display' field to 'displayindex' in [[love.window.setMode]]/[[love.window.updateMode|updateMode]]/[[love.window.getMode|getMode]] and [[love.conf]].
 
* Updated Box2D from 2.3 to 2.4.1.
 
* Updated Box2D from 2.3 to 2.4.1.
 +
* Updated LuaSocket from 3.0-rc1 to 3.1.0.
  
  
 
=== Deprecations ===
 
=== Deprecations ===
 +
* Deprecated usage of slashes instead of dots for module separators in require.
 +
* Deprecated [[love.filesystem.newFile]] (replaced by [[love.filesystem.openFile]]).
 +
* Deprecated [[love.math.noise]] (replaced by [[love.math.perlinNoise]] and [[love.math.simplexNoise]]).
 
* Deprecated [[love.graphics.getImageFormats]] and [[love.graphics.getCanvasFormats]] (replaced by [[love.graphics.getTextureFormats]]).
 
* Deprecated [[love.graphics.getImageFormats]] and [[love.graphics.getCanvasFormats]] (replaced by [[love.graphics.getTextureFormats]]).
 
* Deprecated t.window.highdpi in [[love.conf]] and the highdpi flag of [[love.window.setMode]] (replaced by t.highdpi in [[love.conf]]).
 
* Deprecated t.window.highdpi in [[love.conf]] and the highdpi flag of [[love.window.setMode]] (replaced by t.highdpi in [[love.conf]]).
 
* Deprecated the variants of [[Mesh:attachAttribute]] and [[SpriteBatch:attachAttribute]] which accept a [[Mesh]] (replaced by variants which accept a [[Buffer]]).
 
* Deprecated the variants of [[Mesh:attachAttribute]] and [[SpriteBatch:attachAttribute]] which accept a [[Mesh]] (replaced by variants which accept a [[Buffer]]).
 +
* Deprecated [[Texture:newImageData]] (replaced by [[love.graphics.readbackTexture]]).
  
  
Line 91: Line 122:
 
=== Fixes ===
 
=== Fixes ===
 
* Fixed [[BezierCurve:render]] adding collinear points in some situations.
 
* Fixed [[BezierCurve:render]] adding collinear points in some situations.
 +
* Fixed line rendering when the line has duplicate points.
 +
* Fixed sound [[Decoder]]s to cause a Lua error instead of hard-crashing when memory for the decoding buffer can't be allocated.
 +
* Fixed oversaturated colors on macOS when a P3-capable display is used.
  
  

Revision as of 20:25, 10 October 2022

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 12.0 is TBD. It is currently not released.

Changes from 11.4

Additions

General


Filesystem


Audio


Input


Math


Physics


Graphics


Changes

  • Changed the default font from Vera size 12 to Noto Sans size 13.
  • Changed the Texture class and implementation to no longer have separate Canvas and Image subclasses.
  • Changed Textures created from image files and from ImageData to no longer hold onto a CPU copy of their pixel data after creation.
  • Changed love.graphics.newImage to error instead of loading a placeholder texture, when the image dimensions are too large for the system.
  • Changed love.graphics.newMesh to no longer default to the "fan" Mesh draw mode.
  • Changed the behaviour of Meshes to no longer allow a vertex map or index buffer when the "fan" mesh draw mode is used.
  • Changed love.window.setMode to no longer clear the contents of Canvases or otherwise recreate OpenGL resources.
  • Changed love.graphics.points to require 'love_PointSize' to be set in the vertex shader, if a custom shader is used.
  • Changed audio file decoding to choose the most appropriate decoder based on file contents instead of the file extension.
  • Changed Videos to stream audio from the file instead of loading all the video file into memory for use with audio decoding.
  • Changed love.filesystem.exists to no longer be deprecated.
  • Changed RevoluteJoint:getMotorTorque to take 'dt' as a parameter instead of 'inverse_dt'.
  • Changed love.math.perlinNoise and love.math.simplexNoise to use higher precision numbers for its internal calculations.
  • Renamed 'display' field to 'displayindex' in love.window.setMode/updateMode/getMode and love.conf.
  • Updated Box2D from 2.3 to 2.4.1.
  • Updated LuaSocket from 3.0-rc1 to 3.1.0.


Deprecations


Removals


Fixes

  • Fixed BezierCurve:render adding collinear points in some situations.
  • Fixed line rendering when the line has duplicate points.
  • Fixed sound Decoders to cause a Lua error instead of hard-crashing when memory for the decoding buffer can't be allocated.
  • Fixed oversaturated colors on macOS when a P3-capable display is used.