summaryrefslogtreecommitdiff
path: root/meta/3rd
diff options
context:
space:
mode:
Diffstat (limited to 'meta/3rd')
-rw-r--r--meta/3rd/love2d/library/love.audio.lua66
-rw-r--r--meta/3rd/love2d/library/love.data.lua36
-rw-r--r--meta/3rd/love2d/library/love.event.lua76
-rw-r--r--meta/3rd/love2d/library/love.filesystem.lua34
-rw-r--r--meta/3rd/love2d/library/love.font.lua10
-rw-r--r--meta/3rd/love2d/library/love.graphics.lua244
-rw-r--r--meta/3rd/love2d/library/love.image.lua214
-rw-r--r--meta/3rd/love2d/library/love.joystick.lua74
-rw-r--r--meta/3rd/love2d/library/love.keyboard.lua680
-rw-r--r--meta/3rd/love2d/library/love.math.lua6
-rw-r--r--meta/3rd/love2d/library/love.mouse.lua28
-rw-r--r--meta/3rd/love2d/library/love.physics.lua38
-rw-r--r--meta/3rd/love2d/library/love.system.lua12
-rw-r--r--meta/3rd/love2d/library/love.window.lua28
-rw-r--r--meta/3rd/lovr/library/lovr.audio.lua62
-rw-r--r--meta/3rd/lovr/library/lovr.data.lua14
-rw-r--r--meta/3rd/lovr/library/lovr.event.lua172
-rw-r--r--meta/3rd/lovr/library/lovr.graphics.lua260
-rw-r--r--meta/3rd/lovr/library/lovr.headset.lua102
-rw-r--r--meta/3rd/lovr/library/lovr.physics.lua20
-rw-r--r--meta/3rd/lovr/library/lovr.system.lua4
21 files changed, 1090 insertions, 1090 deletions
diff --git a/meta/3rd/love2d/library/love.audio.lua b/meta/3rd/love2d/library/love.audio.lua
index acd59384..e287469c 100644
--- a/meta/3rd/love2d/library/love.audio.lua
+++ b/meta/3rd/love2d/library/love.audio.lua
@@ -593,139 +593,139 @@ function Source:tell(unit) end
---
---Extended information can be found in the chapter "3.4. Attenuation By Distance" of the OpenAL 1.1 specification.
---
----@class love.DistanceModel
+---@alias love.DistanceModel
---
---Sources do not get attenuated.
---
----@field none integer
+---| '"none"'
---
---Inverse distance attenuation.
---
----@field inverse integer
+---| '"inverse"'
---
---Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.
---
----@field inverseclamped integer
+---| '"inverseclamped"'
---
---Linear attenuation.
---
----@field linear integer
+---| '"linear"'
---
---Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.
---
----@field linearclamped integer
+---| '"linearclamped"'
---
---Exponential attenuation.
---
----@field exponent integer
+---| '"exponent"'
---
---Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.
---
----@field exponentclamped integer
+---| '"exponentclamped"'
---
---The different types of effects supported by love.audio.setEffect.
---
----@class love.EffectType
+---@alias love.EffectType
---
---Plays multiple copies of the sound with slight pitch and time variation. Used to make sounds sound "fuller" or "thicker".
---
----@field chorus integer
+---| '"chorus"'
---
---Decreases the dynamic range of the sound, making the loud and quiet parts closer in volume, producing a more uniform amplitude throughout time.
---
----@field compressor integer
+---| '"compressor"'
---
---Alters the sound by amplifying it until it clips, shearing off parts of the signal, leading to a compressed and distorted sound.
---
----@field distortion integer
+---| '"distortion"'
---
---Decaying feedback based effect, on the order of seconds. Also known as delay; causes the sound to repeat at regular intervals at a decreasing volume.
---
----@field echo integer
+---| '"echo"'
---
---Adjust the frequency components of the sound using a 4-band (low-shelf, two band-pass and a high-shelf) equalizer.
---
----@field equalizer integer
+---| '"equalizer"'
---
---Plays two copies of the sound; while varying the phase, or equivalently delaying one of them, by amounts on the order of milliseconds, resulting in phasing sounds.
---
----@field flanger integer
+---| '"flanger"'
---
---Decaying feedback based effect, on the order of milliseconds. Used to simulate the reflection off of the surroundings.
---
----@field reverb integer
+---| '"reverb"'
---
---An implementation of amplitude modulation; multiplies the source signal with a simple waveform, to produce either volume changes, or inharmonic overtones.
---
----@field ringmodulator integer
+---| '"ringmodulator"'
---
---The different types of waveforms that can be used with the '''ringmodulator''' EffectType.
---
----@class love.EffectWaveform
+---@alias love.EffectWaveform
---
---A sawtooth wave, also known as a ramp wave. Named for its linear rise, and (near-)instantaneous fall along time.
---
----@field sawtooth integer
+---| '"sawtooth"'
---
---A sine wave. Follows a trigonometric sine function.
---
----@field sine integer
+---| '"sine"'
---
---A square wave. Switches between high and low states (near-)instantaneously.
---
----@field square integer
+---| '"square"'
---
---A triangle wave. Follows a linear rise and fall that repeats periodically.
---
----@field triangle integer
+---| '"triangle"'
---
---Types of filters for Sources.
---
----@class love.FilterType
+---@alias love.FilterType
---
---Low-pass filter. High frequency sounds are attenuated.
---
----@field lowpass integer
+---| '"lowpass"'
---
---High-pass filter. Low frequency sounds are attenuated.
---
----@field highpass integer
+---| '"highpass"'
---
---Band-pass filter. Both high and low frequency sounds are attenuated based on the given parameters.
---
----@field bandpass integer
+---| '"bandpass"'
---
---Types of audio sources.
---
---A good rule of thumb is to use stream for music files and static for all short sound effects. Basically, you want to avoid loading large files into memory at once.
---
----@class love.SourceType
+---@alias love.SourceType
---
---The whole audio is decoded.
---
----@field static integer
+---| '"static"'
---
---The audio is decoded in chunks when needed.
---
----@field stream integer
+---| '"stream"'
---
---The audio must be manually queued by the user.
---
----@field queue integer
+---| '"queue"'
---
---Units that represent time.
---
----@class love.TimeUnit
+---@alias love.TimeUnit
---
---Regular seconds.
---
----@field seconds integer
+---| '"seconds"'
---
---Audio samples.
---
----@field samples integer
+---| '"samples"'
diff --git a/meta/3rd/love2d/library/love.data.lua b/meta/3rd/love2d/library/love.data.lua
index 53a51d4b..b502d42e 100644
--- a/meta/3rd/love2d/library/love.data.lua
+++ b/meta/3rd/love2d/library/love.data.lua
@@ -135,75 +135,75 @@ function CompressedData:getFormat() end
---
---Compressed data formats.
---
----@class love.CompressedDataFormat
+---@alias love.CompressedDataFormat
---
---The LZ4 compression format. Compresses and decompresses very quickly, but the compression ratio is not the best. LZ4-HC is used when compression level 9 is specified. Some benchmarks are available here.
---
----@field lz4 integer
+---| '"lz4"'
---
---The zlib format is DEFLATE-compressed data with a small bit of header data. Compresses relatively slowly and decompresses moderately quickly, and has a decent compression ratio.
---
----@field zlib integer
+---| '"zlib"'
---
---The gzip format is DEFLATE-compressed data with a slightly larger header than zlib. Since it uses DEFLATE it has the same compression characteristics as the zlib format.
---
----@field gzip integer
+---| '"gzip"'
---
---Raw DEFLATE-compressed data (no header).
---
----@field deflate integer
+---| '"deflate"'
---
---Return type of various data-returning functions.
---
----@class love.ContainerType
+---@alias love.ContainerType
---
---Return type is ByteData.
---
----@field data integer
+---| '"data"'
---
---Return type is string.
---
----@field string integer
+---| '"string"'
---
---Encoding format used to encode or decode data.
---
----@class love.EncodeFormat
+---@alias love.EncodeFormat
---
---Encode/decode data as base64 binary-to-text encoding.
---
----@field base64 integer
+---| '"base64"'
---
---Encode/decode data as hexadecimal string.
---
----@field hex integer
+---| '"hex"'
---
---Hash algorithm of love.data.hash.
---
----@class love.HashFunction
+---@alias love.HashFunction
---
---MD5 hash algorithm (16 bytes).
---
----@field md5 integer
+---| '"md5"'
---
---SHA1 hash algorithm (20 bytes).
---
----@field sha1 integer
+---| '"sha1"'
---
---SHA2 hash algorithm with message digest size of 224 bits (28 bytes).
---
----@field sha224 integer
+---| '"sha224"'
---
---SHA2 hash algorithm with message digest size of 256 bits (32 bytes).
---
----@field sha256 integer
+---| '"sha256"'
---
---SHA2 hash algorithm with message digest size of 384 bits (48 bytes).
---
----@field sha384 integer
+---| '"sha384"'
---
---SHA2 hash algorithm with message digest size of 512 bits (64 bytes).
---
----@field sha512 integer
+---| '"sha512"'
diff --git a/meta/3rd/love2d/library/love.event.lua b/meta/3rd/love2d/library/love.event.lua
index 3e8d7ff4..44339d88 100644
--- a/meta/3rd/love2d/library/love.event.lua
+++ b/meta/3rd/love2d/library/love.event.lua
@@ -68,152 +68,152 @@ function love.event.wait() end
---
---Since 0.8.0, event names are no longer abbreviated.
---
----@class love.Event
+---@alias love.Event
---
---Window focus gained or lost
---
----@field focus integer
+---| '"focus"'
---
---Joystick pressed
---
----@field joystickpressed integer
+---| '"joystickpressed"'
---
---Joystick released
---
----@field joystickreleased integer
+---| '"joystickreleased"'
---
---Key pressed
---
----@field keypressed integer
+---| '"keypressed"'
---
---Key released
---
----@field keyreleased integer
+---| '"keyreleased"'
---
---Mouse pressed
---
----@field mousepressed integer
+---| '"mousepressed"'
---
---Mouse released
---
----@field mousereleased integer
+---| '"mousereleased"'
---
---Quit
---
----@field quit integer
+---| '"quit"'
---
---Window size changed by the user
---
----@field resize integer
+---| '"resize"'
---
---Window is minimized or un-minimized by the user
---
----@field visible integer
+---| '"visible"'
---
---Window mouse focus gained or lost
---
----@field mousefocus integer
+---| '"mousefocus"'
---
---A Lua error has occurred in a thread
---
----@field threaderror integer
+---| '"threaderror"'
---
---Joystick connected
---
----@field joystickadded integer
+---| '"joystickadded"'
---
---Joystick disconnected
---
----@field joystickremoved integer
+---| '"joystickremoved"'
---
---Joystick axis motion
---
----@field joystickaxis integer
+---| '"joystickaxis"'
---
---Joystick hat pressed
---
----@field joystickhat integer
+---| '"joystickhat"'
---
---Joystick's virtual gamepad button pressed
---
----@field gamepadpressed integer
+---| '"gamepadpressed"'
---
---Joystick's virtual gamepad button released
---
----@field gamepadreleased integer
+---| '"gamepadreleased"'
---
---Joystick's virtual gamepad axis moved
---
----@field gamepadaxis integer
+---| '"gamepadaxis"'
---
---User entered text
---
----@field textinput integer
+---| '"textinput"'
---
---Mouse position changed
---
----@field mousemoved integer
+---| '"mousemoved"'
---
---Running out of memory on mobile devices system
---
----@field lowmemory integer
+---| '"lowmemory"'
---
---Candidate text for an IME changed
---
----@field textedited integer
+---| '"textedited"'
---
---Mouse wheel moved
---
----@field wheelmoved integer
+---| '"wheelmoved"'
---
---Touch screen touched
---
----@field touchpressed integer
+---| '"touchpressed"'
---
---Touch screen stop touching
---
----@field touchreleased integer
+---| '"touchreleased"'
---
---Touch press moved inside touch screen
---
----@field touchmoved integer
+---| '"touchmoved"'
---
---Directory is dragged and dropped onto the window
---
----@field directorydropped integer
+---| '"directorydropped"'
---
---File is dragged and dropped onto the window.
---
----@field filedropped integer
+---| '"filedropped"'
---
---Joystick pressed
---
----@field jp integer
+---| '"jp"'
---
---Joystick released
---
----@field jr integer
+---| '"jr"'
---
---Key pressed
---
----@field kp integer
+---| '"kp"'
---
---Key released
---
----@field kr integer
+---| '"kr"'
---
---Mouse pressed
---
----@field mp integer
+---| '"mp"'
---
---Mouse released
---
----@field mr integer
+---| '"mr"'
---
---Quit
---
----@field q integer
+---| '"q"'
---
---Window focus gained or lost
---
----@field f integer
+---| '"f"'
diff --git a/meta/3rd/love2d/library/love.filesystem.lua b/meta/3rd/love2d/library/love.filesystem.lua
index 9f2d9ce8..5865b6bc 100644
--- a/meta/3rd/love2d/library/love.filesystem.lua
+++ b/meta/3rd/love2d/library/love.filesystem.lua
@@ -414,71 +414,71 @@ function FileData:getFilename() end
---
---Buffer modes for File objects.
---
----@class love.BufferMode
+---@alias love.BufferMode
---
---No buffering. The result of write and append operations appears immediately.
---
----@field none integer
+---| '"none"'
---
---Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.
---
----@field line integer
+---| '"line"'
---
---Full buffering. Write and append operations are always buffered until the buffer size limit is reached.
---
----@field full integer
+---| '"full"'
---
---How to decode a given FileData.
---
----@class love.FileDecoder
+---@alias love.FileDecoder
---
---The data is unencoded.
---
----@field file integer
+---| '"file"'
---
---The data is base64-encoded.
---
----@field base64 integer
+---| '"base64"'
---
---The different modes you can open a File in.
---
----@class love.FileMode
+---@alias love.FileMode
---
---Open a file for read.
---
----@field r integer
+---| '"r"'
---
---Open a file for write.
---
----@field w integer
+---| '"w"'
---
---Open a file for append.
---
----@field a integer
+---| '"a"'
---
---Do not open a file (represents a closed file.)
---
----@field c integer
+---| '"c"'
---
---The type of a file.
---
----@class love.FileType
+---@alias love.FileType
---
---Regular file.
---
----@field file integer
+---| '"file"'
---
---Directory.
---
----@field directory integer
+---| '"directory"'
---
---Symbolic link.
---
----@field symlink integer
+---| '"symlink"'
---
---Something completely different like a device.
---
----@field other integer
+---| '"other"'
diff --git a/meta/3rd/love2d/library/love.font.lua b/meta/3rd/love2d/library/love.font.lua
index 27f49d0e..f2eaf2a3 100644
--- a/meta/3rd/love2d/library/love.font.lua
+++ b/meta/3rd/love2d/library/love.font.lua
@@ -183,20 +183,20 @@ function Rasterizer:hasGlyphs(glyph1, glyph2) end
---
---True Type hinting mode.
---
----@class love.HintingMode
+---@alias love.HintingMode
---
---Default hinting. Should be preferred for typical antialiased fonts.
---
----@field normal integer
+---| '"normal"'
---
---Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.
---
----@field light integer
+---| '"light"'
---
---Results in aliased / unsmoothed text with either full opacity or completely transparent pixels. Should be used when antialiasing is not desired for the font.
---
----@field mono integer
+---| '"mono"'
---
---Disables hinting for the font. Results in fuzzier text.
---
----@field none integer
+---| '"none"'
diff --git a/meta/3rd/love2d/library/love.graphics.lua b/meta/3rd/love2d/library/love.graphics.lua
index 1a168421..72ef027a 100644
--- a/meta/3rd/love2d/library/love.graphics.lua
+++ b/meta/3rd/love2d/library/love.graphics.lua
@@ -2499,519 +2499,519 @@ function Video:tell() end
---
---Text alignment.
---
----@class love.AlignMode
+---@alias love.AlignMode
---
---Align text center.
---
----@field center integer
+---| '"center"'
---
---Align text left.
---
----@field left integer
+---| '"left"'
---
---Align text right.
---
----@field right integer
+---| '"right"'
---
---Align text both left and right.
---
----@field justify integer
+---| '"justify"'
---
---Different types of arcs that can be drawn.
---
----@class love.ArcType
+---@alias love.ArcType
---
---The arc is drawn like a slice of pie, with the arc circle connected to the center at its end-points.
---
----@field pie integer
+---| '"pie"'
---
---The arc circle's two end-points are unconnected when the arc is drawn as a line. Behaves like the "closed" arc type when the arc is drawn in filled mode.
---
----@field open integer
+---| '"open"'
---
---The arc circle's two end-points are connected to each other.
---
----@field closed integer
+---| '"closed"'
---
---Types of particle area spread distribution.
---
----@class love.AreaSpreadDistribution
+---@alias love.AreaSpreadDistribution
---
---Uniform distribution.
---
----@field uniform integer
+---| '"uniform"'
---
---Normal (gaussian) distribution.
---
----@field normal integer
+---| '"normal"'
---
---Uniform distribution in an ellipse.
---
----@field ellipse integer
+---| '"ellipse"'
---
---Distribution in an ellipse with particles spawning at the edges of the ellipse.
---
----@field borderellipse integer
+---| '"borderellipse"'
---
---Distribution in a rectangle with particles spawning at the edges of the rectangle.
---
----@field borderrectangle integer
+---| '"borderrectangle"'
---
---No distribution - area spread is disabled.
---
----@field none integer
+---| '"none"'
---
---Different ways alpha affects color blending. See BlendMode and the BlendMode Formulas for additional notes.
---
----@class love.BlendAlphaMode
+---@alias love.BlendAlphaMode
---
---The RGB values of what's drawn are multiplied by the alpha values of those colors during blending. This is the default alpha mode.
---
----@field alphamultiply integer
+---| '"alphamultiply"'
---
---The RGB values of what's drawn are '''not''' multiplied by the alpha values of those colors during blending. For most blend modes to work correctly with this alpha mode, the colors of a drawn object need to have had their RGB values multiplied by their alpha values at some point previously ("premultiplied alpha").
---
----@field premultiplied integer
+---| '"premultiplied"'
---
---Different ways to do color blending. See BlendAlphaMode and the BlendMode Formulas for additional notes.
---
----@class love.BlendMode
+---@alias love.BlendMode
---
---Alpha blending (normal). The alpha of what's drawn determines its opacity.
---
----@field alpha integer
+---| '"alpha"'
---
---The colors of what's drawn completely replace what was on the screen, with no additional blending. The BlendAlphaMode specified in love.graphics.setBlendMode still affects what happens.
---
----@field replace integer
+---| '"replace"'
---
---'Screen' blending.
---
----@field screen integer
+---| '"screen"'
---
---The pixel colors of what's drawn are added to the pixel colors already on the screen. The alpha of the screen is not modified.
---
----@field add integer
+---| '"add"'
---
---The pixel colors of what's drawn are subtracted from the pixel colors already on the screen. The alpha of the screen is not modified.
---
----@field subtract integer
+---| '"subtract"'
---
---The pixel colors of what's drawn are multiplied with the pixel colors already on the screen (darkening them). The alpha of drawn objects is multiplied with the alpha of the screen rather than determining how much the colors on the screen are affected, even when the "alphamultiply" BlendAlphaMode is used.
---
----@field multiply integer
+---| '"multiply"'
---
---The pixel colors of what's drawn are compared to the existing pixel colors, and the larger of the two values for each color component is used. Only works when the "premultiplied" BlendAlphaMode is used in love.graphics.setBlendMode.
---
----@field lighten integer
+---| '"lighten"'
---
---The pixel colors of what's drawn are compared to the existing pixel colors, and the smaller of the two values for each color component is used. Only works when the "premultiplied" BlendAlphaMode is used in love.graphics.setBlendMode.
---
----@field darken integer
+---| '"darken"'
---
---Additive blend mode.
---
----@field additive integer
+---| '"additive"'
---
---Subtractive blend mode.
---
----@field subtractive integer
+---| '"subtractive"'
---
---Multiply blend mode.
---
----@field multiplicative integer
+---| '"multiplicative"'
---
---Premultiplied alpha blend mode.
---
----@field premultiplied integer
+---| '"premultiplied"'
---
---Different types of per-pixel stencil test and depth test comparisons. The pixels of an object will be drawn if the comparison succeeds, for each pixel that the object touches.
---
----@class love.CompareMode
+---@alias love.CompareMode
---
---* stencil tests: the stencil value of the pixel must be equal to the supplied value.
---* depth tests: the depth value of the drawn object at that pixel must be equal to the existing depth value of that pixel.
---
----@field equal integer
+---| '"equal"'
---
---* stencil tests: the stencil value of the pixel must not be equal to the supplied value.
---* depth tests: the depth value of the drawn object at that pixel must not be equal to the existing depth value of that pixel.
---
----@field notequal integer
+---| '"notequal"'
---
---* stencil tests: the stencil value of the pixel must be less than the supplied value.
---* depth tests: the depth value of the drawn object at that pixel must be less than the existing depth value of that pixel.
---
----@field less integer
+---| '"less"'
---
---* stencil tests: the stencil value of the pixel must be less than or equal to the supplied value.
---* depth tests: the depth value of the drawn object at that pixel must be less than or equal to the existing depth value of that pixel.
---
----@field lequal integer
+---| '"lequal"'
---
---* stencil tests: the stencil value of the pixel must be greater than or equal to the supplied value.
---* depth tests: the depth value of the drawn object at that pixel must be greater than or equal to the existing depth value of that pixel.
---
----@field gequal integer
+---| '"gequal"'
---
---* stencil tests: the stencil value of the pixel must be greater than the supplied value.
---* depth tests: the depth value of the drawn object at that pixel must be greater than the existing depth value of that pixel.
---
----@field greater integer
+---| '"greater"'
---
---Objects will never be drawn.
---
----@field never integer
+---| '"never"'
---
---Objects will always be drawn. Effectively disables the depth or stencil test.
---
----@field always integer
+---| '"always"'
---
---How Mesh geometry is culled when rendering.
---
----@class love.CullMode
+---@alias love.CullMode
---
---Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.
---
----@field back integer
+---| '"back"'
---
---Front-facing triangles in Meshes are culled.
---
----@field front integer
+---| '"front"'
---
---Both back- and front-facing triangles in Meshes are rendered.
---
----@field none integer
+---| '"none"'
---
---Controls whether shapes are drawn as an outline, or filled.
---
----@class love.DrawMode
+---@alias love.DrawMode
---
---Draw filled shape.
---
----@field fill integer
+---| '"fill"'
---
---Draw outlined shape.
---
----@field line integer
+---| '"line"'
---
---How the image is filtered when scaling.
---
----@class love.FilterMode
+---@alias love.FilterMode
---
---Scale image with linear interpolation.
---
----@field linear integer
+---| '"linear"'
---
---Scale image with nearest neighbor interpolation.
---
----@field nearest integer
+---| '"nearest"'
---
---Graphics features that can be checked for with love.graphics.getSupported.
---
----@class love.GraphicsFeature
+---@alias love.GraphicsFeature
---
---Whether the "clampzero" WrapMode is supported.
---
----@field clampzero integer
+---| '"clampzero"'
---
---Whether the "lighten" and "darken" BlendModes are supported.
---
----@field lighten integer
+---| '"lighten"'
---
---Whether multiple formats can be used in the same love.graphics.setCanvas call.
---
----@field multicanvasformats integer
+---| '"multicanvasformats"'
---
---Whether GLSL 3 Shaders can be used.
---
----@field glsl3 integer
+---| '"glsl3"'
---
---Whether mesh instancing is supported.
---
----@field instancing integer
+---| '"instancing"'
---
---Whether textures with non-power-of-two dimensions can use mipmapping and the 'repeat' WrapMode.
---
----@field fullnpot integer
+---| '"fullnpot"'
---
---Whether pixel shaders can use "highp" 32 bit floating point numbers (as opposed to just 16 bit or lower precision).
---
----@field pixelshaderhighp integer
+---| '"pixelshaderhighp"'
---
---Whether shaders can use the dFdx, dFdy, and fwidth functions for computing derivatives.
---
----@field shaderderivatives integer
+---| '"shaderderivatives"'
---
---Types of system-dependent graphics limits checked for using love.graphics.getSystemLimits.
---
----@class love.GraphicsLimit
+---@alias love.GraphicsLimit
---
---The maximum size of points.
---
----@field pointsize integer
+---| '"pointsize"'
---
---The maximum width or height of Images and Canvases.
---
----@field texturesize integer
+---| '"texturesize"'
---
---The maximum number of simultaneously active canvases (via love.graphics.setCanvas.)
---
----@field multicanvas integer
+---| '"multicanvas"'
---
---The maximum number of antialiasing samples for a Canvas.
---
----@field canvasmsaa integer
+---| '"canvasmsaa"'
---
---The maximum number of layers in an Array texture.
---
----@field texturelayers integer
+---| '"texturelayers"'
---
---The maximum width, height, or depth of a Volume texture.
---
----@field volumetexturesize integer
+---| '"volumetexturesize"'
---
---The maximum width or height of a Cubemap texture.
---
----@field cubetexturesize integer
+---| '"cubetexturesize"'
---
---The maximum amount of anisotropic filtering. Texture:setMipmapFilter internally clamps the given anisotropy value to the system's limit.
---
----@field anisotropy integer
+---| '"anisotropy"'
---
---Vertex map datatype for Data variant of Mesh:setVertexMap.
---
----@class love.IndexDataType
+---@alias love.IndexDataType
---
---The vertex map is array of unsigned word (16-bit).
---
----@field uint16 integer
+---| '"uint16"'
---
---The vertex map is array of unsigned dword (32-bit).
---
----@field uint32 integer
+---| '"uint32"'
---
---Line join style.
---
----@class love.LineJoin
+---@alias love.LineJoin
---
---The ends of the line segments beveled in an angle so that they join seamlessly.
---
----@field miter integer
+---| '"miter"'
---
---No cap applied to the ends of the line segments.
---
----@field none integer
+---| '"none"'
---
---Flattens the point where line segments join together.
---
----@field bevel integer
+---| '"bevel"'
---
---The styles in which lines are drawn.
---
----@class love.LineStyle
+---@alias love.LineStyle
---
---Draw rough lines.
---
----@field rough integer
+---| '"rough"'
---
---Draw smooth lines.
---
----@field smooth integer
+---| '"smooth"'
---
---How a Mesh's vertices are used when drawing.
---
----@class love.MeshDrawMode
+---@alias love.MeshDrawMode
---
---The vertices create a "fan" shape with the first vertex acting as the hub point. Can be easily used to draw simple convex polygons.
---
----@field fan integer
+---| '"fan"'
---
---The vertices create a series of connected triangles using vertices 1, 2, 3, then 3, 2, 4 (note the order), then 3, 4, 5, and so on.
---
----@field strip integer
+---| '"strip"'
---
---The vertices create unconnected triangles.
---
----@field triangles integer
+---| '"triangles"'
---
---The vertices are drawn as unconnected points (see love.graphics.setPointSize.)
---
----@field points integer
+---| '"points"'
---
---Controls whether a Canvas has mipmaps, and its behaviour when it does.
---
----@class love.MipmapMode
+---@alias love.MipmapMode
---
---The Canvas has no mipmaps.
---
----@field none integer
+---| '"none"'
---
---The Canvas has mipmaps. love.graphics.setCanvas can be used to render to a specific mipmap level, or Canvas:generateMipmaps can (re-)compute all mipmap levels based on the base level.
---
----@field auto integer
+---| '"auto"'
---
---The Canvas has mipmaps, and all mipmap levels will automatically be recomputed when switching away from the Canvas with love.graphics.setCanvas.
---
----@field manual integer
+---| '"manual"'
---
---How newly created particles are added to the ParticleSystem.
---
----@class love.ParticleInsertMode
+---@alias love.ParticleInsertMode
---
---Particles are inserted at the top of the ParticleSystem's list of particles.
---
----@field top integer
+---| '"top"'
---
---Particles are inserted at the bottom of the ParticleSystem's list of particles.
---
----@field bottom integer
+---| '"bottom"'
---
---Particles are inserted at random positions in the ParticleSystem's list of particles.
---
----@field random integer
+---| '"random"'
---
---Usage hints for SpriteBatches and Meshes to optimize data storage and access.
---
----@class love.SpriteBatchUsage
+---@alias love.SpriteBatchUsage
---
---The object's data will change occasionally during its lifetime.
---
----@field dynamic integer
+---| '"dynamic"'
---
---The object will not be modified after initial sprites or vertices are added.
---
----@field static integer
+---| '"static"'
---
---The object data will always change between draws.
---
----@field stream integer
+---| '"stream"'
---
---Graphics state stack types used with love.graphics.push.
---
----@class love.StackType
+---@alias love.StackType
---
---The transformation stack (love.graphics.translate, love.graphics.rotate, etc.)
---
----@field transform integer
+---| '"transform"'
---
---All love.graphics state, including transform state.
---
----@field all integer
+---| '"all"'
---
---How a stencil function modifies the stencil values of pixels it touches.
---
----@class love.StencilAction
+---@alias love.StencilAction
---
---The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.
---
----@field replace integer
+---| '"replace"'
---
---The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If the stencil value reaches 255 it will stay at 255.
---
----@field increment integer
+---| '"increment"'
---
---The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value reaches 0 it will stay at 0.
---
----@field decrement integer
+---| '"decrement"'
---
---The stencil value of a pixel will be incremented by 1 for each object that touches the pixel. If a stencil value of 255 is incremented it will be set to 0.
---
----@field incrementwrap integer
+---| '"incrementwrap"'
---
---The stencil value of a pixel will be decremented by 1 for each object that touches the pixel. If the stencil value of 0 is decremented it will be set to 255.
---
----@field decrementwrap integer
+---| '"decrementwrap"'
---
---The stencil value of a pixel will be bitwise-inverted for each object that touches the pixel. If a stencil value of 0 is inverted it will become 255.
---
----@field invert integer
+---| '"invert"'
---
---Types of textures (2D, cubemap, etc.)
---
----@class love.TextureType
+---@alias love.TextureType
---
---Regular 2D texture with width and height.
---
----@field ["2d"] integer
+---| '"2d"'
---
---Several same-size 2D textures organized into a single object. Similar to a texture atlas / sprite sheet, but avoids sprite bleeding and other issues.
---
----@field array integer
+---| '"array"'
---
---Cubemap texture with 6 faces. Requires a custom shader (and Shader:send) to use. Sampling from a cube texture in a shader takes a 3D direction vector instead of a texture coordinate.
---
----@field cube integer
+---| '"cube"'
---
---3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.
---
----@field volume integer
+---| '"volume"'
---
---The frequency at which a vertex shader fetches the vertex attribute's data from the Mesh when it's drawn.
---
---Per-instance attributes can be used to render a Mesh many times with different positions, colors, or other attributes via a single love.graphics.drawInstanced call, without using the love_InstanceID vertex shader variable.
---
----@class love.VertexAttributeStep
+---@alias love.VertexAttributeStep
---
---The vertex attribute will have a unique value for each vertex in the Mesh.
---
----@field pervertex integer
+---| '"pervertex"'
---
---The vertex attribute will have a unique value for each instance of the Mesh.
---
----@field perinstance integer
+---| '"perinstance"'
---
---How Mesh geometry vertices are ordered.
---
----@class love.VertexWinding
+---@alias love.VertexWinding
---
---Clockwise.
---
----@field cw integer
+---| '"cw"'
---
---Counter-clockwise.
---
----@field ccw integer
+---| '"ccw"'
---
---How the image wraps inside a Quad with a larger quad size than image size. This also affects how Meshes with texture coordinates which are outside the range of 1 are drawn, and the color returned by the Texel Shader function when using it to sample from texture coordinates outside of the range of 1.
---
----@class love.WrapMode
+---@alias love.WrapMode
---
---Clamp the texture. Appears only once. The area outside the texture's normal range is colored based on the edge pixels of the texture.
---
----@field clamp integer
+---| '"clamp"'
---
---Repeat the texture. Fills the whole available extent.
---
----@field repeat integer
+---| '"repeat"'
---
---Repeat the texture, flipping it each time it repeats. May produce better visual results than the repeat mode when the texture doesn't seamlessly tile.
---
----@field mirroredrepeat integer
+---| '"mirroredrepeat"'
---
---Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)
---
----@field clampzero integer
+---| '"clampzero"'
diff --git a/meta/3rd/love2d/library/love.image.lua b/meta/3rd/love2d/library/love.image.lua
index 9dc9c6e7..c95f6d7f 100644
--- a/meta/3rd/love2d/library/love.image.lua
+++ b/meta/3rd/love2d/library/love.image.lua
@@ -190,430 +190,430 @@ function ImageData:setPixel(x, y, r, g, b, a) end
---
---Unlike traditional PNG or jpeg, these formats stay compressed in RAM and in the graphics card's VRAM. This is good for saving memory space as well as improving performance, since the graphics card will be able to keep more of the image's pixels in its fast-access cache when drawing it.
---
----@class love.CompressedImageFormat
+---@alias love.CompressedImageFormat
---
---The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.
---
----@field DXT1 integer
+---| '"DXT1"'
---
---The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.
---
----@field DXT3 integer
+---| '"DXT3"'
---
---The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.
---
----@field DXT5 integer
+---| '"DXT5"'
---
---The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.
---
----@field BC4 integer
+---| '"BC4"'
---
---The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.
---
----@field BC4s integer
+---| '"BC4s"'
---
---The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.
---
----@field BC5 integer
+---| '"BC5"'
---
---The signed variant of the BC5 format.
---
----@field BC5s integer
+---| '"BC5s"'
---
---The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.
---
----@field BC6h integer
+---| '"BC6h"'
---
---The signed variant of the BC6H format. Stores RGB data in the range of +65504.
---
----@field BC6hs integer
+---| '"BC6hs"'
---
---The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.
---
----@field BC7 integer
+---| '"BC7"'
---
---The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.
---
----@field ETC1 integer
+---| '"ETC1"'
---
---The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.
---
----@field ETC2rgb integer
+---| '"ETC2rgb"'
---
---The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.
---
----@field ETC2rgba integer
+---| '"ETC2rgba"'
---
---The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.
---
----@field ETC2rgba1 integer
+---| '"ETC2rgba1"'
---
---The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.
---
----@field EACr integer
+---| '"EACr"'
---
---The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.
---
----@field EACrs integer
+---| '"EACrs"'
---
---The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.
---
----@field EACrg integer
+---| '"EACrg"'
---
---The signed two-channel variant of the EAC format.
---
----@field EACrgs integer
+---| '"EACrgs"'
---
---The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.
---
----@field PVR1rgb2 integer
+---| '"PVR1rgb2"'
---
---The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.
---
----@field PVR1rgb4 integer
+---| '"PVR1rgb4"'
---
---The 2 bit per pixel RGBA variant of the PVRTC1 format.
---
----@field PVR1rgba2 integer
+---| '"PVR1rgba2"'
---
---The 4 bit per pixel RGBA variant of the PVRTC1 format.
---
----@field PVR1rgba4 integer
+---| '"PVR1rgba4"'
---
---The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.
---
----@field ASTC4x4 integer
+---| '"ASTC4x4"'
---
---The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.
---
----@field ASTC5x4 integer
+---| '"ASTC5x4"'
---
---The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.
---
----@field ASTC5x5 integer
+---| '"ASTC5x5"'
---
---The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.
---
----@field ASTC6x5 integer
+---| '"ASTC6x5"'
---
---The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.
---
----@field ASTC6x6 integer
+---| '"ASTC6x6"'
---
---The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.
---
----@field ASTC8x5 integer
+---| '"ASTC8x5"'
---
---The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.
---
----@field ASTC8x6 integer
+---| '"ASTC8x6"'
---
---The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.
---
----@field ASTC8x8 integer
+---| '"ASTC8x8"'
---
---The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.
---
----@field ASTC10x5 integer
+---| '"ASTC10x5"'
---
---The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.
---
----@field ASTC10x6 integer
+---| '"ASTC10x6"'
---
---The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.
---
----@field ASTC10x8 integer
+---| '"ASTC10x8"'
---
---The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.
---
----@field ASTC10x10 integer
+---| '"ASTC10x10"'
---
---The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.
---
----@field ASTC12x10 integer
+---| '"ASTC12x10"'
---
---The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.
---
----@field ASTC12x12 integer
+---| '"ASTC12x12"'
---
---Encoded image formats.
---
----@class love.ImageFormat
+---@alias love.ImageFormat
---
---Targa image format.
---
----@field tga integer
+---| '"tga"'
---
---PNG image format.
---
----@field png integer
+---| '"png"'
---
---JPG image format.
---
----@field jpg integer
+---| '"jpg"'
---
---BMP image format.
---
----@field bmp integer
+---| '"bmp"'
---
---Pixel formats for Textures, ImageData, and CompressedImageData.
---
----@class love.PixelFormat
+---@alias love.PixelFormat
---
---Indicates unknown pixel format, used internally.
---
----@field unknown integer
+---| '"unknown"'
---
---Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.
---
----@field normal integer
+---| '"normal"'
---
---A format suitable for high dynamic range content - an alias for the rgba16f format, normally.
---
----@field hdr integer
+---| '"hdr"'
---
---Single-channel (red component) format (8 bpp).
---
----@field r8 integer
+---| '"r8"'
---
---Two channels (red and green components) with 8 bits per channel (16 bpp).
---
----@field rg8 integer
+---| '"rg8"'
---
---8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).
---
----@field rgba8 integer
+---| '"rgba8"'
---
---gamma-correct version of rgba8.
---
----@field srgba8 integer
+---| '"srgba8"'
---
---Single-channel (red component) format (16 bpp).
---
----@field r16 integer
+---| '"r16"'
---
---Two channels (red and green components) with 16 bits per channel (32 bpp).
---
----@field rg16 integer
+---| '"rg16"'
---
---16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).
---
----@field rgba16 integer
+---| '"rgba16"'
---
---Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].
---
----@field r16f integer
+---| '"r16f"'
---
---Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].
---
----@field rg16f integer
+---| '"rg16f"'
---
---Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].
---
----@field rgba16f integer
+---| '"rgba16f"'
---
---Floating point single-channel format (32 bpp).
---
----@field r32f integer
+---| '"r32f"'
---
---Floating point two-channel format with 32 bits per channel (64 bpp).
---
----@field rg32f integer
+---| '"rg32f"'
---
---Floating point RGBA with 32 bits per channel (128 bpp).
---
----@field rgba32f integer
+---| '"rgba32f"'
---
---Same as rg8, but accessed as (L, L, L, A)
---
----@field la8 integer
+---| '"la8"'
---
---4 bits per channel (16 bpp) RGBA.
---
----@field rgba4 integer
+---| '"rgba4"'
---
---RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).
---
----@field rgb5a1 integer
+---| '"rgb5a1"'
---
---RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.
---
----@field rgb565 integer
+---| '"rgb565"'
---
---RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).
---
----@field rgb10a2 integer
+---| '"rgb10a2"'
---
---Floating point RGB with 11 bits in the red and green channels, and 10 bits in the blue channel (32 bpp). There is no alpha channel. Color values can range from [0, +65024].
---
----@field rg11b10f integer
+---| '"rg11b10f"'
---
---No depth buffer and 8-bit stencil buffer.
---
----@field stencil8 integer
+---| '"stencil8"'
---
---16-bit depth buffer and no stencil buffer.
---
----@field depth16 integer
+---| '"depth16"'
---
---24-bit depth buffer and no stencil buffer.
---
----@field depth24 integer
+---| '"depth24"'
---
---32-bit float depth buffer and no stencil buffer.
---
----@field depth32f integer
+---| '"depth32f"'
---
---24-bit depth buffer and 8-bit stencil buffer.
---
----@field depth24stencil8 integer
+---| '"depth24stencil8"'
---
---32-bit float depth buffer and 8-bit stencil buffer.
---
----@field depth32fstencil8 integer
+---| '"depth32fstencil8"'
---
---The DXT1 format. RGB data at 4 bits per pixel (compared to 32 bits for ImageData and regular Images.) Suitable for fully opaque images on desktop systems.
---
----@field DXT1 integer
+---| '"DXT1"'
---
---The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.
---
----@field DXT3 integer
+---| '"DXT3"'
---
---The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.
---
----@field DXT5 integer
+---| '"DXT5"'
---
---The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.
---
----@field BC4 integer
+---| '"BC4"'
---
---The signed variant of the BC4 format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.
---
----@field BC4s integer
+---| '"BC4s"'
---
---The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.
---
----@field BC5 integer
+---| '"BC5"'
---
---The signed variant of the BC5 format.
---
----@field BC5s integer
+---| '"BC5s"'
---
---The BC6H format. Stores half-precision floating-point RGB data in the range of 65504 at 8 bits per pixel. Suitable for HDR images on desktop systems.
---
----@field BC6h integer
+---| '"BC6h"'
---
---The signed variant of the BC6H format. Stores RGB data in the range of +65504.
---
----@field BC6hs integer
+---| '"BC6hs"'
---
---The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.
---
----@field BC7 integer
+---| '"BC7"'
---
---The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.
---
----@field ETC1 integer
+---| '"ETC1"'
---
---The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.
---
----@field ETC2rgb integer
+---| '"ETC2rgb"'
---
---The RGBA variant of the ETC2 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on newer mobile devices.
---
----@field ETC2rgba integer
+---| '"ETC2rgba"'
---
---The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.
---
----@field ETC2rgba1 integer
+---| '"ETC2rgba1"'
---
---The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.
---
----@field EACr integer
+---| '"EACr"'
---
---The signed single-channel variant of the EAC format. Same as above but pixel values in the texture are in the range of 1 instead of 1 in shaders.
---
----@field EACrs integer
+---| '"EACrs"'
---
---The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.
---
----@field EACrg integer
+---| '"EACrg"'
---
---The signed two-channel variant of the EAC format.
---
----@field EACrgs integer
+---| '"EACrgs"'
---
---The 2 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 2 bits per pixel. Textures compressed with PVRTC1 formats must be square and power-of-two sized.
---
----@field PVR1rgb2 integer
+---| '"PVR1rgb2"'
---
---The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.
---
----@field PVR1rgb4 integer
+---| '"PVR1rgb4"'
---
---The 2 bit per pixel RGBA variant of the PVRTC1 format.
---
----@field PVR1rgba2 integer
+---| '"PVR1rgba2"'
---
---The 4 bit per pixel RGBA variant of the PVRTC1 format.
---
----@field PVR1rgba4 integer
+---| '"PVR1rgba4"'
---
---The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.
---
----@field ASTC4x4 integer
+---| '"ASTC4x4"'
---
---The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.
---
----@field ASTC5x4 integer
+---| '"ASTC5x4"'
---
---The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.
---
----@field ASTC5x5 integer
+---| '"ASTC5x5"'
---
---The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.
---
----@field ASTC6x5 integer
+---| '"ASTC6x5"'
---
---The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.
---
----@field ASTC6x6 integer
+---| '"ASTC6x6"'
---
---The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.
---
----@field ASTC8x5 integer
+---| '"ASTC8x5"'
---
---The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.
---
----@field ASTC8x6 integer
+---| '"ASTC8x6"'
---
---The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.
---
----@field ASTC8x8 integer
+---| '"ASTC8x8"'
---
---The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.
---
----@field ASTC10x5 integer
+---| '"ASTC10x5"'
---
---The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.
---
----@field ASTC10x6 integer
+---| '"ASTC10x6"'
---
---The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.
---
----@field ASTC10x8 integer
+---| '"ASTC10x8"'
---
---The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.
---
----@field ASTC10x10 integer
+---| '"ASTC10x10"'
---
---The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.
---
----@field ASTC12x10 integer
+---| '"ASTC12x10"'
---
---The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.
---
----@field ASTC12x12 integer
+---| '"ASTC12x12"'
diff --git a/meta/3rd/love2d/library/love.joystick.lua b/meta/3rd/love2d/library/love.joystick.lua
index 65cfdc6b..df3ea208 100644
--- a/meta/3rd/love2d/library/love.joystick.lua
+++ b/meta/3rd/love2d/library/love.joystick.lua
@@ -218,151 +218,151 @@ function Joystick:setVibration(left, right) end
---
---Virtual gamepad axes.
---
----@class love.GamepadAxis
+---@alias love.GamepadAxis
---
---The x-axis of the left thumbstick.
---
----@field leftx integer
+---| '"leftx"'
---
---The y-axis of the left thumbstick.
---
----@field lefty integer
+---| '"lefty"'
---
---The x-axis of the right thumbstick.
---
----@field rightx integer
+---| '"rightx"'
---
---The y-axis of the right thumbstick.
---
----@field righty integer
+---| '"righty"'
---
---Left analog trigger.
---
----@field triggerleft integer
+---| '"triggerleft"'
---
---Right analog trigger.
---
----@field triggerright integer
+---| '"triggerright"'
---
---Virtual gamepad buttons.
---
----@class love.GamepadButton
+---@alias love.GamepadButton
---
---Bottom face button (A).
---
----@field a integer
+---| '"a"'
---
---Right face button (B).
---
----@field b integer
+---| '"b"'
---
---Left face button (X).
---
----@field x integer
+---| '"x"'
---
---Top face button (Y).
---
----@field y integer
+---| '"y"'
---
---Back button.
---
----@field back integer
+---| '"back"'
---
---Guide button.
---
----@field guide integer
+---| '"guide"'
---
---Start button.
---
----@field start integer
+---| '"start"'
---
---Left stick click button.
---
----@field leftstick integer
+---| '"leftstick"'
---
---Right stick click button.
---
----@field rightstick integer
+---| '"rightstick"'
---
---Left bumper.
---
----@field leftshoulder integer
+---| '"leftshoulder"'
---
---Right bumper.
---
----@field rightshoulder integer
+---| '"rightshoulder"'
---
---D-pad up.
---
----@field dpup integer
+---| '"dpup"'
---
---D-pad down.
---
----@field dpdown integer
+---| '"dpdown"'
---
---D-pad left.
---
----@field dpleft integer
+---| '"dpleft"'
---
---D-pad right.
---
----@field dpright integer
+---| '"dpright"'
---
---Joystick hat positions.
---
----@class love.JoystickHat
+---@alias love.JoystickHat
---
---Centered
---
----@field c integer
+---| '"c"'
---
---Down
---
----@field d integer
+---| '"d"'
---
---Left
---
----@field l integer
+---| '"l"'
---
---Left+Down
---
----@field ld integer
+---| '"ld"'
---
---Left+Up
---
----@field lu integer
+---| '"lu"'
---
---Right
---
----@field r integer
+---| '"r"'
---
---Right+Down
---
----@field rd integer
+---| '"rd"'
---
---Right+Up
---
----@field ru integer
+---| '"ru"'
---
---Up
---
----@field u integer
+---| '"u"'
---
---Types of Joystick inputs.
---
----@class love.JoystickInputType
+---@alias love.JoystickInputType
---
---Analog axis.
---
----@field axis integer
+---| '"axis"'
---
---Button.
---
----@field button integer
+---| '"button"'
---
---8-direction hat value.
---
----@field hat integer
+---| '"hat"'
diff --git a/meta/3rd/love2d/library/love.keyboard.lua b/meta/3rd/love2d/library/love.keyboard.lua
index 66ab4e65..1f1a2ef5 100644
--- a/meta/3rd/love2d/library/love.keyboard.lua
+++ b/meta/3rd/love2d/library/love.keyboard.lua
@@ -81,583 +81,583 @@ function love.keyboard.setTextInput(enable) end
---
---All the keys you can press. Note that some keys may not be available on your keyboard or system.
---
----@class love.KeyConstant
+---@alias love.KeyConstant
---
---The A key
---
----@field a integer
+---| '"a"'
---
---The B key
---
----@field b integer
+---| '"b"'
---
---The C key
---
----@field c integer
+---| '"c"'
---
---The D key
---
----@field d integer
+---| '"d"'
---
---The E key
---
----@field e integer
+---| '"e"'
---
---The F key
---
----@field f integer
+---| '"f"'
---
---The G key
---
----@field g integer
+---| '"g"'
---
---The H key
---
----@field h integer
+---| '"h"'
---
---The I key
---
----@field i integer
+---| '"i"'
---
---The J key
---
----@field j integer
+---| '"j"'
---
---The K key
---
----@field k integer
+---| '"k"'
---
---The L key
---
----@field l integer
+---| '"l"'
---
---The M key
---
----@field m integer
+---| '"m"'
---
---The N key
---
----@field n integer
+---| '"n"'
---
---The O key
---
----@field o integer
+---| '"o"'
---
---The P key
---
----@field p integer
+---| '"p"'
---
---The Q key
---
----@field q integer
+---| '"q"'
---
---The R key
---
----@field r integer
+---| '"r"'
---
---The S key
---
----@field s integer
+---| '"s"'
---
---The T key
---
----@field t integer
+---| '"t"'
---
---The U key
---
----@field u integer
+---| '"u"'
---
---The V key
---
----@field v integer
+---| '"v"'
---
---The W key
---
----@field w integer
+---| '"w"'
---
---The X key
---
----@field x integer
+---| '"x"'
---
---The Y key
---
----@field y integer
+---| '"y"'
---
---The Z key
---
----@field z integer
+---| '"z"'
---
---The zero key
---
----@field ["0"] integer
+---| '"0"'
---
---The one key
---
----@field ["1"] integer
+---| '"1"'
---
---The two key
---
----@field ["2"] integer
+---| '"2"'
---
---The three key
---
----@field ["3"] integer
+---| '"3"'
---
---The four key
---
----@field ["4"] integer
+---| '"4"'
---
---The five key
---
----@field ["5"] integer
+---| '"5"'
---
---The six key
---
----@field ["6"] integer
+---| '"6"'
---
---The seven key
---
----@field ["7"] integer
+---| '"7"'
---
---The eight key
---
----@field ["8"] integer
+---| '"8"'
---
---The nine key
---
----@field ["9"] integer
+---| '"9"'
---
---Space key
---
----@field space integer
+---| '"space"'
---
---Exclamation mark key
---
----@field ["!"] integer
+---| '"!"'
---
---Double quote key
---
----@field ["\""] integer
+---| '"\""'
---
---Hash key
---
----@field ["#"] integer
+---| '"#"'
---
---Dollar key
---
----@field ["$"] integer
+---| '"$"'
---
---Ampersand key
---
----@field ["&"] integer
+---| '"&"'
---
---Single quote key
---
----@field ["'"] integer
+---| '"\'"'
---
---Left parenthesis key
---
----@field ["("] integer
+---| '"("'
---
---Right parenthesis key
---
----@field [")"] integer
+---| '")"'
---
---Asterisk key
---
----@field ["*"] integer
+---| '"*"'
---
---Plus key
---
----@field ["+"] integer
+---| '"+"'
---
---Comma key
---
----@field [","] integer
+---| '","'
---
---Hyphen-minus key
---
----@field ["-"] integer
+---| '"-"'
---
---Full stop key
---
----@field ["."] integer
+---| '"."'
---
---Slash key
---
----@field ["/"] integer
+---| '"/"'
---
---Colon key
---
----@field [":"] integer
+---| '":"'
---
---Semicolon key
---
----@field [";"] integer
+---| '";"'
---
---Less-than key
---
----@field ["<"] integer
+---| '"<"'
---
---Equal key
---
----@field ["="] integer
+---| '"="'
---
---Greater-than key
---
----@field [">"] integer
+---| '">"'
---
---Question mark key
---
----@field ["?"] integer
+---| '"?"'
---
---At sign key
---
----@field ["@"] integer
+---| '"@"'
---
---Left square bracket key
---
----@field ["["] integer
+---| '"["'
---
---Backslash key
---
----@field ["\\"] integer
+---| '"\\"'
---
---Right square bracket key
---
----@field ["]"] integer
+---| '"]"'
---
---Caret key
---
----@field ["^"] integer
+---| '"^"'
---
---Underscore key
---
----@field _ integer
+---| '"_"'
---
---Grave accent key
---
----@field ["`"] integer
+---| '"`"'
---
---The numpad zero key
---
----@field kp0 integer
+---| '"kp0"'
---
---The numpad one key
---
----@field kp1 integer
+---| '"kp1"'
---
---The numpad two key
---
----@field kp2 integer
+---| '"kp2"'
---
---The numpad three key
---
----@field kp3 integer
+---| '"kp3"'
---
---The numpad four key
---
----@field kp4 integer
+---| '"kp4"'
---
---The numpad five key
---
----@field kp5 integer
+---| '"kp5"'
---
---The numpad six key
---
----@field kp6 integer
+---| '"kp6"'
---
---The numpad seven key
---
----@field kp7 integer
+---| '"kp7"'
---
---The numpad eight key
---
----@field kp8 integer
+---| '"kp8"'
---
---The numpad nine key
---
----@field kp9 integer
+---| '"kp9"'
---
---The numpad decimal point key
---
----@field ["kp."] integer
+---| '"kp."'
---
---The numpad division key
---
----@field ["kp/"] integer
+---| '"kp/"'
---
---The numpad multiplication key
---
----@field ["kp*"] integer
+---| '"kp*"'
---
---The numpad substraction key
---
----@field ["kp-"] integer
+---| '"kp-"'
---
---The numpad addition key
---
----@field ["kp+"] integer
+---| '"kp+"'
---
---The numpad enter key
---
----@field kpenter integer
+---| '"kpenter"'
---
---The numpad equals key
---
----@field ["kp="] integer
+---| '"kp="'
---
---Up cursor key
---
----@field up integer
+---| '"up"'
---
---Down cursor key
---
----@field down integer
+---| '"down"'
---
---Right cursor key
---
----@field right integer
+---| '"right"'
---
---Left cursor key
---
----@field left integer
+---| '"left"'
---
---Home key
---
----@field home integer
+---| '"home"'
---
---End key
---
----@field end integer
+---| '"end"'
---
---Page up key
---
----@field pageup integer
+---| '"pageup"'
---
---Page down key
---
----@field pagedown integer
+---| '"pagedown"'
---
---Insert key
---
----@field insert integer
+---| '"insert"'
---
---Backspace key
---
----@field backspace integer
+---| '"backspace"'
---
---Tab key
---
----@field tab integer
+---| '"tab"'
---
---Clear key
---
----@field clear integer
+---| '"clear"'
---
---Return key
---
----@field return integer
+---| '"return"'
---
---Delete key
---
----@field delete integer
+---| '"delete"'
---
---The 1st function key
---
----@field f1 integer
+---| '"f1"'
---
---The 2nd function key
---
----@field f2 integer
+---| '"f2"'
---
---The 3rd function key
---
----@field f3 integer
+---| '"f3"'
---
---The 4th function key
---
----@field f4 integer
+---| '"f4"'
---
---The 5th function key
---
----@field f5 integer
+---| '"f5"'
---
---The 6th function key
---
----@field f6 integer
+---| '"f6"'
---
---The 7th function key
---
----@field f7 integer
+---| '"f7"'
---
---The 8th function key
---
----@field f8 integer
+---| '"f8"'
---
---The 9th function key
---
----@field f9 integer
+---| '"f9"'
---
---The 10th function key
---
----@field f10 integer
+---| '"f10"'
---
---The 11th function key
---
----@field f11 integer
+---| '"f11"'
---
---The 12th function key
---
----@field f12 integer
+---| '"f12"'
---
---The 13th function key
---
----@field f13 integer
+---| '"f13"'
---
---The 14th function key
---
----@field f14 integer
+---| '"f14"'
---
---The 15th function key
---
----@field f15 integer
+---| '"f15"'
---
---Num-lock key
---
----@field numlock integer
+---| '"numlock"'
---
---Caps-lock key
---
----@field capslock integer
+---| '"capslock"'
---
---Scroll-lock key
---
----@field scrollock integer
+---| '"scrollock"'
---
---Right shift key
---
----@field rshift integer
+---| '"rshift"'
---
---Left shift key
---
----@field lshift integer
+---| '"lshift"'
---
---Right control key
---
----@field rctrl integer
+---| '"rctrl"'
---
---Left control key
---
----@field lctrl integer
+---| '"lctrl"'
---
---Right alt key
---
----@field ralt integer
+---| '"ralt"'
---
---Left alt key
---
----@field lalt integer
+---| '"lalt"'
---
---Right meta key
---
----@field rmeta integer
+---| '"rmeta"'
---
---Left meta key
---
----@field lmeta integer
+---| '"lmeta"'
---
---Left super key
---
----@field lsuper integer
+---| '"lsuper"'
---
---Right super key
---
----@field rsuper integer
+---| '"rsuper"'
---
---Mode key
---
----@field mode integer
+---| '"mode"'
---
---Compose key
---
----@field compose integer
+---| '"compose"'
---
---Pause key
---
----@field pause integer
+---| '"pause"'
---
---Escape key
---
----@field escape integer
+---| '"escape"'
---
---Help key
---
----@field help integer
+---| '"help"'
---
---Print key
---
----@field print integer
+---| '"print"'
---
---System request key
---
----@field sysreq integer
+---| '"sysreq"'
---
---Break key
---
----@field break integer
+---| '"break"'
---
---Menu key
---
----@field menu integer
+---| '"menu"'
---
---Power key
---
----@field power integer
+---| '"power"'
---
---Euro (&euro;) key
---
----@field euro integer
+---| '"euro"'
---
---Undo key
---
----@field undo integer
+---| '"undo"'
---
---WWW key
---
----@field www integer
+---| '"www"'
---
---Mail key
---
----@field mail integer
+---| '"mail"'
---
---Calculator key
---
----@field calculator integer
+---| '"calculator"'
---
---Application search key
---
----@field appsearch integer
+---| '"appsearch"'
---
---Application home key
---
----@field apphome integer
+---| '"apphome"'
---
---Application back key
---
----@field appback integer
+---| '"appback"'
---
---Application forward key
---
----@field appforward integer
+---| '"appforward"'
---
---Application refresh key
---
----@field apprefresh integer
+---| '"apprefresh"'
---
---Application bookmarks key
---
----@field appbookmarks integer
+---| '"appbookmarks"'
---
---Keyboard scancodes.
@@ -668,780 +668,780 @@ function love.keyboard.setTextInput(enable) end
---
---One could use textinput or textedited instead, but those only give back the end result of keys used, i.e. you can't get modifiers on their own from it, only the final symbols that were generated.
---
----@class love.Scancode
+---@alias love.Scancode
---
---The 'A' key on an American layout.
---
----@field a integer
+---| '"a"'
---
---The 'B' key on an American layout.
---
----@field b integer
+---| '"b"'
---
---The 'C' key on an American layout.
---
----@field c integer
+---| '"c"'
---
---The 'D' key on an American layout.
---
----@field d integer
+---| '"d"'
---
---The 'E' key on an American layout.
---
----@field e integer
+---| '"e"'
---
---The 'F' key on an American layout.
---
----@field f integer
+---| '"f"'
---
---The 'G' key on an American layout.
---
----@field g integer
+---| '"g"'
---
---The 'H' key on an American layout.
---
----@field h integer
+---| '"h"'
---
---The 'I' key on an American layout.
---
----@field i integer
+---| '"i"'
---
---The 'J' key on an American layout.
---
----@field j integer
+---| '"j"'
---
---The 'K' key on an American layout.
---
----@field k integer
+---| '"k"'
---
---The 'L' key on an American layout.
---
----@field l integer
+---| '"l"'
---
---The 'M' key on an American layout.
---
----@field m integer
+---| '"m"'
---
---The 'N' key on an American layout.
---
----@field n integer
+---| '"n"'
---
---The 'O' key on an American layout.
---
----@field o integer
+---| '"o"'
---
---The 'P' key on an American layout.
---
----@field p integer
+---| '"p"'
---
---The 'Q' key on an American layout.
---
----@field q integer
+---| '"q"'
---
---The 'R' key on an American layout.
---
----@field r integer
+---| '"r"'
---
---The 'S' key on an American layout.
---
----@field s integer
+---| '"s"'
---
---The 'T' key on an American layout.
---
----@field t integer
+---| '"t"'
---
---The 'U' key on an American layout.
---
----@field u integer
+---| '"u"'
---
---The 'V' key on an American layout.
---
----@field v integer
+---| '"v"'
---
---The 'W' key on an American layout.
---
----@field w integer
+---| '"w"'
---
---The 'X' key on an American layout.
---
----@field x integer
+---| '"x"'
---
---The 'Y' key on an American layout.
---
----@field y integer
+---| '"y"'
---
---The 'Z' key on an American layout.
---
----@field z integer
+---| '"z"'
---
---The '1' key on an American layout.
---
----@field ["1"] integer
+---| '"1"'
---
---The '2' key on an American layout.
---
----@field ["2"] integer
+---| '"2"'
---
---The '3' key on an American layout.
---
----@field ["3"] integer
+---| '"3"'
---
---The '4' key on an American layout.
---
----@field ["4"] integer
+---| '"4"'
---
---The '5' key on an American layout.
---
----@field ["5"] integer
+---| '"5"'
---
---The '6' key on an American layout.
---
----@field ["6"] integer
+---| '"6"'
---
---The '7' key on an American layout.
---
----@field ["7"] integer
+---| '"7"'
---
---The '8' key on an American layout.
---
----@field ["8"] integer
+---| '"8"'
---
---The '9' key on an American layout.
---
----@field ["9"] integer
+---| '"9"'
---
---The '0' key on an American layout.
---
----@field ["0"] integer
+---| '"0"'
---
---The 'return' / 'enter' key on an American layout.
---
----@field return integer
+---| '"return"'
---
---The 'escape' key on an American layout.
---
----@field escape integer
+---| '"escape"'
---
---The 'backspace' key on an American layout.
---
----@field backspace integer
+---| '"backspace"'
---
---The 'tab' key on an American layout.
---
----@field tab integer
+---| '"tab"'
---
---The spacebar on an American layout.
---
----@field space integer
+---| '"space"'
---
---The minus key on an American layout.
---
----@field ["-"] integer
+---| '"-"'
---
---The equals key on an American layout.
---
----@field ["="] integer
+---| '"="'
---
---The left-bracket key on an American layout.
---
----@field ["["] integer
+---| '"["'
---
---The right-bracket key on an American layout.
---
----@field ["]"] integer
+---| '"]"'
---
---The backslash key on an American layout.
---
----@field ["\\"] integer
+---| '"\\"'
---
---The non-U.S. hash scancode.
---
----@field ["nonus#"] integer
+---| '"nonus#"'
---
---The semicolon key on an American layout.
---
----@field [";"] integer
+---| '";"'
---
---The apostrophe key on an American layout.
---
----@field ["'"] integer
+---| '"\'"'
---
---The back-tick / grave key on an American layout.
---
----@field ["`"] integer
+---| '"`"'
---
---The comma key on an American layout.
---
----@field [","] integer
+---| '","'
---
---The period key on an American layout.
---
----@field ["."] integer
+---| '"."'
---
---The forward-slash key on an American layout.
---
----@field ["/"] integer
+---| '"/"'
---
---The capslock key on an American layout.
---
----@field capslock integer
+---| '"capslock"'
---
---The F1 key on an American layout.
---
----@field f1 integer
+---| '"f1"'
---
---The F2 key on an American layout.
---
----@field f2 integer
+---| '"f2"'
---
---The F3 key on an American layout.
---
----@field f3 integer
+---| '"f3"'
---
---The F4 key on an American layout.
---
----@field f4 integer
+---| '"f4"'
---
---The F5 key on an American layout.
---
----@field f5 integer
+---| '"f5"'
---
---The F6 key on an American layout.
---
----@field f6 integer
+---| '"f6"'
---
---The F7 key on an American layout.
---
----@field f7 integer
+---| '"f7"'
---
---The F8 key on an American layout.
---
----@field f8 integer
+---| '"f8"'
---
---The F9 key on an American layout.
---
----@field f9 integer
+---| '"f9"'
---
---The F10 key on an American layout.
---
----@field f10 integer
+---| '"f10"'
---
---The F11 key on an American layout.
---
----@field f11 integer
+---| '"f11"'
---
---The F12 key on an American layout.
---
----@field f12 integer
+---| '"f12"'
---
---The F13 key on an American layout.
---
----@field f13 integer
+---| '"f13"'
---
---The F14 key on an American layout.
---
----@field f14 integer
+---| '"f14"'
---
---The F15 key on an American layout.
---
----@field f15 integer
+---| '"f15"'
---
---The F16 key on an American layout.
---
----@field f16 integer
+---| '"f16"'
---
---The F17 key on an American layout.
---
----@field f17 integer
+---| '"f17"'
---
---The F18 key on an American layout.
---
----@field f18 integer
+---| '"f18"'
---
---The F19 key on an American layout.
---
----@field f19 integer
+---| '"f19"'
---
---The F20 key on an American layout.
---
----@field f20 integer
+---| '"f20"'
---
---The F21 key on an American layout.
---
----@field f21 integer
+---| '"f21"'
---
---The F22 key on an American layout.
---
----@field f22 integer
+---| '"f22"'
---
---The F23 key on an American layout.
---
----@field f23 integer
+---| '"f23"'
---
---The F24 key on an American layout.
---
----@field f24 integer
+---| '"f24"'
---
---The left control key on an American layout.
---
----@field lctrl integer
+---| '"lctrl"'
---
---The left shift key on an American layout.
---
----@field lshift integer
+---| '"lshift"'
---
---The left alt / option key on an American layout.
---
----@field lalt integer
+---| '"lalt"'
---
---The left GUI (command / windows / super) key on an American layout.
---
----@field lgui integer
+---| '"lgui"'
---
---The right control key on an American layout.
---
----@field rctrl integer
+---| '"rctrl"'
---
---The right shift key on an American layout.
---
----@field rshift integer
+---| '"rshift"'
---
---The right alt / option key on an American layout.
---
----@field ralt integer
+---| '"ralt"'
---
---The right GUI (command / windows / super) key on an American layout.
---
----@field rgui integer
+---| '"rgui"'
---
---The printscreen key on an American layout.
---
----@field printscreen integer
+---| '"printscreen"'
---
---The scroll-lock key on an American layout.
---
----@field scrolllock integer
+---| '"scrolllock"'
---
---The pause key on an American layout.
---
----@field pause integer
+---| '"pause"'
---
---The insert key on an American layout.
---
----@field insert integer
+---| '"insert"'
---
---The home key on an American layout.
---
----@field home integer
+---| '"home"'
---
---The numlock / clear key on an American layout.
---
----@field numlock integer
+---| '"numlock"'
---
---The page-up key on an American layout.
---
----@field pageup integer
+---| '"pageup"'
---
---The forward-delete key on an American layout.
---
----@field delete integer
+---| '"delete"'
---
---The end key on an American layout.
---
----@field end integer
+---| '"end"'
---
---The page-down key on an American layout.
---
----@field pagedown integer
+---| '"pagedown"'
---
---The right-arrow key on an American layout.
---
----@field right integer
+---| '"right"'
---
---The left-arrow key on an American layout.
---
----@field left integer
+---| '"left"'
---
---The down-arrow key on an American layout.
---
----@field down integer
+---| '"down"'
---
---The up-arrow key on an American layout.
---
----@field up integer
+---| '"up"'
---
---The non-U.S. backslash scancode.
---
----@field nonusbackslash integer
+---| '"nonusbackslash"'
---
---The application key on an American layout. Windows contextual menu, compose key.
---
----@field application integer
+---| '"application"'
---
---The 'execute' key on an American layout.
---
----@field execute integer
+---| '"execute"'
---
---The 'help' key on an American layout.
---
----@field help integer
+---| '"help"'
---
---The 'menu' key on an American layout.
---
----@field menu integer
+---| '"menu"'
---
---The 'select' key on an American layout.
---
----@field select integer
+---| '"select"'
---
---The 'stop' key on an American layout.
---
----@field stop integer
+---| '"stop"'
---
---The 'again' key on an American layout.
---
----@field again integer
+---| '"again"'
---
---The 'undo' key on an American layout.
---
----@field undo integer
+---| '"undo"'
---
---The 'cut' key on an American layout.
---
----@field cut integer
+---| '"cut"'
---
---The 'copy' key on an American layout.
---
----@field copy integer
+---| '"copy"'
---
---The 'paste' key on an American layout.
---
----@field paste integer
+---| '"paste"'
---
---The 'find' key on an American layout.
---
----@field find integer
+---| '"find"'
---
---The keypad forward-slash key on an American layout.
---
----@field ["kp/"] integer
+---| '"kp/"'
---
---The keypad '*' key on an American layout.
---
----@field ["kp*"] integer
+---| '"kp*"'
---
---The keypad minus key on an American layout.
---
----@field ["kp-"] integer
+---| '"kp-"'
---
---The keypad plus key on an American layout.
---
----@field ["kp+"] integer
+---| '"kp+"'
---
---The keypad equals key on an American layout.
---
----@field ["kp="] integer
+---| '"kp="'
---
---The keypad enter key on an American layout.
---
----@field kpenter integer
+---| '"kpenter"'
---
---The keypad '1' key on an American layout.
---
----@field kp1 integer
+---| '"kp1"'
---
---The keypad '2' key on an American layout.
---
----@field kp2 integer
+---| '"kp2"'
---
---The keypad '3' key on an American layout.
---
----@field kp3 integer
+---| '"kp3"'
---
---The keypad '4' key on an American layout.
---
----@field kp4 integer
+---| '"kp4"'
---
---The keypad '5' key on an American layout.
---
----@field kp5 integer
+---| '"kp5"'
---
---The keypad '6' key on an American layout.
---
----@field kp6 integer
+---| '"kp6"'
---
---The keypad '7' key on an American layout.
---
----@field kp7 integer
+---| '"kp7"'
---
---The keypad '8' key on an American layout.
---
----@field kp8 integer
+---| '"kp8"'
---
---The keypad '9' key on an American layout.
---
----@field kp9 integer
+---| '"kp9"'
---
---The keypad '0' key on an American layout.
---
----@field kp0 integer
+---| '"kp0"'
---
---The keypad period key on an American layout.
---
----@field ["kp."] integer
+---| '"kp."'
---
---The 1st international key on an American layout. Used on Asian keyboards.
---
----@field international1 integer
+---| '"international1"'
---
---The 2nd international key on an American layout.
---
----@field international2 integer
+---| '"international2"'
---
---The 3rd international key on an American layout. Yen.
---
----@field international3 integer
+---| '"international3"'
---
---The 4th international key on an American layout.
---
----@field international4 integer
+---| '"international4"'
---
---The 5th international key on an American layout.
---
----@field international5 integer
+---| '"international5"'
---
---The 6th international key on an American layout.
---
----@field international6 integer
+---| '"international6"'
---
---The 7th international key on an American layout.
---
----@field international7 integer
+---| '"international7"'
---
---The 8th international key on an American layout.
---
----@field international8 integer
+---| '"international8"'
---
---The 9th international key on an American layout.
---
----@field international9 integer
+---| '"international9"'
---
---Hangul/English toggle scancode.
---
----@field lang1 integer
+---| '"lang1"'
---
---Hanja conversion scancode.
---
----@field lang2 integer
+---| '"lang2"'
---
---Katakana scancode.
---
----@field lang3 integer
+---| '"lang3"'
---
---Hiragana scancode.
---
----@field lang4 integer
+---| '"lang4"'
---
---Zenkaku/Hankaku scancode.
---
----@field lang5 integer
+---| '"lang5"'
---
---The mute key on an American layout.
---
----@field mute integer
+---| '"mute"'
---
---The volume up key on an American layout.
---
----@field volumeup integer
+---| '"volumeup"'
---
---The volume down key on an American layout.
---
----@field volumedown integer
+---| '"volumedown"'
---
---The audio next track key on an American layout.
---
----@field audionext integer
+---| '"audionext"'
---
---The audio previous track key on an American layout.
---
----@field audioprev integer
+---| '"audioprev"'
---
---The audio stop key on an American layout.
---
----@field audiostop integer
+---| '"audiostop"'
---
---The audio play key on an American layout.
---
----@field audioplay integer
+---| '"audioplay"'
---
---The audio mute key on an American layout.
---
----@field audiomute integer
+---| '"audiomute"'
---
---The media select key on an American layout.
---
----@field mediaselect integer
+---| '"mediaselect"'
---
---The 'WWW' key on an American layout.
---
----@field www integer
+---| '"www"'
---
---The Mail key on an American layout.
---
----@field mail integer
+---| '"mail"'
---
---The calculator key on an American layout.
---
----@field calculator integer
+---| '"calculator"'
---
---The 'computer' key on an American layout.
---
----@field computer integer
+---| '"computer"'
---
---The AC Search key on an American layout.
---
----@field acsearch integer
+---| '"acsearch"'
---
---The AC Home key on an American layout.
---
----@field achome integer
+---| '"achome"'
---
---The AC Back key on an American layout.
---
----@field acback integer
+---| '"acback"'
---
---The AC Forward key on an American layout.
---
----@field acforward integer
+---| '"acforward"'
---
---Th AC Stop key on an American layout.
---
----@field acstop integer
+---| '"acstop"'
---
---The AC Refresh key on an American layout.
---
----@field acrefresh integer
+---| '"acrefresh"'
---
---The AC Bookmarks key on an American layout.
---
----@field acbookmarks integer
+---| '"acbookmarks"'
---
---The system power scancode.
---
----@field power integer
+---| '"power"'
---
---The brightness-down scancode.
---
----@field brightnessdown integer
+---| '"brightnessdown"'
---
---The brightness-up scancode.
---
----@field brightnessup integer
+---| '"brightnessup"'
---
---The display switch scancode.
---
----@field displayswitch integer
+---| '"displayswitch"'
---
---The keyboard illumination toggle scancode.
---
----@field kbdillumtoggle integer
+---| '"kbdillumtoggle"'
---
---The keyboard illumination down scancode.
---
----@field kbdillumdown integer
+---| '"kbdillumdown"'
---
---The keyboard illumination up scancode.
---
----@field kbdillumup integer
+---| '"kbdillumup"'
---
---The eject scancode.
---
----@field eject integer
+---| '"eject"'
---
---The system sleep scancode.
---
----@field sleep integer
+---| '"sleep"'
---
---The alt-erase key on an American layout.
---
----@field alterase integer
+---| '"alterase"'
---
---The sysreq key on an American layout.
---
----@field sysreq integer
+---| '"sysreq"'
---
---The 'cancel' key on an American layout.
---
----@field cancel integer
+---| '"cancel"'
---
---The 'clear' key on an American layout.
---
----@field clear integer
+---| '"clear"'
---
---The 'prior' key on an American layout.
---
----@field prior integer
+---| '"prior"'
---
---The 'return2' key on an American layout.
---
----@field return2 integer
+---| '"return2"'
---
---The 'separator' key on an American layout.
---
----@field separator integer
+---| '"separator"'
---
---The 'out' key on an American layout.
---
----@field out integer
+---| '"out"'
---
---The 'oper' key on an American layout.
---
----@field oper integer
+---| '"oper"'
---
---The 'clearagain' key on an American layout.
---
----@field clearagain integer
+---| '"clearagain"'
---
---The 'crsel' key on an American layout.
---
----@field crsel integer
+---| '"crsel"'
---
---The 'exsel' key on an American layout.
---
----@field exsel integer
+---| '"exsel"'
---
---The keypad 00 key on an American layout.
---
----@field kp00 integer
+---| '"kp00"'
---
---The keypad 000 key on an American layout.
---
----@field kp000 integer
+---| '"kp000"'
---
---The thousands-separator key on an American layout.
---
----@field thsousandsseparator integer
+---| '"thsousandsseparator"'
---
---The decimal separator key on an American layout.
---
----@field decimalseparator integer
+---| '"decimalseparator"'
---
---The currency unit key on an American layout.
---
----@field currencyunit integer
+---| '"currencyunit"'
---
---The currency sub-unit key on an American layout.
---
----@field currencysubunit integer
+---| '"currencysubunit"'
---
---The 'app1' scancode.
---
----@field app1 integer
+---| '"app1"'
---
---The 'app2' scancode.
---
----@field app2 integer
+---| '"app2"'
---
---An unknown key.
---
----@field unknown integer
+---| '"unknown"'
diff --git a/meta/3rd/love2d/library/love.math.lua b/meta/3rd/love2d/library/love.math.lua
index 5cd0c64f..14689c86 100644
--- a/meta/3rd/love2d/library/love.math.lua
+++ b/meta/3rd/love2d/library/love.math.lua
@@ -503,12 +503,12 @@ function Transform:translate(dx, dy) end
---
---The layout of matrix elements (row-major or column-major).
---
----@class love.MatrixLayout
+---@alias love.MatrixLayout
---
---The matrix is row-major:
---
----@field row integer
+---| '"row"'
---
---The matrix is column-major:
---
----@field column integer
+---| '"column"'
diff --git a/meta/3rd/love2d/library/love.mouse.lua b/meta/3rd/love2d/library/love.mouse.lua
index 3e9de39c..ac3e896e 100644
--- a/meta/3rd/love2d/library/love.mouse.lua
+++ b/meta/3rd/love2d/library/love.mouse.lua
@@ -161,56 +161,56 @@ function Cursor:getType() end
---
---Types of hardware cursors.
---
----@class love.CursorType
+---@alias love.CursorType
---
---The cursor is using a custom image.
---
----@field image integer
+---| '"image"'
---
---An arrow pointer.
---
----@field arrow integer
+---| '"arrow"'
---
---An I-beam, normally used when mousing over editable or selectable text.
---
----@field ibeam integer
+---| '"ibeam"'
---
---Wait graphic.
---
----@field wait integer
+---| '"wait"'
---
---Small wait cursor with an arrow pointer.
---
----@field waitarrow integer
+---| '"waitarrow"'
---
---Crosshair symbol.
---
----@field crosshair integer
+---| '"crosshair"'
---
---Double arrow pointing to the top-left and bottom-right.
---
----@field sizenwse integer
+---| '"sizenwse"'
---
---Double arrow pointing to the top-right and bottom-left.
---
----@field sizenesw integer
+---| '"sizenesw"'
---
---Double arrow pointing left and right.
---
----@field sizewe integer
+---| '"sizewe"'
---
---Double arrow pointing up and down.
---
----@field sizens integer
+---| '"sizens"'
---
---Four-pointed arrow pointing up, down, left, and right.
---
----@field sizeall integer
+---| '"sizeall"'
---
---Slashed circle or crossbones.
---
----@field no integer
+---| '"no"'
---
---Hand symbol.
---
----@field hand integer
+---| '"hand"'
diff --git a/meta/3rd/love2d/library/love.physics.lua b/meta/3rd/love2d/library/love.physics.lua
index 7d3cd04d..3b5b1c8a 100644
--- a/meta/3rd/love2d/library/love.physics.lua
+++ b/meta/3rd/love2d/library/love.physics.lua
@@ -2273,78 +2273,78 @@ function World:update(dt, velocityiterations, positioniterations) end
---
---The types of a Body.
---
----@class love.BodyType
+---@alias love.BodyType
---
---Static bodies do not move.
---
----@field static integer
+---| '"static"'
---
---Dynamic bodies collide with all bodies.
---
----@field dynamic integer
+---| '"dynamic"'
---
---Kinematic bodies only collide with dynamic bodies.
---
----@field kinematic integer
+---| '"kinematic"'
---
---Different types of joints.
---
----@class love.JointType
+---@alias love.JointType
---
---A DistanceJoint.
---
----@field distance integer
+---| '"distance"'
---
---A FrictionJoint.
---
----@field friction integer
+---| '"friction"'
---
---A GearJoint.
---
----@field gear integer
+---| '"gear"'
---
---A MouseJoint.
---
----@field mouse integer
+---| '"mouse"'
---
---A PrismaticJoint.
---
----@field prismatic integer
+---| '"prismatic"'
---
---A PulleyJoint.
---
----@field pulley integer
+---| '"pulley"'
---
---A RevoluteJoint.
---
----@field revolute integer
+---| '"revolute"'
---
---A RopeJoint.
---
----@field rope integer
+---| '"rope"'
---
---A WeldJoint.
---
----@field weld integer
+---| '"weld"'
---
---The different types of Shapes, as returned by Shape:getType.
---
----@class love.ShapeType
+---@alias love.ShapeType
---
---The Shape is a CircleShape.
---
----@field circle integer
+---| '"circle"'
---
---The Shape is a PolygonShape.
---
----@field polygon integer
+---| '"polygon"'
---
---The Shape is a EdgeShape.
---
----@field edge integer
+---| '"edge"'
---
---The Shape is a ChainShape.
---
----@field chain integer
+---| '"chain"'
diff --git a/meta/3rd/love2d/library/love.system.lua b/meta/3rd/love2d/library/love.system.lua
index 2419688a..154e2f79 100644
--- a/meta/3rd/love2d/library/love.system.lua
+++ b/meta/3rd/love2d/library/love.system.lua
@@ -62,24 +62,24 @@ function love.system.vibrate(seconds) end
---
---The basic state of the system's power supply.
---
----@class love.PowerState
+---@alias love.PowerState
---
---Cannot determine power status.
---
----@field unknown integer
+---| '"unknown"'
---
---Not plugged in, running on a battery.
---
----@field battery integer
+---| '"battery"'
---
---Plugged in, no battery available.
---
----@field nobattery integer
+---| '"nobattery"'
---
---Plugged in, charging battery.
---
----@field charging integer
+---| '"charging"'
---
---Plugged in, battery is fully charged.
---
----@field charged integer
+---| '"charged"'
diff --git a/meta/3rd/love2d/library/love.window.lua b/meta/3rd/love2d/library/love.window.lua
index 359ffdbe..0fd99213 100644
--- a/meta/3rd/love2d/library/love.window.lua
+++ b/meta/3rd/love2d/library/love.window.lua
@@ -296,58 +296,58 @@ function love.window.updateMode(width, height, settings) end
---
---Types of device display orientation.
---
----@class love.DisplayOrientation
+---@alias love.DisplayOrientation
---
---Orientation cannot be determined.
---
----@field unknown integer
+---| '"unknown"'
---
---Landscape orientation.
---
----@field landscape integer
+---| '"landscape"'
---
---Landscape orientation (flipped).
---
----@field landscapeflipped integer
+---| '"landscapeflipped"'
---
---Portrait orientation.
---
----@field portrait integer
+---| '"portrait"'
---
---Portrait orientation (flipped).
---
----@field portraitflipped integer
+---| '"portraitflipped"'
---
---Types of fullscreen modes.
---
----@class love.FullscreenType
+---@alias love.FullscreenType
---
---Sometimes known as borderless fullscreen windowed mode. A borderless screen-sized window is created which sits on top of all desktop UI elements. The window is automatically resized to match the dimensions of the desktop, and its size cannot be changed.
---
----@field desktop integer
+---| '"desktop"'
---
---Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.
---
----@field exclusive integer
+---| '"exclusive"'
---
---Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.
---
----@field normal integer
+---| '"normal"'
---
---Types of message box dialogs. Different types may have slightly different looks.
---
----@class love.MessageBoxType
+---@alias love.MessageBoxType
---
---Informational dialog.
---
----@field info integer
+---| '"info"'
---
---Warning dialog.
---
----@field warning integer
+---| '"warning"'
---
---Error dialog.
---
----@field error integer
+---| '"error"'
diff --git a/meta/3rd/lovr/library/lovr.audio.lua b/meta/3rd/lovr/library/lovr.audio.lua
index d8b1bd9d..a768b708 100644
--- a/meta/3rd/lovr/library/lovr.audio.lua
+++ b/meta/3rd/lovr/library/lovr.audio.lua
@@ -385,111 +385,111 @@ function Source:tell(unit) end
---
---Different types of audio material presets, for use with `lovr.audio.setGeometry`.
---
----@class lovr.AudioMaterial
+---@alias lovr.AudioMaterial
---
---Generic default audio material.
---
----@field generic integer
+---| '"generic"'
---
---Brick.
---
----@field brick integer
+---| '"brick"'
---
---Carpet.
---
----@field carpet integer
+---| '"carpet"'
---
---Ceramic.
---
----@field ceramic integer
+---| '"ceramic"'
---
---Concrete.
---
----@field concrete integer
----@field glass integer
----@field gravel integer
----@field metal integer
----@field plaster integer
----@field rock integer
----@field wood integer
+---| '"concrete"'
+---| '"glass"'
+---| '"gravel"'
+---| '"metal"'
+---| '"plaster"'
+---| '"rock"'
+---| '"wood"'
---
---Audio devices can be created in shared mode or exclusive mode. In exclusive mode, the audio device is the only one active on the system, which gives better performance and lower latency. However, exclusive devices aren't always supported and might not be allowed, so there is a higher chance that creating one will fail.
---
----@class lovr.AudioShareMode
+---@alias lovr.AudioShareMode
---
---Shared mode.
---
----@field shared integer
+---| '"shared"'
---
---Exclusive mode.
---
----@field exclusive integer
+---| '"exclusive"'
---
---When referencing audio devices, this indicates whether it's the playback or capture device.
---
----@class lovr.AudioType
+---@alias lovr.AudioType
---
---The playback device (speakers, headphones).
---
----@field playback integer
+---| '"playback"'
---
---The capture device (microphone).
---
----@field capture integer
+---| '"capture"'
---
---Different types of effects that can be applied with `Source:setEffectEnabled`.
---
----@class lovr.Effect
+---@alias lovr.Effect
---
---Models absorption as sound travels through the air, water, etc.
---
----@field absorption integer
+---| '"absorption"'
---
---Decreases audio volume with distance (1 / max(distance, 1)).
---
----@field falloff integer
+---| '"falloff"'
---
---Causes audio to drop off when the Source is occluded by geometry.
---
----@field occlusion integer
+---| '"occlusion"'
---
---Models reverb caused by audio bouncing off of geometry.
---
----@field reverb integer
+---| '"reverb"'
---
---Spatializes the Source using either simple panning or an HRTF.
---
----@field spatialization integer
+---| '"spatialization"'
---
---Causes audio to be heard through walls when occluded, based on audio materials.
---
----@field transmission integer
+---| '"transmission"'
---
---When figuring out how long a Source is or seeking to a specific position in the sound file, units can be expressed in terms of seconds or in terms of frames. A frame is one set of samples for each channel (one sample for mono, two samples for stereo).
---
----@class lovr.TimeUnit
+---@alias lovr.TimeUnit
---
---Seconds.
---
----@field seconds integer
+---| '"seconds"'
---
---Frames.
---
----@field frames integer
+---| '"frames"'
---
---When accessing the volume of Sources or the audio listener, this can be done in linear units with a 0 to 1 range, or in decibels with a range of -∞ to 0.
---
----@class lovr.VolumeUnit
+---@alias lovr.VolumeUnit
---
---Linear volume range.
---
----@field linear integer
+---| '"linear"'
---
---Decibels.
---
----@field db integer
+---| '"db"'
diff --git a/meta/3rd/lovr/library/lovr.data.lua b/meta/3rd/lovr/library/lovr.data.lua
index f43cbf94..aca66f8f 100644
--- a/meta/3rd/lovr/library/lovr.data.lua
+++ b/meta/3rd/lovr/library/lovr.data.lua
@@ -359,29 +359,29 @@ function Sound:setFrames(t, count, dstOffset, srcOffset) end
---
---Sounds can have different numbers of channels, and those channels can map to various speaker layouts.
---
----@class lovr.ChannelLayout
+---@alias lovr.ChannelLayout
---
---1 channel.
---
----@field mono integer
+---| '"mono"'
---
---2 channels. The first channel is for the left speaker and the second is for the right.
---
----@field stereo integer
+---| '"stereo"'
---
---4 channels. Ambisonic channels don't map directly to speakers but instead represent directions in 3D space, sort of like the images of a skybox. Currently, ambisonic sounds can only be loaded, not played.
---
----@field ambisonic integer
+---| '"ambisonic"'
---
---Sounds can store audio samples as 16 bit integers or 32 bit floats.
---
----@class lovr.SampleFormat
+---@alias lovr.SampleFormat
---
---32 bit floating point samples (between -1.0 and 1.0).
---
----@field f32 integer
+---| '"f32"'
---
---16 bit integer samples (between -32768 and 32767).
---
----@field i16 integer
+---| '"i16"'
diff --git a/meta/3rd/lovr/library/lovr.event.lua b/meta/3rd/lovr/library/lovr.event.lua
index 416d955f..5beeb5a1 100644
--- a/meta/3rd/lovr/library/lovr.event.lua
+++ b/meta/3rd/lovr/library/lovr.event.lua
@@ -44,344 +44,344 @@ function lovr.event.restart() end
---
---Keys that can be pressed on a keyboard. Notably, numpad keys are missing right now.
---
----@class lovr.KeyCode
+---@alias lovr.KeyCode
---
---The A key.
---
----@field a integer
+---| '"a"'
---
---The B key.
---
----@field b integer
+---| '"b"'
---
---The C key.
---
----@field c integer
+---| '"c"'
---
---The D key.
---
----@field d integer
+---| '"d"'
---
---The E key.
---
----@field e integer
+---| '"e"'
---
---The F key.
---
----@field f integer
+---| '"f"'
---
---The G key.
---
----@field g integer
+---| '"g"'
---
---The H key.
---
----@field h integer
+---| '"h"'
---
---The I key.
---
----@field i integer
+---| '"i"'
---
---The J key.
---
----@field j integer
+---| '"j"'
---
---The K key.
---
----@field k integer
+---| '"k"'
---
---The L key.
---
----@field l integer
+---| '"l"'
---
---The M key.
---
----@field m integer
+---| '"m"'
---
---The N key.
---
----@field n integer
+---| '"n"'
---
---The O key.
---
----@field o integer
+---| '"o"'
---
---The P key.
---
----@field p integer
+---| '"p"'
---
---The Q key.
---
----@field q integer
+---| '"q"'
---
---The R key.
---
----@field r integer
+---| '"r"'
---
---The S key.
---
----@field s integer
+---| '"s"'
---
---The T key.
---
----@field t integer
+---| '"t"'
---
---The U key.
---
----@field u integer
+---| '"u"'
---
---The V key.
---
----@field v integer
+---| '"v"'
---
---The W key.
---
----@field w integer
+---| '"w"'
---
---The X key.
---
----@field x integer
+---| '"x"'
---
---The Y key.
---
----@field y integer
+---| '"y"'
---
---The Z key.
---
----@field z integer
+---| '"z"'
---
---The 0 key.
---
----@field ["0"] integer
+---| '"0"'
---
---The 1 key.
---
----@field ["1"] integer
+---| '"1"'
---
---The 2 key.
---
----@field ["2"] integer
+---| '"2"'
---
---The 3 key.
---
----@field ["3"] integer
+---| '"3"'
---
---The 4 key.
---
----@field ["4"] integer
+---| '"4"'
---
---The 5 key.
---
----@field ["5"] integer
+---| '"5"'
---
---The 6 key.
---
----@field ["6"] integer
+---| '"6"'
---
---The 7 key.
---
----@field ["7"] integer
+---| '"7"'
---
---The 8 key.
---
----@field ["8"] integer
+---| '"8"'
---
---The 9 key.
---
----@field ["9"] integer
+---| '"9"'
---
---The space bar.
---
----@field space integer
+---| '"space"'
---
---The enter key.
---
----@field return integer
+---| '"return"'
---
---The tab key.
---
----@field tab integer
+---| '"tab"'
---
---The escape key.
---
----@field escape integer
+---| '"escape"'
---
---The backspace key.
---
----@field backspace integer
+---| '"backspace"'
---
---The up arrow key.
---
----@field up integer
+---| '"up"'
---
---The down arrow key.
---
----@field down integer
+---| '"down"'
---
---The left arrow key.
---
----@field left integer
+---| '"left"'
---
---The right arrow key.
---
----@field right integer
+---| '"right"'
---
---The home key.
---
----@field home integer
+---| '"home"'
---
---The end key.
---
----@field end integer
+---| '"end"'
---
---The page up key.
---
----@field pageup integer
+---| '"pageup"'
---
---The page down key.
---
----@field pagedown integer
+---| '"pagedown"'
---
---The insert key.
---
----@field insert integer
+---| '"insert"'
---
---The delete key.
---
----@field delete integer
+---| '"delete"'
---
---The F1 key.
---
----@field f1 integer
+---| '"f1"'
---
---The F2 key.
---
----@field f2 integer
+---| '"f2"'
---
---The F3 key.
---
----@field f3 integer
+---| '"f3"'
---
---The F4 key.
---
----@field f4 integer
+---| '"f4"'
---
---The F5 key.
---
----@field f5 integer
+---| '"f5"'
---
---The F6 key.
---
----@field f6 integer
+---| '"f6"'
---
---The F7 key.
---
----@field f7 integer
+---| '"f7"'
---
---The F8 key.
---
----@field f8 integer
+---| '"f8"'
---
---The F9 key.
---
----@field f9 integer
+---| '"f9"'
---
---The F10 key.
---
----@field f10 integer
+---| '"f10"'
---
---The F11 key.
---
----@field f11 integer
+---| '"f11"'
---
---The F12 key.
---
----@field f12 integer
+---| '"f12"'
---
---The backtick/backquote/grave accent key.
---
----@field ["`"] integer
+---| '"`"'
---
---The dash/hyphen/minus key.
---
----@field ["-"] integer
+---| '"-"'
---
---The equal sign key.
---
----@field ["="] integer
+---| '"="'
---
---The left bracket key.
---
----@field ["["] integer
+---| '"["'
---
---The right bracket key.
---
----@field ["]"] integer
+---| '"]"'
---
---The backslash key.
---
----@field ["\\"] integer
+---| '"\\"'
---
---The semicolon key.
---
----@field [";"] integer
+---| '";"'
---
---The single quote key.
---
----@field ["'"] integer
+---| '"\'"'
---
---The comma key.
---
----@field [","] integer
+---| '","'
---
---The period key.
---
----@field ["."] integer
+---| '"."'
---
---The slash key.
---
----@field ["/"] integer
+---| '"/"'
---
---The left control key.
---
----@field lctrl integer
+---| '"lctrl"'
---
---The left shift key.
---
----@field lshift integer
+---| '"lshift"'
---
---The left alt key.
---
----@field lalt integer
+---| '"lalt"'
---
---The left OS key (windows, command, super).
---
----@field lgui integer
+---| '"lgui"'
---
---The right control key.
---
----@field rctrl integer
+---| '"rctrl"'
---
---The right shift key.
---
----@field rshift integer
+---| '"rshift"'
---
---The right alt key.
---
----@field ralt integer
+---| '"ralt"'
---
---The right OS key (windows, command, super).
---
----@field rgui integer
+---| '"rgui"'
---
---The caps lock key.
---
----@field capslock integer
+---| '"capslock"'
---
---The scroll lock key.
---
----@field scrolllock integer
+---| '"scrolllock"'
---
---The numlock key.
---
----@field numlock integer
+---| '"numlock"'
diff --git a/meta/3rd/lovr/library/lovr.graphics.lua b/meta/3rd/lovr/library/lovr.graphics.lua
index ef6ffc46..61cf4d5f 100644
--- a/meta/3rd/lovr/library/lovr.graphics.lua
+++ b/meta/3rd/lovr/library/lovr.graphics.lua
@@ -1511,98 +1511,98 @@ function Texture:setWrap(horizontal, vertical) end
---
---Different ways arcs can be drawn with `lovr.graphics.arc`.
---
----@class lovr.ArcMode
+---@alias lovr.ArcMode
---
---The arc is drawn with the center of its circle included in the list of points (default).
---
----@field pie integer
+---| '"pie"'
---
---The curve of the arc is drawn as a single line.
---
----@field open integer
+---| '"open"'
---
---The starting and ending points of the arc's curve are connected.
---
----@field closed integer
+---| '"closed"'
---
---Here are the different data types available for vertex attributes in a Mesh. The ones that have a smaller range take up less memory, which improves performance a bit. The "u" stands for "unsigned", which means it can't hold negative values but instead has a larger positive range.
---
----@class lovr.AttributeType
+---@alias lovr.AttributeType
---
---A signed 8 bit number, from -128 to 127.
---
----@field byte integer
+---| '"byte"'
---
---An unsigned 8 bit number, from 0 to 255.
---
----@field ubyte integer
+---| '"ubyte"'
---
---A signed 16 bit number, from -32768 to 32767.
---
----@field short integer
+---| '"short"'
---
---An unsigned 16 bit number, from 0 to 65535.
---
----@field ushort integer
+---| '"ushort"'
---
---A signed 32 bit number, from -2147483648 to 2147483647.
---
----@field int integer
+---| '"int"'
---
---An unsigned 32 bit number, from 0 to 4294967295.
---
----@field uint integer
+---| '"uint"'
---
---A 32 bit floating-point number (large range, but can start to lose precision).
---
----@field float integer
+---| '"float"'
---
---Different ways the alpha channel of pixels affects blending.
---
----@class lovr.BlendAlphaMode
+---@alias lovr.BlendAlphaMode
---
---Color channel values are multiplied by the alpha channel during blending.
---
----@field alphamultiply integer
+---| '"alphamultiply"'
---
---Color channels are not multiplied by the alpha channel. This should be used if the pixels being drawn have already been blended, or "pre-multiplied", by the alpha channel.
---
----@field premultiplied integer
+---| '"premultiplied"'
---
---Blend modes control how overlapping pixels are blended together, similar to layers in Photoshop.
---
----@class lovr.BlendMode
+---@alias lovr.BlendMode
---
---Normal blending where the alpha value controls how the colors are blended.
---
----@field alpha integer
+---| '"alpha"'
---
---The incoming pixel color is added to the destination pixel color.
---
----@field add integer
+---| '"add"'
---
---The incoming pixel color is subtracted from the destination pixel color.
---
----@field subtract integer
+---| '"subtract"'
---
---The color channels from the two pixel values are multiplied together to produce a result.
---
----@field multiply integer
+---| '"multiply"'
---
---The maximum value from each color channel is used, resulting in a lightening effect.
---
----@field lighten integer
+---| '"lighten"'
---
---The minimum value from each color channel is used, resulting in a darkening effect.
---
----@field darken integer
+---| '"darken"'
---
---The opposite of multiply: The pixel values are inverted, multiplied, and inverted again, resulting in a lightening effect.
---
----@field screen integer
+---| '"screen"'
---
---There are two types of ShaderBlocks that can be used: `uniform` and `compute`.
@@ -1611,448 +1611,448 @@ function Texture:setWrap(horizontal, vertical) end
---
---Compute blocks can be written to by compute shaders, might be slightly slower than uniform blocks, and have a much, much larger maximum size.
---
----@class lovr.BlockType
+---@alias lovr.BlockType
---
---A uniform block.
---
----@field uniform integer
+---| '"uniform"'
---
---A compute block.
---
----@field compute integer
+---| '"compute"'
---
---This acts as a hint to the graphics driver about what kinds of data access should be optimized for.
---
----@class lovr.BufferUsage
+---@alias lovr.BufferUsage
---
---A buffer that you intend to create once and never modify.
---
----@field static integer
+---| '"static"'
---
---A buffer which is modified occasionally.
---
----@field dynamic integer
+---| '"dynamic"'
---
---A buffer which is entirely replaced on the order of every frame.
---
----@field stream integer
+---| '"stream"'
---
---The method used to compare z values when deciding how to overlap rendered objects. This is called the "depth test", and it happens on a pixel-by-pixel basis every time new objects are drawn. If the depth test "passes" for a pixel, then the pixel color will be replaced by the new color and the depth value in the depth buffer will be updated. Otherwise, the pixel will not be changed and the depth value will not be updated.
---
----@class lovr.CompareMode
+---@alias lovr.CompareMode
---
---The depth test passes when the depth values are equal.
---
----@field equal integer
+---| '"equal"'
---
---The depth test passes when the depth values are not equal.
---
----@field notequal integer
+---| '"notequal"'
---
---The depth test passes when the new depth value is less than the existing one.
---
----@field less integer
+---| '"less"'
---
---The depth test passes when the new depth value is less than or equal to the existing one.
---
----@field lequal integer
+---| '"lequal"'
---
---The depth test passes when the new depth value is greater than or equal to the existing one.
---
----@field gequal integer
+---| '"gequal"'
---
---The depth test passes when the new depth value is greater than the existing one.
---
----@field greater integer
+---| '"greater"'
---
---Different coordinate spaces for nodes in a Model.
---
----@class lovr.CoordinateSpace
+---@alias lovr.CoordinateSpace
---
---The coordinate space relative to the node's parent.
---
----@field local integer
+---| '"local"'
---
---The coordinate space relative to the root node of the Model.
---
----@field global integer
+---| '"global"'
---
---The following shaders are built in to LÖVR, and can be used as an argument to `lovr.graphics.newShader` instead of providing raw GLSL shader code. The shaders can be further customized by using the `flags` argument. If you pass in `nil` to `lovr.graphics.setShader`, LÖVR will automatically pick a DefaultShader to use based on whatever is being drawn.
---
----@class lovr.DefaultShader
+---@alias lovr.DefaultShader
---
---A simple shader without lighting, using only colors and a diffuse texture.
---
----@field unlit integer
+---| '"unlit"'
---
---A physically-based rendering (PBR) shader, using advanced material properties.
---
----@field standard integer
+---| '"standard"'
---
---A shader that renders a cubemap texture.
---
----@field cube integer
+---| '"cube"'
---
---A shader that renders a 2D equirectangular texture with spherical coordinates.
---
----@field pano integer
+---| '"pano"'
---
---A shader that renders font glyphs.
---
----@field font integer
+---| '"font"'
---
---A shader that passes its vertex coordinates unmodified to the fragment shader, used to render view-independent fixed geometry like fullscreen quads.
---
----@field fill integer
+---| '"fill"'
---
---Meshes are lists of arbitrary vertices. These vertices can be connected in different ways, leading to different shapes like lines and triangles.
---
----@class lovr.DrawMode
+---@alias lovr.DrawMode
---
---Draw each vertex as a single point.
---
----@field points integer
+---| '"points"'
---
---The vertices represent a list of line segments. Each pair of vertices will have a line drawn between them.
---
----@field lines integer
+---| '"lines"'
---
---The first two vertices have a line drawn between them, and each vertex after that will be connected to the previous vertex with a line.
---
----@field linestrip integer
+---| '"linestrip"'
---
---Similar to linestrip, except the last vertex is connected back to the first.
---
----@field lineloop integer
+---| '"lineloop"'
---
---The first three vertices define a triangle. Each vertex after that creates a triangle using the new vertex and last two vertices.
---
----@field strip integer
+---| '"strip"'
---
---Each set of three vertices represents a discrete triangle.
---
----@field triangles integer
+---| '"triangles"'
---
---Draws a set of triangles. Each one shares the first vertex as a common point, leading to a fan-like shape.
---
----@field fan integer
+---| '"fan"'
---
---Most graphics primitives can be drawn in one of two modes: a filled mode and a wireframe mode.
---
----@class lovr.DrawStyle
+---@alias lovr.DrawStyle
---
---The shape is drawn as a filled object.
---
----@field fill integer
+---| '"fill"'
---
---The shape is drawn as a wireframe object.
---
----@field line integer
+---| '"line"'
---
---The method used to downsample (or upsample) a texture. "nearest" can be used for a pixelated effect, whereas "linear" leads to more smooth results. Nearest is slightly faster than linear.
---
----@class lovr.FilterMode
+---@alias lovr.FilterMode
---
---Fast nearest-neighbor sampling. Leads to a pixelated style.
---
----@field nearest integer
+---| '"nearest"'
---
---Smooth pixel sampling.
---
----@field bilinear integer
+---| '"bilinear"'
---
---Smooth pixel sampling, with smooth sampling across mipmap levels.
---
----@field trilinear integer
+---| '"trilinear"'
---
---Different ways to horizontally align text when using `lovr.graphics.print`.
---
----@class lovr.HorizontalAlign
+---@alias lovr.HorizontalAlign
---
---Left aligned lines of text.
---
----@field left integer
+---| '"left"'
---
---Centered aligned lines of text.
---
----@field center integer
+---| '"center"'
---
---Right aligned lines of text.
---
----@field right integer
+---| '"right"'
---
---The different types of color parameters `Material`s can hold.
---
----@class lovr.MaterialColor
+---@alias lovr.MaterialColor
---
---The diffuse color.
---
----@field diffuse integer
+---| '"diffuse"'
---
---The emissive color.
---
----@field emissive integer
+---| '"emissive"'
---
---The different types of float parameters `Material`s can hold.
---
----@class lovr.MaterialScalar
+---@alias lovr.MaterialScalar
---
---The constant metalness factor.
---
----@field metalness integer
+---| '"metalness"'
---
---The constant roughness factor.
---
----@field roughness integer
+---| '"roughness"'
---
---The different types of texture parameters `Material`s can hold.
---
----@class lovr.MaterialTexture
+---@alias lovr.MaterialTexture
---
---The diffuse texture.
---
----@field diffuse integer
+---| '"diffuse"'
---
---The emissive texture.
---
----@field emissive integer
+---| '"emissive"'
---
---The metalness texture.
---
----@field metalness integer
+---| '"metalness"'
---
---The roughness texture.
---
----@field roughness integer
+---| '"roughness"'
---
---The ambient occlusion texture.
---
----@field occlusion integer
+---| '"occlusion"'
---
---The normal map.
---
----@field normal integer
+---| '"normal"'
---
---The environment map, should be specified as a cubemap texture.
---
----@field environment integer
+---| '"environment"'
---
---Meshes can have a usage hint, describing how they are planning on being updated. Setting the usage hint allows the graphics driver optimize how it handles the data in the Mesh.
---
----@class lovr.MeshUsage
+---@alias lovr.MeshUsage
---
---The Mesh contents will rarely change.
---
----@field static integer
+---| '"static"'
---
---The Mesh contents will change often.
---
----@field dynamic integer
+---| '"dynamic"'
---
---The Mesh contents will change constantly, potentially multiple times each frame.
---
----@field stream integer
+---| '"stream"'
---
---Shaders can be used for either rendering operations or generic compute tasks. Graphics shaders are created with `lovr.graphics.newShader` and compute shaders are created with `lovr.graphics.newComputeShader`. `Shader:getType` can be used on an existing Shader to figure out what type it is.
---
----@class lovr.ShaderType
+---@alias lovr.ShaderType
---
---A graphics shader.
---
----@field graphics integer
+---| '"graphics"'
---
---A compute shader.
---
----@field compute integer
+---| '"compute"'
---
---How to modify pixels in the stencil buffer when using `lovr.graphics.stencil`.
---
----@class lovr.StencilAction
+---@alias lovr.StencilAction
---
---Stencil values will be replaced with a custom value.
---
----@field replace integer
+---| '"replace"'
---
---Stencil values will increment every time they are rendered to.
---
----@field increment integer
+---| '"increment"'
---
---Stencil values will decrement every time they are rendered to.
---
----@field decrement integer
+---| '"decrement"'
---
---Similar to `increment`, but the stencil value will be set to 0 if it exceeds 255.
---
----@field incrementwrap integer
+---| '"incrementwrap"'
---
---Similar to `decrement`, but the stencil value will be set to 255 if it drops below 0.
---
----@field decrementwrap integer
+---| '"decrementwrap"'
---
---Stencil values will be bitwise inverted every time they are rendered to.
---
----@field invert integer
+---| '"invert"'
---
---Textures can store their pixels in different formats. The set of color channels and the number of bits stored for each channel can differ, allowing Textures to optimize their storage for certain kinds of image formats or rendering techniques.
---
----@class lovr.TextureFormat
+---@alias lovr.TextureFormat
---
---Each pixel is 24 bits, or 8 bits for each channel.
---
----@field rgb integer
+---| '"rgb"'
---
---Each pixel is 32 bits, or 8 bits for each channel (including alpha).
---
----@field rgba integer
+---| '"rgba"'
---
---An rgba format where the colors occupy 4 bits instead of the usual 8.
---
----@field rgba4 integer
+---| '"rgba4"'
---
---Each pixel is 64 bits. Each channel is a 16 bit floating point number.
---
----@field rgba16f integer
+---| '"rgba16f"'
---
---Each pixel is 128 bits. Each channel is a 32 bit floating point number.
---
----@field rgba32f integer
+---| '"rgba32f"'
---
---A 16-bit floating point format with a single color channel.
---
----@field r16f integer
+---| '"r16f"'
---
---A 32-bit floating point format with a single color channel.
---
----@field r32f integer
+---| '"r32f"'
---
---A 16-bit floating point format with two color channels.
---
----@field rg16f integer
+---| '"rg16f"'
---
---A 32-bit floating point format with two color channels.
---
----@field rg32f integer
+---| '"rg32f"'
---
---A 16 bit format with 5-bit color channels and a single alpha bit.
---
----@field rgb5a1 integer
+---| '"rgb5a1"'
---
---A 32 bit format with 10-bit color channels and two alpha bits.
---
----@field rgb10a2 integer
+---| '"rgb10a2"'
---
---Each pixel is 32 bits, and packs three color channels into 10 or 11 bits each.
---
----@field rg11b10f integer
+---| '"rg11b10f"'
---
---A 16 bit depth buffer.
---
----@field d16 integer
+---| '"d16"'
---
---A 32 bit floating point depth buffer.
---
----@field d32f integer
+---| '"d32f"'
---
---A depth buffer with 24 bits for depth and 8 bits for stencil.
---
----@field d24s8 integer
+---| '"d24s8"'
---
---Different types of Textures.
---
----@class lovr.TextureType
+---@alias lovr.TextureType
---
---A 2D texture.
---
----@field ["2d"] integer
+---| '"2d"'
---
---A 2D array texture with multiple independent 2D layers.
---
----@field array integer
+---| '"array"'
---
---A cubemap texture with 6 2D faces.
---
----@field cube integer
+---| '"cube"'
---
---A 3D volumetric texture consisting of multiple 2D layers.
---
----@field volume integer
+---| '"volume"'
---
---When binding writable resources to shaders using `Shader:sendBlock` and `Shader:sendImage`, an access pattern can be specified as a hint that says whether you plan to read or write to the resource (or both). Sometimes, LÖVR or the GPU driver can use this hint to get better performance or avoid stalling.
---
----@class lovr.UniformAccess
+---@alias lovr.UniformAccess
---
---The Shader will use the resource in a read-only fashion.
---
----@field read integer
+---| '"read"'
---
---The Shader will use the resource in a write-only fashion.
---
----@field write integer
+---| '"write"'
---
---The resource will be available for reading and writing.
---
----@field readwrite integer
+---| '"readwrite"'
---
---Different ways to vertically align text when using `lovr.graphics.print`.
---
----@class lovr.VerticalAlign
+---@alias lovr.VerticalAlign
---
---Align the top of the text to the origin.
---
----@field top integer
+---| '"top"'
---
---Vertically center the text.
---
----@field middle integer
+---| '"middle"'
---
---Align the bottom of the text to the origin.
---
----@field bottom integer
+---| '"bottom"'
---
---Whether the points on triangles are specified in a clockwise or counterclockwise order.
---
----@class lovr.Winding
+---@alias lovr.Winding
---
---Triangle vertices are specified in a clockwise order.
---
----@field clockwise integer
+---| '"clockwise"'
---
---Triangle vertices are specified in a counterclockwise order.
---
----@field counterclockwise integer
+---| '"counterclockwise"'
---
---The method used to render textures when texture coordinates are outside of the 0-1 range.
---
----@class lovr.WrapMode
+---@alias lovr.WrapMode
---
---The texture will be clamped at its edges.
---
----@field clamp integer
+---| '"clamp"'
---
---The texture repeats.
---
----@field repeat integer
+---| '"repeat"'
---
---The texture will repeat, mirroring its appearance each time it repeats.
---
----@field mirroredrepeat integer
+---| '"mirroredrepeat"'
diff --git a/meta/3rd/lovr/library/lovr.headset.lua b/meta/3rd/lovr/library/lovr.headset.lua
index c33226fc..e45d3009 100644
--- a/meta/3rd/lovr/library/lovr.headset.lua
+++ b/meta/3rd/lovr/library/lovr.headset.lua
@@ -302,210 +302,210 @@ function lovr.headset.wasReleased(device, button) end
---
---Different types of input devices supported by the `lovr.headset` module.
---
----@class lovr.Device
+---@alias lovr.Device
---
---The headset.
---
----@field head integer
+---| '"head"'
---
---The left controller.
---
----@field ["hand/left"] integer
+---| '"hand/left"'
---
---The right controller.
---
----@field ["hand/right"] integer
+---| '"hand/right"'
---
---A shorthand for hand/left.
---
----@field left integer
+---| '"left"'
---
---A shorthand for hand/right.
---
----@field right integer
+---| '"right"'
---
---A device tracking the left elbow.
---
----@field ["elbow/left"] integer
+---| '"elbow/left"'
---
---A device tracking the right elbow.
---
----@field ["elbow/right"] integer
+---| '"elbow/right"'
---
---A device tracking the left shoulder.
---
----@field ["shoulder/left"] integer
+---| '"shoulder/left"'
---
---A device tracking the right shoulder.
---
----@field ["shoulder/right"] integer
+---| '"shoulder/right"'
---
---A device tracking the chest.
---
----@field chest integer
+---| '"chest"'
---
---A device tracking the waist.
---
----@field waist integer
+---| '"waist"'
---
---A device tracking the left knee.
---
----@field ["knee/left"] integer
+---| '"knee/left"'
---
---A device tracking the right knee.
---
----@field ["knee/right"] integer
+---| '"knee/right"'
---
---A device tracking the left foot or ankle.
---
----@field ["foot/left"] integer
+---| '"foot/left"'
---
---A device tracking the right foot or ankle.
---
----@field ["foot/right"] integer
+---| '"foot/right"'
---
---A device used as a camera in the scene.
---
----@field camera integer
+---| '"camera"'
---
---A tracked keyboard.
---
----@field keyboard integer
+---| '"keyboard"'
---
---The left eye.
---
----@field ["eye/left"] integer
+---| '"eye/left"'
---
---The right eye.
---
----@field ["eye/right"] integer
+---| '"eye/right"'
---
---The first tracking device (i.e. lighthouse).
---
----@field ["beacon/1"] integer
+---| '"beacon/1"'
---
---The second tracking device (i.e. lighthouse).
---
----@field ["beacon/2"] integer
+---| '"beacon/2"'
---
---The third tracking device (i.e. lighthouse).
---
----@field ["beacon/3"] integer
+---| '"beacon/3"'
---
---The fourth tracking device (i.e. lighthouse).
---
----@field ["beacon/4"] integer
+---| '"beacon/4"'
---
---Axes on an input device.
---
----@class lovr.DeviceAxis
+---@alias lovr.DeviceAxis
---
---A trigger (1D).
---
----@field trigger integer
+---| '"trigger"'
---
---A thumbstick (2D).
---
----@field thumbstick integer
+---| '"thumbstick"'
---
---A touchpad (2D).
---
----@field touchpad integer
+---| '"touchpad"'
---
---A grip button or grab gesture (1D).
---
----@field grip integer
+---| '"grip"'
---
---Buttons on an input device.
---
----@class lovr.DeviceButton
+---@alias lovr.DeviceButton
---
---The trigger button.
---
----@field trigger integer
+---| '"trigger"'
---
---The thumbstick.
---
----@field thumbstick integer
+---| '"thumbstick"'
---
---The touchpad.
---
----@field touchpad integer
+---| '"touchpad"'
---
---The grip button.
---
----@field grip integer
+---| '"grip"'
---
---The menu button.
---
----@field menu integer
+---| '"menu"'
---
---The A button.
---
----@field a integer
+---| '"a"'
---
---The B button.
---
----@field b integer
+---| '"b"'
---
---The X button.
---
----@field x integer
+---| '"x"'
---
---The Y button.
---
----@field y integer
+---| '"y"'
---
---The proximity sensor on a headset.
---
----@field proximity integer
+---| '"proximity"'
---
---These are all of the supported VR APIs that LÖVR can use to power the lovr.headset module. You can change the order of headset drivers using `lovr.conf` to prefer or exclude specific VR APIs.
---
---At startup, LÖVR searches through the list of drivers in order. One headset driver will be used for rendering to the VR display, and all supported headset drivers will be used for device input. The way this works is that when poses or button input is requested, the input drivers are queried (in the order they appear in `conf.lua`) to see if any of them currently have data for the specified device. The first one that returns data will be used to provide the result. This allows projects to support multiple types of hardware devices.
---
----@class lovr.HeadsetDriver
+---@alias lovr.HeadsetDriver
---
---A VR simulator using keyboard/mouse.
---
----@field desktop integer
+---| '"desktop"'
---
---Oculus Desktop SDK.
---
----@field oculus integer
+---| '"oculus"'
---
---OpenVR.
---
----@field openvr integer
+---| '"openvr"'
---
---OpenXR.
---
----@field openxr integer
+---| '"openxr"'
---
---Oculus Mobile SDK.
---
----@field vrapi integer
+---| '"vrapi"'
---
---Pico.
---
----@field pico integer
+---| '"pico"'
---
---WebXR.
---
----@field webxr integer
+---| '"webxr"'
---
---Represents the different types of origins for coordinate spaces. An origin of "floor" means that the origin is on the floor in the middle of a room-scale play area. An origin of "head" means that no positional tracking is available, and consequently the origin is always at the position of the headset.
---
----@class lovr.HeadsetOrigin
+---@alias lovr.HeadsetOrigin
---
---The origin is at the head.
---
----@field head integer
+---| '"head"'
---
---The origin is on the floor.
---
----@field floor integer
+---| '"floor"'
diff --git a/meta/3rd/lovr/library/lovr.physics.lua b/meta/3rd/lovr/library/lovr.physics.lua
index 60e4904d..e4b44aba 100644
--- a/meta/3rd/lovr/library/lovr.physics.lua
+++ b/meta/3rd/lovr/library/lovr.physics.lua
@@ -1244,41 +1244,41 @@ function World:update(dt, resolver) end
---
---Represents the different types of physics Joints available.
---
----@class lovr.JointType
+---@alias lovr.JointType
---
---A BallJoint.
---
----@field ball integer
+---| '"ball"'
---
---A DistanceJoint.
---
----@field distance integer
+---| '"distance"'
---
---A HingeJoint.
---
----@field hinge integer
+---| '"hinge"'
---
---A SliderJoint.
---
----@field slider integer
+---| '"slider"'
---
---Represents the different types of physics Shapes available.
---
----@class lovr.ShapeType
+---@alias lovr.ShapeType
---
---A BoxShape.
---
----@field box integer
+---| '"box"'
---
---A CapsuleShape.
---
----@field capsule integer
+---| '"capsule"'
---
---A CylinderShape.
---
----@field cylinder integer
+---| '"cylinder"'
---
---A SphereShape.
---
----@field sphere integer
+---| '"sphere"'
diff --git a/meta/3rd/lovr/library/lovr.system.lua b/meta/3rd/lovr/library/lovr.system.lua
index cd493f18..d3255f75 100644
--- a/meta/3rd/lovr/library/lovr.system.lua
+++ b/meta/3rd/lovr/library/lovr.system.lua
@@ -27,8 +27,8 @@ function lovr.system.requestPermission(permission) end
---
---These are the different permissions that need to be requested using `lovr.system.requestPermission` on some platforms.
---
----@class lovr.Permission
+---@alias lovr.Permission
---
---Requests microphone access.
---
----@field audiocapture integer
+---| '"audiocapture"'