Difference between revisions of "0.9.0"

m
m (category)
 
(41 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{notice|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.}}
+
[[File:0.9.0_no-game.png|thumb|no-game screen]]
The codename for LÖVE 0.9.0 is '''undetermined'''. It is currently '''<span style="color:#ff0000;">not released</span>'''.
+
 
 +
The codename for LÖVE 0.9.0 is '''Baby Inspector'''. It is currently '''<span style="color:#0000ff;">released</span>'''.
 +
 
 +
== Major changes from [[0.8.0]] ==
 +
* Added three new modules: [[love.window]], [[love.math]], and [[love.system]].
 +
* Reworked the [[love.joystick]] and [[love.thread]] modules.
 +
* Added new features to love.graphics, including [[Mesh|polygon meshes]] and [[Shader|vertex shaders]].
 +
* Integrated the [http://enet.bespin.org ENet] networking library via [http://leafo.net/lua-enet/ lua-enet].
 +
* Renamed many functions to be more consistent with the rest of the API.
 +
* Improved the performance of several APIs in [[love.graphics]].
 +
* And a '''lot''' more!
  
== Changes from [[0.8.0]] ==
+
== All changes from [[0.8.0]] ==
 
=== Additions ===
 
=== Additions ===
 +
* Added better multiplayer networking support with [http://enet.bespin.org ENet] (via the [http://leafo.net/lua-enet/ lua-enet] library.)
 
* Added --fused command line argument, to simulate fusing.
 
* Added --fused command line argument, to simulate fusing.
 
* Added liblove.
 
* Added liblove.
 
* Added the ability to have exit values.
 
* Added the ability to have exit values.
 
* Added exit value of 1 in case of error by default.
 
* Added exit value of 1 in case of error by default.
* Added love.joystick.reload.
+
* Added basic support for the file:// URI scheme.
* Added basic support for the file:// uri scheme.
+
* Added [[love.timer.getAverageDelta]].
* Added love.mouse.setX/setY.
+
* Added [[Data:getString]].
* Added love.filesystem.getIdentity.
+
* Added [[Contact:getChildren]].
* Added HDR canvas support.
+
 
* Added Source:isPlaying.
+
* Added [[love.filesystem.isFused]].
* Added mipmapping support (has isSupported test).
+
* Added [[love.filesystem.getIdentity]].
* Added Font:getAscent/getDescent/getBaseline.
+
* Added [[love.filesystem.append]].
* Added Font:setFilter/getFilter.
+
* Added [[love.filesystem.getSize]].
* Added Canvas:getPixel.
+
* Added [[love.filesystem.mount]] and [[love.filesystem.unmount]].
* Added vertex shader support.
+
* Added an optional file search order parameter to [[love.filesystem.setIdentity]].
* Added boolean support to Shader:send.
+
* Added [[(File):isOpen|File:isOpen]] and [[(File):getMode|File:getMode]].
* Added support for UTF-8 ImageFonts.
+
* Added [[(File):setBuffer|File:setBuffer]], [[(File):getBuffer|File:getBuffer]], and [[(File):flush|File:flush]].
* Added SoundData:getDuration.
+
 
* Added new Channels api for love.thread.
+
* Added [[love.textinput|textinput]] event for unicode text input.
* Added Thread:getError.
+
* Added [[love.keyboard.setTextInput]] and [[love.keyboard.hasTextInput]].
* Added flags to setMode.
+
 
 +
* Added previously internal [[Rasterizer]] and [[GlyphData]] methods.
 +
* Added support for UTF-8 Image [[Font]]s.
 +
* Added [[Font:getAscent]], [[Font:getDescent]], and [[Font:getBaseline]].
 +
* Added [[Font:setFilter]] and [[Font:getFilter]].
 +
* Added [[Font:hasGlyphs]].
 +
 
 +
* Added angle, scale, and shear parameters to [[love.graphics.printf]].
 +
* Added support for [[TextureMode|high dynamic range]] (HDR) Canvases.
 +
* Added mipmapping support to [[Image]]s (has [[love.graphics.isSupported]] test).
 +
* Added [[Shader|vertex shader]] support.
 +
* Added boolean support to [[Shader:send]].
 +
* Added [[Canvas:getPixel]].
 +
* Added [[BlendMode]] "replace".
 +
* Added [[LineJoin]] modes.
 +
* Added [[Mesh]] objects, allowing for arbitrary textured polygons.
 +
* Added multiple render target support to [[love.graphics.setCanvas]].
 +
* Added [[love.graphics.setColorMask]].
 +
* Added [[love.graphics.origin]].
 +
* Added [[love.graphics.getRendererInfo]].
 +
* Added [[love.graphics.getMaxImageSize]].
 +
* Added [[SpriteBatch:getCount]] and [[SpriteBatch:getBufferSize]].
 +
* Added [[SpriteBatch:getColor]].
 +
* Added [[ParticleSystem:emit]].
 +
* Added [[ParticleSystem:setInsertMode]].
 +
* Added [[ParticleSystem:setAreaSpread]].
 +
* Added [[ParticleSystem:isPaused]] and [[ParticleSystem:isStopped]].
 +
* Added many [[ParticleSystem]] getter methods.
 +
* Added DXT compressed texture support to [[Image]]s via [[love.image.newCompressedData]].
 +
* Added [[love.image.isCompressed]] and [[(Image):isCompressed|Image:isCompressed]].
 +
* Added [[(Image):getDimensions|Image:getDimensions]], [[Canvas:getDimensions]], and [[ImageData:getDimensions]].
 +
* Added anisotropic filtering support for [[Image]]s, [[Canvas]]es, and [[Font]]s.
 +
* Added [[(Image):refresh|Image:refresh]].
 +
* Added [[(Image):getData|Image:getData]].
 +
 
 +
* Added [[love.math]] module.
 +
* Added a platform-independent (good) random implementation to [[love.math]].
 +
* Added [[RandomGenerator]] objects.
 +
* Added [[BezierCurve]] objects.
 +
* Added [[love.math.triangulate]] and [[love.math.isConvex]].
 +
* Added [[love.math.noise]].
 +
 
 +
* Added [[love.system]] module.
 +
* Added [[love.system.getClipboardText]] and [[love.system.setClipboardText]].
 +
* Added [[love.system.getOS]] and [[love.system.getProcessorCount]].
 +
 
 +
* Added [[love.window]] module.
 +
* Added [[love.window.isVisible]].
 +
* Added flags to [[love.window.setMode]].
 +
* Added monitor choosing support to love.window.setMode.
 
* Added support for resizable, borderless, and non-centered windows.
 
* Added support for resizable, borderless, and non-centered windows.
* Added resize event.
+
* Added support for [[FullscreenType|"fullscreen-desktop"]] mode.
* Added love.math module.
+
* Added window [[love.resize|resize]] and [[love.visible|visible]] events.
* Added a platform-independent (good) random implementation to love.math.
+
* Added [[love.window.getIcon]].
* Added love.math.triangulate.
+
* Added t.window.icon to [[love.conf]].
* Added blend mode "none".
+
 
* Added SpriteBatch:isEmpty and SpriteBatch:isFull.
+
* Added [[SoundData:getDuration]] and [[SoundData:getSampleCount]].
* Added support for extern Images in Shaders when drawing graphics primitives.
+
* Added [[Source:isPlaying]].
* Added love.timer.getAverageDelta.
+
* Added [[Source:setRelative]] and [[Source:isRelative]].
* Added love.joystickaxis/ball/hat event callbacks.
+
* Added [[Source:setCone]] and [[Source:getCone]].
* Added ParticleSystem:setQuads.
+
* Added [[Source:getChannels]].
* Added love.graphics.getDimensions and Image/Canvas/ImageData:getDimensions.
+
 
* Added love.filesystem.append.
+
* Added new [[Channel]]s API for [[love.thread]].
* Added love.filesystem.getSize.
+
* Added limited table support to [[Channel:push]].
* Added angle, scale, and shear parameters to love.graphics.printf.
+
* Added [[Thread:getError]].
* Added anisotropic filtering support for Images, Canvases, and Fonts.
+
* Added [[Thread:isRunning]].
* Added love.graphics.setCanvases.
+
* Added [[love.threaderror|threaderror]] event.
* Added ParticleSystem:emit.
+
 
* Added love.graphics.setColorMask.
+
* Added [[love.mousefocus]] and [[love.window.hasMouseFocus]].
* OPTIONAL: Added support for GME.
+
* Added custom [[Cursor|hardware cursor]] support via [[love.mouse.newCursor]].
 +
* Added [[love.mouse.setX]] and [[love.mouse.setY]].
 +
 
 +
* Added [[Joystick]] objects.
 +
* Added joystick [[love.joystickadded|add]] and [[love.joystickremoved|remove]] events.
 +
* Added joystick [[love.joystickaxis|axis]] and [[love.joystickhat|hat]] move events.
 +
* Added unified [[Joystick:isGamepadDown|Gamepad API]] for joysticks which have a similar layout to the Xbox controller.
 +
* Added joystick [[Joystick:setVibration|vibration]] support.
 +
 
 +
=== Removals ===
 +
* Removed release mode (but Fused mode is still there.)
 +
* Removed [[love.keyboard.getKeyRepeat]] (see [[love.keyboard.hasKeyRepeat]]).
 +
* Removed the unicode argument from [[love.keypressed]] (see [[love.textinput]]).
  
=== Bugfixes ===
+
* Removed love.graphics.drawTest.
 +
* Removed [[love.graphics.quad]] and [[love.graphics.triangle]].
 +
* Removed [[ColorMode]]s and [[love.graphics.setColorMode]].
 +
* Removed [[love.graphics.newStencil]].
 +
* Removed [[love.graphics.setLine]] and [[love.graphics.setPoint]].
 +
* Removed [[love.graphics.drawq]] (functionality is merged into [[love.graphics.draw]]).
 +
* Removed [[SpriteBatch:addq]] and [[SpriteBatch:setq]] (functionality is merged into [[SpriteBatch:add]] and [[SpriteBatch:set]]).
 +
* Removed [[Quad:flip]].
 +
* Removed [[ParticleSystem:isFull]] and [[ParticleSystem:isEmpty]].
 +
* Removed [[ParticleSystem:getX]] and [[ParticleSystem:getY]].
 +
* Removed [[love.graphics.checkMode]].
 +
 
 +
* Removed [[love.joystick]] module functions which operated on individual joysticks (see [[Joystick]] objects).
 +
* Removed [[love.joystick.getNumBalls|joystick ball]] support.
 +
* Removed thread names.
 +
* Removed old thread messaging API (see [[Channel]]s).
 +
* Removed [[love.timer.getMicroTime]].
 +
 
 +
=== Renamed APIs ===
 +
* Renamed love's boot script to 'love.boot', which can be required.
 +
* Renamed [[love.filesystem.mkdir]] to [[love.filesystem.createDirectory]].
 +
* Renamed [[love.filesystem.enumerate]] to [[love.filesystem.getDirectoryItems]].
 +
* Renamed [[World:setAllowSleeping]] and [[World:getAllowSleeping]] to [[World:setSleepingAllowed]] and [[World:isSleepingAllowed]].
 +
* Renamed [[ChainShape:setPrevVertex]] to [[ChainShape:setPreviousVertex]].
 +
* Renamed Joint:enableMotor to Joint:setMotorEnabled.
 +
* Renamed Joint:enableLimit and Joint:isLimitEnabled to Joint:setLimitsEnabled and Joint:hasLimitsEnabled.
 +
* Renamed t.screen to t.window in [[love.conf]].
 +
* Renamed [[love.graphics.setCaption]] to [[love.window.setTitle]].
 +
* Renamed [[PixelEffect]] to [[Shader]] (but now with vertex shaders).
 +
* Renamed [[love.graphics.setDefaultImageFilter]] to [[love.graphics.setDefaultFilter]].
 +
* Renamed [[ParticleSystem:setSprite]] to [[ParticleSystem:setImage]].
 +
* Renamed [[ParticleSystem:setGravity]] to [[ParticleSystem:setLinearAcceleration]].
 +
* Renamed [[ParticleSystem:setLifetime]] and [[ParticleSystem:setParticleLife]] to [[ParticleSystem:setEmitterLifetime]] and [[ParticleSystem:setParticleLifetime]].
 +
* Renamed [[ParticleSystem:count]] and all getNum* functions to get*Count.
 +
* Renamed [[SoundData:getBits]] and [[Decoder:getBits]] to [[SoundData:getBitDepth]] and [[Decoder:getBitDepth]].
 +
* Renamed [[Source:setDistance]] and [[Source:getDistance]] to [[Source:setAttenuationDistances]] and [[Source:getAttenuationDistances]].
 +
* Renamed [[love.mouse.setGrab]] to [[love.mouse.setGrabbed]].
 +
 
 +
=== Fixes ===
 +
* Fixed fused mode in OS X.
 +
* Fixed printing to the console in Windows before [[love.load]] is called.
 +
* Fixed the default [[love.run]] to not include the time taken by [[love.load]] in the first frame's dt calculation.
 +
* Fixed the error screen not always appearing until the next input event.
 +
* Fixed [[love.event.clear]].
 +
* Fixed [[love.mouse.setPosition]] when called in [[love.load]].
 +
 
 +
* Fixed scaling in several [[love.physics]] functions.
 +
* Fixed Box2D exception in [[World:update]].
 +
* Fixed many uncaught Box2D / [[love.physics]] exceptions for [[Body|Bodies]] and [[Joint]]s.
 +
* Fixed [[ChainShape:getPoints]] running out of Lua stack space and crashing.
 +
 
 +
* Fixed [[(File):read|File:read]] reading past end of file.
 +
* Fixed [[love.filesystem.setIdentity]] not removing read access from old directories.
 +
 
 +
* Fixed possible memory leak in UTF-8 decoder.
 +
* Fixed spacing for the last character in an Image [[Font]].
 +
* Fixed line wrapping in [[love.graphics.printf]].
 +
* Fixed [[love.graphics.printf]] to error if the wrap limit is negative.
 +
* Fixed [[love.graphics.print]] truncating strings with embedded zeros.
 
* Fixed crashes with font drawing on some ATI cards.
 
* Fixed crashes with font drawing on some ATI cards.
* Fixed scaling in several love.physics functions.
 
 
* Fixed artifacts when drawing lines at huge scale.
 
* Fixed artifacts when drawing lines at huge scale.
* Fixed Fonts and Canvases ignoring default image filter.
+
* Fixed [[Font]]s and [[Canvas]]es ignoring default image filter.
* Fixed getMode and friends returning wrong values when using desktop size.
+
* Fixed [[love.graphics.getLineWidth]] returning incorrect values.
 +
* Fixed [[love.graphics.getColor]] on some Windows systems.
 +
* Fixed alpha [[BlendMode]].
 +
* Fixed multiplicative [[BlendMode]].
 +
* Fixed [[love.graphics.getPointStyle]].
 +
* Fixed line numbers in [[Shader]] errors.
 +
* Fixed [[Shader:send]] with Images and Canvases failing sometimes.
 +
* Fixed [[Shader:send]] to keep a reference to sent Images and Canvases.
 +
* Fixed crash when binding [[SpriteBatch]]es multiple times.
 +
* Fixed [[SpriteBatch]]es with more than 16,384 sprites.
 +
* Fixed draw order for [[ParticleSystem]]s.
 +
* Fixed [[ParticleSystem:setSizes]] resetting the size variation.
 +
 
 +
* Fixed [[love.window.getMode]] and friends returning wrong values when using desktop size.
 +
* Fixed keyrepeat settings being lost after (indirect) [[love.window.setMode]].
 +
* Fixed the icon being reset after [[love.window.setMode]].
 +
 
 
* Fixed memory leak in the mp3 decoder.
 
* Fixed memory leak in the mp3 decoder.
 
* Fixed sound issues with some versions of OpenAL soft, by enabling direct channels.
 
* Fixed sound issues with some versions of OpenAL soft, by enabling direct channels.
 
* Fixed 'random' hangs in audio.
 
* Fixed 'random' hangs in audio.
* Fixed love.graphics.getLineWidth returning incorrect values.
+
* Fixed case (in)sensitivity of sound file extension parsing.
* Fixed possible memory leak in utf-8 decoder.
+
* Fixed looping support in tracker music formats.
* Fixed love.sound.newDecoder not accepting FileData.
+
* Fixed skipping/looping issues when playing streaming audio [[Source]]s.
* Fixed multiplicative blend mode.
+
* Fixed a race condition in [[Source:play]].
* Fixed Box2D exception in World:update.
+
* Fixed WAVE sound playback.
* Fixed spacing for the last character in an ImageFont.
 
* Fixed crash when binding SpriteBatches multiple times.
 
* Fixed File:read reading past end of file.
 
* Fixed keyrepeat settings being lost after (indirect) setMode.
 
* Fixed alpha blend mode.
 
* Fixed Shader:send with Images and Canvases failing sometimes.
 
* Fixed love.graphics.getPointStyle.
 
* Fixed line numbers in shader errors.
 
* Fixed line wrapping in love.graphics.printf.
 
* Fixed fused release mode in OS X.
 
  
 
=== Other Changes ===
 
=== Other Changes ===
 
* Moved love's startup to modules/love.
 
* Moved love's startup to modules/love.
 +
* Moved window-related functions from [[love.graphics]] to [[love.window]].
  
* Renamed love's boot script to 'love.boot', which can be required.
+
* Updated functions which return LOVE objects to re-use the Lua-side object instead of always recreating it.
* Renamed PixelEffect to Shader (but now with vertex shaders).
 
* Renamed love.graphics.setDefaultImageFilter to love.graphics.setDefaultFilter.
 
  
* Updated allocation for SoundData, it's more efficient and less wasteful.
 
* Updated Source:set* functions to default z to 0.
 
 
* Updated the windows console, it now tries to re-use an active one first.
 
* Updated the windows console, it now tries to re-use an active one first.
* Updated love.image memory handling, improves errors and thread-safety.
+
* Updated error handling, error handlers now get resolved when the error occurs.
* Updated order of sleep/present in love.run (now draws, *then* sleeps).
+
* Updated order of sleep/present in [[love.run]] (now draws, *then* sleeps).
 +
 
 +
* Updated [[love.keyboard.setKeyRepeat]] to take a boolean argument instead of numbers.
 +
* Updated [[love.keypressed]]'s second argument to indicate whether the keypress is a repeat.
 +
* Updated keyboard [[KeyConstant|key constants]] with some modern keyboard keys.
 +
 
 +
* Updated love.filesystem to try to create the appdata directory if it doesn't exist yet.
 +
* Updated the default filesystem identity to omit file extension.
 +
* Updated [[love.filesystem.newFile]] to optionally open the file.
 +
* Updated most [[love.filesystem]] functions to return nil, error on internal failure.
 +
 
 +
* Updated [[love.graphics.print]]'s x and y arguments to default to 0.
 
* Updated the setFilter and setWrap methods, the second argument is now optional.
 
* Updated the setFilter and setWrap methods, the second argument is now optional.
* Updated Font and ParticleSystem rendering code, now more performant.
+
* Updated [[Font]] and [[ParticleSystem]] rendering code, now more performant.
* Updated error handling, error handlers now get resolved when the error occurs.
+
* Updated [[SpriteBatch]] code, now more performant when adding/setting and (un)binding.
* Updated SpriteBatch code, now more performant when (un)binding.
+
* Updated [[Canvas]] code to support more systems.
* Updated Image creation code to error when creation fails.
+
* Updated [[Canvas:getImageData]] and [[love.graphics.newScreenshot]] to be more efficient.
* Updated Canvas code to support more systems.
+
* Updated [[love.graphics.newScreenshot]] to create a fully opaque image by default.
* Updated love.timer.getFPS to be microsecond-accurate.
+
* Updated error messages when sending bad values to [[Shader]]s.
* Updated love.graphics.newScreenshot to create a fully opaque image by default.
+
* Updated [[love.graphics.newParticleSystem]] to have a default buffer size of 1000.
* Updated ImageData:setPixel's alpha parameter to default to 255.
+
 
 +
* Updated [[love.image.newImageData]] and [[love.graphics.newImage]] to accept [[FileData]].
 +
* Updated [[ImageData:setPixel]] to accept a table and default to 255 alpha.
 +
* Updated [[ImageData:mapPixel]], is now more efficient and now accepts optional x,y,w,h arguments.
 +
* Updated [[love.image]] memory handling, improves errors and thread-safety.
 +
 
 +
* Updated [[love.audio.newSource]], [[love.sound.newDecoder]], and [[love.sound.newSoundData]] to accept [[FileData]].
 +
* Updated allocation for [[SoundData]], it's more efficient and less wasteful.
 +
* Updated [[SoundData:setSample]] and [[SoundData:getSample]] to error for invalid samples.
 +
* Updated Source:set* functions to default z to 0.
 +
* Updated [[Source:seek]] to error for negative offsets.
 +
 
 +
* Updated [[Thread:start]] to accept arguments. The arguments are available in the thread via '''...''' (the vararg expression.)
 +
 
 +
* Updated [[love.timer.getFPS]] to be microsecond-accurate.
 +
* Updated [[love.timer.getTime]] to be microsecond-accurate and monotonic.
  
=== Removals ===
+
* Updated Box2D to version 2.3.
* Removed love.joystick.open and friends.
 
* Removed love.graphics.drawTest.
 
* Removed thread names.
 
* Removed old thread messaging api (see Channels).
 
* Removed love.graphics.quad/triangle.
 
* Removed ColorMode functions.
 
  
[[File:0.9.0_no-game.png|thumb|no-game screen]]
+
[[Category:Versions]]

Latest revision as of 17:14, 10 May 2015

no-game screen

The codename for LÖVE 0.9.0 is Baby Inspector. It is currently released.

Major changes from 0.8.0

All changes from 0.8.0

Additions

  • Added better multiplayer networking support with ENet (via the lua-enet library.)
  • Added --fused command line argument, to simulate fusing.
  • Added liblove.
  • Added the ability to have exit values.
  • Added exit value of 1 in case of error by default.
  • Added basic support for the file:// URI scheme.
  • Added love.timer.getAverageDelta.
  • Added Data:getString.
  • Added Contact:getChildren.
  • Added Joystick objects.
  • Added joystick add and remove events.
  • Added joystick axis and hat move events.
  • Added unified Gamepad API for joysticks which have a similar layout to the Xbox controller.
  • Added joystick vibration support.

Removals

Renamed APIs

Fixes

  • Fixed memory leak in the mp3 decoder.
  • Fixed sound issues with some versions of OpenAL soft, by enabling direct channels.
  • Fixed 'random' hangs in audio.
  • Fixed case (in)sensitivity of sound file extension parsing.
  • Fixed looping support in tracker music formats.
  • Fixed skipping/looping issues when playing streaming audio Sources.
  • Fixed a race condition in Source:play.
  • Fixed WAVE sound playback.

Other Changes

  • Updated functions which return LOVE objects to re-use the Lua-side object instead of always recreating it.
  • Updated the windows console, it now tries to re-use an active one first.
  • Updated error handling, error handlers now get resolved when the error occurs.
  • Updated order of sleep/present in love.run (now draws, *then* sleeps).
  • Updated love.filesystem to try to create the appdata directory if it doesn't exist yet.
  • Updated the default filesystem identity to omit file extension.
  • Updated love.filesystem.newFile to optionally open the file.
  • Updated most love.filesystem functions to return nil, error on internal failure.
  • Updated Thread:start to accept arguments. The arguments are available in the thread via ... (the vararg expression.)
  • Updated Box2D to version 2.3.