Skip to content

Toad Rage

Compare
Choose a tag to compare
@bjornbytes bjornbytes released this 16 Oct 04:55

Add:

  • Add ability to run individual Lua files in addition to folders.
  • Add Vulkan renderer.
  • Add capsule, cone, and torus shapes.
  • Add segments option to planes.
  • Add option to draw a single node of a model.
  • Add indirect draws and indirect compute.
  • Add depth clamp and depth offset render states.
  • Add support for configuring "stencil fail" and "depth fail" stencil actions.
  • Add viewport and scissor render states.
  • Add Pass objects for recording rendering work.
  • Add Buffer objects.
  • Add Buffer:getPointer for accessing FFI pointers to GPU memory.
  • Add support for half floats for vertex attributes and buffer data.
  • Add texture views.
  • Add single-pass rendering to multi-layer textures (array, cubemap, 3D).
  • Add r8, rg8, r16, rg16, rgba16, and rgb565 image and texture formats.
  • Add d32fs8 texture format.
  • Add support for BC4, BC5, BC6, and BC7 texture formats.
  • Add support for loading uncompressed formats from DDS and KTX files.
  • Add support for loading KTX2 textures.
  • Add support for loading non-2D textures from image files.
  • Add support for loading DDS and KTX textures in glTF models.
  • Add support for the KHR_texture_transform glTF extension.
  • Add support for loading base64 images from glTF models.
  • Add Sampler objects.
  • Add Tally objects for GPU queries.
  • Add Readback objects for asynchronous GPU readbacks.
  • Add t.graphics.shadercache option to cache compiled shaders to disk.
  • Add lovr.graphics.compileShader and the ability to load shaders from SPIR-V.
  • Add normal default shader.
  • Add Font:getKerning.
  • Add Font:getLines.
  • Add Font:getVertices.
  • Add support for rendering multicolor text.
  • Add Pass:blit, Pass:clear, Pass:copy, Pass:mipmap, and Pass:read for raw GPU transfers.
  • Add lovr.graphics.isFormatSupported and lovr.graphics.getDevice.
  • Add eye/gaze Device.
  • Add t.headset.submitdepth flag to submit depth buffers to the OpenXR runtime.
  • Add t.headset.overlay conf.lua flag to run as an OpenXR overlay.
  • Add support for keyboard device pose on Oculus Quest.
  • Add support for reading hand tracking pinch strength (it's mapped to trigger).
  • Add thumbrest DeviceButton.
  • Add OpenXR support for a, b, x, and y DeviceButtons.
  • Add OpenXR support for hand/left/point and hand/right/point Devices.
  • Add OpenXR support for Windows Mixed Reality controllers.
  • Add OpenXR support for Oculus Quest hand tracking models via lovr.headset.newModel.
  • Add OpenXR support for Vive tracker devices.
  • Add OpenXR support for lovr.headset.getDisplayFrequency.
  • Add lovr.headset.setDisplayFrequency and lovr.headset.getDisplayFrequencies.
  • Add lovr.headset.isFocused.
  • Add lovr.headset.getDeltaTime.
  • Add support for passing vec2s as scale arguments.
  • Add support for passing numbers when calling functions on vectors.
  • Add functions to ModelData (it didn't have any before, now it has lots).
  • Add bounding sphere to Model and ModelData.
  • Add ability to procedurally animate model node scales.
  • Add Model:getMetadata to return raw JSON from glTF models.
  • Add Rasterizer:getWidth, Rasterizer:getDimensions, and Rasterizer:getBoundingBox.
  • Add Rasterizer:getKerning and Rasterizer:getBearing.
  • Add Rasterizer:getCurves.
  • Add Rasterizer:newImage.
  • Add Vec2:angle, Vec3:angle, and Vec4:angle.
  • Add Vec2:equals, Vec3:equals, Vec4:equals, Quat:equals, and Mat4:equals.
  • Add Sound:getCapacity and Sound:getByteStride.
  • Add Source:get/setPitch.
  • Add Source:isSpatial and spatial flag to lovr.audio.newSource.
  • Add macOS support for requesting the audiocapture Permission with lovr.system.requestPermission.
  • Add World:getContacts.
  • Add World:get/setStepCount.
  • Add lovr.system.isKeyDown.

Change:

  • Change default headset driver to OpenXR.
  • Change lovr.headset.getSkeleton to also return joint radii.
  • Change shader GLSL version to 4.60.
  • Change desktop window to be mono.
  • Change maximum view count from 2 to 6.
  • Change default projection to have an infinite far plane with a reversed Z range.
  • Change skeletal animation to use compute shaders.
  • Change OBJ loader to support non-triangular faces.
  • Change setColor to accept a second alpha parameter when using a hexcode.
  • Change Source:setEffectEnabled to error when called on a Source that has effects disabled.
  • Change lovr.headset.isDown to return nil instead of false when a button is not supported by a Device.
  • Change text rendering to print missing glyph characters instead of erroring on missing glyphs.
  • Change dt parameter to use predicted headset display time delta instead of wallclock delta time, when available.
  • Change lovr.math.noise to use simplex noise instead of Perlin noise.
  • Change lovr.filesystem.write and lovr.filesystem.append to return success instead of byte count.
  • Change window-related functions to be on lovr.system instead of lovr.graphics.
  • Change Font:get/setLineHeight to Font:get/setLineSpacing.
  • Change lovr.graphics.stencil to be split into separate "stencil test" and "stencil write" states.

Fix:

  • Fix flickering on AMD GPUs
  • Fix crash when calling lovr.audio.setGeometry or lovr.physics.newMeshCollider with zero vertices/indices.
  • Fix require not finding plugins packaged as "all in one" Lua libraries.
  • Fix audio capture issues on Android.
  • Fix Oculus Quest hand model orientation.
  • Fix issue that would cause vectors to rarely get corrupted with nans in LuaJIT.
  • Fix potential crash when using Object:release rapidly.
  • Fix bug where Collider friction had no effect, and set default friction to infinity instead of 0 (no behavior change).
  • Fix issue preventing the audio, graphics, and headset modules from being required in threads.
  • Fix issue with lovr.math.gammaToLinear and lovr.math.linearToGamma when used with a table.
  • Fix error when calling lovr.filesystem.getDirectoryItems when table.sort is unavailable.
  • Fix Mat4 * Vec3.
  • Fix issue with World:raycast and MeshShapes.
  • Fix bug where error screen wouldn't show up if there was an error in lovr.draw when using OpenXR.
  • Fix issue where conf.lua wouldn't get read properly on Android.
  • Fix error when passing LÖVR objects to Thread:start.
  • Fix bug where first command line argument would not be available in fused mode.
  • Fix bug where Font vertex winding would be flipped when toggling Font:setFlipEnabled.

Remove:

  • Remove OpenGL and WebGL renderers.
  • Remove rgb and rgba4 texture formats.
  • Remove Mesh and ShaderBlock (they are replaced by Buffer).
  • Remove Canvas (textures can be rendered to directly with render passes).
  • Remove arc primitive.
  • Remove line width.
  • Remove Font:setFlipEnabled (font flips automatically when needed).
  • Remove WebAssembly build (it will be back soon!)
  • Remove openvr, oculus, vrapi, webxr, and pico headset drivers.
  • Remove beacon Devices.
  • Remove lovr.headset.getDisplayMask.
  • Remove effects = false flag from lovr.audio.newSource (use spatial flag).