Releases
v0.18.0
Compare
Sorry, something went wrong.
No results found
Add
General
Add support for declaring objects as to-be-closed variables in Lua 5.4.
Filesystem
Add --watch CLI flag, lovr.filechanged event, and lovr.filesystem.watch/unwatch.
Add File object and lovr.filesystem.newFile.
Add lovr.filesystem.getBundlePath (for internal boot code).
Add lovr.filesystem.setSource (for internal boot code).
Graphics
Add Pass:polygon.
Add Shader:hasVariable.
Add support for BMFont in Font and Rasterizer.
Add support for uniform variables in shader code.
Add support for cubemap array textures.
Add support for transfer operations on texture views.
Add support for nesting texture views (creating a view of a view).
Add sn10x3 DataType.
Add border WrapMode.
Add support for loading glTF models with 8 bit indices.
Add support for d24 texture format.
Add support for SampleID, SampleMaskIn, SampleMask, and SamplePosition in pixel shaders.
Add support for layout(scalar) buffers and packedBuffers graphics feature.
Add raw flag to lovr.graphics.newShader.
Add Texture:getLabel, Shader:getLabel, and Pass:getLabel.
Add Model:resetBlendShapes.
Headset
Add Layer object, lovr.headset.newLayer, and lovr.headset.get/setLayers.
Add stylus Device, nib DeviceButton, and nib DeviceAxis.
Add support for Logitech MX Ink input.
Add lovr.headset.get/setFoveation.
Add t.headset.controllerskeleton to control how controllers return hand tracking data.
Add controller field to the table returned by lovr.headset.getSkeleton.
Add t.headset.mask.
Add back lovr.headset.isMounted and the lovr.mount callback.
Add lovr.headset.stop, lovr.headset.isActive, and t.headset.start.
Add lovr.headset.getFeatures.
Add t.headset.debug to enable additional messages from the VR runtime.
Add --simulator CLI flag to force use of simulator headset driver.
Add lovr.headset.getHandles.
Math
Physics
Add variant of lovr.physics.newWorld that takes a table of settings.
Add World:interpolate.
Add World:get/setCallbacks and Contact object.
Add World:getColliderCount.
Add World:getJointCount and World:getJoints.
Add World:shapecast.
Add World:overlapShape.
Add Collider:get/setGravityScale.
Add Collider:is/setContinuous.
Add Collider:get/setDegreesOfFreedom.
Add Collider:applyLinearImpulse and Collider:applyAngularImpulse.
Add Collider:moveKinematic.
Add Collider:getShape.
Add Collider:is/setSensor (replaces Shape:is/setSensor).
Add Collider:get/setInertia.
Add Collider:get/setCenterOfMass.
Add Collider:get/setAutomaticMass.
Add Collider:resetMassData.
Add Collider:is/setEnabled.
Add ConvexShape.
Add WeldJoint.
Add ConeJoint.
Add Joint:getForce and Joint:getTorque.
Add Joint:get/setPriority.
Add Joint:isDestroyed.
Add DistanceJoint:get/setLimits.
Add :get/setSpring to DistanceJoint, HingeJoint, and SliderJoint.
Add HingeJoint:get/setFriction and SliderJoint:get/setFriction.
Add SliderJoint:getAnchors.
Add Shape:raycast and Shape:containsPoint.
Add Shape:get/setDensity.
Add Shape:getMass/Volume/Inertia/CenterOfMass.
Add Shape:get/setOffset.
Add motor support to HingeJoint and SliderJoint.
Add support for creating a MeshShape from a ModelData.
System
Add lovr.system.isWindowVisible and lovr.system.isWindowFocused.
Add lovr.system.wasMousePressed and lovr.system.wasMouseReleased.
Add lovr.system.get/setClipboardText.
Add lovr.system.openConsole (for internal Lua code).
Add KeyCodes for numpad keys.
Thread
Add table support to Channel:push.
Add lovr.thread.newChannel.
Add t.thread.workers to configure number of worker threads.
Change
Change nogame screen to be bundled as a fused zip archive.
Change Mesh:setMaterial to also take a Texture.
Change shader syntax to no longer require set/binding numbers for buffer/texture variables.
Change Texture:getFormat to also return whether the texture is linear or sRGB.
Change Texture:setPixels to allow copying between textures with different formats.
Change Readback:getImage and Texture:getPixels to return sRGB images when the source Texture is sRGB.
Change lovr.graphics.newTexture to use a layer count of 6 when type is cube and only width/height is given.
Change lovr.graphics.newTexture to default mipmap count to 1 when an Image is given with a non-blittable format.
Change lovr.graphics.newTexture to error if mipmaps are requested and an Image is given with a non-blittable format.
Change TextureFeature to merge sample with filter, render with blend, and blitsrc/blitdst into blit.
Change headset simulator movement to slow down when holding the control key.
Change headset simulator to use t.headset.supersample.
Change lovr.graphics.compileShader to take/return multiple stages.
Change maximum number of physics tags from 16 to 31.
Change TerrainShape to require square dimensions.
Change MeshShape constructors to accept a MeshShape to reuse data from.
Change MeshShape constructors to take an optional scale to apply to the vertices.
Change Buffer:setData to use more consistent rules to read data from tables.
Change World:queryBox/querySphere to perform coarse AABB collision detection (use World:overlapShape for an exact test).
Change World:queryBox/querySphere to take an optional set of tags to include/exclude.
Change World:queryBox/querySphere to return the first collider detected, when the callback is nil.
Change World:queryBox/querySphere to return nil when a callback is given.
Change World:raycast to take a set of tags to allow/ignore.
Change World:raycast callback to be optional (if nil, the closest hit will be returned).
Change World:raycast to also return the triangle that was hit on MeshShapes.
Change physics queries to report colliders in addition to shapes.
Change tostring on objects to also include their pointers.
Change desktop HeadsetDriver to be named simulator.
Change --graphics-debug CLI flag to be named --debug.
Change --version and lovr.getVersion to also return the git commit hash.
Change Pass:setViewport/Scissor to be per-draw state instead of per-pass.
Change Image:get/set/mapPixel to support r16f, rg16f, and rgba16f.
Change Image:getPixel to return 1 for alpha when the format doesn't have an alpha component.
Change stack size of state stack (used with Pass:push/pop) from 4 to 8.
Change lovr.focus and lovr.visible to also get called for window events.
Change lovr.focus and lovr.visible to have an extra parameter for the display type.
Fix
Fix t.headset.submitdepth to actually submit depth.
Fix depth write when depth testing is disabled.
Fix "morgue overflow" error when creating or destroying large amounts of textures at once.
Fix Texture:getType when used with texture views.
Fix possible negative dt in lovr.update when restarting with the simulator.
Fix issue where Collider/Shape/Joint userdata wouldn't get garbage collected.
Fix OBJ triangulation for faces with more than 4 vertices.
Fix possible crash when using vectors in multiple threads.
Fix possible crash with Blob:getName.
Fix issue when sampling from depth-stencil textures.
Fix bug when rendering meshes from Model:getMesh.
Fix bug with Curve:slice when curve has more than 4 points.
Fix bug with hand/*/pinch and hand/*/poke device poses.
Fix bug when loading glTF models that use the KHR_texture_transform extension.
Deprecate
Deprecate Texture:getSampleCount.
Deprecate World:get/setTightness (use stabilization option when creating World).
Deprecate World:get/setLinearDamping (use Collider:get/setLinearDamping).
Deprecate World:get/setAngularDamping (use Collider:get/setAngularDamping).
Deprecate World:is/setSleepingAllowed (use allowSleep option when creating World).
Deprecate World:get/setStepCount (use positionSteps/velocitySteps option when creating World).
Deprecate Collider:is/setGravityIgnored (use Collider:get/setGravityScale).
Remove
Remove lovr.headset.getOriginType (use lovr.headset.isSeated).
Remove lovr.headset.getDisplayFrequency (renamed to lovr.headset.getRefreshRate).
Remove lovr.headset.getDisplayFrequencies (renamed to lovr.headset.getRefreshRates).
Remove lovr.headset.setDisplayFrequency (renamed to lovr.headset.setRefreshRate).
Remove lovr.graphics.getBuffer (use lovr.graphics.newBuffer).
Remove variant of lovr.graphics.newBuffer that takes length first (format is first now).
Remove location key for Buffer fields (use name).
Remove Buffer:isTemporary.
Remove Buffer:getPointer (renamed to Buffer:mapData).
Remove lovr.graphics.getPass (use lovr.graphics.newPass).
Remove Pass:getType (passes support both render and compute now).
Remove Pass:getTarget (renamed to Pass:getCanvas).
Remove Pass:getSampleCount (Pass:getCanvas returns sample count).
Remove variant of Pass:send that takes a binding number instead of a variable name.
Remove Texture:newView (renamed to lovr.graphics.newTextureView).
Remove Texture:isView and Texture:getParent.
Remove Shape:setPosition, Shape:setOrientation, and Shape:setPose (use Shape:setOffset).
Remove Shape:is/setSensor (use Collider:is/setSensor).
Remove World:overlaps/computeOverlaps/collide/getContacts (use World:setCallbacks).
Remove BallJoint:setAnchor.
Remove DistanceJoint:setAnchors.
Remove HingeJoint:setAnchor.
Remove BallJoint:get/setResponseTime and BallJoint:get/setTightness.
Remove DistanceJoint:get/setResponseTime and DistanceJoint:get/setTightness (use :setSpring).
Remove DistanceJoint:get/setDistance (renamed to :get/setLimits).
Remove HingeJoint:get/setUpper/LowerLimit (use :get/setLimits).
Remove SliderJoint:get/setUpper/LowerLimit (use :get/setLimits).
Remove Collider:getLocalCenter (renamed to Collider:getCenterOfMass).
Remove Shape:getMassData (split into separate getters).
Remove shaderConstantSize limit from lovr.graphics.getLimits.
Remove Pass:getViewport and Pass:getScissor.
You canβt perform that action at this time.