summaryrefslogtreecommitdiff
path: root/meta/3rd/love2d
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2021-07-20 17:28:53 +0800
committer最萌小汐 <sumneko@hotmail.com>2021-07-20 17:28:53 +0800
commitbd51baa6d764293a83d4e955b533e55b57e8e147 (patch)
tree77192e93b1cc164f4956a17acb042dfa0629a3c5 /meta/3rd/love2d
parent15e011e334099a9c0c6bc34399fb90769600210f (diff)
downloadlua-language-server-bd51baa6d764293a83d4e955b533e55b57e8e147.zip
update
Diffstat (limited to 'meta/3rd/love2d')
-rw-r--r--meta/3rd/love2d/library/love.audio.lua39
-rw-r--r--meta/3rd/love2d/library/love.data.lua22
-rw-r--r--meta/3rd/love2d/library/love.event.lua39
-rw-r--r--meta/3rd/love2d/library/love.filesystem.lua21
-rw-r--r--meta/3rd/love2d/library/love.font.lua6
-rw-r--r--meta/3rd/love2d/library/love.graphics.lua152
-rw-r--r--meta/3rd/love2d/library/love.image.lua110
-rw-r--r--meta/3rd/love2d/library/love.joystick.lua41
-rw-r--r--meta/3rd/love2d/library/love.keyboard.lua342
-rw-r--r--meta/3rd/love2d/library/love.lua72
-rw-r--r--meta/3rd/love2d/library/love.math.lua4
-rw-r--r--meta/3rd/love2d/library/love.mouse.lua15
-rw-r--r--meta/3rd/love2d/library/love.physics.lua22
-rw-r--r--meta/3rd/love2d/library/love.system.lua7
-rw-r--r--meta/3rd/love2d/library/love.window.lua17
15 files changed, 909 insertions, 0 deletions
diff --git a/meta/3rd/love2d/library/love.audio.lua b/meta/3rd/love2d/library/love.audio.lua
index cdf2ed05..386f8382 100644
--- a/meta/3rd/love2d/library/love.audio.lua
+++ b/meta/3rd/love2d/library/love.audio.lua
@@ -536,3 +536,42 @@ function Source:stop() end
---@param unit love.TimeUnit # The type of unit for the return value.
---@return number position # The currently playing position of the Source.
function Source:tell(unit) end
+
+---@class love.DistanceModel
+---@field none integer # Sources do not get attenuated.
+---@field inverse integer # Inverse distance attenuation.
+---@field inverseclamped integer # Inverse distance attenuation. Gain is clamped. In version 0.9.2 and older this is named '''inverse clamped'''.
+---@field linear integer # Linear attenuation.
+---@field linearclamped integer # Linear attenuation. Gain is clamped. In version 0.9.2 and older this is named '''linear clamped'''.
+---@field exponent integer # Exponential attenuation.
+---@field exponentclamped integer # Exponential attenuation. Gain is clamped. In version 0.9.2 and older this is named '''exponent clamped'''.
+
+---@class love.EffectType
+---@field chorus integer # Plays multiple copies of the sound with slight pitch and time variation. Used to make sounds sound "fuller" or "thicker".
+---@field compressor integer # Decreases the dynamic range of the sound, making the loud and quiet parts closer in volume, producing a more uniform amplitude throughout time.
+---@field distortion integer # Alters the sound by amplifying it until it clips, shearing off parts of the signal, leading to a compressed and distorted sound.
+---@field echo integer # 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 equalizer integer # Adjust the frequency components of the sound using a 4-band (low-shelf, two band-pass and a high-shelf) equalizer.
+---@field flanger integer # 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 reverb integer # Decaying feedback based effect, on the order of milliseconds. Used to simulate the reflection off of the surroundings.
+---@field ringmodulator integer # An implementation of amplitude modulation; multiplies the source signal with a simple waveform, to produce either volume changes, or inharmonic overtones.
+
+---@class love.EffectWaveform
+---@field sawtooth integer # A sawtooth wave, also known as a ramp wave. Named for its linear rise, and (near-)instantaneous fall along time.
+---@field sine integer # A sine wave. Follows a trigonometric sine function.
+---@field square integer # A square wave. Switches between high and low states (near-)instantaneously.
+---@field triangle integer # A triangle wave. Follows a linear rise and fall that repeats periodically.
+
+---@class love.FilterType
+---@field lowpass integer # Low-pass filter. High frequency sounds are attenuated.
+---@field highpass integer # High-pass filter. Low frequency sounds are attenuated.
+---@field bandpass integer # Band-pass filter. Both high and low frequency sounds are attenuated based on the given parameters.
+
+---@class love.SourceType
+---@field static integer # The whole audio is decoded.
+---@field stream integer # The audio is decoded in chunks when needed.
+---@field queue integer # The audio must be manually queued by the user.
+
+---@class love.TimeUnit
+---@field seconds integer # Regular seconds.
+---@field samples integer # Audio samples.
diff --git a/meta/3rd/love2d/library/love.data.lua b/meta/3rd/love2d/library/love.data.lua
index 4cac6c92..91c7fa80 100644
--- a/meta/3rd/love2d/library/love.data.lua
+++ b/meta/3rd/love2d/library/love.data.lua
@@ -109,3 +109,25 @@ local CompressedData = {}
---
---@return love.CompressedDataFormat format # The format of the CompressedData.
function CompressedData:getFormat() end
+
+---@class love.CompressedDataFormat
+---@field lz4 integer # 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 zlib integer # 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 gzip integer # 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 deflate integer # Raw DEFLATE-compressed data (no header).
+
+---@class love.ContainerType
+---@field data integer # Return type is ByteData.
+---@field string integer # Return type is string.
+
+---@class love.EncodeFormat
+---@field base64 integer # Encode/decode data as base64 binary-to-text encoding.
+---@field hex integer # Encode/decode data as hexadecimal string.
+
+---@class love.HashFunction
+---@field md5 integer # MD5 hash algorithm (16 bytes).
+---@field sha1 integer # SHA1 hash algorithm (20 bytes).
+---@field sha224 integer # SHA2 hash algorithm with message digest size of 224 bits (28 bytes).
+---@field sha256 integer # SHA2 hash algorithm with message digest size of 256 bits (32 bytes).
+---@field sha384 integer # SHA2 hash algorithm with message digest size of 384 bits (48 bytes).
+---@field sha512 integer # SHA2 hash algorithm with message digest size of 512 bits (64 bytes).
diff --git a/meta/3rd/love2d/library/love.event.lua b/meta/3rd/love2d/library/love.event.lua
index 1dfbbcc5..14db517b 100644
--- a/meta/3rd/love2d/library/love.event.lua
+++ b/meta/3rd/love2d/library/love.event.lua
@@ -43,3 +43,42 @@ function love.event.quit(exitstatus) end
---Like love.event.poll(), but blocks until there is an event in the queue.
---
function love.event.wait() end
+
+---@class love.Event
+---@field focus integer # Window focus gained or lost
+---@field joystickpressed integer # Joystick pressed
+---@field joystickreleased integer # Joystick released
+---@field keypressed integer # Key pressed
+---@field keyreleased integer # Key released
+---@field mousepressed integer # Mouse pressed
+---@field mousereleased integer # Mouse released
+---@field quit integer # Quit
+---@field resize integer # Window size changed by the user
+---@field visible integer # Window is minimized or un-minimized by the user
+---@field mousefocus integer # Window mouse focus gained or lost
+---@field threaderror integer # A Lua error has occurred in a thread
+---@field joystickadded integer # Joystick connected
+---@field joystickremoved integer # Joystick disconnected
+---@field joystickaxis integer # Joystick axis motion
+---@field joystickhat integer # Joystick hat pressed
+---@field gamepadpressed integer # Joystick's virtual gamepad button pressed
+---@field gamepadreleased integer # Joystick's virtual gamepad button released
+---@field gamepadaxis integer # Joystick's virtual gamepad axis moved
+---@field textinput integer # User entered text
+---@field mousemoved integer # Mouse position changed
+---@field lowmemory integer # Running out of memory on mobile devices system
+---@field textedited integer # Candidate text for an IME changed
+---@field wheelmoved integer # Mouse wheel moved
+---@field touchpressed integer # Touch screen touched
+---@field touchreleased integer # Touch screen stop touching
+---@field touchmoved integer # Touch press moved inside touch screen
+---@field directorydropped integer # Directory is dragged and dropped onto the window
+---@field filedropped integer # File is dragged and dropped onto the window.
+---@field jp integer # Joystick pressed
+---@field jr integer # Joystick released
+---@field kp integer # Key pressed
+---@field kr integer # Key released
+---@field mp integer # Mouse pressed
+---@field mr integer # Mouse released
+---@field q integer # Quit
+---@field f integer # Window focus gained or lost
diff --git a/meta/3rd/love2d/library/love.filesystem.lua b/meta/3rd/love2d/library/love.filesystem.lua
index a76658ba..5f6b1d18 100644
--- a/meta/3rd/love2d/library/love.filesystem.lua
+++ b/meta/3rd/love2d/library/love.filesystem.lua
@@ -383,3 +383,24 @@ function FileData:getExtension() end
---
---@return string name # The name of the file the FileData represents.
function FileData:getFilename() end
+
+---@class love.BufferMode
+---@field none integer # No buffering. The result of write and append operations appears immediately.
+---@field line integer # Line buffering. Write and append operations are buffered until a newline is output or the buffer size limit is reached.
+---@field full integer # Full buffering. Write and append operations are always buffered until the buffer size limit is reached.
+
+---@class love.FileDecoder
+---@field file integer # The data is unencoded.
+---@field base64 integer # The data is base64-encoded.
+
+---@class love.FileMode
+---@field r integer # Open a file for read.
+---@field w integer # Open a file for write.
+---@field a integer # Open a file for append.
+---@field c integer # Do not open a file (represents a closed file.)
+
+---@class love.FileType
+---@field file integer # Regular file.
+---@field directory integer # Directory.
+---@field symlink integer # Symbolic link.
+---@field other integer # Something completely different like a device.
diff --git a/meta/3rd/love2d/library/love.font.lua b/meta/3rd/love2d/library/love.font.lua
index 043bf81c..7ec34ef3 100644
--- a/meta/3rd/love2d/library/love.font.lua
+++ b/meta/3rd/love2d/library/love.font.lua
@@ -158,3 +158,9 @@ function Rasterizer:getLineHeight() end
---@param glyph2 love.string or number # Glyph
---@return boolean hasGlyphs # Whatever font contains specified glyphs.
function Rasterizer:hasGlyphs(glyph1, glyph2) end
+
+---@class love.HintingMode
+---@field normal integer # Default hinting. Should be preferred for typical antialiased fonts.
+---@field light integer # Results in fuzzier text but can sometimes preserve the original glyph shapes of the text better than normal hinting.
+---@field mono integer # 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 none integer # Disables hinting for the font. Results in fuzzier text.
diff --git a/meta/3rd/love2d/library/love.graphics.lua b/meta/3rd/love2d/library/love.graphics.lua
index 88078efb..43de9830 100644
--- a/meta/3rd/love2d/library/love.graphics.lua
+++ b/meta/3rd/love2d/library/love.graphics.lua
@@ -2237,3 +2237,155 @@ function Video:setSource(source) end
---
---@return number seconds # The time in seconds since the beginning of the Video.
function Video:tell() end
+
+---@class love.AlignMode
+---@field center integer # Align text center.
+---@field left integer # Align text left.
+---@field right integer # Align text right.
+---@field justify integer # Align text both left and right.
+
+---@class love.ArcType
+---@field pie integer # The arc is drawn like a slice of pie, with the arc circle connected to the center at its end-points.
+---@field open integer # 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 closed integer # The arc circle's two end-points are connected to each other.
+
+---@class love.AreaSpreadDistribution
+---@field uniform integer # Uniform distribution.
+---@field normal integer # Normal (gaussian) distribution.
+---@field ellipse integer # Uniform distribution in an ellipse.
+---@field borderellipse integer # Distribution in an ellipse with particles spawning at the edges of the ellipse.
+---@field borderrectangle integer # Distribution in a rectangle with particles spawning at the edges of the rectangle.
+---@field none integer # No distribution - area spread is disabled.
+
+---@class love.BlendAlphaMode
+---@field alphamultiply integer # 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 premultiplied integer # 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").
+
+---@class love.BlendMode
+---@field alpha integer # Alpha blending (normal). The alpha of what's drawn determines its opacity.
+---@field replace integer # 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 screen integer # 'Screen' blending.
+---@field add integer # 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 subtract integer # 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 multiply integer # 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 lighten integer # 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 darken integer # 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 additive integer # Additive blend mode.
+---@field subtractive integer # Subtractive blend mode.
+---@field multiplicative integer # Multiply blend mode.
+---@field premultiplied integer # Premultiplied alpha blend mode.
+
+---@class love.CompareMode
+---@field equal integer # * 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 notequal integer # * 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 less integer # * 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 lequal integer # * 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 gequal integer # * 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 greater integer # * 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 never integer # Objects will never be drawn.
+---@field always integer # Objects will always be drawn. Effectively disables the depth or stencil test.
+
+---@class love.CullMode
+---@field back integer # Back-facing triangles in Meshes are culled (not rendered). The vertex order of a triangle determines whether it is back- or front-facing.
+---@field front integer # Front-facing triangles in Meshes are culled.
+---@field none integer # Both back- and front-facing triangles in Meshes are rendered.
+
+---@class love.DrawMode
+---@field fill integer # Draw filled shape.
+---@field line integer # Draw outlined shape.
+
+---@class love.FilterMode
+---@field linear integer # Scale image with linear interpolation.
+---@field nearest integer # Scale image with nearest neighbor interpolation.
+
+---@class love.GraphicsFeature
+---@field clampzero integer # Whether the "clampzero" WrapMode is supported.
+---@field lighten integer # Whether the "lighten" and "darken" BlendModes are supported.
+---@field multicanvasformats integer # Whether multiple formats can be used in the same love.graphics.setCanvas call.
+---@field glsl3 integer # Whether GLSL 3 Shaders can be used.
+---@field instancing integer # Whether mesh instancing is supported.
+---@field fullnpot integer # Whether textures with non-power-of-two dimensions can use mipmapping and the 'repeat' WrapMode.
+---@field pixelshaderhighp integer # Whether pixel shaders can use "highp" 32 bit floating point numbers (as opposed to just 16 bit or lower precision).
+---@field shaderderivatives integer # Whether shaders can use the dFdx, dFdy, and fwidth functions for computing derivatives.
+
+---@class love.GraphicsLimit
+---@field pointsize integer # The maximum size of points.
+---@field texturesize integer # The maximum width or height of Images and Canvases.
+---@field multicanvas integer # The maximum number of simultaneously active canvases (via love.graphics.setCanvas.)
+---@field canvasmsaa integer # The maximum number of antialiasing samples for a Canvas.
+---@field texturelayers integer # The maximum number of layers in an Array texture.
+---@field volumetexturesize integer # The maximum width, height, or depth of a Volume texture.
+---@field cubetexturesize integer # The maximum width or height of a Cubemap texture.
+---@field anisotropy integer # The maximum amount of anisotropic filtering. Texture:setMipmapFilter internally clamps the given anisotropy value to the system's limit.
+
+---@class love.IndexDataType
+---@field uint16 integer # The vertex map is array of unsigned word (16-bit).
+---@field uint32 integer # The vertex map is array of unsigned dword (32-bit).
+
+---@class love.LineJoin
+---@field miter integer # The ends of the line segments beveled in an angle so that they join seamlessly.
+---@field none integer # No cap applied to the ends of the line segments.
+---@field bevel integer # Flattens the point where line segments join together.
+
+---@class love.LineStyle
+---@field rough integer # Draw rough lines.
+---@field smooth integer # Draw smooth lines.
+
+---@class love.MeshDrawMode
+---@field fan integer # 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 strip integer # 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 triangles integer # The vertices create unconnected triangles.
+---@field points integer # The vertices are drawn as unconnected points (see love.graphics.setPointSize.)
+
+---@class love.MipmapMode
+---@field none integer # The Canvas has no mipmaps.
+---@field auto integer # 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 manual integer # The Canvas has mipmaps, and all mipmap levels will automatically be recomputed when switching away from the Canvas with love.graphics.setCanvas.
+
+---@class love.ParticleInsertMode
+---@field top integer # Particles are inserted at the top of the ParticleSystem's list of particles.
+---@field bottom integer # Particles are inserted at the bottom of the ParticleSystem's list of particles.
+---@field random integer # Particles are inserted at random positions in the ParticleSystem's list of particles.
+
+---@class love.SpriteBatchUsage
+---@field dynamic integer # The object's data will change occasionally during its lifetime.
+---@field static integer # The object will not be modified after initial sprites or vertices are added.
+---@field stream integer # The object data will always change between draws.
+
+---@class love.StackType
+---@field transform integer # The transformation stack (love.graphics.translate, love.graphics.rotate, etc.)
+---@field all integer # All love.graphics state, including transform state.
+
+---@class love.StencilAction
+---@field replace integer # The stencil value of a pixel will be replaced by the value specified in love.graphics.stencil, if any object touches the pixel.
+---@field increment integer # 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 decrement integer # 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 incrementwrap integer # 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 decrementwrap integer # 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 invert integer # 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.
+
+---@class love.TextureType
+---@field 2d integer # Regular 2D texture with width and height.
+---@field array integer # 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 cube integer # 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 volume integer # 3D texture with width, height, and depth. Requires a custom shader to use. Volume textures can have texture filtering applied along the 3rd axis.
+
+---@class love.VertexAttributeStep
+---@field pervertex integer # The vertex attribute will have a unique value for each vertex in the Mesh.
+---@field perinstance integer # The vertex attribute will have a unique value for each instance of the Mesh.
+
+---@class love.VertexWinding
+---@field cw integer # Clockwise.
+---@field ccw integer # Counter-clockwise.
+
+---@class love.WrapMode
+---@field clamp integer # 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 repeat integer # Repeat the texture. Fills the whole available extent.
+---@field mirroredrepeat integer # 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 clampzero integer # Clamp the texture. Fills the area outside the texture's normal range with transparent black (or opaque black for textures with no alpha channel.)
diff --git a/meta/3rd/love2d/library/love.image.lua b/meta/3rd/love2d/library/love.image.lua
index 5591153a..3ec51b98 100644
--- a/meta/3rd/love2d/library/love.image.lua
+++ b/meta/3rd/love2d/library/love.image.lua
@@ -144,3 +144,113 @@ function ImageData:paste(source, dx, dy, sx, sy, sw, sh) end
---In versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.
---
function ImageData:setPixel() end
+
+---@class love.CompressedImageFormat
+---@field DXT1 integer # 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 DXT3 integer # The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.
+---@field DXT5 integer # The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.
+---@field BC4 integer # The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.
+---@field BC4s integer # 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 BC5 integer # The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.
+---@field BC5s integer # The signed variant of the BC5 format.
+---@field BC6h integer # 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 BC6hs integer # The signed variant of the BC6H format. Stores RGB data in the range of +65504.
+---@field BC7 integer # The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.
+---@field ETC1 integer # The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.
+---@field ETC2rgb integer # The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.
+---@field ETC2rgba integer # 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 ETC2rgba1 integer # The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.
+---@field EACr integer # The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.
+---@field EACrs integer # 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 EACrg integer # The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.
+---@field EACrgs integer # The signed two-channel variant of the EAC format.
+---@field PVR1rgb2 integer # 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 PVR1rgb4 integer # The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.
+---@field PVR1rgba2 integer # The 2 bit per pixel RGBA variant of the PVRTC1 format.
+---@field PVR1rgba4 integer # The 4 bit per pixel RGBA variant of the PVRTC1 format.
+---@field ASTC4x4 integer # The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.
+---@field ASTC5x4 integer # The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.
+---@field ASTC5x5 integer # The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.
+---@field ASTC6x5 integer # The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.
+---@field ASTC6x6 integer # The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.
+---@field ASTC8x5 integer # The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.
+---@field ASTC8x6 integer # The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.
+---@field ASTC8x8 integer # The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.
+---@field ASTC10x5 integer # The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.
+---@field ASTC10x6 integer # The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.
+---@field ASTC10x8 integer # The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.
+---@field ASTC10x10 integer # The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.
+---@field ASTC12x10 integer # The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.
+---@field ASTC12x12 integer # The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.
+
+---@class love.ImageFormat
+---@field tga integer # Targa image format.
+---@field png integer # PNG image format.
+---@field jpg integer # JPG image format.
+---@field bmp integer # BMP image format.
+
+---@class love.PixelFormat
+---@field unknown integer # Indicates unknown pixel format, used internally.
+---@field normal integer # Alias for rgba8, or srgba8 if gamma-correct rendering is enabled.
+---@field hdr integer # A format suitable for high dynamic range content - an alias for the rgba16f format, normally.
+---@field r8 integer # Single-channel (red component) format (8 bpp).
+---@field rg8 integer # Two channels (red and green components) with 8 bits per channel (16 bpp).
+---@field rgba8 integer # 8 bits per channel (32 bpp) RGBA. Color channel values range from 0-255 (0-1 in shaders).
+---@field srgba8 integer # gamma-correct version of rgba8.
+---@field r16 integer # Single-channel (red component) format (16 bpp).
+---@field rg16 integer # Two channels (red and green components) with 16 bits per channel (32 bpp).
+---@field rgba16 integer # 16 bits per channel (64 bpp) RGBA. Color channel values range from 0-65535 (0-1 in shaders).
+---@field r16f integer # Floating point single-channel format (16 bpp). Color values can range from [-65504, +65504].
+---@field rg16f integer # Floating point two-channel format with 16 bits per channel (32 bpp). Color values can range from [-65504, +65504].
+---@field rgba16f integer # Floating point RGBA with 16 bits per channel (64 bpp). Color values can range from [-65504, +65504].
+---@field r32f integer # Floating point single-channel format (32 bpp).
+---@field rg32f integer # Floating point two-channel format with 32 bits per channel (64 bpp).
+---@field rgba32f integer # Floating point RGBA with 32 bits per channel (128 bpp).
+---@field la8 integer # Same as rg8, but accessed as (L, L, L, A)
+---@field rgba4 integer # 4 bits per channel (16 bpp) RGBA.
+---@field rgb5a1 integer # RGB with 5 bits each, and a 1-bit alpha channel (16 bpp).
+---@field rgb565 integer # RGB with 5, 6, and 5 bits each, respectively (16 bpp). There is no alpha channel in this format.
+---@field rgb10a2 integer # RGB with 10 bits per channel, and a 2-bit alpha channel (32 bpp).
+---@field rg11b10f integer # 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 stencil8 integer # No depth buffer and 8-bit stencil buffer.
+---@field depth16 integer # 16-bit depth buffer and no stencil buffer.
+---@field depth24 integer # 24-bit depth buffer and no stencil buffer.
+---@field depth32f integer # 32-bit float depth buffer and no stencil buffer.
+---@field depth24stencil8 integer # 24-bit depth buffer and 8-bit stencil buffer.
+---@field depth32fstencil8 integer # 32-bit float depth buffer and 8-bit stencil buffer.
+---@field DXT1 integer # 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 DXT3 integer # The DXT3 format. RGBA data at 8 bits per pixel. Smooth variations in opacity do not mix well with this format.
+---@field DXT5 integer # The DXT5 format. RGBA data at 8 bits per pixel. Recommended for images with varying opacity on desktop systems.
+---@field BC4 integer # The BC4 format (also known as 3Dc+ or ATI1.) Stores just the red channel, at 4 bits per pixel.
+---@field BC4s integer # 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 BC5 integer # The BC5 format (also known as 3Dc or ATI2.) Stores red and green channels at 8 bits per pixel.
+---@field BC5s integer # The signed variant of the BC5 format.
+---@field BC6h integer # 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 BC6hs integer # The signed variant of the BC6H format. Stores RGB data in the range of +65504.
+---@field BC7 integer # The BC7 format (also known as BPTC.) Stores RGB or RGBA data at 8 bits per pixel.
+---@field ETC1 integer # The ETC1 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on older Android devices.
+---@field ETC2rgb integer # The RGB variant of the ETC2 format. RGB data at 4 bits per pixel. Suitable for fully opaque images on newer mobile devices.
+---@field ETC2rgba integer # 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 ETC2rgba1 integer # The RGBA variant of the ETC2 format where pixels are either fully transparent or fully opaque. RGBA data at 4 bits per pixel.
+---@field EACr integer # The single-channel variant of the EAC format. Stores just the red channel, at 4 bits per pixel.
+---@field EACrs integer # 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 EACrg integer # The two-channel variant of the EAC format. Stores red and green channels at 8 bits per pixel.
+---@field EACrgs integer # The signed two-channel variant of the EAC format.
+---@field PVR1rgb2 integer # 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 PVR1rgb4 integer # The 4 bit per pixel RGB variant of the PVRTC1 format. Stores RGB data at 4 bits per pixel.
+---@field PVR1rgba2 integer # The 2 bit per pixel RGBA variant of the PVRTC1 format.
+---@field PVR1rgba4 integer # The 4 bit per pixel RGBA variant of the PVRTC1 format.
+---@field ASTC4x4 integer # The 4x4 pixels per block variant of the ASTC format. RGBA data at 8 bits per pixel.
+---@field ASTC5x4 integer # The 5x4 pixels per block variant of the ASTC format. RGBA data at 6.4 bits per pixel.
+---@field ASTC5x5 integer # The 5x5 pixels per block variant of the ASTC format. RGBA data at 5.12 bits per pixel.
+---@field ASTC6x5 integer # The 6x5 pixels per block variant of the ASTC format. RGBA data at 4.27 bits per pixel.
+---@field ASTC6x6 integer # The 6x6 pixels per block variant of the ASTC format. RGBA data at 3.56 bits per pixel.
+---@field ASTC8x5 integer # The 8x5 pixels per block variant of the ASTC format. RGBA data at 3.2 bits per pixel.
+---@field ASTC8x6 integer # The 8x6 pixels per block variant of the ASTC format. RGBA data at 2.67 bits per pixel.
+---@field ASTC8x8 integer # The 8x8 pixels per block variant of the ASTC format. RGBA data at 2 bits per pixel.
+---@field ASTC10x5 integer # The 10x5 pixels per block variant of the ASTC format. RGBA data at 2.56 bits per pixel.
+---@field ASTC10x6 integer # The 10x6 pixels per block variant of the ASTC format. RGBA data at 2.13 bits per pixel.
+---@field ASTC10x8 integer # The 10x8 pixels per block variant of the ASTC format. RGBA data at 1.6 bits per pixel.
+---@field ASTC10x10 integer # The 10x10 pixels per block variant of the ASTC format. RGBA data at 1.28 bits per pixel.
+---@field ASTC12x10 integer # The 12x10 pixels per block variant of the ASTC format. RGBA data at 1.07 bits per pixel.
+---@field ASTC12x12 integer # The 12x12 pixels per block variant of the ASTC format. RGBA data at 0.89 bits per pixel.
diff --git a/meta/3rd/love2d/library/love.joystick.lua b/meta/3rd/love2d/library/love.joystick.lua
index 0af1b5dc..bf353ff2 100644
--- a/meta/3rd/love2d/library/love.joystick.lua
+++ b/meta/3rd/love2d/library/love.joystick.lua
@@ -202,3 +202,44 @@ function Joystick:isVibrationSupported() end
---@param right number # Strength of the right vibration motor on the Joystick. Must be in the range of 1.
---@return boolean success # True if the vibration was successfully applied, false if not.
function Joystick:setVibration(left, right) end
+
+---@class love.GamepadAxis
+---@field leftx integer # The x-axis of the left thumbstick.
+---@field lefty integer # The y-axis of the left thumbstick.
+---@field rightx integer # The x-axis of the right thumbstick.
+---@field righty integer # The y-axis of the right thumbstick.
+---@field triggerleft integer # Left analog trigger.
+---@field triggerright integer # Right analog trigger.
+
+---@class love.GamepadButton
+---@field a integer # Bottom face button (A).
+---@field b integer # Right face button (B).
+---@field x integer # Left face button (X).
+---@field y integer # Top face button (Y).
+---@field back integer # Back button.
+---@field guide integer # Guide button.
+---@field start integer # Start button.
+---@field leftstick integer # Left stick click button.
+---@field rightstick integer # Right stick click button.
+---@field leftshoulder integer # Left bumper.
+---@field rightshoulder integer # Right bumper.
+---@field dpup integer # D-pad up.
+---@field dpdown integer # D-pad down.
+---@field dpleft integer # D-pad left.
+---@field dpright integer # D-pad right.
+
+---@class love.JoystickHat
+---@field c integer # Centered
+---@field d integer # Down
+---@field l integer # Left
+---@field ld integer # Left+Down
+---@field lu integer # Left+Up
+---@field r integer # Right
+---@field rd integer # Right+Down
+---@field ru integer # Right+Up
+---@field u integer # Up
+
+---@class love.JoystickInputType
+---@field axis integer # Analog axis.
+---@field button integer # Button.
+---@field hat integer # 8-direction hat value.
diff --git a/meta/3rd/love2d/library/love.keyboard.lua b/meta/3rd/love2d/library/love.keyboard.lua
index 00cb9677..fe6dfdfe 100644
--- a/meta/3rd/love2d/library/love.keyboard.lua
+++ b/meta/3rd/love2d/library/love.keyboard.lua
@@ -72,3 +72,345 @@ function love.keyboard.setKeyRepeat(enable) end
---
---@param enable boolean # Whether text input events should be enabled.
function love.keyboard.setTextInput(enable) end
+
+---@class love.KeyConstant
+---@field a integer # The A key
+---@field b integer # The B key
+---@field c integer # The C key
+---@field d integer # The D key
+---@field e integer # The E key
+---@field f integer # The F key
+---@field g integer # The G key
+---@field h integer # The H key
+---@field i integer # The I key
+---@field j integer # The J key
+---@field k integer # The K key
+---@field l integer # The L key
+---@field m integer # The M key
+---@field n integer # The N key
+---@field o integer # The O key
+---@field p integer # The P key
+---@field q integer # The Q key
+---@field r integer # The R key
+---@field s integer # The S key
+---@field t integer # The T key
+---@field u integer # The U key
+---@field v integer # The V key
+---@field w integer # The W key
+---@field x integer # The X key
+---@field y integer # The Y key
+---@field z integer # The Z key
+---@field 0 integer # The zero key
+---@field 1 integer # The one key
+---@field 2 integer # The two key
+---@field 3 integer # The three key
+---@field 4 integer # The four key
+---@field 5 integer # The five key
+---@field 6 integer # The six key
+---@field 7 integer # The seven key
+---@field 8 integer # The eight key
+---@field 9 integer # The nine key
+---@field space integer # Space key
+---@field ! integer # 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 kp0 integer # The numpad zero key
+---@field kp1 integer # The numpad one key
+---@field kp2 integer # The numpad two key
+---@field kp3 integer # The numpad three key
+---@field kp4 integer # The numpad four key
+---@field kp5 integer # The numpad five key
+---@field kp6 integer # The numpad six key
+---@field kp7 integer # The numpad seven key
+---@field kp8 integer # The numpad eight key
+---@field kp9 integer # The numpad nine key
+---@field kp. integer # The numpad decimal point key
+---@field kp/ integer # The numpad division key
+---@field kp* integer # The numpad multiplication key
+---@field kp- integer # The numpad substraction key
+---@field kp+ integer # The numpad addition key
+---@field kpenter integer # The numpad enter key
+---@field kp= integer # The numpad equals key
+---@field up integer # Up cursor key
+---@field down integer # Down cursor key
+---@field right integer # Right cursor key
+---@field left integer # Left cursor key
+---@field home integer # Home key
+---@field end integer # End key
+---@field pageup integer # Page up key
+---@field pagedown integer # Page down key
+---@field insert integer # Insert key
+---@field backspace integer # Backspace key
+---@field tab integer # Tab key
+---@field clear integer # Clear key
+---@field return integer # Return key
+---@field delete integer # Delete key
+---@field f1 integer # The 1st function key
+---@field f2 integer # The 2nd function key
+---@field f3 integer # The 3rd function key
+---@field f4 integer # The 4th function key
+---@field f5 integer # The 5th function key
+---@field f6 integer # The 6th function key
+---@field f7 integer # The 7th function key
+---@field f8 integer # The 8th function key
+---@field f9 integer # The 9th function key
+---@field f10 integer # The 10th function key
+---@field f11 integer # The 11th function key
+---@field f12 integer # The 12th function key
+---@field f13 integer # The 13th function key
+---@field f14 integer # The 14th function key
+---@field f15 integer # The 15th function key
+---@field numlock integer # Num-lock key
+---@field capslock integer # Caps-lock key
+---@field scrollock integer # Scroll-lock key
+---@field rshift integer # Right shift key
+---@field lshift integer # Left shift key
+---@field rctrl integer # Right control key
+---@field lctrl integer # Left control key
+---@field ralt integer # Right alt key
+---@field lalt integer # Left alt key
+---@field rmeta integer # Right meta key
+---@field lmeta integer # Left meta key
+---@field lsuper integer # Left super key
+---@field rsuper integer # Right super key
+---@field mode integer # Mode key
+---@field compose integer # Compose key
+---@field pause integer # Pause key
+---@field escape integer # Escape key
+---@field help integer # Help key
+---@field print integer # Print key
+---@field sysreq integer # System request key
+---@field break integer # Break key
+---@field menu integer # Menu key
+---@field power integer # Power key
+---@field euro integer # Euro (&euro;) key
+---@field undo integer # Undo key
+---@field www integer # WWW key
+---@field mail integer # Mail key
+---@field calculator integer # Calculator key
+---@field appsearch integer # Application search key
+---@field apphome integer # Application home key
+---@field appback integer # Application back key
+---@field appforward integer # Application forward key
+---@field apprefresh integer # Application refresh key
+---@field appbookmarks integer # Application bookmarks key
+
+---@class love.Scancode
+---@field a integer # The 'A' key on an American layout.
+---@field b integer # The 'B' key on an American layout.
+---@field c integer # The 'C' key on an American layout.
+---@field d integer # The 'D' key on an American layout.
+---@field e integer # The 'E' key on an American layout.
+---@field f integer # The 'F' key on an American layout.
+---@field g integer # The 'G' key on an American layout.
+---@field h integer # The 'H' key on an American layout.
+---@field i integer # The 'I' key on an American layout.
+---@field j integer # The 'J' key on an American layout.
+---@field k integer # The 'K' key on an American layout.
+---@field l integer # The 'L' key on an American layout.
+---@field m integer # The 'M' key on an American layout.
+---@field n integer # The 'N' key on an American layout.
+---@field o integer # The 'O' key on an American layout.
+---@field p integer # The 'P' key on an American layout.
+---@field q integer # The 'Q' key on an American layout.
+---@field r integer # The 'R' key on an American layout.
+---@field s integer # The 'S' key on an American layout.
+---@field t integer # The 'T' key on an American layout.
+---@field u integer # The 'U' key on an American layout.
+---@field v integer # The 'V' key on an American layout.
+---@field w integer # The 'W' key on an American layout.
+---@field x integer # The 'X' key on an American layout.
+---@field y integer # The 'Y' key on an American layout.
+---@field z integer # The 'Z' key on an American layout.
+---@field 1 integer # The '1' key on an American layout.
+---@field 2 integer # The '2' key on an American layout.
+---@field 3 integer # The '3' key on an American layout.
+---@field 4 integer # The '4' key on an American layout.
+---@field 5 integer # The '5' key on an American layout.
+---@field 6 integer # The '6' key on an American layout.
+---@field 7 integer # The '7' key on an American layout.
+---@field 8 integer # The '8' key on an American layout.
+---@field 9 integer # The '9' key on an American layout.
+---@field 0 integer # The '0' key on an American layout.
+---@field return integer # The 'return' / 'enter' key on an American layout.
+---@field escape integer # The 'escape' key on an American layout.
+---@field backspace integer # The 'backspace' key on an American layout.
+---@field tab integer # The 'tab' key on an American layout.
+---@field space integer # The spacebar on an American layout.
+---@field - integer # 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 nonus# integer # The non-U.S. hash scancode.
+---@field ; integer # 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 capslock integer # The capslock key on an American layout.
+---@field f1 integer # The F1 key on an American layout.
+---@field f2 integer # The F2 key on an American layout.
+---@field f3 integer # The F3 key on an American layout.
+---@field f4 integer # The F4 key on an American layout.
+---@field f5 integer # The F5 key on an American layout.
+---@field f6 integer # The F6 key on an American layout.
+---@field f7 integer # The F7 key on an American layout.
+---@field f8 integer # The F8 key on an American layout.
+---@field f9 integer # The F9 key on an American layout.
+---@field f10 integer # The F10 key on an American layout.
+---@field f11 integer # The F11 key on an American layout.
+---@field f12 integer # The F12 key on an American layout.
+---@field f13 integer # The F13 key on an American layout.
+---@field f14 integer # The F14 key on an American layout.
+---@field f15 integer # The F15 key on an American layout.
+---@field f16 integer # The F16 key on an American layout.
+---@field f17 integer # The F17 key on an American layout.
+---@field f18 integer # The F18 key on an American layout.
+---@field f19 integer # The F19 key on an American layout.
+---@field f20 integer # The F20 key on an American layout.
+---@field f21 integer # The F21 key on an American layout.
+---@field f22 integer # The F22 key on an American layout.
+---@field f23 integer # The F23 key on an American layout.
+---@field f24 integer # The F24 key on an American layout.
+---@field lctrl integer # The left control key on an American layout.
+---@field lshift integer # The left shift key on an American layout.
+---@field lalt integer # The left alt / option key on an American layout.
+---@field lgui integer # The left GUI (command / windows / super) key on an American layout.
+---@field rctrl integer # The right control key on an American layout.
+---@field rshift integer # The right shift key on an American layout.
+---@field ralt integer # The right alt / option key on an American layout.
+---@field rgui integer # The right GUI (command / windows / super) key on an American layout.
+---@field printscreen integer # The printscreen key on an American layout.
+---@field scrolllock integer # The scroll-lock key on an American layout.
+---@field pause integer # The pause key on an American layout.
+---@field insert integer # The insert key on an American layout.
+---@field home integer # The home key on an American layout.
+---@field numlock integer # The numlock / clear key on an American layout.
+---@field pageup integer # The page-up key on an American layout.
+---@field delete integer # The forward-delete key on an American layout.
+---@field end integer # The end key on an American layout.
+---@field pagedown integer # The page-down key on an American layout.
+---@field right integer # The right-arrow key on an American layout.
+---@field left integer # The left-arrow key on an American layout.
+---@field down integer # The down-arrow key on an American layout.
+---@field up integer # The up-arrow key on an American layout.
+---@field nonusbackslash integer # The non-U.S. backslash scancode.
+---@field application integer # The application key on an American layout. Windows contextual menu, compose key.
+---@field execute integer # The 'execute' key on an American layout.
+---@field help integer # The 'help' key on an American layout.
+---@field menu integer # The 'menu' key on an American layout.
+---@field select integer # The 'select' key on an American layout.
+---@field stop integer # The 'stop' key on an American layout.
+---@field again integer # The 'again' key on an American layout.
+---@field undo integer # The 'undo' key on an American layout.
+---@field cut integer # The 'cut' key on an American layout.
+---@field copy integer # The 'copy' key on an American layout.
+---@field paste integer # The 'paste' key on an American layout.
+---@field find integer # The 'find' key on an American layout.
+---@field kp/ integer # The keypad forward-slash key on an American layout.
+---@field kp* integer # The keypad '*' key on an American layout.
+---@field kp- integer # The keypad minus key on an American layout.
+---@field kp+ integer # The keypad plus key on an American layout.
+---@field kp= integer # The keypad equals key on an American layout.
+---@field kpenter integer # The keypad enter key on an American layout.
+---@field kp1 integer # The keypad '1' key on an American layout.
+---@field kp2 integer # The keypad '2' key on an American layout.
+---@field kp3 integer # The keypad '3' key on an American layout.
+---@field kp4 integer # The keypad '4' key on an American layout.
+---@field kp5 integer # The keypad '5' key on an American layout.
+---@field kp6 integer # The keypad '6' key on an American layout.
+---@field kp7 integer # The keypad '7' key on an American layout.
+---@field kp8 integer # The keypad '8' key on an American layout.
+---@field kp9 integer # The keypad '9' key on an American layout.
+---@field kp0 integer # The keypad '0' key on an American layout.
+---@field kp. integer # The keypad period key on an American layout.
+---@field international1 integer # The 1st international key on an American layout. Used on Asian keyboards.
+---@field international2 integer # The 2nd international key on an American layout.
+---@field international3 integer # The 3rd international key on an American layout. Yen.
+---@field international4 integer # The 4th international key on an American layout.
+---@field international5 integer # The 5th international key on an American layout.
+---@field international6 integer # The 6th international key on an American layout.
+---@field international7 integer # The 7th international key on an American layout.
+---@field international8 integer # The 8th international key on an American layout.
+---@field international9 integer # The 9th international key on an American layout.
+---@field lang1 integer # Hangul/English toggle scancode.
+---@field lang2 integer # Hanja conversion scancode.
+---@field lang3 integer # Katakana scancode.
+---@field lang4 integer # Hiragana scancode.
+---@field lang5 integer # Zenkaku/Hankaku scancode.
+---@field mute integer # The mute key on an American layout.
+---@field volumeup integer # The volume up key on an American layout.
+---@field volumedown integer # The volume down key on an American layout.
+---@field audionext integer # The audio next track key on an American layout.
+---@field audioprev integer # The audio previous track key on an American layout.
+---@field audiostop integer # The audio stop key on an American layout.
+---@field audioplay integer # The audio play key on an American layout.
+---@field audiomute integer # The audio mute key on an American layout.
+---@field mediaselect integer # The media select key on an American layout.
+---@field www integer # The 'WWW' key on an American layout.
+---@field mail integer # The Mail key on an American layout.
+---@field calculator integer # The calculator key on an American layout.
+---@field computer integer # The 'computer' key on an American layout.
+---@field acsearch integer # The AC Search key on an American layout.
+---@field achome integer # The AC Home key on an American layout.
+---@field acback integer # The AC Back key on an American layout.
+---@field acforward integer # The AC Forward key on an American layout.
+---@field acstop integer # Th AC Stop key on an American layout.
+---@field acrefresh integer # The AC Refresh key on an American layout.
+---@field acbookmarks integer # The AC Bookmarks key on an American layout.
+---@field power integer # The system power scancode.
+---@field brightnessdown integer # The brightness-down scancode.
+---@field brightnessup integer # The brightness-up scancode.
+---@field displayswitch integer # The display switch scancode.
+---@field kbdillumtoggle integer # The keyboard illumination toggle scancode.
+---@field kbdillumdown integer # The keyboard illumination down scancode.
+---@field kbdillumup integer # The keyboard illumination up scancode.
+---@field eject integer # The eject scancode.
+---@field sleep integer # The system sleep scancode.
+---@field alterase integer # The alt-erase key on an American layout.
+---@field sysreq integer # The sysreq key on an American layout.
+---@field cancel integer # The 'cancel' key on an American layout.
+---@field clear integer # The 'clear' key on an American layout.
+---@field prior integer # The 'prior' key on an American layout.
+---@field return2 integer # The 'return2' key on an American layout.
+---@field separator integer # The 'separator' key on an American layout.
+---@field out integer # The 'out' key on an American layout.
+---@field oper integer # The 'oper' key on an American layout.
+---@field clearagain integer # The 'clearagain' key on an American layout.
+---@field crsel integer # The 'crsel' key on an American layout.
+---@field exsel integer # The 'exsel' key on an American layout.
+---@field kp00 integer # The keypad 00 key on an American layout.
+---@field kp000 integer # The keypad 000 key on an American layout.
+---@field thsousandsseparator integer # The thousands-separator key on an American layout.
+---@field decimalseparator integer # The decimal separator key on an American layout.
+---@field currencyunit integer # The currency unit key on an American layout.
+---@field currencysubunit integer # The currency sub-unit key on an American layout.
+---@field app1 integer # The 'app1' scancode.
+---@field app2 integer # The 'app2' scancode.
+---@field unknown integer # An unknown key.
diff --git a/meta/3rd/love2d/library/love.lua b/meta/3rd/love2d/library/love.lua
index 25ebcf0b..a4e14d06 100644
--- a/meta/3rd/love2d/library/love.lua
+++ b/meta/3rd/love2d/library/love.lua
@@ -85,3 +85,75 @@ function Object:type() end
---
---@param name string # The name of the type to check for.
function Object:typeOf(name) end
+
+---@type love.conf
+
+---@type love.directorydropped
+
+---@type love.displayrotated
+
+---@type love.draw
+
+---@type love.errorhandler
+
+---@type love.filedropped
+
+---@type love.focus
+
+---@type love.gamepadaxis
+
+---@type love.gamepadpressed
+
+---@type love.gamepadreleased
+
+---@type love.joystickadded
+
+---@type love.joystickaxis
+
+---@type love.joystickhat
+
+---@type love.joystickpressed
+
+---@type love.joystickreleased
+
+---@type love.joystickremoved
+
+---@type love.keypressed
+
+---@type love.keyreleased
+
+---@type love.load
+
+---@type love.lowmemory
+
+---@type love.mousefocus
+
+---@type love.mousemoved
+
+---@type love.mousepressed
+
+---@type love.mousereleased
+
+---@type love.quit
+
+---@type love.resize
+
+---@type love.run
+
+---@type love.textedited
+
+---@type love.textinput
+
+---@type love.threaderror
+
+---@type love.touchmoved
+
+---@type love.touchpressed
+
+---@type love.touchreleased
+
+---@type love.update
+
+---@type love.visible
+
+---@type love.wheelmoved
diff --git a/meta/3rd/love2d/library/love.math.lua b/meta/3rd/love2d/library/love.math.lua
index 2f63a8e8..455a10c2 100644
--- a/meta/3rd/love2d/library/love.math.lua
+++ b/meta/3rd/love2d/library/love.math.lua
@@ -431,3 +431,7 @@ function Transform:transformPoint(globalX, globalY) end
---@param dy number # The relative translation along the y-axis.
---@return love.Transform transform # The Transform object the method was called on. Allows easily chaining Transform methods.
function Transform:translate(dx, dy) end
+
+---@class love.MatrixLayout
+---@field row integer # The matrix is row-major:
+---@field column integer # The matrix is column-major:
diff --git a/meta/3rd/love2d/library/love.mouse.lua b/meta/3rd/love2d/library/love.mouse.lua
index c4399876..9cd43c99 100644
--- a/meta/3rd/love2d/library/love.mouse.lua
+++ b/meta/3rd/love2d/library/love.mouse.lua
@@ -140,3 +140,18 @@ local Cursor = {}
---
---@return love.CursorType ctype # The type of the Cursor.
function Cursor:getType() end
+
+---@class love.CursorType
+---@field image integer # The cursor is using a custom image.
+---@field arrow integer # An arrow pointer.
+---@field ibeam integer # An I-beam, normally used when mousing over editable or selectable text.
+---@field wait integer # Wait graphic.
+---@field waitarrow integer # Small wait cursor with an arrow pointer.
+---@field crosshair integer # Crosshair symbol.
+---@field sizenwse integer # Double arrow pointing to the top-left and bottom-right.
+---@field sizenesw integer # Double arrow pointing to the top-right and bottom-left.
+---@field sizewe integer # Double arrow pointing left and right.
+---@field sizens integer # Double arrow pointing up and down.
+---@field sizeall integer # Four-pointed arrow pointing up, down, left, and right.
+---@field no integer # Slashed circle or crossbones.
+---@field hand integer # Hand symbol.
diff --git a/meta/3rd/love2d/library/love.physics.lua b/meta/3rd/love2d/library/love.physics.lua
index 7004b5d5..16d8d959 100644
--- a/meta/3rd/love2d/library/love.physics.lua
+++ b/meta/3rd/love2d/library/love.physics.lua
@@ -2066,3 +2066,25 @@ function World:translateOrigin() end
---@param velocityiterations number # The maximum number of steps used to determine the new velocities when resolving a collision.
---@param positioniterations number # The maximum number of steps used to determine the new positions when resolving a collision.
function World:update(dt, velocityiterations, positioniterations) end
+
+---@class love.BodyType
+---@field static integer # Static bodies do not move.
+---@field dynamic integer # Dynamic bodies collide with all bodies.
+---@field kinematic integer # Kinematic bodies only collide with dynamic bodies.
+
+---@class love.JointType
+---@field distance integer # A DistanceJoint.
+---@field friction integer # A FrictionJoint.
+---@field gear integer # A GearJoint.
+---@field mouse integer # A MouseJoint.
+---@field prismatic integer # A PrismaticJoint.
+---@field pulley integer # A PulleyJoint.
+---@field revolute integer # A RevoluteJoint.
+---@field rope integer # A RopeJoint.
+---@field weld integer # A WeldJoint.
+
+---@class love.ShapeType
+---@field circle integer # The Shape is a CircleShape.
+---@field polygon integer # The Shape is a PolygonShape.
+---@field edge integer # The Shape is a EdgeShape.
+---@field chain integer # The Shape is a ChainShape.
diff --git a/meta/3rd/love2d/library/love.system.lua b/meta/3rd/love2d/library/love.system.lua
index aea8a292..3ef2b82b 100644
--- a/meta/3rd/love2d/library/love.system.lua
+++ b/meta/3rd/love2d/library/love.system.lua
@@ -55,3 +55,10 @@ function love.system.setClipboardText(text) end
---
---@param seconds number # The duration to vibrate for. If called on an iOS device, it will always vibrate for 0.5 seconds due to limitations in the iOS system APIs.
function love.system.vibrate(seconds) end
+
+---@class love.PowerState
+---@field unknown integer # Cannot determine power status.
+---@field battery integer # Not plugged in, running on a battery.
+---@field nobattery integer # Plugged in, no battery available.
+---@field charging integer # Plugged in, charging battery.
+---@field charged integer # Plugged in, battery is fully charged.
diff --git a/meta/3rd/love2d/library/love.window.lua b/meta/3rd/love2d/library/love.window.lua
index aea7ae26..8d3e9dbf 100644
--- a/meta/3rd/love2d/library/love.window.lua
+++ b/meta/3rd/love2d/library/love.window.lua
@@ -277,3 +277,20 @@ function love.window.toPixels(value) end
---@param settings table # The settings table with the following optional fields. Any field not filled in will use the current value that would be returned by love.window.getMode.
---@return boolean success # True if successful, false otherwise.
function love.window.updateMode(width, height, settings) end
+
+---@class love.DisplayOrientation
+---@field unknown integer # Orientation cannot be determined.
+---@field landscape integer # Landscape orientation.
+---@field landscapeflipped integer # Landscape orientation (flipped).
+---@field portrait integer # Portrait orientation.
+---@field portraitflipped integer # Portrait orientation (flipped).
+
+---@class love.FullscreenType
+---@field desktop integer # 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 exclusive integer # Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.
+---@field normal integer # Standard exclusive-fullscreen mode. Changes the display mode (actual resolution) of the monitor.
+
+---@class love.MessageBoxType
+---@field info integer # Informational dialog.
+---@field warning integer # Warning dialog.
+---@field error integer # Error dialog.