12.0
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
- 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.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 SoundData:copyFrom.
- Added SoundData:slice.
- Added Joystick:setPlayerIndex and Joystick:getPlayerIndex.
- Added Joystick:getGamepadType.
- Added new Gamepad API buttons: "misc1", "paddle1", "paddle2", "paddle3", "paddle4". and "touchpad".
- Added a Metal backend to love.graphics, available on macOS 10.15+ and iOS 13+.
- Added '--renderers a,b,c' and '--excluderenderers a,b,c' command line arguments.
- Added t.renderers and t.excluderenderers love.conf options.
- Added t.highdpi startup flag in love.conf, replacing t.window.highdpi and the highdpi flag of love.window.setMode.
- 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 texture formats.
- 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 'staging' buffer data usage enum, useful for Buffers used in intermediate copy steps.
- 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 love.keyboard.isModifierActive.
- Added love.system.getPreferredLocales.
- Added love.localechanged callback.
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 ImageData to no longer hold onto a CPU copy of their pixel data after creation.
- 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 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.
- Updated Box2D from 2.3 to 2.4.1.
Deprecations
- 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).
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.