Skip to content

Hangry Goose

Compare
Choose a tag to compare
@bjornbytes bjornbytes released this 14 Jun 04:22

Community

Framework

Add:

  • Add the lovr.thread module, Thread objects, Channel objects, and the lovr.threaderror callback.
  • Add the ability to render to multiple Canvas objects simultaneously and lovr.graphics.getCanvas and lovr.graphics.setCanvas.
  • Add support for 2D array textures and 3D volume textures.
  • Add the lovr.mount callback and lovr.headset.isMounted for detecting when/if the headset is on a head.
  • Add lovr.data module and AudioStream, ModelData, Rasterizer, TextureData, and VertexData objects.
  • Add a variant of lovr.event.quit that restarts instead of quitting.
  • Add Texture:replacePixels for modifying Texture contents.
  • Add variants of lovr.graphics.clear for clearing the depth and stencil buffers to custom values.
  • Add a second parameter to lovr.graphics.setDepthTest for controlling whether the depth buffer is written to.
  • Add ModelData:getVertexData for access to raw vertex data in models.
  • Add new MaterialTextures for PBR maps: emissive, metalness, roughness, occlusion, and normal. They are loaded for new Models by default.
  • Add MaterialScalar, Material:getScalar, and Material:setScalar for metalness and roughness properties.
  • Add an emissive MaterialColor.
  • Add a mipmaps flag to lovr.graphics.newTexture and lovr.graphics.newCanvas.
  • Add lovr.audio.getDopplerEffect and lovr.audio.setDopplerEffect (removed in a previous version).
  • Add lovrTangent as a vec3 accessible to Shaders and load tangents from Models.
  • Add Mesh:attachAttributes and Mesh:detachAttributes for improved instancing support.
  • Add lovr.filesystem.getRequirePath and lovr.filesystem.setRequirePath.
  • Add lovr.filesystem.getWorkingDirectory.
  • Add Canvas:newTextureData for reading pixel data from Canvas objects.

Change:

  • Change lovr.timer.getFPS to average over the last 90 frames instead of 60.
  • Change lovr.graphics.newCanvas to error when given negative/zero sizes.
  • Change Canvas:renderTo to error if a function isn't supplied to it.
  • Change Canvas:renderTo to pass extra arguments to the render callback.
  • Change lovr.graphics.plane to accept separate x/y scales for the plane.
  • Change Source:getChannels to Source:getChannelCount.
  • Change the fake headset driver to use right click instead of left click for the controller trigger.
  • Change lovr.controllerpressed and lovr.controllerreleased to pass nil instead of 'unknown' for unknown controller buttons.
  • Change lovr.graphics.newMesh and Mesh:setVertices to accept a VertexData object to load vertices from.
  • Change Mesh:setVertexMap to accept a Blob for fast vertex map updating.
  • Change Shader:send to accept a Blob for updating Shaders with arbitrary binary data.
  • Change Collider:getShapeList to Collider:getShapes.
  • Change Collider:getJointList to Collider:getJoints and also fix it.
  • Change the fake headset driver to respect the lovr.headset.setMirrored function.
  • Change the default window size.
  • Change the main loop to a cooperative coroutine-based loop.
  • Change Blob:getFilename to Blob:getName.

Fix:

  • Fix sphere UV coordinates to be flipped for correct texture mapping.
  • Fix issues with transforms of non-animated models.
  • Fix require when used with dot-separated module paths.
  • Fix a bug where conf.lua would be loaded from the working directory if one wasn't present in the project.
  • Fix a crash when lovr.headset.getDisplayDimensions was called before the first frame was rendered.
  • Fix Joint:getType returning nil for DistanceJoints.
  • Fix Texture:setFilter not doing anything for cubemap textures.
  • Fix a bug where sources would sometimes not be able to play again after ending.
  • Fix lovr.audio.newSource to show an error message when passed an invalid file.
  • Fix an edge case in quaternion interpolation that caused some animations with rotations to be bad.
  • Fix Model:getAABB.
  • Fix the winding order of cubes rendered with lovr.graphics.cube.
  • Fix lovr.load to correctly pass in the argument table.

Remove:

  • Remove the lovr.step callback. It is now returned from lovr.run.
  • Remove lovr.headset.getBoundsGeometry.
  • Remove lovr.headset.isPresent.
  • Remove the ability to modify the view matrix and the MatrixType enum.
  • Remove the variant lovr.graphics.plane(texture) for drawing fullscreen quads, it has its own lovr.graphics.fill function now.
  • Remove a variant of lovr.filesystem.newBlob that creates a Blob from a string, use lovr.data.newBlob instead.