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| | + | * 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 ' | + | * 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. | + | * 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
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
- 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.markDeprecated.
- Added love.event.restart(optionalvalue). A new love.restart field will contain the value after restarting.
- Added love.system.getPreferredLocales.
- 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 support for highdpi mode in Windows.
- Added HTTPS Lua module.
Filesystem
- Added love.filesystem.mountFullPath and love.filesystem.unmountFullPath, including opt-in mount-for-write support.
- Added love.filesystem.mountCommonPath, unmountCommonPath, and getFullCommonPath.
- 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
- Added optional 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:slice.
- Added love.audiodisconnected callback.
Input
- Added Joystick:setPlayerIndex and Joystick:getPlayerIndex.
- Added Joystick:getGamepadType.
- Added new Gamepad API buttons: "misc1", "paddle1", "paddle2", "paddle3", "paddle4". and "touchpad".
- Added love.keyboard.isModifierActive.
Math
- Added love.math.perlinNoise and love.math.simplexNoise (replaces love.math.noise).
Physics
- Added World:getFixturesInArea.
Graphics
- 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 t.renderers and t.excluderenderers love.conf options.
- Added per-shader opt in support for the GLSL 4.30 (desktop) and GLSL ES 3.20 (mobile) shading languages, via
#pragma language glsl4
. - Added love.graphics.newTexture. newImage and newCanvas still exist as convenience constructor functions.
- Added love.graphics.getTextureFormats, which replaces getImageFormats and getCanvasFormats.
- Added integer pixel formats for Textures and ImageData.
- Added Graphics Buffer objects, including vertex, index, texel, and shader storage buffers.
- Added love.graphics.copyBuffer, copyBufferToTexture, and copyTextureToBuffer.
- Added APIs for interacting with the Buffer objects owned by Meshes.
- Added Mesh:getAttachedAttributes.
- Added integer buffer data formats.
- Added love.graphics.readbackTexture and love.graphics.readbackTextureAsync (replaces Texture:newImageData).
- Added love.graphics.readbackBuffer and love.graphics.readbackBufferAsync.
- Added 'readback' 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 Compute Shader support via new 'computemain' shader entry point.
- Added love.graphics.dispatchThreadgroups for running compute shaders.
- Added Shader:hasStage.
- Added love.graphics.drawShaderVertices.
- Added love.graphics.getQuadIndexBuffer.
- Added variants of love.graphics.applyTransform and replaceTransform which accept x,y,angle,sx,sy,ox,oy parameters.
- Added APIs to override the default orthographic projection: love.graphics.setOrthoProjection, setPerspectiveProjection, and resetProjection.
- Added ability to set point size within a vertex shader by setting the 'love_PointSize' variable.
- Added love.graphics.setBlendState, which gives lower level control over blend operations than love.graphics.setBlendMode.
- Added love.graphics.setStencilMode and getStencilMode. Replaces love.graphics.stencil as well as love.graphics.setStencilTest.
- Added a variant of love.graphics.setColorMask which accepts a single boolean.
- Added new 'clampone' WrapMode.
- Added a variant of Font:getWidth which takes a codepoint number argument.
- Added support for saving .exr image files via ImageData:encode.
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
- 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 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 Texture:newImageData (replaced by love.graphics.readbackTexture).
Removals
- Removed the variant of SpriteBatch:setColor() which turns off all previously set colors.
- Removed the no-argument variant of love.graphics.setColorMask.
- Removed love.graphics.stencil (replaced by love.graphics.setStencilMode).
- Removed love.graphics.setStencilTest and love.graphics.getStencilTest (replaced by love.graphics.setStencilMode and love.graphics.getStencilMode).
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.