Browse Source

Update release post;

bjorn 5 months ago
parent
commit
ea538b80c1
1 changed files with 205 additions and 0 deletions
  1. 205 0
      guides/v0.18.0.md

+ 205 - 0
guides/v0.18.0.md

@@ -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`.
+