Difference between revisions of "12.0"

(Updated changelog)
m
Line 95: Line 95:
 
* Added t.renderers and t.excluderenderers [[love.conf]] options.
 
* 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 <code>#pragma language glsl4</code>.
 
* Added per-shader opt in support for the GLSL 4.30 (desktop) and GLSL ES 3.20 (mobile) shading languages, via <code>#pragma language glsl4</code>.
 +
  
 
* 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.
Line 108: Line 109:
 
* Added explicit sRGB format enums for compressed texture [[PixelFormat|pixel formats]].
 
* Added explicit sRGB format enums for compressed texture [[PixelFormat|pixel formats]].
 
* Added [[ImageData:setLinear]], [[CompressedImageData:setLinear]], [[ImageData:isLinear]], and [[CompressedImageData:isLinear]].
 
* Added [[ImageData:setLinear]], [[CompressedImageData:setLinear]], [[ImageData:isLinear]], and [[CompressedImageData:isLinear]].
 +
  
 
* Added [[GraphicsBuffer|Graphics Buffer]] objects, including vertex, index, texel, shader storage, and indirect draw/dispatch argument buffers.
 
* Added [[GraphicsBuffer|Graphics Buffer]] objects, including vertex, index, texel, shader storage, and indirect draw/dispatch argument buffers.
Line 116: Line 118:
 
* Added an optional start array index parameter to [[Mesh:attachAttribute]].
 
* Added an optional start array index parameter to [[Mesh:attachAttribute]].
 
* Added integer [[BufferDataFormat|buffer data formats]].
 
* Added integer [[BufferDataFormat|buffer data formats]].
 +
  
 
* Added [[love.graphics.readbackTexture]] and [[love.graphics.readbackTextureAsync]] (replaces [[Canvas:newImageData]]).
 
* Added [[love.graphics.readbackTexture]] and [[love.graphics.readbackTextureAsync]] (replaces [[Canvas:newImageData]]).
Line 130: Line 133:
 
* Added [[love.graphics.drawIndirect]].
 
* Added [[love.graphics.drawIndirect]].
 
* Added [[love.graphics.getQuadIndexBuffer]].
 
* Added [[love.graphics.getQuadIndexBuffer]].
 +
  
 
* Added variants of [[love.graphics.applyTransform]] and [[love.graphics.replaceTransform|replaceTransform]] which accept x,y,angle,sx,sy,ox,oy parameters.
 
* Added variants of [[love.graphics.applyTransform]] and [[love.graphics.replaceTransform|replaceTransform]] which accept x,y,angle,sx,sy,ox,oy parameters.
Line 154: Line 158:
 
* 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 [[love.physics]] Shapes and Fixtures to be combined together, in [[Shape]] objects. Separate [[Fixture]]s no longer exist.
 
* Changed [[love.physics]] Shapes and Fixtures to be combined together, in [[Shape]] objects. Separate [[Fixture]]s no longer exist.
Line 161: Line 166:
 
* Changed the behaviour of attaching a [[Shape]] to a [[Body]] to no longer reset mass data if it's been customized.
 
* Changed the behaviour of attaching a [[Shape]] to a [[Body]] to no longer reset mass data if it's been customized.
 
* Changed [[RevoluteJoint:getMotorTorque]] and [[WheelJoint:getMotorTorque]] to take 'dt' as a parameter instead of 'inverse_dt'.
 
* Changed [[RevoluteJoint:getMotorTorque]] and [[WheelJoint:getMotorTorque]] to take 'dt' as a parameter instead of 'inverse_dt'.
 +
  
 
* Changed [[love.filesystem.exists]] to no longer be deprecated.
 
* Changed [[love.filesystem.exists]] to no longer be deprecated.
Line 166: Line 172:
 
* 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.
 +
  
 
* 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.
Line 184: Line 191:
 
* 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.
 +
  
 
* 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.
Line 190: Line 198:
 
* Changed the <code>t.accelerometerjoystick</code> [[love.conf]] flag to be unset by default.
 
* Changed the <code>t.accelerometerjoystick</code> [[love.conf]] flag to be unset by default.
 
* Changed the window 'depth' field in [[love.conf]] and [[love.window.setMode]]/[[love.window.updateMode|updateMode]]/[[love.window.getMode|getMode]] to be a boolean instead of a bit count number.
 
* Changed the window 'depth' field in [[love.conf]] and [[love.window.setMode]]/[[love.window.updateMode|updateMode]]/[[love.window.getMode|getMode]] to be a boolean instead of a bit count number.
 +
  
 
* Renamed 'display' field to 'displayindex' in [[love.window.setMode]]/[[love.window.updateMode|updateMode]]/[[love.window.getMode|getMode]] and [[love.conf]].
 
* Renamed 'display' field to 'displayindex' in [[love.window.setMode]]/[[love.window.updateMode|updateMode]]/[[love.window.getMode|getMode]] and [[love.conf]].
 
* Renamed love.graphics [[Text]] objects to [[TextBatch]].
 
* Renamed love.graphics [[Text]] objects to [[TextBatch]].
 +
  
 
* Updated Box2D from 2.3 to 2.4.1.
 
* Updated Box2D from 2.3 to 2.4.1.

Revision as of 22:39, 13 April 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.
  • Added per-shader opt in support for the GLSL 4.30 (desktop) and GLSL ES 3.20 (mobile) shading languages, via #pragma language glsl4.






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 love.filesystem.exists to no longer be deprecated.
  • Changed love.data.hash to have a container type parameter.
  • 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 OpenGL 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 Shader code parsing to ignore shader entry point functions inside comments.
  • 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 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.