Toad Rage
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
, andrgb565
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
, andPass:read
for raw GPU transfers. - Add
lovr.graphics.isFormatSupported
andlovr.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
, andy
DeviceButtons. - Add OpenXR support for
hand/left/point
andhand/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
andlovr.headset.getDisplayFrequencies
. - Add
lovr.headset.isFocused
. - Add
lovr.headset.getDeltaTime
. - Add support for passing
vec2
s 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
andModelData
. - Add ability to procedurally animate model node scales.
- Add
Model:getMetadata
to return raw JSON from glTF models. - Add
Rasterizer:getWidth
,Rasterizer:getDimensions
, andRasterizer:getBoundingBox
. - Add
Rasterizer:getKerning
andRasterizer:getBearing
. - Add
Rasterizer:getCurves
. - Add
Rasterizer:newImage
. - Add
Vec2:angle
,Vec3:angle
, andVec4:angle
. - Add
Vec2:equals
,Vec3:equals
,Vec4:equals
,Quat:equals
, andMat4:equals
. - Add
Sound:getCapacity
andSound:getByteStride
. - Add
Source:get/setPitch
. - Add
Source:isSpatial
andspatial
flag tolovr.audio.newSource
. - Add macOS support for requesting the
audiocapture
Permission withlovr.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 returnnil
instead offalse
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
andlovr.filesystem.append
to return success instead of byte count. - Change window-related functions to be on
lovr.system
instead oflovr.graphics
. - Change
Font:get/setLineHeight
toFont: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
orlovr.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
require
d in threads. - Fix issue with
lovr.math.gammaToLinear
andlovr.math.linearToGamma
when used with a table. - Fix error when calling
lovr.filesystem.getDirectoryItems
whentable.sort
is unavailable. - Fix
Mat4 * Vec3
. - Fix issue with
World:raycast
andMeshShape
s. - 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
andrgba4
texture formats. - Remove
Mesh
andShaderBlock
(they are replaced byBuffer
). - 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
, andpico
headset drivers. - Remove
beacon
Devices. - Remove
lovr.headset.getDisplayMask
. - Remove
effects = false
flag fromlovr.audio.newSource
(usespatial
flag).