Difference between revisions of "12.0"

m (Update changelog)
Line 9: Line 9:
 
* Added support for launching a specific .lua file as the main file.
 
* Added support for launching a specific .lua file as the main file.
 
* Added basic usage instructions printed to the console when '--help' is used as a command-line parameter, and when the no-game screen is run.
 
* Added basic usage instructions printed to the console when '--help' is used as a command-line parameter, and when the no-game screen is run.
 +
* Added an option to add LÖVE to the user's command-line path in the Windows installer.
 
* 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 112: Line 113:
 
* Added [[Texture:isCanvas]] and [[Texture:isComputeWritable]].
 
* Added [[Texture:isCanvas]] and [[Texture:isComputeWritable]].
 
* Added [[Texture:isFormatLinear]], [[Texture:getMSAA]], [[Texture:generateMipmaps]], [[Texture:replacePixels]], and [[Texture:renderTo]] (moved from old Canvas and Image subclasses).
 
* Added [[Texture:isFormatLinear]], [[Texture:getMSAA]], [[Texture:generateMipmaps]], [[Texture:replacePixels]], and [[Texture:renderTo]] (moved from old Canvas and Image subclasses).
 +
* Added support for [[CompressedImageData]] to [[Texture:replacePixels]].
 
* Added [[love.graphics.newTextureView]].
 
* Added [[love.graphics.newTextureView]].
 
* Added optional 'viewformats' field to the settings table in [[Texture]] constructors.
 
* Added optional 'viewformats' field to the settings table in [[Texture]] constructors.
Line 128: Line 130:
 
* Added integer [[BufferDataFormat|buffer data formats]].
 
* Added integer [[BufferDataFormat|buffer data formats]].
 
* Added [[love.graphics.getQuadIndexBuffer]].
 
* Added [[love.graphics.getQuadIndexBuffer]].
 +
* Added [[Shader:getBufferFormat]].
  
  
Line 159: Line 162:
 
* Changed the minimum runtime iOS version to 13.0.
 
* Changed the minimum runtime iOS version to 13.0.
 
* Changed the minimum runtime Windows version to Windows 7 SP1 (64 bit).
 
* Changed the minimum runtime Windows version to Windows 7 SP1 (64 bit).
 +
* Changed the minimum runtime graphics requirement to OpenGL 3.3+, OpenGL ES 3.0+, Vulkan 1.0+, or Metal.
  
  
Line 171: Line 175:
 
* Changed [[love.filesystem.exists]] to no longer be deprecated.
 
* Changed [[love.filesystem.exists]] to no longer be deprecated.
 
* Changed [[love.data.hash]] to have a container type parameter.
 
* Changed [[love.data.hash]] to have a container type parameter.
 +
* Changed the size parameter of [[love.data.newDataView]] to be optional.
 
* 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 TrueType and OpenType font handling to have improved kerning and character combining support.   
 
* Changed TrueType and OpenType font handling to have improved kerning and character combining support.   
  
  
* [[love.textinput]] is now disabled by default due to upgrading to SDL3, which will mean you will need to use [[love.keyboard.setTextInput]] on all platforms now, not just mobile.
+
* Changed [[love.textinput]] to be disabled by default on all platforms. Use [[love.keyboard.setTextInput]] to enable it only when needed.
 +
* Changed [[love.keypressed]], [[love.keyreleased]], and [[love.keyboard.isDown]] to accept arbitrary non-ASCII keys.
  
  
Line 192: Line 198:
 
* Changed [[love.graphics.clear]] to no longer be affected by [[love.graphics.setScissor]] or [[love.graphics.setColorMask]].
 
* Changed [[love.graphics.clear]] to no longer be affected by [[love.graphics.setScissor]] or [[love.graphics.setColorMask]].
 
* Changed [[love.graphics.setDepthMode]] with the depth write parameter set to true to error if the active Canvases or window don't have a depth buffer.
 
* Changed [[love.graphics.setDepthMode]] with the depth write parameter set to true to error if the active Canvases or window don't have a depth buffer.
 +
* Changed text layout and rendering in high-dpi situations to be more consistent across DPI scales.
 
* Changed [[Shader]] code parsing to ignore shader entry point functions inside comments.
 
* Changed [[Shader]] code parsing to ignore shader entry point functions inside comments.
 +
* Changed [[Shader]] code to use GLSL3 (GLSL 3.30 or GLSL ES 3.00) by default.
 
* Changed position output coordinate space in vertex shaders to be consistent across all graphics APIs and regardless of whether a Canvas is active.
 
* Changed position output coordinate space in vertex shaders to be consistent across all graphics APIs and regardless of whether a Canvas is active.
 
** Clip-space output is y-up. Texture contents and pixel shader coordinates are y-down.
 
** Clip-space output is y-up. Texture contents and pixel shader coordinates are y-down.
Line 198: Line 206:
  
 
* Changed audio file decoding to choose the most appropriate decoder based on file contents instead of the file extension.
 
* Changed audio file decoding to choose the most appropriate decoder based on file contents instead of the file extension.
 +
* Changed audio initialization to give a more descriptive error if it fails.
 
* Changed [[Video]]s to stream audio from the file instead of loading all the video file into memory for use with audio decoding.
 
* 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.math.perlinNoise]] and [[love.math.simplexNoise]] 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.
Line 229: Line 238:
 
* Deprecated [[love.graphics.stencil]] (replaced by [[love.graphics.setStencilMode]] or [[love.graphics.setStencilState]]).
 
* Deprecated [[love.graphics.stencil]] (replaced by [[love.graphics.setStencilMode]] or [[love.graphics.setStencilState]]).
 
