|
@@ -325,3 +325,208 @@ LÖVR](https://micouy.github.io/drag-and-drop-in-vr-with-lovr/) and [My LÖVR wo
|
|
|
|
|
|
Changelog
|
|
Changelog
|
|
---
|
|
---
|
|
|
|
+
|
|
|
|
+### 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
|
|
|
|
+
|
|
|
|
+- Add `Quat:get/setEuler`.
|
|
|
|
+
|
|
|
|
+#### 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 `KeyCode`s 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`.
|
|
|
|
+
|