Difference between revisions of "11.0"
(Created page) |
(Updated the changelog) |
||
Line 6: | Line 6: | ||
=== Additions === | === Additions === | ||
− | * Added a variant to World:update | + | * Added [[Object:release]]. |
− | * Added a click count argument to love.mousepressed and love.mousereleased. | + | * Added [[Data:clone]]. |
− | * Added love.filesystem. | + | * Added [[love.audio.newQueueableSource|queuable audio Sources]]. |
− | * Added Channel:hasRead, which checks if a message has been read. Takes an id, which Channel:push will now return. | + | * Added [[RecordingDevice|microphone recording]] support. |
− | * Added love.math.encode | + | * Added low gain, high gain, and band pass [[Filter]]s to love.audio [[Source]]s. |
− | * Added love.math.hash, which supports MD5, SHA-1 and the SHA-2 family. | + | * Added audio [[Effect]] APIs (reverb, echo, etc.) |
− | * Added support for different ImageData | + | * Added a variant to [[World:update]] for controlling the number of internal iterations to perform. |
+ | * Added a click count argument to [[love.mousepressed]] and [[love.mousereleased]]. | ||
+ | * Added [[love.filesystem.setCRequirePath]] and [[love.filesystem.getCRequirePath]], and use that to find C libraries for require. | ||
+ | * Added [[Channel:hasRead]], which checks if a message has been read. Takes an id, which Channel:push will now return. | ||
+ | * Added [[love.math.encode]] and [[love.math.decode]], which support hex and base64. | ||
+ | * Added [[love.math.hash]], which supports MD5, SHA-1 and the SHA-2 family. | ||
+ | * Added [[Transform]] objects to [[love.math]]. | ||
+ | * Added support for different [[ImageData]] [[PixelFormat]]s, including RGBA8 (the default), RGBA16, RGBA16F, and RGBA32F. | ||
* Added the ability to load Radiance HDR, OpenEXR, and 16 bit PNG images. | * Added the ability to load Radiance HDR, OpenEXR, and 16 bit PNG images. | ||
− | * Added love.graphics. | + | * Added [[love.graphics.getImageFormats]] (replaces [[love.graphics.getCompressedImageFormats]]). |
− | * Added SpriteBatch:setDrawRange. | + | * Added the ability to specify a per-object pixel density scale factor when creating [[Image]]s, [[Canvas]]es, [[Font]]s, and [[Video]]s. Affects drawing. |
− | * Added Shader:hasUniform. | + | * Added [[Texture:getPixelWidth]], [[Texture:getPixelHeight]], [[love.graphics.getPixelWidth]], and [[love.graphics.getPixelHeight]]. |
− | * Added support for non-square | + | * Added [[Texture:getPixelDensity]], [[love.graphics.getPixelDensity]], and [[Font:getPixelDensity]]. |
− | * Added Shader:send(matrixname, is_column_major, matrix, ...) which specifies how to interpret the matrix table arguments. | + | * Added Array, Cubemap, and Volume [[TextureType]]s, corresponding [[Texture]] APIs, and variants to [[love.graphics.newImage]] and [[love.graphics.newCanvas]] for creating different texture types. |
− | * Added love. | + | * Added [[love.graphics.getTextureTypes]], which returns a table with fields indicating support for each [[TextureType]]. |
− | * Added | + | * Added [[love.graphics.drawLayer]], [[SpriteBatch:addLayer]], and [[SpriteBatch:setLayer]] for easily drawing layers of [[TextureType|Array Textures]] |
− | * Added | + | * Added variants of [[love.graphics.print]] and [[love.graphics.printf]] which take a [[Font]] argument.. |
+ | * Added mipmapping support to [[Canvas]]es, including both auto-generated mipmaps and manually rendering to a specific mipmap level. | ||
+ | * Added 'stencil8', 'depth24stencil8', 'depth32fstencil8', 'depth16', 'depth24', and 'depth32f' [[PixelFormat]]s for Canvases. | ||
+ | * Added optional 'readable' boolean field to the table passed into [[love.graphics.newCanvas]]. | ||
+ | * Added variant of [[love.graphics.getCanvasFormats]] which takes a 'readable' boolean. | ||
+ | * Added optional 'depthstencil' field to the table passed into [[love.graphics.setCanvas]], for using a depth/stencil formatted [[Canvas]] when rendering. | ||
+ | * Added optional 'depth' and 'stencil' boolean fields to the table passed into [[love.graphics.setCanvas]], for enabling internal depth and stencil buffers if 'depthstencil' isn't used. | ||
+ | * Added [[Texture:setDepthSampleMode|shadow sampler]] support for [[Canvas]]es. | ||
+ | * Added variants of [[love.graphics.clear]] to control how the active depth and stencil buffers are cleared. | ||
+ | * Added [[love.graphics.flushBatch]] for manually flushing automatically batched draws. | ||
+ | * Added [[SpriteBatch:setDrawRange]]. | ||
+ | * Added per-[[Shader]] opt in support for the GLSL 3.30 and GLSL ES 3.00 shading languages. | ||
+ | * Added 'void effect()' [[love.graphics.newShader|pixel shader entry point]]. | ||
+ | * Added [[love.graphics.validateShader]]. | ||
+ | * Added [[Shader:hasUniform]] (replaces [[Shader:getExternVariable]]). | ||
+ | * Added support for non-square [[Shader]] uniform matrices on desktop platforms and on mobile GLSL 3. | ||
+ | * Added [[Shader:send]](matrixname, is_column_major, matrix, ...) which specifies how to interpret the matrix table arguments. | ||
+ | * Added 'borderellipse' and 'borderrectangle' [[ParticleSystem]] distributions. | ||
+ | * Added [[ParticleSystem:setAreaSpreadAngle]], [[ParticleSystem:getAreaSpreadAngle]], [[ParticleSystem:setAreaSpreadIsRelativeDirection]], and [[ParticleSystem: setAreaSpreadIsRelativeDirection]]. | ||
+ | * Added [[love.graphics.captureScreenshot]] (replaces [[love.graphics.newScreenshot]]). | ||
+ | * Added 'glsl3', 'instancing', 'fullnpot','pixelshaderhighp', and 'shaderderivatives' [[GraphicsFeature]]s. | ||
+ | * Added 'anisotropy' graphics [[SystemLimit]]. | ||
+ | * Added hardware [[Mesh]] instancing support via [[love.graphics.drawInstanced]] and a new [[Mesh:attachAttribute]] variant. | ||
+ | * Added a [[Mesh:attachAttribute]] variant that takes a different target attribute name. | ||
+ | * Added [[Mesh:detachAttribute]]. | ||
+ | * Added a variant of [[Mesh:setVertexMap]] which accepts a [[Data]] object. | ||
+ | * Added the ability to prevent love from creating a stencil buffer for the window in [[love.conf]] and [[love.window.setMode]]. | ||
+ | * Added [[love.window.updateMode]]. | ||
+ | |||
+ | |||
+ | === Renamed APIs === | ||
+ | * Renamed [[love.window.getPixelScale]] to [[love.window.getPixelDensity]]. | ||
=== Removals === | === Removals === | ||
− | * Removed the default source type for love.audio.newSource. | + | * Removed the default source type for [[love.audio.newSource]]. |
− | * Removed variant of | + | * Removed variant of [[ove.filesystem.newFileData]] which takes base64 data, use [[love.math.decode]] instead. |
− | * Removed the no-argument variant of Text:set, use Text:clear instead. | + | * Removed the no-argument variant of [[Text:set]], use [[Text:clear]] instead. |
− | * Removed Shader:getExternVariable, use Shader:hasUniform instead. | + | * Removed [[love.graphics.getCompressedImageFormats]], use [[love.graphics.getImageFormats]] instead. |
+ | * Removed the 'void effects(...)' [[love.graphics.newShader|pixel shader entry point]]. Use the new 'void effect()' instead. | ||
+ | * Removed [[Shader:getExternVariable]], use [[Shader:hasUniform]] instead. | ||
+ | * Removed [[love.graphics.newScreenshot]], use [[love.graphics.captureScreenshot]] instead. | ||
+ | * Removed deprecated [[enet]] function [[host:socket_get_address]]. | ||
* Removed functions deprecated in LÖVE 0.10.2: | * Removed functions deprecated in LÖVE 0.10.2: | ||
− | ** Removed Shader:sendInt, Shader:sendBoolean, Shader:sentFloat, Shader:sendMatrix, and Shader:sendTexture (use Shader:send instead). | + | ** Removed undocumented [[Shader:sendInt]], [[Shader:sendBoolean]], [[Shader:sentFloat]], [[Shader:sendMatrix]], and [[Shader:sendTexture]] methods (use [[Shader:send]] instead). |
− | ** Removed love.window.isCreated (use love.window.isOpen instead). | + | ** Removed [[love.window.isCreated]] (use [[love.window.isOpen]] instead). |
+ | |||
+ | |||
+ | === Performance Improvements === | ||
+ | * Improved performance when drawing [[Textures]], shapes, lines, and points by automatically batching their draw calls together when possible. | ||
+ | * Improved performance of [[Shader:send]] when the Shader is not active. | ||
+ | * Improved performance of [[love.math.randomNormal]] when LuaJIT's JIT compiler is enabled. | ||
=== Other changes === | === Other changes === | ||
− | * Changed all color values to be in the range 0-1, rather than 0-255. | + | * Changed all color values to be in the range 0-1, rather than 0-255. This affects the following functions: |
− | * Changed love.graphics.print and friends to ignore carriage returns. | + | ** [[love.graphics.setColor]], [[love.graphics.getColor]], [[love.graphics.setBackgroundColor]], and [[love.graphics.getBackgroundColor]]. |
− | * Changed the 'multiply' | + | ** [[SpriteBatch:setColor]] and [[SpriteBatch:getColor]]. |
− | * Changed the audio playback APIs drastically. | + | ** [[ParticleSystem:setColors]] and [[ParticleSystem:getColors]]. |
− | * Updated Source:seek to work if the Source isn't playing. | + | ** [[love.graphics.newMesh]], [[Mesh:setVertex]], and [[Mesh:getVertex]]. |
− | * Updated love.math.random to have improved numeric distribution. | + | ** The colored text variants of [[love.graphics.print]], [[love.graphics.printf]], [[love.graphics.newText]], [[Text:set]], [[Text:setf]], [[Text:add]], and [[Text:addf]]. |
− | * Updated love.graphics.circle | + | ** [[Shader:sendColor]]. |
− | * Updated | + | ** [[love.graphics.points]]. |
− | * Updated Canvas:newImageData to return an ImageData with a format that matches the Canvas' as closely as possible. | + | ** [[ImageData:setPixel]], [[ImageData:getPixel]], and [[ImageData:mapPixel]]. |
− | * Updated the | + | * Changed high-dpi functionality to require much less code (often none at all) for things to appear at the correct sizes and positions. |
+ | * Changed [[love.graphics.print]] and friends to ignore carriage returns. | ||
+ | * Changed the 'multiply' [[BlendMode]] to error if not used with the 'premultiplied' [[BlendAlphaMode]], since the formula only works with that anyway. | ||
+ | * Changed some [[love.graphics]], [[love.window]], and [[love.event]] APIs to cause an error if a [[Canvas]] is active. | ||
+ | * Changed stenciling functionality with a [[Canvas]] active to require stencil=true (or a custom stencil-formatted [[Canvas]]) to be set in [[love.graphics.setCanvas]]. | ||
+ | * Changed [[Mesh:setDrawRange]] to take 'start' and 'count' parameters instead of 'min' and 'max'. | ||
+ | * Changed the 'vsync' field of [[love.window.setMode]] and t.window in [[love.conf]]. It's now an integer with 0 disabling vsync. | ||
+ | * Changed the [[love.audio]] playback APIs drastically. | ||
+ | * Changed [[Source]] seeking behaviour, all kinds of Sources now behave similarly when seeking past the boundaries. | ||
+ | * Changed [[enet]] to no longer set the 'enet' global. | ||
+ | * Updated [[Source:seek]] to work if the [[Source]] isn't playing. | ||
+ | * Updated [[love.math.random]] to have improved numeric distribution. | ||
+ | * Updated [[love.graphics]] to support Core Profile OpenGL 3.3+ when available. | ||
+ | * Updated [[Shader]]s to always expose derivative functions (dFdx, dFdy, fwidth) when available in OpenGL ES. | ||
+ | * Updated [[love.graphics.circle]], [[love.graphics.ellipse]], [[love.graphics.arc]], and [[love.graphics.rectangle]] to take transformation scale into account when determining the number of segments to use. | ||
+ | * Updated [[Font]] glyph generation to improve antialiasing. | ||
+ | * Updated [[Canvas:newImageData]] to return an [[ImageData]] with a format that matches the [[Canvas]]' as closely as possible. | ||
+ | * Updated [[love.graphics.newImage]] to treat file names ending with "@2x", "@3x", etc. as a pixel density scale factor if none is explicitly supplied. | ||
+ | * Updated [[socket|luasocket]] to version 3.0rc1. | ||
+ | |||
+ | |||
+ | === Fixes === | ||
+ | * Fixed a memory leak when sending love [[Object]]s to threads which never load that object's module. | ||
+ | * Fixed os.execute always returning -1 in Linux. | ||
+ | * Fixed the default reference angle for [[WeldJoint]], [[PrismaticJoint]], and [[RevoluteJoint]]. | ||
+ | * Fixed [[love.system.setClipboardText]] and [[love.system.getClipboardText]] to error instead of crashing, when a window hasn't been created. | ||
+ | * Fixed [[Joystick:getGamepadMapping]] to work with xinput controllers. | ||
+ | * Fixed baseline calculation when rendering text. | ||
+ | * Fixed [[Shader Variables|VaryingTexCoords]] and [[Shader Variables|love_ScreenSize]] in shaders to be 'highp' in OpenGL ES, when supported. | ||
[[Category:Versions]] | [[Category:Versions]] |
Revision as of 23:00, 16 July 2017
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 0.11.0 is not yet announced. It is currently not released.
Contents
Changes from 0.10.2
Additions
- Added Object:release.
- Added Data:clone.
- Added queuable audio Sources.
- Added microphone recording support.
- Added low gain, high gain, and band pass Filters to love.audio Sources.
- Added audio Effect APIs (reverb, echo, etc.)
- Added a variant to World:update for controlling the number of internal iterations to perform.
- Added a click count argument to love.mousepressed and love.mousereleased.
- Added love.filesystem.setCRequirePath and love.filesystem.getCRequirePath, and use that to find C libraries for require.
- Added Channel:hasRead, which checks if a message has been read. Takes an id, which Channel:push will now return.
- Added love.math.encode and love.math.decode, which support hex and base64.
- Added love.math.hash, which supports MD5, SHA-1 and the SHA-2 family.
- Added Transform objects to love.math.
- Added support for different ImageData PixelFormats, including RGBA8 (the default), RGBA16, RGBA16F, and RGBA32F.
- Added the ability to load Radiance HDR, OpenEXR, and 16 bit PNG images.
- Added love.graphics.getImageFormats (replaces love.graphics.getCompressedImageFormats).
- Added the ability to specify a per-object pixel density scale factor when creating Images, Canvases, Fonts, and Videos. Affects drawing.
- Added Texture:getPixelWidth, Texture:getPixelHeight, love.graphics.getPixelWidth, and love.graphics.getPixelHeight.
- Added Texture:getPixelDensity, love.graphics.getPixelDensity, and Font:getPixelDensity.
- Added Array, Cubemap, and Volume TextureTypes, corresponding Texture APIs, and variants to love.graphics.newImage and love.graphics.newCanvas for creating different texture types.
- Added love.graphics.getTextureTypes, which returns a table with fields indicating support for each TextureType.
- Added love.graphics.drawLayer, SpriteBatch:addLayer, and SpriteBatch:setLayer for easily drawing layers of Array Textures
- Added variants of love.graphics.print and love.graphics.printf which take a Font argument..
- Added mipmapping support to Canvases, including both auto-generated mipmaps and manually rendering to a specific mipmap level.
- Added 'stencil8', 'depth24stencil8', 'depth32fstencil8', 'depth16', 'depth24', and 'depth32f' PixelFormats for Canvases.
- Added optional 'readable' boolean field to the table passed into love.graphics.newCanvas.
- Added variant of love.graphics.getCanvasFormats which takes a 'readable' boolean.
- Added optional 'depthstencil' field to the table passed into love.graphics.setCanvas, for using a depth/stencil formatted Canvas when rendering.
- Added optional 'depth' and 'stencil' boolean fields to the table passed into love.graphics.setCanvas, for enabling internal depth and stencil buffers if 'depthstencil' isn't used.
- Added shadow sampler support for Canvases.
- Added variants of love.graphics.clear to control how the active depth and stencil buffers are cleared.
- Added love.graphics.flushBatch for manually flushing automatically batched draws.
- Added SpriteBatch:setDrawRange.
- Added per-Shader opt in support for the GLSL 3.30 and GLSL ES 3.00 shading languages.
- Added 'void effect()' pixel shader entry point.
- Added love.graphics.validateShader.
- Added Shader:hasUniform (replaces Shader:getExternVariable).
- Added support for non-square Shader uniform matrices on desktop platforms and on mobile GLSL 3.
- Added Shader:send(matrixname, is_column_major, matrix, ...) which specifies how to interpret the matrix table arguments.
- Added 'borderellipse' and 'borderrectangle' ParticleSystem distributions.
- Added ParticleSystem:setAreaSpreadAngle, ParticleSystem:getAreaSpreadAngle, ParticleSystem:setAreaSpreadIsRelativeDirection, and ParticleSystem: setAreaSpreadIsRelativeDirection.
- Added love.graphics.captureScreenshot (replaces love.graphics.newScreenshot).
- Added 'glsl3', 'instancing', 'fullnpot','pixelshaderhighp', and 'shaderderivatives' GraphicsFeatures.
- Added 'anisotropy' graphics SystemLimit.
- Added hardware Mesh instancing support via love.graphics.drawInstanced and a new Mesh:attachAttribute variant.
- Added a Mesh:attachAttribute variant that takes a different target attribute name.
- Added Mesh:detachAttribute.
- Added a variant of Mesh:setVertexMap which accepts a Data object.
- Added the ability to prevent love from creating a stencil buffer for the window in love.conf and love.window.setMode.
- Added love.window.updateMode.
Renamed APIs
- Renamed love.window.getPixelScale to love.window.getPixelDensity.
Removals
- Removed the default source type for love.audio.newSource.
- Removed variant of ove.filesystem.newFileData which takes base64 data, use love.math.decode instead.
- Removed the no-argument variant of Text:set, use Text:clear instead.
- Removed love.graphics.getCompressedImageFormats, use love.graphics.getImageFormats instead.
- Removed the 'void effects(...)' pixel shader entry point. Use the new 'void effect()' instead.
- Removed Shader:getExternVariable, use Shader:hasUniform instead.
- Removed love.graphics.newScreenshot, use love.graphics.captureScreenshot instead.
- Removed deprecated enet function host:socket_get_address.
- Removed functions deprecated in LÖVE 0.10.2:
- Removed undocumented Shader:sendInt, Shader:sendBoolean, Shader:sentFloat, Shader:sendMatrix, and Shader:sendTexture methods (use Shader:send instead).
- Removed love.window.isCreated (use love.window.isOpen instead).
Performance Improvements
- Improved performance when drawing Textures, shapes, lines, and points by automatically batching their draw calls together when possible.
- Improved performance of Shader:send when the Shader is not active.
- Improved performance of love.math.randomNormal when LuaJIT's JIT compiler is enabled.
Other changes
- Changed all color values to be in the range 0-1, rather than 0-255. This affects the following functions:
- love.graphics.setColor, love.graphics.getColor, love.graphics.setBackgroundColor, and love.graphics.getBackgroundColor.
- SpriteBatch:setColor and SpriteBatch:getColor.
- ParticleSystem:setColors and ParticleSystem:getColors.
- love.graphics.newMesh, Mesh:setVertex, and Mesh:getVertex.
- The colored text variants of love.graphics.print, love.graphics.printf, love.graphics.newText, Text:set, Text:setf, Text:add, and Text:addf.
- Shader:sendColor.
- love.graphics.points.
- ImageData:setPixel, ImageData:getPixel, and ImageData:mapPixel.
- Changed high-dpi functionality to require much less code (often none at all) for things to appear at the correct sizes and positions.
- Changed love.graphics.print and friends to ignore carriage returns.
- Changed the 'multiply' BlendMode to error if not used with the 'premultiplied' BlendAlphaMode, since the formula only works with that anyway.
- Changed some love.graphics, love.window, and love.event APIs to cause an error if a Canvas is active.
- Changed stenciling functionality with a Canvas active to require stencil=true (or a custom stencil-formatted Canvas) to be set in love.graphics.setCanvas.
- Changed Mesh:setDrawRange to take 'start' and 'count' parameters instead of 'min' and 'max'.
- Changed the 'vsync' field of love.window.setMode and t.window in love.conf. It's now an integer with 0 disabling vsync.
- Changed the love.audio playback APIs drastically.
- Changed Source seeking behaviour, all kinds of Sources now behave similarly when seeking past the boundaries.
- Changed enet to no longer set the 'enet' global.
- Updated Source:seek to work if the Source isn't playing.
- Updated love.math.random to have improved numeric distribution.
- Updated love.graphics to support Core Profile OpenGL 3.3+ when available.
- Updated Shaders to always expose derivative functions (dFdx, dFdy, fwidth) when available in OpenGL ES.
- Updated love.graphics.circle, love.graphics.ellipse, love.graphics.arc, and love.graphics.rectangle to take transformation scale into account when determining the number of segments to use.
- Updated Font glyph generation to improve antialiasing.
- Updated Canvas:newImageData to return an ImageData with a format that matches the Canvas' as closely as possible.
- Updated love.graphics.newImage to treat file names ending with "@2x", "@3x", etc. as a pixel density scale factor if none is explicitly supplied.
- Updated luasocket to version 3.0rc1.
Fixes
- Fixed a memory leak when sending love Objects to threads which never load that object's module.
- Fixed os.execute always returning -1 in Linux.
- Fixed the default reference angle for WeldJoint, PrismaticJoint, and RevoluteJoint.
- Fixed love.system.setClipboardText and love.system.getClipboardText to error instead of crashing, when a window hasn't been created.
- Fixed Joystick:getGamepadMapping to work with xinput controllers.
- Fixed baseline calculation when rendering text.
- Fixed VaryingTexCoords and love_ScreenSize in shaders to be 'highp' in OpenGL ES, when supported.