Hangry Goose
Community
- LÖVR now has haxe bindings thanks to @shakesoda!
- The documentation is exposed as JSON at https://lovr.org/api/data.
- The WebVR runtime has been rewritten to be faster and more stable.
Framework
Add:
- Add the
lovr.thread
module,Thread
objects,Channel
objects, and thelovr.threaderror
callback. - Add the ability to render to multiple Canvas objects simultaneously and
lovr.graphics.getCanvas
andlovr.graphics.setCanvas
. - Add support for 2D array textures and 3D volume textures.
- Add the
lovr.mount
callback andlovr.headset.isMounted
for detecting when/if the headset is on a head. - Add
lovr.data
module andAudioStream
,ModelData
,Rasterizer
,TextureData
, andVertexData
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
MaterialTexture
s for PBR maps:emissive
,metalness
,roughness
,occlusion
, andnormal
. They are loaded for new Models by default. - Add
MaterialScalar
,Material:getScalar
, andMaterial:setScalar
for metalness and roughness properties. - Add an
emissive
MaterialColor
. - Add a
mipmaps
flag tolovr.graphics.newTexture
andlovr.graphics.newCanvas
. - Add
lovr.audio.getDopplerEffect
andlovr.audio.setDopplerEffect
(removed in a previous version). - Add
lovrTangent
as a vec3 accessible to Shaders and load tangents from Models. - Add
Mesh:attachAttributes
andMesh:detachAttributes
for improved instancing support. - Add
lovr.filesystem.getRequirePath
andlovr.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
toSource:getChannelCount
. - Change the fake headset driver to use right click instead of left click for the controller trigger.
- Change
lovr.controllerpressed
andlovr.controllerreleased
to passnil
instead of'unknown'
for unknown controller buttons. - Change
lovr.graphics.newMesh
andMesh:setVertices
to accept aVertexData
object to load vertices from. - Change
Mesh:setVertexMap
to accept aBlob
for fast vertex map updating. - Change
Shader:send
to accept aBlob
for updating Shaders with arbitrary binary data. - Change
Collider:getShapeList
toCollider:getShapes
. - Change
Collider:getJointList
toCollider: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
toBlob: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
returningnil
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 fromlovr.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 ownlovr.graphics.fill
function now. - Remove a variant of
lovr.filesystem.newBlob
that creates a Blob from a string, uselovr.data.newBlob
instead.