Difference between revisions of "12.0"

m (Updated changelog)
m
Line 64: Line 64:
 
* Added variant of [[love.mouse.newCursor]] which takes an array of image paths, for handling multiple DPI scales.
 
* Added variant of [[love.mouse.newCursor]] which takes an array of image paths, for handling multiple DPI scales.
 
* Added [[TouchDeviceType]] enum and 'ismouse' boolean parameter to [[love.touchpressed]], [[love.touchmoved]], and [[love.touchreleased]].
 
* Added [[TouchDeviceType]] enum and 'ismouse' boolean parameter to [[love.touchpressed]], [[love.touchmoved]], and [[love.touchreleased]].
* Added [[love.touch.getDeviceType]] and [[love.touch.isMouse]].
+
* Added [[love.touch.getDeviceType]].
 +
* Added [[love.touch.isMouse]].
 
* Added optional touch device type filter parameter to [[love.touch.getTouches]].
 
* Added optional touch device type filter parameter to [[love.touch.getTouches]].
 
* Added 't.trackpadtouch' boolean to love.conf. Trackpad touch events will not be generated unless it's enabled.
 
* Added 't.trackpadtouch' boolean to love.conf. Trackpad touch events will not be generated unless it's enabled.

Revision as of 20:42, 19 January 2025

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 Bestest Friend. It is currently not released.

Changes from 11.5

Additions

General


Data


Filesystem


Audio


Input


Math


Physics


Window


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.graphics.renderers and t.graphics.excluderenderers love.conf options.
  • Added t.graphics.lowpower love.conf option.







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 love.timer.sleep to allow for more precise sleep durations than 1ms on platforms which support that.



  • 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 vertex attribute declarations in Shader code to use location indices via the layout (location = #) qualifier, instead of using names to match with Mesh vertex attributes.
    • LÖVE's default vertex attributes use location 0 for position, location 1 for texture coordinates, and location 2 for vertex colors.
  • Changed the vertex format used with love.graphics.newMesh to have format and 'location' named fields.
  • 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 window 'depth' field in love.conf and love.window.setMode/updateMode/getMode to be a boolean instead of a bit count number.
  • Changed love.window.isVisible to return false if the window is minimized.
  • Changed love.visible to be called when minimizing and unminimizing the window.



  • Updated SDL from 2.0 to 3.0.
  • Updated Box2D from 2.3 to 2.4.1
  • Updated LuaSocket from 3.0-rc1 to 3.1.0.


Deprecations


Removals


Fixes

  • Fixed misleading print when there's an error in the error handler.
  • Fixed BezierCurve:render adding collinear points in some situations.
  • Fixed scissor state getting out of sync when switching between a Canvas and the screen while a scissor is active.
  • Fixed a memory leak in TextBatch:add when the internal buffer is resized.
  • Fixed justify text align mode not always aligning to both edges.
  • 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.