-- Put this file into your project folder to provide annotations when using Lua language server. RL={} -- Functions. ---This function will be called first when 'main.lua' is found function RL.init() end ---This function will be called every frame during execution. It will get time duration from last frame on argument 'delta' ---@param delta number function RL.process( delta ) end ---This function will be called every frame after process and it should have all rendering related functions. Note: Engine will call Raylib functions 'BeginDrawing()' before this function call and 'EndDrawing()' after it. You can still use RL.BeginDrawing() and RL.EndDrawing() manually from anywhere. function RL.draw() end ---This function can be used for custom log message handling. ---@param logLevel integer ---@param message string function RL.log( logLevel, message ) end ---This function will be called on program close. Cleanup could be done here. function RL.exit() end -- Globals - ConfigFlags RL.FLAG_VSYNC_HINT=64 RL.FLAG_FULLSCREEN_MODE=2 RL.FLAG_WINDOW_RESIZABLE=4 RL.FLAG_WINDOW_UNDECORATED=8 RL.FLAG_WINDOW_HIDDEN=128 RL.FLAG_WINDOW_MINIMIZED=512 RL.FLAG_WINDOW_MAXIMIZED=1024 RL.FLAG_WINDOW_UNFOCUSED=2048 RL.FLAG_WINDOW_TOPMOST=4096 RL.FLAG_WINDOW_ALWAYS_RUN=256 RL.FLAG_WINDOW_TRANSPARENT=16 RL.FLAG_WINDOW_HIGHDPI=8192 RL.FLAG_MSAA_4X_HINT=32 RL.FLAG_INTERLACED_HINT=65536 -- Globals - TraceLogLevel RL.LOG_ALL=0 RL.LOG_TRACE=1 RL.LOG_DEBUG=2 RL.LOG_INFO=3 RL.LOG_WARNING=4 RL.LOG_ERROR=5 RL.LOG_FATAL=6 RL.LOG_NONE=7 -- Globals - KeyboardKey RL.GLFW_KEY_UNKNOWN=nil RL.KEY_NULL=0 RL.KEY_APOSTROPHE=39 RL.KEY_COMMA=44 RL.KEY_MINUS=45 RL.KEY_PERIOD=46 RL.KEY_SLASH=47 RL.KEY_ZERO=48 RL.KEY_ONE=49 RL.KEY_TWO=50 RL.KEY_THREE=51 RL.KEY_FOUR=52 RL.KEY_FIVE=53 RL.KEY_SIX=54 RL.KEY_SEVEN=55 RL.KEY_EIGHT=56 RL.KEY_NINE=57 RL.KEY_SEMICOLON=59 RL.KEY_EQUAL=61 RL.KEY_A=65 RL.KEY_B=66 RL.KEY_C=67 RL.KEY_D=68 RL.KEY_E=69 RL.KEY_F=70 RL.KEY_G=71 RL.KEY_H=72 RL.KEY_I=73 RL.KEY_J=74 RL.KEY_K=75 RL.KEY_L=76 RL.KEY_M=77 RL.KEY_N=78 RL.KEY_O=79 RL.KEY_P=80 RL.KEY_Q=81 RL.KEY_R=82 RL.KEY_S=83 RL.KEY_T=84 RL.KEY_U=85 RL.KEY_V=86 RL.KEY_W=87 RL.KEY_X=88 RL.KEY_Y=89 RL.KEY_Z=90 RL.KEY_LEFT_BRACKET=91 RL.KEY_BACKSLASH=92 RL.KEY_RIGHT_BRACKET=93 RL.KEY_GRAVE=96 RL.KEY_SPACE=32 RL.KEY_ESCAPE=256 RL.KEY_ENTER=257 RL.KEY_TAB=258 RL.KEY_BACKSPACE=259 RL.KEY_INSERT=260 RL.KEY_DELETE=261 RL.KEY_RIGHT=262 RL.KEY_LEFT=263 RL.KEY_DOWN=264 RL.KEY_UP=265 RL.KEY_PAGE_UP=266 RL.KEY_PAGE_DOWN=267 RL.KEY_HOME=268 RL.KEY_END=269 RL.KEY_CAPS_LOCK=280 RL.KEY_SCROLL_LOCK=281 RL.KEY_NUM_LOCK=282 RL.KEY_PRINT_SCREEN=283 RL.KEY_PAUSE=284 RL.KEY_F1=290 RL.KEY_F2=291 RL.KEY_F3=292 RL.KEY_F4=293 RL.KEY_F5=294 RL.KEY_F6=295 RL.KEY_F7=296 RL.KEY_F8=297 RL.KEY_F9=298 RL.KEY_F10=299 RL.KEY_F11=300 RL.KEY_F12=301 RL.KEY_LEFT_SHIFT=340 RL.KEY_LEFT_CONTROL=341 RL.KEY_LEFT_ALT=342 RL.KEY_LEFT_SUPER=343 RL.KEY_RIGHT_SHIFT=344 RL.KEY_RIGHT_CONTROL=345 RL.KEY_RIGHT_ALT=346 RL.KEY_RIGHT_SUPER=347 RL.KEY_KB_MENU=348 RL.KEY_KP_0=320 RL.KEY_KP_1=321 RL.KEY_KP_2=322 RL.KEY_KP_3=323 RL.KEY_KP_4=324 RL.KEY_KP_5=325 RL.KEY_KP_6=326 RL.KEY_KP_7=327 RL.KEY_KP_8=328 RL.KEY_KP_9=329 RL.KEY_KP_DECIMAL=330 RL.KEY_KP_DIVIDE=331 RL.KEY_KP_MULTIPLY=332 RL.KEY_KP_SUBTRACT=333 RL.KEY_KP_ADD=334 RL.KEY_KP_ENTER=335 RL.KEY_KP_EQUAL=336 RL.KEY_BACK=4 RL.KEY_MENU=82 RL.KEY_VOLUME_UP=24 RL.KEY_VOLUME_DOWN=25 -- Globals - MouseButtons RL.MOUSE_BUTTON_LEFT=0 RL.MOUSE_BUTTON_RIGHT=1 RL.MOUSE_BUTTON_MIDDLE=2 RL.MOUSE_BUTTON_SIDE=3 RL.MOUSE_BUTTON_EXTRA=4 RL.MOUSE_BUTTON_FORWARD=5 RL.MOUSE_BUTTON_BACK=6 -- Globals - MouseCursor RL.MOUSE_CURSOR_DEFAULT=0 RL.MOUSE_CURSOR_ARROW=1 RL.MOUSE_CURSOR_IBEAM=2 RL.MOUSE_CURSOR_CROSSHAIR=3 RL.MOUSE_CURSOR_POINTING_HAND=4 RL.MOUSE_CURSOR_RESIZE_EW=5 RL.MOUSE_CURSOR_RESIZE_NS=6 RL.MOUSE_CURSOR_RESIZE_NWSE=7 RL.MOUSE_CURSOR_RESIZE_NESW=8 RL.MOUSE_CURSOR_RESIZE_ALL=9 RL.MOUSE_CURSOR_NOT_ALLOWED=10 -- Globals - GamepadButtons RL.GAMEPAD_BUTTON_UNKNOWN=0 RL.GAMEPAD_BUTTON_LEFT_FACE_UP=1 RL.GAMEPAD_BUTTON_LEFT_FACE_RIGHT=2 RL.GAMEPAD_BUTTON_LEFT_FACE_DOWN=3 RL.GAMEPAD_BUTTON_LEFT_FACE_LEFT=4 RL.GAMEPAD_BUTTON_RIGHT_FACE_UP=5 RL.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT=6 RL.GAMEPAD_BUTTON_RIGHT_FACE_DOWN=7 RL.GAMEPAD_BUTTON_RIGHT_FACE_LEFT=8 RL.GAMEPAD_BUTTON_LEFT_TRIGGER_1=9 RL.GAMEPAD_BUTTON_LEFT_TRIGGER_2=10 RL.GAMEPAD_BUTTON_RIGHT_TRIGGER_1=11 RL.GAMEPAD_BUTTON_RIGHT_TRIGGER_2=12 RL.GAMEPAD_BUTTON_MIDDLE_LEFT=13 RL.GAMEPAD_BUTTON_MIDDLE=14 RL.GAMEPAD_BUTTON_MIDDLE_RIGHT=15 RL.GAMEPAD_BUTTON_LEFT_THUMB=16 RL.GAMEPAD_BUTTON_RIGHT_THUMB=17 -- Globals - GamepadAxis RL.GAMEPAD_AXIS_LEFT_X=0 RL.GAMEPAD_AXIS_LEFT_Y=1 RL.GAMEPAD_AXIS_RIGHT_X=2 RL.GAMEPAD_AXIS_RIGHT_Y=3 RL.GAMEPAD_AXIS_LEFT_TRIGGER=4 RL.GAMEPAD_AXIS_RIGHT_TRIGGER=5 -- Globals - MapTypes RL.MATERIAL_MAP_ALBEDO=0 RL.MATERIAL_MAP_METALNESS=1 RL.MATERIAL_MAP_NORMAL=2 RL.MATERIAL_MAP_ROUGHNESS=3 RL.MATERIAL_MAP_OCCLUSION=4 RL.MATERIAL_MAP_EMISSION=5 RL.MATERIAL_MAP_HEIGHT=6 RL.MATERIAL_MAP_CUBEMAP=7 RL.MATERIAL_MAP_IRRADIANCE=8 RL.MATERIAL_MAP_PREFILTER=9 RL.MATERIAL_MAP_BRDF=10 RL.MATERIAL_MAP_DIFFUSE=0 RL.MATERIAL_MAP_SPECULAR=1 -- Globals - ShaderLocationIndex RL.SHADER_LOC_VERTEX_POSITION=0 RL.SHADER_LOC_VERTEX_TEXCOORD01=1 RL.SHADER_LOC_VERTEX_TEXCOORD02=2 RL.SHADER_LOC_VERTEX_NORMAL=3 RL.SHADER_LOC_VERTEX_TANGENT=4 RL.SHADER_LOC_VERTEX_COLOR=5 RL.SHADER_LOC_MATRIX_MVP=6 RL.SHADER_LOC_MATRIX_VIEW=7 RL.SHADER_LOC_MATRIX_PROJECTION=8 RL.SHADER_LOC_MATRIX_MODEL=9 RL.SHADER_LOC_MATRIX_NORMAL=10 RL.SHADER_LOC_VECTOR_VIEW=11 RL.SHADER_LOC_COLOR_DIFFUSE=12 RL.SHADER_LOC_COLOR_SPECULAR=13 RL.SHADER_LOC_COLOR_AMBIENT=14 RL.SHADER_LOC_MAP_ALBEDO=15 RL.SHADER_LOC_MAP_METALNESS=16 RL.SHADER_LOC_MAP_NORMAL=17 RL.SHADER_LOC_MAP_ROUGHNESS=18 RL.SHADER_LOC_MAP_OCCLUSION=19 RL.SHADER_LOC_MAP_EMISSION=20 RL.SHADER_LOC_MAP_HEIGHT=21 RL.SHADER_LOC_MAP_CUBEMAP=22 RL.SHADER_LOC_MAP_IRRADIANCE=23 RL.SHADER_LOC_MAP_PREFILTER=24 RL.SHADER_LOC_MAP_BRDF=25 RL.SHADER_LOC_MAP_DIFFUSE=15 RL.SHADER_LOC_MAP_SPECULAR=16 -- Globals - ShaderUniformDataType RL.SHADER_UNIFORM_FLOAT=0 RL.SHADER_UNIFORM_VEC2=1 RL.SHADER_UNIFORM_VEC3=2 RL.SHADER_UNIFORM_VEC4=3 RL.SHADER_UNIFORM_INT=4 RL.SHADER_UNIFORM_IVEC2=5 RL.SHADER_UNIFORM_IVEC3=6 RL.SHADER_UNIFORM_IVEC4=7 RL.SHADER_UNIFORM_SAMPLER2D=8 -- Globals - ShaderAttributeDataTypes RL.SHADER_ATTRIB_FLOAT=0 RL.SHADER_ATTRIB_VEC2=1 RL.SHADER_ATTRIB_VEC3=2 RL.SHADER_ATTRIB_VEC4=3 -- Globals - PixelFormats RL.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE=1 RL.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA=2 RL.PIXELFORMAT_UNCOMPRESSED_R5G6B5=3 RL.PIXELFORMAT_UNCOMPRESSED_R8G8B8=4 RL.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1=5 RL.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4=6 RL.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8=7 RL.PIXELFORMAT_UNCOMPRESSED_R32=8 RL.PIXELFORMAT_UNCOMPRESSED_R32G32B32=9 RL.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32=10 RL.PIXELFORMAT_COMPRESSED_DXT1_RGB=11 RL.PIXELFORMAT_COMPRESSED_DXT1_RGBA=12 RL.PIXELFORMAT_COMPRESSED_DXT3_RGBA=13 RL.PIXELFORMAT_COMPRESSED_DXT5_RGBA=14 RL.PIXELFORMAT_COMPRESSED_ETC1_RGB=15 RL.PIXELFORMAT_COMPRESSED_ETC2_RGB=16 RL.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA=17 RL.PIXELFORMAT_COMPRESSED_PVRT_RGB=18 RL.PIXELFORMAT_COMPRESSED_PVRT_RGBA=19 RL.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA=20 RL.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA=21 -- Globals - TextureFilters RL.TEXTURE_FILTER_POINT=0 RL.TEXTURE_FILTER_BILINEAR=1 RL.TEXTURE_FILTER_TRILINEAR=2 RL.TEXTURE_FILTER_ANISOTROPIC_4X=3 RL.TEXTURE_FILTER_ANISOTROPIC_8X=4 RL.TEXTURE_FILTER_ANISOTROPIC_16X=5 -- Globals - TextureWrap RL.TEXTURE_WRAP_REPEAT=0 RL.TEXTURE_WRAP_CLAMP=1 RL.TEXTURE_WRAP_MIRROR_REPEAT=2 RL.TEXTURE_WRAP_MIRROR_CLAMP=3 -- Globals - CubemapLayout RL.CUBEMAP_LAYOUT_AUTO_DETECT=0 RL.CUBEMAP_LAYOUT_LINE_VERTICAL=1 RL.CUBEMAP_LAYOUT_LINE_HORIZONTAL=2 RL.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR=3 RL.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE=4 RL.CUBEMAP_LAYOUT_PANORAMA=5 -- Globals - FontType RL.FONT_DEFAULT=0 RL.FONT_BITMAP=1 RL.FONT_SDF=2 -- Globals - BlendModes RL.BLEND_ALPHA=0 RL.BLEND_ADDITIVE=1 RL.BLEND_MULTIPLIED=2 RL.BLEND_ADD_COLORS=3 RL.BLEND_SUBTRACT_COLORS=4 RL.BLEND_ALPHA_PREMULTIPLY=5 RL.BLEND_CUSTOM=6 RL.BLEND_CUSTOM_SEPARATE=7 -- Globals - Gesture RL.GESTURE_NONE=0 RL.GESTURE_TAP=1 RL.GESTURE_DOUBLETAP=2 RL.GESTURE_HOLD=4 RL.GESTURE_DRAG=8 RL.GESTURE_SWIPE_RIGHT=16 RL.GESTURE_SWIPE_LEFT=32 RL.GESTURE_SWIPE_UP=64 RL.GESTURE_SWIPE_DOWN=128 RL.GESTURE_PINCH_IN=256 RL.GESTURE_PINCH_OUT=512 -- Globals - CameraMode RL.CAMERA_CUSTOM=0 RL.CAMERA_FREE=1 RL.CAMERA_ORBITAL=2 RL.CAMERA_FIRST_PERSON=3 RL.CAMERA_THIRD_PERSON=4 -- Globals - CameraProjections RL.CAMERA_PERSPECTIVE=0 RL.CAMERA_ORTHOGRAPHIC=1 -- Globals - N-patchLayout RL.NPATCH_NINE_PATCH=0 RL.NPATCH_THREE_PATCH_VERTICAL=1 RL.NPATCH_THREE_PATCH_HORIZONTAL=2 -- Globals - TextureModes RL.TEXTURE_SOURCE_TEXTURE=0 RL.TEXTURE_SOURCE_RENDER_TEXTURE=1 -- Globals - Colors RL.LIGHTGRAY={200,200,200,255} RL.GRAY={130,130,130,255} RL.DARKGRAY={80,80,80,255} RL.YELLOW={253,249,0,255} RL.GOLD={255,203,0,255} RL.ORANGE={255,161,0,255} RL.PINK={255,109,194,255} RL.RED={230,41,55,255} RL.MAROON={190,33,55,255} RL.GREEN={0,228,48,255} RL.LIME={0,158,47,255} RL.DARKGREEN={0,117,44,255} RL.SKYBLUE={102,191,255,255} RL.BLUE={0,121,241,255} RL.DARKBLUE={0,82,172,255} RL.PURPLE={200,122,255,255} RL.VIOLET={135,60,190,255} RL.DARKPURPLE={112,31,126,255} RL.BEIGE={211,176,131,255} RL.BROWN={127,106,79,255} RL.DARKBROWN={76,63,47,255} RL.WHITE={255,255,255,255} RL.BLACK={0,0,0,255} RL.BLANK={0,0,0,0} RL.MAGENTA={255,0,255,255} RL.RAYWHITE={245,245,245,255} -- Globals - Math RL.PI=3.1415927410126 RL.DEG2RAD=0.017453292384744 RL.RAD2DEG=57.295776367188 -- Globals - GuiControlState RL.STATE_NORMAL=0 RL.STATE_FOCUSED=1 RL.STATE_PRESSED=2 RL.STATE_DISABLED=3 -- Globals - GuiTextAlignment RL.TEXT_ALIGN_LEFT=0 RL.TEXT_ALIGN_CENTER=1 RL.TEXT_ALIGN_RIGHT=2 -- Globals - GuiControl RL.DEFAULT=0 RL.LABEL=1 RL.BUTTON=2 RL.TOGGLE=3 RL.SLIDER=4 RL.PROGRESSBAR=5 RL.CHECKBOX=6 RL.COMBOBOX=7 RL.DROPDOWNBOX=8 RL.TEXTBOX=9 RL.VALUEBOX=10 RL.SPINNER=11 RL.LISTVIEW=12 RL.COLORPICKER=13 RL.SCROLLBAR=14 RL.STATUSBAR=15 -- Globals - GuiControlProperty RL.BORDER_COLOR_NORMAL=0 RL.BASE_COLOR_NORMAL=1 RL.TEXT_COLOR_NORMAL=2 RL.BORDER_COLOR_FOCUSED=3 RL.BASE_COLOR_FOCUSED=4 RL.TEXT_COLOR_FOCUSED=5 RL.BORDER_COLOR_PRESSED=6 RL.BASE_COLOR_PRESSED=7 RL.TEXT_COLOR_PRESSED=8 RL.BORDER_COLOR_DISABLED=9 RL.BASE_COLOR_DISABLED=10 RL.TEXT_COLOR_DISABLED=11 RL.BORDER_WIDTH=12 RL.TEXT_PADDING=13 RL.TEXT_ALIGNMENT=14 RL.RESERVED=15 -- Globals - GuiDefaultProperty RL.TEXT_SIZE=16 RL.TEXT_SPACING=17 RL.LINE_COLOR=18 RL.BACKGROUND_COLOR=19 -- Globals - GuiToggleProperty RL.GROUP_PADDING=16 -- Globals - GuiSliderProperty RL.SLIDER_WIDTH=16 RL.SLIDER_PADDING=17 -- Globals - GuiProgressBarProperty RL.PROGRESS_PADDING=16 -- Globals - GuiScrollBarProperty RL.ARROWS_SIZE=16 RL.ARROWS_VISIBLE=17 RL.SCROLL_SLIDER_PADDING=18 RL.SCROLL_SLIDER_SIZE=19 RL.SCROLL_PADDING=20 RL.SCROLL_SPEED=21 -- Globals - GuiCheckBoxProperty RL.CHECK_PADDING=16 -- Globals - GuiComboBoxProperty RL.COMBO_BUTTON_WIDTH=16 RL.COMBO_BUTTON_SPACING=17 -- Globals - GuiDropdownBoxProperty RL.ARROW_PADDING=16 RL.DROPDOWN_ITEMS_SPACING=17 -- Globals - GuiTextBoxProperty RL.TEXT_INNER_PADDING=16 RL.TEXT_LINES_SPACING=17 -- Globals - GuiSpinnerProperty RL.SPIN_BUTTON_WIDTH=16 RL.SPIN_BUTTON_SPACING=17 -- Globals - GuiListViewProperty RL.LIST_ITEMS_HEIGHT=16 RL.LIST_ITEMS_SPACING=17 RL.SCROLLBAR_WIDTH=18 RL.SCROLLBAR_SIDE=19 -- Globals - GuiColorPickerProperty RL.COLOR_SELECTOR_SIZE=16 RL.HUEBAR_WIDTH=17 RL.HUEBAR_PADDING=18 RL.HUEBAR_SELECTOR_HEIGHT=19 RL.HUEBAR_SELECTOR_OVERFLOW=20 -- Globals - LightType RL.LIGHT_DIRECTIONAL=0 RL.LIGHT_POINT=1 -- Core - Window ---Check if window has been initialized successfully ---- Success return bool ---@return any state function RL.IsWindowReady() end ---Check if window is currently fullscreen ---- Success return bool ---@return any state function RL.IsWindowFullscreen() end ---Check if window is currently hidden ( only PLATFORM_DESKTOP ) ---- Success return bool ---@return any state function RL.IsWindowHidden() end ---Check if window is currently minimized ( only PLATFORM_DESKTOP ) ---- Success return bool ---@return any state function RL.IsWindowMinimized() end ---Check if window is currently maximized ( only PLATFORM_DESKTOP ) ---- Success return bool ---@return any state function RL.IsWindowMaximized() end ---Check if window is currently focused ( only PLATFORM_DESKTOP ) ---- Success return bool ---@return any state function RL.IsWindowFocused() end ---Set monitor for the current window (fullscreen mode) ---- Failure return false ---- Success return true ---@param monitor integer ---@return any success function RL.SetWindowMonitor( monitor ) end ---Set window position on screen ---- Failure return false ---- Success return true ---@param pos table ---@return any success function RL.SetWindowPosition( pos ) end ---Set window dimensions ---- Failure return false ---- Success return true ---@param size table ---@return any success function RL.SetWindowSize( size ) end ---Set window minimum dimensions ( for FLAG_WINDOW_RESIZABLE ) ---- Failure return false ---- Success return true ---@param size table ---@return any success function RL.SetWindowMinSize( size ) end ---Get specified monitor position ---- Failure return nil ---- Success return Vector2 ---@return any position function RL.GetMonitorPosition() end ---Get specified monitor size ---- Failure return nil ---- Success return Vector2 ---@param monitor integer ---@return any size function RL.GetMonitorSize( monitor ) end ---Get window position on monitor ---- Success return Vector2 ---@return any position function RL.GetWindowPosition() end ---Get screen size ---- Success return Vector2 ---@return any size function RL.GetScreenSize() end ---Set window configuration state using flags ( FLAG_FULLSCREEN_MODE, FLAG_WINDOW_RESIZABLE... ) ---- Failure return false ---- Success return true ---@param flag integer ---@return any success function RL.SetWindowState( flag ) end ---Check if one specific window flag is enabled ( FLAG_FULLSCREEN_MODE, FLAG_WINDOW_RESIZABLE... ) ---- Failure return nil ---- Success return bool ---@param flag integer ---@return any state function RL.IsWindowState( flag ) end ---Clear window configuration state flags ( FLAG_FULLSCREEN_MODE, FLAG_WINDOW_RESIZABLE... ) ---- Success return bool ---@param flag integer ---@return any resized function RL.ClearWindowState( flag ) end ---Check if window has been resized from last frame ---- Success return bool ---@return any resized function RL.IsWindowResized() end ---Set icon for window ( Only PLATFORM_DESKTOP ) ---- Failure return false ---- Success return true ---@param image any ---@return any success function RL.SetWindowIcon( image ) end ---Set title for window ( Only PLATFORM_DESKTOP ) ---- Failure return false ---- Success return true ---@param title string ---@return any success function RL.SetWindowTitle( title ) end ---Get number of connected monitors ---- Success return int ---@return any count function RL.GetMonitorCount() end ---Get current connected monitor ---- Success return int ---@return any monitor function RL.GetCurrentMonitor() end ---Get specified monitor physical size in millimetres ---- Failure return false ---- Success return Vector2 ---@param monitor integer ---@return any size function RL.GetMonitorPhysicalSize( monitor ) end ---Get specified monitor refresh rate ---- Failure return false ---- Success return int ---@param monitor integer ---@return any size function RL.GetMonitorRefreshRate( monitor ) end ---Get window scale DPI factor ---- Success return Vector2 ---@return any scale function RL.GetWindowScaleDPI() end ---Get the human-readable, UTF-8 encoded name of the monitor ---- Failure return false ---- Success return string ---@param monitor integer ---@return any name function RL.GetMonitorName( monitor ) end ---Close window and unload OpenGL context and free all resources ---@return any RL.CloseWindow function RL.CloseWindow() end ---Set clipboard text content ---- Failure return false ---- Success return true ---@param text string ---@return any success function RL.SetClipboardText( text ) end ---Get clipboard text content ---- Success return string ---@return any text function RL.GetClipboardText() end -- Core - Timing ---Set target FPS ( maximum ) ---- Failure return false ---- Success return true ---@param fps integer ---@return any success function RL.SetTargetFPS( fps ) end ---Get current FPS ---- Success return int ---@return any FPS function RL.GetFPS() end ---Get time in seconds for last frame drawn ( Delta time ) ---- Success return float ---@return any delta function RL.GetFrameTime() end ---Get elapsed time in seconds since InitWindow() ---- Success return float ---@return any time function RL.GetTime() end -- Core - Misc ---Takes a screenshot of current screen ( filename extension defines format ) ---- Failure return false ---- Success return true ---@param fileName string ---@return any success function RL.TakeScreenshot( fileName ) end ---Setup init configuration flags ( view FLAGS ) ---- Failure return false ---- Success return true ---@param flags integer ---@return any success function RL.SetConfigFlags( flags ) end ---Show trace log messages ( LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR... ) ---- Failure return false ---- Success return true ---@param logLevel integer ---@param text string ---@return any success function RL.TraceLog( logLevel, text ) end ---Set the current threshold ( minimum ) log level ---- Failure return false ---- Success return true ---@param logLevel integer ---@return any success function RL.SetTraceLogLevel( logLevel ) end ---Open URL with default system browser ( If available ) ---- Failure return false ---- Success return true ---@param url string ---@return any success function RL.OpenURL( url ) end -- Core - Cursor ---Shows cursor ---@return any RL.ShowCursor function RL.ShowCursor() end ---Hides cursor ---@return any RL.HideCursor function RL.HideCursor() end ---Check if cursor is not visible ---- Success return bool ---@return any hidden function RL.IsCursorHidden() end ---Enables cursor (unlock cursor) ---@return any RL.EnableCursor function RL.EnableCursor() end ---Disables cursor (lock cursor) ---@return any RL.DisableCursor function RL.DisableCursor() end ---Check if cursor is on the screen ---- Success return bool ---@return any onSreen function RL.IsCursorOnScreen() end -- Core - Drawing ---Set background color ( framebuffer clear color ) ---- Failure return false ---- Success return true ---@param color table ---@return any success function RL.ClearBackground( color ) end ---Setup canvas ( framebuffer ) to start drawing ---@return any RL.BeginDrawing function RL.BeginDrawing() end ---End canvas drawing and swap buffers ( double buffering ) ---@return any RL.EndDrawing function RL.EndDrawing() end ---Begin blending mode ( BLEND_ALPHA, BLEND_ADDITIVE, BLEND_MULTIPLIED... ) ---- Failure return false ---- Success return true ---@param mode integer ---@return any success function RL.BeginBlendMode( mode ) end ---End blending mode ( reset to default: BLEND_ALPHA ) ---@return any RL.EndBlendMode function RL.EndBlendMode() end ---Begin scissor mode ( define screen area for following drawing ) ---- Failure return false ---- Success return true ---@param rectange table ---@return any success function RL.BeginScissorMode( rectange ) end ---End scissor mode ---@return any RL.EndScissorMode function RL.EndScissorMode() end -- Core - Shader ---Load shader from files and bind default locations. ---NOTE: Set nil if no shader ---- Failure return -1 ---- Success return int ---@param vsFileName string ---@param fsFileName string ---@return any shader function RL.LoadShader( vsFileName, fsFileName ) end ---Load shader from code strings and bind default locations ---NOTE: Set nil if no shader ---- Failure return -1 ---- Success return int ---@param vsCode string ---@param fsCode string ---@return any shader function RL.LoadShaderFromMemory( vsCode, fsCode ) end ---Begin custom shader drawing ---- Failure return false ---- Success return true ---@param shader any ---@return any success function RL.BeginShaderMode( shader ) end ---End custom shader drawing ( use default shader ) ---@return any RL.EndShaderMode function RL.EndShaderMode() end ---Get shader uniform location ---- Failure return -1 ---- Success return int ---@param shader any ---@param uniformName string ---@return any location function RL.GetShaderLocation( shader, uniformName ) end ---Get shader attribute location ---- Failure return -1 ---- Success return int ---@param shader any ---@param attribName string ---@return any location function RL.GetShaderLocationAttrib( shader, attribName ) end ---Set shader location index ---- Failure return false ---- Success return true ---@param shader any ---@param shaderLocationIndex integer ---@param location integer ---@return any success function RL.SetShaderLocationIndex( shader, shaderLocationIndex, location ) end ---Get shader location index ---- Failure return false ---- Success return int ---@param shader any ---@param shaderLocationIndex integer ---@return any location function RL.GetShaderLocationIndex( shader, shaderLocationIndex ) end ---Set shader uniform value ( matrix 4x4 ) ---- Failure return false ---- Success return true ---@param shader any ---@param locIndex integer ---@param mat table ---@return any success function RL.SetShaderValueMatrix( shader, locIndex, mat ) end ---Set shader uniform value for texture ( sampler2d ) ---- Failure return false ---- Success return true ---@param shader any ---@param locIndex integer ---@param texture any ---@return any success function RL.SetShaderValueTexture( shader, locIndex, texture ) end ---Set shader uniform value ---NOTE: Even one value should be in table ---- Failure return false ---- Success return true ---@param shader any ---@param locIndex integer ---@param values any ---@param uniformType integer ---@return any success function RL.SetShaderValue( shader, locIndex, values, uniformType ) end ---Set shader uniform value vector ---NOTE: Even one value should be in table ---- Failure return false ---- Success return true ---@param shader any ---@param locIndex integer ---@param values any ---@param uniformType integer ---@param count integer ---@return any success function RL.SetShaderValueV( shader, locIndex, values, uniformType, count ) end ---Unload shader from GPU memory ( VRAM ) ---- Failure return false ---- Success return true ---@param shader any ---@return any success function RL.UnloadShader( shader ) end -- Core - Input-related Keyboard ---Detect if a key has been pressed once ---- Failure return nil ---- Success return bool ---@param key integer ---@return any pressed function RL.IsKeyPressed( key ) end ---Detect if a key is being pressed ---- Failure return nil ---- Success return bool ---@param key integer ---@return any pressed function RL.IsKeyDown( key ) end ---Detect if a key has been released once ---- Failure return nil ---- Success return bool ---@param key integer ---@return any released function RL.IsKeyReleased( key ) end ---Check if a key is NOT being pressed ---- Failure return nil ---- Success return bool ---@param key integer ---@return any released function RL.IsKeyUp( key ) end ---Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty ---- Success return int ---@return any keycode function RL.GetKeyPressed() end ---Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty ---- Success return int ---@return any unicode function RL.GetCharPressed() end ---Set a custom key to exit program ( default is ESC ) ---@param key integer ---@return any RL.SetExitKey function RL.SetExitKey( key ) end ---This function returns the name of the specified printable key, encoded as UTF-8. ---This is typically the character that key would produce without any modifier keys, ---intended for displaying key bindings to the user. For dead keys, it is typically ---the diacritic it would add to a character. ---Do not use this function for text input. You will break text input for many ---languages even if it happens to work for yours. ---If the key is KEY_UNKNOWN, the scancode is used to identify the key, ---otherwise the scancode is ignored. If you specify a non-printable key, ---or KEY_UNKNOWN and a scancode that maps to a non-printable key, ---this function returns nil but does not emit an error. ---- Failure return -1 ---- Success return string or nil ---@param key integer ---@param scancode integer ---@return any keyName function RL.GetKeyName( key, scancode ) end ---This function returns the platform-specific scancode of the specified key. ---If the key is KEY_UNKNOWN or does not exist on the keyboard this method will return -1. ---- Failure return nil ---- Success return int ---@param key integer ---@return any scancode function RL.GetKeyScancode( key ) end -- Core - Input-related Gamepad ---Detect if a gamepad is available ---- Failure return nil ---- Success return bool ---@param gamepad integer ---@return any available function RL.IsGamepadAvailable( gamepad ) end ---Detect if a gamepad button has been pressed once ---- Failure return nil ---- Success return bool ---@param gamepad integer ---@param button integer ---@return any pressed function RL.IsGamepadButtonPressed( gamepad, button ) end ---Detect if a gamepad button is being pressed ---- Failure return nil ---- Success return bool ---@param gamepad integer ---@param button integer ---@return any pressed function RL.IsGamepadButtonDown( gamepad, button ) end ---Detect if a gamepad button has been released once ---- Failure return nil ---- Success return bool ---@param gamepad integer ---@param button integer ---@return any released function RL.IsGamepadButtonReleased( gamepad, button ) end ---Return gamepad axis count for a gamepad ---- Failure return false ---- Success return int ---@param gamepad integer ---@return any count function RL.GetGamepadAxisCount( gamepad ) end ---Return axis movement value for a gamepad axis ---- Failure return false ---- Success return float ---@param gamepad integer ---@param axis integer ---@return any value function RL.GetGamepadAxisMovement( gamepad, axis ) end ---Return gamepad internal name id ---- Failure return false ---- Success return string ---@param gamepad integer ---@return any name function RL.GetGamepadName( gamepad ) end -- Core - Input-related Mouse ---Detect if a mouse button has been pressed once ---- Failure return nil ---- Success return bool ---@param button integer ---@return any pressed function RL.IsMouseButtonPressed( button ) end ---Detect if a mouse button is being pressed ---- Failure return nil ---- Success return bool ---@param button integer ---@return any pressed function RL.IsMouseButtonDown( button ) end ---Detect if a mouse button has been released once ---- Failure return nil ---- Success return bool ---@param button integer ---@return any released function RL.IsMouseButtonReleased( button ) end ---Check if a mouse button is NOT being pressed ---- Failure return nil ---- Success return bool ---@param button integer ---@return any released function RL.IsMouseButtonUp( button ) end ---Returns mouse position ---- Success return Vector2 ---@return any position function RL.GetMousePosition() end ---Get mouse delta between frames ---- Success return Vector2 ---@return any position function RL.GetMouseDelta() end ---Set mouse position XY ---- Failure return false ---- Success return true ---@param position table ---@return any success function RL.SetMousePosition( position ) end ---Set mouse offset ---- Failure return false ---- Success return true ---@param offset table ---@return any success function RL.SetMouseOffset( offset ) end ---Set mouse scaling ---- Failure return false ---- Success return true ---@param scale table ---@return any success function RL.SetMouseScale( scale ) end ---Returns mouse wheel movement Y ---- Success return float ---@return any movement function RL.GetMouseWheelMove() end ---Set mouse cursor ---- Failure return false ---- Success return true ---@param cursor integer ---@return any success function RL.SetMouseCursor( cursor ) end -- Core - Input-related Touch ---Get touch position XY for a touch point index ( relative to screen size ) ---- Failure return false ---- Success return Vector2 ---@param index integer ---@return any position function RL.GetTouchPosition( index ) end ---Get touch point identifier for given index ---- Failure return false ---- Success return int ---@param index integer ---@return any id function RL.GetTouchPointId( index ) end ---Get touch point identifier for given index ---- Success return int ---@return any count function RL.GetTouchPointCount() end -- Core - Input-related Gestures ---Enable a set of gestures using flags ---- Failure return false ---- Success return true ---@param int any ---@return any success function RL.SetGesturesEnabled( int ) end ---Check if a gesture have been detected ---- Failure return nil ---- Success return bool ---@param gesture integer ---@return any detected function RL.IsGestureDetected( gesture ) end ---Get latest detected gesture ---- Success return int ---@return any gesture function RL.GetGestureDetected() end ---Get gesture hold time in milliseconds ---- Success return float ---@return any time function RL.GetGestureHoldDuration() end ---Get gesture drag vector ---- Success return Vector2 ---@return any vector function RL.GetGestureDragVector() end ---Get gesture drag angle ---- Success return float ---@return any angle function RL.GetGestureDragAngle() end ---Get gesture pinch delta ---- Success return Vector2 ---@return any vector function RL.GetGesturePinchVector() end ---Get gesture pinch angle ---- Success return float ---@return any angle function RL.GetGesturePinchAngle() end -- Core - File ---Return game directory ( where main.lua is located ) ---- Success return string ---@return any path function RL.GetBasePath() end ---Check if file exists ---- Failure return nil ---- Success return bool ---@param fileName string ---@return any fileExists function RL.FileExists( fileName ) end ---Check if a directory path exists ---- Failure return nil ---- Success return bool ---@param dirPath string ---@return any dirExists function RL.DirectoryExists( dirPath ) end ---Check file extension ( Including point: .png, .wav ) ---- Failure return nil ---- Success return bool ---@param fileName string ---@param ext string ---@return any hasFileExtension function RL.IsFileExtension( fileName, ext ) end ---Get file length in bytes ( NOTE: GetFileSize() conflicts with windows.h ) ---- Failure return false ---- Success return int ---@param fileName string ---@return any length function RL.GetFileLength( fileName ) end ---Get pointer to extension for a filename string ( Includes dot: '.png' ) ---- Failure return false ---- Success return string ---@param fileName string ---@return any extension function RL.GetFileExtension( fileName ) end ---Get pointer to filename for a path string ---- Failure return false ---- Success return string ---@param filePath string ---@return any filePath function RL.GetFileName( filePath ) end ---Get filename string without extension ( Uses static string ) ---- Failure return false ---- Success return string ---@param filePath string ---@return any filePath function RL.GetFileNameWithoutExt( filePath ) end ---Get full path for a given fileName with path ( Uses static string ) ---- Failure return false ---- Success return string ---@param filePath string ---@return any filePath function RL.GetDirectoryPath( filePath ) end ---Get previous directory path for a given path ( Uses static string ) ---- Failure return false ---- Success return string ---@param dirPath string ---@return any directory function RL.GetPrevDirectoryPath( dirPath ) end ---Get current working directory ( Uses static string ) ---- Success return string ---@return any directory function RL.GetWorkingDirectory() end ---Load directory filepaths ---- Failure return false ---- Success return string{} ---@param dirPath string ---@return any fileNames function RL.LoadDirectoryFiles( dirPath ) end ---Load directory filepaths with extension filtering and recursive directory scan ---- Failure return false ---- Success return string{} ---@param basePath string ---@param filter string ---@param scanSubdirs boolean ---@return any fileNames function RL.LoadDirectoryFilesEx( basePath, filter, scanSubdirs ) end ---Change working directory, return true on success ---- Failure return false ---- Success return true ---@param directory string ---@return any success function RL.ChangeDirectory( directory ) end ---Check if a given path is a file or a directory ---- Failure return nil ---- Success return bool ---@param path string ---@return any isFile function RL.IsPathFile( path ) end ---Check if a file has been dropped into window ---- Success return bool ---@return any fileDropped function RL.IsFileDropped() end ---Load dropped filepaths ---- Success return string{} ---@return any files function RL.LoadDroppedFiles() end ---Get file modification time ( Last write time ) ---- Failure return false ---- Success return int ---@param fileName string ---@return any time function RL.GetFileModTime( fileName ) end -- Core - Camera2D ---Return camera2D id set to default configuration ---- Success return int ---@return any camera2D function RL.CreateCamera2D() end ---Unload Camera2D ---- Failure return false ---- Success return true ---@param Camera2D integer ---@return any success function RL.UnloadCamera2D( Camera2D ) end ---Begin 2D mode with custom camera ( 2D ) ---- Failure return false ---- Success return true ---@param camera any ---@return any success function RL.BeginMode2D( camera ) end ---Ends 2D mode with custom camera ---@return any RL.EndMode2D function RL.EndMode2D() end ---Set camera target ( rotation and zoom origin ) ---- Failure return false ---- Success return true ---@param camera any ---@param target table ---@return any success function RL.SetCamera2DTarget( camera, target ) end ---Set camera offset ( displacement from target ) ---- Failure return false ---- Success return true ---@param camera any ---@param offset table ---@return any success function RL.SetCamera2DOffset( camera, offset ) end ---Set camera rotation in degrees ---- Failure return false ---- Success return true ---@param camera any ---@param rotation number ---@return any success function RL.SetCamera2DRotation( camera, rotation ) end ---Set camera zoom ( scaling ), should be 1.0f by default ---- Failure return false ---- Success return true ---@param camera any ---@param zoom number ---@return any success function RL.SetCamera2DZoom( camera, zoom ) end ---Get camera2D target ---- Failure return nil ---- Success return Vector2 ---@param camera any ---@return any target function RL.GetCamera2DTarget( camera ) end ---Get camera2D offset ---- Failure return nil ---- Success return Vector2 ---@param camera any ---@return any offset function RL.GetCamera2DOffset( camera ) end ---Get camera2D rotation ---- Failure return nil ---- Success return float ---@param camera any ---@return any rotation function RL.GetCamera2DRotation( camera ) end ---Get camera2D zoom ---- Failure return nil ---- Success return float ---@param camera any ---@return any zoom function RL.GetCamera2DZoom( camera ) end -- Core - Camera3D ---Return camera3D id set to default configuration ---- Success return int ---@return any camera function RL.CreateCamera3D() end ---Unload Camera3D ---- Failure return false ---- Success return true ---@param Camera3D integer ---@return any success function RL.UnloadCamera3D( Camera3D ) end ---Begin 3D mode with custom camera ( 3D ) ---- Failure return false ---- Success return true ---@param camera any ---@return any success function RL.BeginMode3D( camera ) end ---Ends 3D mode and returns to default 2D orthographic mode ---@return any RL.EndMode3D function RL.EndMode3D() end ---Set camera position ( Remember to call "RL.UpdateCamera3D()" to apply changes ) ---- Failure return false ---- Success return true ---@param camera any ---@param position table ---@return any success function RL.SetCamera3DPosition( camera, position ) end ---Set camera target it looks-at ---- Failure return false ---- Success return true ---@param camera any ---@param target table ---@return any success function RL.SetCamera3DTarget( camera, target ) end ---Set camera up vector ( Rotation over it's axis ) ---- Failure return false ---- Success return true ---@param camera any ---@param up table ---@return any success function RL.SetCamera3DUp( camera, up ) end ---Set camera field-of-view apperture in Y ( degrees ) in perspective, used as near plane width in orthographic ---- Failure return false ---- Success return true ---@param camera any ---@param fovy number ---@return any success function RL.SetCamera3DFovy( camera, fovy ) end ---Set camera projection mode ( CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC ) ---- Failure return false ---- Success return true ---@param camera any ---@param projection integer ---@return any success function RL.SetCamera3DProjection( camera, projection ) end ---Get camera position ---- Failure return nil ---- Success return Vector3 ---@param camera any ---@return any position function RL.GetCamera3DPosition( camera ) end ---Get camera target it looks-at ---- Failure return nil ---- Success return Vector3 ---@param camera any ---@return any target function RL.GetCamera3DTarget( camera ) end ---Get camera up vector ( Rotation over it's axis ) ---- Failure return nil ---- Success return Vector3 ---@param camera any ---@return any up function RL.GetCamera3DUp( camera ) end ---Get camera field-of-view apperture in Y ( degrees ) in perspective, used as near plane width in orthographic ---- Failure return nil ---- Success return float ---@param camera any ---@return any fovy function RL.GetCamera3DFovy( camera ) end ---Get camera projection mode ---- Failure return nil ---- Success return int ---@param camera any ---@return any projection function RL.GetCamera3DProjection( camera ) end ---Update camera position for selected mode ---- Failure return false ---- Success return true ---@param camera any ---@param mode integer ---@return any success function RL.UpdateCamera3D( camera, mode ) end ---Update camera movement, movement/rotation values should be provided by user ---- Failure return false ---- Success return true ---@param camera any ---@param movement table ---@param rotation table ---@param zoom number ---@return any success function RL.UpdateCamera3DPro( camera, movement, rotation, zoom ) end -- Core - Screen-space ---Get a ray trace from mouse position ---- Failure return false ---- Success return Ray ---@param mousePosition table ---@param camera any ---@return any ray function RL.GetMouseRay( mousePosition, camera ) end ---Get camera transform matrix ( view matrix ) ---- Failure return false ---- Success return Matrix ---@param camera any ---@return any matrix function RL.GetCameraMatrix( camera ) end ---Get camera 2d transform matrix ---- Failure return false ---- Success return Matrix ---@param camera any ---@return any matrix function RL.GetCameraMatrix2D( camera ) end ---Get the screen space position for a 3d world space position ---- Failure return false ---- Success return Vector2 ---@param position table ---@param camera any ---@return any position function RL.GetWorldToScreen( position, camera ) end ---Get size position for a 3d world space position ---- Failure return false ---- Success return Vector2 ---@param position table ---@param camera any ---@param size table ---@return any position function RL.GetWorldToScreenEx( position, camera, size ) end ---Get the screen space position for a 2d camera world space position ---- Failure return false ---- Success return Vector2 ---@param position table ---@param camera any ---@return any position function RL.GetWorldToScreen2D( position, camera ) end ---Get the world space position for a 2d camera screen space position ---- Failure return false ---- Success return Vector2 ---@param position table ---@param camera any ---@return any position function RL.GetScreenToWorld2D( position, camera ) end -- Shapes - Drawing ---Set texture and rectangle to be used on shapes drawing ---NOTE: It can be useful when using basic shapes and one single font, ---defining a font char white rectangle would allow drawing everything in a single draw call ---- Failure return false ---- Success return true ---@param texture any ---@param source table ---@return any success function RL.SetShapesTexture( texture, source ) end ---Draw a pixel ---- Failure return false ---- Success return true ---@param pos table ---@param color table ---@return any success function RL.DrawPixel( pos, color ) end ---Draw a line defining thickness ---- Failure return false ---- Success return true ---@param startPos table ---@param endPos table ---@param thickness number ---@param color table ---@return any success function RL.DrawLine( startPos, endPos, thickness, color ) end ---Draw a line using cubic-bezier curves in-out ---- Failure return false ---- Success return true ---@param startPos table ---@param endPos table ---@param thickness number ---@param color table ---@return any success function RL.DrawLineBezier( startPos, endPos, thickness, color ) end ---Draw line using quadratic bezier curves with a control point ---- Failure return false ---- Success return true ---@param startPos table ---@param endPos table ---@param controlPos table ---@param thickness number ---@param color table ---@return any success function RL.DrawLineBezierQuad( startPos, endPos, controlPos, thickness, color ) end ---Draw line using quadratic bezier curves with a control point ---- Failure return false ---- Success return true ---@param startPos table ---@param endPos table ---@param startControlPos table ---@param endControlPos table ---@param thickness number ---@param color table ---@return any success function RL.DrawLineBezierCubic( startPos, endPos, startControlPos, endControlPos, thickness, color ) end ---Draw lines sequence ---- Failure return false ---- Success return true ---@param points any ---@param color table ---@return any success function RL.DrawLineStrip( points, color ) end ---Draw a color-filled circle ---- Failure return false ---- Success return true ---@param center table ---@param radius number ---@param color table ---@return any success function RL.DrawCircle( center, radius, color ) end ---Draw a piece of a circle ---- Failure return false ---- Success return true ---@param center table ---@param radius number ---@param startAngle number ---@param endAngle number ---@param segments integer ---@param color table ---@return any success function RL.DrawCircleSector( center, radius, startAngle, endAngle, segments, color ) end ---Draw circle sector outline ---- Failure return false ---- Success return true ---@param center table ---@param radius number ---@param startAngle number ---@param endAngle number ---@param segments integer ---@param color table ---@return any success function RL.DrawCircleSectorLines( center, radius, startAngle, endAngle, segments, color ) end ---Draw a gradient-filled circle ---- Failure return false ---- Success return true ---@param center table ---@param radius number ---@param color1 table ---@param color2 table ---@return any success function RL.DrawCircleGradient( center, radius, color1, color2 ) end ---Draw circle outline ---- Failure return false ---- Success return true ---@param center table ---@param radius number ---@param color table ---@return any success function RL.DrawCircleLines( center, radius, color ) end ---Draw ellipse ---- Failure return false ---- Success return true ---@param center table ---@param radiusH number ---@param radiusV number ---@param color table ---@return any success function RL.DrawEllipse( center, radiusH, radiusV, color ) end ---Draw ellipse outline ---- Failure return false ---- Success return true ---@param center table ---@param radiusH number ---@param radiusV number ---@param color table ---@return any success function RL.DrawEllipseLines( center, radiusH, radiusV, color ) end ---Draw ring ---- Failure return false ---- Success return true ---@param center table ---@param innerRadius number ---@param outerRadius number ---@param startAngle number ---@param endAngle number ---@param segments integer ---@param color table ---@return any success function RL.DrawRing( center, innerRadius, outerRadius, startAngle, endAngle, segments, color ) end ---Draw ring outline ---- Failure return false ---- Success return true ---@param center table ---@param innerRadius number ---@param outerRadius number ---@param startAngle number ---@param endAngle number ---@param segments integer ---@param color table ---@return any success function RL.DrawRingLines( center, innerRadius, outerRadius, startAngle, endAngle, segments, color ) end ---Draw a color-filled rectangle ---- Failure return false ---- Success return true ---@param rec table ---@param color table ---@return any success function RL.DrawRectangle( rec, color ) end ---Draw a color-filled rectangle with pro parameters ---- Failure return false ---- Success return true ---@param rec table ---@param origin table ---@param rotation number ---@param color table ---@return any success function RL.DrawRectanglePro( rec, origin, rotation, color ) end ---Draw a vertical-gradient-filled rectangle ---- Failure return false ---- Success return true ---@param rectangle table ---@param color1 table ---@param color2 table ---@return any success function RL.DrawRectangleGradientV( rectangle, color1, color2 ) end ---Draw a horizontal-gradient-filled rectangle ---- Failure return false ---- Success return true ---@param rectangle table ---@param color1 table ---@param color2 table ---@return any success function RL.DrawRectangleGradientH( rectangle, color1, color2 ) end ---Draw a gradient-filled rectangle with custom vertex colors ---- Failure return false ---- Success return true ---@param rectangle table ---@param col1 table ---@param col2 table ---@param col3 table ---@param col4 table ---@return any success function RL.DrawRectangleGradientEx( rectangle, col1, col2, col3, col4 ) end ---Draw rectangle outline ---- Failure return false ---- Success return true ---@param rec table ---@param color table ---@return any success function RL.DrawRectangleLines( rec, color ) end ---Draw rectangle outline with extended parameters ---- Failure return false ---- Success return true ---@param rec table ---@param lineThick integer ---@param color table ---@return any success function RL.DrawRectangleLinesEx( rec, lineThick, color ) end ---Draw rectangle with rounded edges ---- Failure return false ---- Success return true ---@param rec table ---@param roundness number ---@param segments integer ---@param color table ---@return any success function RL.DrawRectangleRounded( rec, roundness, segments, color ) end ---Draw rectangle with rounded edges outline ---- Failure return false ---- Success return true ---@param rec table ---@param roundness number ---@param segments integer ---@param lineThick integer ---@param color table ---@return any success function RL.DrawRectangleRoundedLines( rec, roundness, segments, lineThick, color ) end ---Draw a color-filled triangle ( Vertex in counter-clockwise order! ) ---- Failure return false ---- Success return true ---@param v1 table ---@param v2 table ---@param v3 table ---@param color table ---@return any success function RL.DrawTriangle( v1, v2, v3, color ) end ---Draw triangle outline ( Vertex in counter-clockwise order! ) ---- Failure return false ---- Success return true ---@param v1 table ---@param v2 table ---@param v3 table ---@param color table ---@return any success function RL.DrawTriangleLines( v1, v2, v3, color ) end ---Draw a triangle fan defined by points ( first vertex is the center ) ---- Failure return false ---- Success return true ---@param points any ---@param color table ---@return any success function RL.DrawTriangleFan( points, color ) end ---Draw a triangle strip defined by points ---- Failure return false ---- Success return true ---@param points any ---@param color table ---@return any success function RL.DrawTriangleStrip( points, color ) end ---Draw a regular polygon ( Vector version ) ---- Failure return false ---- Success return true ---@param center table ---@param sides integer ---@param radius number ---@param rotation number ---@param color table ---@return any success function RL.DrawPoly( center, sides, radius, rotation, color ) end ---Draw a polygon outline of n sides ---- Failure return false ---- Success return true ---@param center table ---@param sides integer ---@param radius number ---@param rotation number ---@param color table ---@return any success function RL.DrawPolyLines( center, sides, radius, rotation, color ) end ---Draw a polygon outline of n sides with extended parameters ---- Failure return false ---- Success return true ---@param center table ---@param sides integer ---@param radius number ---@param rotation number ---@param lineThick number ---@param color table ---@return any success function RL.DrawPolyLinesEx( center, sides, radius, rotation, lineThick, color ) end -- Shapes - Collision ---Check collision between two rectangles ---- Failure return nil ---- Success return bool ---@param rec1 table ---@param rec2 table ---@return any collision function RL.CheckCollisionRecs( rec1, rec2 ) end ---Check collision between two circles ---- Failure return nil ---- Success return bool ---@param center1 table ---@param radius1 number ---@param center2 table ---@param radius2 number ---@return any collision function RL.CheckCollisionCircles( center1, radius1, center2, radius2 ) end ---Check collision between circle and rectangle ---- Failure return nil ---- Success return bool ---@param center table ---@param radius number ---@param rec table ---@return any collision function RL.CheckCollisionCircleRec( center, radius, rec ) end ---Check if point is inside rectangle ---- Failure return nil ---- Success return bool ---@param point table ---@param rec table ---@return any collision function RL.CheckCollisionPointRec( point, rec ) end ---Check if point is inside circle ---- Failure return nil ---- Success return bool ---@param point table ---@param center table ---@param radius number ---@return any collision function RL.CheckCollisionPointCircle( point, center, radius ) end ---Check if point is inside a triangle ---- Failure return nil ---- Success return bool ---@param point table ---@param p1 table ---@param p2 table ---@param p3 table ---@return any collision function RL.CheckCollisionPointTriangle( point, p1, p2, p3 ) end ---Check if point is within a polygon described by array of vertices ---- Failure return nil ---- Success return bool ---@param point table ---@param points any ---@return any collision function RL.CheckCollisionPointPoly( point, points ) end ---Check the collision between two lines defined by two points each, returns collision point by reference ---- Failure return nil ---- Success return bool, Vector2 ---@param startPos1 table ---@param endPos1 table ---@param startPos2 table ---@param endPos2 table ---@return any collision ---@return any position function RL.CheckCollisionLines( startPos1, endPos1, startPos2, endPos2 ) end ---Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] ---- Failure return nil ---- Success return bool ---@param point table ---@param p1 table ---@param p2 table ---@param threshold integer ---@return any collision function RL.CheckCollisionPointLine( point, p1, p2, threshold ) end ---Get collision rectangle for two rectangles collision ---- Failure return nil ---- Success return Rectangle ---@param rec1 table ---@param rec2 table ---@return any rectangle function RL.GetCollisionRec( rec1, rec2 ) end -- Textures - Image Loading ---Load image from file into CPU memory ( RAM ) ---- Failure return -1 ---- Success return int ---@param fileName string ---@return any image function RL.LoadImage( fileName ) end ---Load image from GPU texture data ---- Failure return -1 ---- Success return int ---@param texture any ---@return any image function RL.LoadImageFromTexture( texture ) end ---Load image from screen buffer and ( screenshot ) ---- Success return int ---@return any image function RL.LoadImageFromScreen() end ---Unload image from CPU memory ( RAM ) ---- Failure return false ---- Success return true ---@param image any ---@return any success function RL.UnloadImage( image ) end ---Export image data to file, returns true on success ---- Failure return nil ---- Success return bool ---@param image any ---@param fileName string ---@return any success function RL.ExportImage( image, fileName ) end ---Export image as code file defining an array of bytes, returns true on success ---- Failure return nil ---- Success return bool ---@param image any ---@param fileName string ---@return any success function RL.ExportImageAsCode( image, fileName ) end -- Textures - Image Generation ---Generate image: plain color ---- Failure return -1 ---- Success return int ---@param width integer ---@param height integer ---@param color table ---@return any image function RL.GenImageColor( width, height, color ) end ---Generate image: vertical gradient ---- Failure return -1 ---- Success return int ---@param size table ---@param top table ---@param bottom table ---@return any image function RL.GenImageGradientV( size, top, bottom ) end ---Generate image: horizontal gradient ---- Failure return -1 ---- Success return int ---@param size table ---@param left table ---@param right table ---@return any image function RL.GenImageGradientH( size, left, right ) end ---Generate image: radial gradient ---- Failure return -1 ---- Success return int ---@param size table ---@param density number ---@param inner table ---@param outer table ---@return any image function RL.GenImageGradientRadial( size, density, inner, outer ) end ---Generate image: checked ---- Failure return -1 ---- Success return int ---@param size table ---@param checks table ---@param col1 table ---@param col2 table ---@return any image function RL.GenImageChecked( size, checks, col1, col2 ) end ---Generate image: white noise ---- Failure return -1 ---- Success return int ---@param size table ---@param factor number ---@return any image function RL.GenImageWhiteNoise( size, factor ) end ---Generate image: perlin noise ---- Failure return -1 ---- Success return int ---@param size table ---@param offset table ---@param factor number ---@return any image function RL.GenImagePerlinNoise( size, offset, factor ) end ---Generate image: cellular algorithm. Bigger tileSize means bigger cells ---- Failure return -1 ---- Success return int ---@param size table ---@param tileSize integer ---@return any image function RL.GenImageCellular( size, tileSize ) end ---Generate image: grayscale image from text data ---- Failure return -1 ---- Success return int ---@param size table ---@param text string ---@return any image function RL.GenImageText( size, text ) end -- Textures - Image Manipulation Functions ---Create an image duplicate ( useful for transformations ) ---- Failure return -1 ---- Success return int ---@param image any ---@return any image function RL.ImageCopy( image ) end ---Create an image from another image piece ---- Failure return -1 ---- Success return int ---@param image any ---@param rec table ---@return any image function RL.ImageFromImage( image, rec ) end ---Create an image from text ( custom sprite font ) ---- Failure return -1 ---- Success return int ---@param font any ---@param text string ---@param fontSize number ---@param spacing number ---@param tint table ---@return any image function RL.ImageText( font, text, fontSize, spacing, tint ) end ---Convert image data to desired format ---- Failure return false ---- Success return true ---@param image any ---@param newFormat integer ---@return any success function RL.ImageFormat( image, newFormat ) end ---Convert image to POT ( power-of-two ) ---- Failure return false ---- Success return true ---@param image any ---@param fill table ---@return any success function RL.ImageToPOT( image, fill ) end ---Crop an image to a defined rectangle ---- Failure return false ---- Success return true ---@param image any ---@param crop table ---@return any success function RL.ImageCrop( image, crop ) end ---Crop image depending on alpha value ---- Failure return false ---- Success return true ---@param image any ---@param threshold number ---@return any success function RL.ImageAlphaCrop( image, threshold ) end ---Clear alpha channel to desired color ---- Failure return false ---- Success return true ---@param image any ---@param color table ---@param threshold number ---@return any success function RL.ImageAlphaClear( image, color, threshold ) end ---Apply alpha mask to image ---- Failure return false ---- Success return true ---@param image any ---@param alphaMask any ---@return any success function RL.ImageAlphaMask( image, alphaMask ) end ---Premultiply alpha channel ---- Failure return false ---- Success return true ---@param image any ---@return any success function RL.ImageAlphaPremultiply( image ) end ---Resize image ( Bicubic scaling algorithm ) ---- Failure return false ---- Success return true ---@param image any ---@param size table ---@return any success function RL.ImageResize( image, size ) end ---Resize image ( Nearest-Neighbor scaling algorithm ) ---- Failure return false ---- Success return true ---@param image any ---@param size table ---@return any success function RL.ImageResizeNN( image, size ) end ---Resize canvas and fill with color ---- Failure return false ---- Success return true ---@param image any ---@param size table ---@param offset table ---@param fill table ---@return any success function RL.ImageResizeCanvas( image, size, offset, fill ) end ---Generate all mipmap levels for a provided image ---- Failure return false ---- Success return true ---@param image any ---@return any success function RL.ImageMipmaps( image ) end ---Dither image data to 16bpp or lower ( Floyd-Steinberg dithering ) ---- Failure return false ---- Success return true ---@param image any ---@param bpp table ---@return any success function RL.ImageDither( image, bpp ) end ---Flip image vertically ---- Failure return false ---- Success return true ---@param image any ---@return any success function RL.ImageFlipVertical( image ) end ---Flip image horizontally ---- Failure return false ---- Success return true ---@param image any ---@return any success function RL.ImageFlipHorizontal( image ) end ---Rotate image clockwise 90deg ---- Failure return false ---- Success return true ---@param image any ---@return any success function RL.ImageRotateCW( image ) end ---Rotate image counter-clockwise 90deg ---- Failure return false ---- Success return true ---@param image any ---@return any success function RL.ImageRotateCCW( image ) end ---Modify image color: tint ---- Failure return false ---- Success return true ---@param image any ---@param color table ---@return any success function RL.ImageColorTint( image, color ) end ---Modify image color: invert ---- Failure return false ---- Success return true ---@param image any ---@return any success function RL.ImageColorInvert( image ) end ---Modify image color: grayscale ---- Failure return false ---- Success return true ---@param image any ---@return any success function RL.ImageColorGrayscale( image ) end ---Modify image color: contrast ( -100 to 100 ) ---- Failure return false ---- Success return true ---@param image any ---@param contrast number ---@return any success function RL.ImageColorContrast( image, contrast ) end ---Modify image color: brightness ( -255 to 255 ) ---- Failure return false ---- Success return true ---@param image any ---@param brightness integer ---@return any success function RL.ImageColorBrightness( image, brightness ) end ---Modify image color: replace color ---- Failure return false ---- Success return true ---@param image any ---@param color table ---@param replace table ---@return any success function RL.ImageColorReplace( image, color, replace ) end ---Load color data from image as a Color array ( RGBA - 32bit ) ---- Failure return false ---- Success return Color{} ---@param image any ---@return any colors function RL.LoadImageColors( image ) end ---Load colors palette from image as a Color array ( RGBA - 32bit ) ---- Failure return false ---- Success return Color{} ---@param image any ---@param maxPaletteSize integer ---@return any colors function RL.LoadImagePalette( image, maxPaletteSize ) end ---Get image alpha border rectangle ---- Failure return false ---- Success return Rectangle ---@param image any ---@param threshold number ---@return any rectangle function RL.GetImageAlphaBorder( image, threshold ) end ---Get image pixel color at ( x, y ) position ---- Failure return false ---- Success return Color ---@param image any ---@param pixelPos table ---@return any color function RL.GetImageColor( image, pixelPos ) end -- Textures - Image Drawing ---Clear image background with given color ---- Failure return false ---- Success return true ---@param dst any ---@param color table ---@return any success function RL.ImageClearBackground( dst, color ) end ---Draw pixel within an image ---- Failure return false ---- Success return true ---@param dst any ---@param position table ---@param color table ---@return any success function RL.ImageDrawPixel( dst, position, color ) end ---Draw line within an image ---- Failure return false ---- Success return true ---@param dst any ---@param start table ---@param end table ---@param color table ---@return any success function RL.ImageDrawLine( dst, start, end, color ) end ---Draw circle within an image ---- Failure return false ---- Success return true ---@param dst any ---@param center table ---@param radius integer ---@param color table ---@return any success function RL.ImageDrawCircle( dst, center, radius, color ) end ---Draw rectangle within an image ---- Failure return false ---- Success return true ---@param dst any ---@param rec table ---@param color table ---@return any success function RL.ImageDrawRectangle( dst, rec, color ) end ---Draw rectangle lines within an image ---- Failure return false ---- Success return true ---@param dst any ---@param rec table ---@param thick integer ---@param color table ---@return any success function RL.ImageDrawRectangleLines( dst, rec, thick, color ) end ---Draw a source image within a destination image ( Tint applied to source ) ---- Failure return false ---- Success return true ---@param dst any ---@param src any ---@param srcRec table ---@param dstRec table ---@param tint table ---@return any success function RL.ImageDraw( dst, src, srcRec, dstRec, tint ) end ---Draw text ( Custom sprite font ) within an image ( Destination ) ---- Failure return false ---- Success return true ---@param dst any ---@param font any ---@param text string ---@param position table ---@param fontSize number ---@param spacing number ---@param tint table ---@return any success function RL.ImageDrawTextEx( dst, font, text, position, fontSize, spacing, tint ) end -- Textures - Image Configuration ---Get image size ---- Failure return nil ---- Success return Vector2 ---@param image any ---@return any size function RL.GetImageSize( image ) end ---Get image mipmaps. Mipmap levels, 1 by default ---- Failure return false ---- Success return int ---@param image any ---@return any mipmaps function RL.GetImageMipmaps( image ) end ---Get image data format ( PixelFormat type ) ---- Failure return false ---- Success return int ---@param image any ---@return any format function RL.GetImageFormat( image ) end -- Textures - Texture Loading ---Load texture from file into GPU memory ( VRAM ) ---- Failure return -1 ---- Success return int ---@param fileName string ---@return any texture function RL.LoadTexture( fileName ) end ---Load texture from image data ---- Failure return -1 ---- Success return int ---@param image any ---@return any texture function RL.LoadTextureFromImage( image ) end ---Load cubemap from image, multiple image cubemap layouts supported ---- Failure return -1 ---- Success return int ---@param image any ---@param layout integer ---@return any texture function RL.LoadTextureCubemap( image, layout ) end ---Load texture for rendering ( framebuffer ) ---- Failure return -1 ---- Success return int ---@param size table ---@return any renderTexture function RL.LoadRenderTexture( size ) end ---Unload texture from GPU memory ( VRAM ) ---- Failure return false ---- Success return true ---@param texture any ---@return any success function RL.UnloadTexture( texture ) end ---Unload render texture from GPU memory ( VRAM ) ---- Failure return false ---- Success return true ---@param target any ---@return any success function RL.UnloadRenderTexture( target ) end ---Update GPU texture with new data ---NOTE! Should be TEXTURE_SOURCE_TEXTURE. Pixel should be in format { { 255, 255, 255, 255 }... } depending on the pixel format ---- Failure return false ---- Success return true ---@param texture any ---@param pixels any ---@return any success function RL.UpdateTexture( texture, pixels ) end ---Update GPU texture rectangle with new data ---NOTE! Should be TEXTURE_SOURCE_TEXTURE. Pixel should be in format { { 255, 255, 255, 255 }... } depending on the pixel format ---- Failure return false ---- Success return true ---@param texture any ---@param rec table ---@param pixels any ---@return any success function RL.UpdateTextureRec( texture, rec, pixels ) end -- Textures - Texture Drawing ---Draw a Texture2D ---- Failure return false ---- Success return true ---@param texture any ---@param position table ---@param tint table ---@return any success function RL.DrawTexture( texture, position, tint ) end ---Draw a part of a texture defined by a rectangle ---- Failure return false ---- Success return true ---@param texture any ---@param source table ---@param position table ---@param tint table ---@return any success function RL.DrawTextureRec( texture, source, position, tint ) end ---Draw a part of a texture defined by a rectangle with "pro" parameters ---- Failure return false ---- Success return true ---@param texture any ---@param source table ---@param dest table ---@param origin table ---@param rotation number ---@param tint table ---@return any success function RL.DrawTexturePro( texture, source, dest, origin, rotation, tint ) end ---Draws a texture ( or part of it ) that stretches or shrinks nicely ---- Failure return false ---- Success return true ---@param texture any ---@param nPatchInfo any ---@param dest table ---@param origin table ---@param rotation number ---@param tint table ---@return any success function RL.DrawTextureNPatch( texture, nPatchInfo, dest, origin, rotation, tint ) end ---Begin drawing to render texture ---- Failure return false ---- Success return true ---@param target any ---@return any success function RL.BeginTextureMode( target ) end ---Ends drawing to render texture ---@return any RL.EndTextureMode function RL.EndTextureMode() end ---Set what texture source to use ( TEXTURE_SOURCE_TEXTURE or TEXTURE_SOURCE_RENDER_TEXTURE ) ---- Failure return false ---- Success return true ---@param textureSource integer ---@return any success function RL.SetTextureSource( textureSource ) end ---Get current texture source type ( TEXTURE_SOURCE_TEXTURE or TEXTURE_SOURCE_RENDER_TEXTURE ) ---- Success return int ---@return any textureSource function RL.GetTextureSource() end -- Textures - Texture Configuration ---Generate GPU mipmaps for a texture ---- Failure return false ---- Success return true ---@param texture any ---@return any success function RL.GenTextureMipmaps( texture ) end ---Set texture scaling filter mode ( TEXTURE_FILTER_POINT, TEXTURE_FILTER_BILINEAR... ) ---- Failure return false ---- Success return true ---@param texture any ---@param filter integer ---@return any success function RL.SetTextureFilter( texture, filter ) end ---Set texture wrapping mode ( TEXTURE_WRAP_REPEAT, TEXTURE_WRAP_CLAMP... ) ---- Failure return false ---- Success return true ---@param texture any ---@param wrap integer ---@return any success function RL.SetTextureWrap( texture, wrap ) end ---Get texture size ---- Failure return nil ---- Success return Vector2 ---@param texture any ---@return any size function RL.GetTextureSize( texture ) end ---Get texture mipmaps. Mipmap levels, 1 by default ---- Failure return false ---- Success return int ---@param texture any ---@return any mipmaps function RL.GetTextureMipmaps( texture ) end ---Get texture mipmaps. Mipmap levels, 1 by default ---- Failure return false ---- Success return int ---@param texture any ---@return any format function RL.GetTextureFormat( texture ) end -- Textures - Color/pixel ---Returns color with alpha applied, alpha goes from 0.0f to 1.0f ---- Failure return false ---- Success return Color ---@param color table ---@param alpha number ---@return any color function RL.Fade( color, alpha ) end ---Returns hexadecimal value for a Color ---- Failure return false ---- Success return int ---@param color table ---@return any value function RL.ColorToInt( color ) end ---Returns Color normalized as float [0..1] ---- Failure return false ---- Success return Vector4 ---@param color table ---@return any color function RL.ColorNormalize( color ) end ---Color from normalized values [0..1] ---- Failure return false ---- Success return Color ---@param normalized table ---@return any color function RL.ColorFromNormalized( normalized ) end ---Returns HSV values for a Color, hue [0..360], saturation/value [0..1] ---- Failure return false ---- Success return Vector3 ---@param color table ---@return any HSV function RL.ColorToHSV( color ) end ---Returns a Color from HSV values, hue [0..360], saturation/value [0..1] ---- Failure return false ---- Success return Color ---@param hue number ---@param saturation number ---@param value number ---@return any color function RL.ColorFromHSV( hue, saturation, value ) end ---Get color multiplied with another color ---- Failure return false ---- Success return Color ---@param color table ---@param tint table ---@return any color function RL.ColorTint( color, tint ) end ---Get color with brightness correction, brightness factor goes from -1.0f to 1.0f ---- Failure return false ---- Success return Color ---@param color table ---@param factor number ---@return any color function RL.ColorBrightness( color, factor ) end ---Get color with contrast correction, contrast values between -1.0f and 1.0f ---- Failure return false ---- Success return Color ---@param color table ---@param contrast number ---@return any color function RL.ColorContrast( color, contrast ) end ---Returns color with alpha applied, alpha goes from 0.0f to 1.0f ---- Failure return false ---- Success return Color ---@param color table ---@param alpha number ---@return any color function RL.ColorAlpha( color, alpha ) end ---Returns src alpha-blended into dst color with tint ---- Failure return false ---- Success return Color ---@param dst table ---@param src table ---@param tint table ---@return any color function RL.ColorAlphaBlend( dst, src, tint ) end ---Get Color structure from hexadecimal value ---- Failure return false ---- Success return Color ---@param int any ---@return any Color function RL.GetColor( int ) end ---Get pixel color from source texture ---- Failure return false ---- Success return Color ---@param texture any ---@param position table ---@return any Color function RL.GetPixelColor( texture, position ) end ---Get pixel data size in bytes for certain format ---- Failure return false ---- Success return int ---@param width integer ---@param height integer ---@param format integer ---@return any size function RL.GetPixelDataSize( width, height, format ) end -- Text - Loading ---Load font from file into GPU memory ( VRAM ) ---- Failure return -1 ---- Success return int ---@param fileName string ---@return any font function RL.LoadFont( fileName ) end ---Load font from file with extended parameters. Loading the default character set ---- Failure return -1 ---- Success return int ---@param fileName string ---@param fontSize integer ---@return any font function RL.LoadFontEx( fileName, fontSize ) end ---Load font from Image ( XNA style ) ---- Failure return -1 ---- Success return int ---@param image any ---@param key table ---@param firstChar integer ---@return any font function RL.LoadFontFromImage( image, key, firstChar ) end ---Unload Font from GPU memory ( VRAM ) ---- Failure return false ---- Success return true ---@param font any ---@return any success function RL.UnloadFont( font ) end -- Text - Draw ---Draw current FPS ---- Failure return false ---- Success return true ---@param pos table ---@return any success function RL.DrawFPS( pos ) end ---Draw text using font and additional parameters ---- Failure return false ---- Success return true ---@param font any ---@param text string ---@param position table ---@param fontSize number ---@param spacing number ---@param tint table ---@return any success function RL.DrawText( font, text, position, fontSize, spacing, tint ) end ---Draw text using Font and pro parameters ( rotation ) ---- Failure return false ---- Success return true ---@param font any ---@param text string ---@param position table ---@param origin table ---@param rotation number ---@param fontSize number ---@param spacing number ---@param tint table ---@return any success function RL.DrawTextPro( font, text, position, origin, rotation, fontSize, spacing, tint ) end -- Text - Misc ---Measure string size for Font ---- Failure return false ---- Success return Vector2 ---@param font any ---@param text string ---@param fontSize number ---@param spacing number ---@return any size function RL.MeasureText( font, text, fontSize, spacing ) end ---Get font baseSize ---- Failure return false ---- Success return int ---@param font any ---@return any baseSize function RL.GetFontBaseSize( font ) end ---Get font glyphCount ---- Failure return false ---- Success return int ---@param font any ---@return any glyphCount function RL.GetFontGlyphCount( font ) end ---Get font glyphPadding ---- Failure return false ---- Success return int ---@param font any ---@return any glyphPadding function RL.GetFontGlyphPadding( font ) end -- Models - Basic ---Draw a line in 3D world space ---- Failure return false ---- Success return true ---@param startPos table ---@param endPos table ---@param color table ---@return any success function RL.DrawLine3D( startPos, endPos, color ) end ---Draw a point in 3D space, actually a small line ---- Failure return false ---- Success return true ---@param position table ---@param color table ---@return any success function RL.DrawPoint3D( position, color ) end ---Draw a circle in 3D world space ---- Failure return false ---- Success return true ---@param center table ---@param radius number ---@param rotationAxis table ---@param rotationAngle number ---@param color table ---@return any success function RL.DrawCircle3D( center, radius, rotationAxis, rotationAngle, color ) end ---Draw a color-filled triangle ( Vertex in counter-clockwise order! ) ---- Failure return false ---- Success return true ---@param v1 table ---@param v2 table ---@param v3 table ---@param color table ---@return any success function RL.DrawTriangle3D( v1, v2, v3, color ) end ---Draw cube ---- Failure return false ---- Success return true ---@param position table ---@param size table ---@param color table ---@return any success function RL.DrawCube( position, size, color ) end ---Draw cube wires ---- Failure return false ---- Success return true ---@param position table ---@param size table ---@param color table ---@return any success function RL.DrawCubeWires( position, size, color ) end ---Draw sphere ---- Failure return false ---- Success return true ---@param centerPos table ---@param radius number ---@param color table ---@return any success function RL.DrawSphere( centerPos, radius, color ) end ---Draw sphere with extended parameters ---- Failure return false ---- Success return true ---@param centerPos table ---@param radius number ---@param rings integer ---@param slices integer ---@param color table ---@return any success function RL.DrawSphereEx( centerPos, radius, rings, slices, color ) end ---Draw sphere wires ---- Failure return false ---- Success return true ---@param centerPos table ---@param radius number ---@param rings integer ---@param slices integer ---@param color table ---@return any success function RL.DrawSphereWires( centerPos, radius, rings, slices, color ) end ---Draw a cylinder/cone ---- Failure return false ---- Success return true ---@param position table ---@param radiusTop number ---@param radiusBottom number ---@param height number ---@param slices integer ---@param color table ---@return any success function RL.DrawCylinder( position, radiusTop, radiusBottom, height, slices, color ) end ---Draw a cylinder with base at startPos and top at endPos ---- Failure return false ---- Success return true ---@param startPos table ---@param endPos table ---@param startRadius number ---@param endRadius number ---@param sides integer ---@param color table ---@return any success function RL.DrawCylinderEx( startPos, endPos, startRadius, endRadius, sides, color ) end ---Draw a cylinder/cone wires ---- Failure return false ---- Success return true ---@param position table ---@param radiusTop number ---@param radiusBottom number ---@param height number ---@param slices integer ---@param color table ---@return any success function RL.DrawCylinderWires( position, radiusTop, radiusBottom, height, slices, color ) end ---Draw a cylinder wires with base at startPos and top at endPos ---- Failure return false ---- Success return true ---@param startPos table ---@param endPos table ---@param startRadius number ---@param endRadius number ---@param sides integer ---@param color table ---@return any success function RL.DrawCylinderWiresEx( startPos, endPos, startRadius, endRadius, sides, color ) end ---Draw a plane XZ ---- Failure return false ---- Success return true ---@param centerPos table ---@param size table ---@param color table ---@return any success function RL.DrawPlane( centerPos, size, color ) end ---Draw 3D textured quad. ( Texture coordinates opengl style 0.0 - 1.0 ). ---- Failure return false ---- Success return true ---@param texture any ---@param vertices any ---@param texCoords any ---@param colors any ---@return any success function RL.DrawQuad3DTexture( texture, vertices, texCoords, colors ) end ---Draw a ray line ---- Failure return false ---- Success return true ---@param ray any ---@param color table ---@return any success function RL.DrawRay( ray, color ) end ---Draw a grid ( Centered at ( 0, 0, 0 ) ) ---- Failure return false ---- Success return true ---@param slices integer ---@param spacing number ---@return any success function RL.DrawGrid( slices, spacing ) end -- Models - Mesh ---Generate polygonal mesh ---- Failure return -1 ---- Success return int ---@param sides integer ---@param radius number ---@return any mesh function RL.GenMeshPoly( sides, radius ) end ---Generate plane mesh ( With subdivisions ) ---- Failure return -1 ---- Success return int ---@param width number ---@param length number ---@param resX integer ---@param resZ integer ---@return any mesh function RL.GenMeshPlane( width, length, resX, resZ ) end ---Generate cuboid mesh ---- Failure return -1 ---- Success return int ---@param size table ---@return any mesh function RL.GenMeshCube( size ) end ---Generate sphere mesh ( Standard sphere ) ---- Failure return -1 ---- Success return int ---@param radius number ---@param rings integer ---@param slices integer ---@return any mesh function RL.GenMeshSphere( radius, rings, slices ) end ---Generate cylinder mesh ---- Failure return -1 ---- Success return int ---@param radius number ---@param height number ---@param slices integer ---@return any mesh function RL.GenMeshCylinder( radius, height, slices ) end ---Generate cone/pyramid mesh ---- Failure return -1 ---- Success return int ---@param radius number ---@param height number ---@param slices integer ---@return any mesh function RL.GenMeshCone( radius, height, slices ) end ---Generate torus mesh ---- Failure return -1 ---- Success return int ---@param radius number ---@param size number ---@param radSeg integer ---@param sides integer ---@return any mesh function RL.GenMeshTorus( radius, size, radSeg, sides ) end ---Generate torus mesh ---- Failure return -1 ---- Success return int ---@param radius number ---@param size number ---@param radSeg integer ---@param sides integer ---@return any mesh function RL.GenMeshKnot( radius, size, radSeg, sides ) end ---Generate heightmap mesh from image data ---- Failure return -1 ---- Success return int ---@param heightmap any ---@param size table ---@return any mesh function RL.GenMeshHeightmap( heightmap, size ) end ---Generate custom mesh from vertex attribute data and uploads it into a VAO ( if supported ) and VBO ---- Failure return -1 ---- Success return int ---@param mesh any ---@param dynamic boolean ---@return any mesh function RL.GenMeshCustom( mesh, dynamic ) end ---Update mesh vertex data in GPU. ---Note! Mainly intented to be used with custom meshes. ---- Failure return false ---- Success return true ---@param mesh any ---@param updatedMesh any ---@return any success function RL.UpdateMesh( mesh, updatedMesh ) end ---Unload mesh data from CPU and GPU ---- Failure return false ---- Success return true ---@param mesh any ---@return any success function RL.UnloadMesh( mesh ) end ---Draw a 3d mesh with material and transform ---- Failure return false ---- Success return true ---@param mesh any ---@param material any ---@param transform table ---@return any success function RL.DrawMesh( mesh, material, transform ) end ---Draw multiple mesh instances with material and different transforms ---- Failure return false ---- Success return true ---@param mesh any ---@param material any ---@param transforms any ---@param instances integer ---@return any success function RL.DrawMeshInstanced( mesh, material, transforms, instances ) end ---Updades mesh color vertex attribute buffer ---NOTE: Currently only works on custom mesh ---- Failure return false ---- Success return true ---@param mesh any ---@param color table ---@return any success function RL.SetMeshColor( mesh, color ) end ---Export mesh data to file, returns true on success ---- Failure return false ---- Success return true ---@param mesh any ---@param fileName string ---@return any success function RL.ExportMesh( mesh, fileName ) end ---Compute mesh bounding box limits ---- Failure return false ---- Success return BoundingBox ---@param mesh any ---@return any boundingBox function RL.GetMeshBoundingBox( mesh ) end ---Compute mesh tangents ---- Failure return false ---- Success return true ---@param mesh any ---@return any success function RL.GenMeshTangents( mesh ) end -- Models - Material ---Load default material ---- Success return int ---@return any material function RL.LoadMaterialDefault() end ---Load material from table. See material table definition ---- Failure return false ---- Success return int ---@param material any ---@return any material function RL.CreateMaterial( material ) end ---Unload material from GPU memory ( VRAM ) ---- Failure return false ---- Success return true ---@param material any ---@return any success function RL.UnloadMaterial( material ) end ---Set texture for a material map type ( MATERIAL_MAP_ALBEDO, MATERIAL_MAP_METALNESS... ) ---- Failure return false ---- Success return true ---@param material any ---@param mapType integer ---@param texture any ---@return any success function RL.SetMaterialTexture( material, mapType, texture ) end ---Set color for a material map type ---- Failure return false ---- Success return true ---@param material any ---@param mapType integer ---@param color table ---@return any success function RL.SetMaterialColor( material, mapType, color ) end ---Set value for a material map type ---- Failure return false ---- Success return true ---@param material any ---@param mapType integer ---@param value number ---@return any success function RL.SetMaterialValue( material, mapType, value ) end ---Set shader for material ---- Failure return false ---- Success return true ---@param material any ---@param shader any ---@return any success function RL.SetMaterialShader( material, shader ) end -- Models - Model ---Load model from files ( Meshes and materials ) ---- Failure return -1 ---- Success return int ---@param fileName string ---@return any model function RL.LoadModel( fileName ) end ---Load model from generated mesh ( Default material ) ---- Failure return -1 ---- Success return int ---@param mesh any ---@return any model function RL.LoadModelFromMesh( mesh ) end ---Unload model ( Including meshes ) from memory ( RAM and/or VRAM ) ---- Failure return false ---- Success return true ---@param model any ---@return any success function RL.UnloadModel( model ) end ---Draw a model ( With texture if set ) ---- Failure return false ---- Success return true ---@param model any ---@param position table ---@param scale number ---@param tint table ---@return any success function RL.DrawModel( model, position, scale, tint ) end ---Draw a model with extended parameters ---- Failure return false ---- Success return true ---@param model any ---@param position table ---@param rotationAxis table ---@param rotationAngle number ---@param scale table ---@param tint table ---@return any success function RL.DrawModelEx( model, position, rotationAxis, rotationAngle, scale, tint ) end ---Copies material to model material. ( Model material is the material id in models. Material can be deleted if not used elsewhere ) ---- Failure return false ---- Success return true ---@param model any ---@param modelMaterial any ---@param material any ---@return any success function RL.SetModelMaterial( model, modelMaterial, material ) end ---Set material for a mesh ( Mesh and material on this model ) ---- Failure return false ---- Success return true ---@param model any ---@param meshId integer ---@param materialId integer ---@return any success function RL.SetModelMeshMaterial( model, meshId, materialId ) end ---Draw a billboard texture ---- Failure return false ---- Success return true ---@param camera any ---@param texture any ---@param position table ---@param size number ---@param tint table ---@return any success function RL.DrawBillboard( camera, texture, position, size, tint ) end ---Draw a billboard texture defined by source ---- Failure return false ---- Success return true ---@param camera any ---@param texture any ---@param source table ---@param position table ---@param size table ---@param tint table ---@return any success function RL.DrawBillboardRec( camera, texture, source, position, size, tint ) end ---Set model transform matrix ---- Failure return false ---- Success return true ---@param model any ---@param transform table ---@return any success function RL.SetModelTransform( model, transform ) end ---Get model transform matrix ---- Failure return false ---- Success return Matrix ---@param model any ---@return any transform function RL.GetModelTransform( model ) end -- Model - Animations ---Load model animations from file ---- Failure return -1 ---- Success return int, int ---@param fileName string ---@return any animations ---@return any animationCount function RL.LoadModelAnimations( fileName ) end ---Update model animation pose ---- Failure return false ---- Success return true ---@param model any ---@param animations any ---@param animation integer ---@param frame integer ---@return any success function RL.UpdateModelAnimation( model, animations, animation, frame ) end ---Unload animation data ---- Failure return false ---- Success return true ---@param animations any ---@return any success function RL.UnloadModelAnimations( animations ) end ---Check model animation skeleton match ---- Failure return nil ---- Success return bool ---@param model any ---@param animations any ---@return any valid function RL.IsModelAnimationValid( model, animations ) end ---Return modelAnimation bone count ---- Failure return false ---- Success return int ---@param animations any ---@param animation integer ---@return any boneCount function RL.GetModelAnimationBoneCount( animations, animation ) end ---Return modelAnimation frame count ---- Failure return false ---- Success return int ---@param animations any ---@param animation integer ---@return any frameCount function RL.GetModelAnimationFrameCount( animations, animation ) end -- Model - Collision ---Check collision between two spheres ---- Failure return nil ---- Success return bool ---@param center1 table ---@param radius1 number ---@param center2 table ---@param radius2 number ---@return any collision function RL.CheckCollisionSpheres( center1, radius1, center2, radius2 ) end ---Check collision between two bounding boxes ---- Failure return nil ---- Success return bool ---@param box1 any ---@param box2 any ---@return any collision function RL.CheckCollisionBoxes( box1, box2 ) end ---Check collision between box and sphere ---- Failure return nil ---- Success return bool ---@param box any ---@param center table ---@param radius number ---@return any collision function RL.CheckCollisionBoxSphere( box, center, radius ) end ---Get collision info between ray and sphere. ( RayCollision is Lua table of { hit, distance, point, normal } ) ---- Failure return nil ---- Success return RayCollision ---@param ray any ---@param center table ---@param radius number ---@return any rayCollision function RL.GetRayCollisionSphere( ray, center, radius ) end ---Get collision info between ray and box ---- Failure return nil ---- Success return RayCollision ---@param ray any ---@param box any ---@return any rayCollision function RL.GetRayCollisionBox( ray, box ) end ---Get collision info between ray and mesh ---- Failure return nil ---- Success return RayCollision ---@param ray any ---@param mesh any ---@param transform table ---@return any rayCollision function RL.GetRayCollisionMesh( ray, mesh, transform ) end ---Get collision info between ray and triangle ---- Failure return nil ---- Success return RayCollision ---@param ray any ---@param p1 table ---@param p2 table ---@param p3 table ---@return any rayCollision function RL.GetRayCollisionTriangle( ray, p1, p2, p3 ) end ---Get collision info between ray and quad ---- Failure return nil ---- Success return RayCollision ---@param ray any ---@param p1 table ---@param p2 table ---@param p3 table ---@param p4 table ---@return any rayCollision function RL.GetRayCollisionQuad( ray, p1, p2, p3, p4 ) end -- Audio - Audio device management ---Set master volume ( listener ) ---- Failure return false ---- Success return true ---@param volume number ---@return any success function RL.SetMasterVolume( volume ) end -- Audio - Wave/Sound Loading ---Load sound from file ---- Failure return -1 ---- Success return int ---@param fileName string ---@return any sound function RL.LoadSound( fileName ) end ---Load wave data from file ---- Failure return -1 ---- Success return int ---@param fileName string ---@return any wave function RL.LoadWave( fileName ) end ---Load sound from wave data ---- Failure return -1 ---- Success return int ---@param wave any ---@return any sound function RL.LoadSoundFromWave( wave ) end ---Unload sound ---- Failure return false ---- Success return true ---@param sound any ---@return any success function RL.UnloadSound( sound ) end ---Unload wave data ---- Failure return false ---- Success return true ---@param wave any ---@return any success function RL.UnloadWave( wave ) end ---Export wave data to file, returns true on success ---- Failure return false ---- Success return true ---@param wave any ---@param fileName string ---@return any success function RL.ExportWave( wave, fileName ) end ---Export wave sample data to code (.h), returns true on success ---- Failure return false ---- Success return true ---@param wave any ---@param fileName string ---@return any success function RL.ExportWaveAsCode( wave, fileName ) end -- Audio - Wave/Sound management ---Play a sound ---- Failure return false ---- Success return true ---@param sound any ---@return any success function RL.PlaySound( sound ) end ---Stop playing a sound ---- Failure return false ---- Success return true ---@param sound any ---@return any success function RL.StopSound( sound ) end ---Pause a sound ---- Failure return false ---- Success return true ---@param sound any ---@return any success function RL.PauseSound( sound ) end ---Resume a paused sound ---- Failure return false ---- Success return true ---@param sound any ---@return any success function RL.ResumeSound( sound ) end ---Check if a sound is currently playing ---- Failure return nil ---- Success return bool ---@param sound any ---@return any playing function RL.IsSoundPlaying( sound ) end ---Set volume for a sound ( 1.0 is max level ) ---- Failure return false ---- Success return true ---@param sound any ---@param volume number ---@return any success function RL.SetSoundVolume( sound, volume ) end ---Set pitch for a sound ( 1.0 is base level ) ---- Failure return false ---- Success return true ---@param sound any ---@param pitch number ---@return any success function RL.SetSoundPitch( sound, pitch ) end ---Set pan for a sound ( 0.5 is center ) ---- Failure return false ---- Success return true ---@param sound any ---@param pan number ---@return any success function RL.SetSoundPan( sound, pan ) end ---Convert wave data to desired format ---- Failure return false ---- Success return true ---@param wave any ---@param sampleRate integer ---@param sampleSize integer ---@param channels integer ---@return any success function RL.WaveFormat( wave, sampleRate, sampleSize, channels ) end ---Copy a wave to a new wave ---- Failure return -1 ---- Success return int ---@param wave any ---@return any wave function RL.WaveCopy( wave ) end ---Crop a wave to defined samples range ---- Failure return false ---- Success return true ---@param wave any ---@param initSample integer ---@param finalSample integer ---@return any success function RL.WaveCrop( wave, initSample, finalSample ) end -- Audio - Music management ---Load music stream from file ---- Failure return false ---- Success return true ---@param fileName string ---@return any success function RL.LoadMusicStream( fileName ) end ---Start music playing ---@return any RL.PlayMusicStream function RL.PlayMusicStream() end ---Check if music is playing ---- Success return bool ---@return any playing function RL.IsMusicStreamPlaying() end ---Stop music playing ---@return any RL.StopMusicStream function RL.StopMusicStream() end ---Pause music playing ---@return any RL.PauseMusicStream function RL.PauseMusicStream() end ---Resume playing paused music ---@return any RL.ResumeMusicStream function RL.ResumeMusicStream() end ---Seek music to a position ( in seconds ) ---- Failure return false ---- Success return true ---@param position number ---@return any success function RL.SeekMusicStream( position ) end ---Set volume for music ( 1.0 is max level ) ---- Failure return false ---- Success return true ---@param volume number ---@return any success function RL.SetMusicVolume( volume ) end ---Set pitch for a music ( 1.0 is base level ) ---- Failure return false ---- Success return true ---@param pitch number ---@return any success function RL.SetMusicPitch( pitch ) end ---Set pan for a music ( 0.5 is center ) ---- Failure return false ---- Success return true ---@param pan number ---@return any success function RL.SetMusicPan( pan ) end ---Get music time length ( in seconds ) ---- Success return float ---@return any length function RL.GetMusicTimeLength() end ---Get current music time played ( in seconds ) ---- Success return float ---@return any played function RL.GetMusicTimePlayed() end -- Math - Utils ---Clamp float value ---- Failure return false ---- Success return float ---@param value number ---@param min number ---@param max number ---@return any result function RL.Clamp( value, min, max ) end ---Calculate linear interpolation between two floats ---- Failure return false ---- Success return float ---@param start number ---@param end number ---@param amount number ---@return any result function RL.Lerp( start, end, amount ) end ---Normalize input value within input range ---- Failure return false ---- Success return float ---@param value number ---@param start number ---@param end number ---@return any result function RL.Normalize( value, start, end ) end ---Remap input value within input range to output range ---- Failure return false ---- Success return float ---@param value number ---@param inputStart number ---@param inputEnd number ---@param outputStart number ---@param outputEnd number ---@return any result function RL.Remap( value, inputStart, inputEnd, outputStart, outputEnd ) end ---Wrap input value from min to max ---- Failure return false ---- Success return float ---@param value number ---@param min number ---@param max number ---@return any result function RL.Wrap( value, min, max ) end ---Check whether two given floats are almost equal ---- Failure return false ---- Success return int ---@param x number ---@param y number ---@return any result function RL.FloatEquals( x, y ) end -- Math - Vector2 ---Vector with components value 0.0f ---- Success return Vector2 ---@return any result function RL.Vector2Zero() end ---Vector with components value 1.0f ---- Success return Vector2 ---@return any result function RL.Vector2One() end ---Add two vectors (v1 + v2) ---- Failure return false ---- Success return Vector2 ---@param v1 table ---@param v2 table ---@return any result function RL.Vector2Add( v1, v2 ) end ---Add vector and float value ---- Failure return false ---- Success return Vector2 ---@param v table ---@param add number ---@return any result function RL.Vector2AddValue( v, add ) end ---Subtract two vectors (v1 - v2) ---- Failure return false ---- Success return Vector2 ---@param v1 table ---@param v2 table ---@return any result function RL.Vector2Subtract( v1, v2 ) end ---Subtract vector by float value ---- Failure return false ---- Success return Vector2 ---@param v table ---@param sub number ---@return any result function RL.Vector2SubtractValue( v, sub ) end ---Calculate vector length ---- Failure return false ---- Success return float ---@param v any ---@return any result function RL.Vector2Length( v ) end ---Calculate vector square length ---- Failure return false ---- Success return float ---@param v any ---@return any result function RL.Vector2LengthSqr( v ) end ---Calculate two vectors dot product ---- Failure return false ---- Success return float ---@param v1 table ---@param v2 table ---@return any result function RL.Vector2DotProduct( v1, v2 ) end ---Calculate distance between two vectors ---- Failure return false ---- Success return float ---@param v1 table ---@param v2 table ---@return any result function RL.Vector2Distance( v1, v2 ) end ---Calculate square distance between two vectors ---- Failure return false ---- Success return float ---@param v1 table ---@param v2 table ---@return any result function RL.Vector2DistanceSqr( v1, v2 ) end ---Calculate angle from two vectors ---- Failure return false ---- Success return float ---@param v1 table ---@param v2 table ---@return any result function RL.Vector2Angle( v1, v2 ) end ---Calculate angle defined by a two vectors line. ---NOTE: Parameters need to be normalized. ---Current implementation should be aligned with glm::angle. ---- Failure return false ---- Success return float ---@param start table ---@param end table ---@return any result function RL.Vector2LineAngle( start, end ) end ---Scale vector ( multiply by value ) ---- Failure return false ---- Success return Vector2 ---@param v table ---@param scale number ---@return any result function RL.Vector2Scale( v, scale ) end ---Multiply vector by vector ---- Failure return false ---- Success return Vector2 ---@param v1 table ---@param v2 table ---@return any result function RL.Vector2Multiply( v1, v2 ) end ---Negate vector ---- Failure return false ---- Success return Vector2 ---@param v table ---@return any result function RL.Vector2Negate( v ) end ---Divide vector by vector ---- Failure return false ---- Success return Vector2 ---@param v1 table ---@param v2 table ---@return any result function RL.Vector2Divide( v1, v2 ) end ---Normalize provided vector ---- Failure return false ---- Success return Vector2 ---@param v table ---@return any result function RL.Vector2Normalize( v ) end ---Transforms a Vector2 by a given Matrix ---- Failure return false ---- Success return Vector2 ---@param v table ---@param mat table ---@return any result function RL.Vector2Transform( v, mat ) end ---Calculate linear interpolation between two vectors ---- Failure return false ---- Success return Vector2 ---@param v1 table ---@param v2 table ---@param amount number ---@return any result function RL.Vector2Lerp( v1, v2, amount ) end ---Calculate reflected vector to normal ---- Failure return false ---- Success return Vector2 ---@param v table ---@param normal table ---@return any result function RL.Vector2Reflect( v, normal ) end ---Rotate vector by angle ---- Failure return false ---- Success return Vector2 ---@param v table ---@param angle number ---@return any result function RL.Vector2Rotate( v, angle ) end ---Move Vector towards target ---- Failure return false ---- Success return Vector2 ---@param v table ---@param target table ---@param maxDistance number ---@return any result function RL.Vector2MoveTowards( v, target, maxDistance ) end ---Invert the given vector ---- Failure return false ---- Success return Vector2 ---@param v table ---@return any result function RL.Vector2Invert( v ) end ---Clamp the components of the vector between ---min and max values specified by the given vectors ---- Failure return false ---- Success return Vector2 ---@param v table ---@param min table ---@param max table ---@return any result function RL.Vector2Clamp( v, min, max ) end ---Clamp the magnitude of the vector between two min and max values ---- Failure return false ---- Success return Vector2 ---@param v table ---@param min number ---@param max number ---@return any result function RL.Vector2ClampValue( v, min, max ) end ---Check whether two given vectors are almost equal ---- Failure return false ---- Success return int ---@param v1 table ---@param v2 table ---@return any result function RL.Vector2Equals( v1, v2 ) end -- Math - Vector 3 ---Vector with components value 0.0f ---- Success return Vector3 ---@return any result function RL.Vector3Zero() end ---Vector with components value 1.0f ---- Success return Vector3 ---@return any result function RL.Vector3One() end ---Add two vectors ---- Failure return false ---- Success return Vector3 ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3Add( v1, v2 ) end ---Add vector and float value ---- Failure return false ---- Success return Vector3 ---@param v table ---@param add number ---@return any result function RL.Vector3AddValue( v, add ) end ---Subtract two vectors ---- Failure return false ---- Success return Vector3 ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3Subtract( v1, v2 ) end ---Subtract vector by float value ---- Failure return false ---- Success return Vector3 ---@param v table ---@param sub number ---@return any result function RL.Vector3SubtractValue( v, sub ) end ---Multiply vector by scalar ---- Failure return false ---- Success return Vector3 ---@param v table ---@param scalar number ---@return any result function RL.Vector3Scale( v, scalar ) end ---Multiply vector by vector ---- Failure return false ---- Success return Vector3 ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3Multiply( v1, v2 ) end ---Calculate two vectors cross product ---- Failure return false ---- Success return Vector3 ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3CrossProduct( v1, v2 ) end ---Calculate one vector perpendicular vector ---- Failure return false ---- Success return Vector3 ---@param v table ---@return any result function RL.Vector3Perpendicular( v ) end ---Calculate vector length ---- Failure return false ---- Success return float ---@param v table ---@return any result function RL.Vector3Length( v ) end ---Calculate vector square length ---- Failure return false ---- Success return float ---@param v table ---@return any result function RL.Vector3LengthSqr( v ) end ---Calculate two vectors dot product ---- Failure return false ---- Success return float ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3DotProduct( v1, v2 ) end ---Calculate distance between two vectors ---- Failure return false ---- Success return float ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3Distance( v1, v2 ) end ---Calculate square distance between two vectors ---- Failure return false ---- Success return float ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3DistanceSqr( v1, v2 ) end ---Calculate angle between two vectors ---- Failure return false ---- Success return float ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3Angle( v1, v2 ) end ---Negate provided vector ( invert direction ) ---- Failure return false ---- Success return Vector3 ---@param v table ---@return any result function RL.Vector3Negate( v ) end ---Divide vector by vector ---- Failure return false ---- Success return Vector3 ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3Divide( v1, v2 ) end ---Normalize provided vector ---- Failure return false ---- Success return Vector3 ---@param v table ---@return any result function RL.Vector3Normalize( v ) end ---Orthonormalize provided vectors. Makes vectors normalized and orthogonal to each other. ---Gram-Schmidt function implementation ---- Failure return false ---- Success return Vector3, Vector3 ---@param v1 table ---@param v2 table ---@return any v1 ---@return any v2 function RL.Vector3OrthoNormalize( v1, v2 ) end ---Transforms a Vector3 by a given Matrix ---- Failure return false ---- Success return Vector3 ---@param v table ---@param mat table ---@return any result function RL.Vector3Transform( v, mat ) end ---Transform a vector by quaternion rotation ---- Failure return false ---- Success return Vector3 ---@param v table ---@param q table ---@return any result function RL.Vector3RotateByQuaternion( v, q ) end ---Rotates a vector around an axis ---- Failure return false ---- Success return Vector3 ---@param v table ---@param axis table ---@param angle number ---@return any result function RL.Vector3RotateByAxisAngle( v, axis, angle ) end ---Calculate linear interpolation between two vectors ---- Failure return false ---- Success return Vector3 ---@param v1 table ---@param v2 table ---@param amount number ---@return any result function RL.Vector3Lerp( v1, v2, amount ) end ---Calculate reflected vector to normal ---- Failure return false ---- Success return Vector3 ---@param v table ---@param normal table ---@return any result function RL.Vector3Reflect( v, normal ) end ---Get min value for each pair of components ---- Failure return false ---- Success return Vector3 ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3Min( v1, v2 ) end ---Get max value for each pair of components ---- Failure return false ---- Success return Vector3 ---@param v1 table ---@param v2 table ---@return any result function RL.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 ---- Failure return false ---- Success return Vector3 ---@param p table ---@param a table ---@param b table ---@param c table ---@return any result function RL.Vector3Barycenter( p, a, b, c ) end ---Projects a Vector3 from screen space into object space ---NOTE: We are avoiding calling other raymath functions despite available ---- Failure return false ---- Success return Vector3 ---@param source table ---@param projection table ---@param view table ---@return any result function RL.Vector3Unproject( source, projection, view ) end ---Invert the given vector ---- Failure return false ---- Success return Vector3 ---@param v table ---@return any result function RL.Vector3Invert( v ) end ---Clamp the components of the vector between ---min and max values specified by the given vectors ---- Failure return false ---- Success return Vector3 ---@param v table ---@param min table ---@param max table ---@return any result function RL.Vector3Clamp( v, min, max ) end ---Clamp the magnitude of the vector between two values ---- Failure return false ---- Success return Vector3 ---@param v table ---@param min number ---@param max number ---@return any result function RL.Vector3ClampValue( v, min, max ) end ---Check whether two given vectors are almost equal ---- Failure return false ---- Success return int ---@param v1 table ---@param v2 table ---@return any result function RL.Vector3Equals( v1, v2 ) 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 ---- Failure return false ---- Success return Vector3 ---@param v table ---@param n table ---@param r number ---@return any result function RL.Vector3Refract( v, n, r ) end -- Math - Matrix ---Compute matrix determinant ---- Failure return false ---- Success return float ---@param mat table ---@return any result function RL.MatrixDeterminant( mat ) end ---Get the trace of the matrix ( sum of the values along the diagonal ) ---- Failure return false ---- Success return float ---@param mat table ---@return any result function RL.MatrixTrace( mat ) end ---Transposes provided matrix ---- Failure return false ---- Success return Matrix ---@param mat table ---@return any result function RL.MatrixTranspose( mat ) end ---Invert provided matrix ---- Failure return false ---- Success return Matrix ---@param mat table ---@return any result function RL.MatrixInvert( mat ) end ---Get identity matrix ---- Success return Matrix ---@return any result function RL.MatrixIdentity() end ---Add two matrices ---- Failure return false ---- Success return Matrix ---@param left table ---@param right table ---@return any result function RL.MatrixAdd( left, right ) end ---Subtract two matrices (left - right) ---- Failure return false ---- Success return Matrix ---@param left table ---@param right table ---@return any result function RL.MatrixSubtract( left, right ) end ---Get two matrix multiplication ---- Failure return false ---- Success return Matrix ---@param left table ---@param right table ---@return any result function RL.MatrixMultiply( left, right ) end ---Get translation matrix ---- Failure return false ---- Success return Matrix ---@param translate table ---@return any result function RL.MatrixTranslate( translate ) end ---Create rotation matrix from axis and angle. NOTE: Angle should be provided in radians ---- Failure return false ---- Success return Matrix ---@param axis table ---@param angle number ---@return any result function RL.MatrixRotate( axis, angle ) end ---Get x-rotation matrix ( angle in radians ) ---- Failure return false ---- Success return Matrix ---@param angle number ---@return any result function RL.MatrixRotateX( angle ) end ---Get y-rotation matrix ( angle in radians ) ---- Failure return false ---- Success return Matrix ---@param angle number ---@return any result function RL.MatrixRotateY( angle ) end ---Get z-rotation matrix ( angle in radians ) ---- Failure return false ---- Success return Matrix ---@param angle number ---@return any result function RL.MatrixRotateZ( angle ) end ---Get xyz-rotation matrix ( angles in radians ) ---- Failure return false ---- Success return Matrix ---@param angle table ---@return any result function RL.MatrixRotateXYZ( angle ) end ---Get zyx-rotation matrix ( angles in radians ) ---- Failure return false ---- Success return Matrix ---@param angle table ---@return any result function RL.MatrixRotateZYX( angle ) end ---Get scaling matrix ---- Failure return false ---- Success return Matrix ---@param scale table ---@return any result function RL.MatrixScale( scale ) end ---Get perspective projection matrix ---- Failure return false ---- Success return Matrix ---@param left any ---@param right any ---@param bottom any ---@param top any ---@param near any ---@param far any ---@return any result function RL.MatrixFrustum( left, right, bottom, top, near, far ) end ---Get perspective projection matrix ---- Failure return false ---- Success return Matrix ---@param fovy any ---@param aspect any ---@param near any ---@param far any ---@return any result function RL.MatrixPerspective( fovy, aspect, near, far ) end ---Get orthographic projection matrix ---- Failure return false ---- Success return Matrix ---@param left any ---@param right any ---@param bottom any ---@param top any ---@param near any ---@param far any ---@return any result function RL.MatrixOrtho( left, right, bottom, top, near, far ) end ---Get camera look-at matrix ( View matrix ) ---- Failure return false ---- Success return Matrix ---@param eye table ---@param target table ---@param up table ---@return any result function RL.MatrixLookAt( eye, target, up ) end -- Math - Quaternion ---Add two quaternions ---- Failure return false ---- Success return Quaternion ---@param q1 table ---@param q2 table ---@return any result function RL.QuaternionAdd( q1, q2 ) end ---Add quaternion and float value ---- Failure return false ---- Success return Quaternion ---@param q table ---@param add number ---@return any result function RL.QuaternionAddValue( q, add ) end ---Subtract two quaternions ---- Failure return false ---- Success return Quaternion ---@param q1 table ---@param q2 table ---@return any result function RL.QuaternionSubtract( q1, q2 ) end ---Subtract quaternion and float value ---- Failure return false ---- Success return Quaternion ---@param q table ---@param sub number ---@return any result function RL.QuaternionSubtractValue( q, sub ) end ---Get identity quaternion ---- Success return Quaternion ---@return any result function RL.QuaternionIdentity() end ---Computes the length of a quaternion ---- Failure return false ---- Success return float ---@param q table ---@return any result function RL.QuaternionLength( q ) end ---Normalize provided quaternion ---- Failure return false ---- Success return Quaternion ---@param q table ---@return any result function RL.QuaternionNormalize( q ) end ---Invert provided quaternion ---- Failure return false ---- Success return Quaternion ---@param q table ---@return any result function RL.QuaternionInvert( q ) end ---Calculate two quaternion multiplication ---- Failure return false ---- Success return Quaternion ---@param q1 table ---@param q2 table ---@return any result function RL.QuaternionMultiply( q1, q2 ) end ---Scale quaternion by float value ---- Failure return false ---- Success return Quaternion ---@param q table ---@param mul number ---@return any result function RL.QuaternionScale( q, mul ) end ---Divide two quaternions ---- Failure return false ---- Success return Quaternion ---@param q1 table ---@param q2 table ---@return any result function RL.QuaternionDivide( q1, q2 ) end ---Calculate linear interpolation between two quaternions ---- Failure return false ---- Success return Quaternion ---@param q1 table ---@param q2 table ---@param amount number ---@return any result function RL.QuaternionLerp( q1, q2, amount ) end ---Calculate slerp-optimized interpolation between two quaternions ---- Failure return false ---- Success return Quaternion ---@param q1 table ---@param q2 table ---@param amount number ---@return any result function RL.QuaternionNlerp( q1, q2, amount ) end ---Calculates spherical linear interpolation between two quaternions ---- Failure return false ---- Success return Quaternion ---@param q1 table ---@param q2 table ---@param amount number ---@return any result function RL.QuaternionSlerp( q1, q2, amount ) end ---Calculate quaternion based on the rotation from one vector to another ---- Failure return false ---- Success return Quaternion ---@param from table ---@param to table ---@return any result function RL.QuaternionFromVector3ToVector3( from, to ) end ---Get a quaternion for a given rotation matrix ---- Failure return false ---- Success return Quaternion ---@param mat table ---@return any result function RL.QuaternionFromMatrix( mat ) end ---Get a quaternion for a given rotation matrix ---- Failure return false ---- Success return Matrix ---@param q table ---@return any result function RL.QuaternionToMatrix( q ) end ---Get rotation quaternion for an angle and axis ---NOTE: angle must be provided in radians ---- Failure return false ---- Success return Quaternion ---@param axis table ---@param angle number ---@return any result function RL.QuaternionFromAxisAngle( axis, angle ) end ---Get the rotation angle and axis for a given quaternion ---- Failure return false ---- Success return Vector3, float ---@param q table ---@return any axis ---@return any angle function RL.QuaternionToAxisAngle( q ) end ---Get the quaternion equivalent to Euler angles ---NOTE: Rotation order is ZYX ---- Failure return false ---- Success return Quaternion ---@param pitch number ---@param yaw number ---@param roll number ---@return any result function RL.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 ---- Failure return false ---- Success return Vector3 ---@param q table ---@return any result function RL.QuaternionToEuler( q ) end ---Transform a quaternion given a transformation matrix ---- Failure return false ---- Success return Quaternion ---@param q table ---@param mat table ---@return any result function RL.QuaternionTransform( q, mat ) end ---Check whether two given quaternions are almost equal ---- Failure return false ---- Success return int ---@param q1 table ---@param q2 table ---@return any result function RL.QuaternionEquals( q1, q2 ) end -- Gui - Global ---Enable gui controls ( global state ) ---@return any RL.GuiEnable function RL.GuiEnable() end ---Disable gui controls ( global state ) ---@return any RL.GuiDisable function RL.GuiDisable() end ---Lock gui controls ( global state ) ---@return any RL.GuiLock function RL.GuiLock() end ---Unlock gui controls ( global state ) ---@return any RL.GuiUnlock function RL.GuiUnlock() end ---Check if gui is locked ( global state ) ---- Success return bool ---@return any locked function RL.GuiIsLocked() end ---Set gui controls alpha ( global state ), alpha goes from 0.0f to 1.0f ---- Failure return false ---- Success return true ---@param alpha number ---@return any success function RL.GuiFade( alpha ) end ---Set gui state ( global state ) ---- Failure return false ---- Success return true ---@param state integer ---@return any success function RL.GuiSetState( state ) end ---Get gui state ( global state ) ---- Success return int ---@return any state function RL.GuiGetState() end -- Gui - Font ---Set gui custom font ( Global state ) ---- Failure return false ---- Success return true ---@param font any ---@return any success function RL.GuiSetFont( font ) end -- Gui - Style ---Set one style property ---- Failure return false ---- Success return true ---@param control integer ---@param property integer ---@param value integer ---@return any success function RL.GuiSetStyle( control, property, value ) end ---Get one style property ---- Failure return false ---- Success return int ---@param control integer ---@param property integer ---@return any value function RL.GuiGetStyle( control, property ) end ---Load style file over global style variable ( .rgs ) ---- Failure return false ---- Success return true ---@param fileName string ---@return any success function RL.GuiLoadStyle( fileName ) end ---Load style default over global style ---@return any RL.GuiLoadStyleDefault function RL.GuiLoadStyleDefault() end -- Gui - Container ---Window Box control, shows a window that can be closed ---- Failure return nil ---- Success return bool ---@param bounds table ---@param title string ---@return any state function RL.GuiWindowBox( bounds, title ) end ---Group Box control with text name ---- Failure return false ---- Success return true ---@param bounds table ---@param text string ---@return any success function RL.GuiGroupBox( bounds, text ) end ---Line separator control, could contain text ---- Failure return false ---- Success return true ---@param bounds table ---@param text string ---@return any success function RL.GuiLine( bounds, text ) end ---Panel control, useful to group controls ---- Failure return false ---- Success return true ---@param bounds table ---@param text string ---@return any success function RL.GuiPanel( bounds, text ) end ---Scroll Panel control ---- Failure return false ---- Success return Rectangle, Vector2 ---@param bounds table ---@param text string ---@param content table ---@param scroll table ---@return any view ---@return any scroll function RL.GuiScrollPanel( bounds, text, content, scroll ) end -- Gui - Basic ---Label control, shows text ---- Failure return false ---- Success return true ---@param bounds table ---@param text string ---@return any success function RL.GuiLabel( bounds, text ) end ---Button control, returns true when clicked ---- Failure return nil ---- Success return boolean ---@param bounds table ---@param text string ---@return any clicked function RL.GuiButton( bounds, text ) end ---Label button control, show true when clicked ---- Failure return nil ---- Success return boolean ---@param bounds table ---@param text string ---@return any clicked function RL.GuiLabelButton( bounds, text ) end ---Toggle Button control, returns true when active ---- Failure return nil ---- Success return boolean ---@param bounds table ---@param text string ---@param active boolean ---@return any active function RL.GuiToggle( bounds, text, active ) end ---Toggle Group control, returns active toggle index ---- Failure return false ---- Success return int ---@param bounds table ---@param text string ---@param active integer ---@return any index function RL.GuiToggleGroup( bounds, text, active ) end ---Check Box control, returns true when active ---- Failure return nil ---- Success return boolean ---@param bounds table ---@param text string ---@param checked boolean ---@return any active function RL.GuiCheckBox( bounds, text, checked ) end ---Combo Box control, returns selected item index ---- Failure return nil ---- Success return int ---@param bounds table ---@param text string ---@param active integer ---@return any active function RL.GuiComboBox( bounds, text, active ) end ---Text Box control, updates input text ---- Failure return nil ---- Success return boolean, string ---@param bounds table ---@param text string ---@param textSize integer ---@param editMode boolean ---@return any pressed ---@return any text function RL.GuiTextBox( bounds, text, textSize, editMode ) end ---Text Box control with multiple lines ---- Failure return nil ---- Success return boolean, string ---@param bounds table ---@param text string ---@param textSize integer ---@param editMode boolean ---@return any pressed ---@return any text function RL.GuiTextBoxMulti( bounds, text, textSize, editMode ) end ---Spinner control, returns selected value ---- Failure return nil ---- Success return boolean, int ---@param bounds table ---@param text string ---@param value integer ---@param minValue integer ---@param maxValue integer ---@param editMode boolean ---@return any pressed ---@return any value function RL.GuiSpinner( bounds, text, value, minValue, maxValue, editMode ) end ---Value Box control, updates input text with numbers ---- Failure return nil ---- Success return boolean, int ---@param bounds table ---@param text string ---@param value integer ---@param minValue integer ---@param maxValue integer ---@param editMode boolean ---@return any pressed ---@return any value function RL.GuiValueBox( bounds, text, value, minValue, maxValue, editMode ) end ---Slider control, returns selected value ---- Failure return nil ---- Success return float ---@param bounds table ---@param textLeft string ---@param textRight string ---@param value number ---@param minValue number ---@param maxValue number ---@return any value function RL.GuiSlider( bounds, textLeft, textRight, value, minValue, maxValue ) end ---Slider Bar control, returns selected value ---- Failure return nil ---- Success return float ---@param bounds table ---@param textLeft string ---@param textRight string ---@param value number ---@param minValue number ---@param maxValue number ---@return any value function RL.GuiSliderBar( bounds, textLeft, textRight, value, minValue, maxValue ) end ---Progress Bar control, shows current progress value ---- Failure return nil ---- Success return float ---@param bounds table ---@param textLeft string ---@param textRight string ---@param value number ---@param minValue number ---@param maxValue number ---@return any value function RL.GuiProgressBar( bounds, textLeft, textRight, value, minValue, maxValue ) end ---Scroll Bar control ---- Failure return nil ---- Success return int ---@param bounds table ---@param value integer ---@param minValue integer ---@param maxValue integer ---@return any value function RL.GuiScrollBar( bounds, value, minValue, maxValue ) end ---Dropdown Box control, returns selected item ---- Failure return nil ---- Success return bool, int ---@param bounds table ---@param text string ---@param active integer ---@param editMode boolean ---@return any pressed ---@return any item function RL.GuiDropdownBox( bounds, text, active, editMode ) end ---Status Bar control, shows info text ---- Failure return false ---- Success return true ---@param bounds table ---@param text string ---@return any success function RL.GuiStatusBar( bounds, text ) end ---Dummy control for placeholders ---- Failure return false ---- Success return true ---@param bounds table ---@param text string ---@return any success function RL.GuiDummyRec( bounds, text ) end ---Grid control, returns mouse cell position ---- Failure return false ---- Success return Vector2 ---@param bounds table ---@param text string ---@param spacing number ---@param subdivs integer ---@return any cell function RL.GuiGrid( bounds, text, spacing, subdivs ) end -- Gui - Advanced ---List View control, returns selected list item index and scroll index ---- Failure return nil ---- Success return int, int ---@param bounds table ---@param text string ---@param scrollIndex integer ---@param active integer ---@return any itemIndex ---@return any scrollIndex function RL.GuiListView( bounds, text, scrollIndex, active ) end ---List View with extended parameters, returns selected list item index, scroll index and focus ---- Failure return nil ---- Success return int, int, int ---@param bounds table ---@param text string ---@param focus integer ---@param scrollIndex integer ---@param active integer ---@return any itemIndex ---@return any scrollIndex ---@return any focus function RL.GuiListViewEx( bounds, text, focus, scrollIndex, active ) end ---Message Box control, displays a message, returns button index ( 0 is x button ) ---- Failure return false ---- Success return int ---@param bounds table ---@param title string ---@param message string ---@param buttons string ---@return any buttonIndex function RL.GuiMessageBox( bounds, title, message, buttons ) end ---Text Input Box control, ask for text, supports secret ---- Failure return false ---- Success return int, string, int ---@param bounds table ---@param title string ---@param message string ---@param buttons string ---@param text string ---@param textMaxSize integer ---@param secretViewActive integer ---@return any buttonIndex ---@return any text ---@return any secretViewActive function RL.GuiTextInputBox( bounds, title, message, buttons, text, textMaxSize, secretViewActive ) end ---Color Picker control ( multiple color controls ) ---- Failure return false ---- Success return Color ---@param bounds table ---@param text string ---@param color table ---@return any color function RL.GuiColorPicker( bounds, text, color ) end ---Color Panel control ---- Failure return false ---- Success return Color ---@param bounds table ---@param text string ---@param color table ---@return any color function RL.GuiColorPanel( bounds, text, color ) end ---Color Bar Alpha control ---- Failure return false ---- Success return float ---@param bounds table ---@param text string ---@param alpha number ---@return any alpha function RL.GuiColorBarAlpha( bounds, text, alpha ) end ---Color Bar Hue control ---- Failure return false ---- Success return float ---@param bounds table ---@param text string ---@param value number ---@return any hue function RL.GuiColorBarHue( bounds, text, value ) end -- Gui - Icons ---Get text with icon id prepended ( if supported ) ---- Failure return false ---- Success return string ---@param iconId integer ---@param text string ---@return any text function RL.GuiIconText( iconId, text ) end ---Draw icon ---- Failure return false ---- Success return true ---@param iconId integer ---@param pos table ---@param pixelSize integer ---@param color table ---@return any success function RL.GuiDrawIcon( iconId, pos, pixelSize, color ) end ---Set icon scale ( 1 by default ) ---- Failure return false ---- Success return true ---@param scale integer ---@return any success function RL.GuiSetIconScale( scale ) end ---Set icon pixel value ---- Failure return false ---- Success return true ---@param iconId integer ---@param pos table ---@return any success function RL.GuiSetIconPixel( iconId, pos ) end ---Clear icon pixel value ---- Failure return false ---- Success return true ---@param iconId integer ---@param pos table ---@return any success function RL.GuiClearIconPixel( iconId, pos ) end ---Check icon pixel value ---- Failure return nil ---- Success return bool ---@param iconId integer ---@param pos table ---@return any value function RL.GuiCheckIconPixel( iconId, pos ) end -- Lights - Basics ---Create a light and get shader locations ---- Failure return -1 ---- Success return int ---@param type integer ---@param position table ---@param target table ---@param color table ---@param shader any ---@return any light function RL.CreateLight( type, position, target, color, shader ) end ---Send light properties to shader ---- Failure return false ---- Success return true ---@param shader any ---@param light any ---@return any success function RL.UpdateLightValues( shader, light ) end -- RLGL - General render state ---Set the line drawing width ---- Failure return false ---- Success return true ---@param width number ---@return any success function RL.rlSetLineWidth( width ) end ---Get the line drawing width ---- Success return float ---@return any width function RL.rlGetLineWidth() end -- Easings - Linear Easing functions ---Ease linear ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseLinear( t, b, c, d ) end -- Easings - Sine Easing functions ---Ease sine in ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseSineIn( t, b, c, d ) end ---Ease sine out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseSineOut( t, b, c, d ) end ---Ease sine in out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseSineInOut( t, b, c, d ) end -- Easings - Circular Easing functions ---Ease circle in ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseCircIn( t, b, c, d ) end ---Ease circle out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseCircOut( t, b, c, d ) end ---Ease circle in out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseCircInOut( t, b, c, d ) end -- Easings - Cubic Easing functions ---Ease cubic in ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseCubicIn( t, b, c, d ) end ---Ease cubic out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseCubicOut( t, b, c, d ) end ---Ease cubic in out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseCubicInOut( t, b, c, d ) end -- Easings - Quadratic Easing functions ---Ease quadratic in ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseQuadIn( t, b, c, d ) end ---Ease quadratic out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseQuadOut( t, b, c, d ) end ---Ease quadratic in out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseQuadInOut( t, b, c, d ) end -- Easings - Exponential Easing functions ---Ease exponential in ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseExpoIn( t, b, c, d ) end ---Ease exponential out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseExpoOut( t, b, c, d ) end ---Ease exponential in out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseExpoInOut( t, b, c, d ) end -- Easings - Back Easing functions ---Ease back in ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseBackIn( t, b, c, d ) end ---Ease back out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseBackOut( t, b, c, d ) end ---Ease back in out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseBackInOut( t, b, c, d ) end -- Easings - Bounce Easing functions ---Ease bounce in ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseBounceIn( t, b, c, d ) end ---Ease bounce out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseBounceOut( t, b, c, d ) end ---Ease bounce in out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseBounceInOut( t, b, c, d ) end -- Easings - Elastic Easing functions ---Ease elastic in ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseElasticIn( t, b, c, d ) end ---Ease elastic out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseElasticOut( t, b, c, d ) end ---Ease elastic in out ---- Failure return false ---- Success return float ---@param t number ---@param b number ---@param c number ---@param d number ---@return any value function RL.EaseElasticInOut( t, b, c, d ) end