http://love2d.org/w/api.php?action=feedcontributions&user=Davidobot&feedformat=atomLOVE - User contributions [en]2024-03-28T14:10:45ZUser contributionsMediaWiki 1.31.12http://love2d.org/w/index.php?title=11.0&diff=2135211.02018-04-04T06:12:05Z<p>Davidobot: /* Other changes */ ad</p>
<hr />
<div>The codename for LÖVE 11.0 is '''Mysterious Mysteries'''. It is currently '''<span style="color:#0000ff;">released</span>'''.<br />
<br />
== Changes from [[0.10.2]] ==<br />
<br />
=== Additions ===<br />
* Added formal deprecation warnings, on by default for non-fused games.<br />
* Added [[love.setDeprecationOutput]] and [[love.hasDeprecationOutput]].<br />
* Added [[Object:release]].<br />
* Added [[Data:clone]].<br />
* Added [[love.audio.newQueueableSource|queueable audio Sources]].<br />
* Added [[RecordingDevice|microphone recording]] support.<br />
* Added low pass, high pass, and band pass [[Source:setFilter|filters]] to love.audio [[Source]]s.<br />
* Added audio [[Source:setEffect|effect]] APIs (reverb, echo, etc.)<br />
* Added variants of [[SoundData:getSample]] and [[SoundData:setSample]] which take a channel index parameter.<br />
* Added variants of [[love.audio.play]], [[love.audio.pause]], and [[love.audio.stop]] which take a list of [[Source]]s.<br />
* Added [[love.system.hasBackgroundMusic]].<br />
* Added variants of all table-with-fields-returning get* functions, the new variants take an existing table to fill in.<br />
* Added a variant to [[World:update]] for controlling the number of internal iterations to perform.<br />
* Added [[Body:isTouching]].<br />
* Added [[RopeJoint:setMaxLength]].<br />
* Added a click count argument to [[love.mousepressed]] and [[love.mousereleased]].<br />
* Added variants of [[love.filesystem.mount]] which accept a [[Data]] or [[FileData]] object containing zipped data.<br />
* Added [[love.filesystem.getInfo]] (replaces [[love.filesystem.exists]] / [[love.filesystem.isFile|isFile]] / [[love.filesystem.isDirectory|isDirectory]] / [[love.filesystem.isSymlink|isSymlink]] / [[love.filesystem.getLastModified|getLastModified]] / [[love.filesystem.getSize|getSize]]).<br />
* Added [[love.filesystem.setCRequirePath]] and [[love.filesystem.getCRequirePath]], and use that to find C libraries for require.<br />
* Added variants of [[(File):read|File:read]] and [[love.filesystem.read]] which take an enum to determine whether they return a [[FileData]] or a string.<br />
* Added [[Channel:hasRead]], which checks if a message has been read. Takes an id, which [[Channel:push]] will now return.<br />
* Added variants of [[Channel:demand]] and [[Channel:supply]] which take a timeout argument.<br />
* Added a default [[love.threaderror]] callback, which raises the error in the main thread.<br />
* Added [[love.data]] module. It includes hex/base64 [[love.data.encode|encoding functions]], MD5 and SHA [[love.data.hash|hashing]], [[love.data.pack|string packing]], [[love.data.compress|compression APIs]], and more.<br />
* Added [[Transform]] objects to [[love.math]].<br />
* Added support for different [[ImageData]] [[PixelFormat]]s, including RGBA8 (the default), RGBA16, RGBA16F, and RGBA32F.<br />
* Added the ability to load Radiance HDR, OpenEXR, and 16 bit PNG images.<br />
* Added [[love.graphics.getImageFormats]] (replaces [[love.graphics.getCompressedImageFormats]]).<br />
* 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.<br />
* Added [[Texture:getPixelWidth]], [[Texture:getPixelHeight]], [[love.graphics.getPixelWidth]], and [[love.graphics.getPixelHeight]].<br />
* Added [[Texture:getDPIScale]], [[love.graphics.getDPIScale]], and [[Font:getDPIScale]].<br />
* Added [[Texture:getMipmapCount]], [[Texture:getFormat|getFormat]], [[Texture:getLayerCount|getLayerCount]], [[Texture:getDepth|getDepth]], and [[Texture:getTextureType|getTextureType]].<br />
* Added Array, Cubemap, and Volume [[TextureType]]s and corresponding [[Texture]] APIs.<br />
* Added [[love.graphics.newArrayImage]], [[love.graphics.newVolumeImage|newVolumeImage]], [[love.graphics.newCubeImage|newCubeImage]], and variants to [[love.graphics.newCanvas]] for creating different texture types.<br />
* Added [[love.graphics.getTextureTypes]], which returns a table with fields indicating support for each [[TextureType]].<br />
* Added [[(Image):replacePixels|Image:replacePixels]] (replaces [[(Image):refresh|Image:refresh]]).<br />
* Added [[love.graphics.drawLayer]], [[SpriteBatch:addLayer]], and [[SpriteBatch:setLayer]] for easily drawing layers of [[TextureType|Array Textures]]<br />
* Added variants of [[love.graphics.print]] and [[love.graphics.printf]] which take a [[Font]] argument..<br />
* Added mipmapping support to [[Canvas]]es, including both auto-generated mipmaps and manually rendering to a specific mipmap level.<br />
* Added 'stencil8', 'depth24stencil8', 'depth32fstencil8', 'depth16', 'depth24', and 'depth32f' [[PixelFormat]]s for Canvases.<br />
* Added variant of [[love.graphics.newCanvas]] which accepts a table of settings.<br />
* Added optional 'readable' boolean field to the table passed into [[love.graphics.newCanvas]].<br />
* Added variant of [[love.graphics.getCanvasFormats]] which takes a 'readable' boolean.<br />
* Added optional 'depthstencil' field to the table passed into [[love.graphics.setCanvas]], for using a depth/stencil formatted [[Canvas]] when rendering.<br />
* 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.<br />
* Added [[Texture:setDepthSampleMode|shadow sampler]] support for [[Canvas]]es.<br />
* Added [[love.graphics.setDepthMode]] for using the depth buffer for depth testing/writes. Depth values of rendered objects can currently only be set via shaders.<br />
* Added [[love.graphics.setMeshCullMode]], for culling back- or front-facing triangles when drawing a [[Mesh]].<br />
* Added [[love.graphics.setFrontFaceWinding]].<br />
* Added variants of [[love.graphics.clear]] to control how the active depth and stencil buffers are cleared.<br />
* Added [[love.graphics.applyTransform]] and [[love.graphics.replaceTransform]].<br />
* Added [[love.graphics.transformPoint]] and [[love.graphics.inverseTransformPoint]].<br />
* Added [[love.graphics.getStackDepth]].<br />
* Added [[love.graphics.flushBatch]] for manually flushing automatically batched draws.<br />
* Added [[SpriteBatch:setDrawRange]].<br />
* Added [[File]] and [[FileData]] variants of [[love.graphics.newShader]].<br />
* Added per-[[Shader]] opt in support for the GLSL 3.30 and GLSL ES 3.00 shading languages.<br />
* Added 'void effect()' [[love.graphics.newShader|pixel shader entry point]].<br />
* Added [[love.graphics.validateShader]].<br />
* Added [[Shader:hasUniform]] (replaces [[Shader:getExternVariable]]).<br />
* Added support for non-square [[Shader]] uniform matrices on desktop platforms and on mobile GLSL 3.<br />
* Added [[Shader:send]](matrixname, is_column_major, matrix, ...) which specifies how to interpret the matrix table arguments.<br />
* Added [[Shader:send]] variants which accept a [[Data]] object.<br />
* Added 'borderellipse' and 'borderrectangle' [[ParticleSystem]] distributions.<br />
* Added variant of [[ParticleSystem:setEmissionArea]] which accepts an area angle and a flag for whether particle directions are relative to the center of the area.<br />
* Added [[love.graphics.captureScreenshot]] (replaces [[love.graphics.newScreenshot]]).<br />
* Added 'glsl3', 'instancing', 'fullnpot','pixelshaderhighp', and 'shaderderivatives' [[GraphicsFeature]]s.<br />
* Added 'anisotropy' graphics [[GraphicsLimit]].<br />
* Added 'drawcallsbatched' field to [[love.graphics.getStats]].<br />
* Added hardware [[Mesh]] instancing support via [[love.graphics.drawInstanced]] and a new [[Mesh:attachAttribute]] variant.<br />
* Added a [[Mesh:attachAttribute]] variant that takes a different target attribute name.<br />
* Added [[Mesh:detachAttribute]].<br />
* Added a variant of [[Mesh:setVertexMap]] which accepts a [[Data]] object.<br />
* Added the ability to prevent love from creating a stencil buffer for the window in [[love.conf]] and [[love.window.setMode]].<br />
* Added [[love.window.updateMode]].<br />
* Added [[love.window.isMinimized]].<br />
* Added [[love.window.restore]].<br />
* Added support for header-less DEFLATE to [[love.data.compress]]/[[love.data.decompress|decompress]].<br />
<br />
<br />
=== Renamed APIs ===<br />
All renamed APIs in 11.0 are deprecated rather than removed, until the next major release.<br />
* Renamed [[love.window.getPixelScale]] to [[love.window.getDPIScale]].<br />
* Renamed [[love.mouse.hasCursor]] to [[love.mouse.isCursorSupported]].<br />
* Renamed [[ParticleSystem:setAreaSpread]] to [[ParticleSystem:setEmissionArea]].<br />
* Renamed [[love.errhand]] to [[love.errorhandler]]. If love.errhand is defined and love.errorhandler isn't, it will continue to work.<br />
* Renamed [[Source:getChannels|Source]]/[[SoundData:getChannels|SoundData]]/[[Decoder:getChannels]] to [[Source:getChannelCount|Source]]/[[SoundData:getChannelCount|SoundData]]/[[Decoder:getChannelCount]].<br />
* Renamed [[PrismaticJoint:hasLimitsEnabled]] and [[RevoluteJoint:hasLimitsEnabled]] to [[PrismaticJoint:areLimitsEnabled]] and [[RevoluteJoint:areLimitsEnabled]].<br />
* Renamed [[love.audio.getSourceCount]] to [[love.audio.getActiveSourceCount]].<br />
* Renamed all get[Object]List functions to get[Object]s.<br />
<br />
<br />
=== Other Deprecations ===<br />
* Deprecated [[love.filesystem.exists]] / [[love.filesystem.isFile|isFile]] / [[love.filesystem.isDirectory|isDirectory]] / [[love.filesystem.isSymlink|isSymlink]] / [[love.filesystem.getLastModified|getLastModified]] / [[love.filesystem.getSize|getSize]] (use [[love.filesystem.getInfo]] instead).<br />
* Deprecated [[love.math.compress]] / [[love.math.decompress|decompress]] (use [[love.data.compress]] / [[love.data.decompress|decompress]] instead).<br />
<br />
<br />
=== Removals ===<br />
* Removed the default source type for [[love.audio.newSource]].<br />
* Removed [[Source:isStopped]] and [[Source:isPaused]]. Use [[Source:isPlaying]] instead.<br />
* Removed [[Source:rewind]]. Use [[Source:stop]] or [[Source:seek|Source:seek(0)]] instead.<br />
* Removed variant of [[love.filesystem.newFileData]] which takes base64 data, use [[love.data.decode]] instead.<br />
* Removed the no-argument variant of [[Text:set]], use [[Text:clear]] instead.<br />
* Removed [[(Image):getData|Image:getData]] and [[(Image):refresh|Image:refresh]], use [[(Image):replacePixels|Image:replacePixels]] instead.<br />
* Removed [[love.graphics.getCompressedImageFormats]], use [[love.graphics.getImageFormats]] instead.<br />
* Removed the 'void effects(...)' [[love.graphics.newShader|pixel shader entry point]]. Use the new 'void effect()' instead.<br />
* Removed [[Shader:getExternVariable]], use [[Shader:hasUniform]] instead.<br />
* Removed [[love.graphics.newScreenshot]], use [[love.graphics.captureScreenshot]] instead.<br />
* Removed deprecated [[enet]] function host:socket_get_address.<br />
* Removed functions deprecated in LÖVE 0.10.2:<br />
** Removed undocumented Shader:sendInt, Shader:sendBoolean, Shader:sentFloat, Shader:sendMatrix, and Shader:sendTexture methods (use [[Shader:send]] instead).<br />
** Removed [[love.window.isCreated]] (use [[love.window.isOpen]] instead).<br />
<br />
<br />
=== Other changes ===<br />
* Windows XP is no longer officially supported.<br />
* Changed all color values to be in the range 0-1, rather than 0-255. This affects the following functions:<br />
** [[love.graphics.setColor]], [[love.graphics.getColor]], [[love.graphics.setBackgroundColor]], and [[love.graphics.getBackgroundColor]].<br />
** [[SpriteBatch:setColor]] and [[SpriteBatch:getColor]].<br />
** [[ParticleSystem:setColors]] and [[ParticleSystem:getColors]].<br />
** [[love.graphics.clear]].<br />
** [[love.graphics.newMesh]], [[Mesh:setVertex]], and [[Mesh:getVertex]].<br />
** The colored text variants of [[love.graphics.print]], [[love.graphics.printf]], [[love.graphics.newText]], [[Text:set]], [[Text:setf]], [[Text:add]], and [[Text:addf]].<br />
** [[Shader:sendColor]].<br />
** [[love.graphics.points]].<br />
** [[ImageData:setPixel]], [[ImageData:getPixel]], and [[ImageData:mapPixel]].<br />
** [[love.math.gammaToLinear]] and [[love.math.linearToGamma]].<br />
<br />
* Changed high-dpi functionality to require much less code (often none at all) for graphics to appear at the correct sizes and positions.<br />
* Changed [[love.graphics.print]] and friends to ignore carriage returns.<br />
* Changed the 'multiply' [[BlendMode]] to error if not used with the 'premultiplied' [[BlendAlphaMode]], since the formula only works with that anyway.<br />
* Changed some [[love.graphics]], [[love.window]], and [[love.event]] APIs to cause an error if a [[Canvas]] is active.<br />
* Changed stenciling functionality with a [[Canvas]] active to require stencil=true (or a custom stencil-formatted [[Canvas]]) to be set in [[love.graphics.setCanvas]].<br />
* Changed [[Mesh:setDrawRange]] to take 'start' and 'count' parameters instead of 'min' and 'max'.<br />
* Changed the 'vsync' field of [[love.window.setMode]] and t.window in [[love.conf]]. It's now an integer with 0 disabling vsync.<br />
* Changed [[Channel]] and [[love.event.push]] table serialization to accept non-flat tables and detect cycles, cycles now cause an error rather than a stack overflow.<br />
* Changed [[Source]]s to either be playing or not playing, rather than playing, paused, or stopped. [[Source:stop]] now pauses and rewinds the Source.<br />
* Changed [[love.audio.pause|love.audio.pause()]] to return a list of [[Source]]s that have been paused by that call.<br />
* Changed [[Source]] seeking behaviour, all kinds of Sources now behave similarly when seeking past the boundaries.<br />
* Changed [[love.timer.step]] to return the calculated delta time.<br />
* Changed [[love.run]] and [[love.errorhandler]] to return a function for their main loop, which gets called until love quits.<br />
* Changed [[enet]] to no longer set the 'enet' global.<br />
* Changed [[love.keyboard.isDown]] and [[love.keyboard.isScancodeDown]] to error if an invalid enum value is given.<br />
<br />
* Updated and improved command line argument handling.<br />
* Updated the boot sequence to show an error instead of the no-game screen, if a nonexistant folder is passed in as the source game directory.<br />
* Updated 'love.exe --version' on Windows to print to the parent console.<br />
* Updated Android print rerouting and JIT compilation disabling to apply inside threads.<br />
* Updated invalid enum value error messages to show a list of the valid enum values.<br />
* Updated [[Source:seek]] to work if the [[Source]] isn't playing.<br />
* Updated [[love.math.random]] to have improved numeric distribution.<br />
* Updated [[love.graphics]] to support Core Profile OpenGL 3.3+ when available.<br />
* Updated [[Shader]]s to always expose derivative functions (dFdx, dFdy, fwidth) when available in OpenGL ES.<br />
* Updated [[Shader]]s to allow using VERTEX and PIXEL as variable names in shader code.<br />
* 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.<br />
* Updated the error message when bad values are given to [[love.graphics.line]].<br />
* Updated [[Font]] glyph generation to improve antialiasing.<br />
* Updated [[Canvas:newImageData]] to return an [[ImageData]] with a format that matches the [[Canvas]]' as closely as possible.<br />
* Updated [[love.graphics.newImage]] to treat file names ending with "@2x", "@3x", etc. as a pixel density scale factor if none is explicitly supplied.<br />
* Updated the maximum [[love.graphics]] transformation/state [[love.graphics.push|stack depth]] from 64 to 128.<br />
* Updated the default error handler to allow copying the error to the clipboard when the user decides to do so.<br />
* Updated [[love.filesystem.setRequirePath]] to support multiple template '?' characters in each path.<br />
* Updated [[socket|luasocket]] to version 3.0rc1.<br />
* Updated [[love.joystick.loadGamepadMappings]] so it doesn't error when given an empty string.<br />
* Updated [[love.joystick.setGamepadMapping]] to use the controller's name for the new mapping when possible.<br />
<br />
=== Performance Improvements ===<br />
* Improved performance when drawing [[Texture]]s, shapes, lines, and points by automatically batching their draw calls together when possible.<br />
* Improved performance of [[Shader:send]] when the Shader is not active.<br />
* Improved performance of [[love.math.randomNormal]] when LuaJIT's JIT compiler is enabled. <br />
* Improved performance of [[love.filesystem.lines]] and [[(File):lines|File:lines]], especially when reading from a file inside a zip/.love.<br />
<br />
<br />
=== Fixes ===<br />
* Fixed an error in the default [[love.errhand|error handler]] when the error message contains non UTF-8 bytes.<br />
* Fixed a memory leak when sending love [[Object]]s to threads which never load that object's module.<br />
* Fixed a memory leak in [[enet]] when peer:send fails.<br />
* Fixed os.execute always returning -1 in Linux.<br />
* Fixed the default reference angle for [[WeldJoint]], [[PrismaticJoint]], and [[RevoluteJoint]].<br />
* Fixed [[Fixture:getShape]] to reuse the existing internal [[Fixture]]-owned [[Shape]].<br />
* Fixed [[MouseJoint:setFrequency]] to error instead of crashing if a frequency of 0 is set.<br />
* Fixed [[love.system.setClipboardText]] and [[love.system.getClipboardText]] to error instead of crashing, when a window hasn't been created.<br />
* Fixed [[Joystick:getGamepadMapping]] to work with xinput controllers.<br />
* Fixed [[love.joystick.setGamepadMapping]]'s replacement code.<br />
* Fixed baseline calculation when rendering text.<br />
* Fixed [[Shader:send]] and [[Shader:sendColor]] ignoring the last argument for an array.<br />
* Fixed [[Shader Variables|VaryingTexCoords]] and [[Shader Variables|love_ScreenSize]] in shaders to be 'highp' in OpenGL ES, when supported.<br />
* Fixed a crash when [[love.graphics.pop]] is called after [[love.window.setMode]] while the transformation stack was not empty.<br />
* Fixed [[ParticleSystem:setParticleLifetime]] to error if a negative value is given.<br />
* Fixed [[love.window.isMaximized]].<br />
* Fixed [[Video]] playback to work with a wider range of Ogg Theora files.<br />
* Fixed [[Video]] seeking to be faster.<br />
* Fixed [[BezierCurve]]s to error instead of hanging in some situations.<br />
* Fixed compilation of [[socket|luasocket]] with newer luajit 2.1.0 beta versions.<br />
<br />
<br />
[[Category:Versions]]</div>Davidobothttp://love2d.org/w/index.php?title=L%C3%B6velyMoon&diff=10936LövelyMoon2013-08-04T04:50:30Z<p>Davidobot: moved lovelyMoon to LövelyMoon</p>
<hr />
<div>{{#set:LOVE Version=0.8.0}}<br />
{{#set:Description=Easily handle gamestates with this library!}}<br />
Main forum topic: https://love2d.org/forums/viewtopic.php?f=5&t=38702<br />
<br />
LövelyMoon is a library that adds a very neat way of handling gamestates, in fact, it is made to make your game focus on gamestates and such.<br />
[[Category:Libraries]]</div>Davidobothttp://love2d.org/w/index.php?title=lovelyMoon&diff=10937lovelyMoon2013-08-04T04:50:30Z<p>Davidobot: moved lovelyMoon to LövelyMoon</p>
<hr />
<div>#REDIRECT [[LövelyMoon]]</div>Davidobothttp://love2d.org/w/index.php?title=L%C3%B6velyMoon&diff=10934LövelyMoon2013-08-02T06:03:58Z<p>Davidobot: </p>
<hr />
<div>{{#set:LOVE Version=0.8.0}}<br />
{{#set:Description=Easily handle gamestates with this library!}}<br />
Main forum topic: https://love2d.org/forums/viewtopic.php?f=5&t=38702<br />
<br />
LövelyMoon is a library that adds a very neat way of handling gamestates, in fact, it is made to make your game focus on gamestates and such.<br />
[[Category:Libraries]]</div>Davidobothttp://love2d.org/w/index.php?title=L%C3%B6velyMoon&diff=10930LövelyMoon2013-08-01T18:15:10Z<p>Davidobot: </p>
<hr />
<div>{{#set:LOVE Version=0.8.0}}<br />
{{#set:Description=Easily handle gamestates with this library!.}}<br />
Main forum topic: https://love2d.org/forums/viewtopic.php?f=5&t=38702<br />
<br />
LövelyMoon is a library that adds a very neat way of handling gamestates, in fact, it is made to make your game focus on gamestates and such.<br />
[[Category:Libraries]]</div>Davidobothttp://love2d.org/w/index.php?title=L%C3%B6velyMoon&diff=10929LövelyMoon2013-08-01T18:12:53Z<p>Davidobot: Created page with "{{#set:LOVE Version=0.8.0}} {{#set:Description=Easily handle gamestates with this library!.}} Main forum topic: https://love2d.org/forums/viewtopic.php?f=5&t=38702 [[Category:Li..."</p>
<hr />
<div>{{#set:LOVE Version=0.8.0}}<br />
{{#set:Description=Easily handle gamestates with this library!.}}<br />
Main forum topic: https://love2d.org/forums/viewtopic.php?f=5&t=38702<br />
<br />
[[Category:Libraries]]</div>Davidobot