New release 0.10.1

This commit is contained in:
Martin Felis
2016-02-14 00:30:02 +01:00
parent 7aaeb1485e
commit 7459285690
36 changed files with 761 additions and 209 deletions
+240 -4
View File
@@ -1,60 +1,296 @@
LOVE 0.10.1 [Super Toast]
-------------------------
Released: N/A
* Added a new love.conf flag t.externalstorage, which determines whether files are saved in internal or external storage on Android devices.
* Added a new variant of love.graphics.arc which can draw different types of arcs ("pie", "open", or "closed").
* Added "lighten" and "darken" BlendModes. They can only be used with the "premultiplied" BlendAlphaMode.
* Added the "lighten" GraphicsFeature constant.
* Added the ability to avoid clearing specific Canvases when calling love.graphics.clear, if multiple Canvases are active at once via love.graphics.setCanvas.
* Added Text:getDimensions.
* Added optional "collideconnected" argument to love.physics.newMotorJoint.
* Fixed a Lua error in the no-game screen if the window's height is too small.
* Fixed the default error handler to reset the mouse Cursor.
* Fixed love.filesystem functions crashing when called if liblove is used directly without calling love.filesystem.init.
* Fixed audio on Android to pause when the app is inactive, and resume when the app becomes active again.
* Fixed the Video decoding thread hanging after Video:seek or when a Video finishes.
* Fixed Video:isPlaying to always return false after it finishes playing.
* Fixed RandomGenerator:random crashing if a nil 'self' is used.
* Fixed loading BMFont files which have characters with 0 width or height (a space character, for example).
* Fixed love.graphics.newFont causing crashes if FileData is passed in.
* Fixed a driver bug on some Android devices which caused all objects to show up as black.
* Fixed a driver bug on Windows with AMD graphics cards where love.graphics.clear would not always work.
* Fixed Shader:sendColor incorrectly converting alpha values from sRGB to linear RGB when gamma-correct rendering is enabled.
* Fixed love.graphics.newMesh(vertices) double-converting colors from sRGB to linear RGB when gamma-correct rendering is enabled.
* Fixed love.graphics.new* crashing when there is no graphics context/window.
* Updated the Windows executable to prefer the high-powered AMD graphics card on systems which have switchable Intel+AMD GPUs.
* Updated love.touch.getTouches to return the list of IDs in the relative order that the touches initially happened, instead of being in a random order.
* Updated the error messages caused by invalid or bad arguments to ImageData and SoundData methods to be more descriptive.
LOVE 0.10.0 [Super Toast]
-------------------------
Released: 2015-12-22
* Added an iOS port.
* Added an Android port.
* Added the flag t.accelerometerjoystick to love.conf. Disables accelerometer-as-joystick functionality on mobile devices when false.
* Added the flag t.gammacorrect to love.conf (replaces t.window.srgb.) Enabling it globally enables gamma-correct rendering, when supported.
* Added video playback support for Ogg Theora videos, via love.graphics.newVideo and Video objects.
* Added love.video module. It is not used for displaying videos on-screen, only decoding them.
* Added love.touch module. Note that it has important differences from the touch implementation in the LÖVE 0.9 Android and iOS ports.
* Added love.touchpressed, love.touchreleased, and love.touchmoved.
* Added love.system.vibrate.
* Added love.filesystem.setRequirePath and love.filesystem.getRequirePath.
* Added an optional program exit argument to love.event.quit.
* Added love.filedropped and love.directorydropped event callback functions.
* Added love.lowmemory event callback function, called when the app is running out of memory on mobile operating systems.
* Added love.textedited event callback function, called when the user is compositing text (e.g. via an IME.)
* Added love.wheelmoved event callback function (replaces "wu" and "wd" constants for love.mousepressed.)
* Added love.mouse.hasCursor.
* Added a boolean argument to love.mousepressed and love.mousereleased indicating whether the button event originated from a touch press.
* Added optional x/y/width/height arguments to love.keyboard.setTextInput. They tell the system where text will show up so on-screen keyboards can avoid that area.
* Added Source:getType (replaces Source:isStatic.)
* Added Source:getDuration and Decoder:getDuration.
* Added an optional string argument containing raw pixel byte data to the width/height variant of love.image.newImageData.
* Added love.graphics.ellipse.
* Added rounded-rectangle support to love.graphics.rectangle.
* Added love.graphics.points (replaces love.graphics.point.)
* Added love.graphics.intersectScissor.
* Added an optional argument to love.graphics.setBlendMode which indicates whether to treat the colors of drawn objects as having pre-multiplied alpha.
* Added love.graphics.getSupported (replaces love.graphics.isSupported.)
* Added love.graphics.getSystemLimits (replaces love.graphics.getSystemLimit.)
* Added love.graphics.stencil and love.graphics.set/getStencilTest (replaces love.graphics.setStencil.)
* Added love.graphics.isActive.
* Added color arguments to love.graphics.clear. It no longer always uses the background color value.
* Added love.graphics.discard.
* Added love.graphics.isGammaCorrect.
* Added the "clampzero" WrapMode.
* Added the ability to specify custom mipmaps when creating an image, via love.graphics.newImage(filename, {mipmaps={mip1, mip2, ...}})
* Added optional x/y/width/height arguments to Image:refresh and Canvas:newImageData.
* Added Image:getFlags.
* Added one- and two-channel Canvas formats: r8, rg8, r16f, rg16f, r32f, and rg32f.
* Added support for different formats in each Canvas when using multi-canvas rendering. Added the "multicanvasformats" Graphics Feature constant.
* Added support for OpenGL ES 2 and 3.
* Added support for loading ETC, EAC, PVRTC, and ASTC compressed textures on systems that support them.
* Added custom vertex attribute support for Meshes via new variants of love.graphics.newMesh.
* Added Mesh:setVertexAttribute and Mesh:getVertexAttribute.
* Added Mesh:getVertexFormat.
* Added Mesh:flush.
* Added an optional 'startvertex' argument to Mesh:setVertices.
* Added the ability for love.graphics.newMesh and Mesh:setVertices to accept a Data object.
* Added Mesh:setAttributeEnabled and Mesh:isAttributeEnabled.
* Added Mesh:attachAttribute.
* Added SpriteBatch:attachAttribute.
* Added Shader:sendColor.
* Added new shader functions: gammaCorrectColor, gammaToLinear, and linearToGamma. The functions also have 'precise' and 'fast' variants.
* Added Text objects and love.graphics.newText.
* Added per-character color support to love.graphics.print/printf and to Text objects.
* Added BMFont bitmap font file support to love.graphics.newFont and love.font.
* Added kerning support for TrueType/OpenType and BMFont Fonts.
* Added an optional font hinting argument to love.graphics.newFont when loading TrueType fonts.
* Added an optional spacing argument to love.graphics.newImageFont, which applies additional spacing to all rendered glyphs.
* Added Font:setFallbacks.
* Added love.window.maximize.
* Added love.window.close.
* Added love.window.requestAttention.
* Added love.window.setDisplaySleepEnabled and love.window.isDisplaySleepEnabled.
* Added BezierCurve:renderSegment and BezierCurve:removeControlPoint.
* Added BezierCurve:getSegment.
* Added love.math.compress and love.math.decompress.
* Added Channel:performAtomic.
* Changed love.mousepressed, love.mousereleased, and love.mouse.isDown to use button numbers instead of named button constants.
* Changed love.keypressed to be love.keypressed(key, scancode, isrepeat).
* Changed love.keyreleased to be love.keyreleased(key, scancode).
* Changed Font:getWrap's second return value to be a table containing the text split into lines.
* Changed love.graphics.newImage's optional second argument to be a table of flags (flags are "mipmaps" and "linear".)
* Changed the arguments for the standard variants of love.graphics.newMesh to newMesh(vertices [, drawmode, usage]) and newMesh(vertexcount [, drawmode, usage]).
* Changed ImageData:encode to return a FileData object. ImageData:encode's first parameter is now the format to encode to, and the second parameter is an optional filename to write to.
* Renamed the "normal" Fullscreen Type to "exclusive".
* Renamed the DistanceModel constants "inverse clamped", "linear clamped", and "exponent clamped" to "inverseclamped", "linearclamped", and "exponentclamped".
* Renamed the "additive", "subtractive", and "multiplicative" BlendModes to "add", "subtract", and "multiply".
* Renamed the KeyConstant and Scancode representing the spacebar from " " to "space".
* Renamed File:eof to File:isEOF.
* Renamed Canvas:getImageData to Canvas:newImageData.
* Renamed love.image's CompressedData type to CompressedImageData.
* Removed callback variant of love.filesystem.getDirectoryItems.
* Removed the "wu" and "wd" constants for love.mousepressed (replaced by love.wheelmoved.)
* Removed the named mouse button constants (replaced by button numbers.)
* Removed Source:isStatic (replaced by Source:getType.)
* Removed image loading support for all (non-compressed texture) file formats except for PNG, JPEG, TGA, and BMP.
* Removed JPEG encoding support from ImageData:encode.
* Removed love.graphics.point (replaced by love.graphics.points.)
* Removed love.graphics.setPointStyle and love.graphics.getPointStyle.
* Removed love.graphics.isSupported (replaced by love.graphics.getSupported.)
* Removed love.graphics.getSystemLimit (replaced by love.graphics.getSystemLimits.)
* Removed love.graphics.setStencil (replaced by love.graphics.stencil and love.graphics.setStencilTest.)
* Removed the "canvas", "shader", "npot", "subtractive", and "mipmap" Graphics Feature constants (the features always have guaranteed support now.)
* Removed the "multicanvas" Graphics Feature constant (use love.graphics.getSystemLimits instead.)
* Removed the "srgb" Graphics Feature constant (use love.graphics.isGammaCorrect() or love.graphics.getCanvasFormats().srgb instead.)
* Removed the "srgb" flag in love.window.setMode and in the t.window table in love.conf (Replaced by t.gammacorrect.)
* Removed the "premultiplied" blend mode (love.graphics.setBlendMode("alpha", "premultiplied") now does the same thing.)
* Removed Canvas:getPixel (use Canvas:newImageData instead.)
* Removed Canvas:clear (use love.graphics.clear instead.)
* Removed Mesh:getVertices.
* Removed Mesh:setVertexColors and Mesh:hasVertexColors (use Mesh:setAttributeEnabled("VertexColor", enable) instead.)
* Removed functions deprecated in LOVE 0.9.1 and 0.9.2:
* Removed love.graphics.getMaxImageSize and love.graphics.getMaxPointSize (replaced by love.graphics.getSystemLimits.)
* Removed Mesh:set/getImage, SpriteBatch:set/getImage, and ParticleSystem:set/getImage (replaced by set/getTexture.)
* Removed SpriteBatch:bind/unbind.
* Removed Canvas:getFSAA and the "fsaa" flag in love.conf and love.window.setMode (replaced by Canvas:getMSAA and "msaa".)
* Removed the "dxt" and "bc5" Graphics Feature constant (replaced by love.graphics.getCompressedImageFormats.)
* Removed the "hdrcanvas" Graphics Feature constant (replaced by love.graphics.getCanvasFormats.)
* Removed love.window.getWidth/getHeight/getDimensions (use love.graphics.getWidth/getHeight/getDimensions or love.window.getMode instead.)
* Fixed utf8.char.
* Fixed detection of fused love games.
* Fixed World:getCallbacks and World:getContactFilter when used in coroutines.
* Fixed crashes when objects which store Lua callback functions are garbage collected after being used in coroutines.
* Fixed memory leaks in love.physics if World:destroy is never called. When a World is GCed it now destroys all objects it owns.
* Fixed love.keyboard.getKeyFromScancode crashing when an invalid scancode is given.
* Fixed decoding of 8-bit WAV files.
* Fixed a crash issue when rewinding streaming ogg Sources, when certain versions of libvorbis are used.
* Fixed love.audio.stop() not rewinding streaming Sources.
* Fixed the stencil buffer in Canvases when an unsupported MSAA value is used to create the Canvas.
* Fixed Canvas:renderTo to restore the previous Canvas if an error occurs in the passed function.
* Fixed love.graphics.draw(canvas) to cause an error if that Canvas is the active one.
* Fixed Mesh:getVertexMap to return nil rather than an empty table, if no vertex map has been set.
* Fixed love.graphics.getColorMask.
* Fixed the default offset for particles when ParticleSystem:setQuads or ParticleSystem:setTexture is used.
* Fixed love.graphics.shear resetting all love.graphics transformations.
* Fixed the "add" and "subtract" blend modes to no longer modify the alpha of the Canvas / screen.
* Improved the performance of World:rayCast and World:queryBoundingBox.
* Improved the performance of love.graphics.line and other line drawing functions, when the "smooth" LineStyle is used.
* Improved the performance of Shader:send when matrices are used.
* Improved the performance of ImageData and SoundData methods when LuaJIT's JIT compiler is enabled, by using efficient FFI code.
* Improved the performance of love.math.noise, love.math.gammaToLinear, love.math.linearToGamma, love.math.random, and RandomGenerator:random when LuaJIT's JIT compiler is enabled.
* Updated the compatibility warning notice to use a message box and to show the version specified in love.conf.
* Updated the compatibility warning notice to display before main.lua is loaded.
* Updated the __tostring metamethod of love objects to output the pointer value, similar to tostring(table).
* Updated World:setCallbacks, World:setContactFilter, World:queryBoundingBox, and World:rayCast to have improved argument type checking.
* Updated threads to load love.filesystem automatically.
* Updated love.filesystem to enable symlinks by default.
* Updated love.math.setRandomSeed and RandomGenerator:setSeed to produce better results for the first few random() calls.
* Updated love.math.random and RandomGenerator:random to produce slightly better results in general.
* Updated Source methods that deal with spatial audio to error rather than failing silently if the Source isn't mono.
* Updated the 3D and 4D variants of love.math.noise to use Perlin noise rather than Simplex noise, to avoid patent issues.
* Updated ImageFonts to no longer treat separator pixels as spacing.
* Updated the default font to use less memory.
* Updated the behavior of text wrapping with love.graphics.printf and Font:getWrap to work better.
* Updated love.graphics.print and love.graphics.printf to no longer automatically round the x and y position arguments.
* Updated some error messages for love.graphics.newImage to be more descriptive.
* Updated love.graphics color functions to automatically apply love.math.gammaToLinear to color values when gamma-correct rendering is enabled.
* Updated the 'normal' Canvas format to internally use 'srgb' rather than 'rgba8' when gamma-correct rendering is enabled.
* Updated love.graphics.setColor to affect all drawn objects, including ParticleSystems, SpriteBatches, and Meshes.
* Updated the default fullscreen type to be "desktop" rather than "exclusive".
* Updated the minimum runtime system requirements of LOVE to require OpenGL 2.1 or OpenGL ES 2 support.
* Updated the pixel shader effect function so screen_coords.y is 0 at the top of the screen instead of the bottom.
* Updated Images to require setting the mipmaps flag to true on creation in order to use mipmaps.
* Updated Images to allow mipmaps for non-power-of-two sizes.
LOVE 0.9.2 [Baby Inspector]
---------------------------
Released: N/A
Released: 2015-02-14
* Added Lua 5.3's UTF-8 module (via utf8 = require("utf8")).
* Added Shader:getExternVariable.
* Added several new canvas texture formats.
* Added love.graphics.getCanvasFormats.
* Added love.graphics.getCompressedImageFormats.
* Added ParticleSystem:setQuads.
* Added ParticleSystem:setLinearDamping.
* Added SpriteBatch:flush.
* Added love.graphics.getStats.
* Added "mirroredrepeat" wrap mode.
* Added love.audio.setDopplerScale and love.audio.getDopplerScale.
* Added optional duration argument to Joystick:setVibration.
* Added love.joystick.loadGamepadMappings and love.joystick.saveGamepadMappings.
* Added Joint:setUserData and Joint:getUserData.
* Added Joint:getBodies.
* Added GearJoint:getJoints.
* Added Contact:getFixtures and Body:getContactList.
* Added Body:getWorld.
* Added Body:getJointList.
* Added Body/Contact/Fixture/Joint/World:isDestroyed.
* Added love.mousemoved event callback.
* Added love.mouse.setRelativeMode and love.mouse.getRelativeMode.
* Added Scancode enums, love.keyboard.getKeyFromScancode, and love.keyboard.getScancodeFromKey.
* Added love.window.getDisplayName.
* Added love.window.minimize.
* Added love.window.showMessageBox.
* Added love.filesystem.isSymlink, love.filesystem.setSymlinksEnabled, and love.filesystem.areSymlinksEnabled.
* Added 'refreshrate' field to the table returned by love.window.getMode.
* Added love.window.toPixels and love.window.fromPixels.
* Added love.window.setPosition and love.window.getPosition, and 'x' and 'y' fields to love.window.setMode and t.window in love.conf.
* Added love.filesystem.isSymlink, love.filesystem.setSymlinksEnabled, and love.filesystem.areSymlinksEnabled.
* Added love.filesystem.getRealDirectory.
* Deprecated SpriteBatch:bind and SpriteBatch:unbind.
* Deprecated all uses of the name 'FSAA' in favor of 'MSAA'.
* Deprecated the 'hdrcanvas' graphics feature enum in favor of getCanvasFormats.
* Deprecated the 'dxt' and 'bc5' graphics feature enums in favor of getCompressedImageFormats.
* Fixed crashes when love objects are used in multiple threads.
* Fixed love.filesystem.setIdentity breaking in some situations when called multiple times.
* Fixed the default love.filesystem identity when in Fused mode in Windows.
* Fixed love.system.openURL sometimes blocking indefinitely on Linux.
* Fixed love.joystick.setGamepadMapping.
* Fixed the order of vertices in ChainShapes.
* Fixed love.mouse.getPosition returning outdated values if love.mouse.setPosition is used in the same frame.
* Fixed love.graphics.newFont to error when given an invalid size argument.
* Fixed the filename and backtrace given when love.graphics.print errors.
* Fixed a small memory leak if love.graphics.newCanvas errors.
* Fixed shader:getWarnings returning unnecessary information.
* Fixed some cases of noncompliant shader code not properly erroring on some nvidia drivers.
* Fixed a potential crash when Shader objects are garbage collected.
* Fixed a potential small memory leak triggered when love.graphics.newShader errors.
* Fixed love.graphics.newMesh(vertexcount, ...) causing the Mesh to do instanced rendering.
* Fixed Mesh:getVertexMap.
* Fixed Image:refresh generating mipmaps multiple times if mipmap filtering is enabled.
* Fixed Image:setMipmapFilter to not keep bad state around if it errors.
* Fixed Mesh:setDrawRange when the Mesh has a vertex map set.
* Fixed internal detection of the 'position' and 'effect' shader functions.
* Fixed Texture memory leak when Meshes are garbage collected.
* Fixed the default line join mode to be 'miter' instead of an undefined value.
* Fixed the default error handler text size when highdpi mode is enabled on a Retina monitor.
* Fixed love.window.setMode to fall back to the largest available mode if a width or height greater than the largest supported is specified and fullscreen=true.
* Fixed the default error handler background color when sRGB mode is enabled for the window.
* Fixed love.window.setMode to fall back to the largest available mode if a width or height greater than the largest supported is specified and fullscreen is used.
* Fixed the state of wireframe mode when love.window.setMode is called.
* Fixed Canvas:getPixel to error if the coordinates are not within the Canvas' size.
* Fixed detection of compressed textures to work regardless of the file's extension.
* Renamed all cases of FSAA to MSAA. The FSAA names still exist for backward-compatibility.
* Updated the Windows executable to automatically prefer the higher performance GPU on nvidia Optimus systems.
* Updated the --console command-line argument in Windows to open the console before conf.lua is loaded.
* Updated t.console and the --console command-line argument in Windows to use the existing Console window, if love was launched from one.
* Updated the love executable to verify that the love library's version matches.
* Updated the Lua wrapper code for modules to avoid crashes when the module's instance is created, deleted, and recreated.
* Updated internal code for handling garbage collection of love objects to be more efficient.
* Updated love's initialization code to trigger a Lua error if love.conf has an error in it.
* Updated the paths returned by love.filesystem.getSaveDirectory and friends to strip double-slashes from the string.
* Updated the error message when love.filesystem.write or File:open fails because the directory doesn't exist.
* Updated the error message when love.math.setRandomseed(0) is attempted.
* Updated the error message when invalid UTF-8 strings are used in love functions that expect UTF-8.
* Updated love.physics.newPolygonShape and love.physics.newChainShape to accept a table of vertices.
* Updated love.physics.newChainShape to error if the number of arguments is invalid.
* Updated love.thread.newThread to accept a literal string of code directly.
* Updated love-created threads to use names visible in external debuggers.
* Updated SpriteBatch:unbind to use less VRAM if the SpriteBatch has the static usage hint.
* Updated love.graphics.newImage, love.image.newImageData, etc. to leave less Lua-owned memory around.
* Updated love.graphics.push to accept different stack types to push. Current types are "transform" and "all".
* Updated love shaders to accept GLSL ES precision qualifiers on variables, although they do nothing.
* Updated the error message for love.graphics.newShader to be less cryptic if an invalid filename is given.
* Updated compressed texture loading code to allow BC6 and BC7 compressed textures (if the graphics driver supports them.)
LOVE 0.9.1 [Baby Inspector]
---------------------------
@@ -202,7 +438,7 @@ LOVE 0.9.0 [Baby Inspector]
* Added love.window.getIcon.
* Added t.window.icon to love.conf.
* Added love.mousefocus and love.window.hasMouseFocus.
* Added custom hardware cursors via love.mouse.newCursor.
* Added custom hardware cursors via love.mouse.newCursor.
* Added love.mouse.setX/setY.
* Added Joystick objects.
* Added love.joystick.getJoystick.