* Deprecated [[love.graphics.setStencilTest]] and [[love.graphics.getStencilTest]] (replaced by [[love.graphics.setStencilMode]] or [[love.graphics.setStencilState]]).
 
* Deprecated [[love.graphics.setStencilTest]] and [[love.graphics.getStencilTest]] (replaced by [[love.graphics.setStencilMode]] or [[love.graphics.setStencilState]]).
 +
* Deprecated usage of <code>texture</code> as a uniform variable in [[Shader]] code, since it's a built-in function name in GLSL3.
 +
* Deprecated usage of <code>texture2D</code> function calls in [[Shader]] code. Use <code>Texel</code> or the built-in function <code>texture</code> instead.
 
* Deprecated [[love.window.close]].
 
* Deprecated [[love.window.close]].
 
* 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]]).
Line 239: Line 250:
 
* Removed [[Fixture]] objects. All methods previously in Fixtures are now available in [[Shape]]s.
 
* Removed [[Fixture]] objects. All methods previously in Fixtures are now available in [[Shape]]s.
 
* Removed the variant of [[SpriteBatch:setColor]]() which turns off all previously set colors.
 
* Removed the variant of [[SpriteBatch:setColor]]() which turns off all previously set colors.
 +
* Removed the <code>NormalMatrix</code> [[Shader_Variables|Shader uniform variable]].
 +
* Removed support for the GLSL 1.20 and GLSL ES 1.00 [[Shader]] languages. GLSL 3.30 and GLSL ES 3.00 are used by default instead.
 
* Removed functions deprecated in LÖVE 11:
 
* Removed functions deprecated in LÖVE 11:
 
** Removed [[love.audio.getSourceCount]] (renamed to [[love.audio.getActiveSourceCount]]).
 
** Removed [[love.audio.getSourceCount]] (renamed to [[love.audio.getActiveSourceCount]]).
Line 259: Line 272:
 
* Fixed [[BezierCurve:render]] adding collinear points in some situations.
 
* Fixed [[BezierCurve:render]] adding collinear points in some situations.
 
* Fixed sound [[Decoder]]s to cause a Lua error instead of hard-crashing when memory for the decoding buffer can't be allocated.
 
* Fixed sound [[Decoder]]s to cause a Lua error instead of hard-crashing when memory for the decoding buffer can't be allocated.
 +
* Fixed full platform-specific paths in [[love.filesystem]] APIs to use a consistent canonical representation for the platform.
  
  

Revision as of 17:42, 30 December 2024

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.5

Additions

General


Data


Filesystem


Audio


Input


Math


Physics


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.







Changes

  • Changed the primary build system for Linux to CMake instead of autotools.
  • Changed the minimum runtime macOS version to 10.15.
  • Changed the minimum runtime iOS version to 13.0.
  • Changed the minimum runtime Windows version to Windows 7 SP1 (64 bit).
  • Changed the minimum runtime graphics requirement to OpenGL 3.3+, OpenGL ES 3.0+, Vulkan 1.0+, or Metal.



  • Changed love.filesystem.exists to no longer be deprecated.
  • Changed love.data.hash to have a container type parameter.
  • Changed the size parameter of love.data.newDataView to be optional.
  • Changed the default font from Vera size 12 to Noto Sans size 13.
  • Changed TrueType and OpenType font handling to have improved kerning and character combining support.



  • 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.newImage to allow creating a mipmapped texture with less than the full mipmap range, instead of erroring.
  • 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.graphics.draw(Mesh) to no longer error if the Mesh has no 'VertexPosition' attribute but does have custom vertex attributes.
  • Changed Mesh:getVertexFormat to use named fields, to match the new vertex format parameter setup in love.graphics.newMesh.
  • Changed love.window.setMode to no longer clear the contents of Canvases or otherwise recreate graphics resources.
  • Changed love.graphics.rectangle, love.graphics.polygon, and other shape drawing APIs to provide texture coordinates to shaders, for filled shapes.
  • Changed love.graphics.points to require 'love_PointSize' to be set in the vertex shader, if a custom shader is used.
  • Changed love.graphics.setCanvas to always clear auto-generated temporary depth and stencil buffers when they're used.
  • Changed love.graphics.clear to no longer be affected by love.graphics.setScissor or love.graphics.setColorMask.
  • Changed love.graphics.setDepthMode with the depth write parameter set to true to error if the active Canvases or window don't have a depth buffer.
  • Changed text layout and rendering in high-dpi situations to be more consistent across DPI scales.
  • Changed Shader code parsing to ignore shader entry point functions inside comments.
  • Changed Shader code to use GLSL3 (GLSL 3.30 or GLSL ES 3.00) by default.
  • Changed position output coordinate space in vertex shaders to be consistent across all graphics APIs and regardless of whether a Canvas is active.
    • Clip-space output is y-up. Texture contents and pixel shader coordinates are y-down.


  • Changed audio file decoding to choose the most appropriate decoder based on file contents instead of the file extension.
  • Changed audio initialization to give a more descriptive error if it fails.
  • Changed Videos to stream audio from the file instead of loading all the video file into memory for use with audio decoding.
  • Changed love.math.perlinNoise and love.math.simplexNoise to use higher precision numbers for its internal calculations.
  • Changed the t.accelerometerjoystick love.conf flag to be unset by default.
  • Changed the window 'depth' field in love.conf and love.window.setMode/updateMode/getMode to be a boolean instead of a bit count number.



  • 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 sound Decoders to cause a Lua error instead of hard-crashing when memory for the decoding buffer can't be allocated.
  • Fixed full platform-specific paths in love.filesystem APIs to use a consistent canonical representation for the platform.