Skip to content

Instantly share code, notes, and snippets.

@benphelps
Created June 26, 2024 14:19
Show Gist options
  • Save benphelps/d5ea1e25c7a0e2493724a4095d517c38 to your computer and use it in GitHub Desktop.
Save benphelps/d5ea1e25c7a0e2493724a4095d517c38 to your computer and use it in GitHub Desktop.
LuaLS (EmmyLua) type definitions for most of raylib + raygui
---@meta raylib
---@class (exact) Vector2
---@field x number x component
---@field y number y component
---@overload fun(x: number, y: number): Vector2
---@overload fun(): Vector2
Vector2 = {}
---@class (exact) Vector3
---@field x number x component
---@field y number y component
---@field z number z component
---@overload fun(x: number, y: number, z: number): Vector3
---@overload fun(x: number, y: number): Vector3
---@overload fun(x: number): Vector3
---@overload fun(): Vector3
Vector3 = {}
---@class (exact) Vector4
---@field x number x component
---@field y number y component
---@field z number z component
---@field w number w component
---@overload fun(x: number, y: number, z: number, w: number): Vector4
---@overload fun(x: number, y: number, z: number): Vector4
---@overload fun(x: number, y: number): Vector4
---@overload fun(x: number): Vector4
---@overload fun(): Vector4
Vector4 = {}
---@class (exact) Quaternion: Vector4
Quaternion = {}
---@class (exact) Matrix
---@field m0 number Matrix first row (4 components)
---@field m4 number
---@field m8 number
---@field m12 number
---@field m1 number Matrix second row (4 components)
---@field m5 number
---@field m9 number
---@field m13 number
---@field m2 number Matrix third row (4 components)
---@field m6 number
---@field m10 number
---@field m14 number
---@field m3 number Matrix fourth row (4 components)
---@field m7 number
---@field m11 number
---@field m15 number
---@overload fun(m0: number, m4: number, m8: number, m12: number, m1: number, m5: number, m9: number, m13: number, m2: number, m6: number, m10: number, m14: number, m3: number, m7: number, m11: number, m15: number): Matrix
---@overload fun(): Matrix
Matrix = {}
---@class (exact) Color
---@field r number Color red value
---@field g number Color green value
---@field b number Color blue value
---@field a number Color alpha value
---@overload fun(r: number, g: number, b: number, a: number): Color
---@overload fun(r: number, g: number, b: number): Color
---@overload fun(): Color
Color = {}
---@class (exact) Rectangle
---@field x number Rectangle top-left corner position x
---@field y number Rectangle top-left corner position y
---@field width number Rectangle width
---@field height number Rectangle height
---@overload fun(x: number, y: number, width: number, height: number): Rectangle
---@overload fun(rectangle: Rectangle): Rectangle
---@overload fun(): Rectangle
Rectangle = {}
---@class (exact) Image
---@field data userdata Image raw data
---@field width number Image base width
---@field height number Image base height
---@field mipmaps number Mipmap levels, 1 by default
---@field format number Data format (PixelFormat type)
Image = {}
---@class (exact) Texture
---@field id number OpenGL texture id
---@field width number Texture base width
---@field height number Texture base height
---@field mipmaps number Mipmap levels, 1 by default
---@field format number Data format (PixelFormat type)
Texture = {}
---@class (exact) Texture2D: Texture
Texture2D = {}
---@class (exact) TextureCubemap: Texture
TextureCubemap = {}
---@class (exact) RenderTexture
---@field id number OpenGL framebuffer object id
---@field texture Texture Color buffer attachment texture
---@field depth Texture Depth buffer attachment texture
RenderTexture = {}
---@class (exact) RenderTexture2D: RenderTexture
RenderTexture2D = {}
---@class (exact) NPatchInfo
---@field source Rectangle Texture source rectangle
---@field left number Left border offset
---@field top number Top border offset
---@field right number Right border offset
---@field bottom number Bottom border offset
---@field layout NPatchLayout Layout of the n-patch: 3x3, 1x3 or 3x1
NPatchInfo = {}
---@class (exact) GlyphInfo
---@field value number Character value (Unicode)
---@field offsetX number Character offset X when drawing
---@field offsetY number Character offset Y when drawing
---@field advanceX number Character advance position X
---@field image Image Character image data
GlyphInfo = {}
---@class (exact) Font
---@field baseSize number Base size (default strings height)
---@field glyphCount number Number of glyph stringacters
---@field glyphPadding number Padding around the glyph stringacters
---@field texture Texture2D Texture atlas containing the glyphs
---@field recs Rectangle[] Rectangles in texture for the glyphs
---@field glyphs GlyphInfo[] Glyphs info data
Font = {}
---@class (exact) Camera3D
---@field position Vector3 Camera position
---@field target Vector3 Camera target it looks-at
---@field up Vector3 Camera up vector (rotation over its axis)
---@field fovy number Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic
---@field projection CameraProjection Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
---@overload fun(position: Vector3, target: Vector3, up: Vector3, fovy: number, projection: number): Camera3D
---@overload fun(position: Vector3, target: Vector3, up: Vector3, fovy: number): Camera3D
---@overload fun(position: Vector3, target: Vector3, up: Vector3): Camera3D
---@overload fun(): Camera3D
Camera3D = {}
---@class (exact) Camera: Camera3D
Camera = {}
---@class (exact) Camera2D
---@field offset Vector2 Camera offset (displacement from target)
---@field target Vector2 Camera target (rotation and zoom origin)
---@field rotation number Camera rotation in degrees
---@field zoom number Camera zoom (scaling), should be 1.0f by default
---@overload fun(offset: Vector2, target: Vector2, rotation: number, zoom: number): Camera2D
---@overload fun(offset: Vector2, target: Vector2): Camera2D
---@overload fun(): Camera2D
Camera2D = {}
---@class (exact) Mesh
---@field vertexCount number Number of vertices stored in arrays
---@field triangleCount number Number of triangles stored (indexed or not)
---@field vertices number[] Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
---@field texcoords number[] Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
---@field texcoords2 number[] Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5)
---@field normals number[] Vertex normals (XYZ - 3 components per vertex) (shader-location = 2)
---@field tangents number[] Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4)
---@field colors number[] Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
---@field indices number[] Vertex indices (in case vertex data comes indexed)
---@field animVertices number[] Animated vertex positions (after bones transformations)
---@field animNormals number[] Animated normals (after bones transformations)
---@field boneIds number[] Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning)
---@field boneWeights number[] Vertex bone weight, up to 4 bones influence by vertex (skinning)
---@field vaoId number OpenGL Vertex Array Object id
---@field vboId number[] OpenGL Vertex Buffer Objects id (default vertex data)
Mesh = {}
---@class (exact) Shader
---@field id number Shader program id
---@field locs number[] Shader locations array (RL_MAX_SHADER_LOCATIONS)
Shader = {}
---@class (exact) MaterialMap
---@field texture Texture2D Material map texture
---@field color Color Material map color
---@field value number Material map value
MaterialMap = {}
---@class (exact) Material
---@field shader Shader Material shader
---@field maps MaterialMap[] Material maps array (MAX_MATERIAL_MAPS)
---@field params number[] Material generic parameters (if required)
Material = {}
---@class (exact) Transform
---@field translation Vector3 Translation
---@field rotation Quaternion Rotation
---@field scale Vector3 Scale
Transform = {}
---@class (exact) BoneInfo
---@field name string Bone name
---@field parent number Bone parent
BoneInfo = {}
---@class (exact) Model
---@field transform Matrix Local transform matrix
---@field meshCount number Number of meshes
---@field materialCount number Number of materials
---@field meshes Mesh[] Meshes array
---@field materials Material[] Materials array
---@field meshMaterial number[] Mesh material number
---@field boneCount number Number of bones
---@field bones BoneInfo[] Bones information (skeleton)
---@field bindPose Transform[] Bones base transformation (pose)
Model = {}
---@class (exact) ModelAnimation
---@field boneCount number Number of bones
---@field frameCount number Number of animation frames
---@field bones BoneInfo[] Bones information (skeleton)
---@field framePoses Transform[][] Poses array by frame
ModelAnimation = {}
---@class (exact) Ray
---@field position Vector3 Ray position (origin)
---@field direction Vector3 Ray direction
---@overload fun(position: Vector3, direction: Vector3): Ray
---@overload fun(position: Vector3): Ray
---@overload fun(): Ray
Ray = {}
---@class (exact) RayCollision
---@field hit boolean Did the ray hit something?
---@field distance number Distance to the nearest hit
---@field point Vector3 Point of the nearest hit
---@field normal Vector3 Surface normal of hit
RayCollision = {}
---@class (exact) BoundingBox
---@field min Vector3 Minimum vertex box-corner
---@field max Vector3 Maximum vertex box-corner
---@overload fun(min: Vector3, max: Vector3): BoundingBox
---@overload fun(): BoundingBox
BoundingBox = {}
---@class (exact) Wave
---@field frameCount number Total number of frames (considering channels)
---@field sampleRate number Frequency (samples per second)
---@field sampleSize number Bit depth (bits per sample): 8, 16, 32 (24 not supported)
---@field channels number Number of channels (1-mono, 2-stereo, ...)
---@field data userdata Buffer data pointer
Wave = {}
---@class (exact) rAudioBuffer
rAudioBuffer = {}
---@class (exact) rAudioProcessor
rAudioProcessor = {}
---@class (exact) AudioStream
---@field buffer rAudioBuffer Pointer to internal data used by the audio system
---@field processor rAudioProcessor Pointer to internal data processor, useful for audio effects
---@field sampleRate number Frequency (samples per second)
---@field sampleSize number Bit depth (bits per sample): 8, 16, 32 (24 not supported)
---@field channels number Number of channels (1-mono, 2-stereo, ...)
AudioStream = {}
---@class (exact) Sound
---@field stream AudioStream Audio stream
---@field frameCount number Total number of frames (considering channels)
Sound = {}
---@class (exact) Music
---@field stream AudioStream Audio stream
---@field frameCount number Total number of frames (considering channels)
---@field looping boolean Music looping enable
---@field ctxType number Type of music context (audio filetype)
---@field ctxData userdata Audio context data, depends on type
Music = {}
---@class (exact) VrDeviceInfo
---@field hResolution number Horizontal resolution in pixels
---@field vResolution number Vertical resolution in pixels
---@field hScreenSize number Horizontal size in meters
---@field vScreenSize number Vertical size in meters
---@field vScreenCenter number Screen center in meters
---@field eyeToScreenDistance number Distance between eye and display in meters
---@field lensSeparationDistance number Lens separation distance in meters
---@field interpupillaryDistance number IPD (distance between pupils) in meters
---@field lensDistortionValues number[] Lens distortion constant parameters
---@field chromaAbCorrection number[] Chromatic aberration correction parameters
VrDeviceInfo = {}
---@class VrStereoConfig
---@field projection Matrix[] VR projection matrices (per eye)
---@field viewOffset Matrix[] VR view offset matrices (per eye)
---@field leftLensCenter number[] VR left lens center
---@field rightLensCenter number[] VR right lens center
---@field leftScreenCenter number[] VR left screen center
---@field rightScreenCenter number[] VR right screen center
---@field scale number[] VR distortion scale
---@field scaleIn number[] VR distortion scale in
VrStereoConfig = {}
---@class FilePathList
---@field capacity number Filepaths max entries
---@field count number Filepaths entries count
---@field paths string[] Filepaths entries
FilePathList = {}
---@class AutomationEvent
---@field frame number Event frame
---@field type number Event type (AutomationEventType)
---@field params number[] Event parameters (if required)
AutomationEvent = {}
---@class AutomationEventList
---@field capacity number Events max entries (MAX_AUTOMATION_EVENTS)
---@field count number Events entries count
---@field events AutomationEvent[] Events entries
AutomationEventList = {}
-- Custom raylib color palette for amazing visuals on WHITE backgroun
LIGHTGRAY = { r = 200, g = 200, b = 200, a = 255 } --[[@as Color Light Gray]]
GRAY = { r = 130, g = 130, b = 130, a = 255 } --[[@as Color Gray]]
DARKGRAY = { r = 80, g = 80, b = 80, a = 255 } --[[@as Color Dark Gray]]
YELLOW = { r = 253, g = 249, b = 0, a = 255 } --[[@as Color Yellow]]
GOLD = { r = 255, g = 203, b = 0, a = 255 } --[[@as Color Gold]]
ORANGE = { r = 255, g = 161, b = 0, a = 255 } --[[@as Color Orange]]
PINK = { r = 255, g = 109, b = 194, a = 255 } --[[@as Color Pink]]
RED = { r = 230, g = 41, b = 55, a = 255 } --[[@as Color Red]]
MAROON = { r = 190, g = 33, b = 55, a = 255 } --[[@as Color Maroon]]
GREEN = { r = 0, g = 228, b = 48, a = 255 } --[[@as Color Green]]
LIME = { r = 0, g = 158, b = 47, a = 255 } --[[@as Color Lime]]
DARKGREEN = { r = 0, g = 117, b = 44, a = 255 } --[[@as Color Dark Green]]
SKYBLUE = { r = 102, g = 191, b = 255, a = 255 } --[[@as Color Sky Blue]]
BLUE = { r = 0, g = 121, b = 241, a = 255 } --[[@as Color Blue]]
DARKBLUE = { r = 0, g = 82, b = 172, a = 255 } --[[@as Color Dark Blue]]
PURPLE = { r = 200, g = 122, b = 255, a = 255 } --[[@as Color Purple]]
VIOLET = { r = 135, g = 60, b = 190, a = 255 } --[[@as Color Violet]]
DARKPURPLE = { r = 112, g = 31, b = 126, a = 255 } --[[@as Color Dark Purple]]
BEIGE = { r = 211, g = 176, b = 131, a = 255 } --[[@as Color Beige]]
BROWN = { r = 127, g = 106, b = 79, a = 255 } --[[@as Color Brown]]
DARKBROWN = { r = 76, g = 63, b = 47, a = 255 } --[[@as Color Dark Brown]]
WHITE = { r = 255, g = 255, b = 255, a = 255 } --[[@as Color White]]
BLACK = { r = 0, g = 0, b = 0, a = 255 } --[[@as Color Black]]
BLANK = { r = 0, g = 0, b = 0, a = 0 } --[[@as Color Blank (Transparent)]]
MAGENTA = { r = 255, g = 0, b = 255, a = 255 } --[[@as Color Magenta]]
RAYWHITE = { r = 245, g = 245, b = 245, a = 255 } --[[@as Color My own White (raylib logo)]]
-- System/Window config flags
FLAG_VSYNC_HINT = 0x00000040 -- Set to try enabling V-Sync on GPU
FLAG_FULLSCREEN_MODE = 0x00000002 -- Set to run program in fullscreen
FLAG_WINDOW_RESIZABLE = 0x00000004 -- Set to allow resizable window
FLAG_WINDOW_UNDECORATED = 0x00000008 -- Set to disable window decoration (frame and buttons)
FLAG_WINDOW_HIDDEN = 0x00000080 -- Set to hide window
FLAG_WINDOW_MINIMIZED = 0x00000200 -- Set to minimize window (iconify)
FLAG_WINDOW_MAXIMIZED = 0x00000400 -- Set to maximize window (expanded to monitor)
FLAG_WINDOW_UNFOCUSED = 0x00000800 -- Set to window non focused
FLAG_WINDOW_TOPMOST = 0x00001000 -- Set to window always on top
FLAG_WINDOW_ALWAYS_RUN = 0x00000100 -- Set to allow windows running while minimized
FLAG_WINDOW_TRANSPARENT = 0x00000010 -- Set to allow transparent framebuffer
FLAG_WINDOW_HIGHDPI = 0x00002000 -- Set to support HighDPI
FLAG_WINDOW_MOUSE_PASSTHROUGH = 0x00004000 -- Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED
FLAG_BORDERLESS_WINDOWED_MODE = 0x00008000 -- Set to run program in borderless windowed mode
FLAG_MSAA_4X_HINT = 0x00000020 -- Set to try enabling MSAA 4X
FLAG_INTERLACED_HINT = 0x00010000 -- Set to try enabling interlaced video format (for V3D)
-- Trace log level
LOG_ALL = 0 -- Display all logs
LOG_TRACE = 1 -- Trace logging, intended for internal use only
LOG_DEBUG = 2 -- Debug logging, used for internal debugging, it should be disabled on release builds
LOG_INFO = 3 -- Info logging, used for program execution info
LOG_WARNING = 4 -- Warning logging, used on recoverable failures
LOG_ERROR = 5 -- Error logging, used on unrecoverable failures
LOG_FATAL = 6 -- Fatal logging, used to abort program: exit(EXIT_FAILURE)
LOG_NONE = 7 -- Disable logging
-- Keyboard keys (US keyboard layout)
KEY_NULL = 0 -- Key: NULL, used for no key pressed
KEY_APOSTROPHE = 39 -- Key: '
KEY_COMMA = 44 -- Key: ,
KEY_MINUS = 45 -- Key: -
KEY_PERIOD = 46 -- Key: .
KEY_SLASH = 47 -- Key: /
KEY_ZERO = 48 -- Key: 0
KEY_ONE = 49 -- Key: 1
KEY_TWO = 50 -- Key: 2
KEY_THREE = 51 -- Key: 3
KEY_FOUR = 52 -- Key: 4
KEY_FIVE = 53 -- Key: 5
KEY_SIX = 54 -- Key: 6
KEY_SEVEN = 55 -- Key: 7
KEY_EIGHT = 56 -- Key: 8
KEY_NINE = 57 -- Key: 9
KEY_SEMICOLON = 59 -- Key: ;
KEY_EQUAL = 61 -- Key: =
KEY_A = 65 -- Key: A | a
KEY_B = 66 -- Key: B | b
KEY_C = 67 -- Key: C | c
KEY_D = 68 -- Key: D | d
KEY_E = 69 -- Key: E | e
KEY_F = 70 -- Key: F | f
KEY_G = 71 -- Key: G | g
KEY_H = 72 -- Key: H | h
KEY_I = 73 -- Key: I | i
KEY_J = 74 -- Key: J | j
KEY_K = 75 -- Key: K | k
KEY_L = 76 -- Key: L | l
KEY_M = 77 -- Key: M | m
KEY_N = 78 -- Key: N | n
KEY_O = 79 -- Key: O | o
KEY_P = 80 -- Key: P | p
KEY_Q = 81 -- Key: Q | q
KEY_R = 82 -- Key: R | r
KEY_S = 83 -- Key: S | s
KEY_T = 84 -- Key: T | t
KEY_U = 85 -- Key: U | u
KEY_V = 86 -- Key: V | v
KEY_W = 87 -- Key: W | w
KEY_X = 88 -- Key: X | x
KEY_Y = 89 -- Key: Y | y
KEY_Z = 90 -- Key: Z | z
KEY_LEFT_BRACKET = 91 -- Key: [
KEY_BACKSLASH = 92 -- Key: '\'
KEY_RIGHT_BRACKET = 93 -- Key: ]
KEY_GRAVE = 96 -- Key: `
KEY_SPACE = 32 -- Key: Space
KEY_ESCAPE = 256 -- Key: Esc
KEY_ENTER = 257 -- Key: Enter
KEY_TAB = 258 -- Key: Tab
KEY_BACKSPACE = 259 -- Key: Backspace
KEY_INSERT = 260 -- Key: Ins
KEY_DELETE = 261 -- Key: Del
KEY_RIGHT = 262 -- Key: Cursor right
KEY_LEFT = 263 -- Key: Cursor left
KEY_DOWN = 264 -- Key: Cursor down
KEY_UP = 265 -- Key: Cursor up
KEY_PAGE_UP = 266 -- Key: Page up
KEY_PAGE_DOWN = 267 -- Key: Page down
KEY_HOME = 268 -- Key: Home
KEY_END = 269 -- Key: End
KEY_CAPS_LOCK = 280 -- Key: Caps lock
KEY_SCROLL_LOCK = 281 -- Key: Scroll down
KEY_NUM_LOCK = 282 -- Key: Num lock
KEY_PRINT_SCREEN = 283 -- Key: Print screen
KEY_PAUSE = 284 -- Key: Pause
KEY_F1 = 290 -- Key: F1
KEY_F2 = 291 -- Key: F2
KEY_F3 = 292 -- Key: F3
KEY_F4 = 293 -- Key: F4
KEY_F5 = 294 -- Key: F5
KEY_F6 = 295 -- Key: F6
KEY_F7 = 296 -- Key: F7
KEY_F8 = 297 -- Key: F8
KEY_F9 = 298 -- Key: F9
KEY_F10 = 299 -- Key: F10
KEY_F11 = 300 -- Key: F11
KEY_F12 = 301 -- Key: F12
KEY_LEFT_SHIFT = 340 -- Key: Shift left
KEY_LEFT_CONTROL = 341 -- Key: Control left
KEY_LEFT_ALT = 342 -- Key: Alt left
KEY_LEFT_SUPER = 343 -- Key: Super left
KEY_RIGHT_SHIFT = 344 -- Key: Shift right
KEY_RIGHT_CONTROL = 345 -- Key: Control right
KEY_RIGHT_ALT = 346 -- Key: Alt right
KEY_RIGHT_SUPER = 347 -- Key: Super right
KEY_KB_MENU = 348 -- Key: KB menu
KEY_KP_0 = 320 -- Key: Keypad 0
KEY_KP_1 = 321 -- Key: Keypad 1
KEY_KP_2 = 322 -- Key: Keypad 2
KEY_KP_3 = 323 -- Key: Keypad 3
KEY_KP_4 = 324 -- Key: Keypad 4
KEY_KP_5 = 325 -- Key: Keypad 5
KEY_KP_6 = 326 -- Key: Keypad 6
KEY_KP_7 = 327 -- Key: Keypad 7
KEY_KP_8 = 328 -- Key: Keypad 8
KEY_KP_9 = 329 -- Key: Keypad 9
KEY_KP_DECIMAL = 330 -- Key: Keypad .
KEY_KP_DIVIDE = 331 -- Key: Keypad /
KEY_KP_MULTIPLY = 332 -- Key: Keypad *
KEY_KP_SUBTRACT = 333 -- Key: Keypad -
KEY_KP_ADD = 334 -- Key: Keypad +
KEY_KP_ENTER = 335 -- Key: Keypad Enter
KEY_KP_EQUAL = 336 -- Key: Keypad =
KEY_BACK = 4 -- Key: Android back button
KEY_MENU = 5 -- Key: Android menu button
KEY_VOLUME_UP = 24 -- Key: Android volume up button
KEY_VOLUME_DOWN = 25 -- Key: Android volume down button
-- Mouse buttons
MOUSE_BUTTON_LEFT = 0 -- Mouse button left
MOUSE_BUTTON_RIGHT = 1 -- Mouse button right
MOUSE_BUTTON_MIDDLE = 2 -- Mouse button middle (pressed wheel)
MOUSE_BUTTON_SIDE = 3 -- Mouse button side (advanced mouse device)
MOUSE_BUTTON_EXTRA = 4 -- Mouse button extra (advanced mouse device)
MOUSE_BUTTON_FORWARD = 5 -- Mouse button forward (advanced mouse device)
MOUSE_BUTTON_BACK = 6 -- Mouse button back (advanced mouse device)
-- Mouse cursor
MOUSE_CURSOR_DEFAULT = 0 -- Default pointer shape
MOUSE_CURSOR_ARROW = 1 -- Arrow shape
MOUSE_CURSOR_IBEAM = 2 -- Text writing cursor shape
MOUSE_CURSOR_CROSSHAIR = 3 -- Cross shape
MOUSE_CURSOR_POINTING_HAND = 4 -- Pointing hand cursor
MOUSE_CURSOR_RESIZE_EW = 5 -- Horizontal resize/move arrow shape
MOUSE_CURSOR_RESIZE_NS = 6 -- Vertical resize/move arrow shape
MOUSE_CURSOR_RESIZE_NWSE = 7 -- Top-left to bottom-right diagonal resize/move arrow shape
MOUSE_CURSOR_RESIZE_NESW = 8 -- Top-right to bottom-left diagonal resize/move arrow shape
MOUSE_CURSOR_RESIZE_ALL = 9 -- Omnidirectional resize/move cursor shape
MOUSE_CURSOR_NOT_ALLOWED = 10 -- Operation-not-allowed shape
-- Gamepad buttons
GAMEPAD_BUTTON_UNKNOWN = 0 -- Unknown button, just for error checking
GAMEPAD_BUTTON_LEFT_FACE_UP = 1 -- Gamepad left DPAD up button
GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2 -- Gamepad left DPAD right button
GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3 -- Gamepad left DPAD down button
GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4 -- Gamepad left DPAD left button
GAMEPAD_BUTTON_RIGHT_FACE_UP = 5 -- Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)
GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6 -- Gamepad right button right (i.e. PS3: Circle, Xbox: B)
GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7 -- Gamepad right button down (i.e. PS3: Cross, Xbox: A)
GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8 -- Gamepad right button left (i.e. PS3: Square, Xbox: X)
GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9 -- Gamepad top/back trigger left (first), it could be a trailing button
GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10 -- Gamepad top/back trigger left (second), it could be a trailing button
GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11 -- Gamepad top/back trigger right (first), it could be a trailing button
GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12 -- Gamepad top/back trigger right (second), it could be a trailing button
GAMEPAD_BUTTON_MIDDLE_LEFT = 13 -- Gamepad center buttons, left one (i.e. PS3: Select)
GAMEPAD_BUTTON_MIDDLE = 14 -- Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)
GAMEPAD_BUTTON_MIDDLE_RIGHT = 15 -- Gamepad center buttons, right one (i.e. PS3: Start)
GAMEPAD_BUTTON_LEFT_THUMB = 16 -- Gamepad joystick pressed button left
GAMEPAD_BUTTON_RIGHT_THUMB = 17 -- Gamepad joystick pressed button right
-- Gamepad axis
GAMEPAD_AXIS_LEFT_X = 0 -- Gamepad left stick X axis
GAMEPAD_AXIS_LEFT_Y = 1 -- Gamepad left stick Y axis
GAMEPAD_AXIS_RIGHT_X = 2 -- Gamepad right stick X axis
GAMEPAD_AXIS_RIGHT_Y = 3 -- Gamepad right stick Y axis
GAMEPAD_AXIS_LEFT_TRIGGER = 4 -- Gamepad back trigger left, pressure level: [1..-1]
GAMEPAD_AXIS_RIGHT_TRIGGER = 5 -- Gamepad back trigger right, pressure level: [1..-1]
-- Material map index
MATERIAL_MAP_ALBEDO = 0 -- Albedo material (same as: MATERIAL_MAP_DIFFUSE)
MATERIAL_MAP_METALNESS = 1 -- Metalness material (same as: MATERIAL_MAP_SPECULAR)
MATERIAL_MAP_NORMAL = 2 -- Normal material
MATERIAL_MAP_ROUGHNESS = 3 -- Roughness material
MATERIAL_MAP_OCCLUSION = 4 -- Ambient occlusion material
MATERIAL_MAP_EMISSION = 5 -- Emission material
MATERIAL_MAP_HEIGHT = 6 -- Heightmap material
MATERIAL_MAP_CUBEMAP = 7 -- Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
MATERIAL_MAP_IRRADIANCE = 8 -- Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
MATERIAL_MAP_PREFILTER = 9 -- Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
MATERIAL_MAP_BRDF = 10 -- Brdf material
MATERIAL_MAP_DIFFUSE = MATERIAL_MAP_ALBEDO
MATERIAL_MAP_SPECULAR = MATERIAL_MAP_METALNESS
-- Shader location index
SHADER_LOC_VERTEX_POSITION = 0 -- Shader location: vertex attribute: position
SHADER_LOC_VERTEX_TEXCOORD01 = 1 -- Shader location: vertex attribute: texcoord01
SHADER_LOC_VERTEX_TEXCOORD02 = 2 -- Shader location: vertex attribute: texcoord02
SHADER_LOC_VERTEX_NORMAL = 3 -- Shader location: vertex attribute: normal
SHADER_LOC_VERTEX_TANGENT = 4 -- Shader location: vertex attribute: tangent
SHADER_LOC_VERTEX_COLOR = 5 -- Shader location: vertex attribute: color
SHADER_LOC_MATRIX_MVP = 6 -- Shader location: matrix uniform: model-view-projection
SHADER_LOC_MATRIX_VIEW = 7 -- Shader location: matrix uniform: view (camera transform)
SHADER_LOC_MATRIX_PROJECTION = 8 -- Shader location: matrix uniform: projection
SHADER_LOC_MATRIX_MODEL = 9 -- Shader location: matrix uniform: model (transform)
SHADER_LOC_MATRIX_NORMAL = 10 -- Shader location: matrix uniform: normal
SHADER_LOC_VECTOR_VIEW = 11 -- Shader location: vector uniform: view
SHADER_LOC_COLOR_DIFFUSE = 12 -- Shader location: vector uniform: diffuse color
SHADER_LOC_COLOR_SPECULAR = 13 -- Shader location: vector uniform: specular color
SHADER_LOC_COLOR_AMBIENT = 14 -- Shader location: vector uniform: ambient color
SHADER_LOC_MAP_ALBEDO = 15 -- Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)
SHADER_LOC_MAP_METALNESS = 16 -- Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)
SHADER_LOC_MAP_NORMAL = 17 -- Shader location: sampler2d texture: normal
SHADER_LOC_MAP_ROUGHNESS = 18 -- Shader location: sampler2d texture: roughness
SHADER_LOC_MAP_OCCLUSION = 19 -- Shader location: sampler2d texture: occlusion
SHADER_LOC_MAP_EMISSION = 20 -- Shader location: sampler2d texture: emission
SHADER_LOC_MAP_HEIGHT = 21 -- Shader location: sampler2d texture: height
SHADER_LOC_MAP_CUBEMAP = 22 -- Shader location: samplerCube texture: cubemap
SHADER_LOC_MAP_IRRADIANCE = 23 -- Shader location: samplerCube texture: irradiance
SHADER_LOC_MAP_PREFILTER = 24 -- Shader location: samplerCube texture: prefilter
SHADER_LOC_MAP_BRDF = 25 -- Shader location: sampler2d texture: brdf
SHADER_LOC_MAP_DIFFUSE = SHADER_LOC_MAP_ALBEDO
SHADER_LOC_MAP_SPECULAR = SHADER_LOC_MAP_METALNESS
-- Shader uniform data type
SHADER_UNIFORM_FLOAT = 0 -- Shader uniform type: float
SHADER_UNIFORM_VEC2 = 1 -- Shader uniform type: vec2 (2 float)
SHADER_UNIFORM_VEC3 = 2 -- Shader uniform type: vec3 (3 float)
SHADER_UNIFORM_VEC4 = 3 -- Shader uniform type: vec4 (4 float)
SHADER_UNIFORM_INT = 4 -- Shader uniform type: int
SHADER_UNIFORM_IVEC2 = 5 -- Shader uniform type: ivec2 (2 int)
SHADER_UNIFORM_IVEC3 = 6 -- Shader uniform type: ivec3 (3 int)
SHADER_UNIFORM_IVEC4 = 7 -- Shader uniform type: ivec4 (4 int)
SHADER_UNIFORM_SAMPLER2D = 8 -- Shader uniform type: sampler2d
-- Shader attribute data types
SHADER_ATTRIB_FLOAT = 0 -- Shader attribute type: float
SHADER_ATTRIB_VEC2 = 1 -- Shader attribute type: vec2 (2 float)
SHADER_ATTRIB_VEC3 = 2 -- Shader attribute type: vec3 (3 float)
SHADER_ATTRIB_VEC4 = 3 -- Shader attribute type: vec4 (4 float)
-- Pixel formats
PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1 -- 8 bit per pixel (no alpha)
PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2 -- 8*2 bpp (2 channels)
PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3 -- 16 bpp
PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4 -- 24 bpp
PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5 -- 16 bpp (1 bit alpha)
PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6 -- 16 bpp (4 bit alpha)
PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7 -- 32 bpp
PIXELFORMAT_UNCOMPRESSED_R32 = 8 -- 32 bpp (1 channel - float)
PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 -- 32*3 bpp (3 channels - float)
PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 -- 32*4 bpp (4 channels - float)
PIXELFORMAT_UNCOMPRESSED_R16 = 11 -- 16 bpp (1 channel - half float)
PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 -- 16*3 bpp (3 channels - half float)
PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 -- 16*4 bpp (4 channels - half float)
PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 -- 4 bpp (no alpha)
PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 -- 4 bpp (1 bit alpha)
PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 -- 8 bpp
PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 -- 8 bpp
PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 -- 4 bpp
PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 -- 4 bpp
PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 -- 8 bpp
PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 -- 4 bpp
PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 -- 4 bpp
PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 -- 8 bpp
PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 -- 2 bpp
-- Texture parameters: filter mode
TEXTURE_FILTER_POINT = 0 -- No filter, just pixel approximation
TEXTURE_FILTER_BILINEAR = 1 -- Linear filtering
TEXTURE_FILTER_TRILINEAR = 2 -- Trilinear filtering (linear with mipmaps)
TEXTURE_FILTER_ANISOTROPIC_4X = 3 -- Anisotropic filtering 4x
TEXTURE_FILTER_ANISOTROPIC_8X = 4 -- Anisotropic filtering 8x
TEXTURE_FILTER_ANISOTROPIC_16X = 5 -- Anisotropic filtering 16x
-- Texture parameters: wrap mode
TEXTURE_WRAP_REPEAT = 0 -- Repeats texture in tiled mode
TEXTURE_WRAP_CLAMP = 1 -- Clamps texture to edge pixel in tiled mode
TEXTURE_WRAP_MIRROR_REPEAT = 2 -- Mirrors and repeats the texture in tiled mode
TEXTURE_WRAP_MIRROR_CLAMP = 3 -- Mirrors and clamps to border the texture in tiled mode
-- Cubemap layouts
CUBEMAP_LAYOUT_AUTO_DETECT = 0 -- Automatically detect layout type
CUBEMAP_LAYOUT_LINE_VERTICAL = 1 -- Layout is defined by a vertical line with faces
CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2 -- Layout is defined by a horizontal line with faces
CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3 -- Layout is defined by a 3x4 cross with cubemap faces
CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4 -- Layout is defined by a 4x3 cross with cubemap faces
CUBEMAP_LAYOUT_PANORAMA = 5 -- Layout is defined by a panorama image (equirrectangular map)
-- Font type, defines generation method
FONT_DEFAULT = 0 -- Default font generation, anti-aliased
FONT_BITMAP = 1 -- Bitmap font generation, no anti-aliasing
FONT_SDF = 2 -- SDF font generation, requires external shader
-- Color blending modes (pre-defined)
BLEND_ALPHA = 0 -- Blend textures considering alpha (default)
BLEND_ADDITIVE = 1 -- Blend textures adding colors
BLEND_MULTIPLIED = 2 -- Blend textures multiplying colors
BLEND_ADD_COLORS = 3 -- Blend textures adding colors (alternative)
BLEND_SUBTRACT_COLORS = 4 -- Blend textures subtracting colors (alternative)
BLEND_ALPHA_PREMULTIPLY = 5 -- Blend premultiplied textures considering alpha
BLEND_CUSTOM = 6 -- Blend textures using custom src/dst factors (use rlSetBlendFactors())
BLEND_CUSTOM_SEPARATE = 7 -- Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())
-- Gesture
GESTURE_NONE = 0 -- No gesture
GESTURE_TAP = 1 -- Tap gesture
GESTURE_DOUBLETAP = 2 -- Double tap gesture
GESTURE_HOLD = 4 -- Hold gesture
GESTURE_DRAG = 8 -- Drag gesture
GESTURE_SWIPE_RIGHT = 16 -- Swipe right gesture
GESTURE_SWIPE_LEFT = 32 -- Swipe left gesture
GESTURE_SWIPE_UP = 64 -- Swipe up gesture
GESTURE_SWIPE_DOWN = 128 -- Swipe down gesture
GESTURE_PINCH_IN = 256 -- Pinch in gesture
GESTURE_PINCH_OUT = 512 -- Pinch out gesture
-- Camera system modes
CAMERA_CUSTOM = 0 -- Camera custom, controlled by user (UpdateCamera() does nothing)
CAMERA_FREE = 1 -- Camera free mode
CAMERA_ORBITAL = 2 -- Camera orbital, around target, zoom supported
CAMERA_FIRST_PERSON = 3 -- Camera first person
CAMERA_THIRD_PERSON = 4 -- Camera third person
-- Camera projection
CAMERA_PERSPECTIVE = 0 -- Perspective projection
CAMERA_ORTHOGRAPHIC = 1 -- Orthographic projection
-- N-patch layout
NPATCH_NINE_PATCH = 0 -- Npatch layout: 3x3 tiles
NPATCH_THREE_PATCH_VERTICAL = 1 -- Npatch layout: 1x3 tiles
NPATCH_THREE_PATCH_HORIZONTAL = 2 -- Npatch layout: 3x1 tiles
-- Gui control state
STATE_NORMAL = 0
STATE_FOCUSED = 1
STATE_PRESSED = 2
STATE_DISABLED = 3
-- Gui control text alignment
TEXT_ALIGN_LEFT = 0
TEXT_ALIGN_CENTER = 1
TEXT_ALIGN_RIGHT = 2
-- Gui control text alignment vertical
-- NOTE: Text vertical position inside the text bounds
TEXT_ALIGN_TOP = 0
TEXT_ALIGN_MIDDLE = 1
TEXT_ALIGN_BOTTOM = 2
-- Gui control text wrap mode
-- NOTE: Useful for multiline text
TEXT_WRAP_NONE = 0
TEXT_WRAP_CHAR = 1
TEXT_WRAP_WORD = 2
-- Gui controls
-- Default -> populates to all controls when set
DEFAULT = 0
LABEL = 1 -- Used also for: LABELBUTTON
BUTTON = 2
TOGGLE = 3 -- Used also for: TOGGLEGROUP
SLIDER = 4 -- Used also for: SLIDERBAR, TOGGLESLIDER
PROGRESSBAR = 5
CHECKBOX = 6
COMBOBOX = 7
DROPDOWNBOX = 8
TEXTBOX = 9 -- Used also for: TEXTBOXMULTI
VALUEBOX = 10
SPINNER = 11 -- Uses: BUTTON, VALUEBOX
LISTVIEW = 12
COLORPICKER = 13
SCROLLBAR = 14
STATUSBAR = 15
-- Gui base properties for every control
-- NOTE: RAYGUI_MAX_PROPS_BASE properties (by default 16 properties)
BORDER_COLOR_NORMAL = 0 -- Control border color in STATE_NORMAL
BASE_COLOR_NORMAL = 1 -- Control base color in STATE_NORMAL
TEXT_COLOR_NORMAL = 2 -- Control text color in STATE_NORMAL
BORDER_COLOR_FOCUSED = 3 -- Control border color in STATE_FOCUSED
BASE_COLOR_FOCUSED = 4 -- Control base color in STATE_FOCUSED
TEXT_COLOR_FOCUSED = 5 -- Control text color in STATE_FOCUSED
BORDER_COLOR_PRESSED = 6 -- Control border color in STATE_PRESSED
BASE_COLOR_PRESSED = 7 -- Control base color in STATE_PRESSED
TEXT_COLOR_PRESSED = 8 -- Control text color in STATE_PRESSED
BORDER_COLOR_DISABLED = 9 -- Control border color in STATE_DISABLED
BASE_COLOR_DISABLED = 10 -- Control base color in STATE_DISABLED
TEXT_COLOR_DISABLED = 11 -- Control text color in STATE_DISABLED
BORDER_WIDTH = 12 -- Control border size, 0 for no border
TEXT_PADDING = 13 -- Control text padding, not considering border
TEXT_ALIGNMENT = 14 -- Control text horizontal alignment inside control text bound (after border and padding)
-- Gui extended properties depend on control
-- NOTE: RAYGUI_MAX_PROPS_EXTENDED properties (by default, max 8 properties)
-- DEFAULT extended properties
-- NOTE: Those properties are common to all controls or global
-- WARNING: We only have 8 slots for those properties by default!!! -> New global control: TEXT?
TEXT_SIZE = 16 -- Text size (glyphs max height)
TEXT_SPACING = 17 -- Text spacing between glyphs
LINE_COLOR = 18 -- Line control color
BACKGROUND_COLOR = 19 -- Background color
TEXT_LINE_SPACING = 20 -- Text spacing between lines
TEXT_ALIGNMENT_VERTICAL = 21 -- Text vertical alignment inside text bounds (after border and padding)
TEXT_WRAP_MODE = 22 -- Text wrap-mode inside text bounds
-- Toggle/ToggleGroup
GROUP_PADDING = 16 -- ToggleGroup separation between toggles
-- Slider/SliderBar
SLIDER_WIDTH = 16 -- Slider size of internal bar
SLIDER_PADDING = 17 -- Slider/SliderBar internal bar padding
-- ProgressBar
PROGRESS_PADDING = 16 -- ProgressBar internal padding
-- ScrollBar
ARROWS_SIZE = 16 -- ScrollBar arrows size
ARROWS_VISIBLE = 17 -- ScrollBar arrows visible
SCROLL_SLIDER_PADDING = 18 -- ScrollBar slider internal padding
SCROLL_SLIDER_SIZE = 19 -- ScrollBar slider size
SCROLL_PADDING = 20 -- ScrollBar scroll padding from arrows
SCROLL_SPEED = 21 -- ScrollBar scrolling speed
-- CheckBox
CHECK_PADDING = 16 -- CheckBox internal check padding
-- ComboBox
COMBO_BUTTON_WIDTH = 16 -- ComboBox right button width
COMBO_BUTTON_SPACING = 17 -- ComboBox button separation
-- DropdownBox
ARROW_PADDING = 16 -- DropdownBox arrow separation from border and items
DROPDOWN_ITEMS_SPACING = 17 -- DropdownBox items separation
DROPDOWN_ARROW_HIDDEN = 18 -- DropdownBox arrow hidden
-- TextBox/TextBoxMulti/ValueBox/Spinner
TEXT_READONLY = 16 -- TextBox in read-only mode: 0-text editable, 1-text no-editable
-- Spinner
SPIN_BUTTON_WIDTH = 16 -- Spinner left/right buttons width
SPIN_BUTTON_SPACING = 17 -- Spinner buttons separation
-- ListView
LIST_ITEMS_HEIGHT = 16 -- ListView items height
LIST_ITEMS_SPACING = 17 -- ListView items separation
SCROLLBAR_WIDTH = 18 -- ListView scrollbar size (usually width)
SCROLLBAR_SIDE = 19 -- ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE)
LIST_ITEMS_BORDER_WIDTH = 20 -- ListView items border width
-- ColorPicker
COLOR_SELECTOR_SIZE = 16
HUEBAR_WIDTH = 17 -- ColorPicker right hue bar width
HUEBAR_PADDING = 18 -- ColorPicker right hue bar separation from panel
HUEBAR_SELECTOR_HEIGHT = 19 -- ColorPicker right hue bar selector height
HUEBAR_SELECTOR_OVERFLOW = 20 -- ColorPicker right hue bar selector overflow
SCROLLBAR_LEFT_SIDE = 0
SCROLLBAR_RIGHT_SIDE = 1
-- Icons
ICON_NONE = 0
ICON_FOLDER_FILE_OPEN = 1
ICON_FILE_SAVE_CLASSIC = 2
ICON_FOLDER_OPEN = 3
ICON_FOLDER_SAVE = 4
ICON_FILE_OPEN = 5
ICON_FILE_SAVE = 6
ICON_FILE_EXPORT = 7
ICON_FILE_ADD = 8
ICON_FILE_DELETE = 9
ICON_FILETYPE_TEXT = 10
ICON_FILETYPE_AUDIO = 11
ICON_FILETYPE_IMAGE = 12
ICON_FILETYPE_PLAY = 13
ICON_FILETYPE_VIDEO = 14
ICON_FILETYPE_INFO = 15
ICON_FILE_COPY = 16
ICON_FILE_CUT = 17
ICON_FILE_PASTE = 18
ICON_CURSOR_HAND = 19
ICON_CURSOR_POINTER = 20
ICON_CURSOR_CLASSIC = 21
ICON_PENCIL = 22
ICON_PENCIL_BIG = 23
ICON_BRUSH_CLASSIC = 24
ICON_BRUSH_PAINTER = 25
ICON_WATER_DROP = 26
ICON_COLOR_PICKER = 27
ICON_RUBBER = 28
ICON_COLOR_BUCKET = 29
ICON_TEXT_T = 30
ICON_TEXT_A = 31
ICON_SCALE = 32
ICON_RESIZE = 33
ICON_FILTER_POINT = 34
ICON_FILTER_BILINEAR = 35
ICON_CROP = 36
ICON_CROP_ALPHA = 37
ICON_SQUARE_TOGGLE = 38
ICON_SYMMETRY = 39
ICON_SYMMETRY_HORIZONTAL = 40
ICON_SYMMETRY_VERTICAL = 41
ICON_LENS = 42
ICON_LENS_BIG = 43
ICON_EYE_ON = 44
ICON_EYE_OFF = 45
ICON_FILTER_TOP = 46
ICON_FILTER = 47
ICON_TARGET_POINT = 48
ICON_TARGET_SMALL = 49
ICON_TARGET_BIG = 50
ICON_TARGET_MOVE = 51
ICON_CURSOR_MOVE = 52
ICON_CURSOR_SCALE = 53
ICON_CURSOR_SCALE_RIGHT = 54
ICON_CURSOR_SCALE_LEFT = 55
ICON_UNDO = 56
ICON_REDO = 57
ICON_REREDO = 58
ICON_MUTATE = 59
ICON_ROTATE = 60
ICON_REPEAT = 61
ICON_SHUFFLE = 62
ICON_EMPTYBOX = 63
ICON_TARGET = 64
ICON_TARGET_SMALL_FILL = 65
ICON_TARGET_BIG_FILL = 66
ICON_TARGET_MOVE_FILL = 67
ICON_CURSOR_MOVE_FILL = 68
ICON_CURSOR_SCALE_FILL = 69
ICON_CURSOR_SCALE_RIGHT_FILL = 70
ICON_CURSOR_SCALE_LEFT_FILL = 71
ICON_UNDO_FILL = 72
ICON_REDO_FILL = 73
ICON_REREDO_FILL = 74
ICON_MUTATE_FILL = 75
ICON_ROTATE_FILL = 76
ICON_REPEAT_FILL = 77
ICON_SHUFFLE_FILL = 78
ICON_EMPTYBOX_SMALL = 79
ICON_BOX = 80
ICON_BOX_TOP = 81
ICON_BOX_TOP_RIGHT = 82
ICON_BOX_RIGHT = 83
ICON_BOX_BOTTOM_RIGHT = 84
ICON_BOX_BOTTOM = 85
ICON_BOX_BOTTOM_LEFT = 86
ICON_BOX_LEFT = 87
ICON_BOX_TOP_LEFT = 88
ICON_BOX_CENTER = 89
ICON_BOX_CIRCLE_MASK = 90
ICON_POT = 91
ICON_ALPHA_MULTIPLY = 92
ICON_ALPHA_CLEAR = 93
ICON_DITHERING = 94
ICON_MIPMAPS = 95
ICON_BOX_GRID = 96
ICON_GRID = 97
ICON_BOX_CORNERS_SMALL = 98
ICON_BOX_CORNERS_BIG = 99
ICON_FOUR_BOXES = 100
ICON_GRID_FILL = 101
ICON_BOX_MULTISIZE = 102
ICON_ZOOM_SMALL = 103
ICON_ZOOM_MEDIUM = 104
ICON_ZOOM_BIG = 105
ICON_ZOOM_ALL = 106
ICON_ZOOM_CENTER = 107
ICON_BOX_DOTS_SMALL = 108
ICON_BOX_DOTS_BIG = 109
ICON_BOX_CONCENTRIC = 110
ICON_BOX_GRID_BIG = 111
ICON_OK_TICK = 112
ICON_CROSS = 113
ICON_ARROW_LEFT = 114
ICON_ARROW_RIGHT = 115
ICON_ARROW_DOWN = 116
ICON_ARROW_UP = 117
ICON_ARROW_LEFT_FILL = 118
ICON_ARROW_RIGHT_FILL = 119
ICON_ARROW_DOWN_FILL = 120
ICON_ARROW_UP_FILL = 121
ICON_AUDIO = 122
ICON_FX = 123
ICON_WAVE = 124
ICON_WAVE_SINUS = 125
ICON_WAVE_SQUARE = 126
ICON_WAVE_TRIANGULAR = 127
ICON_CROSS_SMALL = 128
ICON_PLAYER_PREVIOUS = 129
ICON_PLAYER_PLAY_BACK = 130
ICON_PLAYER_PLAY = 131
ICON_PLAYER_PAUSE = 132
ICON_PLAYER_STOP = 133
ICON_PLAYER_NEXT = 134
ICON_PLAYER_RECORD = 135
ICON_MAGNET = 136
ICON_LOCK_CLOSE = 137
ICON_LOCK_OPEN = 138
ICON_CLOCK = 139
ICON_TOOLS = 140
ICON_GEAR = 141
ICON_GEAR_BIG = 142
ICON_BIN = 143
ICON_HAND_POINTER = 144
ICON_LASER = 145
ICON_COIN = 146
ICON_EXPLOSION = 147
ICON_1UP = 148
ICON_PLAYER = 149
ICON_PLAYER_JUMP = 150
ICON_KEY = 151
ICON_DEMON = 152
ICON_TEXT_POPUP = 153
ICON_GEAR_EX = 154
ICON_CRACK = 155
ICON_CRACK_POINTS = 156
ICON_STAR = 157
ICON_DOOR = 158
ICON_EXIT = 159
ICON_MODE_2D = 160
ICON_MODE_3D = 161
ICON_CUBE = 162
ICON_CUBE_FACE_TOP = 163
ICON_CUBE_FACE_LEFT = 164
ICON_CUBE_FACE_FRONT = 165
ICON_CUBE_FACE_BOTTOM = 166
ICON_CUBE_FACE_RIGHT = 167
ICON_CUBE_FACE_BACK = 168
ICON_CAMERA = 169
ICON_SPECIAL = 170
ICON_LINK_NET = 171
ICON_LINK_BOXES = 172
ICON_LINK_MULTI = 173
ICON_LINK = 174
ICON_LINK_BROKE = 175
ICON_TEXT_NOTES = 176
ICON_NOTEBOOK = 177
ICON_SUITCASE = 178
ICON_SUITCASE_ZIP = 179
ICON_MAILBOX = 180
ICON_MONITOR = 181
ICON_PRINTER = 182
ICON_PHOTO_CAMERA = 183
ICON_PHOTO_CAMERA_FLASH = 184
ICON_HOUSE = 185
ICON_HEART = 186
ICON_CORNER = 187
ICON_VERTICAL_BARS = 188
ICON_VERTICAL_BARS_FILL = 189
ICON_LIFE_BARS = 190
ICON_INFO = 191
ICON_CROSSLINE = 192
ICON_HELP = 193
ICON_FILETYPE_ALPHA = 194
ICON_FILETYPE_HOME = 195
ICON_LAYERS_VISIBLE = 196
ICON_LAYERS = 197
ICON_WINDOW = 198
ICON_HIDPI = 199
ICON_FILETYPE_BINARY = 200
ICON_HEX = 201
ICON_SHIELD = 202
ICON_FILE_NEW = 203
ICON_FOLDER_ADD = 204
ICON_ALARM = 205
ICON_CPU = 206
ICON_ROM = 207
ICON_STEP_OVER = 208
ICON_STEP_INTO = 209
ICON_STEP_OUT = 210
ICON_RESTART = 211
ICON_BREAKPOINT_ON = 212
ICON_BREAKPOINT_OFF = 213
ICON_BURGER_MENU = 214
ICON_CASE_SENSITIVE = 215
ICON_REG_EXP = 216
ICON_FOLDER = 217
ICON_FILE = 218
ICON_SAND_TIMER = 219
ICON_WARNING = 220
ICON_HELP_BOX = 221
ICON_INFO_BOX = 222
ICON_223 = 223
ICON_224 = 224
ICON_225 = 225
ICON_226 = 226
ICON_227 = 227
ICON_228 = 228
ICON_229 = 229
ICON_230 = 230
ICON_231 = 231
ICON_232 = 232
ICON_233 = 233
ICON_234 = 234
ICON_235 = 235
ICON_236 = 236
ICON_237 = 237
ICON_238 = 238
ICON_239 = 239
ICON_240 = 240
ICON_241 = 241
ICON_242 = 242
ICON_243 = 243
ICON_244 = 244
ICON_245 = 245
ICON_246 = 246
ICON_247 = 247
ICON_248 = 248
ICON_249 = 249
ICON_250 = 250
ICON_251 = 251
ICON_252 = 252
ICON_253 = 253
ICON_254 = 254
ICON_255 = 255
---@alias ConfigFlags
---| `FLAG_VSYNC_HINT`
---| `FLAG_FULLSCREEN_MODE`
---| `FLAG_WINDOW_RESIZABLE`
---| `FLAG_WINDOW_UNDECORATED`
---| `FLAG_WINDOW_HIDDEN`
---| `FLAG_WINDOW_MINIMIZED`
---| `FLAG_WINDOW_MAXIMIZED`
---| `FLAG_WINDOW_UNFOCUSED`
---| `FLAG_WINDOW_TOPMOST`
---| `FLAG_WINDOW_ALWAYS_RUN`
---| `FLAG_WINDOW_TRANSPARENT`
---| `FLAG_WINDOW_HIGHDPI`
---| `FLAG_WINDOW_MOUSE_PASSTHROUGH`
---| `FLAG_BORDERLESS_WINDOWED_MODE`
---| `FLAG_MSAA_4X_HINT`
---| `FLAG_INTERLACED_HINT`
---@alias TraceLogLevel
---| `LOG_ALL`
---| `LOG_TRACE`
---| `LOG_DEBUG`
---| `LOG_INFO`
---| `LOG_WARNING`
---| `LOG_ERROR`
---| `LOG_FATAL`
---| `LOG_NONE`
---@alias KeyboardKey
---| `KEY_NULL`
---| `KEY_APOSTROPHE`
---| `KEY_COMMA`
---| `KEY_MINUS`
---| `KEY_PERIOD`
---| `KEY_SLASH`
---| `KEY_ZERO`
---| `KEY_ONE`
---| `KEY_TWO`
---| `KEY_THREE`
---| `KEY_FOUR`
---| `KEY_FIVE`
---| `KEY_SIX`
---| `KEY_SEVEN`
---| `KEY_EIGHT`
---| `KEY_NINE`
---| `KEY_SEMICOLON`
---| `KEY_EQUAL`
---| `KEY_A`
---| `KEY_B`
---| `KEY_C`
---| `KEY_D`
---| `KEY_E`
---| `KEY_F`
---| `KEY_G`
---| `KEY_H`
---| `KEY_I`
---| `KEY_J`
---| `KEY_K`
---| `KEY_L`
---| `KEY_M`
---| `KEY_N`
---| `KEY_O`
---| `KEY_P`
---| `KEY_Q`
---| `KEY_R`
---| `KEY_S`
---| `KEY_T`
---| `KEY_U`
---| `KEY_V`
---| `KEY_W`
---| `KEY_X`
---| `KEY_Y`
---| `KEY_Z`
---| `KEY_LEFT_BRACKET`
---| `KEY_BACKSLASH`
---| `KEY_RIGHT_BRACKET`
---| `KEY_GRAVE`
---| `KEY_SPACE`
---| `KEY_ESCAPE`
---| `KEY_ENTER`
---| `KEY_TAB`
---| `KEY_BACKSPACE`
---| `KEY_INSERT`
---| `KEY_DELETE`
---| `KEY_RIGHT`
---| `KEY_LEFT`
---| `KEY_DOWN`
---| `KEY_UP`
---| `KEY_PAGE_UP`
---| `KEY_PAGE_DOWN`
---| `KEY_HOME`
---| `KEY_END`
---| `KEY_CAPS_LOCK`
---| `KEY_SCROLL_LOCK`
---| `KEY_NUM_LOCK`
---| `KEY_PRINT_SCREEN`
---| `KEY_PAUSE`
---| `KEY_F1`
---| `KEY_F2`
---| `KEY_F3`
---| `KEY_F4`
---| `KEY_F5`
---| `KEY_F6`
---| `KEY_F7`
---| `KEY_F8`
---| `KEY_F9`
---| `KEY_F10`
---| `KEY_F11`
---| `KEY_F12`
---| `KEY_LEFT_SHIFT`
---| `KEY_LEFT_CONTROL`
---| `KEY_LEFT_ALT`
---| `KEY_LEFT_SUPER`
---| `KEY_RIGHT_SHIFT`
---| `KEY_RIGHT_CONTROL`
---| `KEY_RIGHT_ALT`
---| `KEY_RIGHT_SUPER`
---| `KEY_KB_MENU`
---| `KEY_KP_0`
---| `KEY_KP_1`
---| `KEY_KP_2`
---| `KEY_KP_3`
---| `KEY_KP_4`
---| `KEY_KP_5`
---| `KEY_KP_6`
---| `KEY_KP_7`
---| `KEY_KP_8`
---| `KEY_KP_9`
---| `KEY_KP_DECIMAL`
---| `KEY_KP_DIVIDE`
---| `KEY_KP_MULTIPLY`
---| `KEY_KP_SUBTRACT`
---| `KEY_KP_ADD`
---| `KEY_KP_ENTER`
---| `KEY_KP_EQUAL`
---| `KEY_BACK`
---| `KEY_MENU`
---| `KEY_VOLUME_UP`
---| `KEY_VOLUME_DOWN`
---@alias MouseButton
---| `MOUSE_BUTTON_LEFT`
---| `MOUSE_BUTTON_RIGHT`
---| `MOUSE_BUTTON_MIDDLE`
---| `MOUSE_BUTTON_SIDE`
---| `MOUSE_BUTTON_EXTRA`
---| `MOUSE_BUTTON_FORWARD`
---| `MOUSE_BUTTON_BACK`
---@alias MouseCursor
---| `MOUSE_CURSOR_DEFAULT`
---| `MOUSE_CURSOR_ARROW`
---| `MOUSE_CURSOR_IBEAM`
---| `MOUSE_CURSOR_CROSSHAIR`
---| `MOUSE_CURSOR_POINTING_HAND`
---| `MOUSE_CURSOR_RESIZE_EW`
---| `MOUSE_CURSOR_RESIZE_NS`
---| `MOUSE_CURSOR_RESIZE_NWSE`
---| `MOUSE_CURSOR_RESIZE_NESW`
---| `MOUSE_CURSOR_RESIZE_ALL`
---| `MOUSE_CURSOR_NOT_ALLOWED`
---@alias GamepadButton
---| `GAMEPAD_BUTTON_UNKNOWN`
---| `GAMEPAD_BUTTON_LEFT_FACE_UP`
---| `GAMEPAD_BUTTON_LEFT_FACE_RIGHT`
---| `GAMEPAD_BUTTON_LEFT_FACE_DOWN`
---| `GAMEPAD_BUTTON_LEFT_FACE_LEFT`
---| `GAMEPAD_BUTTON_RIGHT_FACE_UP`
---| `GAMEPAD_BUTTON_RIGHT_FACE_RIGHT`
---| `GAMEPAD_BUTTON_RIGHT_FACE_DOWN`
---| `GAMEPAD_BUTTON_RIGHT_FACE_LEFT`
---| `GAMEPAD_BUTTON_LEFT_TRIGGER_1`
---| `GAMEPAD_BUTTON_LEFT_TRIGGER_2`
---| `GAMEPAD_BUTTON_RIGHT_TRIGGER_1`
---| `GAMEPAD_BUTTON_RIGHT_TRIGGER_2`
---| `GAMEPAD_BUTTON_MIDDLE_LEFT`
---| `GAMEPAD_BUTTON_MIDDLE`
---| `GAMEPAD_BUTTON_MIDDLE_RIGHT`
---| `GAMEPAD_BUTTON_LEFT_THUMB`
---| `GAMEPAD_BUTTON_RIGHT_THUMB`
---@alias GamepadAxis
---| `GAMEPAD_AXIS_LEFT_X`
---| `GAMEPAD_AXIS_LEFT_Y`
---| `GAMEPAD_AXIS_RIGHT_X`
---| `GAMEPAD_AXIS_RIGHT_Y`
---| `GAMEPAD_AXIS_LEFT_TRIGGER`
---| `GAMEPAD_AXIS_RIGHT_TRIGGER`
---@alias MaterialMapIndex
---| `MATERIAL_MAP_ALBEDO`
---| `MATERIAL_MAP_METALNESS`
---| `MATERIAL_MAP_NORMAL`
---| `MATERIAL_MAP_ROUGHNESS`
---| `MATERIAL_MAP_OCCLUSION`
---| `MATERIAL_MAP_EMISSION`
---| `MATERIAL_MAP_HEIGHT`
---| `MATERIAL_MAP_CUBEMAP`
---| `MATERIAL_MAP_IRRADIANCE`
---| `MATERIAL_MAP_PREFILTER`
---| `MATERIAL_MAP_BRDF`
---| `MATERIAL_MAP_DIFFUSE`
---| `MATERIAL_MAP_SPECULAR`
---@alias ShaderLocationIndex
---| `SHADER_LOC_VERTEX_POSITION`
---| `SHADER_LOC_VERTEX_TEXCOORD01`
---| `SHADER_LOC_VERTEX_TEXCOORD02`
---| `SHADER_LOC_VERTEX_NORMAL`
---| `SHADER_LOC_VERTEX_TANGENT`
---| `SHADER_LOC_VERTEX_COLOR`
---| `SHADER_LOC_MATRIX_MVP`
---| `SHADER_LOC_MATRIX_VIEW`
---| `SHADER_LOC_MATRIX_PROJECTION`
---| `SHADER_LOC_MATRIX_MODEL`
---| `SHADER_LOC_MATRIX_NORMAL`
---| `SHADER_LOC_VECTOR_VIEW`
---| `SHADER_LOC_COLOR_DIFFUSE`
---| `SHADER_LOC_COLOR_SPECULAR`
---| `SHADER_LOC_COLOR_AMBIENT`
---| `SHADER_LOC_MAP_ALBEDO`
---| `SHADER_LOC_MAP_METALNESS`
---| `SHADER_LOC_MAP_NORMAL`
---| `SHADER_LOC_MAP_ROUGHNESS`
---| `SHADER_LOC_MAP_OCCLUSION`
---| `SHADER_LOC_MAP_EMISSION`
---| `SHADER_LOC_MAP_HEIGHT`
---| `SHADER_LOC_MAP_CUBEMAP`
---| `SHADER_LOC_MAP_IRRADIANCE`
---| `SHADER_LOC_MAP_PREFILTER`
---| `SHADER_LOC_MAP_BRDF`
---| `SHADER_LOC_MAP_DIFFUSE`
---| `SHADER_LOC_MAP_SPECULAR`
---@alias ShaderUniformDataType
---| `SHADER_UNIFORM_FLOAT`
---| `SHADER_UNIFORM_VEC2`
---| `SHADER_UNIFORM_VEC3`
---| `SHADER_UNIFORM_VEC4`
---| `SHADER_UNIFORM_INT`
---| `SHADER_UNIFORM_IVEC2`
---| `SHADER_UNIFORM_IVEC3`
---| `SHADER_UNIFORM_IVEC4`
---| `SHADER_UNIFORM_SAMPLER2D`
---@alias ShaderAttributeDataType
---| `SHADER_ATTRIB_FLOAT`
---| `SHADER_ATTRIB_VEC2`
---| `SHADER_ATTRIB_VEC3`
---| `SHADER_ATTRIB_VEC4`
---@alias PixelFormat
---| `PIXELFORMAT_UNCOMPRESSED_GRAYSCALE`
---| `PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA`
---| `PIXELFORMAT_UNCOMPRESSED_R5G6B5`
---| `PIXELFORMAT_UNCOMPRESSED_R8G8B8`
---| `PIXELFORMAT_UNCOMPRESSED_R5G5B5A1`
---| `PIXELFORMAT_UNCOMPRESSED_R4G4B4A4`
---| `PIXELFORMAT_UNCOMPRESSED_R8G8B8A8`
---| `PIXELFORMAT_UNCOMPRESSED_R32`
---| `PIXELFORMAT_UNCOMPRESSED_R32G32B32`
---| `PIXELFORMAT_UNCOMPRESSED_R32G32B32A32`
---| `PIXELFORMAT_UNCOMPRESSED_R16`
---| `PIXELFORMAT_UNCOMPRESSED_R16G16B16`
---| `PIXELFORMAT_UNCOMPRESSED_R16G16B16A16`
---| `PIXELFORMAT_COMPRESSED_DXT1_RGB`
---| `PIXELFORMAT_COMPRESSED_DXT1_RGBA`
---| `PIXELFORMAT_COMPRESSED_DXT3_RGBA`
---| `PIXELFORMAT_COMPRESSED_DXT5_RGBA`
---| `PIXELFORMAT_COMPRESSED_ETC1_RGB`
---| `PIXELFORMAT_COMPRESSED_ETC2_RGB`
---| `PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA`
---| `PIXELFORMAT_COMPRESSED_PVRT_RGB`
---| `PIXELFORMAT_COMPRESSED_PVRT_RGBA`
---| `PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA`
---| `PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA`
---@alias TextureFilter
---| `TEXTURE_FILTER_POINT`
---| `TEXTURE_FILTER_BILINEAR`
---| `TEXTURE_FILTER_TRILINEAR`
---| `TEXTURE_FILTER_ANISOTROPIC_4X`
---| `TEXTURE_FILTER_ANISOTROPIC_8X`
---| `TEXTURE_FILTER_ANISOTROPIC_16X`
---@alias TextureWrap
---| `TEXTURE_WRAP_REPEAT`
---| `TEXTURE_WRAP_CLAMP`
---| `TEXTURE_WRAP_MIRROR_REPEAT`
---| `TEXTURE_WRAP_MIRROR_CLAMP`
---@alias CubemapLayout
---| `CUBEMAP_LAYOUT_AUTO_DETECT`
---| `CUBEMAP_LAYOUT_LINE_VERTICAL`
---| `CUBEMAP_LAYOUT_LINE_HORIZONTAL`
---| `CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR`
---| `CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE`
---| `CUBEMAP_LAYOUT_PANORAMA`
---@alias FontType
---| `FONT_DEFAULT`
---| `FONT_BITMAP`
---| `FONT_SDF`
---@alias BlendMode
---| `BLEND_ALPHA`
---| `BLEND_ADDITIVE`
---| `BLEND_MULTIPLIED`
---| `BLEND_ADD_COLORS`
---| `BLEND_SUBTRACT_COLORS`
---| `BLEND_ALPHA_PREMULTIPLY`
---| `BLEND_CUSTOM`
---| `BLEND_CUSTOM_SEPARATE`
---@alias Gesture
---| `GESTURE_NONE`
---| `GESTURE_TAP`
---| `GESTURE_DOUBLETAP`
---| `GESTURE_HOLD`
---| `GESTURE_DRAG`
---| `GESTURE_SWIPE_RIGHT`
---| `GESTURE_SWIPE_LEFT`
---| `GESTURE_SWIPE_UP`
---| `GESTURE_SWIPE_DOWN`
---| `GESTURE_PINCH_IN`
---| `GESTURE_PINCH_OUT`
---@alias CameraMode
---| `CAMERA_CUSTOM`
---| `CAMERA_FREE`
---| `CAMERA_ORBITAL`
---| `CAMERA_FIRST_PERSON`
---| `CAMERA_THIRD_PERSON`
---@alias CameraProjection
---| `CAMERA_PERSPECTIVE`
---| `CAMERA_ORTHOGRAPHIC`
---@alias NPatchLayout
---| `NPATCH_NINE_PATCH`
---| `NPATCH_THREE_PATCH_VERTICAL`
---| `NPATCH_THREE_PATCH_HORIZONTAL`
---@alias GuiState
---| `STATE_NORMAL`
---| `STATE_FOCUSED`
---| `STATE_PRESSED`
---| `STATE_DISABLED`
---@alias GuiTextAlignment
---| `TEXT_ALIGN_LEFT`
---| `TEXT_ALIGN_CENTER`
---| `TEXT_ALIGN_RIGHT`
---@alias GuiTextAlignmentVertical
---| `TEXT_ALIGN_TOP`
---| `TEXT_ALIGN_MIDDLE`
---| `TEXT_ALIGN_BOTTOM`
---@alias GuiTextWrapMode
---| `TEXT_WRAP_NONE`
---| `TEXT_WRAP_CHAR`
---| `TEXT_WRAP_WORD`
---@alias GuiControl
---| `DEFAULT`
---| `LABEL`
---| `BUTTON`
---| `TOGGLE`
---| `SLIDER`
---| `PROGRESSBAR`
---| `CHECKBOX`
---| `COMBOBOX`
---| `DROPDOWNBOX`
---| `TEXTBOX`
---| `VALUEBOX`
---| `SPINNER`
---| `LISTVIEW`
---| `COLORPICKER`
---| `SCROLLBAR`
---| `STATUSBAR`
---@alias GuiControlProperty
---| `BORDER_COLOR_NORMAL`
---| `BASE_COLOR_NORMAL`
---| `TEXT_COLOR_NORMAL`
---| `BORDER_COLOR_FOCUSED`
---| `BASE_COLOR_FOCUSED`
---| `TEXT_COLOR_FOCUSED`
---| `BORDER_COLOR_PRESSED`
---| `BASE_COLOR_PRESSED`
---| `TEXT_COLOR_PRESSED`
---| `BORDER_COLOR_DISABLED`
---| `BASE_COLOR_DISABLED`
---| `TEXT_COLOR_DISABLED`
---| `BORDER_WIDTH`
---| `TEXT_PADDING`
---| `TEXT_ALIGNMENT`
---@alias GuiDefaultProperty
---| `TEXT_SIZE`
---| `TEXT_SPACING`
---| `LINE_COLOR`
---| `BACKGROUND_COLOR`
---| `TEXT_LINE_SPACING`
---| `TEXT_ALIGNMENT_VERTICAL`
---| `TEXT_WRAP_MODE`
---@alias GuiToggleProperty
---| `GROUP_PADDING`
---@alias GuiSliderProperty
---| `SLIDER_WIDTH`
---| `SLIDER_PADDING`
---@alias GuiProgressBarProperty
---| `PROGRESS_PADDING`
---@alias GuiScrollBarProperty
---| `ARROWS_SIZE`
---| `ARROWS_VISIBLE`
---| `SCROLL_SLIDER_PADDING`
---| `SCROLL_SLIDER_SIZE`
---| `SCROLL_PADDING`
---| `SCROLL_SPEED`
---@alias GuiCheckBoxProperty
---| `CHECK_PADDING`
---@alias GuiComboBoxProperty
---| `COMBO_BUTTON_WIDTH`
---| `COMBO_BUTTON_SPACING`
---@alias GuiDropdownBoxProperty
---| `ARROW_PADDING`
---| `DROPDOWN_ITEMS_SPACING`
---| `DROPDOWN_ARROW_HIDDEN`
---@alias GuiTextBoxProperty
---| `TEXT_READONLY`
---@alias GuiSpinnerProperty
---| `SPIN_BUTTON_WIDTH`
---| `SPIN_BUTTON_SPACING`
---@alias GuiListViewProperty
---| `LIST_ITEMS_HEIGHT`
---| `LIST_ITEMS_SPACING`
---| `SCROLLBAR_WIDTH`
---| `SCROLLBAR_SIDE`
---| `LIST_ITEMS_BORDER_WIDTH`
---@alias GuiColorPickerProperty
---| `COLOR_SELECTOR_SIZE`
---| `HUEBAR_WIDTH`
---| `HUEBAR_PADDING`
---| `HUEBAR_SELECTOR_HEIGHT`
---| `HUEBAR_SELECTOR_OVERFLOW`
---@alias GuiScrollBarSide
---| `SCROLLBAR_LEFT_SIDE`
---| `SCROLLBAR_RIGHT_SIDE`
---@alias GuiIconName
---| `ICON_NONE`
---| `ICON_FOLDER_FILE_OPEN`
---| `ICON_FILE_SAVE_CLASSIC`
---| `ICON_FOLDER_OPEN`
---| `ICON_FOLDER_SAVE`
---| `ICON_FILE_OPEN`
---| `ICON_FILE_SAVE`
---| `ICON_FILE_EXPORT`
---| `ICON_FILE_ADD`
---| `ICON_FILE_DELETE`
---| `ICON_FILETYPE_TEXT`
---| `ICON_FILETYPE_AUDIO`
---| `ICON_FILETYPE_IMAGE`
---| `ICON_FILETYPE_PLAY`
---| `ICON_FILETYPE_VIDEO`
---| `ICON_FILETYPE_INFO`
---| `ICON_FILE_COPY`
---| `ICON_FILE_CUT`
---| `ICON_FILE_PASTE`
---| `ICON_CURSOR_HAND`
---| `ICON_CURSOR_POINTER`
---| `ICON_CURSOR_CLASSIC`
---| `ICON_PENCIL`
---| `ICON_PENCIL_BIG`
---| `ICON_BRUSH_CLASSIC`
---| `ICON_BRUSH_PAINTER`
---| `ICON_WATER_DROP`
---| `ICON_COLOR_PICKER`
---| `ICON_RUBBER`
---| `ICON_COLOR_BUCKET`
---| `ICON_TEXT_T`
---| `ICON_TEXT_A`
---| `ICON_SCALE`
---| `ICON_RESIZE`
---| `ICON_FILTER_POINT`
---| `ICON_FILTER_BILINEAR`
---| `ICON_CROP`
---| `ICON_CROP_ALPHA`
---| `ICON_SQUARE_TOGGLE`
---| `ICON_SYMMETRY`
---| `ICON_SYMMETRY_HORIZONTAL`
---| `ICON_SYMMETRY_VERTICAL`
---| `ICON_LENS`
---| `ICON_LENS_BIG`
---| `ICON_EYE_ON`
---| `ICON_EYE_OFF`
---| `ICON_FILTER_TOP`
---| `ICON_FILTER`
---| `ICON_TARGET_POINT`
---| `ICON_TARGET_SMALL`
---| `ICON_TARGET_BIG`
---| `ICON_TARGET_MOVE`
---| `ICON_CURSOR_MOVE`
---| `ICON_CURSOR_SCALE`
---| `ICON_CURSOR_SCALE_RIGHT`
---| `ICON_CURSOR_SCALE_LEFT`
---| `ICON_UNDO`
---| `ICON_REDO`
---| `ICON_REREDO`
---| `ICON_MUTATE`
---| `ICON_ROTATE`
---| `ICON_REPEAT`
---| `ICON_SHUFFLE`
---| `ICON_EMPTYBOX`
---| `ICON_TARGET`
---| `ICON_TARGET_SMALL_FILL`
---| `ICON_TARGET_BIG_FILL`
---| `ICON_TARGET_MOVE_FILL`
---| `ICON_CURSOR_MOVE_FILL`
---| `ICON_CURSOR_SCALE_FILL`
---| `ICON_CURSOR_SCALE_RIGHT_FILL`
---| `ICON_CURSOR_SCALE_LEFT_FILL`
---| `ICON_UNDO_FILL`
---| `ICON_REDO_FILL`
---| `ICON_REREDO_FILL`
---| `ICON_MUTATE_FILL`
---| `ICON_ROTATE_FILL`
---| `ICON_REPEAT_FILL`
---| `ICON_SHUFFLE_FILL`
---| `ICON_EMPTYBOX_SMALL`
---| `ICON_BOX`
---| `ICON_BOX_TOP`
---| `ICON_BOX_TOP_RIGHT`
---| `ICON_BOX_RIGHT`
---| `ICON_BOX_BOTTOM_RIGHT`
---| `ICON_BOX_BOTTOM`
---| `ICON_BOX_BOTTOM_LEFT`
---| `ICON_BOX_LEFT`
---| `ICON_BOX_TOP_LEFT`
---| `ICON_BOX_CENTER`
---| `ICON_BOX_CIRCLE_MASK`
---| `ICON_POT`
---| `ICON_ALPHA_MULTIPLY`
---| `ICON_ALPHA_CLEAR`
---| `ICON_DITHERING`
---| `ICON_MIPMAPS`
---| `ICON_BOX_GRID`
---| `ICON_GRID`
---| `ICON_BOX_CORNERS_SMALL`
---| `ICON_BOX_CORNERS_BIG`
---| `ICON_FOUR_BOXES`
---| `ICON_GRID_FILL`
---| `ICON_BOX_MULTISIZE`
---| `ICON_ZOOM_SMALL`
---| `ICON_ZOOM_MEDIUM`
---| `ICON_ZOOM_BIG`
---| `ICON_ZOOM_ALL`
---| `ICON_ZOOM_CENTER`
---| `ICON_BOX_DOTS_SMALL`
---| `ICON_BOX_DOTS_BIG`
---| `ICON_BOX_CONCENTRIC`
---| `ICON_BOX_GRID_BIG`
---| `ICON_OK_TICK`
---| `ICON_CROSS`
---| `ICON_ARROW_LEFT`
---| `ICON_ARROW_RIGHT`
---| `ICON_ARROW_DOWN`
---| `ICON_ARROW_UP`
---| `ICON_ARROW_LEFT_FILL`
---| `ICON_ARROW_RIGHT_FILL`
---| `ICON_ARROW_DOWN_FILL`
---| `ICON_ARROW_UP_FILL`
---| `ICON_AUDIO`
---| `ICON_FX`
---| `ICON_WAVE`
---| `ICON_WAVE_SINUS`
---| `ICON_WAVE_SQUARE`
---| `ICON_WAVE_TRIANGULAR`
---| `ICON_CROSS_SMALL`
---| `ICON_PLAYER_PREVIOUS`
---| `ICON_PLAYER_PLAY_BACK`
---| `ICON_PLAYER_PLAY`
---| `ICON_PLAYER_PAUSE`
---| `ICON_PLAYER_STOP`
---| `ICON_PLAYER_NEXT`
---| `ICON_PLAYER_RECORD`
---| `ICON_MAGNET`
---| `ICON_LOCK_CLOSE`
---| `ICON_LOCK_OPEN`
---| `ICON_CLOCK`
---| `ICON_TOOLS`
---| `ICON_GEAR`
---| `ICON_GEAR_BIG`
---| `ICON_BIN`
---| `ICON_HAND_POINTER`
---| `ICON_LASER`
---| `ICON_COIN`
---| `ICON_EXPLOSION`
---| `ICON_1UP`
---| `ICON_PLAYER`
---| `ICON_PLAYER_JUMP`
---| `ICON_KEY`
---| `ICON_DEMON`
---| `ICON_TEXT_POPUP`
---| `ICON_GEAR_EX`
---| `ICON_CRACK`
---| `ICON_CRACK_POINTS`
---| `ICON_STAR`
---| `ICON_DOOR`
---| `ICON_EXIT`
---| `ICON_MODE_2D`
---| `ICON_MODE_3D`
---| `ICON_CUBE`
---| `ICON_CUBE_FACE_TOP`
---| `ICON_CUBE_FACE_LEFT`
---| `ICON_CUBE_FACE_FRONT`
---| `ICON_CUBE_FACE_BOTTOM`
---| `ICON_CUBE_FACE_RIGHT`
---| `ICON_CUBE_FACE_BACK`
---| `ICON_CAMERA`
---| `ICON_SPECIAL`
---| `ICON_LINK_NET`
---| `ICON_LINK_BOXES`
---| `ICON_LINK_MULTI`
---| `ICON_LINK`
---| `ICON_LINK_BROKE`
---| `ICON_TEXT_NOTES`
---| `ICON_NOTEBOOK`
---| `ICON_SUITCASE`
---| `ICON_SUITCASE_ZIP`
---| `ICON_MAILBOX`
---| `ICON_MONITOR`
---| `ICON_PRINTER`
---| `ICON_PHOTO_CAMERA`
---| `ICON_PHOTO_CAMERA_FLASH`
---| `ICON_HOUSE`
---| `ICON_HEART`
---| `ICON_CORNER`
---| `ICON_VERTICAL_BARS`
---| `ICON_VERTICAL_BARS_FILL`
---| `ICON_LIFE_BARS`
---| `ICON_INFO`
---| `ICON_CROSSLINE`
---| `ICON_HELP`
---| `ICON_FILETYPE_ALPHA`
---| `ICON_FILETYPE_HOME`
---| `ICON_LAYERS_VISIBLE`
---| `ICON_LAYERS`
---| `ICON_WINDOW`
---| `ICON_HIDPI`
---| `ICON_FILETYPE_BINARY`
---| `ICON_HEX`
---| `ICON_SHIELD`
---| `ICON_FILE_NEW`
---| `ICON_FOLDER_ADD`
---| `ICON_ALARM`
---| `ICON_CPU`
---| `ICON_ROM`
---| `ICON_STEP_OVER`
---| `ICON_STEP_INTO`
---| `ICON_STEP_OUT`
---| `ICON_RESTART`
---| `ICON_BREAKPOINT_ON`
---| `ICON_BREAKPOINT_OFF`
---| `ICON_BURGER_MENU`
---| `ICON_CASE_SENSITIVE`
---| `ICON_REG_EXP`
---| `ICON_FOLDER`
---| `ICON_FILE`
---| `ICON_SAND_TIMER`
---| `ICON_WARNING`
---| `ICON_HELP_BOX`
---| `ICON_INFO_BOX`
---| `ICON_223`
---| `ICON_224`
---| `ICON_225`
---| `ICON_226`
---| `ICON_227`
---| `ICON_228`
---| `ICON_229`
---| `ICON_230`
---| `ICON_231`
---| `ICON_232`
---| `ICON_233`
---| `ICON_234`
---| `ICON_235`
---| `ICON_236`
---| `ICON_237`
---| `ICON_238`
---| `ICON_239`
---| `ICON_240`
---| `ICON_241`
---| `ICON_242`
---| `ICON_243`
---| `ICON_244`
---| `ICON_245`
---| `ICON_246`
---| `ICON_247`
---| `ICON_248`
---| `ICON_249`
---| `ICON_250`
---| `ICON_251`
---| `ICON_252`
---| `ICON_253`
---| `ICON_254`
---| `ICON_255`
---@alias GuiProperty GuiControlProperty | GuiDefaultProperty | GuiToggleProperty | GuiSliderProperty | GuiProgressBarProperty | GuiScrollBarProperty | GuiCheckBoxProperty | GuiComboBoxProperty | GuiDropdownBoxProperty | GuiTextBoxProperty | GuiSpinnerProperty | GuiListViewProperty | GuiColorPickerProperty
---@alias TraceLogCallback fun(logLevel: TraceLogLevel, text: string, args: userdata)
---@alias LoadFileDataCallback fun(fileName: string, dataSize: integer): userdata
---@alias SaveFileDataCallback fun(fileName: string, data: userdata, dataSize: integer): boolean
---@alias LoadFileTextCallback fun(fileName: string): string
---@alias SaveFileTextCallback fun(fileName: string, text: string): boolean
---Initialize window and OpenGL context
---@type fun(width:number, height:number, title:string)
function InitWindow(width, height, title)
end
---Close window and unload OpenGL context
---@type fun()
function CloseWindow()
end
---Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)
---@type fun():boolean
function WindowShouldClose()
end
---Check if window has been initialized successfully
---@type fun():boolean
function IsWindowReady()
end
---Check if window is currently fullscreen
---@type fun():boolean
function IsWindowFullscreen()
end
---Check if window is currently hidden (only PLATFORM_DESKTOP)
---@type fun():boolean
function IsWindowHidden()
end
---Check if window is currently minimized (only PLATFORM_DESKTOP)
---@type fun():boolean
function IsWindowMinimized()
end
---Check if window is currently maximized (only PLATFORM_DESKTOP)
---@type fun():boolean
function IsWindowMaximized()
end
---Check if window is currently focused (only PLATFORM_DESKTOP)
---@type fun():boolean
function IsWindowFocused()
end
---Check if window has been resized last frame
---@type fun():boolean
function IsWindowResized()
end
---Check if one specific window flag is enabled
---@type fun(flag:number):boolean
function IsWindowState(flag)
end
---Set window configuration state using flags (only PLATFORM_DESKTOP)
---@type fun(flags:number)
function SetWindowState(flags)
end
---Clear window configuration state flags
---@type fun(flags:number)
function ClearWindowState(flags)
end
---Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)
---@type fun()
function ToggleFullscreen()
end
---Toggle window state: borderless windowed (only PLATFORM_DESKTOP)
---@type fun()
function ToggleBorderlessWindowed()
end
---Set window state: maximized, if resizable (only PLATFORM_DESKTOP)
---@type fun()
function MaximizeWindow()
end
---Set window state: minimized, if resizable (only PLATFORM_DESKTOP)
---@type fun()
function MinimizeWindow()
end
---Set window state: not minimized/maximized (only PLATFORM_DESKTOP)
---@type fun()
function RestoreWindow()
end
---Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP)
---@type fun(image:Image)
function SetWindowIcon(image)
end
---Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)
---@type fun(images:Image, count:number)
function SetWindowIcons(images, count)
end
---Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB)
---@type fun(title:string)
function SetWindowTitle(title)
end
---Set window position on screen (only PLATFORM_DESKTOP)
---@type fun(x:number, y:number)
function SetWindowPosition(x, y)
end
---Set monitor for the current window
---@type fun(monitor:number)
function SetWindowMonitor(monitor)
end
---Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
---@type fun(width:number, height:number)
function SetWindowMinSize(width, height)
end
---Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE)
---@type fun(width:number, height:number)
function SetWindowMaxSize(width, height)
end
---Set window dimensions
---@type fun(width:number, height:number)
function SetWindowSize(width, height)
end
---Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)
---@type fun(opacity:number)
function SetWindowOpacity(opacity)
end
---Set window focused (only PLATFORM_DESKTOP)
---@type fun()
function SetWindowFocused()
end
---Get native window handle
---@type fun()
function GetWindowHandle()
end
---Get current screen width
---@type fun():number
function GetScreenWidth()
end
---Get current screen height
---@type fun():number
function GetScreenHeight()
end
---Get current render width (it considers HiDPI)
---@type fun():number
function GetRenderWidth()
end
---Get current render height (it considers HiDPI)
---@type fun():number
function GetRenderHeight()
end
---Get number of connected monitors
---@type fun():number
function GetMonitorCount()
end
---Get current connected monitor
---@type fun():number
function GetCurrentMonitor()
end
---Get specified monitor position
---@type fun(monitor:number):Vector2
function GetMonitorPosition(monitor)
end
---Get specified monitor width (current video mode used by monitor)
---@type fun(monitor:number):number
function GetMonitorWidth(monitor)
end
---Get specified monitor height (current video mode used by monitor)
---@type fun(monitor:number):number
function GetMonitorHeight(monitor)
end
---Get specified monitor physical width in millimetres
---@type fun(monitor:number):number
function GetMonitorPhysicalWidth(monitor)
end
---Get specified monitor physical height in millimetres
---@type fun(monitor:number):number
function GetMonitorPhysicalHeight(monitor)
end
---Get specified monitor refresh rate
---@type fun(monitor:number):number
function GetMonitorRefreshRate(monitor)
end
---Get window position XY on monitor
---@type fun():Vector2
function GetWindowPosition()
end
---Get window scale DPI factor
---@type fun():Vector2
function GetWindowScaleDPI()
end
---Get the human-readable, UTF-8 encoded name of the specified monitor
---@type fun(monitor:number):string
function GetMonitorName(monitor)
end
---Set clipboard text content
---@type fun(text:string)
function SetClipboardText(text)
end
---Get clipboard text content
---@type fun():string
function GetClipboardText()
end
---Enable waiting for events on EndDrawing(), no automatic event polling
---@type fun()
function EnableEventWaiting()
end
---Disable waiting for events on EndDrawing(), automatic events polling
---@type fun()
function DisableEventWaiting()
end
---Shows cursor
---@type fun()
function ShowCursor()
end
---Hides cursor
---@type fun()
function HideCursor()
end
---Check if cursor is not visible
---@type fun():boolean
function IsCursorHidden()
end
---Enables cursor (unlock cursor)
---@type fun()
function EnableCursor()
end
---Disables cursor (lock cursor)
---@type fun()
function DisableCursor()
end
---Check if cursor is on the screen
---@type fun():boolean
function IsCursorOnScreen()
end
---Set background color (framebuffer clear color)
---@type fun(color:Color)
function ClearBackground(color)
end
---Setup canvas (framebuffer) to start drawing
---@type fun()
function BeginDrawing()
end
---End canvas drawing and swap buffers (number buffering)
---@type fun()
function EndDrawing()
end
---Begin 2D mode with custom camera (2D)
---@type fun(camera:Camera2D)
function BeginMode2D(camera)
end
---Ends 2D mode with custom camera
---@type fun()
function EndMode2D()
end
---Begin 3D mode with custom camera (3D)
---@type fun(camera:Camera3D)
function BeginMode3D(camera)
end
---Ends 3D mode and returns to default 2D orthographic mode
---@type fun()
function EndMode3D()
end
---Begin drawing to render texture
---@type fun(target:RenderTexture2D)
function BeginTextureMode(target)
end
---Ends drawing to render texture
---@type fun()
function EndTextureMode()
end
---Begin custom shader drawing
---@type fun(shader:Shader)
function BeginShaderMode(shader)
end
---End custom shader drawing (use default shader)
---@type fun()
function EndShaderMode()
end
---Begin blending mode (alpha, additive, multiplied, subtract, custom)
---@type fun(mode:BlendMode)
function BeginBlendMode(mode)
end
---End blending mode (reset to default: alpha blending)
---@type fun()
function EndBlendMode()
end
---Begin scissor mode (define screen area for following drawing)
---@type fun(x:number, y:number, width:number, height:number)
function BeginScissorMode(x, y, width, height)
end
---End scissor mode
---@type fun()
function EndScissorMode()
end
---Begin stereo rendering (requires VR simulator)
---@type fun(config:VrStereoConfig)
function BeginVrStereoMode(config)
end
---End stereo rendering (requires VR simulator)
---@type fun()
function EndVrStereoMode()
end
---Load VR stereo config for VR simulator device parameters
---@type fun(device:VrDeviceInfo):VrStereoConfig
function LoadVrStereoConfig(device)
end
---Unload VR stereo config
---@type fun(config:VrStereoConfig)
function UnloadVrStereoConfig(config)
end
---Load shader from files and bind default locations
---@type fun(vsFileName:string, fsFileName:string):Shader
function LoadShader(vsFileName, fsFileName)
end
---Load shader from code strings and bind default locations
---@type fun(vsCode:string, fsCode:string):Shader
function LoadShaderFromMemory(vsCode, fsCode)
end
---Check if a shader is ready
---@type fun(shader:Shader):boolean
function IsShaderReady(shader)
end
---Get shader uniform location
---@type fun(shader:Shader, uniformName:string):number
function GetShaderLocation(shader, uniformName)
end
---Get shader attribute location
---@type fun(shader:Shader, attribName:string):number
function GetShaderLocationAttrib(shader, attribName)
end
---Set shader uniform value
---@type fun(shader:Shader, locIndex:ShaderLocationIndex, value:userdata, uniformType:ShaderUniformDataType)
function SetShaderValue(shader, locIndex, value, uniformType)
end
---Set shader uniform value vector
---@type fun(shader:Shader, locIndex:ShaderLocationIndex, value:userdata, uniformType:ShaderUniformDataType, count:number)
function SetShaderValueV(shader, locIndex, value, uniformType, count)
end
---Set shader uniform value (matrix 4x4)
---@type fun(shader:Shader, locIndex:ShaderLocationIndex, mat:Matrix)
function SetShaderValueMatrix(shader, locIndex, mat)
end
---Set shader uniform value for texture (sampler2d)
---@type fun(shader:Shader, locIndex:ShaderLocationIndex, texture:Texture2D)
function SetShaderValueTexture(shader, locIndex, texture)
end
---Unload shader from GPU memory (VRAM)
---@type fun(shader:Shader)
function UnloadShader(shader)
end
---Get a ray trace from mouse position
---@type fun(mousePosition:Vector2, camera:Camera):Ray
function GetMouseRay(mousePosition, camera)
end
---Get camera transform matrix (view matrix)
---@type fun(camera:Camera):Matrix
function GetCameraMatrix(camera)
end
---Get camera 2d transform matrix
---@type fun(camera:Camera2D):Matrix
function GetCameraMatrix2D(camera)
end
---Get the screen space position for a 3d world space position
---@type fun(position:Vector3, camera:Camera):Vector2
function GetWorldToScreen(position, camera)
end
---Get the world space position for a 2d camera screen space position
---@type fun(position:Vector2, camera:Camera2D):Vector2
function GetScreenToWorld2D(position, camera)
end
---Get size position for a 3d world space position
---@type fun(position:Vector3, camera:Camera, width:number, height:number):Vector2
function GetWorldToScreenEx(position, camera, width, height)
end
---Get the screen space position for a 2d camera world space position
---@type fun(position:Vector2, camera:Camera2D):Vector2
function GetWorldToScreen2D(position, camera)
end
---Set target FPS (maximum)
---@type fun(fps:number)
function SetTargetFPS(fps)
end
---Get time in seconds for last frame drawn (delta time)
---@type fun():number
function GetFrameTime()
end
---Get elapsed time in seconds since InitWindow()
---@type fun():number
function GetTime()
end
---Get current FPS
---@type fun():number
function GetFPS()
end
---Swap back buffer with front buffer (screen drawing)
---@type fun()
function SwapScreenBuffer()
end
---Register all input events
---@type fun()
function PollInputEvents()
end
---Wait for some time (halt program execution)
---@type fun(seconds:number)
function WaitTime(seconds)
end
---Set the seed for the random number generator
---@type fun(seed:number)
function SetRandomSeed(seed)
end
---Get a random value between min and max (both included)
---@type fun(min:number, max:number):number
function GetRandomValue(min, max)
end
---Load random values sequence, no values repeated
---@type fun(count:number, min:number, max:number):number
function LoadRandomSequence(count, min, max)
end
---Unload random values sequence
---@type fun(sequence:number)
function UnloadRandomSequence(sequence)
end
---Takes a screenshot of current screen (filename extension defines format)
---@type fun(fileName:string)
function TakeScreenshot(fileName)
end
---Setup init configuration flags (view FLAGS)
---@type fun(flags:ConfigFlags)
function SetConfigFlags(flags)
end
---Open URL with default system browser (if available)
---@type fun(url:string)
function OpenURL(url)
end
---Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)
---@type fun(logLevel:TraceLogLevel, text:string, ...)
---@vararg string
function TraceLog(logLevel, text)
end
---Set the current threshold (minimum) log level
---@type fun(logLevel:TraceLogLevel)
function SetTraceLogLevel(logLevel)
end
---Internal memory allocator
---@type fun(size:number)
function MemAlloc(size)
end
---Internal memory reallocator
---@type fun(ptr:userdata, size:number)
function MemRealloc(ptr, size)
end
---Internal memory free
---@type fun(ptr:userdata)
function MemFree(ptr)
end
---Set custom trace log
---@type fun(callback:TraceLogCallback)
function SetTraceLogCallback(callback)
end
---Set custom file binary data loader
---@type fun(callback:LoadFileDataCallback)
function SetLoadFileDataCallback(callback)
end
---Set custom file binary data saver
---@type fun(callback:SaveFileDataCallback)
function SetSaveFileDataCallback(callback)
end
---Set custom file text data loader
---@type fun(callback:LoadFileTextCallback)
function SetLoadFileTextCallback(callback)
end
---Set custom file text data saver
---@type fun(callback:SaveFileTextCallback)
function SetSaveFileTextCallback(callback)
end
---Load file data as byte array (read)
---@type fun(fileName:string, dataSize:number):string
function LoadFileData(fileName, dataSize)
end
---Unload file data allocated by LoadFileData()
---@type fun(data:string)
function UnloadFileData(data)
end
---Save data to file from byte array (write), returns true on success
---@type fun(fileName:string, data:userdata, dataSize:number):boolean
function SaveFileData(fileName, data, dataSize)
end
---Export data to code (.h), returns true on success
---@type fun(data:string, dataSize:number, fileName:string):boolean
function ExportDataAsCode(data, dataSize, fileName)
end
---Load text data from file (read), returns a '\0' terminated string
---@type fun(fileName:string):string
function LoadFileText(fileName)
end
---Unload file text data allocated by LoadFileText()
---@type fun(text:string)
function UnloadFileText(text)
end
---Save text data to file (write), string must be '\0' terminated, returns true on success
---@type fun(fileName:string, text:string):boolean
function SaveFileText(fileName, text)
end
---Check if file exists
---@type fun(fileName:string):boolean
function FileExists(fileName)
end
---Check if a directory path exists
---@type fun(dirPath:string):boolean
function DirectoryExists(dirPath)
end
---Check file extension (including point: .png, .wav)
---@type fun(fileName:string, ext:string):boolean
function IsFileExtension(fileName, ext)
end
---Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h)
---@type fun(fileName:string):number
function GetFileLength(fileName)
end
---Get pointer to extension for a filename string (includes dot: '.png')
---@type fun(fileName:string):string
function GetFileExtension(fileName)
end
---Get pointer to filename for a path string
---@type fun(filePath:string):string
function GetFileName(filePath)
end
---Get filename string without extension (uses static string)
---@type fun(filePath:string):string
function GetFileNameWithoutExt(filePath)
end
---Get full path for a given fileName with path (uses static string)
---@type fun(filePath:string):string
function GetDirectoryPath(filePath)
end
---Get previous directory path for a given path (uses static string)
---@type fun(dirPath:string):string
function GetPrevDirectoryPath(dirPath)
end
---Get current working directory (uses static string)
---@type fun():string
function GetWorkingDirectory()
end
---Get the directory of the running application (uses static string)
---@type fun():string
function GetApplicationDirectory()
end
---Change working directory, return true on success
---@type fun(dir:string):boolean
function ChangeDirectory(dir)
end
---Check if a given path is a file or a directory
---@type fun(path:string):boolean
function IsPathFile(path)
end
---Load directory filepaths
---@type fun(dirPath:string):FilePathList
function LoadDirectoryFiles(dirPath)
end
---Load directory filepaths with extension filtering and recursive directory scan
---@type fun(basePath:string, filter:string, scanSubdirs:boolean):FilePathList
function LoadDirectoryFilesEx(basePath, filter, scanSubdirs)
end
---Unload filepaths
---@type fun(files:FilePathList)
function UnloadDirectoryFiles(files)
end
---Check if a file has been dropped into window
---@type fun():boolean
function IsFileDropped()
end
---Load dropped filepaths
---@type fun():FilePathList
function LoadDroppedFiles()
end
---Unload dropped filepaths
---@type fun(files:FilePathList)
function UnloadDroppedFiles(files)
end
---Get file modification time (last write time)
---@type fun(fileName:string):number
function GetFileModTime(fileName)
end
---Compress data (DEFLATE algorithm), memory must be MemFree()
---@type fun(data:string, dataSize:number, compDataSize:number):string
function CompressData(data, dataSize, compDataSize)
end
---Decompress data (DEFLATE algorithm), memory must be MemFree()
---@type fun(compData:string, compDataSize:number, dataSize:number):string
function DecompressData(compData, compDataSize, dataSize)
end
---Encode data to Base64 string, memory must be MemFree()
---@type fun(data:string, dataSize:number, outputSize:number):string
function EncodeDataBase64(data, dataSize, outputSize)
end
---Decode Base64 string data, memory must be MemFree()
---@type fun(data:string, outputSize:number):string
function DecodeDataBase64(data, outputSize)
end
---Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS
---@type fun(fileName:string):AutomationEventList
function LoadAutomationEventList(fileName)
end
---Unload automation events list from file
---@type fun(list:AutomationEventList)
function UnloadAutomationEventList(list)
end
---Export automation events list as text file
---@type fun(list:AutomationEventList, fileName:string):boolean
function ExportAutomationEventList(list, fileName)
end
---Set automation event list to record to
---@type fun(list:AutomationEventList)
function SetAutomationEventList(list)
end
---Set automation event internal base frame to start recording
---@type fun(frame:number)
function SetAutomationEventBaseFrame(frame)
end
---Start recording automation events (AutomationEventList must be set)
---@type fun()
function StartAutomationEventRecording()
end
---Stop recording automation events
---@type fun()
function StopAutomationEventRecording()
end
---Play a recorded automation event
---@type fun(event:AutomationEvent)
function PlayAutomationEvent(event)
end
---Check if a key has been pressed once
---@type fun(key:KeyboardKey):boolean
function IsKeyPressed(key)
end
---Check if a key has been pressed again (Only PLATFORM_DESKTOP)
---@type fun(key:KeyboardKey):boolean
function IsKeyPressedRepeat(key)
end
---Check if a key is being pressed
---@type fun(key:KeyboardKey):boolean
function IsKeyDown(key)
end
---Check if a key has been released once
---@type fun(key:KeyboardKey):boolean
function IsKeyReleased(key)
end
---Check if a key is NOT being pressed
---@type fun(key:KeyboardKey):boolean
function IsKeyUp(key)
end
---Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty
---@type fun():number
function GetKeyPressed()
end
---Get string pressed (unicode), call it multiple times for strings queued, returns 0 when the queue is empty
---@type fun():number
function GetCharPressed()
end
---Set a custom key to exit program (default is ESC)
---@type fun(key:KeyboardKey)
function SetExitKey(key)
end
---Check if a gamepad is available
---@type fun(gamepad:number):boolean
function IsGamepadAvailable(gamepad)
end
---Get gamepad internal name id
---@type fun(gamepad:number):string
function GetGamepadName(gamepad)
end
---Check if a gamepad button has been pressed once
---@type fun(gamepad:number, button:GamepadButton):boolean
function IsGamepadButtonPressed(gamepad, button)
end
---Check if a gamepad button is being pressed
---@type fun(gamepad:number, button:GamepadButton):boolean
function IsGamepadButtonDown(gamepad, button)
end
---Check if a gamepad button has been released once
---@type fun(gamepad:number, button:GamepadButton):boolean
function IsGamepadButtonReleased(gamepad, button)
end
---Check if a gamepad button is NOT being pressed
---@type fun(gamepad:number, button:GamepadButton):boolean
function IsGamepadButtonUp(gamepad, button)
end
---Get the last gamepad button pressed
---@type fun():number
function GetGamepadButtonPressed()
end
---Get gamepad axis count for a gamepad
---@type fun(gamepad:number):number
function GetGamepadAxisCount(gamepad)
end
---Get axis movement value for a gamepad axis
---@type fun(gamepad:number, axis:GamepadAxis):number
function GetGamepadAxisMovement(gamepad, axis)
end
---Set internal gamepad mappings (SDL_GameControllerDB)
---@type fun(mappings:string):number
function SetGamepadMappings(mappings)
end
---Check if a mouse button has been pressed once
---@type fun(button:MouseButton):boolean
function IsMouseButtonPressed(button)
end
---Check if a mouse button is being pressed
---@type fun(button:MouseButton):boolean
function IsMouseButtonDown(button)
end
---Check if a mouse button has been released once
---@type fun(button:MouseButton):boolean
function IsMouseButtonReleased(button)
end
---Check if a mouse button is NOT being pressed
---@type fun(button:MouseButton):boolean
function IsMouseButtonUp(button)
end
---Get mouse position X
---@type fun():number
function GetMouseX()
end
---Get mouse position Y
---@type fun():number
function GetMouseY()
end
---Get mouse position XY
---@type fun():Vector2
function GetMousePosition()
end
---Get mouse delta between frames
---@type fun():Vector2
function GetMouseDelta()
end
---Set mouse position XY
---@type fun(x:number, y:number)
function SetMousePosition(x, y)
end
---Set mouse offset
---@type fun(offsetX:number, offsetY:number)
function SetMouseOffset(offsetX, offsetY)
end
---Set mouse scaling
---@type fun(scaleX:number, scaleY:number)
function SetMouseScale(scaleX, scaleY)
end
---Get mouse wheel movement for X or Y, whichever is larger
---@type fun():number
function GetMouseWheelMove()
end
---Get mouse wheel movement for both X and Y
---@type fun():Vector2
function GetMouseWheelMoveV()
end
---Set mouse cursor
---@type fun(cursor:MouseCursor)
function SetMouseCursor(cursor)
end
---Get touch position X for touch ponumber 0 (relative to screen size)
---@type fun():number
function GetTouchX()
end
---Get touch position Y for touch ponumber 0 (relative to screen size)
---@type fun():number
function GetTouchY()
end
---Get touch position XY for a touch ponumber index (relative to screen size)
---@type fun(index:number):Vector2
function GetTouchPosition(index)
end
---Get touch ponumber identifier for given index
---@type fun(index:number):number
function GetTouchPointId(index)
end
---Get number of touch points
---@type fun():number
function GetTouchPointCount()
end
---Enable a set of gestures using flags
---@type fun(flags:number)
function SetGesturesEnabled(flags)
end
---Check if a gesture have been detected
---@type fun(gesture:Gesture):boolean
function IsGestureDetected(gesture)
end
---Get latest detected gesture
---@type fun():Gesture
function GetGestureDetected()
end
---Get gesture hold time in milliseconds
---@type fun():number
function GetGestureHoldDuration()
end
---Get gesture drag vector
---@type fun():Vector2
function GetGestureDragVector()
end
---Get gesture drag angle
---@type fun():number
function GetGestureDragAngle()
end
---Get gesture pinch delta
---@type fun():Vector2
function GetGesturePinchVector()
end
---Get gesture pinch angle
---@type fun():number
function GetGesturePinchAngle()
end
---Update camera position for selected mode
---@type fun(camera:Camera, mode:CameraMode)
function UpdateCamera(camera, mode)
end
---Update camera movement/rotation
---@type fun(camera:Camera, movement:Vector3, rotation:Vector3, zoom:number)
function UpdateCameraPro(camera, movement, rotation, zoom)
end
---Set texture and rectangle to be used on shapes drawing
---@type fun(texture:Texture2D, source:Rectangle)
function SetShapesTexture(texture, source)
end
---Draw a pixel
---@type fun(posX:number, posY:number, color:Color)
function DrawPixel(posX, posY, color)
end
---Draw a pixel (Vector version)
---@type fun(position:Vector2, color:Color)
function DrawPixelV(position, color)
end
---Draw a line
---@type fun(startPosX:number, startPosY:number, endPosX:number, endPosY:number, color:Color)
function DrawLine(startPosX, startPosY, endPosX, endPosY, color)
end
---Draw a line (using gl lines)
---@type fun(startPos:Vector2, endPos:Vector2, color:Color)
function DrawLineV(startPos, endPos, color)
end
---Draw a line (using triangles/quads)
---@type fun(startPos:Vector2, endPos:Vector2, thick:number, color:Color)
function DrawLineEx(startPos, endPos, thick, color)
end
---Draw lines sequence (using gl lines)
---@type fun(points:Vector2, pointCount:number, color:Color)
function DrawLineStrip(points, pointCount, color)
end
---Draw line segment cubic-bezier in-out interpolation
---@type fun(startPos:Vector2, endPos:Vector2, thick:number, color:Color)
function DrawLineBezier(startPos, endPos, thick, color)
end
---Draw a color-filled circle
---@type fun(centerX:number, centerY:number, radius:number, color:Color)
function DrawCircle(centerX, centerY, radius, color)
end
---Draw a piece of a circle
---@type fun(center:Vector2, radius:number, startAngle:number, endAngle:number, segments:number, color:Color)
function DrawCircleSector(center, radius, startAngle, endAngle, segments, color)
end
---Draw circle sector outline
---@type fun(center:Vector2, radius:number, startAngle:number, endAngle:number, segments:number, color:Color)
function DrawCircleSectorLines(center, radius, startAngle, endAngle, segments, color)
end
---Draw a gradient-filled circle
---@type fun(centerX:number, centerY:number, radius:number, color1:Color, color2:Color)
function DrawCircleGradient(centerX, centerY, radius, color1, color2)
end
---Draw a color-filled circle (Vector version)
---@type fun(center:Vector2, radius:number, color:Color)
function DrawCircleV(center, radius, color)
end
---Draw circle outline
---@type fun(centerX:number, centerY:number, radius:number, color:Color)
function DrawCircleLines(centerX, centerY, radius, color)
end
---Draw circle outline (Vector version)
---@type fun(center:Vector2, radius:number, color:Color)
function DrawCircleLinesV(center, radius, color)
end
---Draw ellipse
---@type fun(centerX:number, centerY:number, radiusH:number, radiusV:number, color:Color)
function DrawEllipse(centerX, centerY, radiusH, radiusV, color)
end
---Draw ellipse outline
---@type fun(centerX:number, centerY:number, radiusH:number, radiusV:number, color:Color)
function DrawEllipseLines(centerX, centerY, radiusH, radiusV, color)
end
---Draw ring
---@type fun(center:Vector2, innerRadius:number, outerRadius:number, startAngle:number, endAngle:number, segments:number, color:Color)
function DrawRing(center, innerRadius, outerRadius, startAngle, endAngle, segments, color)
end
---Draw ring outline
---@type fun(center:Vector2, innerRadius:number, outerRadius:number, startAngle:number, endAngle:number, segments:number, color:Color)
function DrawRingLines(center, innerRadius, outerRadius, startAngle, endAngle, segments, color)
end
---Draw a color-filled rectangle
---@type fun(posX:number, posY:number, width:number, height:number, color:Color)
function DrawRectangle(posX, posY, width, height, color)
end
---Draw a color-filled rectangle (Vector version)
---@type fun(position:Vector2, size:Vector2, color:Color)
function DrawRectangleV(position, size, color)
end
---Draw a color-filled rectangle
---@type fun(rec:Rectangle, color:Color)
function DrawRectangleRec(rec, color)
end
---Draw a color-filled rectangle with pro parameters
---@type fun(rec:Rectangle, origin:Vector2, rotation:number, color:Color)
function DrawRectanglePro(rec, origin, rotation, color)
end
---Draw a vertical-gradient-filled rectangle
---@type fun(posX:number, posY:number, width:number, height:number, color1:Color, color2:Color)
function DrawRectangleGradientV(posX, posY, width, height, color1, color2)
end
---Draw a horizontal-gradient-filled rectangle
---@type fun(posX:number, posY:number, width:number, height:number, color1:Color, color2:Color)
function DrawRectangleGradientH(posX, posY, width, height, color1, color2)
end
---Draw a gradient-filled rectangle with custom vertex colors
---@type fun(rec:Rectangle, col1:Color, col2:Color, col3:Color, col4:Color)
function DrawRectangleGradientEx(rec, col1, col2, col3, col4)
end
---Draw rectangle outline
---@type fun(posX:number, posY:number, width:number, height:number, color:Color)
function DrawRectangleLines(posX, posY, width, height, color)
end
---Draw rectangle outline with extended parameters
---@type fun(rec:Rectangle, lineThick:number, color:Color)
function DrawRectangleLinesEx(rec, lineThick, color)
end
---Draw rectangle with rounded edges
---@type fun(rec:Rectangle, roundness:number, segments:number, color:Color)
function DrawRectangleRounded(rec, roundness, segments, color)
end
---Draw rectangle with rounded edges outline
---@type fun(rec:Rectangle, roundness:number, segments:number, lineThick:number, color:Color)
function DrawRectangleRoundedLines(rec, roundness, segments, lineThick, color)
end
---Draw a color-filled triangle (vertex in counter-clockwise order!)
---@type fun(v1:Vector2, v2:Vector2, v3:Vector2, color:Color)
function DrawTriangle(v1, v2, v3, color)
end
---Draw triangle outline (vertex in counter-clockwise order!)
---@type fun(v1:Vector2, v2:Vector2, v3:Vector2, color:Color)
function DrawTriangleLines(v1, v2, v3, color)
end
---Draw a triangle fan defined by points (first vertex is the center)
---@type fun(points:Vector2, pointCount:number, color:Color)
function DrawTriangleFan(points, pointCount, color)
end
---Draw a triangle strip defined by points
---@type fun(points:Vector2, pointCount:number, color:Color)
function DrawTriangleStrip(points, pointCount, color)
end
---Draw a regular polygon (Vector version)
---@type fun(center:Vector2, sides:number, radius:number, rotation:number, color:Color)
function DrawPoly(center, sides, radius, rotation, color)
end
---Draw a polygon outline of n sides
---@type fun(center:Vector2, sides:number, radius:number, rotation:number, color:Color)
function DrawPolyLines(center, sides, radius, rotation, color)
end
---Draw a polygon outline of n sides with extended parameters
---@type fun(center:Vector2, sides:number, radius:number, rotation:number, lineThick:number, color:Color)
function DrawPolyLinesEx(center, sides, radius, rotation, lineThick, color)
end
---Draw spline: Linear, minimum 2 points
---@type fun(points:Vector2, pointCount:number, thick:number, color:Color)
function DrawSplineLinear(points, pointCount, thick, color)
end
---Draw spline: B-Spline, minimum 4 points
---@type fun(points:Vector2, pointCount:number, thick:number, color:Color)
function DrawSplineBasis(points, pointCount, thick, color)
end
---Draw spline: Catmull-Rom, minimum 4 points
---@type fun(points:Vector2, pointCount:number, thick:number, color:Color)
function DrawSplineCatmullRom(points, pointCount, thick, color)
end
---Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]
---@type fun(points:Vector2, pointCount:number, thick:number, color:Color)
function DrawSplineBezierQuadratic(points, pointCount, thick, color)
end
---Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]
---@type fun(points:Vector2, pointCount:number, thick:number, color:Color)
function DrawSplineBezierCubic(points, pointCount, thick, color)
end
---Draw spline segment: Linear, 2 points
---@type fun(p1:Vector2, p2:Vector2, thick:number, color:Color)
function DrawSplineSegmentLinear(p1, p2, thick, color)
end
---Draw spline segment: B-Spline, 4 points
---@type fun(p1:Vector2, p2:Vector2, p3:Vector2, p4:Vector2, thick:number, color:Color)
function DrawSplineSegmentBasis(p1, p2, p3, p4, thick, color)
end
---Draw spline segment: Catmull-Rom, 4 points
---@type fun(p1:Vector2, p2:Vector2, p3:Vector2, p4:Vector2, thick:number, color:Color)
function DrawSplineSegmentCatmullRom(p1, p2, p3, p4, thick, color)
end
---Draw spline segment: Quadratic Bezier, 2 points, 1 control point
---@type fun(p1:Vector2, c2:Vector2, p3:Vector2, thick:number, color:Color)
function DrawSplineSegmentBezierQuadratic(p1, c2, p3, thick, color)
end
---Draw spline segment: Cubic Bezier, 2 points, 2 control points
---@type fun(p1:Vector2, c2:Vector2, c3:Vector2, p4:Vector2, thick:number, color:Color)
function DrawSplineSegmentBezierCubic(p1, c2, c3, p4, thick, color)
end
---Get (evaluate) spline point: Linear
---@type fun(startPos:Vector2, endPos:Vector2, t:number):Vector2
function GetSplinePointLinear(startPos, endPos, t)
end
---Get (evaluate) spline point: B-Spline
---@type fun(p1:Vector2, p2:Vector2, p3:Vector2, p4:Vector2, t:number):Vector2
function GetSplinePointBasis(p1, p2, p3, p4, t)
end
---Get (evaluate) spline point: Catmull-Rom
---@type fun(p1:Vector2, p2:Vector2, p3:Vector2, p4:Vector2, t:number):Vector2
function GetSplinePointCatmullRom(p1, p2, p3, p4, t)
end
---Get (evaluate) spline point: Quadratic Bezier
---@type fun(p1:Vector2, c2:Vector2, p3:Vector2, t:number):Vector2
function GetSplinePointBezierQuad(p1, c2, p3, t)
end
---Get (evaluate) spline point: Cubic Bezier
---@type fun(p1:Vector2, c2:Vector2, c3:Vector2, p4:Vector2, t:number):Vector2
function GetSplinePointBezierCubic(p1, c2, c3, p4, t)
end
---Check collision between two rectangles
---@type fun(rec1:Rectangle, rec2:Rectangle):boolean
function CheckCollisionRecs(rec1, rec2)
end
---Check collision between two circles
---@type fun(center1:Vector2, radius1:number, center2:Vector2, radius2:number):boolean
function CheckCollisionCircles(center1, radius1, center2, radius2)
end
---Check collision between circle and rectangle
---@type fun(center:Vector2, radius:number, rec:Rectangle):boolean
function CheckCollisionCircleRec(center, radius, rec)
end
---Check if ponumber is inside rectangle
---@type fun(point:Vector2, rec:Rectangle):boolean
function CheckCollisionPointRec(point, rec)
end
---Check if ponumber is inside circle
---@type fun(point:Vector2, center:Vector2, radius:number):boolean
function CheckCollisionPointCircle(point, center, radius)
end
---Check if ponumber is inside a triangle
---@type fun(point:Vector2, p1:Vector2, p2:Vector2, p3:Vector2):boolean
function CheckCollisionPointTriangle(point, p1, p2, p3)
end
---Check if ponumber is within a polygon described by array of vertices
---@type fun(point:Vector2, points:Vector2, pointCount:number):boolean
function CheckCollisionPointPoly(point, points, pointCount)
end
---Check the collision between two lines defined by two points each, returns collision ponumber by reference
---@type fun(startPos1:Vector2, endPos1:Vector2, startPos2:Vector2, endPos2:Vector2, collisionPoint:Vector2):boolean
function CheckCollisionLines(startPos1, endPos1, startPos2, endPos2, collisionPoint)
end
---Check if ponumber benumbers to line created between two points [p1] and [p2] with defined margin in pixels [threshold]
---@type fun(point:Vector2, p1:Vector2, p2:Vector2, threshold:number):boolean
function CheckCollisionPointLine(point, p1, p2, threshold)
end
---Get collision rectangle for two rectangles collision
---@type fun(rec1:Rectangle, rec2:Rectangle):Rectangle
function GetCollisionRec(rec1, rec2)
end
---Load image from file into CPU memory (RAM)
---@type fun(fileName:string):Image
function LoadImage(fileName)
end
---Load image from RAW file data
---@type fun(fileName:string, width:number, height:number, format:PixelFormat, headerSize:number):Image
function LoadImageRaw(fileName, width, height, format, headerSize)
end
---Load image from SVG file data or string with specified size
---@type fun(fileNameOrString:string, width:number, height:number):Image
function LoadImageSvg(fileNameOrString, width, height)
end
---Load image sequence from file (frames appended to image.data)
---@type fun(fileName:string, frames:number):Image
function LoadImageAnim(fileName, frames)
end
---Load image from memory buffer, fileType refers to extension: i.e. '.png'
---@type fun(fileType:string, fileData:string, dataSize:number):Image
function LoadImageFromMemory(fileType, fileData, dataSize)
end
---Load image from GPU texture data
---@type fun(texture:Texture2D):Image
function LoadImageFromTexture(texture)
end
---Load image from screen buffer and (screenshot)
---@type fun():Image
function LoadImageFromScreen()
end
---Check if an image is ready
---@type fun(image:Image):boolean
function IsImageReady(image)
end
---Unload image from CPU memory (RAM)
---@type fun(image:Image)
function UnloadImage(image)
end
---Export image data to file, returns true on success
---@type fun(image:Image, fileName:string):boolean
function ExportImage(image, fileName)
end
---Export image to memory buffer
---@type fun(image:Image, fileType:string, fileSize:number):string
function ExportImageToMemory(image, fileType, fileSize)
end
---Export image as code file defining an array of bytes, returns true on success
---@type fun(image:Image, fileName:string):boolean
function ExportImageAsCode(image, fileName)
end
---Generate image: plain color
---@type fun(width:number, height:number, color:Color):Image
function GenImageColor(width, height, color)
end
---Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient
---@type fun(width:number, height:number, direction:number, start:Color, stop:Color):Image
function GenImageGradientLinear(width, height, direction, start, stop)
end
---Generate image: radial gradient
---@type fun(width:number, height:number, density:number, inner:Color, outer:Color):Image
function GenImageGradientRadial(width, height, density, inner, outer)
end
---Generate image: square gradient
---@type fun(width:number, height:number, density:number, inner:Color, outer:Color):Image
function GenImageGradientSquare(width, height, density, inner, outer)
end
---Generate image: checked
---@type fun(width:number, height:number, checksX:number, checksY:number, col1:Color, col2:Color):Image
function GenImageChecked(width, height, checksX, checksY, col1, col2)
end
---Generate image: white noise
---@type fun(width:number, height:number, factor:number):Image
function GenImageWhiteNoise(width, height, factor)
end
---Generate image: perlin noise
---@type fun(width:number, height:number, offsetX:number, offsetY:number, scale:number):Image
function GenImagePerlinNoise(width, height, offsetX, offsetY, scale)
end
---Generate image: cellular algorithm, bigger tileSize means bigger cells
---@type fun(width:number, height:number, tileSize:number):Image
function GenImageCellular(width, height, tileSize)
end
---Generate image: grayscale image from text data
---@type fun(width:number, height:number, text:string):Image
function GenImageText(width, height, text)
end
---Create an image duplicate (useful for transformations)
---@type fun(image:Image):Image
function ImageCopy(image)
end
---Create an image from another image piece
---@type fun(image:Image, rec:Rectangle):Image
function ImageFromImage(image, rec)
end
---Create an image from text (default font)
---@type fun(text:string, fontSize:number, color:Color):Image
function ImageText(text, fontSize, color)
end
---Create an image from text (custom sprite font)
---@type fun(font:Font, text:string, fontSize:number, spacing:number, tint:Color):Image
function ImageTextEx(font, text, fontSize, spacing, tint)
end
---Convert image data to desired format
---@type fun(image:Image, newFormat:PixelFormat)
function ImageFormat(image, newFormat)
end
---Convert image to POT (power-of-two)
---@type fun(image:Image, fill:Color)
function ImageToPOT(image, fill)
end
---Crop an image to a defined rectangle
---@type fun(image:Image, crop:Rectangle)
function ImageCrop(image, crop)
end
---Crop image depending on alpha value
---@type fun(image:Image, threshold:number)
function ImageAlphaCrop(image, threshold)
end
---Clear alpha channel to desired color
---@type fun(image:Image, color:Color, threshold:number)
function ImageAlphaClear(image, color, threshold)
end
---Apply alpha mask to image
---@type fun(image:Image, alphaMask:Image)
function ImageAlphaMask(image, alphaMask)
end
---Premultiply alpha channel
---@type fun(image:Image)
function ImageAlphaPremultiply(image)
end
---Apply Gaussian blur using a box blur approximation
---@type fun(image:Image, blurSize:number)
function ImageBlurGaussian(image, blurSize)
end
---Resize image (Bicubic scaling algorithm)
---@type fun(image:Image, newWidth:number, newHeight:number)
function ImageResize(image, newWidth, newHeight)
end
---Resize image (Nearest-Neighbor scaling algorithm)
---@type fun(image:Image, newWidth:number, newHeight:number)
function ImageResizeNN(image, newWidth, newHeight)
end
---Resize canvas and fill with color
---@type fun(image:Image, newWidth:number, newHeight:number, offsetX:number, offsetY:number, fill:Color)
function ImageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, fill)
end
---Compute all mipmap levels for a provided image
---@type fun(image:Image)
function ImageMipmaps(image)
end
---Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
---@type fun(image:Image, rBpp:number, gBpp:number, bBpp:number, aBpp:number)
function ImageDither(image, rBpp, gBpp, bBpp, aBpp)
end
---Flip image vertically
---@type fun(image:Image)
function ImageFlipVertical(image)
end
---Flip image horizontally
---@type fun(image:Image)
function ImageFlipHorizontal(image)
end
---Rotate image by input angle in degrees (-359 to 359)
---@type fun(image:Image, degrees:number)
function ImageRotate(image, degrees)
end
---Rotate image clockwise 90deg
---@type fun(image:Image)
function ImageRotateCW(image)
end
---Rotate image counter-clockwise 90deg
---@type fun(image:Image)
function ImageRotateCCW(image)
end
---Modify image color: tint
---@type fun(image:Image, color:Color)
function ImageColorTint(image, color)
end
---Modify image color: invert
---@type fun(image:Image)
function ImageColorInvert(image)
end
---Modify image color: grayscale
---@type fun(image:Image)
function ImageColorGrayscale(image)
end
---Modify image color: contrast (-100 to 100)
---@type fun(image:Image, contrast:number)
function ImageColorContrast(image, contrast)
end
---Modify image color: brightness (-255 to 255)
---@type fun(image:Image, brightness:number)
function ImageColorBrightness(image, brightness)
end
---Modify image color: replace color
---@type fun(image:Image, color:Color, replace:Color)
function ImageColorReplace(image, color, replace)
end
---Load color data from image as a Color array (RGBA - 32bit)
---@type fun(image:Image):Color
function LoadImageColors(image)
end
---Load colors palette from image as a Color array (RGBA - 32bit)
---@type fun(image:Image, maxPaletteSize:number, colorCount:number):Color
function LoadImagePalette(image, maxPaletteSize, colorCount)
end
---Unload color data loaded with LoadImageColors()
---@type fun(colors:Color)
function UnloadImageColors(colors)
end
---Unload colors palette loaded with LoadImagePalette()
---@type fun(colors:Color)
function UnloadImagePalette(colors)
end
---Get image alpha border rectangle
---@type fun(image:Image, threshold:number):Rectangle
function GetImageAlphaBorder(image, threshold)
end
---Get image pixel color at (x, y) position
---@type fun(image:Image, x:number, y:number):Color
function GetImageColor(image, x, y)
end
---Clear image background with given color
---@type fun(dst:Image, color:Color)
function ImageClearBackground(dst, color)
end
---Draw pixel within an image
---@type fun(dst:Image, posX:number, posY:number, color:Color)
function ImageDrawPixel(dst, posX, posY, color)
end
---Draw pixel within an image (Vector version)
---@type fun(dst:Image, position:Vector2, color:Color)
function ImageDrawPixelV(dst, position, color)
end
---Draw line within an image
---@type fun(dst:Image, startPosX:number, startPosY:number, endPosX:number, endPosY:number, color:Color)
function ImageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, color)
end
---Draw line within an image (Vector version)
---@type fun(dst:Image, start:Vector2, stop:Vector2, color:Color)
function ImageDrawLineV(dst, start, stop, color)
end
---Draw a filled circle within an image
---@type fun(dst:Image, centerX:number, centerY:number, radius:number, color:Color)
function ImageDrawCircle(dst, centerX, centerY, radius, color)
end
---Draw a filled circle within an image (Vector version)
---@type fun(dst:Image, center:Vector2, radius:number, color:Color)
function ImageDrawCircleV(dst, center, radius, color)
end
---Draw circle outline within an image
---@type fun(dst:Image, centerX:number, centerY:number, radius:number, color:Color)
function ImageDrawCircleLines(dst, centerX, centerY, radius, color)
end
---Draw circle outline within an image (Vector version)
---@type fun(dst:Image, center:Vector2, radius:number, color:Color)
function ImageDrawCircleLinesV(dst, center, radius, color)
end
---Draw rectangle within an image
---@type fun(dst:Image, posX:number, posY:number, width:number, height:number, color:Color)
function ImageDrawRectangle(dst, posX, posY, width, height, color)
end
---Draw rectangle within an image (Vector version)
---@type fun(dst:Image, position:Vector2, size:Vector2, color:Color)
function ImageDrawRectangleV(dst, position, size, color)
end
---Draw rectangle within an image
---@type fun(dst:Image, rec:Rectangle, color:Color)
function ImageDrawRectangleRec(dst, rec, color)
end
---Draw rectangle lines within an image
---@type fun(dst:Image, rec:Rectangle, thick:number, color:Color)
function ImageDrawRectangleLines(dst, rec, thick, color)
end
---Draw a source image within a destination image (tnumber applied to source)
---@type fun(dst:Image, src:Image, srcRec:Rectangle, dstRec:Rectangle, tint:Color)
function ImageDraw(dst, src, srcRec, dstRec, tint)
end
---Draw text (using default font) within an image (destination)
---@type fun(dst:Image, text:string, posX:number, posY:number, fontSize:number, color:Color)
function ImageDrawText(dst, text, posX, posY, fontSize, color)
end
---Draw text (custom sprite font) within an image (destination)
---@type fun(dst:Image, font:Font, text:string, position:Vector2, fontSize:number, spacing:number, tint:Color)
function ImageDrawTextEx(dst, font, text, position, fontSize, spacing, tint)
end
---Load texture from file into GPU memory (VRAM)
---@type fun(fileName:string):Texture2D
function LoadTexture(fileName)
end
---Load texture from image data
---@type fun(image:Image):Texture2D
function LoadTextureFromImage(image)
end
---Load cubemap from image, multiple image cubemap layouts supported
---@type fun(image:Image, layout:CubemapLayout):TextureCubemap
function LoadTextureCubemap(image, layout)
end
---Load texture for rendering (framebuffer)
---@type fun(width:number, height:number):RenderTexture2D
function LoadRenderTexture(width, height)
end
---Check if a texture is ready
---@type fun(texture:Texture2D):boolean
function IsTextureReady(texture)
end
---Unload texture from GPU memory (VRAM)
---@type fun(texture:Texture2D)
function UnloadTexture(texture)
end
---Check if a render texture is ready
---@type fun(target:RenderTexture2D):boolean
function IsRenderTextureReady(target)
end
---Unload render texture from GPU memory (VRAM)
---@type fun(target:RenderTexture2D)
function UnloadRenderTexture(target)
end
---Update GPU texture with new data
---@type fun(texture:Texture2D, pixels:userdata)
function UpdateTexture(texture, pixels)
end
---Update GPU texture rectangle with new data
---@type fun(texture:Texture2D, rec:Rectangle, pixels:userdata)
function UpdateTextureRec(texture, rec, pixels)
end
---Generate GPU mipmaps for a texture
---@type fun(texture:Texture2D)
function GenTextureMipmaps(texture)
end
---Set texture scaling filter mode
---@type fun(texture:Texture2D, filter:TextureFilter)
function SetTextureFilter(texture, filter)
end
---Set texture wrapping mode
---@type fun(texture:Texture2D, wrap:TextureWrap)
function SetTextureWrap(texture, wrap)
end
---Draw a Texture2D
---@type fun(texture:Texture2D, posX:number, posY:number, tint:Color)
function DrawTexture(texture, posX, posY, tint)
end
---Draw a Texture2D with position defined as Vector2
---@type fun(texture:Texture2D, position:Vector2, tint:Color)
function DrawTextureV(texture, position, tint)
end
---Draw a Texture2D with extended parameters
---@type fun(texture:Texture2D, position:Vector2, rotation:number, scale:number, tint:Color)
function DrawTextureEx(texture, position, rotation, scale, tint)
end
---Draw a part of a texture defined by a rectangle
---@type fun(texture:Texture2D, source:Rectangle, position:Vector2, tint:Color)
function DrawTextureRec(texture, source, position, tint)
end
---Draw a part of a texture defined by a rectangle with 'pro' parameters
---@type fun(texture:Texture2D, source:Rectangle, dest:Rectangle, origin:Vector2, rotation:number, tint:Color)
function DrawTexturePro(texture, source, dest, origin, rotation, tint)
end
---Draws a texture (or part of it) that stretches or shrinks nicely
---@type fun(texture:Texture2D, nPatchInfo:NPatchInfo, dest:Rectangle, origin:Vector2, rotation:number, tint:Color)
function DrawTextureNPatch(texture, nPatchInfo, dest, origin, rotation, tint)
end
---Get color with alpha applied, alpha goes from 0.0f to 1.0f
---@type fun(color:Color, alpha:number):Color
function Fade(color, alpha)
end
---Get hexadecimal value for a Color
---@type fun(color:Color):number
function ColorToInt(color)
end
---Get Color normalized as number [0..1]
---@type fun(color:Color):Vector4
function ColorNormalize(color)
end
---Get Color from normalized values [0..1]
---@type fun(normalized:Vector4):Color
function ColorFromNormalized(normalized)
end
---Get HSV values for a Color, hue [0..360], saturation/value [0..1]
---@type fun(color:Color):Vector3
function ColorToHSV(color)
end
---Get a Color from HSV values, hue [0..360], saturation/value [0..1]
---@type fun(hue:number, saturation:number, value:number):Color
function ColorFromHSV(hue, saturation, value)
end
---Get color multiplied with another color
---@type fun(color:Color, tint:Color):Color
function ColorTint(color, tint)
end
---Get color with brightness correction, brightness factor goes from -1.0f to 1.0f
---@type fun(color:Color, factor:number):Color
function ColorBrightness(color, factor)
end
---Get color with contrast correction, contrast values between -1.0f and 1.0f
---@type fun(color:Color, contrast:number):Color
function ColorContrast(color, contrast)
end
---Get color with alpha applied, alpha goes from 0.0f to 1.0f
---@type fun(color:Color, alpha:number):Color
function ColorAlpha(color, alpha)
end
---Get src alpha-blended into dst color with tint
---@type fun(dst:Color, src:Color, tint:Color):Color
function ColorAlphaBlend(dst, src, tint)
end
---Get Color structure from hexadecimal value
---@type fun(hexValue:number):Color
function GetColor(hexValue)
end
---Get Color from a source pixel pointer of certain format
---@type fun(srcPtr:userdata, format:PixelFormat):Color
function GetPixelColor(srcPtr, format)
end
---Set color formatted into destination pixel pointer
---@type fun(dstPtr:userdata, color:Color, format:PixelFormat)
function SetPixelColor(dstPtr, color, format)
end
---Get pixel data size in bytes for certain format
---@type fun(width:number, height:number, format:PixelFormat):number
function GetPixelDataSize(width, height, format)
end
---Get the default Font
---@type fun():Font
function GetFontDefault()
end
---Load font from file into GPU memory (VRAM)
---@type fun(fileName:string):Font
function LoadFont(fileName)
end
---Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default stringacter set
---@type fun(fileName:string, fontSize:number, codepoints:number, codepointCount:number):Font
function LoadFontEx(fileName, fontSize, codepoints, codepointCount)
end
---Load font from Image (XNA style)
---@type fun(image:Image, key:Color, firstChar:number):Font
function LoadFontFromImage(image, key, firstChar)
end
---Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
---@type fun(fileType:string, fileData:string, dataSize:number, fontSize:number, codepoints:number, codepointCount:number):Font
function LoadFontFromMemory(fileType, fileData, dataSize, fontSize, codepoints, codepointCount)
end
---Check if a font is ready
---@type fun(font:Font):boolean
function IsFontReady(font)
end
---Load font data for further use
---@type fun(fileData:string, dataSize:number, fontSize:number, codepoints:number, codepointCount:number, type:FontType):GlyphInfo
function LoadFontData(fileData, dataSize, fontSize, codepoints, codepointCount, type)
end
---Generate image font atlas using strings info
---@type fun(glyphs:GlyphInfo, glyphRecs:Rectangle, glyphCount:number, fontSize:number, padding:number, packMethod:number):Image
function GenImageFontAtlas(glyphs, glyphRecs, glyphCount, fontSize, padding, packMethod)
end
---Unload font strings info data (RAM)
---@type fun(glyphs:GlyphInfo, glyphCount:number)
function UnloadFontData(glyphs, glyphCount)
end
---Unload font from GPU memory (VRAM)
---@type fun(font:Font)
function UnloadFont(font)
end
---Export font as code file, returns true on success
---@type fun(font:Font, fileName:string):boolean
function ExportFontAsCode(font, fileName)
end
---Draw current FPS
---@type fun(posX:number, posY:number)
function DrawFPS(posX, posY)
end
---Draw text (using default font)
---@type fun(text:string, posX:number, posY:number, fontSize:number, color:Color)
function DrawText(text, posX, posY, fontSize, color)
end
---Draw text using font and additional parameters
---@type fun(font:Font, text:string, position:Vector2, fontSize:number, spacing:number, tint:Color)
function DrawTextEx(font, text, position, fontSize, spacing, tint)
end
---Draw text using Font and pro parameters (rotation)
---@type fun(font:Font, text:string, position:Vector2, origin:Vector2, rotation:number, fontSize:number, spacing:number, tint:Color)
function DrawTextPro(font, text, position, origin, rotation, fontSize, spacing, tint)
end
---Draw one stringacter (codepoint)
---@type fun(font:Font, codepoint:number, position:Vector2, fontSize:number, tint:Color)
function DrawTextCodepoint(font, codepoint, position, fontSize, tint)
end
---Draw multiple stringacter (codepoint)
---@type fun(font:Font, codepoints:number, codepointCount:number, position:Vector2, fontSize:number, spacing:number, tint:Color)
function DrawTextCodepoints(font, codepoints, codepointCount, position, fontSize, spacing, tint)
end
---Set vertical line spacing when drawing with line-breaks
---@type fun(spacing:number)
function SetTextLineSpacing(spacing)
end
---Measure string width for default font
---@type fun(text:string, fontSize:number):number
function MeasureText(text, fontSize)
end
---Measure string size for Font
---@type fun(font:Font, text:string, fontSize:number, spacing:number):Vector2
function MeasureTextEx(font, text, fontSize, spacing)
end
---Get glyph index position in font for a codeponumber (unicode stringacter), fallback to '?' if not found
---@type fun(font:Font, codepoint:number):number
function GetGlyphIndex(font, codepoint)
end
---Get glyph font info data for a codeponumber (unicode stringacter), fallback to '?' if not found
---@type fun(font:Font, codepoint:number):GlyphInfo
function GetGlyphInfo(font, codepoint)
end
---Get glyph rectangle in font atlas for a codeponumber (unicode stringacter), fallback to '?' if not found
---@type fun(font:Font, codepoint:number):Rectangle
function GetGlyphAtlasRec(font, codepoint)
end
---Load UTF-8 text encoded from codepoints array
---@type fun(codepoints:number, length:number):string
function LoadUTF8(codepoints, length)
end
---Unload UTF-8 text encoded from codepoints array
---@type fun(text:string)
function UnloadUTF8(text)
end
---Load all codepoints from a UTF-8 text string, codepoints count returned by parameter
---@type fun(text:string, count:number):number
function LoadCodepoints(text, count)
end
---Unload codepoints data from memory
---@type fun(codepoints:number)
function UnloadCodepoints(codepoints)
end
---Get total number of codepoints in a UTF-8 encoded string
---@type fun(text:string):number
function GetCodepointCount(text)
end
---Get next codeponumber in a UTF-8 encoded string, 0x3f('?') is returned on failure
---@type fun(text:string, codepointSize:number):number
function GetCodepoint(text, codepointSize)
end
---Get next codeponumber in a UTF-8 encoded string, 0x3f('?') is returned on failure
---@type fun(text:string, codepointSize:number):number
function GetCodepointNext(text, codepointSize)
end
---Get previous codeponumber in a UTF-8 encoded string, 0x3f('?') is returned on failure
---@type fun(text:string, codepointSize:number):number
function GetCodepointPrevious(text, codepointSize)
end
---Encode one codeponumber into UTF-8 byte array (array length returned as parameter)
---@type fun(codepoint:number, utf8Size:number):string
function CodepointToUTF8(codepoint, utf8Size)
end
---Copy one string to another, returns bytes copied
---@type fun(dst:string, src:string):number
function TextCopy(dst, src)
end
---Check if two text string are equal
---@type fun(text1:string, text2:string):boolean
function TextIsEqual(text1, text2)
end
---Get text length, checks for '\0' ending
---@type fun(text:string):number
function TextLength(text)
end
---Text formatting with variables (sprintf() style)
---@type fun(text:string, ...):string
function TextFormat(text)
end
---Get a piece of a text string
---@type fun(text:string, position:number, length:number):string
function TextSubtext(text, position, length)
end
---Replace text string (WARNING: memory must be freed!)
---@type fun(text:string, replace:string, by:string):string
function TextReplace(text, replace, by)
end
---Insert text in a position (WARNING: memory must be freed!)
---@type fun(text:string, insert:string, position:number):string
function TextInsert(text, insert, position)
end
---Join text strings with delimiter
---@type fun(textList:string, count:number, delimiter:string):string
function TextJoin(textList, count, delimiter)
end
---Split text into multiple strings
---@type fun(text:string, delimiter:string, count:number):string
function TextSplit(text, delimiter, count)
end
---Append text at specific position and move cursor!
---@type fun(text:string, append:string, position:number)
function TextAppend(text, append, position)
end
---Find first text occurrence within a string
---@type fun(text:string, find:string):number
function TextFindIndex(text, find)
end
---Get upper case version of provided string
---@type fun(text:string):string
function TextToUpper(text)
end
---Get lower case version of provided string
---@type fun(text:string):string
function TextToLower(text)
end
---Get Pascal case notation version of provided string
---@type fun(text:string):string
function TextToPascal(text)
end
---Get number value from text (negative values not supported)
---@type fun(text:string):number
function TextToInteger(text)
end
---Draw a line in 3D world space
---@type fun(startPos:Vector3, endPos:Vector3, color:Color)
function DrawLine3D(startPos, endPos, color)
end
---Draw a ponumber in 3D space, actually a small line
---@type fun(position:Vector3, color:Color)
function DrawPoint3D(position, color)
end
---Draw a circle in 3D world space
---@type fun(center:Vector3, radius:number, rotationAxis:Vector3, rotationAngle:number, color:Color)
function DrawCircle3D(center, radius, rotationAxis, rotationAngle, color)
end
---Draw a color-filled triangle (vertex in counter-clockwise order!)
---@type fun(v1:Vector3, v2:Vector3, v3:Vector3, color:Color)
function DrawTriangle3D(v1, v2, v3, color)
end
---Draw a triangle strip defined by points
---@type fun(points:Vector3, pointCount:number, color:Color)
function DrawTriangleStrip3D(points, pointCount, color)
end
---Draw cube
---@type fun(position:Vector3, width:number, height:number, length:number, color:Color)
function DrawCube(position, width, height, length, color)
end
---Draw cube (Vector version)
---@type fun(position:Vector3, size:Vector3, color:Color)
function DrawCubeV(position, size, color)
end
---Draw cube wires
---@type fun(position:Vector3, width:number, height:number, length:number, color:Color)
function DrawCubeWires(position, width, height, length, color)
end
---Draw cube wires (Vector version)
---@type fun(position:Vector3, size:Vector3, color:Color)
function DrawCubeWiresV(position, size, color)
end
---Draw sphere
---@type fun(centerPos:Vector3, radius:number, color:Color)
function DrawSphere(centerPos, radius, color)
end
---Draw sphere with extended parameters
---@type fun(centerPos:Vector3, radius:number, rings:number, slices:number, color:Color)
function DrawSphereEx(centerPos, radius, rings, slices, color)
end
---Draw sphere wires
---@type fun(centerPos:Vector3, radius:number, rings:number, slices:number, color:Color)
function DrawSphereWires(centerPos, radius, rings, slices, color)
end
---Draw a cylinder/cone
---@type fun(position:Vector3, radiusTop:number, radiusBottom:number, height:number, slices:number, color:Color)
function DrawCylinder(position, radiusTop, radiusBottom, height, slices, color)
end
---Draw a cylinder with base at startPos and top at endPos
---@type fun(startPos:Vector3, endPos:Vector3, startRadius:number, endRadius:number, sides:number, color:Color)
function DrawCylinderEx(startPos, endPos, startRadius, endRadius, sides, color)
end
---Draw a cylinder/cone wires
---@type fun(position:Vector3, radiusTop:number, radiusBottom:number, height:number, slices:number, color:Color)
function DrawCylinderWires(position, radiusTop, radiusBottom, height, slices, color)
end
---Draw a cylinder wires with base at startPos and top at endPos
---@type fun(startPos:Vector3, endPos:Vector3, startRadius:number, endRadius:number, sides:number, color:Color)
function DrawCylinderWiresEx(startPos, endPos, startRadius, endRadius, sides, color)
end
---Draw a capsule with the center of its sphere caps at startPos and endPos
---@type fun(startPos:Vector3, endPos:Vector3, radius:number, slices:number, rings:number, color:Color)
function DrawCapsule(startPos, endPos, radius, slices, rings, color)
end
---Draw capsule wireframe with the center of its sphere caps at startPos and endPos
---@type fun(startPos:Vector3, endPos:Vector3, radius:number, slices:number, rings:number, color:Color)
function DrawCapsuleWires(startPos, endPos, radius, slices, rings, color)
end
---Draw a plane XZ
---@type fun(centerPos:Vector3, size:Vector2, color:Color)
function DrawPlane(centerPos, size, color)
end
---Draw a ray line
---@type fun(ray:Ray, color:Color)
function DrawRay(ray, color)
end
---Draw a grid (centered at (0, 0, 0))
---@type fun(slices:number, spacing:number)
function DrawGrid(slices, spacing)
end
---Load model from files (meshes and materials)
---@type fun(fileName:string):Model
function LoadModel(fileName)
end
---Load model from generated mesh (default material)
---@type fun(mesh:Mesh):Model
function LoadModelFromMesh(mesh)
end
---Check if a model is ready
---@type fun(model:Model):boolean
function IsModelReady(model)
end
---Unload model (including meshes) from memory (RAM and/or VRAM)
---@type fun(model:Model)
function UnloadModel(model)
end
---Compute model bounding box limits (considers all meshes)
---@type fun(model:Model):BoundingBox
function GetModelBoundingBox(model)
end
---Draw a model (with texture if set)
---@type fun(model:Model, position:Vector3, scale:number, tint:Color)
function DrawModel(model, position, scale, tint)
end
---Draw a model with extended parameters
---@type fun(model:Model, position:Vector3, rotationAxis:Vector3, rotationAngle:number, scale:Vector3, tint:Color)
function DrawModelEx(model, position, rotationAxis, rotationAngle, scale, tint)
end
---Draw a model wires (with texture if set)
---@type fun(model:Model, position:Vector3, scale:number, tint:Color)
function DrawModelWires(model, position, scale, tint)
end
---Draw a model wires (with texture if set) with extended parameters
---@type fun(model:Model, position:Vector3, rotationAxis:Vector3, rotationAngle:number, scale:Vector3, tint:Color)
function DrawModelWiresEx(model, position, rotationAxis, rotationAngle, scale, tint)
end
---Draw bounding box (wires)
---@type fun(box:BoundingBox, color:Color)
function DrawBoundingBox(box, color)
end
---Draw a billboard texture
---@type fun(camera:Camera, texture:Texture2D, position:Vector3, size:number, tint:Color)
function DrawBillboard(camera, texture, position, size, tint)
end
---Draw a billboard texture defined by source
---@type fun(camera:Camera, texture:Texture2D, source:Rectangle, position:Vector3, size:Vector2, tint:Color)
function DrawBillboardRec(camera, texture, source, position, size, tint)
end
---Draw a billboard texture defined by source and rotation
---@type fun(camera:Camera, texture:Texture2D, source:Rectangle, position:Vector3, up:Vector3, size:Vector2, origin:Vector2, rotation:number, tint:Color)
function DrawBillboardPro(camera, texture, source, position, up, size, origin, rotation, tint)
end
---Upload mesh vertex data in GPU and provide VAO/VBO ids
---@type fun(mesh:Mesh, dynamic:boolean)
function UploadMesh(mesh, dynamic)
end
---Update mesh vertex data in GPU for a specific buffer index
---@type fun(mesh:Mesh, index:number, data:userdata, dataSize:number, offset:number)
function UpdateMeshBuffer(mesh, index, data, dataSize, offset)
end
---Unload mesh data from CPU and GPU
---@type fun(mesh:Mesh)
function UnloadMesh(mesh)
end
---Draw a 3d mesh with material and transform
---@type fun(mesh:Mesh, material:Material, transform:Matrix)
function DrawMesh(mesh, material, transform)
end
---Draw multiple mesh instances with material and different transforms
---@type fun(mesh:Mesh, material:Material, transforms:Matrix, instances:number)
function DrawMeshInstanced(mesh, material, transforms, instances)
end
---Export mesh data to file, returns true on success
---@type fun(mesh:Mesh, fileName:string):boolean
function ExportMesh(mesh, fileName)
end
---Compute mesh bounding box limits
---@type fun(mesh:Mesh):BoundingBox
function GetMeshBoundingBox(mesh)
end
---Compute mesh tangents
---@type fun(mesh:Mesh)
function GenMeshTangents(mesh)
end
---Generate polygonal mesh
---@type fun(sides:number, radius:number):Mesh
function GenMeshPoly(sides, radius)
end
---Generate plane mesh (with subdivisions)
---@type fun(width:number, length:number, resX:number, resZ:number):Mesh
function GenMeshPlane(width, length, resX, resZ)
end
---Generate cuboid mesh
---@type fun(width:number, height:number, length:number):Mesh
function GenMeshCube(width, height, length)
end
---Generate sphere mesh (standard sphere)
---@type fun(radius:number, rings:number, slices:number):Mesh
function GenMeshSphere(radius, rings, slices)
end
---Generate half-sphere mesh (no bottom cap)
---@type fun(radius:number, rings:number, slices:number):Mesh
function GenMeshHemiSphere(radius, rings, slices)
end
---Generate cylinder mesh
---@type fun(radius:number, height:number, slices:number):Mesh
function GenMeshCylinder(radius, height, slices)
end
---Generate cone/pyramid mesh
---@type fun(radius:number, height:number, slices:number):Mesh
function GenMeshCone(radius, height, slices)
end
---Generate torus mesh
---@type fun(radius:number, size:number, radSeg:number, sides:number):Mesh
function GenMeshTorus(radius, size, radSeg, sides)
end
---Generate trefoil knot mesh
---@type fun(radius:number, size:number, radSeg:number, sides:number):Mesh
function GenMeshKnot(radius, size, radSeg, sides)
end
---Generate heightmap mesh from image data
---@type fun(heightmap:Image, size:Vector3):Mesh
function GenMeshHeightmap(heightmap, size)
end
---Generate cubes-based map mesh from image data
---@type fun(cubicmap:Image, cubeSize:Vector3):Mesh
function GenMeshCubicmap(cubicmap, cubeSize)
end
---Load materials from model file
---@type fun(fileName:string, materialCount:number):Material
function LoadMaterials(fileName, materialCount)
end
---Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)
---@type fun():Material
function LoadMaterialDefault()
end
---Check if a material is ready
---@type fun(material:Material):boolean
function IsMaterialReady(material)
end
---Unload material from GPU memory (VRAM)
---@type fun(material:Material)
function UnloadMaterial(material)
end
---Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...)
---@type fun(material:Material, mapType:MaterialMapIndex, texture:Texture2D)
function SetMaterialTexture(material, mapType, texture)
end
---Set material for a mesh
---@type fun(model:Model, meshId:number, materialId:number)
function SetModelMeshMaterial(model, meshId, materialId)
end
---Load model animations from file
---@type fun(fileName:string, animCount:number):ModelAnimation
function LoadModelAnimations(fileName, animCount)
end
---Update model animation pose
---@type fun(model:Model, anim:ModelAnimation, frame:number)
function UpdateModelAnimation(model, anim, frame)
end
---Unload animation data
---@type fun(anim:ModelAnimation)
function UnloadModelAnimation(anim)
end
---Unload animation array data
---@type fun(animations:ModelAnimation, animCount:number)
function UnloadModelAnimations(animations, animCount)
end
---Check model animation skeleton match
---@type fun(model:Model, anim:ModelAnimation):boolean
function IsModelAnimationValid(model, anim)
end
---Check collision between two spheres
---@type fun(center1:Vector3, radius1:number, center2:Vector3, radius2:number):boolean
function CheckCollisionSpheres(center1, radius1, center2, radius2)
end
---Check collision between two bounding boxes
---@type fun(box1:BoundingBox, box2:BoundingBox):boolean
function CheckCollisionBoxes(box1, box2)
end
---Check collision between box and sphere
---@type fun(box:BoundingBox, center:Vector3, radius:number):boolean
function CheckCollisionBoxSphere(box, center, radius)
end
---Get collision info between ray and sphere
---@type fun(ray:Ray, center:Vector3, radius:number):RayCollision
function GetRayCollisionSphere(ray, center, radius)
end
---Get collision info between ray and box
---@type fun(ray:Ray, box:BoundingBox):RayCollision
function GetRayCollisionBox(ray, box)
end
---Get collision info between ray and mesh
---@type fun(ray:Ray, mesh:Mesh, transform:Matrix):RayCollision
function GetRayCollisionMesh(ray, mesh, transform)
end
---Get collision info between ray and triangle
---@type fun(ray:Ray, p1:Vector3, p2:Vector3, p3:Vector3):RayCollision
function GetRayCollisionTriangle(ray, p1, p2, p3)
end
---Get collision info between ray and quad
---@type fun(ray:Ray, p1:Vector3, p2:Vector3, p3:Vector3, p4:Vector3):RayCollision
function GetRayCollisionQuad(ray, p1, p2, p3, p4)
end
---Initialize audio device and context
---@type fun()
function InitAudioDevice()
end
---Close the audio device and context
---@type fun()
function CloseAudioDevice()
end
---Check if audio device has been initialized successfully
---@type fun():boolean
function IsAudioDeviceReady()
end
---Set master volume (listener)
---@type fun(volume:number)
function SetMasterVolume(volume)
end
---Get master volume (listener)
---@type fun():number
function GetMasterVolume()
end
---Load wave data from file
---@type fun(fileName:string):Wave
function LoadWave(fileName)
end
---Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
---@type fun(fileType:string, fileData:string, dataSize:number):Wave
function LoadWaveFromMemory(fileType, fileData, dataSize)
end
---Checks if wave data is ready
---@type fun(wave:Wave):boolean
function IsWaveReady(wave)
end
---Load sound from file
---@type fun(fileName:string):Sound
function LoadSound(fileName)
end
---Load sound from wave data
---@type fun(wave:Wave):Sound
function LoadSoundFromWave(wave)
end
---Create a new sound that shares the same sample data as the source sound, does not own the sound data
---@type fun(source:Sound):Sound
function LoadSoundAlias(source)
end
---Checks if a sound is ready
---@type fun(sound:Sound):boolean
function IsSoundReady(sound)
end
---Update sound buffer with new data
---@type fun(sound:Sound, data:userdata, sampleCount:number)
function UpdateSound(sound, data, sampleCount)
end
---Unload wave data
---@type fun(wave:Wave)
function UnloadWave(wave)
end
---Unload sound
---@type fun(sound:Sound)
function UnloadSound(sound)
end
---Unload a sound alias (does not deallocate sample data)
---@type fun(alias:Sound)
function UnloadSoundAlias(alias)
end
---Export wave data to file, returns true on success
---@type fun(wave:Wave, fileName:string):boolean
function ExportWave(wave, fileName)
end
---Export wave sample data to code (.h), returns true on success
---@type fun(wave:Wave, fileName:string):boolean
function ExportWaveAsCode(wave, fileName)
end
---Play a sound
---@type fun(sound:Sound)
function PlaySound(sound)
end
---Stop playing a sound
---@type fun(sound:Sound)
function StopSound(sound)
end
---Pause a sound
---@type fun(sound:Sound)
function PauseSound(sound)
end
---Resume a paused sound
---@type fun(sound:Sound)
function ResumeSound(sound)
end
---Check if a sound is currently playing
---@type fun(sound:Sound):boolean
function IsSoundPlaying(sound)
end
---Set volume for a sound (1.0 is max level)
---@type fun(sound:Sound, volume:number)
function SetSoundVolume(sound, volume)
end
---Set pitch for a sound (1.0 is base level)
---@type fun(sound:Sound, pitch:number)
function SetSoundPitch(sound, pitch)
end
---Set pan for a sound (0.5 is center)
---@type fun(sound:Sound, pan:number)
function SetSoundPan(sound, pan)
end
---Copy a wave to a new wave
---@type fun(wave:Wave):Wave
function WaveCopy(wave)
end
---Crop a wave to defined samples range
---@type fun(wave:Wave, initSample:number, finalSample:number)
function WaveCrop(wave, initSample, finalSample)
end
---Convert wave data to desired format
---@type fun(wave:Wave, sampleRate:number, sampleSize:number, channels:number)
function WaveFormat(wave, sampleRate, sampleSize, channels)
end
---Load samples data from wave as a 32bit number data array
---@type fun(wave:Wave):number
function LoadWaveSamples(wave)
end
---Unload samples data loaded with LoadWaveSamples()
---@type fun(samples:number)
function UnloadWaveSamples(samples)
end
---Load music stream from file
---@type fun(fileName:string):Music
function LoadMusicStream(fileName)
end
---Load music stream from data
---@type fun(fileType:string, data:string, dataSize:number):Music
function LoadMusicStreamFromMemory(fileType, data, dataSize)
end
---Checks if a music stream is ready
---@type fun(music:Music):boolean
function IsMusicReady(music)
end
---Unload music stream
---@type fun(music:Music)
function UnloadMusicStream(music)
end
---Start music playing
---@type fun(music:Music)
function PlayMusicStream(music)
end
---Check if music is playing
---@type fun(music:Music):boolean
function IsMusicStreamPlaying(music)
end
---Updates buffers for music streaming
---@type fun(music:Music)
function UpdateMusicStream(music)
end
---Stop music playing
---@type fun(music:Music)
function StopMusicStream(music)
end
---Pause music playing
---@type fun(music:Music)
function PauseMusicStream(music)
end
---Resume playing paused music
---@type fun(music:Music)
function ResumeMusicStream(music)
end
---Seek music to a position (in seconds)
---@type fun(music:Music, position:number)
function SeekMusicStream(music, position)
end
---Set volume for music (1.0 is max level)
---@type fun(music:Music, volume:number)
function SetMusicVolume(music, volume)
end
---Set pitch for a music (1.0 is base level)
---@type fun(music:Music, pitch:number)
function SetMusicPitch(music, pitch)
end
---Set pan for a music (0.5 is center)
---@type fun(music:Music, pan:number)
function SetMusicPan(music, pan)
end
---Get music time length (in seconds)
---@type fun(music:Music):number
function GetMusicTimeLength(music)
end
---Get current music time played (in seconds)
---@type fun(music:Music):number
function GetMusicTimePlayed(music)
end
---Load audio stream (to stream raw audio pcm data)
---@type fun(sampleRate:number, sampleSize:number, channels:number):AudioStream
function LoadAudioStream(sampleRate, sampleSize, channels)
end
---Checks if an audio stream is ready
---@type fun(stream:AudioStream):boolean
function IsAudioStreamReady(stream)
end
---Unload audio stream and free memory
---@type fun(stream:AudioStream)
function UnloadAudioStream(stream)
end
---Update audio stream buffers with data
---@type fun(stream:AudioStream, data:userdata, frameCount:number)
function UpdateAudioStream(stream, data, frameCount)
end
---Check if any audio stream buffers requires refill
---@type fun(stream:AudioStream):boolean
function IsAudioStreamProcessed(stream)
end
---Play audio stream
---@type fun(stream:AudioStream)
function PlayAudioStream(stream)
end
---Pause audio stream
---@type fun(stream:AudioStream)
function PauseAudioStream(stream)
end
---Resume audio stream
---@type fun(stream:AudioStream)
function ResumeAudioStream(stream)
end
---Check if audio stream is playing
---@type fun(stream:AudioStream):boolean
function IsAudioStreamPlaying(stream)
end
---Stop audio stream
---@type fun(stream:AudioStream)
function StopAudioStream(stream)
end
---Set volume for audio stream (1.0 is max level)
---@type fun(stream:AudioStream, volume:number)
function SetAudioStreamVolume(stream, volume)
end
---Set pitch for audio stream (1.0 is base level)
---@type fun(stream:AudioStream, pitch:number)
function SetAudioStreamPitch(stream, pitch)
end
---Set pan for audio stream (0.5 is centered)
---@type fun(stream:AudioStream, pan:number)
function SetAudioStreamPan(stream, pan)
end
---Default size for new audio streams
---@type fun(size:number)
function SetAudioStreamBufferSizeDefault(size)
end
---Clamps a value between a minimum and maximum range.
---@type fun(value:number, min:number, max:number):number
function Clamp(value, min, max)
end
---Calculate linear interpolation between two numbers
---@type fun(start:number, stop:number, amount:number):number
function Lerp(start, stop, amount)
end
---Normalize input value within input range
---@type fun(value:number, start:number, stop:number):number
function Normalize(value, start, stop)
end
---Remap input value within input range to output range
---@type fun(value:number, inputStart:number, inputEnd:number, outputStart:number, outputEnd:number):number
function Remap(value, inputStart, inputEnd, outputStart, outputEnd)
end
---Wrap input value from min to max
---@type fun(value:number, min:number, max:number):number
function Wrap(value, min, max)
end
---Check whether two given numbers are almost equal
---@type fun(x:number, y:number):number
function FloatEquals(x, y)
end
---Vector with components value 0.0f
---@type fun():Vector2
function Vector2Zero()
end
---Vector with components value 1.0f
---@type fun():Vector2
function Vector2One()
end
---Add two vectors (v1 + v2)
---@type fun(v1:Vector2, v2:Vector2):Vector2
function Vector2Add(v1, v2)
end
---Add vector and number value
---@type fun(v:Vector2, add:number):Vector2
function Vector2AddValue(v, add)
end
---Subtract two vectors (v1 - v2)
---@type fun(v1:Vector2, v2:Vector2):Vector2
function Vector2Subtract(v1, v2)
end
---Subtract vector by number value
---@type fun(v:Vector2, sub:number):Vector2
function Vector2SubtractValue(v, sub)
end
---Calculate vector length
---@type fun(v:Vector2):number
function Vector2Length(v)
end
---Calculate vector square length
---@type fun(v:Vector2):number
function Vector2LengthSqr(v)
end
---Calculate two vectors dot product
---@type fun(v1:Vector2, v2:Vector2):number
function Vector2DotProduct(v1, v2)
end
---Calculate distance between two vectors
---@type fun(v1:Vector2, v2:Vector2):number
function Vector2Distance(v1, v2)
end
---Calculate square distance between two vectors
---@type fun(v1:Vector2, v2:Vector2):number
function Vector2DistanceSqr(v1, v2)
end
---Calculate angle from two vectors
---@type fun(v1:Vector2, v2:Vector2):number
function Vector2Angle(v1, v2)
end
---Scale vector (multiply by value)
---@type fun(v:Vector2, scale:number):Vector2
function Vector2Scale(v, scale)
end
---Multiply vector by vector
---@type fun(v1:Vector2, v2:Vector2):Vector2
function Vector2Multiply(v1, v2)
end
---Negate vector
---@type fun(v:Vector2):Vector2
function Vector2Negate(v)
end
---Divide vector by vector
---@type fun(v1:Vector2, v2:Vector2):Vector2
function Vector2Divide(v1, v2)
end
---Normalize provided vector
---@type fun(v:Vector2):Vector2
function Vector2Normalize(v)
end
---Transforms a Vector2 by a given Matrix
---@type fun(v:Vector2, mat:Matrix):Vector2
function Vector2Transform(v, mat)
end
---Calculate linear interpolation between two vectors
---@type fun(v1:Vector2, v2:Vector2, amount:number):Vector2
function Vector2Lerp(v1, v2, amount)
end
---Calculate reflected vector to normal
---@type fun(v:Vector2, normal:Vector2):Vector2
function Vector2Reflect(v, normal)
end
---Rotate vector by angle
---@type fun(v:Vector2, angle:number):Vector2
function Vector2Rotate(v, angle)
end
---Move Vector towards target
---@type fun(v:Vector2, target:Vector2, maxDistance:number):Vector2
function Vector2MoveTowards(v, target, maxDistance)
end
---Invert the given vector
---@type fun(v:Vector2):Vector2
function Vector2Invert(v)
end
---Clamp the components of the vector between min and max values specified by the given vectors
---@type fun(v:Vector2, min:Vector2, max:Vector2):Vector2
function Vector2Clamp(v, min, max)
end
---Clamp the magnitude of the vector between two min and max values
---@type fun(v:Vector2, min:number, max:number):Vector2
function Vector2ClampValue(v, min, max)
end
---Check whether two given vectors are almost equal
---@type fun(p:Vector2, q:Vector2):number
function Vector2Equals(p, q)
end
---Vector with components value 0.0f
---@type fun():Vector3
function Vector3Zero()
end
---Vector with components value 1.0f
---@type fun():Vector3
function Vector3One()
end
---Add two vectors
---@type fun(v1:Vector3, v2:Vector3):Vector3
function Vector3Add(v1, v2)
end
---Add vector and number value
---@type fun(v:Vector3, add:number):Vector3
function Vector3AddValue(v, add)
end
---Subtract two vectors
---@type fun(v1:Vector3, v2:Vector3):Vector3
function Vector3Subtract(v1, v2)
end
---Subtract vector by number value
---@type fun(v:Vector3, sub:number):Vector3
function Vector3SubtractValue(v, sub)
end
---Multiply vector by scalar
---@type fun(v:Vector3, scalar:number):Vector3
function Vector3Scale(v, scalar)
end
---Multiply vector by vector
---@type fun(v1:Vector3, v2:Vector3):Vector3
function Vector3Multiply(v1, v2)
end
---Calculate two vectors cross product
---@type fun(v1:Vector3, v2:Vector3):Vector3
function Vector3CrossProduct(v1, v2)
end
---Calculate one vector perpendicular vector
---@type fun(v:Vector3):Vector3
function Vector3Perpendicular(v)
end
---Calculate vector length
---@type fun(vector:Vector3):number
function Vector3Length(Vector3)
end
---Calculate vector square length
---@type fun(vector:Vector3):number
function Vector3LengthSqr(vector)
end
---Calculate two vectors dot product
---@type fun(v1:Vector3, v2:Vector3):number
function Vector3DotProduct(v1, v2)
end
---Calculate distance between two vectors
---@type fun(v1:Vector3, v2:Vector3):number
function Vector3Distance(v1, v2)
end
---Calculate square distance between two vectors
---@type fun(v1:Vector3, v2:Vector3):number
function Vector3DistanceSqr(v1, v2)
end
---Calculate angle between two vectors
---@type fun(v1:Vector3, v2:Vector3):number
function Vector3Angle(v1, v2)
end
---Negate provided vector (invert direction)
---@type fun(v:Vector3):Vector3
function Vector3Negate(v)
end
---Divide vector by vector
---@type fun(v1:Vector3, v2:Vector3):Vector3
function Vector3Divide(v1, v2)
end
---Normalize provided vector
---@type fun(v:Vector3):Vector3
function Vector3Normalize(v)
end
---Orthonormalize provided vectors Makes vectors normalized and orthogonal to each other Gram-Schmidt function implementation
---@type fun(v1:Vector3, v2:Vector3)
function Vector3OrthoNormalize(v1, v2)
end
---Transforms a Vector3 by a given Matrix
---@type fun(v:Vector3, mat:Matrix):Vector3
function Vector3Transform(v, mat)
end
---Transform a vector by quaternion rotation
---@type fun(v:Vector3, q:Quaternion):Vector3
function Vector3RotateByQuaternion(v, q)
end
---Rotates a vector around an axis
---@type fun(v:Vector3, axis:Vector3, angle:number):Vector3
function Vector3RotateByAxisAngle(v, axis, angle)
end
---Calculate linear interpolation between two vectors
---@type fun(v1:Vector3, v2:Vector3, amount:number):Vector3
function Vector3Lerp(v1, v2, amount)
end
---Calculate reflected vector to normal
---@type fun(v:Vector3, normal:Vector3):Vector3
function Vector3Reflect(v, normal)
end
---Get min value for each pair of components
---@type fun(v1:Vector3, v2:Vector3):Vector3
function Vector3Min(v1, v2)
end
---Get max value for each pair of components
---@type fun(v1:Vector3, v2:Vector3):Vector3
function Vector3Max(v1, v2)
end
---Compute barycenter coordinates (u, v, w) for point p with respect to triangle (a, b, c) NOTE: Assumes P is on the plane of the triangle
---@type fun(p:Vector3, a:Vector3, b:Vector3, c:Vector3):Vector3
function Vector3Barycenter(p, a, b, c)
end
---Projects a Vector3 from screen space into object space NOTE: We are auserdataing calling other raymath functions despite available
---@type fun(source:Vector3, projection:Matrix, view:Matrix):Vector3
function Vector3Unproject(source, projection, view)
end
---Get Vector3 as number array
---@type fun(v:Vector3):number
function Vector3ToFloatV(v)
end
---Invert the given vector
---@type fun(v:Vector3):Vector3
function Vector3Invert(v)
end
---Clamp the components of the vector between min and max values specified by the given vectors
---@type fun(v:Vector3, min:Vector3, max:Vector3):Vector3
function Vector3Clamp(v, min, max)
end
---Clamp the magnitude of the vector between two values
---@type fun(v:Vector3, min:number, max:number):Vector3
function Vector3ClampValue(v, min, max)
end
---Check whether two given vectors are almost equal
---@type fun(p:Vector3, q:Vector3):number
function Vector3Equals(p, q)
end
---Compute the direction of a refracted ray where v specifies the normalized direction of the incoming ray, n specifies the normalized normal vector of the interface of two optical media, and r specifies the ratio of the refractive index of the medium from where the ray comes to the refractive index of the medium on the other side of the surface
---@type fun(v:Vector3, n:Vector3, r:number):Vector3
function Vector3Refract(v, n, r)
end
---Compute matrix determinant
---@type fun(mat:Matrix):number
function MatrixDeterminant(mat)
end
---Get the trace of the matrix (sum of the values anumber the diagonal)
---@type fun(mat:Matrix):number
function MatrixTrace(mat)
end
---Transposes provided matrix
---@type fun(mat:Matrix):Matrix
function MatrixTranspose(mat)
end
---Invert provided matrix
---@type fun(mat:Matrix):Matrix
function MatrixInvert(mat)
end
---Get identity matrix
---@type fun():Matrix
function MatrixIdentity()
end
---Add two matrices
---@type fun(left:Matrix, right:Matrix):Matrix
function MatrixAdd(left, right)
end
---Subtract two matrices (left - right)
---@type fun(left:Matrix, right:Matrix):Matrix
function MatrixSubtract(left, right)
end
---Get two matrix multiplication NOTE: When multiplying matrices... the order matters!
---@type fun(left:Matrix, right:Matrix):Matrix
function MatrixMultiply(left, right)
end
---Get translation matrix
---@type fun(x:number, y:number, z:number):Matrix
function MatrixTranslate(x, y, z)
end
---Create rotation matrix from axis and angle NOTE: Angle should be provided in radians
---@type fun(axis:Vector3, angle:number):Matrix
function MatrixRotate(axis, angle)
end
---Get x-rotation matrix NOTE: Angle must be provided in radians
---@type fun(angle:number):Matrix
function MatrixRotateX(angle)
end
---Get y-rotation matrix NOTE: Angle must be provided in radians
---@type fun(angle:number):Matrix
function MatrixRotateY(angle)
end
---Get z-rotation matrix NOTE: Angle must be provided in radians
---@type fun(angle:number):Matrix
function MatrixRotateZ(angle)
end
---Get xyz-rotation matrix NOTE: Angle must be provided in radians
---@type fun(angle:Vector3):Matrix
function MatrixRotateXYZ(angle)
end
---Get zyx-rotation matrix NOTE: Angle must be provided in radians
---@type fun(angle:Vector3):Matrix
function MatrixRotateZYX(angle)
end
---Get scaling matrix
---@type fun(x:number, y:number, z:number):Matrix
function MatrixScale(x, y, z)
end
---Get perspective projection matrix
---@type fun(left:number, right:number, bottom:number, top:number, near:number, far:number):Matrix
function MatrixFrustum(left, right, bottom, top, near, far)
end
---Get perspective projection matrix NOTE: Fovy angle must be provided in radians
---@type fun(fovy:number, aspect:number, near:number, far:number):Matrix
function MatrixPerspective(fovy, aspect, near, far)
end
---Get orthographic projection matrix
---@type fun(left:number, right:number, bottom:number, top:number, near:number, far:number):Matrix
function MatrixOrtho(left, right, bottom, top, near, far)
end
---Get camera look-at matrix (view matrix)
---@type fun(eye:Vector3, target:Vector3, up:Vector3):Matrix
function MatrixLookAt(eye, target, up)
end
---Get number array of matrix data
---@type fun(mat:Matrix):number[]
function MatrixToFloatV(mat)
end
---Add two quaternions
---@type fun(q1:Quaternion, q2:Quaternion):Quaternion
function QuaternionAdd(q1, q2)
end
---Add quaternion and number value
---@type fun(q:Quaternion, add:number):Quaternion
function QuaternionAddValue(q, add)
end
---Subtract two quaternions
---@type fun(q1:Quaternion, q2:Quaternion):Quaternion
function QuaternionSubtract(q1, q2)
end
---Subtract quaternion and number value
---@type fun(q:Quaternion, sub:number):Quaternion
function QuaternionSubtractValue(q, sub)
end
---Get identity quaternion
---@type fun():Quaternion
function QuaternionIdentity()
end
---Computes the length of a quaternion
---@type fun(q:Quaternion):number
function QuaternionLength(q)
end
---Normalize provided quaternion
---@type fun(q:Quaternion):Quaternion
function QuaternionNormalize(q)
end
---Invert provided quaternion
---@type fun(q:Quaternion):Quaternion
function QuaternionInvert(q)
end
---Calculate two quaternion multiplication
---@type fun(q1:Quaternion, q2:Quaternion):Quaternion
function QuaternionMultiply(q1, q2)
end
---Scale quaternion by number value
---@type fun(q:Quaternion, mul:number):Quaternion
function QuaternionScale(q, mul)
end
---Divide two quaternions
---@type fun(q1:Quaternion, q2:Quaternion):Quaternion
function QuaternionDivide(q1, q2)
end
---Calculate linear interpolation between two quaternions
---@type fun(q1:Quaternion, q2:Quaternion, amount:number):Quaternion
function QuaternionLerp(q1, q2, amount)
end
---Calculate slerp-optimized interpolation between two quaternions
---@type fun(q1:Quaternion, q2:Quaternion, amount:number):Quaternion
function QuaternionNlerp(q1, q2, amount)
end
---Calculates spherical linear interpolation between two quaternions
---@type fun(q1:Quaternion, q2:Quaternion, amount:number):Quaternion
function QuaternionSlerp(q1, q2, amount)
end
---Calculate quaternion based on the rotation from one vector to another
---@type fun(from:Vector3, to:Vector3):Quaternion
function QuaternionFromVector3ToVector3(from, to)
end
---Get a quaternion for a given rotation matrix
---@type fun(mat:Matrix):Quaternion
function QuaternionFromMatrix(mat)
end
---Get a matrix for a given quaternion
---@type fun(q:Quaternion):Matrix
function QuaternionToMatrix(q)
end
---Get rotation quaternion for an angle and axis NOTE: Angle must be provided in radians
---@type fun(axis:Vector3, angle:number):Quaternion
function QuaternionFromAxisAngle(axis, angle)
end
---Get the rotation angle and axis for a given quaternion
---@type fun(q:Quaternion, outAxis:Vector3, outAngle:number)
function QuaternionToAxisAngle(q)
end
---Get the quaternion equivalent to Euler angles NOTE: Rotation order is ZYX
---@type fun(pitch:number, yaw:number, roll:number):Quaternion
function QuaternionFromEuler(pitch, yaw, roll)
end
---Get the Euler angles equivalent to quaternion (roll, pitch, yaw) NOTE: Angles are returned in a Vector3 struct in radians
---@type fun(q:Quaternion):Vector3
function QuaternionToEuler(q)
end
---Transform a quaternion given a transformation matrix
---@type fun(q:Quaternion, mat:Matrix):Quaternion
function QuaternionTransform(q, mat)
end
---Check whether two given quaternions are almost equal
---@type fun(p:Quaternion, q:Quaternion):number
function QuaternionEquals(p, q)
end
---Enable gui controls (global state)
---@type fun()
function GuiEnable()
end
---Disable gui controls (global state)
---@type fun()
function GuiDisable()
end
---Lock gui controls (global state)
---@type fun()
function GuiLock()
end
---Unlock gui controls (global state)
---@type fun()
function GuiUnlock()
end
---Check if gui is locked (global state)
---@type fun():boolean
function GuiIsLocked()
end
---Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
---@type fun(alpha:number)
function GuiSetAlpha(alpha)
end
---Set gui state (global state)
---@type fun(state:GuiState)
function GuiSetState(state)
end
---Get gui state (global state)
---@type fun():GuiState
function GuiGetState()
end
---Set gui custom font (global state)
---@type fun(font:Font)
function GuiSetFont(font)
end
---Get gui custom font (global state)
---@type fun():Font
function GuiGetFont()
end
---Set one style property
---@type fun(control:GuiControl, property:GuiProperty, value:number)
function GuiSetStyle(control, property, value)
end
---Get one style property
---@type fun(control:GuiControl, property:GuiProperty):number
function GuiGetStyle(control, property)
end
---Load style file over global style variable (.rgs)
---@type fun(fileName:string)
function GuiLoadStyle(fileName)
end
---Load style default over global style
---@type fun()
function GuiLoadStyleDefault()
end
---Enable gui tooltips (global state)
---@type fun()
function GuiEnableTooltip()
end
---Disable gui tooltips (global state)
---@type fun()
function GuiDisableTooltip()
end
---Set tooltip string
---@type fun(tooltip:string)
function GuiSetTooltip(tooltip)
end
---Get text with icon id prepended (if supported)
---@type fun(iconId:GuiIconName, text:string|nil):string
function GuiIconText(iconId, text)
end
---Set default icon drawing size
---@type fun(scale:number)
function GuiSetIconScale(scale)
end
---Get raygui icons data ponumberer
---@type fun():number
function GuiGetIcons()
end
---Load raygui icons file (.rgi) numbero numberernal icons data
---@type fun(fileName:string, loadIconsName:boolean):string
function GuiLoadIcons(fileName, loadIconsName)
end
---Draw icon using pixel size at specified position
---@type fun(iconId:GuiIconName, posX:number, posY:number, pixelSize:number, color:Color)
function GuiDrawIcon(iconId, posX, posY, pixelSize, color)
end
---Window Box control, shows a window that can be closed
---@type fun(bounds:Rectangle, title:string):boolean
function GuiWindowBox(bounds, title)
end
---Group Box control with text name
---@type fun(bounds:Rectangle, text:string):number
function GuiGroupBox(bounds, text)
end
---Line separator control, could contain text
---@type fun(bounds:Rectangle, text:string):number
function GuiLine(bounds, text)
end
---Panel control, useful to group controls
---@type fun(bounds:Rectangle, text:string|nil):number
function GuiPanel(bounds, text)
end
---Tab Bar control, returns TAB to be closed or -1
---@type fun(bounds:Rectangle, text:string, count:number, active:number):number
function GuiTabBar(bounds, text, count, active)
end
---Scroll Panel control
---@type fun(bounds:Rectangle, text:string, content:Rectangle, scroll:Vector2, view:Rectangle):number
function GuiScrollPanel(bounds, text, content, scroll, view)
end
---Label control
---@type fun(bounds:Rectangle, text:string):number
function GuiLabel(bounds, text)
end
---Button control, returns true when clicked
---@type fun(bounds:Rectangle, text:string):boolean
function GuiButton(bounds, text)
end
---Label button control, returns true when clicked
---@type fun(bounds:Rectangle, text:string):boolean
function GuiLabelButton(bounds, text)
end
---Toggle Button control
---@type fun(bounds:Rectangle, text:string, active:boolean):number
function GuiToggle(bounds, text, active)
end
---Toggle Group control
---@type fun(bounds:Rectangle, text:string, active:number):number
function GuiToggleGroup(bounds, text, active)
end
---Toggle Slider control
---@type fun(bounds:Rectangle, text:string, active:number):number
function GuiToggleSlider(bounds, text, active)
end
---Check Box control, returns true when active
---@type fun(bounds:Rectangle, text:string, checked:boolean):number
function GuiCheckBox(bounds, text, checked)
end
---Combo Box control
---@type fun(bounds:Rectangle, text:string, active:number):number
function GuiComboBox(bounds, text, active)
end
---Dropdown Box control
---@type fun(bounds:Rectangle, text:string, active:number, editMode:boolean):number
function GuiDropdownBox(bounds, text, active, editMode)
end
---Spinner control
---@type fun(bounds:Rectangle, text:string, value:number, minValue:number, maxValue:number, editMode:boolean):number
function GuiSpinner(bounds, text, value, minValue, maxValue, editMode)
end
---Value Box control, updates input text with numbers
---@type fun(bounds:Rectangle, text:string, value:number, minValue:number, maxValue:number, editMode:boolean):number
function GuiValueBox(bounds, text, value, minValue, maxValue, editMode)
end
---Value box control for values:number
---@type fun(bounds:Rectangle, text:string, textValue:string, value:number, editMode:boolean):number
function GuiValueBoxFloat(bounds, text, textValue, value, editMode)
end
---Text Box control, updates input text
---@type fun(bounds:Rectangle, text:string, textSize:number, editMode:boolean):number
function GuiTextBox(bounds, text, textSize, editMode)
end
---Slider control
---@type fun(bounds:Rectangle, textLeft:string, textRight:string, value:number, minValue:number, maxValue:number):number
function GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue)
end
---Slider Bar control
---@type fun(bounds:Rectangle, textLeft:string, textRight:string, value:number, minValue:number, maxValue:number):number
function GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue)
end
---Progress Bar control
---@type fun(bounds:Rectangle, textLeft:string, textRight:string, value:number, minValue:number, maxValue:number):number
function GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue)
end
---Status Bar control, shows info text
---@type fun(bounds:Rectangle, text:string):number
function GuiStatusBar(bounds, text)
end
---Dummy control for placeholders
---@type fun(bounds:Rectangle, text:string):number
function GuiDummyRec(bounds, text)
end
---Grid control
---@type fun(bounds:Rectangle, text:string, spacing:number, subdivs:number, mouseCell:Vector2):number
function GuiGrid(bounds, text, spacing, subdivs, mouseCell)
end
---List View control
---@type fun(bounds:Rectangle, text:string, scrollIndex:number, active:number):number
function GuiListView(bounds, text, scrollIndex, active)
end
---List View with extended parameters
---@type fun(bounds:Rectangle, text:string, count:number, scrollIndex:number, active:number, focus:number):number
function GuiListViewEx(bounds, text, count, scrollIndex, active, focus)
end
---Message Box control, displays a message
---@type fun(bounds:Rectangle, title:string, message:string, buttons:string):number
function GuiMessageBox(bounds, title, message, buttons)
end
---Text Input Box control, ask for text, supports secret
---@type fun(bounds:Rectangle, title:string, message:string, buttons:string, text:string, textMaxSize:number, secretViewActive:boolean):number
function GuiTextInputBox(bounds, title, message, buttons, text, textMaxSize, secretViewActive)
end
---Color Picker control (multiple color controls)
---@type fun(bounds:Rectangle, text:string, color:Color):number
function GuiColorPicker(bounds, text, color)
end
---Color Panel control
---@type fun(bounds:Rectangle, text:string, color:Color):number
function GuiColorPanel(bounds, text, color)
end
---Color Bar Alpha control
---@type fun(bounds:Rectangle, text:string, alpha:number):number
function GuiColorBarAlpha(bounds, text, alpha)
end
---Color Bar Hue control
---@type fun(bounds:Rectangle, text:string, value:number):number
function GuiColorBarHue(bounds, text, value)
end
---Color Picker control that as conversion to RGB on each call (multiple color controls)
---@type fun(bounds:Rectangle, text:string, colorHsv:Vector3):number
function GuiColorPickerHSV(bounds, text, colorHsv)
end
---Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV()
---@type fun(bounds:Rectangle, text:string, colorHsv:Vector3):number
function GuiColorPanelHSV(bounds, text, colorHsv)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment