diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4fa51eb..178a57b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,7 +29,7 @@ if (NOT raylib_FOUND)
FetchContent_Declare(
raylib
GIT_REPOSITORY https://github.com/raysan5/raylib.git
- GIT_TAG 4.5.0
+ GIT_TAG 5.0
GIT_SHALLOW TRUE
)
FetchContent_GetProperties(raylib)
diff --git a/docs/API.md b/docs/API.md
index ab2e930..38e810a 100644
--- a/docs/API.md
+++ b/docs/API.md
@@ -4,12 +4,12 @@
InitWindow(width, height, title) ⇒ undefined
Initialize window and OpenGL context
-WindowShouldClose() ⇒ boolean
-Check if KEY_ESCAPE pressed or Close icon pressed
-
CloseWindow() ⇒ undefined
Close window and unload OpenGL context
+WindowShouldClose() ⇒ boolean
+Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)
+
IsWindowReady() ⇒ boolean
Check if window has been initialized successfully
@@ -43,6 +43,9 @@
ToggleFullscreen() ⇒ undefined
Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)
+ToggleBorderlessWindowed() ⇒ undefined
+Toggle window state: borderless windowed (only PLATFORM_DESKTOP)
+
MaximizeWindow() ⇒ undefined
Set window state: maximized, if resizable (only PLATFORM_DESKTOP)
@@ -59,23 +62,29 @@
Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)
SetWindowTitle(title) ⇒ undefined
-Set title for window (only PLATFORM_DESKTOP)
+Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB)
SetWindowPosition(x, y) ⇒ undefined
Set window position on screen (only PLATFORM_DESKTOP)
SetWindowMonitor(monitor) ⇒ undefined
-Set monitor for the current window (fullscreen mode)
+Set monitor for the current window
SetWindowMinSize(width, height) ⇒ undefined
Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
+SetWindowMaxSize(width, height) ⇒ undefined
+Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE)
+
SetWindowSize(width, height) ⇒ undefined
Set window dimensions
SetWindowOpacity(opacity) ⇒ undefined
Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)
+SetWindowFocused() ⇒ undefined
+Set window focused (only PLATFORM_DESKTOP)
+
GetWindowHandle() ⇒ number
Get native window handle
@@ -122,7 +131,7 @@
Get window scale DPI factor
GetMonitorName(monitor) ⇒ string
-Get the human-readable, UTF-8 encoded name of the primary monitor
+Get the human-readable, UTF-8 encoded name of the specified monitor
SetClipboardText(text) ⇒ undefined
Set clipboard text content
@@ -136,15 +145,6 @@
DisableEventWaiting() ⇒ undefined
Disable waiting for events on EndDrawing(), automatic events polling
-SwapScreenBuffer() ⇒ undefined
-Swap back buffer with front buffer (screen drawing)
-
-PollInputEvents() ⇒ undefined
-Register all input events
-
-WaitTime(seconds) ⇒ undefined
-Wait for some time (halt program execution)
-
ShowCursor() ⇒ undefined
Shows cursor
@@ -259,27 +259,45 @@
SetTargetFPS(fps) ⇒ undefined
Set target FPS (maximum)
-GetFPS() ⇒ number
-Get current FPS
-
GetFrameTime() ⇒ number
Get time in seconds for last frame drawn (delta time)
GetTime() ⇒ number
Get elapsed time in seconds since InitWindow()
-GetRandomValue(min, max) ⇒ number
-Get a random value between min and max (both included)
+GetFPS() ⇒ number
+Get current FPS
+
+SwapScreenBuffer() ⇒ undefined
+Swap back buffer with front buffer (screen drawing)
+
+PollInputEvents() ⇒ undefined
+Register all input events
+
+WaitTime(seconds) ⇒ undefined
+Wait for some time (halt program execution)
SetRandomSeed(seed) ⇒ undefined
Set the seed for the random number generator
+GetRandomValue(min, max) ⇒ number
+Get a random value between min and max (both included)
+
+LoadRandomSequence(count, min, max) ⇒ number
+Load random values sequence, no values repeated
+
+UnloadRandomSequence(sequence) ⇒ undefined
+Unload random values sequence
+
TakeScreenshot(fileName) ⇒ undefined
Takes a screenshot of current screen (filename extension defines format)
SetConfigFlags(flags) ⇒ undefined
Setup init configuration flags (view FLAGS)
+OpenURL(url) ⇒ undefined
+Open URL with default system browser (if available)
+
SetTraceLogLevel(logLevel) ⇒ undefined
Set the current threshold (minimum) log level
@@ -292,19 +310,16 @@
MemFree(ptr) ⇒ undefined
Internal memory free
-OpenURL(url) ⇒ undefined
-Open URL with default system browser (if available)
-
-LoadFileData(fileName, bytesRead) ⇒ Buffer
+LoadFileData(fileName, dataSize) ⇒ Buffer
Load file data as byte array (read)
UnloadFileData(data) ⇒ undefined
Unload file data allocated by LoadFileData()
-SaveFileData(fileName, data, bytesToWrite) ⇒ boolean
+SaveFileData(fileName, data, dataSize) ⇒ boolean
Save data to file from byte array (write), returns true on success
-ExportDataAsCode(data, size, fileName) ⇒ boolean
+ExportDataAsCode(data, dataSize, fileName) ⇒ boolean
Export data to code (.h), returns true on success
LoadFileText(fileName) ⇒ string
@@ -347,7 +362,7 @@
Get current working directory (uses static string)
GetApplicationDirectory() ⇒ string
-Get the directory if the running application (uses static string)
+Get the directory of the running application (uses static string)
ChangeDirectory(dir) ⇒ boolean
Change working directory, return true on success
@@ -388,9 +403,36 @@
DecodeDataBase64(data, outputSize) ⇒ Buffer
Decode Base64 string data, memory must be MemFree()
+LoadAutomationEventList(fileName) ⇒ AutomationEventList
+Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS
+
+UnloadAutomationEventList(list) ⇒ undefined
+Unload automation events list from file
+
+ExportAutomationEventList(list, fileName) ⇒ boolean
+Export automation events list as text file
+
+SetAutomationEventList(list) ⇒ undefined
+Set automation event list to record to
+
+SetAutomationEventBaseFrame(frame) ⇒ undefined
+Set automation event internal base frame to start recording
+
+StartAutomationEventRecording() ⇒ undefined
+Start recording automation events (AutomationEventList must be set)
+
+StopAutomationEventRecording() ⇒ undefined
+Stop recording automation events
+
+PlayAutomationEvent(event) ⇒ undefined
+Play a recorded automation event
+
IsKeyPressed(key) ⇒ boolean
Check if a key has been pressed once
+IsKeyPressedRepeat(key) ⇒ boolean
+Check if a key has been pressed again (Only PLATFORM_DESKTOP)
+
IsKeyDown(key) ⇒ boolean
Check if a key is being pressed
@@ -400,15 +442,15 @@
IsKeyUp(key) ⇒ boolean
Check if a key is NOT being pressed
-SetExitKey(key) ⇒ undefined
-Set a custom key to exit program (default is ESC)
-
GetKeyPressed() ⇒ number
Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty
GetCharPressed() ⇒ number
Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty
+SetExitKey(key) ⇒ undefined
+Set a custom key to exit program (default is ESC)
+
IsGamepadAvailable(gamepad) ⇒ boolean
Check if a gamepad is available
@@ -536,22 +578,16 @@
Draw a line
DrawLineV(startPos, endPos, color) ⇒ undefined
-Draw a line (Vector version)
+Draw a line (using gl lines)
DrawLineEx(startPos, endPos, thick, color) ⇒ undefined
-Draw a line defining thickness
-
-DrawLineBezier(startPos, endPos, thick, color) ⇒ undefined
-Draw a line using cubic-bezier curves in-out
-
-DrawLineBezierQuad(startPos, endPos, controlPos, thick, color) ⇒ undefined
-Draw line using quadratic bezier curves with a control point
-
-DrawLineBezierCubic(startPos, endPos, startControlPos, endControlPos, thick, color) ⇒ undefined
-Draw line using cubic bezier curves with 2 control points
+Draw a line (using triangles/quads)
DrawLineStrip(points, pointCount, color) ⇒ undefined
-Draw lines sequence
+Draw lines sequence (using gl lines)
+
+DrawLineBezier(startPos, endPos, thick, color) ⇒ undefined
+Draw line segment cubic-bezier in-out interpolation
DrawCircle(centerX, centerY, radius, color) ⇒ undefined
Draw a color-filled circle
@@ -571,6 +607,9 @@
DrawCircleLines(centerX, centerY, radius, color) ⇒ undefined
Draw circle outline
+DrawCircleLinesV(center, radius, color) ⇒ undefined
+Draw circle outline (Vector version)
+
DrawEllipse(centerX, centerY, radiusH, radiusV, color) ⇒ undefined
Draw ellipse
@@ -637,6 +676,51 @@
DrawPolyLinesEx(center, sides, radius, rotation, lineThick, color) ⇒ undefined
Draw a polygon outline of n sides with extended parameters
+DrawSplineLinear(points, pointCount, thick, color) ⇒ undefined
+Draw spline: Linear, minimum 2 points
+
+DrawSplineBasis(points, pointCount, thick, color) ⇒ undefined
+Draw spline: B-Spline, minimum 4 points
+
+DrawSplineCatmullRom(points, pointCount, thick, color) ⇒ undefined
+Draw spline: Catmull-Rom, minimum 4 points
+
+DrawSplineBezierQuadratic(points, pointCount, thick, color) ⇒ undefined
+Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]
+
+DrawSplineBezierCubic(points, pointCount, thick, color) ⇒ undefined
+Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]
+
+DrawSplineSegmentLinear(p1, p2, thick, color) ⇒ undefined
+Draw spline segment: Linear, 2 points
+
+DrawSplineSegmentBasis(p1, p2, p3, p4, thick, color) ⇒ undefined
+Draw spline segment: B-Spline, 4 points
+
+DrawSplineSegmentCatmullRom(p1, p2, p3, p4, thick, color) ⇒ undefined
+Draw spline segment: Catmull-Rom, 4 points
+
+DrawSplineSegmentBezierQuadratic(p1, c2, p3, thick, color) ⇒ undefined
+Draw spline segment: Quadratic Bezier, 2 points, 1 control point
+
+DrawSplineSegmentBezierCubic(p1, c2, c3, p4, thick, color) ⇒ undefined
+Draw spline segment: Cubic Bezier, 2 points, 2 control points
+
+GetSplinePointLinear(startPos, endPos, t) ⇒ Vector2
+Get (evaluate) spline point: Linear
+
+GetSplinePointBasis(p1, p2, p3, p4, t) ⇒ Vector2
+Get (evaluate) spline point: B-Spline
+
+GetSplinePointCatmullRom(p1, p2, p3, p4, t) ⇒ Vector2
+Get (evaluate) spline point: Catmull-Rom
+
+GetSplinePointBezierQuad(p1, c2, p3, t) ⇒ Vector2
+Get (evaluate) spline point: Quadratic Bezier
+
+GetSplinePointBezierCubic(p1, c2, c3, p4, t) ⇒ Vector2
+Get (evaluate) spline point: Cubic Bezier
+
CheckCollisionRecs(rec1, rec2) ⇒ boolean
Check collision between two rectangles
@@ -673,6 +757,9 @@
LoadImageRaw(fileName, width, height, format, headerSize) ⇒ Image
Load image from RAW file data
+LoadImageSvg(fileNameOrString, width, height) ⇒ Image
+Load image from SVG file data or string with specified size
+
LoadImageAnim(fileName, frames) ⇒ Image
Load image sequence from file (frames appended to image.data)
@@ -694,21 +781,24 @@
ExportImage(image, fileName) ⇒ boolean
Export image data to file, returns true on success
+ExportImageToMemory(image, fileType, fileSize) ⇒ Buffer
+Export image to memory buffer
+
ExportImageAsCode(image, fileName) ⇒ boolean
Export image as code file defining an array of bytes, returns true on success
GenImageColor(width, height, color) ⇒ Image
Generate image: plain color
-GenImageGradientV(width, height, top, bottom) ⇒ Image
-Generate image: vertical gradient
-
-GenImageGradientH(width, height, left, right) ⇒ Image
-Generate image: horizontal gradient
+GenImageGradientLinear(width, height, direction, start, end) ⇒ Image
+Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient
GenImageGradientRadial(width, height, density, inner, outer) ⇒ Image
Generate image: radial gradient
+GenImageGradientSquare(width, height, density, inner, outer) ⇒ Image
+Generate image: square gradient
+
GenImageChecked(width, height, checksX, checksY, col1, col2) ⇒ Image
Generate image: checked
@@ -739,6 +829,9 @@
ImageBlurGaussian(image, blurSize) ⇒ undefined
Apply Gaussian blur using a box blur approximation
+ImageRotate(image, degrees) ⇒ undefined
+Rotate image by input angle in degrees (-359 to 359)
+
LoadImageColors(image) ⇒ number
Load color data from image as a Color array (RGBA - 32bit)
@@ -868,25 +961,25 @@
LoadFont(fileName) ⇒ Font
Load font from file into GPU memory (VRAM)
-LoadFontEx(fileName, fontSize, fontChars, glyphCount) ⇒ Font
-Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set
+LoadFontEx(fileName, fontSize, codepoints, codepointCount) ⇒ Font
+Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set
LoadFontFromImage(image, key, firstChar) ⇒ Font
Load font from Image (XNA style)
-LoadFontFromMemory(fileType, fileData, dataSize, fontSize, fontChars, glyphCount) ⇒ Font
+LoadFontFromMemory(fileType, fileData, dataSize, fontSize, codepoints, codepointCount) ⇒ Font
Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
IsFontReady(font) ⇒ boolean
Check if a font is ready
-LoadFontData(fileData, dataSize, fontSize, fontChars, glyphCount, type) ⇒ number
+LoadFontData(fileData, dataSize, fontSize, codepoints, codepointCount, type) ⇒ number
Load font data for further use
-GenImageFontAtlas(chars, recs, glyphCount, fontSize, padding, packMethod) ⇒ Image
+GenImageFontAtlas(glyphs, glyphRecs, glyphCount, fontSize, padding, packMethod) ⇒ Image
Generate image font atlas using chars info
-UnloadFontData(chars, glyphCount) ⇒ undefined
+UnloadFontData(glyphs, glyphCount) ⇒ undefined
Unload font chars info data (RAM)
UnloadFont(font) ⇒ undefined
@@ -910,9 +1003,12 @@
DrawTextCodepoint(font, codepoint, position, fontSize, tint) ⇒ undefined
Draw one character (codepoint)
-DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing, tint) ⇒ undefined
+DrawTextCodepoints(font, codepoints, codepointCount, position, fontSize, spacing, tint) ⇒ undefined
Draw multiple character (codepoint)
+SetTextLineSpacing(spacing) ⇒ undefined
+Set vertical line spacing when drawing with line-breaks
+
MeasureText(text, fontSize) ⇒ number
Measure string width for default font
@@ -1153,7 +1249,7 @@
UnloadModelAnimation(anim) ⇒ undefined
Unload animation data
-UnloadModelAnimations(animations, count) ⇒ undefined
+UnloadModelAnimations(animations, animCount) ⇒ undefined
Unload animation array data
IsModelAnimationValid(model, anim) ⇒ boolean
@@ -1195,6 +1291,9 @@
SetMasterVolume(volume) ⇒ undefined
Set master volume (listener)
+GetMasterVolume() ⇒ number
+Get master volume (listener)
+
LoadWave(fileName) ⇒ Wave
Load wave data from file
@@ -1210,6 +1309,9 @@
LoadSoundFromWave(wave) ⇒ Sound
Load sound from wave data
+LoadSoundAlias(source) ⇒ Sound
+Create a new sound that shares the same sample data as the source sound, does not own the sound data
+
IsSoundReady(sound) ⇒ boolean
Checks if a sound is ready
@@ -1222,6 +1324,9 @@
UnloadSound(sound) ⇒ undefined
Unload sound
+UnloadSoundAlias(alias) ⇒ undefined
+Unload a sound alias (does not deallocate sample data)
+
ExportWave(wave, fileName) ⇒ boolean
Export wave data to file, returns true on success
@@ -1450,7 +1555,7 @@
GuiIsLocked() ⇒ boolean
Check if gui is locked (global state)
-GuiFade(alpha) ⇒ undefined
+GuiSetAlpha(alpha) ⇒ undefined
Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
GuiSetState(state) ⇒ undefined
@@ -1471,82 +1576,115 @@
GuiGetStyle(control, property) ⇒ number
Get one style property
-GuiWindowBox(bounds, title) ⇒ boolean
+GuiLoadStyle(fileName) ⇒ undefined
+Load style file over global style variable (.rgs)
+
+GuiLoadStyleDefault() ⇒ undefined
+Load style default over global style
+
+GuiEnableTooltip() ⇒ undefined
+Enable gui tooltips (global state)
+
+GuiDisableTooltip() ⇒ undefined
+Disable gui tooltips (global state)
+
+GuiSetTooltip(tooltip) ⇒ undefined
+Set tooltip string
+
+GuiIconText(iconId, text) ⇒ string
+Get text with icon id prepended (if supported)
+
+GuiSetIconScale(scale) ⇒ undefined
+Set default icon drawing size
+
+GuiGetIcons() ⇒ number
+Get raygui icons data pointer
+
+GuiLoadIcons(fileName, loadIconsName) ⇒ number
+Load raygui icons file (.rgi) into internal icons data
+
+GuiDrawIcon(iconId, posX, posY, pixelSize, color) ⇒ undefined
+Draw icon using pixel size at specified position
+
+GuiWindowBox(bounds, title) ⇒ number
Window Box control, shows a window that can be closed
-GuiGroupBox(bounds, text) ⇒ undefined
+GuiGroupBox(bounds, text) ⇒ number
Group Box control with text name
-GuiLine(bounds, text) ⇒ undefined
+GuiLine(bounds, text) ⇒ number
Line separator control, could contain text
-GuiPanel(bounds, text) ⇒ undefined
+GuiPanel(bounds, text) ⇒ number
Panel control, useful to group controls
GuiTabBar(bounds, text, count, active) ⇒ number
Tab Bar control, returns TAB to be closed or -1
-GuiScrollPanel(bounds, text, content, scroll) ⇒ Rectangle
+GuiScrollPanel(bounds, text, content, scroll, view) ⇒ number
Scroll Panel control
-GuiLabel(bounds, text) ⇒ undefined
-Label control, shows text
+GuiLabel(bounds, text) ⇒ number
+Label control
-GuiButton(bounds, text) ⇒ boolean
+GuiButton(bounds, text) ⇒ number
Button control, returns true when clicked
-GuiLabelButton(bounds, text) ⇒ boolean
-Label button control, show true when clicked
+GuiLabelButton(bounds, text) ⇒ number
+Label button control, returns true when clicked
-GuiToggle(bounds, text, active) ⇒ boolean
-Toggle Button control, returns true when active
+GuiToggle(bounds, text, active) ⇒ number
+Toggle Button control
GuiToggleGroup(bounds, text, active) ⇒ number
-Toggle Group control, returns active toggle index
+Toggle Group control
-GuiCheckBox(bounds, text, checked) ⇒ boolean
+GuiToggleSlider(bounds, text, active) ⇒ number
+Toggle Slider control
+
+GuiCheckBox(bounds, text, checked) ⇒ number
Check Box control, returns true when active
GuiComboBox(bounds, text, active) ⇒ number
-Combo Box control, returns selected item index
+Combo Box control
-GuiDropdownBox(bounds, text, active, editMode) ⇒ boolean
-Dropdown Box control, returns selected item
+GuiDropdownBox(bounds, text, active, editMode) ⇒ number
+Dropdown Box control
-GuiSpinner(bounds, text, value, minValue, maxValue, editMode) ⇒ boolean
-Spinner control, returns selected value
+GuiSpinner(bounds, text, value, minValue, maxValue, editMode) ⇒ number
+Spinner control
-GuiValueBox(bounds, text, value, minValue, maxValue, editMode) ⇒ boolean
+GuiValueBox(bounds, text, value, minValue, maxValue, editMode) ⇒ number
Value Box control, updates input text with numbers
-GuiTextBox(bounds, text, textSize, editMode) ⇒ boolean
-Text Box control, updates input text
+GuiValueBoxFloat(bounds, text, textValue, value, editMode) ⇒ number
+Value box control for float values
-GuiTextBoxMulti(bounds, text, textSize, editMode) ⇒ boolean
-Text Box control with multiple lines
+GuiTextBox(bounds, text, textSize, editMode) ⇒ number
+Text Box control, updates input text
GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number
-Slider control, returns selected value
+Slider control
GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number
-Slider Bar control, returns selected value
+Slider Bar control
GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number
-Progress Bar control, shows current progress value
+Progress Bar control
-GuiStatusBar(bounds, text) ⇒ undefined
+GuiStatusBar(bounds, text) ⇒ number
Status Bar control, shows info text
-GuiDummyRec(bounds, text) ⇒ undefined
+GuiDummyRec(bounds, text) ⇒ number
Dummy control for placeholders
-GuiGrid(bounds, text, spacing, subdivs) ⇒ Vector2
-Grid control, returns mouse cell position
+GuiGrid(bounds, text, spacing, subdivs, mouseCell) ⇒ number
+Grid control
GuiListView(bounds, text, scrollIndex, active) ⇒ number
-List View control, returns selected list item index
+List View control
-GuiListViewEx(bounds, text, count, focus, scrollIndex, active) ⇒ number
+GuiListViewEx(bounds, text, count, scrollIndex, active, focus) ⇒ number
List View with extended parameters
GuiMessageBox(bounds, title, message, buttons) ⇒ number
@@ -1555,10 +1693,10 @@
GuiTextInputBox(bounds, title, message, buttons, text, textMaxSize, secretViewActive) ⇒ number
Text Input Box control, ask for text, supports secret
-GuiColorPicker(bounds, text, color) ⇒ Color
+GuiColorPicker(bounds, text, color) ⇒ number
Color Picker control (multiple color controls)
-GuiColorPanel(bounds, text, color) ⇒ Color
+GuiColorPanel(bounds, text, color) ⇒ number
Color Panel control
GuiColorBarAlpha(bounds, text, alpha) ⇒ number
@@ -1567,32 +1705,11 @@
GuiColorBarHue(bounds, text, value) ⇒ number
Color Bar Hue control
-GuiLoadStyle(fileName) ⇒ undefined
-Load style file over global style variable (.rgs)
-
-GuiLoadStyleDefault() ⇒ undefined
-Load style default over global style
-
-GuiEnableTooltip() ⇒ undefined
-Enable gui tooltips (global state)
-
-GuiDisableTooltip() ⇒ undefined
-Disable gui tooltips (global state)
-
-GuiSetTooltip(tooltip) ⇒ undefined
-Set tooltip string
-
-GuiIconText(iconId, text) ⇒ string
-Get text with icon id prepended (if supported)
+GuiColorPickerHSV(bounds, text, colorHsv) ⇒ number
+Color Picker control that avoids conversion to RGB on each call (multiple color controls)
-GuiGetIcons() ⇒ number
-Get raygui icons data pointer
-
-GuiLoadIcons(fileName, loadIconsName) ⇒ number
-Load raygui icons file (.rgi) into internal icons data
-
-GuiSetIconScale(scale) ⇒ undefined
-Set icon drawing size
+GuiColorPanelHSV(bounds, text, colorHsv) ⇒ number
+Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV()
rlMatrixMode(mode) ⇒ undefined
Choose the current matrix to be transformed
@@ -1711,6 +1828,9 @@
rlActiveDrawBuffers(count) ⇒ undefined
Activate multiple draw color buffers
+rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) ⇒ undefined
+Blit active framebuffer to main framebuffer
+
rlEnableColorBlend() ⇒ undefined
Enable color blending
@@ -1750,8 +1870,11 @@
rlEnableWireMode() ⇒ undefined
Enable wire mode
+rlEnablePointMode() ⇒ undefined
+Enable point mode
+
rlDisableWireMode() ⇒ undefined
-Disable wire mode
+Disable wire mode ( and point ) maybe rename
rlSetLineWidth(width) ⇒ undefined
Set the line drawing width
@@ -2179,19 +2302,19 @@ Initialize window and OpenGL context
| height | number |
| title | string |
-
-
-## WindowShouldClose() ⇒ boolean
-Check if KEY_ESCAPE pressed or Close icon pressed
-
-**Kind**: global function
-**Returns**: boolean - The resulting bool.
## CloseWindow() ⇒ undefined
Close window and unload OpenGL context
**Kind**: global function
+
+
+## WindowShouldClose() ⇒ boolean
+Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)
+
+**Kind**: global function
+**Returns**: boolean - The resulting bool.
## IsWindowReady() ⇒ boolean
@@ -2280,6 +2403,12 @@ Clear window configuration state flags
## ToggleFullscreen() ⇒ undefined
Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)
+**Kind**: global function
+
+
+## ToggleBorderlessWindowed() ⇒ undefined
+Toggle window state: borderless windowed (only PLATFORM_DESKTOP)
+
**Kind**: global function
@@ -2325,7 +2454,7 @@ Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)
## SetWindowTitle(title) ⇒ undefined
-Set title for window (only PLATFORM_DESKTOP)
+Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB)
**Kind**: global function
@@ -2348,7 +2477,7 @@ Set window position on screen (only PLATFORM_DESKTOP)
## SetWindowMonitor(monitor) ⇒ undefined
-Set monitor for the current window (fullscreen mode)
+Set monitor for the current window
**Kind**: global function
@@ -2368,6 +2497,18 @@ Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
| width | number |
| height | number |
+
+
+## SetWindowMaxSize(width, height) ⇒ undefined
+Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE)
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| width | number |
+| height | number |
+
## SetWindowSize(width, height) ⇒ undefined
@@ -2391,6 +2532,12 @@ Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)
| --- | --- |
| opacity | number |
+
+
+## SetWindowFocused() ⇒ undefined
+Set window focused (only PLATFORM_DESKTOP)
+
+**Kind**: global function
## GetWindowHandle() ⇒ number
@@ -2529,7 +2676,7 @@ Get window scale DPI factor
## GetMonitorName(monitor) ⇒ string
-Get the human-readable, UTF-8 encoded name of the primary monitor
+Get the human-readable, UTF-8 encoded name of the specified monitor
**Kind**: global function
**Returns**: string - The resulting const char *.
@@ -2568,29 +2715,6 @@ Enable waiting for events on EndDrawing(), no automatic event polling
Disable waiting for events on EndDrawing(), automatic events polling
**Kind**: global function
-
-
-## SwapScreenBuffer() ⇒ undefined
-Swap back buffer with front buffer (screen drawing)
-
-**Kind**: global function
-
-
-## PollInputEvents() ⇒ undefined
-Register all input events
-
-**Kind**: global function
-
-
-## WaitTime(seconds) ⇒ undefined
-Wait for some time (halt program execution)
-
-**Kind**: global function
-
-| Param | Type |
-| --- | --- |
-| seconds | number |
-
## ShowCursor() ⇒ undefined
@@ -2966,13 +3090,6 @@ Set target FPS (maximum)
| --- | --- |
| fps | number |
-
-
-## GetFPS() ⇒ number
-Get current FPS
-
-**Kind**: global function
-**Returns**: number - The resulting int.
## GetFrameTime() ⇒ number
@@ -2987,18 +3104,35 @@ Get elapsed time in seconds since InitWindow()
**Kind**: global function
**Returns**: number - The resulting double.
-
+
-## GetRandomValue(min, max) ⇒ number
-Get a random value between min and max (both included)
+## GetFPS() ⇒ number
+Get current FPS
**Kind**: global function
**Returns**: number - The resulting int.
+
+
+## SwapScreenBuffer() ⇒ undefined
+Swap back buffer with front buffer (screen drawing)
+
+**Kind**: global function
+
+
+## PollInputEvents() ⇒ undefined
+Register all input events
+
+**Kind**: global function
+
+
+## WaitTime(seconds) ⇒ undefined
+Wait for some time (halt program execution)
+
+**Kind**: global function
| Param | Type |
| --- | --- |
-| min | number |
-| max | number |
+| seconds | number |
@@ -3011,43 +3145,92 @@ Set the seed for the random number generator
| --- | --- |
| seed | number |
-
+
-## TakeScreenshot(fileName) ⇒ undefined
-Takes a screenshot of current screen (filename extension defines format)
+## GetRandomValue(min, max) ⇒ number
+Get a random value between min and max (both included)
**Kind**: global function
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
-| fileName | string |
+| min | number |
+| max | number |
-
+
-## SetConfigFlags(flags) ⇒ undefined
-Setup init configuration flags (view FLAGS)
+## LoadRandomSequence(count, min, max) ⇒ number
+Load random values sequence, no values repeated
**Kind**: global function
+**Returns**: number - The resulting int *.
| Param | Type |
| --- | --- |
-| flags | number |
+| count | number |
+| min | number |
+| max | number |
-
+
-## SetTraceLogLevel(logLevel) ⇒ undefined
-Set the current threshold (minimum) log level
+## UnloadRandomSequence(sequence) ⇒ undefined
+Unload random values sequence
**Kind**: global function
| Param | Type |
| --- | --- |
-| logLevel | number |
-
-
+| sequence | number |
-## MemAlloc(size) ⇒ number
-Internal memory allocator
+
+
+## TakeScreenshot(fileName) ⇒ undefined
+Takes a screenshot of current screen (filename extension defines format)
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| fileName | string |
+
+
+
+## SetConfigFlags(flags) ⇒ undefined
+Setup init configuration flags (view FLAGS)
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| flags | number |
+
+
+
+## OpenURL(url) ⇒ undefined
+Open URL with default system browser (if available)
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| url | string |
+
+
+
+## SetTraceLogLevel(logLevel) ⇒ undefined
+Set the current threshold (minimum) log level
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| logLevel | number |
+
+
+
+## MemAlloc(size) ⇒ number
+Internal memory allocator
**Kind**: global function
**Returns**: number - The resulting void *.
@@ -3080,20 +3263,9 @@ Internal memory free
| --- | --- |
| ptr | number |
-
-
-## OpenURL(url) ⇒ undefined
-Open URL with default system browser (if available)
-
-**Kind**: global function
-
-| Param | Type |
-| --- | --- |
-| url | string |
-
-## LoadFileData(fileName, bytesRead) ⇒ Buffer
+## LoadFileData(fileName, dataSize) ⇒ Buffer
Load file data as byte array (read)
**Kind**: global function
@@ -3102,7 +3274,7 @@ Load file data as byte array (read)
| Param | Type |
| --- | --- |
| fileName | string |
-| bytesRead | number |
+| dataSize | number |
@@ -3117,7 +3289,7 @@ Unload file data allocated by LoadFileData()
-## SaveFileData(fileName, data, bytesToWrite) ⇒ boolean
+## SaveFileData(fileName, data, dataSize) ⇒ boolean
Save data to file from byte array (write), returns true on success
**Kind**: global function
@@ -3127,11 +3299,11 @@ Save data to file from byte array (write), returns true on success
| --- | --- |
| fileName | string |
| data | number |
-| bytesToWrite | number |
+| dataSize | number |
-## ExportDataAsCode(data, size, fileName) ⇒ boolean
+## ExportDataAsCode(data, dataSize, fileName) ⇒ boolean
Export data to code (.h), returns true on success
**Kind**: global function
@@ -3140,7 +3312,7 @@ Export data to code (.h), returns true on success
| Param | Type |
| --- | --- |
| data | Buffer |
-| size | number |
+| dataSize | number |
| fileName | string |
@@ -3298,7 +3470,7 @@ Get current working directory (uses static string)
## GetApplicationDirectory() ⇒ string
-Get the directory if the running application (uses static string)
+Get the directory of the running application (uses static string)
**Kind**: global function
**Returns**: string - The resulting const char *.
@@ -3455,6 +3627,87 @@ Decode Base64 string data, memory must be MemFree()
| data | Buffer |
| outputSize | number |
+
+
+## LoadAutomationEventList(fileName) ⇒ AutomationEventList
+Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS
+
+**Kind**: global function
+**Returns**: AutomationEventList - The resulting AutomationEventList.
+
+| Param | Type |
+| --- | --- |
+| fileName | string |
+
+
+
+## UnloadAutomationEventList(list) ⇒ undefined
+Unload automation events list from file
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| list | number |
+
+
+
+## ExportAutomationEventList(list, fileName) ⇒ boolean
+Export automation events list as text file
+
+**Kind**: global function
+**Returns**: boolean - The resulting bool.
+
+| Param | Type |
+| --- | --- |
+| list | AutomationEventList |
+| fileName | string |
+
+
+
+## SetAutomationEventList(list) ⇒ undefined
+Set automation event list to record to
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| list | number |
+
+
+
+## SetAutomationEventBaseFrame(frame) ⇒ undefined
+Set automation event internal base frame to start recording
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| frame | number |
+
+
+
+## StartAutomationEventRecording() ⇒ undefined
+Start recording automation events (AutomationEventList must be set)
+
+**Kind**: global function
+
+
+## StopAutomationEventRecording() ⇒ undefined
+Stop recording automation events
+
+**Kind**: global function
+
+
+## PlayAutomationEvent(event) ⇒ undefined
+Play a recorded automation event
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| event | AutomationEvent |
+
## IsKeyPressed(key) ⇒ boolean
@@ -3467,6 +3720,18 @@ Check if a key has been pressed once
| --- | --- |
| key | number |
+
+
+## IsKeyPressedRepeat(key) ⇒ boolean
+Check if a key has been pressed again (Only PLATFORM_DESKTOP)
+
+**Kind**: global function
+**Returns**: boolean - The resulting bool.
+
+| Param | Type |
+| --- | --- |
+| key | number |
+
## IsKeyDown(key) ⇒ boolean
@@ -3503,17 +3768,6 @@ Check if a key is NOT being pressed
| --- | --- |
| key | number |
-
-
-## SetExitKey(key) ⇒ undefined
-Set a custom key to exit program (default is ESC)
-
-**Kind**: global function
-
-| Param | Type |
-| --- | --- |
-| key | number |
-
## GetKeyPressed() ⇒ number
@@ -3528,6 +3782,17 @@ Get char pressed (unicode), call it multiple times for chars queued, returns 0 w
**Kind**: global function
**Returns**: number - The resulting int.
+
+
+## SetExitKey(key) ⇒ undefined
+Set a custom key to exit program (default is ESC)
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| key | number |
+
## IsGamepadAvailable(gamepad) ⇒ boolean
@@ -3964,7 +4229,7 @@ Draw a line
## DrawLineV(startPos, endPos, color) ⇒ undefined
-Draw a line (Vector version)
+Draw a line (using gl lines)
**Kind**: global function
@@ -3977,21 +4242,7 @@ Draw a line (Vector version)
## DrawLineEx(startPos, endPos, thick, color) ⇒ undefined
-Draw a line defining thickness
-
-**Kind**: global function
-
-| Param | Type |
-| --- | --- |
-| startPos | [Vector2](#Vector2) |
-| endPos | [Vector2](#Vector2) |
-| thick | number |
-| color | [Color](#Color) |
-
-
-
-## DrawLineBezier(startPos, endPos, thick, color) ⇒ undefined
-Draw a line using cubic-bezier curves in-out
+Draw a line (using triangles/quads)
**Kind**: global function
@@ -4002,25 +4253,23 @@ Draw a line using cubic-bezier curves in-out
| thick | number |
| color | [Color](#Color) |
-
+
-## DrawLineBezierQuad(startPos, endPos, controlPos, thick, color) ⇒ undefined
-Draw line using quadratic bezier curves with a control point
+## DrawLineStrip(points, pointCount, color) ⇒ undefined
+Draw lines sequence (using gl lines)
**Kind**: global function
| Param | Type |
| --- | --- |
-| startPos | [Vector2](#Vector2) |
-| endPos | [Vector2](#Vector2) |
-| controlPos | [Vector2](#Vector2) |
-| thick | number |
+| points | number |
+| pointCount | number |
| color | [Color](#Color) |
-
+
-## DrawLineBezierCubic(startPos, endPos, startControlPos, endControlPos, thick, color) ⇒ undefined
-Draw line using cubic bezier curves with 2 control points
+## DrawLineBezier(startPos, endPos, thick, color) ⇒ undefined
+Draw line segment cubic-bezier in-out interpolation
**Kind**: global function
@@ -4028,24 +4277,9 @@ Draw line using cubic bezier curves with 2 control points
| --- | --- |
| startPos | [Vector2](#Vector2) |
| endPos | [Vector2](#Vector2) |
-| startControlPos | [Vector2](#Vector2) |
-| endControlPos | [Vector2](#Vector2) |
| thick | number |
| color | [Color](#Color) |
-
-
-## DrawLineStrip(points, pointCount, color) ⇒ undefined
-Draw lines sequence
-
-**Kind**: global function
-
-| Param | Type |
-| --- | --- |
-| points | number |
-| pointCount | number |
-| color | [Color](#Color) |
-
## DrawCircle(centerX, centerY, radius, color) ⇒ undefined
@@ -4134,6 +4368,19 @@ Draw circle outline
| radius | number |
| color | [Color](#Color) |
+
+
+## DrawCircleLinesV(center, radius, color) ⇒ undefined
+Draw circle outline (Vector version)
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| center | [Vector2](#Vector2) |
+| radius | number |
+| color | [Color](#Color) |
+
## DrawEllipse(centerX, centerY, radiusH, radiusV, color) ⇒ undefined
@@ -4456,6 +4703,230 @@ Draw a polygon outline of n sides with extended parameters
| lineThick | number |
| color | [Color](#Color) |
+
+
+## DrawSplineLinear(points, pointCount, thick, color) ⇒ undefined
+Draw spline: Linear, minimum 2 points
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| points | number |
+| pointCount | number |
+| thick | number |
+| color | [Color](#Color) |
+
+
+
+## DrawSplineBasis(points, pointCount, thick, color) ⇒ undefined
+Draw spline: B-Spline, minimum 4 points
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| points | number |
+| pointCount | number |
+| thick | number |
+| color | [Color](#Color) |
+
+
+
+## DrawSplineCatmullRom(points, pointCount, thick, color) ⇒ undefined
+Draw spline: Catmull-Rom, minimum 4 points
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| points | number |
+| pointCount | number |
+| thick | number |
+| color | [Color](#Color) |
+
+
+
+## DrawSplineBezierQuadratic(points, pointCount, thick, color) ⇒ undefined
+Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| points | number |
+| pointCount | number |
+| thick | number |
+| color | [Color](#Color) |
+
+
+
+## DrawSplineBezierCubic(points, pointCount, thick, color) ⇒ undefined
+Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| points | number |
+| pointCount | number |
+| thick | number |
+| color | [Color](#Color) |
+
+
+
+## DrawSplineSegmentLinear(p1, p2, thick, color) ⇒ undefined
+Draw spline segment: Linear, 2 points
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| p1 | [Vector2](#Vector2) |
+| p2 | [Vector2](#Vector2) |
+| thick | number |
+| color | [Color](#Color) |
+
+
+
+## DrawSplineSegmentBasis(p1, p2, p3, p4, thick, color) ⇒ undefined
+Draw spline segment: B-Spline, 4 points
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| p1 | [Vector2](#Vector2) |
+| p2 | [Vector2](#Vector2) |
+| p3 | [Vector2](#Vector2) |
+| p4 | [Vector2](#Vector2) |
+| thick | number |
+| color | [Color](#Color) |
+
+
+
+## DrawSplineSegmentCatmullRom(p1, p2, p3, p4, thick, color) ⇒ undefined
+Draw spline segment: Catmull-Rom, 4 points
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| p1 | [Vector2](#Vector2) |
+| p2 | [Vector2](#Vector2) |
+| p3 | [Vector2](#Vector2) |
+| p4 | [Vector2](#Vector2) |
+| thick | number |
+| color | [Color](#Color) |
+
+
+
+## DrawSplineSegmentBezierQuadratic(p1, c2, p3, thick, color) ⇒ undefined
+Draw spline segment: Quadratic Bezier, 2 points, 1 control point
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| p1 | [Vector2](#Vector2) |
+| c2 | [Vector2](#Vector2) |
+| p3 | [Vector2](#Vector2) |
+| thick | number |
+| color | [Color](#Color) |
+
+
+
+## DrawSplineSegmentBezierCubic(p1, c2, c3, p4, thick, color) ⇒ undefined
+Draw spline segment: Cubic Bezier, 2 points, 2 control points
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| p1 | [Vector2](#Vector2) |
+| c2 | [Vector2](#Vector2) |
+| c3 | [Vector2](#Vector2) |
+| p4 | [Vector2](#Vector2) |
+| thick | number |
+| color | [Color](#Color) |
+
+
+
+## GetSplinePointLinear(startPos, endPos, t) ⇒ [Vector2](#Vector2)
+Get (evaluate) spline point: Linear
+
+**Kind**: global function
+**Returns**: [Vector2](#Vector2) - The resulting Vector2.
+
+| Param | Type |
+| --- | --- |
+| startPos | [Vector2](#Vector2) |
+| endPos | [Vector2](#Vector2) |
+| t | number |
+
+
+
+## GetSplinePointBasis(p1, p2, p3, p4, t) ⇒ [Vector2](#Vector2)
+Get (evaluate) spline point: B-Spline
+
+**Kind**: global function
+**Returns**: [Vector2](#Vector2) - The resulting Vector2.
+
+| Param | Type |
+| --- | --- |
+| p1 | [Vector2](#Vector2) |
+| p2 | [Vector2](#Vector2) |
+| p3 | [Vector2](#Vector2) |
+| p4 | [Vector2](#Vector2) |
+| t | number |
+
+
+
+## GetSplinePointCatmullRom(p1, p2, p3, p4, t) ⇒ [Vector2](#Vector2)
+Get (evaluate) spline point: Catmull-Rom
+
+**Kind**: global function
+**Returns**: [Vector2](#Vector2) - The resulting Vector2.
+
+| Param | Type |
+| --- | --- |
+| p1 | [Vector2](#Vector2) |
+| p2 | [Vector2](#Vector2) |
+| p3 | [Vector2](#Vector2) |
+| p4 | [Vector2](#Vector2) |
+| t | number |
+
+
+
+## GetSplinePointBezierQuad(p1, c2, p3, t) ⇒ [Vector2](#Vector2)
+Get (evaluate) spline point: Quadratic Bezier
+
+**Kind**: global function
+**Returns**: [Vector2](#Vector2) - The resulting Vector2.
+
+| Param | Type |
+| --- | --- |
+| p1 | [Vector2](#Vector2) |
+| c2 | [Vector2](#Vector2) |
+| p3 | [Vector2](#Vector2) |
+| t | number |
+
+
+
+## GetSplinePointBezierCubic(p1, c2, c3, p4, t) ⇒ [Vector2](#Vector2)
+Get (evaluate) spline point: Cubic Bezier
+
+**Kind**: global function
+**Returns**: [Vector2](#Vector2) - The resulting Vector2.
+
+| Param | Type |
+| --- | --- |
+| p1 | [Vector2](#Vector2) |
+| c2 | [Vector2](#Vector2) |
+| c3 | [Vector2](#Vector2) |
+| p4 | [Vector2](#Vector2) |
+| t | number |
+
## CheckCollisionRecs(rec1, rec2) ⇒ boolean
@@ -4626,6 +5097,20 @@ Load image from RAW file data
| format | number |
| headerSize | number |
+
+
+## LoadImageSvg(fileNameOrString, width, height) ⇒ Image
+Load image from SVG file data or string with specified size
+
+**Kind**: global function
+**Returns**: Image - The resulting Image.
+
+| Param | Type |
+| --- | --- |
+| fileNameOrString | string |
+| width | number |
+| height | number |
+
## LoadImageAnim(fileName, frames) ⇒ Image
@@ -4708,6 +5193,20 @@ Export image data to file, returns true on success
| image | Image |
| fileName | string |
+
+
+## ExportImageToMemory(image, fileType, fileSize) ⇒ Buffer
+Export image to memory buffer
+
+**Kind**: global function
+**Returns**: Buffer - The resulting unsigned char *.
+
+| Param | Type |
+| --- | --- |
+| image | Image |
+| fileType | string |
+| fileSize | number |
+
## ExportImageAsCode(image, fileName) ⇒ boolean
@@ -4735,10 +5234,10 @@ Generate image: plain color
| height | number |
| color | [Color](#Color) |
-
+
-## GenImageGradientV(width, height, top, bottom) ⇒ Image
-Generate image: vertical gradient
+## GenImageGradientLinear(width, height, direction, start, end) ⇒ Image
+Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient
**Kind**: global function
**Returns**: Image - The resulting Image.
@@ -4747,13 +5246,14 @@ Generate image: vertical gradient
| --- | --- |
| width | number |
| height | number |
-| top | [Color](#Color) |
-| bottom | [Color](#Color) |
+| direction | number |
+| start | [Color](#Color) |
+| end | [Color](#Color) |
-
+
-## GenImageGradientH(width, height, left, right) ⇒ Image
-Generate image: horizontal gradient
+## GenImageGradientRadial(width, height, density, inner, outer) ⇒ Image
+Generate image: radial gradient
**Kind**: global function
**Returns**: Image - The resulting Image.
@@ -4762,13 +5262,14 @@ Generate image: horizontal gradient
| --- | --- |
| width | number |
| height | number |
-| left | [Color](#Color) |
-| right | [Color](#Color) |
+| density | number |
+| inner | [Color](#Color) |
+| outer | [Color](#Color) |
-
+
-## GenImageGradientRadial(width, height, density, inner, outer) ⇒ Image
-Generate image: radial gradient
+## GenImageGradientSquare(width, height, density, inner, outer) ⇒ Image
+Generate image: square gradient
**Kind**: global function
**Returns**: Image - The resulting Image.
@@ -4923,6 +5424,18 @@ Apply Gaussian blur using a box blur approximation
| image | number |
| blurSize | number |
+
+
+## ImageRotate(image, degrees) ⇒ undefined
+Rotate image by input angle in degrees (-359 to 359)
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| image | number |
+| degrees | number |
+
## LoadImageColors(image) ⇒ number
@@ -5474,8 +5987,8 @@ Load font from file into GPU memory (VRAM)
-## LoadFontEx(fileName, fontSize, fontChars, glyphCount) ⇒ Font
-Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set
+## LoadFontEx(fileName, fontSize, codepoints, codepointCount) ⇒ Font
+Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set
**Kind**: global function
**Returns**: Font - The resulting Font.
@@ -5484,8 +5997,8 @@ Load font from file with extended parameters, use NULL for fontChars and 0 for g
| --- | --- |
| fileName | string |
| fontSize | number |
-| fontChars | number |
-| glyphCount | number |
+| codepoints | number |
+| codepointCount | number |
@@ -5503,7 +6016,7 @@ Load font from Image (XNA style)
-## LoadFontFromMemory(fileType, fileData, dataSize, fontSize, fontChars, glyphCount) ⇒ Font
+## LoadFontFromMemory(fileType, fileData, dataSize, fontSize, codepoints, codepointCount) ⇒ Font
Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
**Kind**: global function
@@ -5515,8 +6028,8 @@ Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
| fileData | Buffer |
| dataSize | number |
| fontSize | number |
-| fontChars | number |
-| glyphCount | number |
+| codepoints | number |
+| codepointCount | number |
@@ -5532,7 +6045,7 @@ Check if a font is ready
-## LoadFontData(fileData, dataSize, fontSize, fontChars, glyphCount, type) ⇒ number
+## LoadFontData(fileData, dataSize, fontSize, codepoints, codepointCount, type) ⇒ number
Load font data for further use
**Kind**: global function
@@ -5543,13 +6056,13 @@ Load font data for further use
| fileData | Buffer |
| dataSize | number |
| fontSize | number |
-| fontChars | number |
-| glyphCount | number |
+| codepoints | number |
+| codepointCount | number |
| type | number |
-## GenImageFontAtlas(chars, recs, glyphCount, fontSize, padding, packMethod) ⇒ Image
+## GenImageFontAtlas(glyphs, glyphRecs, glyphCount, fontSize, padding, packMethod) ⇒ Image
Generate image font atlas using chars info
**Kind**: global function
@@ -5557,8 +6070,8 @@ Generate image font atlas using chars info
| Param | Type |
| --- | --- |
-| chars | number |
-| recs | number |
+| glyphs | number |
+| glyphRecs | number |
| glyphCount | number |
| fontSize | number |
| padding | number |
@@ -5566,14 +6079,14 @@ Generate image font atlas using chars info
-## UnloadFontData(chars, glyphCount) ⇒ undefined
+## UnloadFontData(glyphs, glyphCount) ⇒ undefined
Unload font chars info data (RAM)
**Kind**: global function
| Param | Type |
| --- | --- |
-| chars | number |
+| glyphs | number |
| glyphCount | number |
@@ -5678,7 +6191,7 @@ Draw one character (codepoint)
-## DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing, tint) ⇒ undefined
+## DrawTextCodepoints(font, codepoints, codepointCount, position, fontSize, spacing, tint) ⇒ undefined
Draw multiple character (codepoint)
**Kind**: global function
@@ -5687,12 +6200,23 @@ Draw multiple character (codepoint)
| --- | --- |
| font | Font |
| codepoints | number |
-| count | number |
+| codepointCount | number |
| position | [Vector2](#Vector2) |
| fontSize | number |
| spacing | number |
| tint | [Color](#Color) |
+
+
+## SetTextLineSpacing(spacing) ⇒ undefined
+Set vertical line spacing when drawing with line-breaks
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| spacing | number |
+
## MeasureText(text, fontSize) ⇒ number
@@ -6778,7 +7302,7 @@ Unload animation data
-## UnloadModelAnimations(animations, count) ⇒ undefined
+## UnloadModelAnimations(animations, animCount) ⇒ undefined
Unload animation array data
**Kind**: global function
@@ -6786,7 +7310,7 @@ Unload animation array data
| Param | Type |
| --- | --- |
| animations | number |
-| count | number |
+| animCount | number |
@@ -6945,6 +7469,13 @@ Set master volume (listener)
| --- | --- |
| volume | number |
+
+
+## GetMasterVolume() ⇒ number
+Get master volume (listener)
+
+**Kind**: global function
+**Returns**: number - The resulting float.
## LoadWave(fileName) ⇒ Wave
@@ -6993,19 +7524,31 @@ Load sound from file
| Param | Type |
| --- | --- |
-| fileName | string |
+| fileName | string |
+
+
+
+## LoadSoundFromWave(wave) ⇒ Sound
+Load sound from wave data
+
+**Kind**: global function
+**Returns**: Sound - The resulting Sound.
+
+| Param | Type |
+| --- | --- |
+| wave | Wave |
-
+
-## LoadSoundFromWave(wave) ⇒ Sound
-Load sound from wave data
+## LoadSoundAlias(source) ⇒ Sound
+Create a new sound that shares the same sample data as the source sound, does not own the sound data
**Kind**: global function
**Returns**: Sound - The resulting Sound.
| Param | Type |
| --- | --- |
-| wave | Wave |
+| source | Sound |
@@ -7054,6 +7597,17 @@ Unload sound
| --- | --- |
| sound | Sound |
+
+
+## UnloadSoundAlias(alias) ⇒ undefined
+Unload a sound alias (does not deallocate sample data)
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| alias | Sound |
+
## ExportWave(wave, fileName) ⇒ boolean
@@ -8011,9 +8565,9 @@ Check if gui is locked (global state)
**Kind**: global function
**Returns**: boolean - The resulting bool.
-
+
-## GuiFade(alpha) ⇒ undefined
+## GuiSetAlpha(alpha) ⇒ undefined
Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
**Kind**: global function
@@ -8084,13 +8638,112 @@ Get one style property
| control | number |
| property | number |
+
+
+## GuiLoadStyle(fileName) ⇒ undefined
+Load style file over global style variable (.rgs)
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| fileName | string |
+
+
+
+## GuiLoadStyleDefault() ⇒ undefined
+Load style default over global style
+
+**Kind**: global function
+
+
+## GuiEnableTooltip() ⇒ undefined
+Enable gui tooltips (global state)
+
+**Kind**: global function
+
+
+## GuiDisableTooltip() ⇒ undefined
+Disable gui tooltips (global state)
+
+**Kind**: global function
+
+
+## GuiSetTooltip(tooltip) ⇒ undefined
+Set tooltip string
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| tooltip | string |
+
+
+
+## GuiIconText(iconId, text) ⇒ string
+Get text with icon id prepended (if supported)
+
+**Kind**: global function
+**Returns**: string - The resulting const char *.
+
+| Param | Type |
+| --- | --- |
+| iconId | number |
+| text | string |
+
+
+
+## GuiSetIconScale(scale) ⇒ undefined
+Set default icon drawing size
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| scale | number |
+
+
+
+## GuiGetIcons() ⇒ number
+Get raygui icons data pointer
+
+**Kind**: global function
+**Returns**: number - The resulting unsigned int *.
+
+
+## GuiLoadIcons(fileName, loadIconsName) ⇒ number
+Load raygui icons file (.rgi) into internal icons data
+
+**Kind**: global function
+**Returns**: number - The resulting char **.
+
+| Param | Type |
+| --- | --- |
+| fileName | string |
+| loadIconsName | boolean |
+
+
+
+## GuiDrawIcon(iconId, posX, posY, pixelSize, color) ⇒ undefined
+Draw icon using pixel size at specified position
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| iconId | number |
+| posX | number |
+| posY | number |
+| pixelSize | number |
+| color | [Color](#Color) |
+
-## GuiWindowBox(bounds, title) ⇒ boolean
+## GuiWindowBox(bounds, title) ⇒ number
Window Box control, shows a window that can be closed
**Kind**: global function
-**Returns**: boolean - The resulting bool.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8099,10 +8752,11 @@ Window Box control, shows a window that can be closed
-## GuiGroupBox(bounds, text) ⇒ undefined
+## GuiGroupBox(bounds, text) ⇒ number
Group Box control with text name
**Kind**: global function
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8111,10 +8765,11 @@ Group Box control with text name
-## GuiLine(bounds, text) ⇒ undefined
+## GuiLine(bounds, text) ⇒ number
Line separator control, could contain text
**Kind**: global function
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8123,10 +8778,11 @@ Line separator control, could contain text
-## GuiPanel(bounds, text) ⇒ undefined
+## GuiPanel(bounds, text) ⇒ number
Panel control, useful to group controls
**Kind**: global function
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8150,11 +8806,11 @@ Tab Bar control, returns TAB to be closed or -1
-## GuiScrollPanel(bounds, text, content, scroll) ⇒ [Rectangle](#Rectangle)
+## GuiScrollPanel(bounds, text, content, scroll, view) ⇒ number
Scroll Panel control
**Kind**: global function
-**Returns**: [Rectangle](#Rectangle) - The resulting Rectangle.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8162,13 +8818,15 @@ Scroll Panel control
| text | string |
| content | [Rectangle](#Rectangle) |
| scroll | number |
+| view | number |
-## GuiLabel(bounds, text) ⇒ undefined
-Label control, shows text
+## GuiLabel(bounds, text) ⇒ number
+Label control
**Kind**: global function
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8177,11 +8835,11 @@ Label control, shows text
-## GuiButton(bounds, text) ⇒ boolean
+## GuiButton(bounds, text) ⇒ number
Button control, returns true when clicked
**Kind**: global function
-**Returns**: boolean - The resulting bool.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8190,11 +8848,11 @@ Button control, returns true when clicked
-## GuiLabelButton(bounds, text) ⇒ boolean
-Label button control, show true when clicked
+## GuiLabelButton(bounds, text) ⇒ number
+Label button control, returns true when clicked
**Kind**: global function
-**Returns**: boolean - The resulting bool.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8203,22 +8861,36 @@ Label button control, show true when clicked
-## GuiToggle(bounds, text, active) ⇒ boolean
-Toggle Button control, returns true when active
+## GuiToggle(bounds, text, active) ⇒ number
+Toggle Button control
**Kind**: global function
-**Returns**: boolean - The resulting bool.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
| bounds | [Rectangle](#Rectangle) |
| text | string |
-| active | boolean |
+| active | number |
## GuiToggleGroup(bounds, text, active) ⇒ number
-Toggle Group control, returns active toggle index
+Toggle Group control
+
+**Kind**: global function
+**Returns**: number - The resulting int.
+
+| Param | Type |
+| --- | --- |
+| bounds | [Rectangle](#Rectangle) |
+| text | string |
+| active | number |
+
+
+
+## GuiToggleSlider(bounds, text, active) ⇒ number
+Toggle Slider control
**Kind**: global function
**Returns**: number - The resulting int.
@@ -8231,22 +8903,22 @@ Toggle Group control, returns active toggle index
-## GuiCheckBox(bounds, text, checked) ⇒ boolean
+## GuiCheckBox(bounds, text, checked) ⇒ number
Check Box control, returns true when active
**Kind**: global function
-**Returns**: boolean - The resulting bool.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
| bounds | [Rectangle](#Rectangle) |
| text | string |
-| checked | boolean |
+| checked | number |
## GuiComboBox(bounds, text, active) ⇒ number
-Combo Box control, returns selected item index
+Combo Box control
**Kind**: global function
**Returns**: number - The resulting int.
@@ -8259,11 +8931,11 @@ Combo Box control, returns selected item index
-## GuiDropdownBox(bounds, text, active, editMode) ⇒ boolean
-Dropdown Box control, returns selected item
+## GuiDropdownBox(bounds, text, active, editMode) ⇒ number
+Dropdown Box control
**Kind**: global function
-**Returns**: boolean - The resulting bool.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8274,11 +8946,11 @@ Dropdown Box control, returns selected item
-## GuiSpinner(bounds, text, value, minValue, maxValue, editMode) ⇒ boolean
-Spinner control, returns selected value
+## GuiSpinner(bounds, text, value, minValue, maxValue, editMode) ⇒ number
+Spinner control
**Kind**: global function
-**Returns**: boolean - The resulting bool.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8291,11 +8963,11 @@ Spinner control, returns selected value
-## GuiValueBox(bounds, text, value, minValue, maxValue, editMode) ⇒ boolean
+## GuiValueBox(bounds, text, value, minValue, maxValue, editMode) ⇒ number
Value Box control, updates input text with numbers
**Kind**: global function
-**Returns**: boolean - The resulting bool.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8306,28 +8978,29 @@ Value Box control, updates input text with numbers
| maxValue | number |
| editMode | boolean |
-
+
-## GuiTextBox(bounds, text, textSize, editMode) ⇒ boolean
-Text Box control, updates input text
+## GuiValueBoxFloat(bounds, text, textValue, value, editMode) ⇒ number
+Value box control for float values
**Kind**: global function
-**Returns**: boolean - The resulting bool.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
| bounds | [Rectangle](#Rectangle) |
| text | string |
-| textSize | number |
+| textValue | string |
+| value | number |
| editMode | boolean |
-
+
-## GuiTextBoxMulti(bounds, text, textSize, editMode) ⇒ boolean
-Text Box control with multiple lines
+## GuiTextBox(bounds, text, textSize, editMode) ⇒ number
+Text Box control, updates input text
**Kind**: global function
-**Returns**: boolean - The resulting bool.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8339,10 +9012,10 @@ Text Box control with multiple lines
## GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number
-Slider control, returns selected value
+Slider control
**Kind**: global function
-**Returns**: number - The resulting float.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8356,10 +9029,10 @@ Slider control, returns selected value
## GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number
-Slider Bar control, returns selected value
+Slider Bar control
**Kind**: global function
-**Returns**: number - The resulting float.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8373,10 +9046,10 @@ Slider Bar control, returns selected value
## GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number
-Progress Bar control, shows current progress value
+Progress Bar control
**Kind**: global function
-**Returns**: number - The resulting float.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8389,10 +9062,11 @@ Progress Bar control, shows current progress value
-## GuiStatusBar(bounds, text) ⇒ undefined
+## GuiStatusBar(bounds, text) ⇒ number
Status Bar control, shows info text
**Kind**: global function
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8401,10 +9075,11 @@ Status Bar control, shows info text
-## GuiDummyRec(bounds, text) ⇒ undefined
+## GuiDummyRec(bounds, text) ⇒ number
Dummy control for placeholders
**Kind**: global function
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8413,11 +9088,11 @@ Dummy control for placeholders
-## GuiGrid(bounds, text, spacing, subdivs) ⇒ [Vector2](#Vector2)
-Grid control, returns mouse cell position
+## GuiGrid(bounds, text, spacing, subdivs, mouseCell) ⇒ number
+Grid control
**Kind**: global function
-**Returns**: [Vector2](#Vector2) - The resulting Vector2.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8425,11 +9100,12 @@ Grid control, returns mouse cell position
| text | string |
| spacing | number |
| subdivs | number |
+| mouseCell | number |
## GuiListView(bounds, text, scrollIndex, active) ⇒ number
-List View control, returns selected list item index
+List View control
**Kind**: global function
**Returns**: number - The resulting int.
@@ -8443,7 +9119,7 @@ List View control, returns selected list item index
-## GuiListViewEx(bounds, text, count, focus, scrollIndex, active) ⇒ number
+## GuiListViewEx(bounds, text, count, scrollIndex, active, focus) ⇒ number
List View with extended parameters
**Kind**: global function
@@ -8454,9 +9130,9 @@ List View with extended parameters
| bounds | [Rectangle](#Rectangle) |
| text | number |
| count | number |
-| focus | number |
| scrollIndex | number |
| active | number |
+| focus | number |
@@ -8493,31 +9169,31 @@ Text Input Box control, ask for text, supports secret
-## GuiColorPicker(bounds, text, color) ⇒ [Color](#Color)
+## GuiColorPicker(bounds, text, color) ⇒ number
Color Picker control (multiple color controls)
**Kind**: global function
-**Returns**: [Color](#Color) - The resulting Color.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
| bounds | [Rectangle](#Rectangle) |
| text | string |
-| color | [Color](#Color) |
+| color | number |
-## GuiColorPanel(bounds, text, color) ⇒ [Color](#Color)
+## GuiColorPanel(bounds, text, color) ⇒ number
Color Panel control
**Kind**: global function
-**Returns**: [Color](#Color) - The resulting Color.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
| bounds | [Rectangle](#Rectangle) |
| text | string |
-| color | [Color](#Color) |
+| color | number |
@@ -8525,7 +9201,7 @@ Color Panel control
Color Bar Alpha control
**Kind**: global function
-**Returns**: number - The resulting float.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8539,7 +9215,7 @@ Color Bar Alpha control
Color Bar Hue control
**Kind**: global function
-**Returns**: number - The resulting float.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
@@ -8547,89 +9223,33 @@ Color Bar Hue control
| text | string |
| value | number |
-
-
-## GuiLoadStyle(fileName) ⇒ undefined
-Load style file over global style variable (.rgs)
-
-**Kind**: global function
-
-| Param | Type |
-| --- | --- |
-| fileName | string |
-
-
-
-## GuiLoadStyleDefault() ⇒ undefined
-Load style default over global style
-
-**Kind**: global function
-
-
-## GuiEnableTooltip() ⇒ undefined
-Enable gui tooltips (global state)
-
-**Kind**: global function
-
-
-## GuiDisableTooltip() ⇒ undefined
-Disable gui tooltips (global state)
-
-**Kind**: global function
-
-
-## GuiSetTooltip(tooltip) ⇒ undefined
-Set tooltip string
-
-**Kind**: global function
+
-| Param | Type |
-| --- | --- |
-| tooltip | string |
-
-
-
-## GuiIconText(iconId, text) ⇒ string
-Get text with icon id prepended (if supported)
+## GuiColorPickerHSV(bounds, text, colorHsv) ⇒ number
+Color Picker control that avoids conversion to RGB on each call (multiple color controls)
**Kind**: global function
-**Returns**: string - The resulting const char *.
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
-| iconId | number |
+| bounds | [Rectangle](#Rectangle) |
| text | string |
+| colorHsv | number |
-
-
-## GuiGetIcons() ⇒ number
-Get raygui icons data pointer
-
-**Kind**: global function
-**Returns**: number - The resulting unsigned int *.
-
-
-## GuiLoadIcons(fileName, loadIconsName) ⇒ number
-Load raygui icons file (.rgi) into internal icons data
-
-**Kind**: global function
-**Returns**: number - The resulting char **.
-
-| Param | Type |
-| --- | --- |
-| fileName | string |
-| loadIconsName | boolean |
-
-
+
-## GuiSetIconScale(scale) ⇒ undefined
-Set icon drawing size
+## GuiColorPanelHSV(bounds, text, colorHsv) ⇒ number
+Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV()
**Kind**: global function
+**Returns**: number - The resulting int.
| Param | Type |
| --- | --- |
-| scale | number |
+| bounds | [Rectangle](#Rectangle) |
+| text | string |
+| colorHsv | number |
@@ -9035,6 +9655,25 @@ Activate multiple draw color buffers
| --- | --- |
| count | number |
+
+
+## rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) ⇒ undefined
+Blit active framebuffer to main framebuffer
+
+**Kind**: global function
+
+| Param | Type |
+| --- | --- |
+| srcX | number |
+| srcY | number |
+| srcWidth | number |
+| srcHeight | number |
+| dstX | number |
+| dstY | number |
+| dstWidth | number |
+| dstHeight | number |
+| bufferMask | number |
+
## rlEnableColorBlend() ⇒ undefined
@@ -9125,11 +9764,17 @@ Scissor test
## rlEnableWireMode() ⇒ undefined
Enable wire mode
+**Kind**: global function
+
+
+## rlEnablePointMode() ⇒ undefined
+Enable point mode
+
**Kind**: global function
## rlDisableWireMode() ⇒ undefined
-Disable wire mode
+Disable wire mode ( and point ) maybe rename
**Kind**: global function
diff --git a/package-lock.json b/package-lock.json
index 6ed9173..243a3fe 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,34 +1,43 @@
{
"name": "raylib",
- "version": "0.14.0",
+ "version": "0.15.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "raylib",
- "version": "0.14.0",
+ "version": "0.15.0",
"hasInstallScript": true,
"license": "Zlib",
"dependencies": {
- "cross-fetch": "^3.1.5",
- "module-alias": "^2.2.2"
+ "cross-fetch": "^4.0.0",
+ "module-alias": "^2.2.3"
},
"bin": {
"raylib": "bin/node-raylib"
},
"devDependencies": {
- "@raylib/api": "~4.5.0",
- "@vitest/ui": "^0.29.7",
- "archiver": "^5.3.1",
- "jsdoc-to-markdown": "^8.0.0",
+ "@raylib/api": "^5.0.1",
+ "@vitest/ui": "^2.1.4",
+ "archiver": "^7.0.1",
+ "jsdoc-to-markdown": "^9.0.5",
"pkg": "^5.8.1",
- "standard": "^17.0.0",
- "vitest": "^0.29.7"
+ "standard": "^17.1.2",
+ "vitest": "^2.1.4"
},
"engines": {
"node": ">=10"
}
},
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/@babel/generator": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz",
@@ -44,28 +53,34 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.21.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz",
- "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==",
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz",
+ "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.26.0"
+ },
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -73,6 +88,20 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@babel/parser/node_modules/@babel/types": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
+ "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/types": {
"version": "7.19.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz",
@@ -87,14 +116,32 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/@esbuild/android-arm": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.13.tgz",
- "integrity": "sha512-5tZZ/hLIfBmt7E8JsE5KbsknoAFmoElkg+A/gjyPtmSQvJjPf+9GsSJihid8VMa08lrsYyaEXOT9RLh3xXQONw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
"cpu": [
"arm"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
@@ -104,13 +151,14 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.13.tgz",
- "integrity": "sha512-F5DgvJMV2ZEpLNpPCO7FEk1wy8O5tg6cikWSB6uvvncsgE1xgbPlm+Boio/4820C2/mj713X83X1h01v0qoeHg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
@@ -120,13 +168,14 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.13.tgz",
- "integrity": "sha512-5m1UUslzpfVrumG3m3Zv2x9VNAcvMOQWJy009y6jt10tcHpzIq2/b0I0k4fz0QYqGSNS1GteRIhVPN4H7OyCXg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
@@ -136,13 +185,14 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.13.tgz",
- "integrity": "sha512-TXbXp/05r7heRsG8yWwbHw9diay+wXIyRNcIHFoNARRIGahYbTW/qwJzE37zkfxLIUPHgR/SyLTUlnTICg14ag==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -152,13 +202,14 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.13.tgz",
- "integrity": "sha512-Ku9Db2sblCxFvQdEO7X9nBaLR/S81uch81e2Q2+Os5z1NcnsFjuqhIYH0Gm6KNNpIKaEbC7gCLbiIPbLLMX4Pg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -168,13 +219,14 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.13.tgz",
- "integrity": "sha512-t1T5/nIf2j+FdSf1Fa3dcU0cXycr0nK4xJe52qjWa+1I249mM5NBY1ODjiabZxZ0x3CG05y4fd9bxfDLy9kQtA==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"freebsd"
@@ -184,13 +236,14 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.13.tgz",
- "integrity": "sha512-/zbkgEO4gY2qGZr9UNAGI38w/FwUY4bx4EC88k9VeiCKNr3ukNgwH/oIgB5Z9/OqpkNLlcS4w9e2d/MIiy5fbw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"freebsd"
@@ -200,13 +253,14 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.13.tgz",
- "integrity": "sha512-RrhjzrCF6aCDH248nUAQoldnRmN7nHMxv85GOj5AH+qkxxYvcig7fnUmgANngntRu4btXhN9WKHMgQ5seERDMw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
"cpu": [
"arm"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -216,13 +270,14 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.13.tgz",
- "integrity": "sha512-siu3QZrQ7eGrSttvFaRKyjT7kNRbUuHEKzCCyqRh19MbpGokGY13jbIsBEjx6JmH3T50hds325oweS9Ey2ihAQ==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -232,13 +287,14 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.13.tgz",
- "integrity": "sha512-ADHA1PqP5gIegehVP0RvxMmNPxpLgetI8QCwYOjUheGXKIKWSdUN8ZS3rusQv3NGZmFCpYdMZzFoI0QtzzGAdw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
"cpu": [
"ia32"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -248,13 +304,14 @@
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.13.tgz",
- "integrity": "sha512-n1JQPxETmR0brkpWlJHeohReEPLH+m00bnJdNnFyHN3zLBt1QypevuZSmnmFWsC+7r7HTwWILj3lBDjtPH3ydg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
"cpu": [
"loong64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -264,13 +321,14 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.13.tgz",
- "integrity": "sha512-d0pnD/j5KKQ43xtSIvOD+wNIy6D/Vh9GbXVRa3u4zCyiJMYWjxkPkbBzlEgNjdDmUM+5gBFen9k7B8Xscy+Myg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
"cpu": [
"mips64el"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -280,13 +338,14 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.13.tgz",
- "integrity": "sha512-C9sMpa/VcGLjVtsT01sXtzZNS7bAZ+icUclkKkiUwBQ9hzT+J+/Xpj+EykI5hB3KgtxQVo4XUahanFoZNxbQ1g==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
"cpu": [
"ppc64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -296,13 +355,14 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.13.tgz",
- "integrity": "sha512-jYkc5EpNpvjccAHNYekiAtklusVGWftR0VVLtng7dJzDyy+5adAsf1fOG3LllP0WALxS55/w6boLE/728J/bXw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
"cpu": [
"riscv64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -312,13 +372,14 @@
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.13.tgz",
- "integrity": "sha512-4jAJI5O6E/hATL4lsrG2A+noDjZ377KlATVFKwV3SWaNHj+OvoXe/T84ScQIXEtPI7ndJyLkMYruXj8RR5Ilyw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
"cpu": [
"s390x"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -328,13 +389,14 @@
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.13.tgz",
- "integrity": "sha512-eFLQhJq98qijGRcv9je/9M4Mz1suZ+pOtj62ArsLd0gubNGhhQDz6T30X2X3f1KZ8lkKkr+zN5vtZzx1GAMoFw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
@@ -344,13 +406,14 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.13.tgz",
- "integrity": "sha512-F8PXDeT+3eQpPjf4bmNJapPLu0SKKlWRGPQvBQqVS+YDGoMKnyyYp2UENLFMV8zT7kS39zKxZRZvUL3fMz/7Ww==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"netbsd"
@@ -360,13 +423,14 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.13.tgz",
- "integrity": "sha512-9jWfzbFCnIZdHjNs+00KQHArUbp7kjQDNmiuqkwGOQFs67m4/dKNupBv2DP5hTqVlQY4tW4RG3qpb6Y3zOHJeA==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"openbsd"
@@ -376,13 +440,14 @@
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.13.tgz",
- "integrity": "sha512-ALbOMlTIBkAVi6KqYjONa7u2oH95RN7OpetFqMtjufFLBiSaayRuwUzhs2yuR9CfGT4qi0jv6HQDav+EG314TQ==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"sunos"
@@ -392,13 +457,14 @@
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.13.tgz",
- "integrity": "sha512-FJBLYL4PkrZGeuHzEqme+0DjNetxkJ+XbB+Aoeow7aQ53JCwsA0/mo8sS5aPkDHgCnMkN4A5GLoFTlDj3BKDrQ==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
@@ -408,13 +474,14 @@
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.13.tgz",
- "integrity": "sha512-Qrvst9RkLz4qgi3hqswNliYuKW92/HGJnd7xLWkGaGPa8S4qsONf81FW0ebDc5iUHb0I7QJwQATutvghTabnFA==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
"cpu": [
"ia32"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
@@ -424,13 +491,14 @@
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.13.tgz",
- "integrity": "sha512-pZ/NIgz861XaUPlIkPFjP55nJ4PJa0o/CD4zgeRb1Q9FVE+8GvdB6ifJcK05jRhny5hKExhnRFIdgHmmCYH8vg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
@@ -455,23 +523,23 @@
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz",
- "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
"dev": true,
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/eslintrc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
- "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz",
+ "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.5.0",
+ "espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -487,21 +555,21 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
- "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+ "version": "8.54.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz",
+ "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "version": "0.11.13",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
+ "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
"dev": true,
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
+ "@humanwhocodes/object-schema": "^2.0.1",
"debug": "^4.1.1",
"minimatch": "^3.0.5"
},
@@ -523,15 +591,93 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
+ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
"dev": true
},
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
@@ -543,9 +689,9 @@
}
},
"node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
"dev": true,
"engines": {
"node": ">=6.0.0"
@@ -561,26 +707,28 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "dev": true
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.17",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
- "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "version": "0.3.20",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
+ "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
"dev": true,
"dependencies": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"node_modules/@jsdoc/salty": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz",
- "integrity": "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==",
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz",
+ "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"lodash": "^4.17.21"
},
@@ -623,227 +771,522 @@
"node": ">= 8"
}
},
- "node_modules/@polka/url": {
- "version": "1.0.0-next.21",
- "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
- "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
- "dev": true
- },
- "node_modules/@raylib/api": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/@raylib/api/-/api-4.5.0.tgz",
- "integrity": "sha512-T2jRHIHV2QNERbqgZFPkRGtyAnLDXSd3jOEV7SKIORcHp40k4W/pbqbscIsdF+LfC3e9dmilgNTRRGkJafo3Tg==",
- "dev": true
- },
- "node_modules/@types/chai": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz",
- "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==",
- "dev": true
- },
- "node_modules/@types/chai-subset": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz",
- "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==",
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
"dev": true,
- "dependencies": {
- "@types/chai": "*"
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
}
},
- "node_modules/@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
- "dev": true
- },
- "node_modules/@types/linkify-it": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
- "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
- "dev": true
- },
- "node_modules/@types/markdown-it": {
- "version": "12.2.3",
- "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
- "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.28",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
+ "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
"dev": true,
- "dependencies": {
- "@types/linkify-it": "*",
- "@types/mdurl": "*"
- }
- },
- "node_modules/@types/mdurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz",
- "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",
- "dev": true
- },
- "node_modules/@types/node": {
- "version": "18.15.10",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.10.tgz",
- "integrity": "sha512-9avDaQJczATcXgfmMAW3MIWArOO7A+m90vuCFLr8AotWf8igO/mRoYukrk2cqZVtv38tHs33retzHEilM7FpeQ==",
- "dev": true
+ "license": "MIT"
},
- "node_modules/@vitest/expect": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.7.tgz",
- "integrity": "sha512-UtG0tW0DP6b3N8aw7PHmweKDsvPv4wjGvrVZW7OSxaFg76ShtVdMiMcUkZJgCE8QWUmhwaM0aQhbbVLo4F4pkA==",
+ "node_modules/@raylib/api": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@raylib/api/-/api-5.0.1.tgz",
+ "integrity": "sha512-HX2JBaEW3KdSTrG59ceqcBrvWd2r0vAcYVDDQAXs38FiMxLZn6YYN2M1IG/HMWPM4xlFHo2KzaNxGrnhEnjR2Q==",
"dev": true,
- "dependencies": {
- "@vitest/spy": "0.29.7",
- "@vitest/utils": "0.29.7",
- "chai": "^4.3.7"
- }
+ "license": "Zlib"
},
- "node_modules/@vitest/runner": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.7.tgz",
- "integrity": "sha512-Yt0+csM945+odOx4rjZSjibQfl2ymxqVsmYz6sO2fiO5RGPYDFCo60JF6tLL9pz4G/kjY4irUxadeB1XT+H1jg==",
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz",
+ "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
- "dependencies": {
- "@vitest/utils": "0.29.7",
- "p-limit": "^4.0.0",
- "pathe": "^1.1.0"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
},
- "node_modules/@vitest/runner/node_modules/p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz",
+ "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "dependencies": {
- "yocto-queue": "^1.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
},
- "node_modules/@vitest/runner/node_modules/yocto-queue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
- "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz",
+ "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
},
- "node_modules/@vitest/spy": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.7.tgz",
- "integrity": "sha512-IalL0iO6A6Xz8hthR8sctk6ZS//zVBX48EiNwQguYACdgdei9ZhwMaBFV70mpmeYAFCRAm+DpoFHM5470Im78A==",
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz",
+ "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "dependencies": {
- "tinyspy": "^1.0.2"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
},
- "node_modules/@vitest/ui": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.29.7.tgz",
- "integrity": "sha512-KeOztcAldlFU5i8DKCQcmGrih1dVowurZy/9iPz5JyQdPJzej+nW1nI4nYvc4ZmUtA8+IAe9uViqnU7IXc1RNw==",
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz",
+ "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "dependencies": {
- "fast-glob": "^3.2.12",
- "flatted": "^3.2.7",
- "pathe": "^1.1.0",
- "picocolors": "^1.0.0",
- "sirv": "^2.0.2"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
},
- "node_modules/@vitest/utils": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.7.tgz",
- "integrity": "sha512-vNgGadp2eE5XKCXtZXL5UyNEDn68npSct75OC9AlELenSK0DiV1Mb9tfkwJHKjRb69iek+e79iipoJx8+s3SdA==",
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz",
+ "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "dependencies": {
- "cli-truncate": "^3.1.0",
- "diff": "^5.1.0",
- "loupe": "^2.3.6",
- "pretty-format": "^27.5.1"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
},
- "node_modules/acorn": {
- "version": "8.8.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
- "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz",
+ "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz",
+ "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz",
+ "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz",
+ "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz",
+ "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==",
+ "cpu": [
+ "ppc64"
+ ],
"dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz",
+ "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz",
+ "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz",
+ "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz",
+ "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz",
+ "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz",
+ "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz",
+ "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true
+ },
+ "node_modules/@types/linkify-it": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/markdown-it": {
+ "version": "14.1.2",
+ "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz",
+ "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/linkify-it": "^5",
+ "@types/mdurl": "^2"
+ }
+ },
+ "node_modules/@types/mdurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "node_modules/@vitest/expect": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz",
+ "integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/spy": "2.1.4",
+ "@vitest/utils": "2.1.4",
+ "chai": "^5.1.2",
+ "tinyrainbow": "^1.2.0"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/ansi-escape-sequences": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz",
- "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==",
+ "node_modules/@vitest/mocker": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz",
+ "integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/spy": "2.1.4",
+ "estree-walker": "^3.0.3",
+ "magic-string": "^0.30.12"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "msw": "^2.4.9",
+ "vite": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "msw": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vitest/pretty-format": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz",
+ "integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tinyrainbow": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/runner": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz",
+ "integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/utils": "2.1.4",
+ "pathe": "^1.1.2"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/snapshot": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz",
+ "integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/pretty-format": "2.1.4",
+ "magic-string": "^0.30.12",
+ "pathe": "^1.1.2"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/spy": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz",
+ "integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tinyspy": "^3.0.2"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/ui": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-2.1.4.tgz",
+ "integrity": "sha512-Zd9e5oU063c+j9N9XzGJagCLNvG71x/2tOme3Js4JEZKX55zsgxhJwUgLI8hkN6NjMLpdJO8d7nVUUuPGAA58Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/utils": "2.1.4",
+ "fflate": "^0.8.2",
+ "flatted": "^3.3.1",
+ "pathe": "^1.1.2",
+ "sirv": "^3.0.0",
+ "tinyglobby": "^0.2.9",
+ "tinyrainbow": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "vitest": "2.1.4"
+ }
+ },
+ "node_modules/@vitest/utils": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz",
+ "integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-back": "^3.0.1"
+ "@vitest/pretty-format": "2.1.4",
+ "loupe": "^3.1.2",
+ "tinyrainbow": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=6.5"
}
},
- "node_modules/ansi-escape-sequences/node_modules/array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
+ "node_modules/acorn": {
+ "version": "8.11.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
+ "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
"dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/ansi-regex": {
@@ -871,72 +1314,184 @@
}
},
"node_modules/archiver": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz",
- "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz",
+ "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "archiver-utils": "^2.1.0",
- "async": "^3.2.3",
- "buffer-crc32": "^0.2.1",
- "readable-stream": "^3.6.0",
- "readdir-glob": "^1.0.0",
- "tar-stream": "^2.2.0",
- "zip-stream": "^4.1.0"
+ "archiver-utils": "^5.0.2",
+ "async": "^3.2.4",
+ "buffer-crc32": "^1.0.0",
+ "readable-stream": "^4.0.0",
+ "readdir-glob": "^1.1.2",
+ "tar-stream": "^3.0.0",
+ "zip-stream": "^6.0.1"
},
"engines": {
- "node": ">= 10"
+ "node": ">= 14"
}
},
"node_modules/archiver-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
- "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz",
+ "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "glob": "^7.1.4",
+ "glob": "^10.0.0",
"graceful-fs": "^4.2.0",
+ "is-stream": "^2.0.1",
"lazystream": "^1.0.0",
- "lodash.defaults": "^4.2.0",
- "lodash.difference": "^4.5.0",
- "lodash.flatten": "^4.4.0",
- "lodash.isplainobject": "^4.0.6",
- "lodash.union": "^4.6.0",
+ "lodash": "^4.17.15",
"normalize-path": "^3.0.0",
- "readable-stream": "^2.0.0"
+ "readable-stream": "^4.0.0"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 14"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/archiver/node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
}
},
- "node_modules/archiver-utils/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "node_modules/archiver/node_modules/readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/archiver-utils/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/archiver-utils/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "node_modules/archiver/node_modules/tar-stream": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "safe-buffer": "~5.1.0"
+ "b4a": "^1.6.4",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
}
},
"node_modules/argparse": {
@@ -950,33 +1505,40 @@
"resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
"integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12.17"
}
},
"node_modules/array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/array-includes": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
- "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "get-intrinsic": "^1.1.3",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
"is-string": "^1.0.7"
},
"engines": {
@@ -995,15 +1557,55 @@
"node": ">=8"
}
},
+ "node_modules/array.prototype.findlast": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz",
+ "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/array.prototype.flat": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
- "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
"es-shim-unscopables": "^1.0.0"
},
"engines": {
@@ -1014,14 +1616,14 @@
}
},
"node_modules/array.prototype.flatmap": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
- "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
"es-shim-unscopables": "^1.0.0"
},
"engines": {
@@ -1032,31 +1634,59 @@
}
},
"node_modules/array.prototype.tosorted": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
- "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "es-shim-unscopables": "^1.0.0",
- "get-intrinsic": "^1.1.3"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "*"
+ "node": ">=12"
}
},
"node_modules/async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
+ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
"dev": true
},
"node_modules/at-least-node": {
@@ -1069,10 +1699,14 @@
}
},
"node_modules/available-typed-arrays": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -1080,12 +1714,27 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/b4a": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
+ "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
+ "node_modules/bare-events": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz",
+ "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true
+ },
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@@ -1121,7 +1770,8 @@
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/brace-expansion": {
"version": "1.1.11",
@@ -1170,12 +1820,13 @@
}
},
"node_modules/buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz",
+ "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "*"
+ "node": ">=8.0.0"
}
},
"node_modules/builtins": {
@@ -1192,41 +1843,47 @@
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/cache-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz",
- "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-3.0.0.tgz",
+ "integrity": "sha512-LDGNWYv/tqRWAAZxMy75PIYynaIuhcyoyjJtwA7X5uMZjdzvGm+XmTey/GXUy2EJ+lwc2eBFzFYxjvNYyE/0Iw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-back": "^4.0.1",
- "fs-then-native": "^2.0.0",
- "mkdirp2": "^1.0.4"
+ "array-back": "^6.2.2"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/cache-point/node_modules/array-back": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
- "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "node": ">=12.17"
+ },
+ "peerDependencies": {
+ "@75lb/nature": "^0.1.1"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
}
},
"node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -1246,6 +1903,7 @@
"resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz",
"integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"lodash": "^4.17.15"
},
@@ -1254,21 +1912,20 @@
}
},
"node_modules/chai": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
- "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz",
+ "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.2",
- "deep-eql": "^4.1.2",
- "get-func-name": "^2.0.0",
- "loupe": "^2.3.1",
- "pathval": "^1.1.1",
- "type-detect": "^4.0.5"
+ "assertion-error": "^2.0.1",
+ "check-error": "^2.1.1",
+ "deep-eql": "^5.0.1",
+ "loupe": "^3.1.0",
+ "pathval": "^2.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=12"
}
},
"node_modules/chalk": {
@@ -1287,86 +1944,37 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/check-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
- "node_modules/cli-truncate": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
- "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
+ "node_modules/chalk-template": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz",
+ "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "slice-ansi": "^5.0.0",
- "string-width": "^5.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "chalk": "^4.1.2"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-truncate/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
"engines": {
"node": ">=12"
},
"funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ "url": "https://github.com/chalk/chalk-template?sponsor=1"
}
},
- "node_modules/cli-truncate/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "node_modules/cli-truncate/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "node_modules/check-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
+ "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
"dev": true,
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 16"
}
},
- "node_modules/cli-truncate/node_modules/strip-ansi": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
- "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
+ "node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "dev": true
},
"node_modules/cliui": {
"version": "7.0.4",
@@ -1379,17 +1987,24 @@
"wrap-ansi": "^7.0.0"
}
},
- "node_modules/collect-all": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz",
- "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==",
+ "node_modules/cliui/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"dependencies": {
- "stream-connect": "^1.0.2",
- "stream-via": "^1.0.4"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
"node_modules/color-convert": {
@@ -1411,115 +2026,112 @@
"dev": true
},
"node_modules/command-line-args": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
- "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz",
+ "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-back": "^3.1.0",
- "find-replace": "^3.0.0",
+ "array-back": "^6.2.2",
+ "find-replace": "^5.0.2",
"lodash.camelcase": "^4.3.0",
- "typical": "^4.0.0"
+ "typical": "^7.2.0"
},
"engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/command-line-args/node_modules/array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/command-line-args/node_modules/typical": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
- "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/command-line-tool": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz",
- "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==",
- "dev": true,
- "dependencies": {
- "ansi-escape-sequences": "^4.0.0",
- "array-back": "^2.0.0",
- "command-line-args": "^5.0.0",
- "command-line-usage": "^4.1.0",
- "typical": "^2.6.1"
+ "node": ">=12.20"
},
- "engines": {
- "node": ">=4.0.0"
+ "peerDependencies": {
+ "@75lb/nature": "latest"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
}
},
- "node_modules/command-line-tool/node_modules/array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
+ "node_modules/command-line-usage": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz",
+ "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "typical": "^2.6.1"
+ "array-back": "^6.2.2",
+ "chalk-template": "^0.4.0",
+ "table-layout": "^4.1.0",
+ "typical": "^7.1.1"
},
"engines": {
- "node": ">=4"
+ "node": ">=12.20.0"
}
},
- "node_modules/command-line-usage": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz",
- "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==",
+ "node_modules/common-sequence": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz",
+ "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==",
"dev": true,
- "dependencies": {
- "ansi-escape-sequences": "^4.0.0",
- "array-back": "^2.0.0",
- "table-layout": "^0.4.2",
- "typical": "^2.6.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=4.0.0"
+ "node": ">=8"
}
},
- "node_modules/command-line-usage/node_modules/array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
+ "node_modules/compress-commons": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz",
+ "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "typical": "^2.6.1"
+ "crc-32": "^1.2.0",
+ "crc32-stream": "^6.0.0",
+ "is-stream": "^2.0.1",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^4.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">= 14"
}
},
- "node_modules/common-sequence": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz",
- "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==",
+ "node_modules/compress-commons/node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
}
},
- "node_modules/compress-commons": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz",
- "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==",
+ "node_modules/compress-commons/node_modules/readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "buffer-crc32": "^0.2.13",
- "crc32-stream": "^4.0.2",
- "normalize-path": "^3.0.0",
- "readable-stream": "^3.6.0"
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
},
"engines": {
- "node": ">= 10"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/concat-map": {
@@ -1557,6 +2169,7 @@
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"crc32": "bin/crc32.njs"
},
@@ -1565,24 +2178,68 @@
}
},
"node_modules/crc32-stream": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz",
- "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz",
+ "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"crc-32": "^1.2.0",
- "readable-stream": "^3.4.0"
+ "readable-stream": "^4.0.0"
},
"engines": {
- "node": ">= 10"
+ "node": ">= 14"
+ }
+ },
+ "node_modules/crc32-stream/node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/crc32-stream/node_modules/readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/cross-fetch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
- "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
+ "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
+ "license": "MIT",
"dependencies": {
- "node-fetch": "2.6.7"
+ "node-fetch": "^2.6.12"
}
},
"node_modules/cross-spawn": {
@@ -1599,13 +2256,78 @@
"node": ">= 8"
}
},
+ "node_modules/current-module-paths": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/current-module-paths/-/current-module-paths-1.1.2.tgz",
+ "integrity": "sha512-H4s4arcLx/ugbu1XkkgSvcUZax0L6tXUqnppGniQb8l5VjUKGHoayXE5RiriiPhYDd+kjZnaok1Uig13PKtKYQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.17"
+ }
+ },
+ "node_modules/data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "2.1.2"
+ "ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
@@ -1632,13 +2354,11 @@
}
},
"node_modules/deep-eql": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
- "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+ "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
"dev": true,
- "dependencies": {
- "type-detect": "^4.0.0"
- },
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -1658,12 +2378,31 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/define-properties": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
- "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
"dependencies": {
+ "define-data-property": "^1.0.1",
"has-property-descriptors": "^1.0.0",
"object-keys": "^1.1.1"
},
@@ -1675,23 +2414,14 @@
}
},
"node_modules/detect-libc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
- "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
"dev": true,
"engines": {
"node": ">=8"
}
},
- "node_modules/diff": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
- "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -1705,26 +2435,30 @@
}
},
"node_modules/dmd": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz",
- "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==",
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/dmd/-/dmd-7.0.7.tgz",
+ "integrity": "sha512-UXNLJkci/tiVNct+JgrpfTlSs8cSyLbR3q4xkYQ4do6cRCUPj0HodfMsBLPhC7KG3qGRp1YJgfNjdgCrYEcHWQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-back": "^6.2.2",
- "cache-point": "^2.0.0",
+ "cache-point": "^3.0.0",
"common-sequence": "^2.0.2",
- "file-set": "^4.0.2",
- "handlebars": "^4.7.7",
- "marked": "^4.2.3",
- "object-get": "^2.1.1",
- "reduce-flatten": "^3.0.1",
- "reduce-unique": "^2.0.1",
- "reduce-without": "^1.0.1",
- "test-value": "^3.0.0",
- "walk-back": "^5.1.0"
+ "file-set": "^5.2.2",
+ "handlebars": "^4.7.8",
+ "marked": "^4.3.0",
+ "walk-back": "^5.1.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=12.17"
+ },
+ "peerDependencies": {
+ "@75lb/nature": "latest"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
}
},
"node_modules/doctrine": {
@@ -1743,13 +2477,15 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/end-of-stream": {
"version": "1.4.4",
@@ -1761,10 +2497,14 @@
}
},
"node_modules/entities": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
- "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
@@ -1779,45 +2519,58 @@
}
},
"node_modules/es-abstract": {
- "version": "1.21.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
- "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
- "dev": true,
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "es-set-tostringtag": "^2.0.1",
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
"es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.2.0",
- "get-symbol-description": "^1.0.0",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
- "has": "^1.0.3",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
- "is-array-buffer": "^3.0.2",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
"is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
+ "is-shared-array-buffer": "^1.0.3",
"is-string": "^1.0.7",
- "is-typed-array": "^1.1.10",
+ "is-typed-array": "^1.1.13",
"is-weakref": "^1.0.2",
- "object-inspect": "^1.12.3",
+ "object-inspect": "^1.13.1",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.4.3",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trim": "^1.2.7",
- "string.prototype.trimend": "^1.0.6",
- "string.prototype.trimstart": "^1.0.6",
- "typed-array-length": "^1.0.4",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.2",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.6",
"unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.9"
+ "which-typed-array": "^1.1.15"
},
"engines": {
"node": ">= 0.4"
@@ -1826,27 +2579,91 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-iterator-helpers": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz",
+ "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.3",
+ "safe-array-concat": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-set-tostringtag": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
- "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.1.3",
- "has": "^1.0.3",
- "has-tostringtag": "^1.0.0"
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-shim-unscopables": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
- "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
"dev": true,
"dependencies": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
}
},
"node_modules/es-to-primitive": {
@@ -1867,11 +2684,12 @@
}
},
"node_modules/esbuild": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.13.tgz",
- "integrity": "sha512-4ixMwdErBcQHgTBeoxnowENCPKWFAGxgTyKHMK8gqn9sZaC7ZNWFKtim16g2rzQ2b/FYyy3lIUUJboFtjolhqg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
@@ -1879,28 +2697,29 @@
"node": ">=12"
},
"optionalDependencies": {
- "@esbuild/android-arm": "0.17.13",
- "@esbuild/android-arm64": "0.17.13",
- "@esbuild/android-x64": "0.17.13",
- "@esbuild/darwin-arm64": "0.17.13",
- "@esbuild/darwin-x64": "0.17.13",
- "@esbuild/freebsd-arm64": "0.17.13",
- "@esbuild/freebsd-x64": "0.17.13",
- "@esbuild/linux-arm": "0.17.13",
- "@esbuild/linux-arm64": "0.17.13",
- "@esbuild/linux-ia32": "0.17.13",
- "@esbuild/linux-loong64": "0.17.13",
- "@esbuild/linux-mips64el": "0.17.13",
- "@esbuild/linux-ppc64": "0.17.13",
- "@esbuild/linux-riscv64": "0.17.13",
- "@esbuild/linux-s390x": "0.17.13",
- "@esbuild/linux-x64": "0.17.13",
- "@esbuild/netbsd-x64": "0.17.13",
- "@esbuild/openbsd-x64": "0.17.13",
- "@esbuild/sunos-x64": "0.17.13",
- "@esbuild/win32-arm64": "0.17.13",
- "@esbuild/win32-ia32": "0.17.13",
- "@esbuild/win32-x64": "0.17.13"
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
}
},
"node_modules/escalade": {
@@ -1917,32 +2736,34 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/eslint": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
- "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+ "version": "8.54.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz",
+ "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.1",
- "@eslint/js": "8.36.0",
- "@humanwhocodes/config-array": "^0.11.8",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.3",
+ "@eslint/js": "8.54.0",
+ "@humanwhocodes/config-array": "^0.11.13",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.5.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -1950,22 +2771,19 @@
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
"globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
+ "graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
+ "optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
},
"bin": {
@@ -1979,9 +2797,9 @@
}
},
"node_modules/eslint-config-standard": {
- "version": "17.0.0",
- "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz",
- "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz",
+ "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==",
"dev": true,
"funding": [
{
@@ -1997,10 +2815,13 @@
"url": "https://feross.org/support"
}
],
+ "engines": {
+ "node": ">=12.0.0"
+ },
"peerDependencies": {
"eslint": "^8.0.1",
"eslint-plugin-import": "^2.25.2",
- "eslint-plugin-n": "^15.0.0",
+ "eslint-plugin-n": "^15.0.0 || ^16.0.0 ",
"eslint-plugin-promise": "^6.0.0"
}
},
@@ -2029,14 +2850,14 @@
}
},
"node_modules/eslint-import-resolver-node": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
- "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
"dependencies": {
"debug": "^3.2.7",
- "is-core-module": "^2.11.0",
- "resolve": "^1.22.1"
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
}
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
@@ -2049,21 +2870,21 @@
}
},
"node_modules/eslint-import-resolver-node/node_modules/is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"dependencies": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/eslint-module-utils": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
- "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
"dev": true,
"dependencies": {
"debug": "^3.2.7"
@@ -2130,26 +2951,28 @@
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.27.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
- "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
+ "version": "2.29.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz",
+ "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==",
"dev": true,
"dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "array.prototype.flatmap": "^1.3.1",
+ "array-includes": "^3.1.7",
+ "array.prototype.findlastindex": "^1.2.3",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
"debug": "^3.2.7",
"doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.7",
- "eslint-module-utils": "^2.7.4",
- "has": "^1.0.3",
- "is-core-module": "^2.11.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.8.0",
+ "hasown": "^2.0.0",
+ "is-core-module": "^2.13.1",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
- "object.values": "^1.1.6",
- "resolve": "^1.22.1",
- "semver": "^6.3.0",
- "tsconfig-paths": "^3.14.1"
+ "object.fromentries": "^2.0.7",
+ "object.groupby": "^1.0.1",
+ "object.values": "^1.1.7",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.14.2"
},
"engines": {
"node": ">=4"
@@ -2180,30 +3003,30 @@
}
},
"node_modules/eslint-plugin-import/node_modules/is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"dependencies": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/eslint-plugin-import/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/eslint-plugin-n": {
- "version": "15.6.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.6.1.tgz",
- "integrity": "sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==",
+ "version": "15.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz",
+ "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==",
"dev": true,
"dependencies": {
"builtins": "^5.0.1",
@@ -2226,12 +3049,12 @@
}
},
"node_modules/eslint-plugin-n/node_modules/is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"dependencies": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -2250,32 +3073,36 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.32.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz",
- "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==",
+ "version": "7.37.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz",
+ "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "array.prototype.tosorted": "^1.1.1",
+ "array-includes": "^3.1.8",
+ "array.prototype.findlast": "^1.2.5",
+ "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.tosorted": "^1.1.4",
"doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.1.0",
"estraverse": "^5.3.0",
+ "hasown": "^2.0.2",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "object.hasown": "^1.1.2",
- "object.values": "^1.1.6",
+ "object.entries": "^1.1.8",
+ "object.fromentries": "^2.0.8",
+ "object.values": "^1.2.0",
"prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.4",
- "semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.8"
+ "resolve": "^2.0.0-next.5",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.11",
+ "string.prototype.repeat": "^1.0.0"
},
"engines": {
"node": ">=4"
},
"peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
}
},
"node_modules/eslint-plugin-react/node_modules/doctrine": {
@@ -2290,13 +3117,25 @@
"node": ">=0.10.0"
}
},
+ "node_modules/eslint-plugin-react/node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.4",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
- "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dev": true,
"dependencies": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -2308,18 +3147,18 @@
}
},
"node_modules/eslint-plugin-react/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
@@ -2327,6 +3166,9 @@
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-utils": {
@@ -2357,12 +3199,15 @@
}
},
"node_modules/eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint/node_modules/escape-string-regexp": {
@@ -2390,14 +3235,14 @@
}
},
"node_modules/espree": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
- "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
"dependencies": {
- "acorn": "^8.8.0",
+ "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2439,6 +3284,16 @@
"node": ">=4.0"
}
},
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
"node_modules/esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -2448,6 +3303,26 @@
"node": ">=0.10.0"
}
},
+ "node_modules/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
"node_modules/expand-template": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
@@ -2457,16 +3332,33 @@
"node": ">=6"
}
},
+ "node_modules/expect-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz",
+ "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true
},
+ "node_modules/fast-fifo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -2500,6 +3392,13 @@
"reusify": "^1.0.4"
}
},
+ "node_modules/fflate": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
+ "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -2513,25 +3412,25 @@
}
},
"node_modules/file-set": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz",
- "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/file-set/-/file-set-5.2.2.tgz",
+ "integrity": "sha512-/KgJI1V/QaDK4enOk/E2xMFk1cTWJghEr7UmWiRZfZ6upt6gQCfMn4jJ7aOm64OKurj4TaVnSSgSDqv5ZKYA3A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-back": "^5.0.0",
- "glob": "^7.1.6"
+ "array-back": "^6.2.2",
+ "fast-glob": "^3.3.2"
},
"engines": {
- "node": ">=10"
- }
- },
- "node_modules/file-set/node_modules/array-back": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz",
- "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==",
- "dev": true,
- "engines": {
- "node": ">=10"
+ "node": ">=12.17"
+ },
+ "peerDependencies": {
+ "@75lb/nature": "latest"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
}
},
"node_modules/fill-range": {
@@ -2547,24 +3446,21 @@
}
},
"node_modules/find-replace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
- "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
- "dev": true,
- "dependencies": {
- "array-back": "^3.0.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/find-replace/node_modules/array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz",
+ "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@75lb/nature": "latest"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
}
},
"node_modules/find-up": {
@@ -2584,12 +3480,13 @@
}
},
"node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dev": true,
"dependencies": {
- "flatted": "^3.1.0",
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
"rimraf": "^3.0.2"
},
"engines": {
@@ -2597,20 +3494,39 @@
}
},
"node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-callable": "^1.1.3"
}
},
+ "node_modules/foreground-child": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
+ "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/from2": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
@@ -2621,6 +3537,12 @@
"readable-stream": "^2.0.0"
}
},
+ "node_modules/from2/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"node_modules/from2/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -2672,15 +3594,6 @@
"node": ">=10"
}
},
- "node_modules/fs-then-native": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz",
- "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==",
- "dev": true,
- "engines": {
- "node": ">=4.0.0"
- }
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -2688,11 +3601,12 @@
"dev": true
},
"node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -2702,21 +3616,24 @@
}
},
"node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/function.prototype.name": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
- "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0",
- "functions-have-names": "^1.2.2"
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
},
"engines": {
"node": ">= 0.4"
@@ -2743,24 +3660,21 @@
"node": "6.* || 8.* || >= 10.*"
}
},
- "node_modules/get-func-name": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
- "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
"node_modules/get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -2779,13 +3693,15 @@
}
},
"node_modules/get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
},
"engines": {
"node": ">= 0.4"
@@ -2833,9 +3749,9 @@
}
},
"node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "version": "13.23.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
+ "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
@@ -2848,12 +3764,14 @@
}
},
"node_modules/globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "define-properties": "^1.1.3"
+ "define-properties": "^1.2.1",
+ "gopd": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -2900,20 +3818,21 @@
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true
},
- "node_modules/grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true
},
"node_modules/handlebars": {
- "version": "4.7.7",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
- "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"minimist": "^1.2.5",
- "neo-async": "^2.6.0",
+ "neo-async": "^2.6.2",
"source-map": "^0.6.1",
"wordwrap": "^1.0.0"
},
@@ -2928,13 +3847,10 @@
}
},
"node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
+ "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
"dev": true,
- "dependencies": {
- "function-bind": "^1.1.1"
- },
"engines": {
"node": ">= 0.4.0"
}
@@ -2958,22 +3874,24 @@
}
},
"node_modules/has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.1.1"
+ "es-define-property": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -2994,12 +3912,13 @@
}
},
"node_modules/has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-symbols": "^1.0.2"
+ "has-symbols": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
@@ -3008,6 +3927,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/https-proxy-agent": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
@@ -3042,9 +3974,9 @@
]
},
"node_modules/ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
+ "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
"dev": true,
"engines": {
"node": ">= 4"
@@ -3098,13 +4030,14 @@
"dev": true
},
"node_modules/internal-slot": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
- "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.2.0",
- "has": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
"side-channel": "^1.0.4"
},
"engines": {
@@ -3128,14 +4061,17 @@
}
},
"node_modules/is-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "is-typed-array": "^1.1.10"
+ "get-intrinsic": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -3147,6 +4083,22 @@
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
"dev": true
},
+ "node_modules/is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-bigint": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
@@ -3199,6 +4151,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-date-object": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
@@ -3223,15 +4191,45 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
+ "node_modules/is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -3244,11 +4242,25 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -3294,6 +4306,7 @@
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
"integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
@@ -3305,18 +4318,48 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-set": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2"
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-string": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
@@ -3348,16 +4391,13 @@
}
},
"node_modules/is-typed-array": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
- "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
+ "which-typed-array": "^1.1.14"
},
"engines": {
"node": ">= 0.4"
@@ -3366,6 +4406,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-weakmap": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-weakref": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
@@ -3378,11 +4431,29 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-weakset": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/isexe": {
"version": "2.0.0",
@@ -3390,14 +4461,37 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true
},
- "node_modules/js-sdsl": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
- "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
+ "node_modules/iterator.prototype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz",
+ "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/js-sdsl"
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/js-tokens": {
@@ -3423,26 +4517,28 @@
"resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz",
"integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"xmlcreate": "^2.0.4"
}
},
"node_modules/jsdoc": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz",
- "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.4.tgz",
+ "integrity": "sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@babel/parser": "^7.20.15",
"@jsdoc/salty": "^0.2.1",
- "@types/markdown-it": "^12.2.3",
+ "@types/markdown-it": "^14.1.1",
"bluebird": "^3.7.2",
"catharsis": "^0.9.0",
"escape-string-regexp": "^2.0.0",
"js2xmlparser": "^4.0.2",
"klaw": "^3.0.0",
- "markdown-it": "^12.3.2",
- "markdown-it-anchor": "^8.4.1",
+ "markdown-it": "^14.1.0",
+ "markdown-it-anchor": "^8.6.7",
"marked": "^4.0.10",
"mkdirp": "^1.0.4",
"requizzle": "^0.2.3",
@@ -3457,61 +4553,77 @@
}
},
"node_modules/jsdoc-api": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.0.0.tgz",
- "integrity": "sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==",
+ "version": "9.3.4",
+ "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-9.3.4.tgz",
+ "integrity": "sha512-di8lggLACEttpyAZ6WjKKafUP4wC4prAGjt40nMl7quDpp2nD7GmLt6/WxhRu9Q6IYoAAySsNeidBXYVAMwlqg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-back": "^6.2.2",
- "cache-point": "^2.0.0",
- "collect-all": "^1.0.4",
- "file-set": "^4.0.2",
- "fs-then-native": "^2.0.0",
- "jsdoc": "^4.0.0",
+ "cache-point": "^3.0.0",
+ "current-module-paths": "^1.1.2",
+ "file-set": "^5.2.2",
+ "jsdoc": "^4.0.4",
"object-to-spawn-args": "^2.0.1",
- "temp-path": "^1.0.0",
- "walk-back": "^5.1.0"
+ "walk-back": "^5.1.1"
},
"engines": {
"node": ">=12.17"
+ },
+ "peerDependencies": {
+ "@75lb/nature": "latest"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
}
},
"node_modules/jsdoc-parse": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.0.tgz",
- "integrity": "sha512-Afu1fQBEb7QHt6QWX/6eUWvYHJofB90Fjx7FuJYF7mnG9z5BkAIpms1wsnvYLytfmqpEENHs/fax9p8gvMj7dw==",
+ "version": "6.2.4",
+ "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.4.tgz",
+ "integrity": "sha512-MQA+lCe3ioZd0uGbyB3nDCDZcKgKC7m/Ivt0LgKZdUoOlMJxUWJQ3WI6GeyHp9ouznKaCjlp7CU9sw5k46yZTw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-back": "^6.2.2",
+ "find-replace": "^5.0.1",
"lodash.omit": "^4.5.0",
- "lodash.pick": "^4.4.0",
- "reduce-extract": "^1.0.0",
- "sort-array": "^4.1.5",
- "test-value": "^3.0.0"
+ "sort-array": "^5.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/jsdoc-to-markdown": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.0.tgz",
- "integrity": "sha512-2FQvYkg491+FP6s15eFlgSSWs69CvQrpbABGYBtvAvGWy/lWo8IKKToarT283w59rQFrpcjHl3YdhHCa3l7gXg==",
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-9.0.5.tgz",
+ "integrity": "sha512-lqvKgSva+wGUusRz6xtImdM92lrjHNmyi7LyWdLMQBijCnoFwTZjNF3zUqm6uahsSaRALQNyzGXmjaef6IUE4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-back": "^6.2.2",
- "command-line-tool": "^0.8.0",
+ "command-line-args": "^6.0.1",
+ "command-line-usage": "^7.0.3",
"config-master": "^3.1.0",
- "dmd": "^6.2.0",
- "jsdoc-api": "^8.0.0",
- "jsdoc-parse": "^6.2.0",
- "walk-back": "^5.1.0"
+ "dmd": "^7.0.7",
+ "jsdoc-api": "^9.3.4",
+ "jsdoc-parse": "^6.2.4",
+ "walk-back": "^5.1.1"
},
"bin": {
"jsdoc2md": "bin/cli.js"
},
"engines": {
"node": ">=12.17"
+ },
+ "peerDependencies": {
+ "@75lb/nature": "latest"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
}
},
"node_modules/jsesc": {
@@ -3526,6 +4638,12 @@
"node": ">=4"
}
},
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -3556,12 +4674,6 @@
"json5": "lib/cli.js"
}
},
- "node_modules/jsonc-parser": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
- "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
- "dev": true
- },
"node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -3575,23 +4687,35 @@
}
},
"node_modules/jsx-ast-utils": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
- "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true,
"dependencies": {
- "array-includes": "^3.1.5",
- "object.assign": "^4.1.3"
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
},
"engines": {
"node": ">=4.0"
}
},
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
"node_modules/klaw": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
"integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.1.9"
}
@@ -3601,6 +4725,7 @@
"resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
"integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"readable-stream": "^2.0.5"
},
@@ -3608,11 +4733,19 @@
"node": ">= 0.6.3"
}
},
+ "node_modules/lazystream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/lazystream/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -3627,13 +4760,15 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lazystream/node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
@@ -3652,12 +4787,13 @@
}
},
"node_modules/linkify-it": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
- "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "uc.micro": "^1.0.1"
+ "uc.micro": "^2.0.0"
}
},
"node_modules/load-json-file": {
@@ -3685,18 +4821,6 @@
"node": ">=6"
}
},
- "node_modules/local-pkg": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
- "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -3716,37 +4840,15 @@
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.camelcase": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
- "dev": true
- },
- "node_modules/lodash.defaults": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
- "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
- "dev": true
- },
- "node_modules/lodash.difference": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
- "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==",
- "dev": true
- },
- "node_modules/lodash.flatten": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==",
- "dev": true
- },
- "node_modules/lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.merge": {
"version": "4.6.2",
@@ -3758,25 +4860,8 @@
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
"integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==",
- "dev": true
- },
- "node_modules/lodash.padend": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
- "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==",
- "dev": true
- },
- "node_modules/lodash.pick": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==",
- "dev": true
- },
- "node_modules/lodash.union": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
- "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/loose-envify": {
"version": "1.4.0",
@@ -3791,13 +4876,11 @@
}
},
"node_modules/loupe": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz",
- "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz",
+ "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==",
"dev": true,
- "dependencies": {
- "get-func-name": "^2.0.0"
- }
+ "license": "MIT"
},
"node_modules/lru-cache": {
"version": "6.0.0",
@@ -3811,20 +4894,32 @@
"node": ">=10"
}
},
+ "node_modules/magic-string": {
+ "version": "0.30.12",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz",
+ "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0"
+ }
+ },
"node_modules/markdown-it": {
- "version": "12.3.2",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
- "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1",
- "entities": "~2.1.0",
- "linkify-it": "^3.0.1",
- "mdurl": "^1.0.1",
- "uc.micro": "^1.0.5"
+ "entities": "^4.4.0",
+ "linkify-it": "^5.0.0",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
},
"bin": {
- "markdown-it": "bin/markdown-it.js"
+ "markdown-it": "bin/markdown-it.mjs"
}
},
"node_modules/markdown-it-anchor": {
@@ -3832,6 +4927,7 @@
"resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz",
"integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==",
"dev": true,
+ "license": "Unlicense",
"peerDependencies": {
"@types/markdown-it": "*",
"markdown-it": "*"
@@ -3842,6 +4938,7 @@
"resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
"integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
"dev": true,
+ "license": "MIT",
"bin": {
"marked": "bin/marked.js"
},
@@ -3850,10 +4947,11 @@
}
},
"node_modules/mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
- "dev": true
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/merge2": {
"version": "1.4.1",
@@ -3910,11 +5008,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
"node_modules/mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
+ "license": "MIT",
"bin": {
"mkdirp": "bin/cmd.js"
},
@@ -3928,43 +5037,27 @@
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
"dev": true
},
- "node_modules/mkdirp2": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz",
- "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==",
- "dev": true
- },
- "node_modules/mlly": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz",
- "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.8.2",
- "pathe": "^1.1.0",
- "pkg-types": "^1.0.2",
- "ufo": "^1.1.1"
- }
- },
"node_modules/module-alias": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz",
- "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q=="
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.3.tgz",
+ "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q=="
},
"node_modules/mrmime": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
- "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
+ "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/multistream": {
"version": "4.1.0",
@@ -3991,9 +5084,9 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"dev": true,
"funding": [
{
@@ -4001,6 +5094,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -4024,12 +5118,13 @@
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/node-abi": {
- "version": "3.33.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.33.0.tgz",
- "integrity": "sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog==",
+ "version": "3.51.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz",
+ "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==",
"dev": true,
"dependencies": {
"semver": "^7.3.5"
@@ -4039,9 +5134,9 @@
}
},
"node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -4062,6 +5157,7 @@
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -4075,17 +5171,15 @@
"node": ">=0.10.0"
}
},
- "node_modules/object-get": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz",
- "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==",
- "dev": true
- },
"node_modules/object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
+ "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -4104,18 +5198,20 @@
"resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz",
"integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
},
@@ -4127,28 +5223,31 @@
}
},
"node_modules/object.entries": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
- "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/object.fromentries": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
- "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -4157,28 +5256,28 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object.hasown": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
- "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
+ "node_modules/object.groupby": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz",
+ "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==",
"dev": true,
"dependencies": {
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1"
}
},
"node_modules/object.values": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
- "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -4197,17 +5296,17 @@
}
},
"node_modules/optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
"dev": true,
"dependencies": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "type-check": "^0.4.0"
},
"engines": {
"node": ">= 0.8.0"
@@ -4261,6 +5360,13 @@
"node": ">=6"
}
},
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -4319,6 +5425,30 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -4329,25 +5459,28 @@
}
},
"node_modules/pathe": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
- "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
- "dev": true
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/pathval": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
- "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
+ "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "*"
+ "node": ">= 14.16"
}
},
"node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
@@ -4496,17 +5629,6 @@
"pkg-fetch": "lib-es5/bin.js"
}
},
- "node_modules/pkg-types": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz",
- "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==",
- "dev": true,
- "dependencies": {
- "jsonc-parser": "^3.2.0",
- "mlly": "^1.1.1",
- "pathe": "^1.1.0"
- }
- },
"node_modules/pkg/node_modules/@babel/parser": {
"version": "7.18.4",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz",
@@ -4519,10 +5641,20 @@
"node": ">=6.0.0"
}
},
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/postcss": {
- "version": "8.4.24",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz",
- "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==",
+ "version": "8.4.47",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
+ "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
"dev": true,
"funding": [
{
@@ -4538,10 +5670,11 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.1.0",
+ "source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
@@ -4582,38 +5715,16 @@
"node": ">= 0.8.0"
}
},
- "node_modules/pretty-format": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
- "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1",
- "ansi-styles": "^5.0.0",
- "react-is": "^17.0.1"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">= 0.6.0"
}
},
- "node_modules/pretty-format/node_modules/react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
- "dev": true
- },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -4651,10 +5762,20 @@
}
},
"node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/punycode.js": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -4679,6 +5800,13 @@
}
]
},
+ "node_modules/queue-tick": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@@ -4724,9 +5852,9 @@
}
},
"node_modules/readdir-glob": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.2.tgz",
- "integrity": "sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz",
+ "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==",
"dev": true,
"dependencies": {
"minimatch": "^5.1.0"
@@ -4753,107 +5881,39 @@
"node": ">=10"
}
},
- "node_modules/reduce-extract": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz",
- "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==",
- "dev": true,
- "dependencies": {
- "test-value": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/reduce-extract/node_modules/array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
- "dev": true,
- "dependencies": {
- "typical": "^2.6.0"
- },
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/reduce-extract/node_modules/test-value": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz",
- "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==",
- "dev": true,
- "dependencies": {
- "array-back": "^1.0.2",
- "typical": "^2.4.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/reduce-flatten": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz",
- "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/reduce-unique": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz",
- "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/reduce-without": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz",
- "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==",
- "dev": true,
- "dependencies": {
- "test-value": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/reduce-without/node_modules/array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
+ "node_modules/reflect.getprototypeof": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "typical": "^2.6.0"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
},
"engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/reduce-without/node_modules/test-value": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
- "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==",
- "dev": true,
- "dependencies": {
- "array-back": "^1.0.3",
- "typical": "^2.6.0"
+ "node": ">= 0.4"
},
- "engines": {
- "node": ">=0.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/regexp.prototype.flags": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
- "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+ "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "functions-have-names": "^1.2.2"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -4888,17 +5948,18 @@
"resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz",
"integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"lodash": "^4.17.21"
}
},
"node_modules/resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"dependencies": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -4918,6 +5979,18 @@
"node": ">=4"
}
},
+ "node_modules/resolve/node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
@@ -4944,18 +6017,40 @@
}
},
"node_modules/rollup": {
- "version": "3.23.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.23.1.tgz",
- "integrity": "sha512-ybRdFVHOoljGEFILHLd2g/qateqUdjE6YS41WXq4p3C/WwD3xtWxV4FYWETA1u9TeXQc5K8L8zHE5d/scOvrOQ==",
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz",
+ "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.6"
+ },
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
- "node": ">=14.18.0",
+ "node": ">=18.0.0",
"npm": ">=8.0.0"
},
"optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.24.4",
+ "@rollup/rollup-android-arm64": "4.24.4",
+ "@rollup/rollup-darwin-arm64": "4.24.4",
+ "@rollup/rollup-darwin-x64": "4.24.4",
+ "@rollup/rollup-freebsd-arm64": "4.24.4",
+ "@rollup/rollup-freebsd-x64": "4.24.4",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.24.4",
+ "@rollup/rollup-linux-arm-musleabihf": "4.24.4",
+ "@rollup/rollup-linux-arm64-gnu": "4.24.4",
+ "@rollup/rollup-linux-arm64-musl": "4.24.4",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4",
+ "@rollup/rollup-linux-riscv64-gnu": "4.24.4",
+ "@rollup/rollup-linux-s390x-gnu": "4.24.4",
+ "@rollup/rollup-linux-x64-gnu": "4.24.4",
+ "@rollup/rollup-linux-x64-musl": "4.24.4",
+ "@rollup/rollup-win32-arm64-msvc": "4.24.4",
+ "@rollup/rollup-win32-ia32-msvc": "4.24.4",
+ "@rollup/rollup-win32-x64-msvc": "4.24.4",
"fsevents": "~2.3.2"
}
},
@@ -4982,6 +6077,25 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/safe-array-concat": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -5003,23 +6117,27 @@
]
},
"node_modules/safe-regex-test": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
- "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
"is-regex": "^1.1.4"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -5031,6 +6149,40 @@
"node": ">=10"
}
},
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -5053,25 +6205,44 @@
}
},
"node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/siginfo": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/siginfo": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
- "dev": true
- },
"node_modules/simple-concat": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
@@ -5118,17 +6289,18 @@
}
},
"node_modules/sirv": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz",
- "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz",
+ "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@polka/url": "^1.0.0-next.20",
- "mrmime": "^1.0.0",
+ "@polka/url": "^1.0.0-next.24",
+ "mrmime": "^2.0.0",
"totalist": "^3.0.0"
},
"engines": {
- "node": ">= 10"
+ "node": ">=18"
}
},
"node_modules/slash": {
@@ -5140,75 +6312,26 @@
"node": ">=8"
}
},
- "node_modules/slice-ansi": {
+ "node_modules/sort-array": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
- "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
+ "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-5.0.0.tgz",
+ "integrity": "sha512-Sg9MzajSGprcSrMIxsXyNT0e0JB47RJRfJspC+7co4Z5BdNsNl8FmWI+lXEpyKq+vkMG6pHgAhqyCO+bkDTfFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^6.0.0",
- "is-fullwidth-code-point": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=1"
- }
- },
- "node_modules/slice-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "engines": {
- "node": ">=12"
+ "array-back": "^6.2.2",
+ "typical": "^7.1.1"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
- "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
- "dev": true,
"engines": {
- "node": ">=12"
+ "node": ">=12.17"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/sort-array": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz",
- "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==",
- "dev": true,
- "dependencies": {
- "array-back": "^5.0.0",
- "typical": "^6.0.1"
+ "peerDependencies": {
+ "@75lb/nature": "^0.1.1"
},
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/sort-array/node_modules/array-back": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz",
- "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/sort-array/node_modules/typical": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz",
- "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==",
- "dev": true,
- "engines": {
- "node": ">=10"
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
}
},
"node_modules/source-map": {
@@ -5216,15 +6339,17 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -5233,12 +6358,13 @@
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
"integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/standard": {
- "version": "17.0.0",
- "resolved": "https://registry.npmjs.org/standard/-/standard-17.0.0.tgz",
- "integrity": "sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA==",
+ "version": "17.1.2",
+ "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.2.tgz",
+ "integrity": "sha512-WLm12WoXveKkvnPnPnaFUUHuOB2cUdAsJ4AiGHL2G0UNMrcRAWY2WriQaV8IQ3oRmYr0AWUbLNr94ekYFAHOrA==",
"dev": true,
"funding": [
{
@@ -5254,27 +6380,29 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
- "eslint": "^8.13.0",
- "eslint-config-standard": "17.0.0",
+ "eslint": "^8.41.0",
+ "eslint-config-standard": "17.1.0",
"eslint-config-standard-jsx": "^11.0.0",
- "eslint-plugin-import": "^2.26.0",
- "eslint-plugin-n": "^15.1.0",
- "eslint-plugin-promise": "^6.0.0",
- "eslint-plugin-react": "^7.28.0",
- "standard-engine": "^15.0.0"
+ "eslint-plugin-import": "^2.27.5",
+ "eslint-plugin-n": "^15.7.0",
+ "eslint-plugin-promise": "^6.1.1",
+ "eslint-plugin-react": "^7.36.1",
+ "standard-engine": "^15.1.0",
+ "version-guard": "^1.1.1"
},
"bin": {
- "standard": "bin/cmd.js"
+ "standard": "bin/cmd.cjs"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/standard-engine": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.0.0.tgz",
- "integrity": "sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA==",
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.1.0.tgz",
+ "integrity": "sha512-VHysfoyxFu/ukT+9v49d4BRXIokFRZuH3z1VRxzFArZdjSCFpro6rEIU3ji7e4AoAtuSfKBkiOmsrDqKW5ZSRw==",
"dev": true,
"funding": [
{
@@ -5301,34 +6429,11 @@
}
},
"node_modules/std-env": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz",
- "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==",
- "dev": true
- },
- "node_modules/stream-connect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz",
- "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==",
- "dev": true,
- "dependencies": {
- "array-back": "^1.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/stream-connect/node_modules/array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz",
+ "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
"dev": true,
- "dependencies": {
- "typical": "^2.6.0"
- },
- "engines": {
- "node": ">=0.12.0"
- }
+ "license": "MIT"
},
"node_modules/stream-meter": {
"version": "1.0.4",
@@ -5339,6 +6444,12 @@
"readable-stream": "^2.1.4"
}
},
+ "node_modules/stream-meter/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"node_modules/stream-meter/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -5369,13 +6480,19 @@
"safe-buffer": "~5.1.0"
}
},
- "node_modules/stream-via": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz",
- "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==",
+ "node_modules/streamx": {
+ "version": "2.20.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz",
+ "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "license": "MIT",
+ "dependencies": {
+ "fast-fifo": "^1.3.2",
+ "queue-tick": "^1.0.1",
+ "text-decoder": "^1.1.0"
+ },
+ "optionalDependencies": {
+ "bare-events": "^2.2.0"
}
},
"node_modules/string_decoder": {
@@ -5388,10 +6505,30 @@
}
},
"node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -5401,34 +6538,91 @@
"node": ">=8"
}
},
- "node_modules/string.prototype.matchall": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
- "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "get-intrinsic": "^1.1.3",
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.3",
- "regexp.prototype.flags": "^1.4.3",
- "side-channel": "^1.0.4"
+ "internal-slot": "^1.0.7",
+ "regexp.prototype.flags": "^1.5.2",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/string.prototype.repeat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
"node_modules/string.prototype.trim": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
- "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -5438,28 +6632,33 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
- "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
- "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -5477,6 +6676,20 @@
"node": ">=8"
}
},
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -5498,18 +6711,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/strip-literal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz",
- "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.8.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -5535,31 +6736,17 @@
}
},
"node_modules/table-layout": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz",
- "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==",
- "dev": true,
- "dependencies": {
- "array-back": "^2.0.0",
- "deep-extend": "~0.6.0",
- "lodash.padend": "^4.6.1",
- "typical": "^2.6.1",
- "wordwrapjs": "^3.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/table-layout/node_modules/array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz",
+ "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "typical": "^2.6.1"
+ "array-back": "^6.2.2",
+ "wordwrapjs": "^5.1.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=12.17"
}
},
"node_modules/tar-fs": {
@@ -5590,63 +6777,101 @@
"node": ">=6"
}
},
- "node_modules/temp-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz",
- "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==",
+ "node_modules/text-decoder": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz",
+ "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
- "node_modules/test-value": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz",
- "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==",
+ "node_modules/tinybench": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinyexec": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz",
+ "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz",
+ "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "array-back": "^2.0.0",
- "typical": "^2.6.1"
+ "fdir": "^6.4.2",
+ "picomatch": "^4.0.2"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">=12.0.0"
}
},
- "node_modules/test-value/node_modules/array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz",
+ "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==",
"dev": true,
- "dependencies": {
- "typical": "^2.6.1"
+ "license": "MIT",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
},
- "engines": {
- "node": ">=4"
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
}
},
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "node_modules/tinybench": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz",
- "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==",
- "dev": true
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
},
"node_modules/tinypool": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz",
- "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz",
+ "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ }
+ },
+ "node_modules/tinyrainbow": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
+ "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/tinyspy": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz",
- "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
+ "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14.0.0"
}
@@ -5673,10 +6898,11 @@
}
},
"node_modules/totalist": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz",
- "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -5722,64 +6948,118 @@
"node": ">= 0.8.0"
}
},
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
"engines": {
- "node": ">=4"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/typed-array-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "is-typed-array": "^1.1.9"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/typical": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
- "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==",
- "dev": true
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-7.2.0.tgz",
+ "integrity": "sha512-W1+HdVRUl8fS3MZ9ogD51GOb46xMmhAZzR0WPw5jcgIZQJVvkddYzAl4YTU6g5w33Y1iRQLdIi2/1jhi2RNL0g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.17"
+ }
},
"node_modules/uc.micro": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
- "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
- "dev": true
- },
- "node_modules/ufo": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz",
- "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==",
- "dev": true
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/uglify-js": {
- "version": "3.17.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
- "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"optional": true,
"bin": {
"uglifyjs": "bin/uglifyjs"
@@ -5804,15 +7084,16 @@
}
},
"node_modules/underscore": {
- "version": "1.13.6",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
- "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
- "dev": true
+ "version": "1.13.7",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz",
+ "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"dev": true,
"engines": {
"node": ">= 10.0.0"
@@ -5833,29 +7114,44 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true
},
+ "node_modules/version-guard": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/version-guard/-/version-guard-1.1.1.tgz",
+ "integrity": "sha512-MGQLX89UxmYHgDvcXyjBI0cbmoW+t/dANDppNPrno64rYr8nH4SHSuElQuSYdXGEs0mUzdQe1BY+FhVPNsAmJQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.48"
+ }
+ },
"node_modules/vite": {
- "version": "4.3.9",
- "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz",
- "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==",
+ "version": "5.4.10",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz",
+ "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "esbuild": "^0.17.5",
- "postcss": "^8.4.23",
- "rollup": "^3.21.0"
+ "esbuild": "^0.21.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
},
"optionalDependencies": {
- "fsevents": "~2.3.2"
+ "fsevents": "~2.3.3"
},
"peerDependencies": {
- "@types/node": ">= 14",
+ "@types/node": "^18.0.0 || >=20.0.0",
"less": "*",
+ "lightningcss": "^1.21.0",
"sass": "*",
+ "sass-embedded": "*",
"stylus": "*",
"sugarss": "*",
"terser": "^5.4.0"
@@ -5867,9 +7163,15 @@
"less": {
"optional": true
},
+ "lightningcss": {
+ "optional": true
+ },
"sass": {
"optional": true
},
+ "sass-embedded": {
+ "optional": true
+ },
"stylus": {
"optional": true
},
@@ -5882,72 +7184,69 @@
}
},
"node_modules/vite-node": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.7.tgz",
- "integrity": "sha512-PakCZLvz37yFfUPWBnLa1OYHPCGm5v4pmRrTcFN4V/N/T3I6tyP3z07S//9w+DdeL7vVd0VSeyMZuAh+449ZWw==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz",
+ "integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cac": "^6.7.14",
- "debug": "^4.3.4",
- "mlly": "^1.1.0",
- "pathe": "^1.1.0",
- "picocolors": "^1.0.0",
- "vite": "^3.0.0 || ^4.0.0"
+ "debug": "^4.3.7",
+ "pathe": "^1.1.2",
+ "vite": "^5.0.0"
},
"bin": {
"vite-node": "vite-node.mjs"
},
"engines": {
- "node": ">=v14.16.0"
+ "node": "^18.0.0 || >=20.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/antfu"
+ "url": "https://opencollective.com/vitest"
}
},
"node_modules/vitest": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.7.tgz",
- "integrity": "sha512-aWinOSOu4jwTuZHkb+cCyrqQ116Q9TXaJrNKTHudKBknIpR0VplzeaOUuDF9jeZcrbtQKZQt6yrtd+eakbaxHg==",
- "dev": true,
- "dependencies": {
- "@types/chai": "^4.3.4",
- "@types/chai-subset": "^1.3.3",
- "@types/node": "*",
- "@vitest/expect": "0.29.7",
- "@vitest/runner": "0.29.7",
- "@vitest/spy": "0.29.7",
- "@vitest/utils": "0.29.7",
- "acorn": "^8.8.1",
- "acorn-walk": "^8.2.0",
- "cac": "^6.7.14",
- "chai": "^4.3.7",
- "debug": "^4.3.4",
- "local-pkg": "^0.4.2",
- "pathe": "^1.1.0",
- "picocolors": "^1.0.0",
- "source-map": "^0.6.1",
- "std-env": "^3.3.1",
- "strip-literal": "^1.0.0",
- "tinybench": "^2.3.1",
- "tinypool": "^0.4.0",
- "tinyspy": "^1.0.2",
- "vite": "^3.0.0 || ^4.0.0",
- "vite-node": "0.29.7",
- "why-is-node-running": "^2.2.2"
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz",
+ "integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/expect": "2.1.4",
+ "@vitest/mocker": "2.1.4",
+ "@vitest/pretty-format": "^2.1.4",
+ "@vitest/runner": "2.1.4",
+ "@vitest/snapshot": "2.1.4",
+ "@vitest/spy": "2.1.4",
+ "@vitest/utils": "2.1.4",
+ "chai": "^5.1.2",
+ "debug": "^4.3.7",
+ "expect-type": "^1.1.0",
+ "magic-string": "^0.30.12",
+ "pathe": "^1.1.2",
+ "std-env": "^3.7.0",
+ "tinybench": "^2.9.0",
+ "tinyexec": "^0.3.1",
+ "tinypool": "^1.0.1",
+ "tinyrainbow": "^1.2.0",
+ "vite": "^5.0.0",
+ "vite-node": "2.1.4",
+ "why-is-node-running": "^2.3.0"
},
"bin": {
"vitest": "vitest.mjs"
},
"engines": {
- "node": ">=v14.16.0"
+ "node": "^18.0.0 || >=20.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/antfu"
+ "url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"@edge-runtime/vm": "*",
- "@vitest/browser": "*",
- "@vitest/ui": "*",
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "@vitest/browser": "2.1.4",
+ "@vitest/ui": "2.1.4",
"happy-dom": "*",
"jsdom": "*"
},
@@ -5955,6 +7254,9 @@
"@edge-runtime/vm": {
"optional": true
},
+ "@types/node": {
+ "optional": true
+ },
"@vitest/browser": {
"optional": true
},
@@ -5966,20 +7268,15 @@
},
"jsdom": {
"optional": true
- },
- "safaridriver": {
- "optional": true
- },
- "webdriverio": {
- "optional": true
}
}
},
"node_modules/walk-back": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz",
- "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.1.tgz",
+ "integrity": "sha512-e/FRLDVdZQWFrAzU6Hdvpm7D7m2ina833gIKLptQykRK49mmCYHLHq7UqjPDbxbKLZkTkW1rFqbengdE3sLfdw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12.17"
}
@@ -6029,18 +7326,64 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/which-builtin-type": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
+ "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function.prototype.name": "^1.1.6",
+ "has-tostringtag": "^1.0.2",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.0.5",
+ "is-finalizationregistry": "^1.0.2",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.1.4",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.2",
+ "which-typed-array": "^1.1.15"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-collection": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/which-typed-array": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
- "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0",
- "is-typed-array": "^1.1.10"
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -6050,10 +7393,11 @@
}
},
"node_modules/why-is-node-running": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz",
- "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"siginfo": "^2.0.0",
"stackback": "0.0.2"
@@ -6065,48 +7409,47 @@
"node": ">=8"
}
},
- "node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/wordwrapjs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
- "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz",
+ "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==",
"dev": true,
- "dependencies": {
- "reduce-flatten": "^1.0.1",
- "typical": "^2.6.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">=4.0.0"
+ "node": ">=12.17"
}
},
- "node_modules/wordwrapjs/node_modules/reduce-flatten": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
- "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==",
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/wrap-ansi": {
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -6119,6 +7462,48 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -6138,7 +7523,8 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz",
"integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/y18n": {
"version": "5.0.8",
@@ -6182,6 +7568,26 @@
"node": ">=10"
}
},
+ "node_modules/yargs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
@@ -6195,21 +7601,70 @@
}
},
"node_modules/zip-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz",
- "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz",
+ "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "archiver-utils": "^2.1.0",
- "compress-commons": "^4.1.0",
- "readable-stream": "^3.6.0"
+ "archiver-utils": "^5.0.0",
+ "compress-commons": "^6.0.2",
+ "readable-stream": "^4.0.0"
},
"engines": {
- "node": ">= 10"
+ "node": ">= 14"
+ }
+ },
+ "node_modules/zip-stream/node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/zip-stream/node_modules/readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
}
},
"dependencies": {
+ "@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true
+ },
"@babel/generator": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz",
@@ -6222,22 +7677,37 @@
}
},
"@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
"dev": true
},
"@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
"dev": true
},
"@babel/parser": {
- "version": "7.21.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz",
- "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==",
- "dev": true
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz",
+ "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.26.0"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
+ "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-string-parser": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9"
+ }
+ }
+ }
},
"@babel/types": {
"version": "7.19.0",
@@ -6250,157 +7720,164 @@
"to-fast-properties": "^2.0.0"
}
},
+ "@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "dev": true,
+ "optional": true
+ },
"@esbuild/android-arm": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.13.tgz",
- "integrity": "sha512-5tZZ/hLIfBmt7E8JsE5KbsknoAFmoElkg+A/gjyPtmSQvJjPf+9GsSJihid8VMa08lrsYyaEXOT9RLh3xXQONw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
"dev": true,
"optional": true
},
"@esbuild/android-arm64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.13.tgz",
- "integrity": "sha512-F5DgvJMV2ZEpLNpPCO7FEk1wy8O5tg6cikWSB6uvvncsgE1xgbPlm+Boio/4820C2/mj713X83X1h01v0qoeHg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
"dev": true,
"optional": true
},
"@esbuild/android-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.13.tgz",
- "integrity": "sha512-5m1UUslzpfVrumG3m3Zv2x9VNAcvMOQWJy009y6jt10tcHpzIq2/b0I0k4fz0QYqGSNS1GteRIhVPN4H7OyCXg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
"dev": true,
"optional": true
},
"@esbuild/darwin-arm64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.13.tgz",
- "integrity": "sha512-TXbXp/05r7heRsG8yWwbHw9diay+wXIyRNcIHFoNARRIGahYbTW/qwJzE37zkfxLIUPHgR/SyLTUlnTICg14ag==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
"dev": true,
"optional": true
},
"@esbuild/darwin-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.13.tgz",
- "integrity": "sha512-Ku9Db2sblCxFvQdEO7X9nBaLR/S81uch81e2Q2+Os5z1NcnsFjuqhIYH0Gm6KNNpIKaEbC7gCLbiIPbLLMX4Pg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-arm64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.13.tgz",
- "integrity": "sha512-t1T5/nIf2j+FdSf1Fa3dcU0cXycr0nK4xJe52qjWa+1I249mM5NBY1ODjiabZxZ0x3CG05y4fd9bxfDLy9kQtA==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.13.tgz",
- "integrity": "sha512-/zbkgEO4gY2qGZr9UNAGI38w/FwUY4bx4EC88k9VeiCKNr3ukNgwH/oIgB5Z9/OqpkNLlcS4w9e2d/MIiy5fbw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.13.tgz",
- "integrity": "sha512-RrhjzrCF6aCDH248nUAQoldnRmN7nHMxv85GOj5AH+qkxxYvcig7fnUmgANngntRu4btXhN9WKHMgQ5seERDMw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.13.tgz",
- "integrity": "sha512-siu3QZrQ7eGrSttvFaRKyjT7kNRbUuHEKzCCyqRh19MbpGokGY13jbIsBEjx6JmH3T50hds325oweS9Ey2ihAQ==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
"dev": true,
"optional": true
},
"@esbuild/linux-ia32": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.13.tgz",
- "integrity": "sha512-ADHA1PqP5gIegehVP0RvxMmNPxpLgetI8QCwYOjUheGXKIKWSdUN8ZS3rusQv3NGZmFCpYdMZzFoI0QtzzGAdw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
"dev": true,
"optional": true
},
"@esbuild/linux-loong64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.13.tgz",
- "integrity": "sha512-n1JQPxETmR0brkpWlJHeohReEPLH+m00bnJdNnFyHN3zLBt1QypevuZSmnmFWsC+7r7HTwWILj3lBDjtPH3ydg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
"dev": true,
"optional": true
},
"@esbuild/linux-mips64el": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.13.tgz",
- "integrity": "sha512-d0pnD/j5KKQ43xtSIvOD+wNIy6D/Vh9GbXVRa3u4zCyiJMYWjxkPkbBzlEgNjdDmUM+5gBFen9k7B8Xscy+Myg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
"dev": true,
"optional": true
},
"@esbuild/linux-ppc64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.13.tgz",
- "integrity": "sha512-C9sMpa/VcGLjVtsT01sXtzZNS7bAZ+icUclkKkiUwBQ9hzT+J+/Xpj+EykI5hB3KgtxQVo4XUahanFoZNxbQ1g==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
"dev": true,
"optional": true
},
"@esbuild/linux-riscv64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.13.tgz",
- "integrity": "sha512-jYkc5EpNpvjccAHNYekiAtklusVGWftR0VVLtng7dJzDyy+5adAsf1fOG3LllP0WALxS55/w6boLE/728J/bXw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
"dev": true,
"optional": true
},
"@esbuild/linux-s390x": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.13.tgz",
- "integrity": "sha512-4jAJI5O6E/hATL4lsrG2A+noDjZ377KlATVFKwV3SWaNHj+OvoXe/T84ScQIXEtPI7ndJyLkMYruXj8RR5Ilyw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
"dev": true,
"optional": true
},
"@esbuild/linux-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.13.tgz",
- "integrity": "sha512-eFLQhJq98qijGRcv9je/9M4Mz1suZ+pOtj62ArsLd0gubNGhhQDz6T30X2X3f1KZ8lkKkr+zN5vtZzx1GAMoFw==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
"dev": true,
"optional": true
},
"@esbuild/netbsd-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.13.tgz",
- "integrity": "sha512-F8PXDeT+3eQpPjf4bmNJapPLu0SKKlWRGPQvBQqVS+YDGoMKnyyYp2UENLFMV8zT7kS39zKxZRZvUL3fMz/7Ww==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
"dev": true,
"optional": true
},
"@esbuild/openbsd-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.13.tgz",
- "integrity": "sha512-9jWfzbFCnIZdHjNs+00KQHArUbp7kjQDNmiuqkwGOQFs67m4/dKNupBv2DP5hTqVlQY4tW4RG3qpb6Y3zOHJeA==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
"dev": true,
"optional": true
},
"@esbuild/sunos-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.13.tgz",
- "integrity": "sha512-ALbOMlTIBkAVi6KqYjONa7u2oH95RN7OpetFqMtjufFLBiSaayRuwUzhs2yuR9CfGT4qi0jv6HQDav+EG314TQ==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
"dev": true,
"optional": true
},
"@esbuild/win32-arm64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.13.tgz",
- "integrity": "sha512-FJBLYL4PkrZGeuHzEqme+0DjNetxkJ+XbB+Aoeow7aQ53JCwsA0/mo8sS5aPkDHgCnMkN4A5GLoFTlDj3BKDrQ==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
"dev": true,
"optional": true
},
"@esbuild/win32-ia32": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.13.tgz",
- "integrity": "sha512-Qrvst9RkLz4qgi3hqswNliYuKW92/HGJnd7xLWkGaGPa8S4qsONf81FW0ebDc5iUHb0I7QJwQATutvghTabnFA==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
"dev": true,
"optional": true
},
"@esbuild/win32-x64": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.13.tgz",
- "integrity": "sha512-pZ/NIgz861XaUPlIkPFjP55nJ4PJa0o/CD4zgeRb1Q9FVE+8GvdB6ifJcK05jRhny5hKExhnRFIdgHmmCYH8vg==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
"dev": true,
"optional": true
},
@@ -6414,20 +7891,20 @@
}
},
"@eslint-community/regexpp": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz",
- "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
"dev": true
},
"@eslint/eslintrc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
- "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz",
+ "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.5.0",
+ "espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -6437,18 +7914,18 @@
}
},
"@eslint/js": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
- "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+ "version": "8.54.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz",
+ "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==",
"dev": true
},
"@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "version": "0.11.13",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
+ "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
"dev": true,
"requires": {
- "@humanwhocodes/object-schema": "^1.2.1",
+ "@humanwhocodes/object-schema": "^2.0.1",
"debug": "^4.1.1",
"minimatch": "^3.0.5"
}
@@ -6460,15 +7937,63 @@
"dev": true
},
"@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
+ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
"dev": true
},
+ "@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ },
+ "wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ }
+ }
+ }
+ },
"@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dev": true,
"requires": {
"@jridgewell/set-array": "^1.0.1",
@@ -6477,9 +8002,9 @@
}
},
"@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
"dev": true
},
"@jridgewell/set-array": {
@@ -6489,25 +8014,25 @@
"dev": true
},
"@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"dev": true
},
"@jridgewell/trace-mapping": {
- "version": "0.3.17",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
- "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "version": "0.3.20",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
+ "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
"dev": true,
"requires": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"@jsdoc/salty": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz",
- "integrity": "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==",
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz",
+ "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==",
"dev": true,
"requires": {
"lodash": "^4.17.21"
@@ -6539,32 +8064,156 @@
"fastq": "^1.6.0"
}
},
+ "@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "optional": true
+ },
"@polka/url": {
- "version": "1.0.0-next.21",
- "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
- "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
+ "version": "1.0.0-next.28",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
+ "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
"dev": true
},
"@raylib/api": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/@raylib/api/-/api-4.5.0.tgz",
- "integrity": "sha512-T2jRHIHV2QNERbqgZFPkRGtyAnLDXSd3jOEV7SKIORcHp40k4W/pbqbscIsdF+LfC3e9dmilgNTRRGkJafo3Tg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@raylib/api/-/api-5.0.1.tgz",
+ "integrity": "sha512-HX2JBaEW3KdSTrG59ceqcBrvWd2r0vAcYVDDQAXs38FiMxLZn6YYN2M1IG/HMWPM4xlFHo2KzaNxGrnhEnjR2Q==",
"dev": true
},
- "@types/chai": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz",
- "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==",
- "dev": true
+ "@rollup/rollup-android-arm-eabi": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz",
+ "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==",
+ "dev": true,
+ "optional": true
},
- "@types/chai-subset": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz",
- "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==",
+ "@rollup/rollup-android-arm64": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz",
+ "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==",
"dev": true,
- "requires": {
- "@types/chai": "*"
- }
+ "optional": true
+ },
+ "@rollup/rollup-darwin-arm64": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz",
+ "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-darwin-x64": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz",
+ "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-freebsd-arm64": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz",
+ "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-freebsd-x64": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz",
+ "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz",
+ "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz",
+ "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz",
+ "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm64-musl": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz",
+ "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz",
+ "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz",
+ "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz",
+ "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-x64-gnu": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz",
+ "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-x64-musl": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz",
+ "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz",
+ "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz",
+ "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-x64-msvc": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz",
+ "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==",
+ "dev": true,
+ "optional": true
+ },
+ "@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "dev": true
},
"@types/json5": {
"version": "0.0.29",
@@ -6573,110 +8222,134 @@
"dev": true
},
"@types/linkify-it": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
- "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==",
"dev": true
},
"@types/markdown-it": {
- "version": "12.2.3",
- "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
- "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==",
+ "version": "14.1.2",
+ "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz",
+ "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==",
"dev": true,
"requires": {
- "@types/linkify-it": "*",
- "@types/mdurl": "*"
+ "@types/linkify-it": "^5",
+ "@types/mdurl": "^2"
}
},
"@types/mdurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz",
- "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==",
"dev": true
},
- "@types/node": {
- "version": "18.15.10",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.10.tgz",
- "integrity": "sha512-9avDaQJczATcXgfmMAW3MIWArOO7A+m90vuCFLr8AotWf8igO/mRoYukrk2cqZVtv38tHs33retzHEilM7FpeQ==",
+ "@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true
},
"@vitest/expect": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.7.tgz",
- "integrity": "sha512-UtG0tW0DP6b3N8aw7PHmweKDsvPv4wjGvrVZW7OSxaFg76ShtVdMiMcUkZJgCE8QWUmhwaM0aQhbbVLo4F4pkA==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz",
+ "integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==",
+ "dev": true,
+ "requires": {
+ "@vitest/spy": "2.1.4",
+ "@vitest/utils": "2.1.4",
+ "chai": "^5.1.2",
+ "tinyrainbow": "^1.2.0"
+ }
+ },
+ "@vitest/mocker": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz",
+ "integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==",
+ "dev": true,
+ "requires": {
+ "@vitest/spy": "2.1.4",
+ "estree-walker": "^3.0.3",
+ "magic-string": "^0.30.12"
+ }
+ },
+ "@vitest/pretty-format": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz",
+ "integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==",
"dev": true,
"requires": {
- "@vitest/spy": "0.29.7",
- "@vitest/utils": "0.29.7",
- "chai": "^4.3.7"
+ "tinyrainbow": "^1.2.0"
}
},
"@vitest/runner": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.7.tgz",
- "integrity": "sha512-Yt0+csM945+odOx4rjZSjibQfl2ymxqVsmYz6sO2fiO5RGPYDFCo60JF6tLL9pz4G/kjY4irUxadeB1XT+H1jg==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz",
+ "integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==",
"dev": true,
"requires": {
- "@vitest/utils": "0.29.7",
- "p-limit": "^4.0.0",
- "pathe": "^1.1.0"
- },
- "dependencies": {
- "p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^1.0.0"
- }
- },
- "yocto-queue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
- "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
- "dev": true
- }
+ "@vitest/utils": "2.1.4",
+ "pathe": "^1.1.2"
+ }
+ },
+ "@vitest/snapshot": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz",
+ "integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==",
+ "dev": true,
+ "requires": {
+ "@vitest/pretty-format": "2.1.4",
+ "magic-string": "^0.30.12",
+ "pathe": "^1.1.2"
}
},
"@vitest/spy": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.7.tgz",
- "integrity": "sha512-IalL0iO6A6Xz8hthR8sctk6ZS//zVBX48EiNwQguYACdgdei9ZhwMaBFV70mpmeYAFCRAm+DpoFHM5470Im78A==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz",
+ "integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==",
"dev": true,
"requires": {
- "tinyspy": "^1.0.2"
+ "tinyspy": "^3.0.2"
}
},
"@vitest/ui": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.29.7.tgz",
- "integrity": "sha512-KeOztcAldlFU5i8DKCQcmGrih1dVowurZy/9iPz5JyQdPJzej+nW1nI4nYvc4ZmUtA8+IAe9uViqnU7IXc1RNw==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-2.1.4.tgz",
+ "integrity": "sha512-Zd9e5oU063c+j9N9XzGJagCLNvG71x/2tOme3Js4JEZKX55zsgxhJwUgLI8hkN6NjMLpdJO8d7nVUUuPGAA58Q==",
"dev": true,
"requires": {
- "fast-glob": "^3.2.12",
- "flatted": "^3.2.7",
- "pathe": "^1.1.0",
- "picocolors": "^1.0.0",
- "sirv": "^2.0.2"
+ "@vitest/utils": "2.1.4",
+ "fflate": "^0.8.2",
+ "flatted": "^3.3.1",
+ "pathe": "^1.1.2",
+ "sirv": "^3.0.0",
+ "tinyglobby": "^0.2.9",
+ "tinyrainbow": "^1.2.0"
}
},
"@vitest/utils": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.7.tgz",
- "integrity": "sha512-vNgGadp2eE5XKCXtZXL5UyNEDn68npSct75OC9AlELenSK0DiV1Mb9tfkwJHKjRb69iek+e79iipoJx8+s3SdA==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz",
+ "integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==",
+ "dev": true,
+ "requires": {
+ "@vitest/pretty-format": "2.1.4",
+ "loupe": "^3.1.2",
+ "tinyrainbow": "^1.2.0"
+ }
+ },
+ "abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"dev": true,
"requires": {
- "cli-truncate": "^3.1.0",
- "diff": "^5.1.0",
- "loupe": "^2.3.6",
- "pretty-format": "^27.5.1"
+ "event-target-shim": "^5.0.0"
}
},
"acorn": {
- "version": "8.8.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
- "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "version": "8.11.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
+ "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
"dev": true
},
"acorn-jsx": {
@@ -6686,12 +8359,6 @@
"dev": true,
"requires": {}
},
- "acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "dev": true
- },
"agent-base": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
@@ -6713,23 +8380,6 @@
"uri-js": "^4.2.2"
}
},
- "ansi-escape-sequences": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz",
- "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==",
- "dev": true,
- "requires": {
- "array-back": "^3.0.1"
- },
- "dependencies": {
- "array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true
- }
- }
- },
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
@@ -6746,66 +8396,124 @@
}
},
"archiver": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz",
- "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz",
+ "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==",
"dev": true,
"requires": {
- "archiver-utils": "^2.1.0",
- "async": "^3.2.3",
- "buffer-crc32": "^0.2.1",
- "readable-stream": "^3.6.0",
- "readdir-glob": "^1.0.0",
- "tar-stream": "^2.2.0",
- "zip-stream": "^4.1.0"
+ "archiver-utils": "^5.0.2",
+ "async": "^3.2.4",
+ "buffer-crc32": "^1.0.0",
+ "readable-stream": "^4.0.0",
+ "readdir-glob": "^1.1.2",
+ "tar-stream": "^3.0.0",
+ "zip-stream": "^6.0.1"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
+ "dev": true,
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ }
+ },
+ "tar-stream": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
+ "dev": true,
+ "requires": {
+ "b4a": "^1.6.4",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
+ }
+ }
}
},
"archiver-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
- "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz",
+ "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==",
"dev": true,
"requires": {
- "glob": "^7.1.4",
+ "glob": "^10.0.0",
"graceful-fs": "^4.2.0",
+ "is-stream": "^2.0.1",
"lazystream": "^1.0.0",
- "lodash.defaults": "^4.2.0",
- "lodash.difference": "^4.5.0",
- "lodash.flatten": "^4.4.0",
- "lodash.isplainobject": "^4.0.6",
- "lodash.union": "^4.6.0",
+ "lodash": "^4.17.15",
"normalize-path": "^3.0.0",
- "readable-stream": "^2.0.0"
+ "readable-stream": "^4.0.0"
},
"dependencies": {
- "readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "balanced-match": "^1.0.0"
}
},
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
+ "buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
},
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true,
"requires": {
- "safe-buffer": "~5.1.0"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
+ "dev": true,
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
}
}
}
@@ -6823,25 +8531,26 @@
"dev": true
},
"array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
}
},
"array-includes": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
- "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "get-intrinsic": "^1.1.3",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
"is-string": "^1.0.7"
}
},
@@ -6851,53 +8560,96 @@
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true
},
+ "array.prototype.findlast": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
+ }
+ },
+ "array.prototype.findlastindex": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz",
+ "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.2.1"
+ }
+ },
"array.prototype.flat": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
- "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
"es-shim-unscopables": "^1.0.0"
}
},
"array.prototype.flatmap": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
- "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
"es-shim-unscopables": "^1.0.0"
}
},
"array.prototype.tosorted": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
- "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "es-shim-unscopables": "^1.0.0",
- "get-intrinsic": "^1.1.3"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ }
+ },
+ "arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "dev": true,
+ "requires": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
}
},
"assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
"dev": true
},
"async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
+ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
"dev": true
},
"at-least-node": {
@@ -6907,9 +8659,18 @@
"dev": true
},
"available-typed-arrays": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dev": true,
+ "requires": {
+ "possible-typed-array-names": "^1.0.0"
+ }
+ },
+ "b4a": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
+ "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
"dev": true
},
"balanced-match": {
@@ -6918,6 +8679,13 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
+ "bare-events": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz",
+ "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==",
+ "dev": true,
+ "optional": true
+ },
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@@ -6971,9 +8739,9 @@
}
},
"buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz",
+ "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==",
"dev": true
},
"builtins": {
@@ -6992,32 +8760,25 @@
"dev": true
},
"cache-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz",
- "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-3.0.0.tgz",
+ "integrity": "sha512-LDGNWYv/tqRWAAZxMy75PIYynaIuhcyoyjJtwA7X5uMZjdzvGm+XmTey/GXUy2EJ+lwc2eBFzFYxjvNYyE/0Iw==",
"dev": true,
"requires": {
- "array-back": "^4.0.1",
- "fs-then-native": "^2.0.0",
- "mkdirp2": "^1.0.4"
- },
- "dependencies": {
- "array-back": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
- "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
- "dev": true
- }
+ "array-back": "^6.2.2"
}
},
"call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"dev": true,
"requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
}
},
"callsites": {
@@ -7036,18 +8797,16 @@
}
},
"chai": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
- "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz",
+ "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==",
"dev": true,
"requires": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.2",
- "deep-eql": "^4.1.2",
- "get-func-name": "^2.0.0",
- "loupe": "^2.3.1",
- "pathval": "^1.1.1",
- "type-detect": "^4.0.5"
+ "assertion-error": "^2.0.1",
+ "check-error": "^2.1.1",
+ "deep-eql": "^5.0.1",
+ "loupe": "^3.1.0",
+ "pathval": "^2.0.0"
}
},
"chalk": {
@@ -7060,61 +8819,26 @@
"supports-color": "^7.1.0"
}
},
+ "chalk-template": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz",
+ "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.2"
+ }
+ },
"check-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
+ "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
"dev": true
},
"chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
- "cli-truncate": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
- "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
- "dev": true,
- "requires": {
- "slice-ansi": "^5.0.0",
- "string-width": "^5.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true
- },
- "emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "requires": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- }
- },
- "strip-ansi": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
- "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
- "dev": true,
- "requires": {
- "ansi-regex": "^6.0.1"
- }
- }
- }
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "dev": true
},
"cliui": {
"version": "7.0.4",
@@ -7125,16 +8849,25 @@
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
"wrap-ansi": "^7.0.0"
- }
- },
- "collect-all": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz",
- "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==",
- "dev": true,
- "requires": {
- "stream-connect": "^1.0.2",
- "stream-via": "^1.0.4"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ }
}
},
"color-convert": {
@@ -7153,76 +8886,27 @@
"dev": true
},
"command-line-args": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
- "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz",
+ "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==",
"dev": true,
"requires": {
- "array-back": "^3.1.0",
- "find-replace": "^3.0.0",
+ "array-back": "^6.2.2",
+ "find-replace": "^5.0.2",
"lodash.camelcase": "^4.3.0",
- "typical": "^4.0.0"
- },
- "dependencies": {
- "array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true
- },
- "typical": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
- "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
- "dev": true
- }
- }
- },
- "command-line-tool": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz",
- "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==",
- "dev": true,
- "requires": {
- "ansi-escape-sequences": "^4.0.0",
- "array-back": "^2.0.0",
- "command-line-args": "^5.0.0",
- "command-line-usage": "^4.1.0",
- "typical": "^2.6.1"
- },
- "dependencies": {
- "array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.1"
- }
- }
+ "typical": "^7.2.0"
}
},
"command-line-usage": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz",
- "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz",
+ "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==",
"dev": true,
"requires": {
- "ansi-escape-sequences": "^4.0.0",
- "array-back": "^2.0.0",
- "table-layout": "^0.4.2",
- "typical": "^2.6.1"
- },
- "dependencies": {
- "array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.1"
- }
- }
+ "array-back": "^6.2.2",
+ "chalk-template": "^0.4.0",
+ "table-layout": "^4.1.0",
+ "typical": "^7.1.1"
}
},
"common-sequence": {
@@ -7232,15 +8916,41 @@
"dev": true
},
"compress-commons": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz",
- "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz",
+ "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==",
"dev": true,
"requires": {
- "buffer-crc32": "^0.2.13",
- "crc32-stream": "^4.0.2",
+ "crc-32": "^1.2.0",
+ "crc32-stream": "^6.0.0",
+ "is-stream": "^2.0.1",
"normalize-path": "^3.0.0",
- "readable-stream": "^3.6.0"
+ "readable-stream": "^4.0.0"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
+ "dev": true,
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ }
+ }
}
},
"concat-map": {
@@ -7279,21 +8989,46 @@
"dev": true
},
"crc32-stream": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz",
- "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz",
+ "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==",
"dev": true,
"requires": {
"crc-32": "^1.2.0",
- "readable-stream": "^3.4.0"
+ "readable-stream": "^4.0.0"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
+ "dev": true,
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ }
+ }
}
},
"cross-fetch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
- "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
+ "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
"requires": {
- "node-fetch": "2.6.7"
+ "node-fetch": "^2.6.12"
}
},
"cross-spawn": {
@@ -7307,13 +9042,52 @@
"which": "^2.0.1"
}
},
+ "current-module-paths": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/current-module-paths/-/current-module-paths-1.1.2.tgz",
+ "integrity": "sha512-H4s4arcLx/ugbu1XkkgSvcUZax0L6tXUqnppGniQb8l5VjUKGHoayXE5RiriiPhYDd+kjZnaok1Uig13PKtKYQ==",
+ "dev": true
+ },
+ "data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ }
+ },
+ "data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ }
+ },
+ "data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ }
+ },
"debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
"requires": {
- "ms": "2.1.2"
+ "ms": "^2.1.3"
}
},
"decompress-response": {
@@ -7326,13 +9100,10 @@
}
},
"deep-eql": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
- "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
- "dev": true,
- "requires": {
- "type-detect": "^4.0.0"
- }
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+ "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
+ "dev": true
},
"deep-extend": {
"version": "0.6.0",
@@ -7346,26 +9117,32 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
+ "define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dev": true,
+ "requires": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ }
+ },
"define-properties": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
- "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
"requires": {
+ "define-data-property": "^1.0.1",
"has-property-descriptors": "^1.0.0",
"object-keys": "^1.1.1"
}
},
"detect-libc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
- "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
- "dev": true
- },
- "diff": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
- "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
+ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
"dev": true
},
"dir-glob": {
@@ -7378,23 +9155,18 @@
}
},
"dmd": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz",
- "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==",
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/dmd/-/dmd-7.0.7.tgz",
+ "integrity": "sha512-UXNLJkci/tiVNct+JgrpfTlSs8cSyLbR3q4xkYQ4do6cRCUPj0HodfMsBLPhC7KG3qGRp1YJgfNjdgCrYEcHWQ==",
"dev": true,
"requires": {
"array-back": "^6.2.2",
- "cache-point": "^2.0.0",
+ "cache-point": "^3.0.0",
"common-sequence": "^2.0.2",
- "file-set": "^4.0.2",
- "handlebars": "^4.7.7",
- "marked": "^4.2.3",
- "object-get": "^2.1.1",
- "reduce-flatten": "^3.0.1",
- "reduce-unique": "^2.0.1",
- "reduce-without": "^1.0.1",
- "test-value": "^3.0.0",
- "walk-back": "^5.1.0"
+ "file-set": "^5.2.2",
+ "handlebars": "^4.7.8",
+ "marked": "^4.3.0",
+ "walk-back": "^5.1.1"
}
},
"doctrine": {
@@ -7413,9 +9185,9 @@
"dev": true
},
"emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
"dev": true
},
"end-of-stream": {
@@ -7428,9 +9200,9 @@
}
},
"entities": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
- "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"dev": true
},
"error-ex": {
@@ -7443,65 +9215,124 @@
}
},
"es-abstract": {
- "version": "1.21.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
- "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
- "dev": true,
- "requires": {
- "array-buffer-byte-length": "^1.0.0",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "es-set-tostringtag": "^2.0.1",
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+ "dev": true,
+ "requires": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
"es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.2.0",
- "get-symbol-description": "^1.0.0",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
- "has": "^1.0.3",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
- "is-array-buffer": "^3.0.2",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
"is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
+ "is-shared-array-buffer": "^1.0.3",
"is-string": "^1.0.7",
- "is-typed-array": "^1.1.10",
+ "is-typed-array": "^1.1.13",
"is-weakref": "^1.0.2",
- "object-inspect": "^1.12.3",
+ "object-inspect": "^1.13.1",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.4.3",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trim": "^1.2.7",
- "string.prototype.trimend": "^1.0.6",
- "string.prototype.trimstart": "^1.0.6",
- "typed-array-length": "^1.0.4",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.2",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.6",
"unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.9"
+ "which-typed-array": "^1.1.15"
+ }
+ },
+ "es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.2.4"
+ }
+ },
+ "es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true
+ },
+ "es-iterator-helpers": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz",
+ "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.3",
+ "safe-array-concat": "^1.1.2"
+ }
+ },
+ "es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "requires": {
+ "es-errors": "^1.3.0"
}
},
"es-set-tostringtag": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
- "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
"dev": true,
"requires": {
- "get-intrinsic": "^1.1.3",
- "has": "^1.0.3",
- "has-tostringtag": "^1.0.0"
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
}
},
"es-shim-unscopables": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
- "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
}
},
"es-to-primitive": {
@@ -7516,33 +9347,34 @@
}
},
"esbuild": {
- "version": "0.17.13",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.13.tgz",
- "integrity": "sha512-4ixMwdErBcQHgTBeoxnowENCPKWFAGxgTyKHMK8gqn9sZaC7ZNWFKtim16g2rzQ2b/FYyy3lIUUJboFtjolhqg==",
- "dev": true,
- "requires": {
- "@esbuild/android-arm": "0.17.13",
- "@esbuild/android-arm64": "0.17.13",
- "@esbuild/android-x64": "0.17.13",
- "@esbuild/darwin-arm64": "0.17.13",
- "@esbuild/darwin-x64": "0.17.13",
- "@esbuild/freebsd-arm64": "0.17.13",
- "@esbuild/freebsd-x64": "0.17.13",
- "@esbuild/linux-arm": "0.17.13",
- "@esbuild/linux-arm64": "0.17.13",
- "@esbuild/linux-ia32": "0.17.13",
- "@esbuild/linux-loong64": "0.17.13",
- "@esbuild/linux-mips64el": "0.17.13",
- "@esbuild/linux-ppc64": "0.17.13",
- "@esbuild/linux-riscv64": "0.17.13",
- "@esbuild/linux-s390x": "0.17.13",
- "@esbuild/linux-x64": "0.17.13",
- "@esbuild/netbsd-x64": "0.17.13",
- "@esbuild/openbsd-x64": "0.17.13",
- "@esbuild/sunos-x64": "0.17.13",
- "@esbuild/win32-arm64": "0.17.13",
- "@esbuild/win32-ia32": "0.17.13",
- "@esbuild/win32-x64": "0.17.13"
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "dev": true,
+ "requires": {
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
}
},
"escalade": {
@@ -7558,27 +9390,28 @@
"dev": true
},
"eslint": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
- "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+ "version": "8.54.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz",
+ "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.1",
- "@eslint/js": "8.36.0",
- "@humanwhocodes/config-array": "^0.11.8",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.3",
+ "@eslint/js": "8.54.0",
+ "@humanwhocodes/config-array": "^0.11.13",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.5.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -7586,22 +9419,19 @@
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
"globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
+ "graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
+ "optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
},
"dependencies": {
@@ -7623,9 +9453,9 @@
}
},
"eslint-config-standard": {
- "version": "17.0.0",
- "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz",
- "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz",
+ "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==",
"dev": true,
"requires": {}
},
@@ -7637,14 +9467,14 @@
"requires": {}
},
"eslint-import-resolver-node": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
- "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
"requires": {
"debug": "^3.2.7",
- "is-core-module": "^2.11.0",
- "resolve": "^1.22.1"
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
},
"dependencies": {
"debug": {
@@ -7657,20 +9487,20 @@
}
},
"is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
}
}
}
},
"eslint-module-utils": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
- "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
"dev": true,
"requires": {
"debug": "^3.2.7"
@@ -7715,26 +9545,28 @@
}
},
"eslint-plugin-import": {
- "version": "2.27.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
- "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
+ "version": "2.29.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz",
+ "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==",
"dev": true,
"requires": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "array.prototype.flatmap": "^1.3.1",
+ "array-includes": "^3.1.7",
+ "array.prototype.findlastindex": "^1.2.3",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
"debug": "^3.2.7",
"doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.7",
- "eslint-module-utils": "^2.7.4",
- "has": "^1.0.3",
- "is-core-module": "^2.11.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.8.0",
+ "hasown": "^2.0.0",
+ "is-core-module": "^2.13.1",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
- "object.values": "^1.1.6",
- "resolve": "^1.22.1",
- "semver": "^6.3.0",
- "tsconfig-paths": "^3.14.1"
+ "object.fromentries": "^2.0.7",
+ "object.groupby": "^1.0.1",
+ "object.values": "^1.1.7",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.14.2"
},
"dependencies": {
"debug": {
@@ -7756,26 +9588,26 @@
}
},
"is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
}
},
"semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true
}
}
},
"eslint-plugin-n": {
- "version": "15.6.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.6.1.tgz",
- "integrity": "sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==",
+ "version": "15.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz",
+ "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==",
"dev": true,
"requires": {
"builtins": "^5.0.1",
@@ -7789,12 +9621,12 @@
},
"dependencies": {
"is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
}
}
}
@@ -7807,26 +9639,29 @@
"requires": {}
},
"eslint-plugin-react": {
- "version": "7.32.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz",
- "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==",
+ "version": "7.37.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz",
+ "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==",
"dev": true,
"requires": {
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "array.prototype.tosorted": "^1.1.1",
+ "array-includes": "^3.1.8",
+ "array.prototype.findlast": "^1.2.5",
+ "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.tosorted": "^1.1.4",
"doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.1.0",
"estraverse": "^5.3.0",
+ "hasown": "^2.0.2",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "object.hasown": "^1.1.2",
- "object.values": "^1.1.6",
+ "object.entries": "^1.1.8",
+ "object.fromentries": "^2.0.8",
+ "object.values": "^1.2.0",
"prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.4",
- "semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.8"
+ "resolve": "^2.0.0-next.5",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.11",
+ "string.prototype.repeat": "^1.0.0"
},
"dependencies": {
"doctrine": {
@@ -7838,29 +9673,38 @@
"esutils": "^2.0.2"
}
},
+ "is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dev": true,
+ "requires": {
+ "hasown": "^2.0.0"
+ }
+ },
"resolve": {
- "version": "2.0.0-next.4",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
- "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dev": true,
"requires": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
}
},
"semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true
}
}
},
"eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
"requires": {
"esrecurse": "^4.3.0",
@@ -7885,20 +9729,20 @@
}
},
"eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true
},
"espree": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
- "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
"requires": {
- "acorn": "^8.8.0",
+ "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.1"
}
},
"esquery": {
@@ -7925,28 +9769,61 @@
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true
},
+ "estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "^1.0.0"
+ }
+ },
"esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true
},
+ "event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "dev": true
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true
+ },
"expand-template": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
"dev": true
},
+ "expect-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz",
+ "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==",
+ "dev": true
+ },
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true
},
+ "fast-fifo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+ "dev": true
+ },
"fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
@@ -7977,6 +9854,12 @@
"reusify": "^1.0.4"
}
},
+ "fflate": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
+ "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==",
+ "dev": true
+ },
"file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -7987,21 +9870,13 @@
}
},
"file-set": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz",
- "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/file-set/-/file-set-5.2.2.tgz",
+ "integrity": "sha512-/KgJI1V/QaDK4enOk/E2xMFk1cTWJghEr7UmWiRZfZ6upt6gQCfMn4jJ7aOm64OKurj4TaVnSSgSDqv5ZKYA3A==",
"dev": true,
"requires": {
- "array-back": "^5.0.0",
- "glob": "^7.1.6"
- },
- "dependencies": {
- "array-back": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz",
- "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==",
- "dev": true
- }
+ "array-back": "^6.2.2",
+ "fast-glob": "^3.3.2"
}
},
"fill-range": {
@@ -8014,21 +9889,11 @@
}
},
"find-replace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
- "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz",
+ "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==",
"dev": true,
- "requires": {
- "array-back": "^3.0.1"
- },
- "dependencies": {
- "array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true
- }
- }
+ "requires": {}
},
"find-up": {
"version": "5.0.0",
@@ -8041,19 +9906,20 @@
}
},
"flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dev": true,
"requires": {
- "flatted": "^3.1.0",
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
"rimraf": "^3.0.2"
}
},
"flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
"dev": true
},
"for-each": {
@@ -8065,6 +9931,16 @@
"is-callable": "^1.1.3"
}
},
+ "foreground-child": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
+ "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ }
+ },
"from2": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
@@ -8075,6 +9951,12 @@
"readable-stream": "^2.0.0"
},
"dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -8125,12 +10007,6 @@
"universalify": "^2.0.0"
}
},
- "fs-then-native": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz",
- "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==",
- "dev": true
- },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -8138,28 +10014,28 @@
"dev": true
},
"fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"optional": true
},
"function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true
},
"function.prototype.name": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
- "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0",
- "functions-have-names": "^1.2.2"
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
}
},
"functions-have-names": {
@@ -8174,21 +10050,17 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
- "get-func-name": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
- "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
- "dev": true
- },
"get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"dev": true,
"requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
}
},
"get-stdin": {
@@ -8198,13 +10070,14 @@
"dev": true
},
"get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
}
},
"github-from-package": {
@@ -8237,21 +10110,22 @@
}
},
"globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "version": "13.23.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
+ "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
}
},
"globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3"
+ "define-properties": "^1.2.1",
+ "gopd": "^1.0.1"
}
},
"globby": {
@@ -8283,33 +10157,30 @@
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true
},
- "grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true
},
"handlebars": {
- "version": "4.7.7",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
- "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
"dev": true,
"requires": {
"minimist": "^1.2.5",
- "neo-async": "^2.6.0",
+ "neo-async": "^2.6.2",
"source-map": "^0.6.1",
"uglify-js": "^3.1.4",
"wordwrap": "^1.0.0"
}
},
"has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
+ "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
+ "dev": true
},
"has-bigints": {
"version": "1.0.2",
@@ -8324,18 +10195,18 @@
"dev": true
},
"has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dev": true,
"requires": {
- "get-intrinsic": "^1.1.1"
+ "es-define-property": "^1.0.0"
}
},
"has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
"dev": true
},
"has-symbols": {
@@ -8345,12 +10216,21 @@
"dev": true
},
"has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dev": true,
"requires": {
- "has-symbols": "^1.0.2"
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2"
}
},
"https-proxy-agent": {
@@ -8370,9 +10250,9 @@
"dev": true
},
"ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
+ "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
"dev": true
},
"import-fresh": {
@@ -8414,13 +10294,13 @@
"dev": true
},
"internal-slot": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
- "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
"dev": true,
"requires": {
- "get-intrinsic": "^1.2.0",
- "has": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
"side-channel": "^1.0.4"
}
},
@@ -8435,14 +10315,13 @@
}
},
"is-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "is-typed-array": "^1.1.10"
+ "get-intrinsic": "^1.2.1"
}
},
"is-arrayish": {
@@ -8451,6 +10330,15 @@
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
"dev": true
},
+ "is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
"is-bigint": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
@@ -8485,6 +10373,15 @@
"has": "^1.0.3"
}
},
+ "is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dev": true,
+ "requires": {
+ "is-typed-array": "^1.1.13"
+ }
+ },
"is-date-object": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
@@ -8500,12 +10397,30 @@
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true
},
+ "is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
+ "is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
"is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -8515,10 +10430,16 @@
"is-extglob": "^2.1.1"
}
},
+ "is-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "dev": true
+ },
"is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"dev": true
},
"is-number": {
@@ -8552,15 +10473,27 @@
"has-tostringtag": "^1.0.0"
}
},
+ "is-set": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
+ "dev": true
+ },
"is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2"
+ "call-bind": "^1.0.7"
}
},
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true
+ },
"is-string": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
@@ -8580,18 +10513,20 @@
}
},
"is-typed-array": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
- "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
"dev": true,
"requires": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
+ "which-typed-array": "^1.1.14"
}
},
+ "is-weakmap": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "dev": true
+ },
"is-weakref": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
@@ -8601,10 +10536,20 @@
"call-bind": "^1.0.2"
}
},
+ "is-weakset": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4"
+ }
+ },
"isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
"dev": true
},
"isexe": {
@@ -8613,11 +10558,28 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true
},
- "js-sdsl": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
- "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
- "dev": true
+ "iterator.prototype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz",
+ "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
+ }
+ },
+ "jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "requires": {
+ "@isaacs/cliui": "^8.0.2",
+ "@pkgjs/parseargs": "^0.11.0"
+ }
},
"js-tokens": {
"version": "4.0.0",
@@ -8644,21 +10606,21 @@
}
},
"jsdoc": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz",
- "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.4.tgz",
+ "integrity": "sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==",
"dev": true,
"requires": {
"@babel/parser": "^7.20.15",
"@jsdoc/salty": "^0.2.1",
- "@types/markdown-it": "^12.2.3",
+ "@types/markdown-it": "^14.1.1",
"bluebird": "^3.7.2",
"catharsis": "^0.9.0",
"escape-string-regexp": "^2.0.0",
"js2xmlparser": "^4.0.2",
"klaw": "^3.0.0",
- "markdown-it": "^12.3.2",
- "markdown-it-anchor": "^8.4.1",
+ "markdown-it": "^14.1.0",
+ "markdown-it-anchor": "^8.6.7",
"marked": "^4.0.10",
"mkdirp": "^1.0.4",
"requizzle": "^0.2.3",
@@ -8667,49 +10629,46 @@
}
},
"jsdoc-api": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.0.0.tgz",
- "integrity": "sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==",
+ "version": "9.3.4",
+ "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-9.3.4.tgz",
+ "integrity": "sha512-di8lggLACEttpyAZ6WjKKafUP4wC4prAGjt40nMl7quDpp2nD7GmLt6/WxhRu9Q6IYoAAySsNeidBXYVAMwlqg==",
"dev": true,
"requires": {
"array-back": "^6.2.2",
- "cache-point": "^2.0.0",
- "collect-all": "^1.0.4",
- "file-set": "^4.0.2",
- "fs-then-native": "^2.0.0",
- "jsdoc": "^4.0.0",
+ "cache-point": "^3.0.0",
+ "current-module-paths": "^1.1.2",
+ "file-set": "^5.2.2",
+ "jsdoc": "^4.0.4",
"object-to-spawn-args": "^2.0.1",
- "temp-path": "^1.0.0",
- "walk-back": "^5.1.0"
+ "walk-back": "^5.1.1"
}
},
"jsdoc-parse": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.0.tgz",
- "integrity": "sha512-Afu1fQBEb7QHt6QWX/6eUWvYHJofB90Fjx7FuJYF7mnG9z5BkAIpms1wsnvYLytfmqpEENHs/fax9p8gvMj7dw==",
+ "version": "6.2.4",
+ "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.4.tgz",
+ "integrity": "sha512-MQA+lCe3ioZd0uGbyB3nDCDZcKgKC7m/Ivt0LgKZdUoOlMJxUWJQ3WI6GeyHp9ouznKaCjlp7CU9sw5k46yZTw==",
"dev": true,
"requires": {
"array-back": "^6.2.2",
+ "find-replace": "^5.0.1",
"lodash.omit": "^4.5.0",
- "lodash.pick": "^4.4.0",
- "reduce-extract": "^1.0.0",
- "sort-array": "^4.1.5",
- "test-value": "^3.0.0"
+ "sort-array": "^5.0.0"
}
},
"jsdoc-to-markdown": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.0.tgz",
- "integrity": "sha512-2FQvYkg491+FP6s15eFlgSSWs69CvQrpbABGYBtvAvGWy/lWo8IKKToarT283w59rQFrpcjHl3YdhHCa3l7gXg==",
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-9.0.5.tgz",
+ "integrity": "sha512-lqvKgSva+wGUusRz6xtImdM92lrjHNmyi7LyWdLMQBijCnoFwTZjNF3zUqm6uahsSaRALQNyzGXmjaef6IUE4g==",
"dev": true,
"requires": {
"array-back": "^6.2.2",
- "command-line-tool": "^0.8.0",
+ "command-line-args": "^6.0.1",
+ "command-line-usage": "^7.0.3",
"config-master": "^3.1.0",
- "dmd": "^6.2.0",
- "jsdoc-api": "^8.0.0",
- "jsdoc-parse": "^6.2.0",
- "walk-back": "^5.1.0"
+ "dmd": "^7.0.7",
+ "jsdoc-api": "^9.3.4",
+ "jsdoc-parse": "^6.2.4",
+ "walk-back": "^5.1.1"
}
},
"jsesc": {
@@ -8718,6 +10677,12 @@
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
"dev": true
},
+ "json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
"json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -8745,12 +10710,6 @@
"minimist": "^1.2.0"
}
},
- "jsonc-parser": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
- "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
- "dev": true
- },
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -8762,13 +10721,24 @@
}
},
"jsx-ast-utils": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
- "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true,
"requires": {
- "array-includes": "^3.1.5",
- "object.assign": "^4.1.3"
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ }
+ },
+ "keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.1"
}
},
"klaw": {
@@ -8789,6 +10759,12 @@
"readable-stream": "^2.0.5"
},
"dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -8832,12 +10808,12 @@
}
},
"linkify-it": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz",
- "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
"dev": true,
"requires": {
- "uc.micro": "^1.0.1"
+ "uc.micro": "^2.0.0"
}
},
"load-json-file": {
@@ -8861,12 +10837,6 @@
}
}
},
- "local-pkg": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
- "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
- "dev": true
- },
"locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -8888,30 +10858,6 @@
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
"dev": true
},
- "lodash.defaults": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
- "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
- "dev": true
- },
- "lodash.difference": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
- "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==",
- "dev": true
- },
- "lodash.flatten": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
- "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==",
- "dev": true
- },
- "lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "dev": true
- },
"lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -8924,24 +10870,6 @@
"integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==",
"dev": true
},
- "lodash.padend": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
- "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==",
- "dev": true
- },
- "lodash.pick": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
- "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==",
- "dev": true
- },
- "lodash.union": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
- "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==",
- "dev": true
- },
"loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -8952,13 +10880,10 @@
}
},
"loupe": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz",
- "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==",
- "dev": true,
- "requires": {
- "get-func-name": "^2.0.0"
- }
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz",
+ "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==",
+ "dev": true
},
"lru-cache": {
"version": "6.0.0",
@@ -8969,17 +10894,27 @@
"yallist": "^4.0.0"
}
},
+ "magic-string": {
+ "version": "0.30.12",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz",
+ "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.5.0"
+ }
+ },
"markdown-it": {
- "version": "12.3.2",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
- "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==",
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
"dev": true,
"requires": {
"argparse": "^2.0.1",
- "entities": "~2.1.0",
- "linkify-it": "^3.0.1",
- "mdurl": "^1.0.1",
- "uc.micro": "^1.0.5"
+ "entities": "^4.4.0",
+ "linkify-it": "^5.0.0",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
}
},
"markdown-it-anchor": {
@@ -8996,9 +10931,9 @@
"dev": true
},
"mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
"dev": true
},
"merge2": {
@@ -9038,6 +10973,12 @@
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true
},
+ "minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true
+ },
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@@ -9050,39 +10991,21 @@
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
"dev": true
},
- "mkdirp2": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz",
- "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==",
- "dev": true
- },
- "mlly": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz",
- "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==",
- "dev": true,
- "requires": {
- "acorn": "^8.8.2",
- "pathe": "^1.1.0",
- "pkg-types": "^1.0.2",
- "ufo": "^1.1.1"
- }
- },
"module-alias": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz",
- "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q=="
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.3.tgz",
+ "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q=="
},
"mrmime": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
- "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
+ "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
"dev": true
},
"ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
},
"multistream": {
@@ -9096,9 +11019,9 @@
}
},
"nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"dev": true
},
"napi-build-utils": {
@@ -9120,18 +11043,18 @@
"dev": true
},
"node-abi": {
- "version": "3.33.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.33.0.tgz",
- "integrity": "sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog==",
+ "version": "3.51.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz",
+ "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==",
"dev": true,
"requires": {
"semver": "^7.3.5"
}
},
"node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"requires": {
"whatwg-url": "^5.0.0"
}
@@ -9148,16 +11071,10 @@
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true
},
- "object-get": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz",
- "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==",
- "dev": true
- },
"object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
+ "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
"dev": true
},
"object-keys": {
@@ -9173,58 +11090,61 @@
"dev": true
},
"object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
}
},
"object.entries": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
- "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
"object.fromentries": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
- "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
}
},
- "object.hasown": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
- "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
+ "object.groupby": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz",
+ "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==",
"dev": true,
"requires": {
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1"
}
},
"object.values": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
- "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
"once": {
@@ -9237,17 +11157,17 @@
}
},
"optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
"dev": true,
"requires": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "type-check": "^0.4.0"
}
},
"p-is-promise": {
@@ -9280,6 +11200,12 @@
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
+ "package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "dev": true
+ },
"parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -9323,6 +11249,24 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
+ "path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true
+ }
+ }
+ },
"path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -9330,21 +11274,21 @@
"dev": true
},
"pathe": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
- "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
"dev": true
},
"pathval": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
- "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
+ "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
"dev": true
},
"picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true
},
"picomatch": {
@@ -9460,26 +11404,21 @@
"yargs": "^16.2.0"
}
},
- "pkg-types": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz",
- "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==",
- "dev": true,
- "requires": {
- "jsonc-parser": "^3.2.0",
- "mlly": "^1.1.1",
- "pathe": "^1.1.0"
- }
+ "possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "dev": true
},
"postcss": {
- "version": "8.4.24",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz",
- "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==",
+ "version": "8.4.47",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
+ "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
"dev": true,
"requires": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.1.0",
+ "source-map-js": "^1.2.1"
}
},
"prebuild-install": {
@@ -9508,30 +11447,11 @@
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true
},
- "pretty-format": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
- "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1",
- "ansi-styles": "^5.0.0",
- "react-is": "^17.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true
- },
- "react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
- "dev": true
- }
- }
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "dev": true
},
"process-nextick-args": {
"version": "2.0.1",
@@ -9567,9 +11487,15 @@
}
},
"punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true
+ },
+ "punycode.js": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
"dev": true
},
"queue-microtask": {
@@ -9578,6 +11504,12 @@
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true
},
+ "queue-tick": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
+ "dev": true
+ },
"rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@@ -9616,9 +11548,9 @@
}
},
"readdir-glob": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.2.tgz",
- "integrity": "sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz",
+ "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==",
"dev": true,
"requires": {
"minimatch": "^5.1.0"
@@ -9644,87 +11576,31 @@
}
}
},
- "reduce-extract": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz",
- "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==",
- "dev": true,
- "requires": {
- "test-value": "^1.0.1"
- },
- "dependencies": {
- "array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.0"
- }
- },
- "test-value": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz",
- "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==",
- "dev": true,
- "requires": {
- "array-back": "^1.0.2",
- "typical": "^2.4.2"
- }
- }
- }
- },
- "reduce-flatten": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz",
- "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==",
- "dev": true
- },
- "reduce-unique": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz",
- "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==",
- "dev": true
- },
- "reduce-without": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz",
- "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==",
+ "reflect.getprototypeof": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
"dev": true,
"requires": {
- "test-value": "^2.0.0"
- },
- "dependencies": {
- "array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.0"
- }
- },
- "test-value": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
- "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==",
- "dev": true,
- "requires": {
- "array-back": "^1.0.3",
- "typical": "^2.6.0"
- }
- }
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
}
},
"regexp.prototype.flags": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
- "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+ "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "functions-have-names": "^1.2.2"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.2"
}
},
"regexpp": {
@@ -9749,14 +11625,25 @@
}
},
"resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"requires": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "dependencies": {
+ "is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dev": true,
+ "requires": {
+ "hasown": "^2.0.0"
+ }
+ }
}
},
"resolve-from": {
@@ -9781,11 +11668,30 @@
}
},
"rollup": {
- "version": "3.23.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.23.1.tgz",
- "integrity": "sha512-ybRdFVHOoljGEFILHLd2g/qateqUdjE6YS41WXq4p3C/WwD3xtWxV4FYWETA1u9TeXQc5K8L8zHE5d/scOvrOQ==",
- "dev": true,
- "requires": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz",
+ "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==",
+ "dev": true,
+ "requires": {
+ "@rollup/rollup-android-arm-eabi": "4.24.4",
+ "@rollup/rollup-android-arm64": "4.24.4",
+ "@rollup/rollup-darwin-arm64": "4.24.4",
+ "@rollup/rollup-darwin-x64": "4.24.4",
+ "@rollup/rollup-freebsd-arm64": "4.24.4",
+ "@rollup/rollup-freebsd-x64": "4.24.4",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.24.4",
+ "@rollup/rollup-linux-arm-musleabihf": "4.24.4",
+ "@rollup/rollup-linux-arm64-gnu": "4.24.4",
+ "@rollup/rollup-linux-arm64-musl": "4.24.4",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4",
+ "@rollup/rollup-linux-riscv64-gnu": "4.24.4",
+ "@rollup/rollup-linux-s390x-gnu": "4.24.4",
+ "@rollup/rollup-linux-x64-gnu": "4.24.4",
+ "@rollup/rollup-linux-x64-musl": "4.24.4",
+ "@rollup/rollup-win32-arm64-msvc": "4.24.4",
+ "@rollup/rollup-win32-ia32-msvc": "4.24.4",
+ "@rollup/rollup-win32-x64-msvc": "4.24.4",
+ "@types/estree": "1.0.6",
"fsevents": "~2.3.2"
}
},
@@ -9798,6 +11704,18 @@
"queue-microtask": "^1.2.2"
}
},
+ "safe-array-concat": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ }
+ },
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -9805,25 +11723,51 @@
"dev": true
},
"safe-regex-test": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
- "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
"is-regex": "^1.1.4"
}
},
"semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
},
+ "set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dev": true,
+ "requires": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ }
+ },
+ "set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dev": true,
+ "requires": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ }
+ },
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -9840,14 +11784,15 @@
"dev": true
},
"side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
}
},
"siginfo": {
@@ -9856,6 +11801,12 @@
"integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
"dev": true
},
+ "signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true
+ },
"simple-concat": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
@@ -9874,13 +11825,13 @@
}
},
"sirv": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz",
- "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz",
+ "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==",
"dev": true,
"requires": {
- "@polka/url": "^1.0.0-next.20",
- "mrmime": "^1.0.0",
+ "@polka/url": "^1.0.0-next.24",
+ "mrmime": "^2.0.0",
"totalist": "^3.0.0"
}
},
@@ -9890,52 +11841,14 @@
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true
},
- "slice-ansi": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
- "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^6.0.0",
- "is-fullwidth-code-point": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
- "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
- "dev": true
- }
- }
- },
"sort-array": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz",
- "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-5.0.0.tgz",
+ "integrity": "sha512-Sg9MzajSGprcSrMIxsXyNT0e0JB47RJRfJspC+7co4Z5BdNsNl8FmWI+lXEpyKq+vkMG6pHgAhqyCO+bkDTfFQ==",
"dev": true,
"requires": {
- "array-back": "^5.0.0",
- "typical": "^6.0.1"
- },
- "dependencies": {
- "array-back": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz",
- "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==",
- "dev": true
- },
- "typical": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz",
- "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==",
- "dev": true
- }
+ "array-back": "^6.2.2",
+ "typical": "^7.1.1"
}
},
"source-map": {
@@ -9945,9 +11858,9 @@
"dev": true
},
"source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true
},
"stackback": {
@@ -9957,25 +11870,26 @@
"dev": true
},
"standard": {
- "version": "17.0.0",
- "resolved": "https://registry.npmjs.org/standard/-/standard-17.0.0.tgz",
- "integrity": "sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA==",
+ "version": "17.1.2",
+ "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.2.tgz",
+ "integrity": "sha512-WLm12WoXveKkvnPnPnaFUUHuOB2cUdAsJ4AiGHL2G0UNMrcRAWY2WriQaV8IQ3oRmYr0AWUbLNr94ekYFAHOrA==",
"dev": true,
"requires": {
- "eslint": "^8.13.0",
- "eslint-config-standard": "17.0.0",
+ "eslint": "^8.41.0",
+ "eslint-config-standard": "17.1.0",
"eslint-config-standard-jsx": "^11.0.0",
- "eslint-plugin-import": "^2.26.0",
- "eslint-plugin-n": "^15.1.0",
- "eslint-plugin-promise": "^6.0.0",
- "eslint-plugin-react": "^7.28.0",
- "standard-engine": "^15.0.0"
+ "eslint-plugin-import": "^2.27.5",
+ "eslint-plugin-n": "^15.7.0",
+ "eslint-plugin-promise": "^6.1.1",
+ "eslint-plugin-react": "^7.36.1",
+ "standard-engine": "^15.1.0",
+ "version-guard": "^1.1.1"
}
},
"standard-engine": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.0.0.tgz",
- "integrity": "sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA==",
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.1.0.tgz",
+ "integrity": "sha512-VHysfoyxFu/ukT+9v49d4BRXIokFRZuH3z1VRxzFArZdjSCFpro6rEIU3ji7e4AoAtuSfKBkiOmsrDqKW5ZSRw==",
"dev": true,
"requires": {
"get-stdin": "^8.0.0",
@@ -9985,31 +11899,11 @@
}
},
"std-env": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz",
- "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==",
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz",
+ "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
"dev": true
},
- "stream-connect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz",
- "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==",
- "dev": true,
- "requires": {
- "array-back": "^1.0.2"
- },
- "dependencies": {
- "array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.0"
- }
- }
- }
- },
"stream-meter": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz",
@@ -10019,6 +11913,12 @@
"readable-stream": "^2.1.4"
},
"dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -10051,11 +11951,17 @@
}
}
},
- "stream-via": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz",
- "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==",
- "dev": true
+ "streamx": {
+ "version": "2.20.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz",
+ "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==",
+ "dev": true,
+ "requires": {
+ "bare-events": "^2.2.0",
+ "fast-fifo": "^1.3.2",
+ "queue-tick": "^1.0.1",
+ "text-decoder": "^1.1.0"
+ }
},
"string_decoder": {
"version": "1.3.0",
@@ -10067,7 +11973,35 @@
}
},
"string-width": {
- "version": "4.2.3",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "string-width-cjs": {
+ "version": "npm:string-width@4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
@@ -10075,55 +12009,78 @@
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ }
}
},
"string.prototype.matchall": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
- "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "get-intrinsic": "^1.1.3",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.3",
- "regexp.prototype.flags": "^1.4.3",
- "side-channel": "^1.0.4"
+ "internal-slot": "^1.0.7",
+ "regexp.prototype.flags": "^1.5.2",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.0.6"
+ }
+ },
+ "string.prototype.repeat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
}
},
"string.prototype.trim": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
- "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
}
},
"string.prototype.trimend": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
- "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
"string.prototype.trimstart": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
- "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
"strip-ansi": {
@@ -10135,6 +12092,15 @@
"ansi-regex": "^5.0.1"
}
},
+ "strip-ansi-cjs": {
+ "version": "npm:strip-ansi@6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -10147,15 +12113,6 @@
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true
},
- "strip-literal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz",
- "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==",
- "dev": true,
- "requires": {
- "acorn": "^8.8.2"
- }
- },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -10172,27 +12129,13 @@
"dev": true
},
"table-layout": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz",
- "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz",
+ "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==",
"dev": true,
"requires": {
- "array-back": "^2.0.0",
- "deep-extend": "~0.6.0",
- "lodash.padend": "^4.6.1",
- "typical": "^2.6.1",
- "wordwrapjs": "^3.0.0"
- },
- "dependencies": {
- "array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.1"
- }
- }
+ "array-back": "^6.2.2",
+ "wordwrapjs": "^5.1.0"
}
},
"tar-fs": {
@@ -10220,33 +12163,12 @@
"readable-stream": "^3.1.1"
}
},
- "temp-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz",
- "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==",
+ "text-decoder": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz",
+ "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==",
"dev": true
},
- "test-value": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz",
- "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==",
- "dev": true,
- "requires": {
- "array-back": "^2.0.0",
- "typical": "^2.6.1"
- },
- "dependencies": {
- "array-back": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
- "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
- "dev": true,
- "requires": {
- "typical": "^2.6.1"
- }
- }
- }
- },
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -10254,21 +12176,58 @@
"dev": true
},
"tinybench": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz",
- "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
"dev": true
},
+ "tinyexec": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz",
+ "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==",
+ "dev": true
+ },
+ "tinyglobby": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz",
+ "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==",
+ "dev": true,
+ "requires": {
+ "fdir": "^6.4.2",
+ "picomatch": "^4.0.2"
+ },
+ "dependencies": {
+ "fdir": {
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz",
+ "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true
+ }
+ }
+ },
"tinypool": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz",
- "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz",
+ "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==",
+ "dev": true
+ },
+ "tinyrainbow": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
+ "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
"dev": true
},
"tinyspy": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz",
- "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
+ "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
"dev": true
},
"to-fast-properties": {
@@ -10287,9 +12246,9 @@
}
},
"totalist": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz",
- "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
"dev": true
},
"tr46": {
@@ -10327,51 +12286,80 @@
"prelude-ls": "^1.2.1"
}
},
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true
- },
"type-fest": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true
},
+ "typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
+ }
+ },
+ "typed-array-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ }
+ },
+ "typed-array-byte-offset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ }
+ },
"typed-array-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "is-typed-array": "^1.1.9"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
}
},
"typical": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
- "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-7.2.0.tgz",
+ "integrity": "sha512-W1+HdVRUl8fS3MZ9ogD51GOb46xMmhAZzR0WPw5jcgIZQJVvkddYzAl4YTU6g5w33Y1iRQLdIi2/1jhi2RNL0g==",
"dev": true
},
"uc.micro": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
- "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
- "dev": true
- },
- "ufo": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz",
- "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
"dev": true
},
"uglify-js": {
- "version": "3.17.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
- "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
"dev": true,
"optional": true
},
@@ -10388,15 +12376,15 @@
}
},
"underscore": {
- "version": "1.13.6",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
- "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
+ "version": "1.13.7",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz",
+ "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==",
"dev": true
},
"universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"dev": true
},
"uri-js": {
@@ -10414,68 +12402,68 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true
},
+ "version-guard": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/version-guard/-/version-guard-1.1.1.tgz",
+ "integrity": "sha512-MGQLX89UxmYHgDvcXyjBI0cbmoW+t/dANDppNPrno64rYr8nH4SHSuElQuSYdXGEs0mUzdQe1BY+FhVPNsAmJQ==",
+ "dev": true
+ },
"vite": {
- "version": "4.3.9",
- "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz",
- "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==",
+ "version": "5.4.10",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz",
+ "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==",
"dev": true,
"requires": {
- "esbuild": "^0.17.5",
- "fsevents": "~2.3.2",
- "postcss": "^8.4.23",
- "rollup": "^3.21.0"
+ "esbuild": "^0.21.3",
+ "fsevents": "~2.3.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
}
},
"vite-node": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.7.tgz",
- "integrity": "sha512-PakCZLvz37yFfUPWBnLa1OYHPCGm5v4pmRrTcFN4V/N/T3I6tyP3z07S//9w+DdeL7vVd0VSeyMZuAh+449ZWw==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz",
+ "integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==",
"dev": true,
"requires": {
"cac": "^6.7.14",
- "debug": "^4.3.4",
- "mlly": "^1.1.0",
- "pathe": "^1.1.0",
- "picocolors": "^1.0.0",
- "vite": "^3.0.0 || ^4.0.0"
+ "debug": "^4.3.7",
+ "pathe": "^1.1.2",
+ "vite": "^5.0.0"
}
},
"vitest": {
- "version": "0.29.7",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.7.tgz",
- "integrity": "sha512-aWinOSOu4jwTuZHkb+cCyrqQ116Q9TXaJrNKTHudKBknIpR0VplzeaOUuDF9jeZcrbtQKZQt6yrtd+eakbaxHg==",
- "dev": true,
- "requires": {
- "@types/chai": "^4.3.4",
- "@types/chai-subset": "^1.3.3",
- "@types/node": "*",
- "@vitest/expect": "0.29.7",
- "@vitest/runner": "0.29.7",
- "@vitest/spy": "0.29.7",
- "@vitest/utils": "0.29.7",
- "acorn": "^8.8.1",
- "acorn-walk": "^8.2.0",
- "cac": "^6.7.14",
- "chai": "^4.3.7",
- "debug": "^4.3.4",
- "local-pkg": "^0.4.2",
- "pathe": "^1.1.0",
- "picocolors": "^1.0.0",
- "source-map": "^0.6.1",
- "std-env": "^3.3.1",
- "strip-literal": "^1.0.0",
- "tinybench": "^2.3.1",
- "tinypool": "^0.4.0",
- "tinyspy": "^1.0.2",
- "vite": "^3.0.0 || ^4.0.0",
- "vite-node": "0.29.7",
- "why-is-node-running": "^2.2.2"
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz",
+ "integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==",
+ "dev": true,
+ "requires": {
+ "@vitest/expect": "2.1.4",
+ "@vitest/mocker": "2.1.4",
+ "@vitest/pretty-format": "^2.1.4",
+ "@vitest/runner": "2.1.4",
+ "@vitest/snapshot": "2.1.4",
+ "@vitest/spy": "2.1.4",
+ "@vitest/utils": "2.1.4",
+ "chai": "^5.1.2",
+ "debug": "^4.3.7",
+ "expect-type": "^1.1.0",
+ "magic-string": "^0.30.12",
+ "pathe": "^1.1.2",
+ "std-env": "^3.7.0",
+ "tinybench": "^2.9.0",
+ "tinyexec": "^0.3.1",
+ "tinypool": "^1.0.1",
+ "tinyrainbow": "^1.2.0",
+ "vite": "^5.0.0",
+ "vite-node": "2.1.4",
+ "why-is-node-running": "^2.3.0"
}
},
"walk-back": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz",
- "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.1.tgz",
+ "integrity": "sha512-e/FRLDVdZQWFrAzU6Hdvpm7D7m2ina833gIKLptQykRK49mmCYHLHq7UqjPDbxbKLZkTkW1rFqbengdE3sLfdw==",
"dev": true
},
"webidl-conversions": {
@@ -10514,36 +12502,61 @@
"is-symbol": "^1.0.3"
}
},
+ "which-builtin-type": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
+ "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
+ "dev": true,
+ "requires": {
+ "function.prototype.name": "^1.1.6",
+ "has-tostringtag": "^1.0.2",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.0.5",
+ "is-finalizationregistry": "^1.0.2",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.1.4",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.2",
+ "which-typed-array": "^1.1.15"
+ }
+ },
+ "which-collection": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+ "dev": true,
+ "requires": {
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
+ }
+ },
"which-typed-array": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
- "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
"dev": true,
"requires": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0",
- "is-typed-array": "^1.1.10"
+ "has-tostringtag": "^1.0.2"
}
},
"why-is-node-running": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz",
- "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
"dev": true,
"requires": {
"siginfo": "^2.0.0",
"stackback": "0.0.2"
}
},
- "word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true
- },
"wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
@@ -10551,25 +12564,43 @@
"dev": true
},
"wordwrapjs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
- "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz",
+ "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"requires": {
- "reduce-flatten": "^1.0.1",
- "typical": "^2.6.1"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
- "reduce-flatten": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
- "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==",
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
}
}
},
- "wrap-ansi": {
- "version": "7.0.0",
+ "wrap-ansi-cjs": {
+ "version": "npm:wrap-ansi@7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
@@ -10577,6 +12608,25 @@
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ }
}
},
"wrappy": {
@@ -10622,6 +12672,25 @@
"string-width": "^4.2.0",
"y18n": "^5.0.5",
"yargs-parser": "^20.2.2"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ }
}
},
"yargs-parser": {
@@ -10637,14 +12706,39 @@
"dev": true
},
"zip-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz",
- "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz",
+ "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==",
"dev": true,
"requires": {
- "archiver-utils": "^2.1.0",
- "compress-commons": "^4.1.0",
- "readable-stream": "^3.6.0"
+ "archiver-utils": "^5.0.0",
+ "compress-commons": "^6.0.2",
+ "readable-stream": "^4.0.0"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
+ "dev": true,
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ }
+ }
}
}
}
diff --git a/package.json b/package.json
index d4cbb3a..60c5988 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "raylib",
- "version": "0.14.0",
+ "version": "0.15.0",
"description": "Node.js bindings for raylib.",
"main": "index.js",
"types": "src/generated/node-raylib.d.ts",
@@ -62,17 +62,17 @@
},
"homepage": "https://github.com/RobLoach/node-raylib",
"dependencies": {
- "cross-fetch": "^3.1.5",
- "module-alias": "^2.2.2"
+ "cross-fetch": "^4.0.0",
+ "module-alias": "^2.2.3"
},
"devDependencies": {
- "@raylib/api": "~4.5.0",
- "@vitest/ui": "^0.29.7",
- "archiver": "^5.3.1",
- "jsdoc-to-markdown": "^8.0.0",
+ "@raylib/api": "^5.0.1",
+ "@vitest/ui": "^2.1.4",
+ "archiver": "^7.0.1",
+ "jsdoc-to-markdown": "^9.0.5",
"pkg": "^5.8.1",
- "standard": "^17.0.0",
- "vitest": "^0.29.7"
+ "standard": "^17.1.2",
+ "vitest": "^2.1.4"
},
"jsdoc2md": {
"files": [
diff --git a/src/extras/raygui.h b/src/extras/raygui.h
index 833725d..987e221 100644
--- a/src/extras/raygui.h
+++ b/src/extras/raygui.h
@@ -1,32 +1,55 @@
/*******************************************************************************************
*
-* raygui v3.5-dev - A simple and easy-to-use immediate-mode gui library
+* raygui v4.0 - A simple and easy-to-use immediate-mode gui library
*
* DESCRIPTION:
+* raygui is a tools-dev-focused immediate-mode-gui library based on raylib but also
+* available as a standalone library, as long as input and drawing functions are provided.
*
-* raygui is a tools-dev-focused immediate-mode-gui library based on raylib but also
-* available as a standalone library, as long as input and drawing functions are provided.
+* FEATURES:
+* - Immediate-mode gui, minimal retained data
+* - +25 controls provided (basic and advanced)
+* - Styling system for colors, font and metrics
+* - Icons supported, embedded as a 1-bit icons pack
+* - Standalone mode option (custom input/graphics backend)
+* - Multiple support tools provided for raygui development
*
-* Controls provided:
+* POSSIBLE IMPROVEMENTS:
+* - Better standalone mode API for easy plug of custom backends
+* - Externalize required inputs, allow user easier customization
*
-* # Container/separators Controls
+* LIMITATIONS:
+* - No editable multi-line word-wraped text box supported
+* - No auto-layout mechanism, up to the user to define controls position and size
+* - Standalone mode requires library modification and some user work to plug another backend
+*
+* NOTES:
+* - WARNING: GuiLoadStyle() and GuiLoadStyle{Custom}() functions, allocate memory for
+* font atlas recs and glyphs, freeing that memory is (usually) up to the user,
+* no unload function is explicitly provided... but note that GuiLoadStyleDefaulf() unloads
+* by default any previously loaded font (texture, recs, glyphs).
+* - Global UI alpha (guiAlpha) is applied inside GuiDrawRectangle() and GuiDrawText() functions
+*
+* CONTROLS PROVIDED:
+* # Container/separators Controls
* - WindowBox --> StatusBar, Panel
* - GroupBox --> Line
* - Line
* - Panel --> StatusBar
* - ScrollPanel --> StatusBar
+* - TabBar --> Button
*
-* # Basic Controls
+* # Basic Controls
* - Label
-* - Button
* - LabelButton --> Label
+* - Button
* - Toggle
* - ToggleGroup --> Toggle
+* - ToggleSlider
* - CheckBox
* - ComboBox
* - DropdownBox
* - TextBox
-* - TextBoxMulti
* - ValueBox --> TextBox
* - Spinner --> Button, ValueBox
* - Slider
@@ -36,88 +59,141 @@
* - DummyRec
* - Grid
*
-* # Advance Controls
+* # Advance Controls
* - ListView
* - ColorPicker --> ColorPanel, ColorBarHue
* - MessageBox --> Window, Label, Button
* - TextInputBox --> Window, Label, TextBox, Button
*
-* It also provides a set of functions for styling the controls based on its properties (size, color).
+* It also provides a set of functions for styling the controls based on its properties (size, color).
*
*
* RAYGUI STYLE (guiStyle):
+* raygui uses a global data array for all gui style properties (allocated on data segment by default),
+* when a new style is loaded, it is loaded over the global style... but a default gui style could always be
+* recovered with GuiLoadStyleDefault() function, that overwrites the current style to the default one
*
-* raygui uses a global data array for all gui style properties (allocated on data segment by default),
-* when a new style is loaded, it is loaded over the global style... but a default gui style could always be
-* recovered with GuiLoadStyleDefault() function, that overwrites the current style to the default one
+* The global style array size is fixed and depends on the number of controls and properties:
*
-* The global style array size is fixed and depends on the number of controls and properties:
+* static unsigned int guiStyle[RAYGUI_MAX_CONTROLS*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED)];
*
-* static unsigned int guiStyle[RAYGUI_MAX_CONTROLS*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED)];
+* guiStyle size is by default: 16*(16 + 8) = 384*4 = 1536 bytes = 1.5 KB
*
-* guiStyle size is by default: 16*(16 + 8) = 384*4 = 1536 bytes = 1.5 KB
+* Note that the first set of BASE properties (by default guiStyle[0..15]) belong to the generic style
+* used for all controls, when any of those base values is set, it is automatically populated to all
+* controls, so, specific control values overwriting generic style should be set after base values.
*
-* Note that the first set of BASE properties (by default guiStyle[0..15]) belong to the generic style
-* used for all controls, when any of those base values is set, it is automatically populated to all
-* controls, so, specific control values overwriting generic style should be set after base values.
+* After the first BASE set we have the EXTENDED properties (by default guiStyle[16..23]), those
+* properties are actually common to all controls and can not be overwritten individually (like BASE ones)
+* Some of those properties are: TEXT_SIZE, TEXT_SPACING, LINE_COLOR, BACKGROUND_COLOR
*
-* After the first BASE set we have the EXTENDED properties (by default guiStyle[16..23]), those
-* properties are actually common to all controls and can not be overwritten individually (like BASE ones)
-* Some of those properties are: TEXT_SIZE, TEXT_SPACING, LINE_COLOR, BACKGROUND_COLOR
+* Custom control properties can be defined using the EXTENDED properties for each independent control.
*
-* Custom control properties can be defined using the EXTENDED properties for each independent control.
-*
-* TOOL: rGuiStyler is a visual tool to customize raygui style.
+* TOOL: rGuiStyler is a visual tool to customize raygui style: github.com/raysan5/rguistyler
*
*
* RAYGUI ICONS (guiIcons):
+* raygui could use a global array containing icons data (allocated on data segment by default),
+* a custom icons set could be loaded over this array using GuiLoadIcons(), but loaded icons set
+* must be same RAYGUI_ICON_SIZE and no more than RAYGUI_ICON_MAX_ICONS will be loaded
*
-* raygui could use a global array containing icons data (allocated on data segment by default),
-* a custom icons set could be loaded over this array using GuiLoadIcons(), but loaded icons set
-* must be same RAYGUI_ICON_SIZE and no more than RAYGUI_ICON_MAX_ICONS will be loaded
+* Every icon is codified in binary form, using 1 bit per pixel, so, every 16x16 icon
+* requires 8 integers (16*16/32) to be stored in memory.
*
-* Every icon is codified in binary form, using 1 bit per pixel, so, every 16x16 icon
-* requires 8 integers (16*16/32) to be stored in memory.
+* When the icon is draw, actually one quad per pixel is drawn if the bit for that pixel is set.
*
-* When the icon is draw, actually one quad per pixel is drawn if the bit for that pixel is set.
+* The global icons array size is fixed and depends on the number of icons and size:
*
-* The global icons array size is fixed and depends on the number of icons and size:
+* static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS];
*
-* static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS];
+* guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB
*
-* guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB
+* TOOL: rGuiIcons is a visual tool to customize/create raygui icons: github.com/raysan5/rguiicons
*
-* TOOL: rGuiIcons is a visual tool to customize raygui icons and create new ones.
+* RAYGUI LAYOUT:
+* raygui currently does not provide an auto-layout mechanism like other libraries,
+* layouts must be defined manually on controls drawing, providing the right bounds Rectangle for it.
*
+* TOOL: rGuiLayout is a visual tool to create raygui layouts: github.com/raysan5/rguilayout
*
* CONFIGURATION:
+* #define RAYGUI_IMPLEMENTATION
+* Generates the implementation of the library into the included file.
+* If not defined, the library is in header only mode and can be included in other headers
+* or source files without problems. But only ONE file should hold the implementation.
*
-* #define RAYGUI_IMPLEMENTATION
-* Generates the implementation of the library into the included file.
-* If not defined, the library is in header only mode and can be included in other headers
-* or source files without problems. But only ONE file should hold the implementation.
+* #define RAYGUI_STANDALONE
+* Avoid raylib.h header inclusion in this file. Data types defined on raylib are defined
+* internally in the library and input management and drawing functions must be provided by
+* the user (check library implementation for further details).
*
-* #define RAYGUI_STANDALONE
-* Avoid raylib.h header inclusion in this file. Data types defined on raylib are defined
-* internally in the library and input management and drawing functions must be provided by
-* the user (check library implementation for further details).
+* #define RAYGUI_NO_ICONS
+* Avoid including embedded ricons data (256 icons, 16x16 pixels, 1-bit per pixel, 2KB)
*
-* #define RAYGUI_NO_ICONS
-* Avoid including embedded ricons data (256 icons, 16x16 pixels, 1-bit per pixel, 2KB)
+* #define RAYGUI_CUSTOM_ICONS
+* Includes custom ricons.h header defining a set of custom icons,
+* this file can be generated using rGuiIcons tool
*
-* #define RAYGUI_CUSTOM_ICONS
-* Includes custom ricons.h header defining a set of custom icons,
-* this file can be generated using rGuiIcons tool
+* #define RAYGUI_DEBUG_RECS_BOUNDS
+* Draw control bounds rectangles for debug
*
+* #define RAYGUI_DEBUG_TEXT_BOUNDS
+* Draw text bounds rectangles for debug
*
* VERSIONS HISTORY:
-* 3.5 (xx-xxx-2022) ADDED: Multiple new icons, useful for code editing tools
-* ADDED: GuiTabBar(), based on GuiToggle()
+* 4.0 (12-Sep-2023) ADDED: GuiToggleSlider()
+* ADDED: GuiColorPickerHSV() and GuiColorPanelHSV()
+* ADDED: Multiple new icons, mostly compiler related
+* ADDED: New DEFAULT properties: TEXT_LINE_SPACING, TEXT_ALIGNMENT_VERTICAL, TEXT_WRAP_MODE
+* ADDED: New enum values: GuiTextAlignment, GuiTextAlignmentVertical, GuiTextWrapMode
+* ADDED: Support loading styles with custom font charset from external file
+* REDESIGNED: GuiTextBox(), support mouse cursor positioning
+* REDESIGNED: GuiDrawText(), support multiline and word-wrap modes (read only)
+* REDESIGNED: GuiProgressBar() to be more visual, progress affects border color
+* REDESIGNED: Global alpha consideration moved to GuiDrawRectangle() and GuiDrawText()
+* REDESIGNED: GuiScrollPanel(), get parameters by reference and return result value
+* REDESIGNED: GuiToggleGroup(), get parameters by reference and return result value
+* REDESIGNED: GuiComboBox(), get parameters by reference and return result value
+* REDESIGNED: GuiCheckBox(), get parameters by reference and return result value
+* REDESIGNED: GuiSlider(), get parameters by reference and return result value
+* REDESIGNED: GuiSliderBar(), get parameters by reference and return result value
+* REDESIGNED: GuiProgressBar(), get parameters by reference and return result value
+* REDESIGNED: GuiListView(), get parameters by reference and return result value
+* REDESIGNED: GuiColorPicker(), get parameters by reference and return result value
+* REDESIGNED: GuiColorPanel(), get parameters by reference and return result value
+* REDESIGNED: GuiColorBarAlpha(), get parameters by reference and return result value
+* REDESIGNED: GuiColorBarHue(), get parameters by reference and return result value
+* REDESIGNED: GuiGrid(), get parameters by reference and return result value
+* REDESIGNED: GuiGrid(), added extra parameter
+* REDESIGNED: GuiListViewEx(), change parameters order
+* REDESIGNED: All controls return result as int value
+* REVIEWED: GuiScrollPanel() to avoid smallish scroll-bars
+* REVIEWED: All examples and specially controls_test_suite
+* RENAMED: gui_file_dialog module to gui_window_file_dialog
+* UPDATED: All styles to include ISO-8859-15 charset (as much as possible)
+*
+* 3.6 (10-May-2023) ADDED: New icon: SAND_TIMER
+* ADDED: GuiLoadStyleFromMemory() (binary only)
+* REVIEWED: GuiScrollBar() horizontal movement key
+* REVIEWED: GuiTextBox() crash on cursor movement
+* REVIEWED: GuiTextBox(), additional inputs support
+* REVIEWED: GuiLabelButton(), avoid text cut
+* REVIEWED: GuiTextInputBox(), password input
+* REVIEWED: Local GetCodepointNext(), aligned with raylib
+* REDESIGNED: GuiSlider*()/GuiScrollBar() to support out-of-bounds
+*
+* 3.5 (20-Apr-2023) ADDED: GuiTabBar(), based on GuiToggle()
+* ADDED: Helper functions to split text in separate lines
+* ADDED: Multiple new icons, useful for code editing tools
* REMOVED: Unneeded icon editing functions
-* REDESIGNED: GuiDrawText() to divide drawing by lines
+* REMOVED: GuiTextBoxMulti(), very limited and broken
* REMOVED: MeasureTextEx() dependency, logic directly implemented
* REMOVED: DrawTextEx() dependency, logic directly implemented
-* ADDED: Helper functions to split text in separate lines
+* REVIEWED: GuiScrollBar(), improve mouse-click behaviour
+* REVIEWED: Library header info, more info, better organized
+* REDESIGNED: GuiTextBox() to support cursor movement
+* REDESIGNED: GuiDrawText() to divide drawing by lines
+*
* 3.2 (22-May-2022) RENAMED: Some enum values, for unification, avoiding prefixes
* REMOVED: GuiScrollBar(), only internal
* REDESIGNED: GuiPanel() to support text parameter
@@ -127,6 +203,7 @@
* REDESIGNED: GuiColorBarAlpha() to support text parameter
* REDESIGNED: GuiColorBarHue() to support text parameter
* REDESIGNED: GuiTextInputBox() to support password
+*
* 3.1 (12-Jan-2022) REVIEWED: Default style for consistency (aligned with rGuiLayout v2.5 tool)
* REVIEWED: GuiLoadStyle() to support compressed font atlas image data and unload previous textures
* REVIEWED: External icons usage logic
@@ -134,10 +211,12 @@
* RENAMED: Multiple controls properties definitions to prepend RAYGUI_
* RENAMED: RICON_ references to RAYGUI_ICON_ for library consistency
* Projects updated and multiple tweaks
+*
* 3.0 (04-Nov-2021) Integrated ricons data to avoid external file
* REDESIGNED: GuiTextBoxMulti()
* REMOVED: GuiImageButton*()
* Multiple minor tweaks and bugs corrected
+*
* 2.9 (17-Mar-2021) REMOVED: Tooltip API
* 2.8 (03-May-2020) Centralized rectangles drawing to GuiDrawRectangle()
* 2.7 (20-Feb-2020) ADDED: Possible tooltips API
@@ -147,6 +226,7 @@
* Replaced property INNER_PADDING by TEXT_PADDING, renamed some properties
* ADDED: 8 new custom styles ready to use
* Multiple minor tweaks and bugs corrected
+*
* 2.5 (28-May-2019) Implemented extended GuiTextBox(), GuiValueBox(), GuiSpinner()
* 2.3 (29-Apr-2019) ADDED: rIcons auxiliar library and support for it, multiple controls reviewed
* Refactor all controls drawing mechanism to use control state
@@ -165,14 +245,44 @@
* 0.9 (07-Mar-2016) Reviewed and tested by Albert Martos, Ian Eito, Sergio Martinez and Ramon Santamaria.
* 0.8 (27-Aug-2015) Initial release. Implemented by Kevin Gato, Daniel Nicolás and Ramon Santamaria.
*
+* DEPENDENCIES:
+* raylib 5.0 - Inputs reading (keyboard/mouse), shapes drawing, font loading and text drawing
*
-* CONTRIBUTORS:
+* STANDALONE MODE:
+* By default raygui depends on raylib mostly for the inputs and the drawing functionality but that dependency can be disabled
+* with the config flag RAYGUI_STANDALONE. In that case is up to the user to provide another backend to cover library needs.
+*
+* The following functions should be redefined for a custom backend:
+*
+* - Vector2 GetMousePosition(void);
+* - float GetMouseWheelMove(void);
+* - bool IsMouseButtonDown(int button);
+* - bool IsMouseButtonPressed(int button);
+* - bool IsMouseButtonReleased(int button);
+* - bool IsKeyDown(int key);
+* - bool IsKeyPressed(int key);
+* - int GetCharPressed(void); // -- GuiTextBox(), GuiValueBox()
+*
+* - void DrawRectangle(int x, int y, int width, int height, Color color); // -- GuiDrawRectangle()
+* - void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // -- GuiColorPicker()
*
+* - Font GetFontDefault(void); // -- GuiLoadStyleDefault()
+* - Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // -- GuiLoadStyle()
+* - Texture2D LoadTextureFromImage(Image image); // -- GuiLoadStyle(), required to load texture from embedded font atlas image
+* - void SetShapesTexture(Texture2D tex, Rectangle rec); // -- GuiLoadStyle(), required to set shapes rec to font white rec (optimization)
+* - char *LoadFileText(const char *fileName); // -- GuiLoadStyle(), required to load charset data
+* - void UnloadFileText(char *text); // -- GuiLoadStyle(), required to unload charset data
+* - const char *GetDirectoryPath(const char *filePath); // -- GuiLoadStyle(), required to find charset/font file from text .rgs
+* - int *LoadCodepoints(const char *text, int *count); // -- GuiLoadStyle(), required to load required font codepoints list
+* - void UnloadCodepoints(int *codepoints); // -- GuiLoadStyle(), required to unload codepoints list
+* - unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // -- GuiLoadStyle()
+*
+* CONTRIBUTORS:
* Ramon Santamaria: Supervision, review, redesign, update and maintenance
* Vlad Adrian: Complete rewrite of GuiTextBox() to support extended features (2019)
* Sergio Martinez: Review, testing (2015) and redesign of multiple controls (2018)
-* Adria Arranz: Testing and Implementation of additional controls (2018)
-* Jordi Jorba: Testing and Implementation of additional controls (2018)
+* Adria Arranz: Testing and implementation of additional controls (2018)
+* Jordi Jorba: Testing and implementation of additional controls (2018)
* Albert Martos: Review and testing of the library (2015)
* Ian Eito: Review and testing of the library (2015)
* Kevin Gato: Initial implementation of basic components (2014)
@@ -203,7 +313,10 @@
#ifndef RAYGUI_H
#define RAYGUI_H
-#define RAYGUI_VERSION "3.2"
+#define RAYGUI_VERSION_MAJOR 4
+#define RAYGUI_VERSION_MINOR 0
+#define RAYGUI_VERSION_PATCH 0
+#define RAYGUI_VERSION "4.0"
#if !defined(RAYGUI_STANDALONE)
#include "raylib.h"
@@ -328,37 +441,69 @@
} Font;
#endif
+
// Style property
+// NOTE: Used when exporting style as code for convenience
typedef struct GuiStyleProp {
- unsigned short controlId;
- unsigned short propertyId;
- unsigned int propertyValue;
+ unsigned short controlId; // Control identifier
+ unsigned short propertyId; // Property identifier
+ int propertyValue; // Property value
} GuiStyleProp;
+/*
+// Controls text style -NOT USED-
+// NOTE: Text style is defined by control
+typedef struct GuiTextStyle {
+ unsigned int size;
+ int charSpacing;
+ int lineSpacing;
+ int alignmentH;
+ int alignmentV;
+ int padding;
+} GuiTextStyle;
+*/
+
// Gui control state
typedef enum {
STATE_NORMAL = 0,
STATE_FOCUSED,
STATE_PRESSED,
- STATE_DISABLED,
+ STATE_DISABLED
} GuiState;
// Gui control text alignment
typedef enum {
TEXT_ALIGN_LEFT = 0,
TEXT_ALIGN_CENTER,
- TEXT_ALIGN_RIGHT,
+ TEXT_ALIGN_RIGHT
} GuiTextAlignment;
+// Gui control text alignment vertical
+// NOTE: Text vertical position inside the text bounds
+typedef enum {
+ TEXT_ALIGN_TOP = 0,
+ TEXT_ALIGN_MIDDLE,
+ TEXT_ALIGN_BOTTOM
+} GuiTextAlignmentVertical;
+
+// Gui control text wrap mode
+// NOTE: Useful for multiline text
+typedef enum {
+ TEXT_WRAP_NONE = 0,
+ TEXT_WRAP_CHAR,
+ TEXT_WRAP_WORD
+} GuiTextWrapMode;
+
// Gui controls
typedef enum {
// Default -> populates to all controls when set
DEFAULT = 0,
+
// Basic controls
LABEL, // Used also for: LABELBUTTON
BUTTON,
TOGGLE, // Used also for: TOGGLEGROUP
- SLIDER, // Used also for: SLIDERBAR
+ SLIDER, // Used also for: SLIDERBAR, TOGGLESLIDER
PROGRESSBAR,
CHECKBOX,
COMBOBOX,
@@ -375,37 +520,55 @@ typedef enum {
// Gui base properties for every control
// NOTE: RAYGUI_MAX_PROPS_BASE properties (by default 16 properties)
typedef enum {
- BORDER_COLOR_NORMAL = 0,
- BASE_COLOR_NORMAL,
- TEXT_COLOR_NORMAL,
- BORDER_COLOR_FOCUSED,
- BASE_COLOR_FOCUSED,
- TEXT_COLOR_FOCUSED,
- BORDER_COLOR_PRESSED,
- BASE_COLOR_PRESSED,
- TEXT_COLOR_PRESSED,
- BORDER_COLOR_DISABLED,
- BASE_COLOR_DISABLED,
- TEXT_COLOR_DISABLED,
- BORDER_WIDTH,
- TEXT_PADDING,
- TEXT_ALIGNMENT,
- RESERVED
+ BORDER_COLOR_NORMAL = 0, // Control border color in STATE_NORMAL
+ BASE_COLOR_NORMAL, // Control base color in STATE_NORMAL
+ TEXT_COLOR_NORMAL, // Control text color in STATE_NORMAL
+ BORDER_COLOR_FOCUSED, // Control border color in STATE_FOCUSED
+ BASE_COLOR_FOCUSED, // Control base color in STATE_FOCUSED
+ TEXT_COLOR_FOCUSED, // Control text color in STATE_FOCUSED
+ BORDER_COLOR_PRESSED, // Control border color in STATE_PRESSED
+ BASE_COLOR_PRESSED, // Control base color in STATE_PRESSED
+ TEXT_COLOR_PRESSED, // Control text color in STATE_PRESSED
+ BORDER_COLOR_DISABLED, // Control border color in STATE_DISABLED
+ BASE_COLOR_DISABLED, // Control base color in STATE_DISABLED
+ TEXT_COLOR_DISABLED, // Control text color in STATE_DISABLED
+ BORDER_WIDTH, // Control border size, 0 for no border
+ //TEXT_SIZE, // Control text size (glyphs max height) -> GLOBAL for all controls
+ //TEXT_SPACING, // Control text spacing between glyphs -> GLOBAL for all controls
+ //TEXT_LINE_SPACING // Control text spacing between lines -> GLOBAL for all controls
+ TEXT_PADDING, // Control text padding, not considering border
+ TEXT_ALIGNMENT, // Control text horizontal alignment inside control text bound (after border and padding)
+ //TEXT_WRAP_MODE // Control text wrap-mode inside text bounds -> GLOBAL for all controls
} GuiControlProperty;
+// TODO: Which text styling properties should be global or per-control?
+// At this moment TEXT_PADDING and TEXT_ALIGNMENT is configured and saved per control while
+// TEXT_SIZE, TEXT_SPACING, TEXT_LINE_SPACING, TEXT_ALIGNMENT_VERTICAL, TEXT_WRAP_MODE are global and
+// should be configured by user as needed while defining the UI layout
+
+
// Gui extended properties depend on control
-// NOTE: RAYGUI_MAX_PROPS_EXTENDED properties (by default 8 properties)
+// NOTE: RAYGUI_MAX_PROPS_EXTENDED properties (by default, max 8 properties)
//----------------------------------------------------------------------------------
-
// DEFAULT extended properties
// NOTE: Those properties are common to all controls or global
+// WARNING: We only have 8 slots for those properties by default!!! -> New global control: TEXT?
typedef enum {
TEXT_SIZE = 16, // Text size (glyphs max height)
TEXT_SPACING, // Text spacing between glyphs
LINE_COLOR, // Line control color
BACKGROUND_COLOR, // Background color
+ TEXT_LINE_SPACING, // Text spacing between lines
+ TEXT_ALIGNMENT_VERTICAL, // Text vertical alignment inside text bounds (after border and padding)
+ TEXT_WRAP_MODE // Text wrap-mode inside text bounds
+ //TEXT_DECORATION // Text decoration: 0-None, 1-Underline, 2-Line-through, 3-Overline
+ //TEXT_DECORATION_THICK // Text decoration line thikness
} GuiDefaultProperty;
+// Other possible text properties:
+// TEXT_WEIGHT // Normal, Italic, Bold -> Requires specific font change
+// TEXT_INDENT // Text indentation -> Now using TEXT_PADDING...
+
// Label
//typedef enum { } GuiLabelProperty;
@@ -430,12 +593,12 @@ typedef enum {
// ScrollBar
typedef enum {
- ARROWS_SIZE = 16,
- ARROWS_VISIBLE,
- SCROLL_SLIDER_PADDING, // (SLIDERBAR, SLIDER_PADDING)
- SCROLL_SLIDER_SIZE,
- SCROLL_PADDING,
- SCROLL_SPEED,
+ ARROWS_SIZE = 16, // ScrollBar arrows size
+ ARROWS_VISIBLE, // ScrollBar arrows visible
+ SCROLL_SLIDER_PADDING, // ScrollBar slider internal padding
+ SCROLL_SLIDER_SIZE, // ScrollBar slider size
+ SCROLL_PADDING, // ScrollBar scroll padding from arrows
+ SCROLL_SPEED, // ScrollBar scrolling speed
} GuiScrollBarProperty;
// CheckBox
@@ -457,8 +620,7 @@ typedef enum {
// TextBox/TextBoxMulti/ValueBox/Spinner
typedef enum {
- TEXT_INNER_PADDING = 16, // TextBox/TextBoxMulti/ValueBox/Spinner inner text padding
- TEXT_LINES_SPACING, // TextBoxMulti lines separation
+ TEXT_READONLY = 16, // TextBox in read-only mode: 0-text editable, 1-text no-editable
} GuiTextBoxProperty;
// Spinner
@@ -472,7 +634,7 @@ typedef enum {
LIST_ITEMS_HEIGHT = 16, // ListView items height
LIST_ITEMS_SPACING, // ListView items separation
SCROLLBAR_WIDTH, // ListView scrollbar size (usually width)
- SCROLLBAR_SIDE, // ListView scrollbar side (0-left, 1-right)
+ SCROLLBAR_SIDE, // ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE)
} GuiListViewProperty;
// ColorPicker
@@ -501,78 +663,89 @@ extern "C" { // Prevents name mangling of functions
#endif
// Global gui state control functions
-RAYGUIAPI void GuiEnable(void); // Enable gui controls (global state)
-RAYGUIAPI void GuiDisable(void); // Disable gui controls (global state)
-RAYGUIAPI void GuiLock(void); // Lock gui controls (global state)
-RAYGUIAPI void GuiUnlock(void); // Unlock gui controls (global state)
-RAYGUIAPI bool GuiIsLocked(void); // Check if gui is locked (global state)
-RAYGUIAPI void GuiFade(float alpha); // Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
-RAYGUIAPI void GuiSetState(int state); // Set gui state (global state)
-RAYGUIAPI int GuiGetState(void); // Get gui state (global state)
+RAYGUIAPI void GuiEnable(void); // Enable gui controls (global state)
+RAYGUIAPI void GuiDisable(void); // Disable gui controls (global state)
+RAYGUIAPI void GuiLock(void); // Lock gui controls (global state)
+RAYGUIAPI void GuiUnlock(void); // Unlock gui controls (global state)
+RAYGUIAPI bool GuiIsLocked(void); // Check if gui is locked (global state)
+RAYGUIAPI void GuiSetAlpha(float alpha); // Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
+RAYGUIAPI void GuiSetState(int state); // Set gui state (global state)
+RAYGUIAPI int GuiGetState(void); // Get gui state (global state)
// Font set/get functions
-RAYGUIAPI void GuiSetFont(Font font); // Set gui custom font (global state)
-RAYGUIAPI Font GuiGetFont(void); // Get gui custom font (global state)
+RAYGUIAPI void GuiSetFont(Font font); // Set gui custom font (global state)
+RAYGUIAPI Font GuiGetFont(void); // Get gui custom font (global state)
// Style set/get functions
-RAYGUIAPI void GuiSetStyle(int control, int property, int value); // Set one style property
-RAYGUIAPI int GuiGetStyle(int control, int property); // Get one style property
-
-// Container/separator controls, useful for controls organization
-RAYGUIAPI bool GuiWindowBox(Rectangle bounds, const char *title); // Window Box control, shows a window that can be closed
-RAYGUIAPI void GuiGroupBox(Rectangle bounds, const char *text); // Group Box control with text name
-RAYGUIAPI void GuiLine(Rectangle bounds, const char *text); // Line separator control, could contain text
-RAYGUIAPI void GuiPanel(Rectangle bounds, const char *text); // Panel control, useful to group controls
-RAYGUIAPI int GuiTabBar(Rectangle bounds, const char **text, int count, int *active); // Tab Bar control, returns TAB to be closed or -1
-RAYGUIAPI Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll); // Scroll Panel control
-
-// Basic controls set
-RAYGUIAPI void GuiLabel(Rectangle bounds, const char *text); // Label control, shows text
-RAYGUIAPI bool GuiButton(Rectangle bounds, const char *text); // Button control, returns true when clicked
-RAYGUIAPI bool GuiLabelButton(Rectangle bounds, const char *text); // Label button control, show true when clicked
-RAYGUIAPI bool GuiToggle(Rectangle bounds, const char *text, bool active); // Toggle Button control, returns true when active
-RAYGUIAPI int GuiToggleGroup(Rectangle bounds, const char *text, int active); // Toggle Group control, returns active toggle index
-RAYGUIAPI bool GuiCheckBox(Rectangle bounds, const char *text, bool checked); // Check Box control, returns true when active
-RAYGUIAPI int GuiComboBox(Rectangle bounds, const char *text, int active); // Combo Box control, returns selected item index
-RAYGUIAPI bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode); // Dropdown Box control, returns selected item
-RAYGUIAPI bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Spinner control, returns selected value
-RAYGUIAPI bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Value Box control, updates input text with numbers
-RAYGUIAPI bool GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control, updates input text
-RAYGUIAPI bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control with multiple lines
-RAYGUIAPI float GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Slider control, returns selected value
-RAYGUIAPI float GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Slider Bar control, returns selected value
-RAYGUIAPI float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Progress Bar control, shows current progress value
-RAYGUIAPI void GuiStatusBar(Rectangle bounds, const char *text); // Status Bar control, shows info text
-RAYGUIAPI void GuiDummyRec(Rectangle bounds, const char *text); // Dummy control for placeholders
-RAYGUIAPI Vector2 GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs); // Grid control, returns mouse cell position
-
-// Advance controls set
-RAYGUIAPI int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int active); // List View control, returns selected list item index
-RAYGUIAPI int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, int *scrollIndex, int active); // List View with extended parameters
-RAYGUIAPI int GuiMessageBox(Rectangle bounds, const char *title, const char *message, const char *buttons); // Message Box control, displays a message
-RAYGUIAPI int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, int *secretViewActive); // Text Input Box control, ask for text, supports secret
-RAYGUIAPI Color GuiColorPicker(Rectangle bounds, const char *text, Color color); // Color Picker control (multiple color controls)
-RAYGUIAPI Color GuiColorPanel(Rectangle bounds, const char *text, Color color); // Color Panel control
-RAYGUIAPI float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha); // Color Bar Alpha control
-RAYGUIAPI float GuiColorBarHue(Rectangle bounds, const char *text, float value); // Color Bar Hue control
+RAYGUIAPI void GuiSetStyle(int control, int property, int value); // Set one style property
+RAYGUIAPI int GuiGetStyle(int control, int property); // Get one style property
// Styles loading functions
RAYGUIAPI void GuiLoadStyle(const char *fileName); // Load style file over global style variable (.rgs)
RAYGUIAPI void GuiLoadStyleDefault(void); // Load style default over global style
// Tooltips management functions
-RAYGUIAPI void GuiEnableTooltip(void); // Enable gui tooltips (global state)
-RAYGUIAPI void GuiDisableTooltip(void); // Disable gui tooltips (global state)
-RAYGUIAPI void GuiSetTooltip(const char *tooltip); // Set tooltip string
+RAYGUIAPI void GuiEnableTooltip(void); // Enable gui tooltips (global state)
+RAYGUIAPI void GuiDisableTooltip(void); // Disable gui tooltips (global state)
+RAYGUIAPI void GuiSetTooltip(const char *tooltip); // Set tooltip string
// Icons functionality
RAYGUIAPI const char *GuiIconText(int iconId, const char *text); // Get text with icon id prepended (if supported)
-
#if !defined(RAYGUI_NO_ICONS)
+RAYGUIAPI void GuiSetIconScale(int scale); // Set default icon drawing size
RAYGUIAPI unsigned int *GuiGetIcons(void); // Get raygui icons data pointer
-RAYGUIAPI char **GuiLoadIcons(const char *fileName, bool loadIconsName); // Load raygui icons file (.rgi) into internal icons data
-RAYGUIAPI void GuiDrawIcon(int iconId, int posX, int posY, int pixelSize, Color color);
-RAYGUIAPI void GuiSetIconScale(int scale); // Set icon drawing size
+RAYGUIAPI char **GuiLoadIcons(const char *fileName, bool loadIconsName); // Load raygui icons file (.rgi) into internal icons data
+RAYGUIAPI void GuiDrawIcon(int iconId, int posX, int posY, int pixelSize, Color color); // Draw icon using pixel size at specified position
+#endif
+
+
+// Controls
+//----------------------------------------------------------------------------------------------------------
+// Container/separator controls, useful for controls organization
+RAYGUIAPI int GuiWindowBox(Rectangle bounds, const char *title); // Window Box control, shows a window that can be closed
+RAYGUIAPI int GuiGroupBox(Rectangle bounds, const char *text); // Group Box control with text name
+RAYGUIAPI int GuiLine(Rectangle bounds, const char *text); // Line separator control, could contain text
+RAYGUIAPI int GuiPanel(Rectangle bounds, const char *text); // Panel control, useful to group controls
+RAYGUIAPI int GuiTabBar(Rectangle bounds, const char **text, int count, int *active); // Tab Bar control, returns TAB to be closed or -1
+RAYGUIAPI int GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll, Rectangle *view); // Scroll Panel control
+
+// Basic controls set
+RAYGUIAPI int GuiLabel(Rectangle bounds, const char *text); // Label control, shows text
+RAYGUIAPI int GuiButton(Rectangle bounds, const char *text); // Button control, returns true when clicked
+RAYGUIAPI int GuiLabelButton(Rectangle bounds, const char *text); // Label button control, show true when clicked
+RAYGUIAPI int GuiToggle(Rectangle bounds, const char *text, bool *active); // Toggle Button control, returns true when active
+RAYGUIAPI int GuiToggleGroup(Rectangle bounds, const char *text, int *active); // Toggle Group control, returns active toggle index
+RAYGUIAPI int GuiToggleSlider(Rectangle bounds, const char *text, int *active); // Toggle Slider control, returns true when clicked
+RAYGUIAPI int GuiCheckBox(Rectangle bounds, const char *text, bool *checked); // Check Box control, returns true when active
+RAYGUIAPI int GuiComboBox(Rectangle bounds, const char *text, int *active); // Combo Box control, returns selected item index
+
+RAYGUIAPI int GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode); // Dropdown Box control, returns selected item
+RAYGUIAPI int GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Spinner control, returns selected value
+RAYGUIAPI int GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Value Box control, updates input text with numbers
+RAYGUIAPI int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control, updates input text
+
+RAYGUIAPI int GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider control, returns selected value
+RAYGUIAPI int GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider Bar control, returns selected value
+RAYGUIAPI int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Progress Bar control, shows current progress value
+RAYGUIAPI int GuiStatusBar(Rectangle bounds, const char *text); // Status Bar control, shows info text
+RAYGUIAPI int GuiDummyRec(Rectangle bounds, const char *text); // Dummy control for placeholders
+RAYGUIAPI int GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs, Vector2 *mouseCell); // Grid control, returns mouse cell position
+
+// Advance controls set
+RAYGUIAPI int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int *active); // List View control, returns selected list item index
+RAYGUIAPI int GuiListViewEx(Rectangle bounds, const char **text, int count, int *scrollIndex, int *active, int *focus); // List View with extended parameters
+RAYGUIAPI int GuiMessageBox(Rectangle bounds, const char *title, const char *message, const char *buttons); // Message Box control, displays a message
+RAYGUIAPI int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, bool *secretViewActive); // Text Input Box control, ask for text, supports secret
+RAYGUIAPI int GuiColorPicker(Rectangle bounds, const char *text, Color *color); // Color Picker control (multiple color controls)
+RAYGUIAPI int GuiColorPanel(Rectangle bounds, const char *text, Color *color); // Color Panel control
+RAYGUIAPI int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha); // Color Bar Alpha control
+RAYGUIAPI int GuiColorBarHue(Rectangle bounds, const char *text, float *value); // Color Bar Hue control
+RAYGUIAPI int GuiColorPickerHSV(Rectangle bounds, const char *text, Vector3 *colorHsv); // Color Picker control that avoids conversion to RGB on each call (multiple color controls)
+RAYGUIAPI int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv); // Color Panel control that returns HSV color value, used by GuiColorPickerHSV()
+//----------------------------------------------------------------------------------------------------------
+
+
+#if !defined(RAYGUI_NO_ICONS)
#if !defined(RAYGUI_CUSTOM_ICONS)
//----------------------------------------------------------------------------------
@@ -798,7 +971,7 @@ typedef enum {
ICON_REG_EXP = 216,
ICON_FOLDER = 217,
ICON_FILE = 218,
- ICON_219 = 219,
+ ICON_SAND_TIMER = 219,
ICON_220 = 220,
ICON_221 = 221,
ICON_222 = 222,
@@ -856,7 +1029,7 @@ typedef enum {
#include // Required for: FILE, fopen(), fclose(), fprintf(), feof(), fscanf(), vsprintf() [GuiLoadStyle(), GuiLoadIcons()]
#include // Required for: malloc(), calloc(), free() [GuiLoadStyle(), GuiLoadIcons()]
-#include // Required for: strlen() [GuiTextBox(), GuiTextBoxMulti(), GuiValueBox()], memset(), memcpy()
+#include // Required for: strlen() [GuiTextBox(), GuiValueBox()], memset(), memcpy()
#include // Required for: va_list, va_start(), vfprintf(), va_end() [TextFormat()]
#include // Required for: roundf() [GuiColorPicker()]
@@ -866,6 +1039,11 @@ typedef enum {
#define RAYGUI_CLITERAL(name) (name)
#endif
+// Check if two rectangles are equal, used to validate a slider bounds as an id
+#ifndef CHECK_BOUNDS_ID
+ #define CHECK_BOUNDS_ID(src, dst) ((src.x == dst.x) && (src.y == dst.y) && (src.width == dst.width) && (src.height == dst.height))
+#endif
+
#if !defined(RAYGUI_NO_ICONS) && !defined(RAYGUI_CUSTOM_ICONS)
// Embedded icons, no external file provided
@@ -1056,11 +1234,11 @@ static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS] =
0x78040000, 0x501f600e, 0x0ef44004, 0x12f41284, 0x0ef41284, 0x10140004, 0x7ffc300c, 0x10003000, // ICON_MODE_3D
0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE
0x7fe00000, 0x5ff87ff0, 0x47fe4ffc, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_TOP
- 0x7fe00000, 0x50386030, 0x47fe483c, 0x443e443e, 0x443e443e, 0x241e75fe, 0x0c06140e, 0x000007fe, // ICON_CUBE_FACE_LEFT
+ 0x7fe00000, 0x50386030, 0x47c2483c, 0x443e443e, 0x443e443e, 0x241e75fe, 0x0c06140e, 0x000007fe, // ICON_CUBE_FACE_LEFT
0x7fe00000, 0x50286030, 0x47fe4804, 0x47fe47fe, 0x47fe47fe, 0x27fe77fe, 0x0ffe17fe, 0x000007fe, // ICON_CUBE_FACE_FRONT
- 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x3ff27fe2, 0x0ffe1ffa, 0x000007fe, // ICON_CUBE_FACE_BOTTOM
+ 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x3bf27be2, 0x0bfe1bfa, 0x000007fe, // ICON_CUBE_FACE_BOTTOM
0x7fe00000, 0x70286030, 0x7ffe7804, 0x7c227c02, 0x7c227c22, 0x3c127de2, 0x0c061c0a, 0x000007fe, // ICON_CUBE_FACE_RIGHT
- 0x7fe00000, 0x7fe87ff0, 0x7ffe7fe4, 0x7fe27fe2, 0x7fe27fe2, 0x24127fe2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_BACK
+ 0x7fe00000, 0x6fe85ff0, 0x781e77e4, 0x7be27be2, 0x7be27be2, 0x24127be2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_BACK
0x00000000, 0x2a0233fe, 0x22022602, 0x22022202, 0x2a022602, 0x00a033fe, 0x02080110, 0x00000000, // ICON_CAMERA
0x00000000, 0x200c3ffc, 0x000c000c, 0x3ffc000c, 0x30003000, 0x30003000, 0x3ffc3004, 0x00000000, // ICON_SPECIAL
0x00000000, 0x0022003e, 0x012201e2, 0x0100013e, 0x01000100, 0x79000100, 0x4f004900, 0x00007800, // ICON_LINK_NET
@@ -1111,7 +1289,7 @@ static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS] =
0x00000000, 0x02000000, 0x07000a80, 0x07001fc0, 0x02000a80, 0x00300030, 0x00000000, 0x00000000, // ICON_REG_EXP
0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x40024002, 0x40024002, 0x7ffe4002, 0x00000000, // ICON_FOLDER
0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x00003ffc, // ICON_FILE
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_219
+ 0x1ff00000, 0x20082008, 0x17d02fe8, 0x05400ba0, 0x09200540, 0x23881010, 0x2fe827c8, 0x00001ff0, // ICON_SAND_TIMER
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_220
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_221
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_222
@@ -1159,8 +1337,10 @@ static unsigned int *guiIconsPtr = guiIcons;
#define RAYGUI_ICON_SIZE 0
#endif
-#define RAYGUI_MAX_CONTROLS 16 // Maximum number of standard controls
-#define RAYGUI_MAX_PROPS_BASE 16 // Maximum number of standard properties
+// WARNING: Those values define the total size of the style data array,
+// if changed, previous saved styles could become incompatible
+#define RAYGUI_MAX_CONTROLS 16 // Maximum number of controls
+#define RAYGUI_MAX_PROPS_BASE 16 // Maximum number of base properties
#define RAYGUI_MAX_PROPS_EXTENDED 8 // Maximum number of extended properties
//----------------------------------------------------------------------------------
@@ -1172,17 +1352,24 @@ typedef enum { BORDER = 0, BASE, TEXT, OTHER } GuiPropertyElement;
//----------------------------------------------------------------------------------
// Global Variables Definition
//----------------------------------------------------------------------------------
-static GuiState guiState = STATE_NORMAL; // Gui global state, if !STATE_NORMAL, forces defined state
+static GuiState guiState = STATE_NORMAL; // Gui global state, if !STATE_NORMAL, forces defined state
+
+static Font guiFont = { 0 }; // Gui current font (WARNING: highly coupled to raylib)
+static bool guiLocked = false; // Gui lock state (no inputs processed)
+static float guiAlpha = 1.0f; // Gui controls transparency
-static Font guiFont = { 0 }; // Gui current font (WARNING: highly coupled to raylib)
-static bool guiLocked = false; // Gui lock state (no inputs processed)
-static float guiAlpha = 1.0f; // Gui element transpacency on drawing
+static unsigned int guiIconScale = 1; // Gui icon default scale (if icons enabled)
-static unsigned int guiIconScale = 1; // Gui icon default scale (if icons enabled)
+static bool guiTooltip = false; // Tooltip enabled/disabled
+static const char *guiTooltipPtr = NULL; // Tooltip string pointer (string provided by user)
-static bool guiTooltip = false; // Tooltip enabled/disabled
-static const char *guiTooltipPtr = NULL; // Tooltip string pointer (string provided by user)
+static bool guiSliderDragging = false; // Gui slider drag state (no inputs processed except dragged slider)
+static Rectangle guiSliderActive = { 0 }; // Gui slider active bounds rectangle, used as an unique identifier
+static int textBoxCursorIndex = 0; // Cursor index, shared by all GuiTextBox*()
+//static int blinkCursorFrameCounter = 0; // Frame counter for cursor blinking
+static int autoCursorCooldownCounter = 0; // Cooldown frame counter for automatic cursor movement on key-down
+static int autoCursorDelayCounter = 0; // Delay frame counter for automatic cursor movement
//----------------------------------------------------------------------------------
// Style data array for all gui style properties (allocated on data segment by default)
@@ -1227,31 +1414,38 @@ static bool IsMouseButtonReleased(int button);
static bool IsKeyDown(int key);
static bool IsKeyPressed(int key);
-static int GetCharPressed(void); // -- GuiTextBox(), GuiTextBoxMulti(), GuiValueBox()
+static int GetCharPressed(void); // -- GuiTextBox(), GuiValueBox()
//-------------------------------------------------------------------------------
// Drawing required functions
//-------------------------------------------------------------------------------
-static void DrawRectangle(int x, int y, int width, int height, Color color); // -- GuiDrawRectangle(), GuiDrawIcon()
-
+static void DrawRectangle(int x, int y, int width, int height, Color color); // -- GuiDrawRectangle()
static void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // -- GuiColorPicker()
//-------------------------------------------------------------------------------
// Text required functions
//-------------------------------------------------------------------------------
-static Font LoadFontEx(const char *fileName, int fontSize, int *fontChars, int glyphCount); // -- GuiLoadStyle()
-static Font GetFontDefault(void); // -- GuiLoadStyleDefault()
-static Texture2D LoadTextureFromImage(Image image); // -- GuiLoadStyle()
-static void SetShapesTexture(Texture2D tex, Rectangle rec); // -- GuiLoadStyle()
-static char *LoadFileText(const char *fileName); // -- GuiLoadStyle()
-static const char *GetDirectoryPath(const char *filePath); // -- GuiLoadStyle()
+static Font GetFontDefault(void); // -- GuiLoadStyleDefault()
+static Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // -- GuiLoadStyle(), load font
+
+static Texture2D LoadTextureFromImage(Image image); // -- GuiLoadStyle(), required to load texture from embedded font atlas image
+static void SetShapesTexture(Texture2D tex, Rectangle rec); // -- GuiLoadStyle(), required to set shapes rec to font white rec (optimization)
+
+static char *LoadFileText(const char *fileName); // -- GuiLoadStyle(), required to load charset data
+static void UnloadFileText(char *text); // -- GuiLoadStyle(), required to unload charset data
+
+static const char *GetDirectoryPath(const char *filePath); // -- GuiLoadStyle(), required to find charset/font file from text .rgs
+
+static int *LoadCodepoints(const char *text, int *count); // -- GuiLoadStyle(), required to load required font codepoints list
+static void UnloadCodepoints(int *codepoints); // -- GuiLoadStyle(), required to unload codepoints list
+
+static unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // -- GuiLoadStyle()
//-------------------------------------------------------------------------------
// raylib functions already implemented in raygui
//-------------------------------------------------------------------------------
static Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value
static int ColorToInt(Color color); // Returns hexadecimal value for a Color
-static Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f
static bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle
static const char *TextFormat(const char *text, ...); // Formatting of text with variables to 'embed'
static const char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings
@@ -1268,11 +1462,13 @@ static void DrawRectangleGradientV(int posX, int posY, int width, int height, Co
//----------------------------------------------------------------------------------
// Module specific Functions Declaration
//----------------------------------------------------------------------------------
+static void GuiLoadStyleFromMemory(const unsigned char *fileData, int dataSize); // Load style from memory (binary only)
+
static int GetTextWidth(const char *text); // Gui get text width using gui font and style
static Rectangle GetTextBounds(int control, Rectangle bounds); // Get text bounds considering control bounds
static const char *GetTextIcon(const char *text, int *iconId); // Get text icon if provided and move text cursor
-static void GuiDrawText(const char *text, Rectangle bounds, int alignment, Color tint); // Gui draw text using default font
+static void GuiDrawText(const char *text, Rectangle textBounds, int alignment, Color tint); // Gui draw text using default font
static void GuiDrawRectangle(Rectangle rec, int borderWidth, Color borderColor, Color color); // Gui draw rectangle using default raygui style
static const char **GuiTextSplit(const char *text, char delimiter, int *count, int *textRow); // Split controls text into multiple strings
@@ -1282,6 +1478,7 @@ static Vector3 ConvertRGBtoHSV(Vector3 rgb); // Convert color
static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue); // Scroll bar control, used by GuiScrollPanel()
static void GuiTooltip(Rectangle controlRec); // Draw tooltip using control rec position
+static Color GuiFade(Color color, float alpha); // Fade color by an alpha factor
//----------------------------------------------------------------------------------
// Gui Setup Functions Definition
@@ -1304,7 +1501,7 @@ void GuiUnlock(void) { guiLocked = false; }
bool GuiIsLocked(void) { return guiLocked; }
// Set gui controls alpha global state
-void GuiFade(float alpha)
+void GuiSetAlpha(float alpha)
{
if (alpha < 0.0f) alpha = 0.0f;
else if (alpha > 1.0f) alpha = 1.0f;
@@ -1330,7 +1527,6 @@ void GuiSetFont(Font font)
if (!guiStyleLoaded) GuiLoadStyleDefault();
guiFont = font;
- GuiSetStyle(DEFAULT, TEXT_SIZE, font.baseSize);
}
}
@@ -1365,7 +1561,7 @@ int GuiGetStyle(int control, int property)
//----------------------------------------------------------------------------------
// Window Box control
-bool GuiWindowBox(Rectangle bounds, const char *title)
+int GuiWindowBox(Rectangle bounds, const char *title)
{
// Window title bar height (including borders)
// NOTE: This define is also used by GuiMessageBox() and GuiTextInputBox()
@@ -1373,8 +1569,8 @@ bool GuiWindowBox(Rectangle bounds, const char *title)
#define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24
#endif
+ int result = 0;
//GuiState state = guiState;
- bool clicked = false;
int statusBarHeight = RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT;
@@ -1401,38 +1597,41 @@ bool GuiWindowBox(Rectangle bounds, const char *title)
GuiSetStyle(BUTTON, BORDER_WIDTH, 1);
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
#if defined(RAYGUI_NO_ICONS)
- clicked = GuiButton(closeButtonRec, "x");
+ result = GuiButton(closeButtonRec, "x");
#else
- clicked = GuiButton(closeButtonRec, GuiIconText(ICON_CROSS_SMALL, NULL));
+ result = GuiButton(closeButtonRec, GuiIconText(ICON_CROSS_SMALL, NULL));
#endif
GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth);
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment);
//--------------------------------------------------------------------
- return clicked;
+ return result; // Window close button clicked: result = 1
}
// Group Box control with text name
-void GuiGroupBox(Rectangle bounds, const char *text)
+int GuiGroupBox(Rectangle bounds, const char *text)
{
#if !defined(RAYGUI_GROUPBOX_LINE_THICK)
#define RAYGUI_GROUPBOX_LINE_THICK 1
#endif
+ int result = 0;
GuiState state = guiState;
// Draw control
//--------------------------------------------------------------------
- GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)), guiAlpha));
- GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, RAYGUI_GROUPBOX_LINE_THICK }, 0, BLANK, Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)), guiAlpha));
- GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - 1, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)), guiAlpha));
+ GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)));
+ GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, RAYGUI_GROUPBOX_LINE_THICK }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)));
+ GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - 1, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)));
GuiLine(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y - GuiGetStyle(DEFAULT, TEXT_SIZE)/2, bounds.width, (float)GuiGetStyle(DEFAULT, TEXT_SIZE) }, text);
//--------------------------------------------------------------------
+
+ return result;
}
// Line control
-void GuiLine(Rectangle bounds, const char *text)
+int GuiLine(Rectangle bounds, const char *text)
{
#if !defined(RAYGUI_LINE_ORIGIN_SIZE)
#define RAYGUI_LINE_MARGIN_TEXT 12
@@ -1441,9 +1640,10 @@ void GuiLine(Rectangle bounds, const char *text)
#define RAYGUI_LINE_TEXT_PADDING 4
#endif
+ int result = 0;
GuiState state = guiState;
- Color color = Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)), guiAlpha);
+ Color color = GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR));
// Draw control
//--------------------------------------------------------------------
@@ -1451,7 +1651,7 @@ void GuiLine(Rectangle bounds, const char *text)
else
{
Rectangle textBounds = { 0 };
- textBounds.width = (float)GetTextWidth(text);
+ textBounds.width = (float)GetTextWidth(text) + 2;
textBounds.height = bounds.height;
textBounds.x = bounds.x + RAYGUI_LINE_MARGIN_TEXT;
textBounds.y = bounds.y;
@@ -1462,15 +1662,18 @@ void GuiLine(Rectangle bounds, const char *text)
GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + 12 + textBounds.width + 4, bounds.y + bounds.height/2, bounds.width - textBounds.width - RAYGUI_LINE_MARGIN_TEXT - RAYGUI_LINE_TEXT_PADDING, 1 }, 0, BLANK, color);
}
//--------------------------------------------------------------------
+
+ return result;
}
// Panel control
-void GuiPanel(Rectangle bounds, const char *text)
+int GuiPanel(Rectangle bounds, const char *text)
{
#if !defined(RAYGUI_PANEL_BORDER_WIDTH)
#define RAYGUI_PANEL_BORDER_WIDTH 1
#endif
+ int result = 0;
GuiState state = guiState;
// Text will be drawn as a header bar (if provided)
@@ -1481,16 +1684,18 @@ void GuiPanel(Rectangle bounds, const char *text)
{
// Move panel bounds after the header bar
bounds.y += (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1;
- bounds.height -= (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + 1;
+ bounds.height -= (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1;
}
// Draw control
//--------------------------------------------------------------------
if (text != NULL) GuiStatusBar(statusBar, text); // Draw panel header as status bar
- GuiDrawRectangle(bounds, RAYGUI_PANEL_BORDER_WIDTH, Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED: LINE_COLOR)), guiAlpha),
- Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BASE_COLOR_DISABLED : BACKGROUND_COLOR)), guiAlpha));
+ GuiDrawRectangle(bounds, RAYGUI_PANEL_BORDER_WIDTH, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED: LINE_COLOR)),
+ GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BASE_COLOR_DISABLED : BACKGROUND_COLOR)));
//--------------------------------------------------------------------
+
+ return result;
}
// Tab Bar control
@@ -1499,9 +1704,9 @@ int GuiTabBar(Rectangle bounds, const char **text, int count, int *active)
{
#define RAYGUI_TABBAR_ITEM_WIDTH 160
- GuiState state = guiState;
+ int result = -1;
+ //GuiState state = guiState;
- int closing = -1;
Rectangle tabBounds = { bounds.x, bounds.y, RAYGUI_TABBAR_ITEM_WIDTH, bounds.height };
if (*active < 0) *active = 0;
@@ -1511,6 +1716,8 @@ int GuiTabBar(Rectangle bounds, const char **text, int count, int *active)
offsetX = (*active + 2)*RAYGUI_TABBAR_ITEM_WIDTH - GetScreenWidth();
if (offsetX < 0) offsetX = 0;
+ bool toggle = false; // Required for individual toggles
+
// Draw control
//--------------------------------------------------------------------
for (int i = 0; i < count; i++)
@@ -1524,21 +1731,32 @@ int GuiTabBar(Rectangle bounds, const char **text, int count, int *active)
int textPadding = GuiGetStyle(TOGGLE, TEXT_PADDING);
GuiSetStyle(TOGGLE, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
GuiSetStyle(TOGGLE, TEXT_PADDING, 8);
- if (i == *active) GuiToggle(tabBounds, GuiIconText(12, text[i]), true);
- else if (GuiToggle(tabBounds, GuiIconText(12, text[i]), false) == true) *active = i;
+
+ if (i == (*active))
+ {
+ toggle = true;
+ GuiToggle(tabBounds, GuiIconText(12, text[i]), &toggle);
+ }
+ else
+ {
+ toggle = false;
+ GuiToggle(tabBounds, GuiIconText(12, text[i]), &toggle);
+ if (toggle) *active = i;
+ }
+
GuiSetStyle(TOGGLE, TEXT_PADDING, textPadding);
GuiSetStyle(TOGGLE, TEXT_ALIGNMENT, textAlignment);
// Draw tab close button
- // NOTE: Only draw close button for curren tab: if (CheckCollisionPointRec(mousePoint, tabBounds))
+ // NOTE: Only draw close button for current tab: if (CheckCollisionPointRec(mousePosition, tabBounds))
int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH);
int tempTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT);
GuiSetStyle(BUTTON, BORDER_WIDTH, 1);
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
#if defined(RAYGUI_NO_ICONS)
- if (GuiButton(closeButtonRec, "x")) closing = i;
+ if (GuiButton(RAYGUI_CLITERAL(Rectangle){ tabBounds.x + tabBounds.width - 14 - 5, tabBounds.y + 5, 14, 14 }, "x")) result = i;
#else
- if (GuiButton(RAYGUI_CLITERAL(Rectangle){ tabBounds.x + tabBounds.width - 14 - 5, tabBounds.y + 5, 14, 14 }, GuiIconText(ICON_CROSS_SMALL, NULL))) closing = i;
+ if (GuiButton(RAYGUI_CLITERAL(Rectangle){ tabBounds.x + tabBounds.width - 14 - 5, tabBounds.y + 5, 14, 14 }, GuiIconText(ICON_CROSS_SMALL, NULL))) result = i;
#endif
GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth);
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment);
@@ -1549,13 +1767,21 @@ int GuiTabBar(Rectangle bounds, const char **text, int count, int *active)
GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, 1 }, 0, BLANK, GetColor(GuiGetStyle(TOGGLE, BORDER_COLOR_NORMAL)));
//--------------------------------------------------------------------
- return closing; // Return closing tab requested
+ return result; // Return as result the current TAB closing requested
}
// Scroll Panel control
-Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll)
+int GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll, Rectangle *view)
{
+ #define RAYGUI_MIN_SCROLLBAR_WIDTH 40
+ #define RAYGUI_MIN_SCROLLBAR_HEIGHT 40
+
+ int result = 0;
GuiState state = guiState;
+ float mouseWheelSpeed = 20.0f; // Default movement speed with mouse wheel
+
+ Rectangle temp = { 0 };
+ if (view == NULL) view = &temp;
Vector2 scrollPos = { 0.0f, 0.0f };
if (scroll != NULL) scrollPos = *scroll;
@@ -1580,17 +1806,40 @@ Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content,
int horizontalScrollBarWidth = hasHorizontalScrollBar? GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) : 0;
int verticalScrollBarWidth = hasVerticalScrollBar? GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) : 0;
- Rectangle horizontalScrollBar = { (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + verticalScrollBarWidth : (float)bounds.x) + GuiGetStyle(DEFAULT, BORDER_WIDTH), (float)bounds.y + bounds.height - horizontalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH), (float)bounds.width - verticalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH), (float)horizontalScrollBarWidth };
- Rectangle verticalScrollBar = { (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH) : (float)bounds.x + bounds.width - verticalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH)), (float)bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), (float)verticalScrollBarWidth, (float)bounds.height - horizontalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) };
+ Rectangle horizontalScrollBar = {
+ (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + verticalScrollBarWidth : (float)bounds.x) + GuiGetStyle(DEFAULT, BORDER_WIDTH),
+ (float)bounds.y + bounds.height - horizontalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH),
+ (float)bounds.width - verticalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH),
+ (float)horizontalScrollBarWidth
+ };
+ Rectangle verticalScrollBar = {
+ (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH) : (float)bounds.x + bounds.width - verticalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH)),
+ (float)bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH),
+ (float)verticalScrollBarWidth,
+ (float)bounds.height - horizontalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH)
+ };
+
+ // Make sure scroll bars have a minimum width/height
+ // NOTE: If content >>> bounds, size could be very small or even 0
+ if (horizontalScrollBar.width < RAYGUI_MIN_SCROLLBAR_WIDTH)
+ {
+ horizontalScrollBar.width = RAYGUI_MIN_SCROLLBAR_WIDTH;
+ mouseWheelSpeed = 30.0f; // TODO: Calculate speed increment based on content.height vs bounds.height
+ }
+ if (verticalScrollBar.height < RAYGUI_MIN_SCROLLBAR_HEIGHT)
+ {
+ verticalScrollBar.height = RAYGUI_MIN_SCROLLBAR_HEIGHT;
+ mouseWheelSpeed = 30.0f; // TODO: Calculate speed increment based on content.width vs bounds.width
+ }
// Calculate view area (area without the scrollbars)
- Rectangle view = (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)?
+ *view = (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)?
RAYGUI_CLITERAL(Rectangle){ bounds.x + verticalScrollBarWidth + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth, bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth } :
RAYGUI_CLITERAL(Rectangle){ bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth, bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth };
// Clip view area to the actual content size
- if (view.width > content.width) view.width = content.width;
- if (view.height > content.height) view.height = content.height;
+ if (view->width > content.width) view->width = content.width;
+ if (view->height > content.height) view->height = content.height;
float horizontalMin = hasHorizontalScrollBar? ((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)-verticalScrollBarWidth : 0) - (float)GuiGetStyle(DEFAULT, BORDER_WIDTH) : (((float)GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)-verticalScrollBarWidth : 0) - (float)GuiGetStyle(DEFAULT, BORDER_WIDTH);
float horizontalMax = hasHorizontalScrollBar? content.width - bounds.width + (float)verticalScrollBarWidth + GuiGetStyle(DEFAULT, BORDER_WIDTH) - (((float)GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)verticalScrollBarWidth : 0) : (float)-GuiGetStyle(DEFAULT, BORDER_WIDTH);
@@ -1624,9 +1873,9 @@ Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content,
#endif
float wheelMove = GetMouseWheelMove();
- // Horizontal scroll (Shift + Mouse wheel)
- if (hasHorizontalScrollBar && (IsKeyDown(KEY_LEFT_CONTROL) || IsKeyDown(KEY_RIGHT_SHIFT))) scrollPos.x += wheelMove*20;
- else scrollPos.y += wheelMove*20; // Vertical scroll
+ // Horizontal and vertical scrolling with mouse wheel
+ if (hasHorizontalScrollBar && (IsKeyDown(KEY_LEFT_CONTROL) || IsKeyDown(KEY_LEFT_SHIFT))) scrollPos.x += wheelMove*mouseWheelSpeed;
+ else scrollPos.y += wheelMove*mouseWheelSpeed; // Vertical scroll
}
}
@@ -1641,7 +1890,7 @@ Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content,
//--------------------------------------------------------------------
if (text != NULL) GuiStatusBar(statusBar, text); // Draw panel header as status bar
- GuiDrawRectangle(bounds, 0, BLANK, Fade(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)), guiAlpha)); // Draw background
+ GuiDrawRectangle(bounds, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background
// Save size of the scrollbar slider
const int slider = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE);
@@ -1668,11 +1917,11 @@ Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content,
if (hasHorizontalScrollBar && hasVerticalScrollBar)
{
Rectangle corner = { (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH) + 2) : (horizontalScrollBar.x + horizontalScrollBar.width + 2), verticalScrollBar.y + verticalScrollBar.height + 2, (float)horizontalScrollBarWidth - 4, (float)verticalScrollBarWidth - 4 };
- GuiDrawRectangle(corner, 0, BLANK, Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT + (state*3))), guiAlpha));
+ GuiDrawRectangle(corner, 0, BLANK, GetColor(GuiGetStyle(LISTVIEW, TEXT + (state*3))));
}
// Draw scrollbar lines depending on current state
- GuiDrawRectangle(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + (state*3))), guiAlpha), BLANK);
+ GuiDrawRectangle(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + (state*3))), BLANK);
// Set scrollbar slider size back to the way it was before
GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, slider);
@@ -1680,12 +1929,13 @@ Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content,
if (scroll != NULL) *scroll = scrollPos;
- return view;
+ return result;
}
// Label control
-void GuiLabel(Rectangle bounds, const char *text)
+int GuiLabel(Rectangle bounds, const char *text)
{
+ int result = 0;
GuiState state = guiState;
// Update control
@@ -1695,19 +1945,21 @@ void GuiLabel(Rectangle bounds, const char *text)
// Draw control
//--------------------------------------------------------------------
- GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha));
+ GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LABEL, TEXT + (state*3))));
//--------------------------------------------------------------------
+
+ return result;
}
// Button control, returns true when clicked
-bool GuiButton(Rectangle bounds, const char *text)
+int GuiButton(Rectangle bounds, const char *text)
{
+ int result = 0;
GuiState state = guiState;
- bool pressed = false;
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -1717,35 +1969,35 @@ bool GuiButton(Rectangle bounds, const char *text)
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = STATE_PRESSED;
else state = STATE_FOCUSED;
- if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) pressed = true;
+ if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) result = 1;
}
}
//--------------------------------------------------------------------
// Draw control
//--------------------------------------------------------------------
- GuiDrawRectangle(bounds, GuiGetStyle(BUTTON, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(BUTTON, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(BUTTON, BASE + (state*3))), guiAlpha));
- GuiDrawText(text, GetTextBounds(BUTTON, bounds), GuiGetStyle(BUTTON, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(BUTTON, TEXT + (state*3))), guiAlpha));
+ GuiDrawRectangle(bounds, GuiGetStyle(BUTTON, BORDER_WIDTH), GetColor(GuiGetStyle(BUTTON, BORDER + (state*3))), GetColor(GuiGetStyle(BUTTON, BASE + (state*3))));
+ GuiDrawText(text, GetTextBounds(BUTTON, bounds), GuiGetStyle(BUTTON, TEXT_ALIGNMENT), GetColor(GuiGetStyle(BUTTON, TEXT + (state*3))));
if (state == STATE_FOCUSED) GuiTooltip(bounds);
//------------------------------------------------------------------
- return pressed;
+ return result; // Button pressed: result = 1
}
// Label button control
-bool GuiLabelButton(Rectangle bounds, const char *text)
+int GuiLabelButton(Rectangle bounds, const char *text)
{
GuiState state = guiState;
bool pressed = false;
// NOTE: We force bounds.width to be all text
float textWidth = (float)GetTextWidth(text);
- if (bounds.width < textWidth) bounds.width = textWidth;
+ if ((bounds.width - 2*GuiGetStyle(LABEL, BORDER_WIDTH) - 2*GuiGetStyle(LABEL, TEXT_PADDING)) < textWidth) bounds.width = textWidth + 2*GuiGetStyle(LABEL, BORDER_WIDTH) + 2*GuiGetStyle(LABEL, TEXT_PADDING) + 2;
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -1762,20 +2014,24 @@ bool GuiLabelButton(Rectangle bounds, const char *text)
// Draw control
//--------------------------------------------------------------------
- GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha));
+ GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LABEL, TEXT + (state*3))));
//--------------------------------------------------------------------
return pressed;
}
// Toggle Button control, returns true when active
-bool GuiToggle(Rectangle bounds, const char *text, bool active)
+int GuiToggle(Rectangle bounds, const char *text, bool *active)
{
+ int result = 0;
GuiState state = guiState;
+ bool temp = false;
+ if (active == NULL) active = &temp;
+
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -1786,7 +2042,7 @@ bool GuiToggle(Rectangle bounds, const char *text, bool active)
else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON))
{
state = STATE_NORMAL;
- active = !active;
+ *active = !(*active);
}
else state = STATE_FOCUSED;
}
@@ -1797,30 +2053,36 @@ bool GuiToggle(Rectangle bounds, const char *text, bool active)
//--------------------------------------------------------------------
if (state == STATE_NORMAL)
{
- GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TOGGLE, (active? BORDER_COLOR_PRESSED : (BORDER + state*3)))), guiAlpha), Fade(GetColor(GuiGetStyle(TOGGLE, (active? BASE_COLOR_PRESSED : (BASE + state*3)))), guiAlpha));
- GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(TOGGLE, (active? TEXT_COLOR_PRESSED : (TEXT + state*3)))), guiAlpha));
+ GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, ((*active)? BORDER_COLOR_PRESSED : (BORDER + state*3)))), GetColor(GuiGetStyle(TOGGLE, ((*active)? BASE_COLOR_PRESSED : (BASE + state*3)))));
+ GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TOGGLE, ((*active)? TEXT_COLOR_PRESSED : (TEXT + state*3)))));
}
else
{
- GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TOGGLE, BORDER + state*3)), guiAlpha), Fade(GetColor(GuiGetStyle(TOGGLE, BASE + state*3)), guiAlpha));
- GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(TOGGLE, TEXT + state*3)), guiAlpha));
+ GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, BORDER + state*3)), GetColor(GuiGetStyle(TOGGLE, BASE + state*3)));
+ GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TOGGLE, TEXT + state*3)));
}
if (state == STATE_FOCUSED) GuiTooltip(bounds);
//--------------------------------------------------------------------
- return active;
+ return result;
}
// Toggle Group control, returns toggled button codepointIndex
-int GuiToggleGroup(Rectangle bounds, const char *text, int active)
+int GuiToggleGroup(Rectangle bounds, const char *text, int *active)
{
#if !defined(RAYGUI_TOGGLEGROUP_MAX_ITEMS)
#define RAYGUI_TOGGLEGROUP_MAX_ITEMS 32
#endif
+ int result = 0;
float initBoundsX = bounds.x;
+ int temp = 0;
+ if (active == NULL) active = &temp;
+
+ bool toggle = false; // Required for individual toggles
+
// Get substrings items from text (items pointers)
int rows[RAYGUI_TOGGLEGROUP_MAX_ITEMS] = { 0 };
int itemCount = 0;
@@ -1837,26 +2099,111 @@ int GuiToggleGroup(Rectangle bounds, const char *text, int active)
prevRow = rows[i];
}
- if (i == active) GuiToggle(bounds, items[i], true);
- else if (GuiToggle(bounds, items[i], false) == true) active = i;
+ if (i == (*active))
+ {
+ toggle = true;
+ GuiToggle(bounds, items[i], &toggle);
+ }
+ else
+ {
+ toggle = false;
+ GuiToggle(bounds, items[i], &toggle);
+ if (toggle) *active = i;
+ }
bounds.x += (bounds.width + GuiGetStyle(TOGGLE, GROUP_PADDING));
}
- return active;
+ return result;
}
-// Check Box control, returns true when active
-bool GuiCheckBox(Rectangle bounds, const char *text, bool checked)
+// Toggle Slider control extended, returns true when clicked
+int GuiToggleSlider(Rectangle bounds, const char *text, int *active)
{
+ int result = 0;
GuiState state = guiState;
- Rectangle textBounds = { 0 };
+ int temp = 0;
+ if (active == NULL) active = &temp;
+
+ //bool toggle = false; // Required for individual toggles
+
+ // Get substrings items from text (items pointers)
+ int itemCount = 0;
+ const char **items = GuiTextSplit(text, ';', &itemCount, NULL);
+
+ Rectangle slider = {
+ 0, // Calculated later depending on the active toggle
+ bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING),
+ (bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - (itemCount + 1)*GuiGetStyle(SLIDER, SLIDER_PADDING))/itemCount,
+ bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING) };
+
+ // Update control
+ //--------------------------------------------------------------------
+ if ((state != STATE_DISABLED) && !guiLocked)
+ {
+ Vector2 mousePoint = GetMousePosition();
+
+ if (CheckCollisionPointRec(mousePoint, bounds))
+ {
+ if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = STATE_PRESSED;
+ else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON))
+ {
+ state = STATE_PRESSED;
+ (*active)++;
+ result = 1;
+ }
+ else state = STATE_FOCUSED;
+ }
+
+ if ((*active) && (state != STATE_FOCUSED)) state = STATE_PRESSED;
+ }
+
+ if (*active >= itemCount) *active = 0;
+ slider.x = bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH) + (*active + 1)*GuiGetStyle(SLIDER, SLIDER_PADDING) + (*active)*slider.width;
+ //--------------------------------------------------------------------
+
+ // Draw control
+ //--------------------------------------------------------------------
+ GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, BORDER + (state*3))),
+ GetColor(GuiGetStyle(TOGGLE, BASE_COLOR_NORMAL)));
+
+ // Draw internal slider
+ if (state == STATE_NORMAL) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)));
+ else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_FOCUSED)));
+ else if (state == STATE_PRESSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)));
+ // Draw text in slider
if (text != NULL)
{
+ Rectangle textBounds = { 0 };
textBounds.width = (float)GetTextWidth(text);
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
+ textBounds.x = slider.x + slider.width/2 - textBounds.width/2;
+ textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
+
+ GuiDrawText(items[*active], textBounds, GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(TOGGLE, TEXT + (state*3))), guiAlpha));
+ }
+ //--------------------------------------------------------------------
+
+ return result;
+}
+
+// Check Box control, returns 1 when state changed
+int GuiCheckBox(Rectangle bounds, const char *text, bool *checked)
+{
+ int result = 0;
+ GuiState state = guiState;
+
+ bool temp = false;
+ if (checked == NULL) checked = &temp;
+
+ Rectangle textBounds = { 0 };
+
+ if (text != NULL)
+ {
+ textBounds.width = (float)GetTextWidth(text) + 2;
+ textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
textBounds.x = bounds.x + bounds.width + GuiGetStyle(CHECKBOX, TEXT_PADDING);
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
if (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(CHECKBOX, TEXT_PADDING);
@@ -1864,7 +2211,7 @@ bool GuiCheckBox(Rectangle bounds, const char *text, bool checked)
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -1881,35 +2228,43 @@ bool GuiCheckBox(Rectangle bounds, const char *text, bool checked)
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = STATE_PRESSED;
else state = STATE_FOCUSED;
- if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) checked = !checked;
+ if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON))
+ {
+ *checked = !(*checked);
+ result = 1;
+ }
}
}
//--------------------------------------------------------------------
// Draw control
//--------------------------------------------------------------------
- GuiDrawRectangle(bounds, GuiGetStyle(CHECKBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(CHECKBOX, BORDER + (state*3))), guiAlpha), BLANK);
+ GuiDrawRectangle(bounds, GuiGetStyle(CHECKBOX, BORDER_WIDTH), GetColor(GuiGetStyle(CHECKBOX, BORDER + (state*3))), BLANK);
- if (checked)
+ if (*checked)
{
Rectangle check = { bounds.x + GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING),
bounds.y + GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING),
bounds.width - 2*(GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING)),
bounds.height - 2*(GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING)) };
- GuiDrawRectangle(check, 0, BLANK, Fade(GetColor(GuiGetStyle(CHECKBOX, TEXT + state*3)), guiAlpha));
+ GuiDrawRectangle(check, 0, BLANK, GetColor(GuiGetStyle(CHECKBOX, TEXT + state*3)));
}
- GuiDrawText(text, textBounds, (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha));
+ GuiDrawText(text, textBounds, (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3))));
//--------------------------------------------------------------------
- return checked;
+ return result;
}
// Combo Box control, returns selected item codepointIndex
-int GuiComboBox(Rectangle bounds, const char *text, int active)
+int GuiComboBox(Rectangle bounds, const char *text, int *active)
{
+ int result = 0;
GuiState state = guiState;
+ int temp = 0;
+ if (active == NULL) active = &temp;
+
bounds.width -= (GuiGetStyle(COMBOBOX, COMBO_BUTTON_WIDTH) + GuiGetStyle(COMBOBOX, COMBO_BUTTON_SPACING));
Rectangle selector = { (float)bounds.x + bounds.width + GuiGetStyle(COMBOBOX, COMBO_BUTTON_SPACING),
@@ -1919,12 +2274,12 @@ int GuiComboBox(Rectangle bounds, const char *text, int active)
int itemCount = 0;
const char **items = GuiTextSplit(text, ';', &itemCount, NULL);
- if (active < 0) active = 0;
- else if (active > itemCount - 1) active = itemCount - 1;
+ if (*active < 0) *active = 0;
+ else if (*active > (itemCount - 1)) *active = itemCount - 1;
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked && (itemCount > 1))
+ if ((state != STATE_DISABLED) && !guiLocked && (itemCount > 1) && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -1933,8 +2288,8 @@ int GuiComboBox(Rectangle bounds, const char *text, int active)
{
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
{
- active += 1;
- if (active >= itemCount) active = 0;
+ *active += 1;
+ if (*active >= itemCount) *active = 0; // Cyclic combobox
}
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = STATE_PRESSED;
@@ -1946,8 +2301,8 @@ int GuiComboBox(Rectangle bounds, const char *text, int active)
// Draw control
//--------------------------------------------------------------------
// Draw combo box main
- GuiDrawRectangle(bounds, GuiGetStyle(COMBOBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(COMBOBOX, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(COMBOBOX, BASE + (state*3))), guiAlpha));
- GuiDrawText(items[active], GetTextBounds(COMBOBOX, bounds), GuiGetStyle(COMBOBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(COMBOBOX, TEXT + (state*3))), guiAlpha));
+ GuiDrawRectangle(bounds, GuiGetStyle(COMBOBOX, BORDER_WIDTH), GetColor(GuiGetStyle(COMBOBOX, BORDER + (state*3))), GetColor(GuiGetStyle(COMBOBOX, BASE + (state*3))));
+ GuiDrawText(items[*active], GetTextBounds(COMBOBOX, bounds), GuiGetStyle(COMBOBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(COMBOBOX, TEXT + (state*3))));
// Draw selector using a custom button
// NOTE: BORDER_WIDTH and TEXT_ALIGNMENT forced values
@@ -1956,20 +2311,22 @@ int GuiComboBox(Rectangle bounds, const char *text, int active)
GuiSetStyle(BUTTON, BORDER_WIDTH, 1);
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
- GuiButton(selector, TextFormat("%i/%i", active + 1, itemCount));
+ GuiButton(selector, TextFormat("%i/%i", *active + 1, itemCount));
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign);
GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth);
//--------------------------------------------------------------------
- return active;
+ return result;
}
// Dropdown Box control
// NOTE: Returns mouse click
-bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode)
+int GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode)
{
+ int result = 0;
GuiState state = guiState;
+
int itemSelected = *active;
int itemFocused = -1;
@@ -1982,11 +2339,9 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo
Rectangle itemBounds = bounds;
- bool pressed = false; // Check mouse button pressed
-
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && (editMode || !guiLocked) && (itemCount > 1))
+ if ((state != STATE_DISABLED) && (editMode || !guiLocked) && (itemCount > 1) && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -1997,11 +2352,11 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo
// Check if mouse has been pressed or released outside limits
if (!CheckCollisionPointRec(mousePoint, boundsOpen))
{
- if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) pressed = true;
+ if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) result = 1;
}
// Check if already selected item has been pressed again
- if (CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pressed = true;
+ if (CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) result = 1;
// Check focused and selected item
for (int i = 0; i < itemCount; i++)
@@ -2015,7 +2370,7 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON))
{
itemSelected = i;
- pressed = true; // Item selected, change to editMode = false
+ result = 1; // Item selected
}
break;
}
@@ -2029,7 +2384,7 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo
{
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
{
- pressed = true;
+ result = 1;
state = STATE_PRESSED;
}
else state = STATE_FOCUSED;
@@ -2042,8 +2397,8 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo
//--------------------------------------------------------------------
if (editMode) GuiPanel(boundsOpen, NULL);
- GuiDrawRectangle(bounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BORDER + state*3)), guiAlpha), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BASE + state*3)), guiAlpha));
- GuiDrawText(items[itemSelected], GetTextBounds(DEFAULT, bounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + state*3)), guiAlpha));
+ GuiDrawRectangle(bounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER + state*3)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE + state*3)));
+ GuiDrawText(items[itemSelected], GetTextBounds(DROPDOWNBOX, bounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + state*3)));
if (editMode)
{
@@ -2055,102 +2410,284 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo
if (i == itemSelected)
{
- GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_PRESSED)), guiAlpha), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_PRESSED)), guiAlpha));
- GuiDrawText(items[i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_PRESSED)), guiAlpha));
+ GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_PRESSED)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_PRESSED)));
+ GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_PRESSED)));
}
else if (i == itemFocused)
{
- GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_FOCUSED)), guiAlpha), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_FOCUSED)), guiAlpha));
- GuiDrawText(items[i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_FOCUSED)), guiAlpha));
+ GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_FOCUSED)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_FOCUSED)));
+ GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_FOCUSED)));
}
- else GuiDrawText(items[i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_NORMAL)), guiAlpha));
+ else GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_NORMAL)));
}
}
// Draw arrows (using icon if available)
#if defined(RAYGUI_NO_ICONS)
GuiDrawText("v", RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_PADDING), bounds.y + bounds.height/2 - 2, 10, 10 },
- TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha));
+ TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))));
#else
GuiDrawText("#120#", RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_PADDING), bounds.y + bounds.height/2 - 6, 10, 10 },
- TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha)); // ICON_ARROW_DOWN_FILL
+ TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); // ICON_ARROW_DOWN_FILL
#endif
//--------------------------------------------------------------------
*active = itemSelected;
- return pressed;
+
+ // TODO: Use result to return more internal states: mouse-press out-of-bounds, mouse-press over selected-item...
+ return result; // Mouse click: result = 1
}
-// Text Box control, updates input text
-// NOTE 2: Returns if KEY_ENTER pressed (useful for data validation)
-bool GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode)
+// Text Box control
+// NOTE: Returns true on ENTER pressed (useful for data validation)
+int GuiTextBox(Rectangle bounds, char *text, int bufferSize, bool editMode)
{
+ #if !defined(RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN)
+ #define RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN 40 // Frames to wait for autocursor movement
+ #endif
+ #if !defined(RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY)
+ #define RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY 1 // Frames delay for autocursor movement
+ #endif
+
+ int result = 0;
GuiState state = guiState;
- Rectangle textBounds = GetTextBounds(TEXTBOX, bounds);
- bool pressed = false;
- int textWidth = GetTextWidth(text);
+ bool multiline = false; // TODO: Consider multiline text input
+ int wrapMode = GuiGetStyle(DEFAULT, TEXT_WRAP_MODE);
+ Rectangle textBounds = GetTextBounds(TEXTBOX, bounds);
+ int textWidth = GetTextWidth(text) - GetTextWidth(text + textBoxCursorIndex);
+ int textIndexOffset = 0; // Text index offset to start drawing in the box
+
+ // Cursor rectangle
+ // NOTE: Position X value should be updated
Rectangle cursor = {
- bounds.x + GuiGetStyle(TEXTBOX, TEXT_PADDING) + textWidth + 2,
- bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE),
- 4,
+ textBounds.x + textWidth + GuiGetStyle(DEFAULT, TEXT_SPACING),
+ textBounds.y + textBounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE),
+ 2,
(float)GuiGetStyle(DEFAULT, TEXT_SIZE)*2
};
if (cursor.height >= bounds.height) cursor.height = bounds.height - GuiGetStyle(TEXTBOX, BORDER_WIDTH)*2;
if (cursor.y < (bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH))) cursor.y = bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH);
+ // Mouse cursor rectangle
+ // NOTE: Initialized outside of screen
+ Rectangle mouseCursor = cursor;
+ mouseCursor.x = -1;
+ mouseCursor.width = 1;
+
+ // Auto-cursor movement logic
+ // NOTE: Cursor moves automatically when key down after some time
+ if (IsKeyDown(KEY_LEFT) || IsKeyDown(KEY_RIGHT) || IsKeyDown(KEY_UP) || IsKeyDown(KEY_DOWN) || IsKeyDown(KEY_BACKSPACE) || IsKeyDown(KEY_DELETE)) autoCursorCooldownCounter++;
+ else
+ {
+ autoCursorCooldownCounter = 0; // GLOBAL: Cursor cooldown counter
+ autoCursorDelayCounter = 0; // GLOBAL: Cursor delay counter
+ }
+
+ // Blink-cursor frame counter
+ //if (!autoCursorMode) blinkCursorFrameCounter++;
+ //else blinkCursorFrameCounter = 0;
+
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ // WARNING: Text editing is only supported under certain conditions:
+ if ((state != STATE_DISABLED) && // Control not disabled
+ !GuiGetStyle(TEXTBOX, TEXT_READONLY) && // TextBox not on read-only mode
+ !guiLocked && // Gui not locked
+ !guiSliderDragging && // No gui slider on dragging
+ (wrapMode == TEXT_WRAP_NONE)) // No wrap mode
{
- Vector2 mousePoint = GetMousePosition();
+ Vector2 mousePosition = GetMousePosition();
if (editMode)
{
state = STATE_PRESSED;
- int key = GetCharPressed(); // Returns codepoint as Unicode
- int keyCount = (int)strlen(text);
- int byteSize = 0;
- const char *textUTF8 = CodepointToUTF8(key, &byteSize);
+ // If text does not fit in the textbox and current cursor position is out of bounds,
+ // we add an index offset to text for drawing only what requires depending on cursor
+ while (textWidth >= textBounds.width)
+ {
+ int nextCodepointSize = 0;
+ GetCodepointNext(text + textIndexOffset, &nextCodepointSize);
+
+ textIndexOffset += nextCodepointSize;
+
+ textWidth = GetTextWidth(text + textIndexOffset) - GetTextWidth(text + textBoxCursorIndex);
+ }
+
+ int textLength = (int)strlen(text); // Get current text length
+ int codepoint = GetCharPressed(); // Get Unicode codepoint
+ if (multiline && IsKeyPressed(KEY_ENTER)) codepoint = (int)'\n';
+
+ if (textBoxCursorIndex > textLength) textBoxCursorIndex = textLength;
+
+ // Encode codepoint as UTF-8
+ int codepointSize = 0;
+ const char *charEncoded = CodepointToUTF8(codepoint, &codepointSize);
+
+ // Add codepoint to text, at current cursor position
+ // NOTE: Make sure we do not overflow buffer size
+ if (((multiline && (codepoint == (int)'\n')) || (codepoint >= 32)) && ((textLength + codepointSize) < bufferSize))
+ {
+ // Move forward data from cursor position
+ for (int i = (textLength + codepointSize); i > textBoxCursorIndex; i--) text[i] = text[i - codepointSize];
+
+ // Add new codepoint in current cursor position
+ for (int i = 0; i < codepointSize; i++) text[textBoxCursorIndex + i] = charEncoded[i];
+
+ textBoxCursorIndex += codepointSize;
+ textLength += codepointSize;
+
+ // Make sure text last character is EOL
+ text[textLength] = '\0';
+ }
+
+ // Move cursor to start
+ if ((textLength > 0) && IsKeyPressed(KEY_HOME)) textBoxCursorIndex = 0;
+
+ // Move cursor to end
+ if ((textLength > textBoxCursorIndex) && IsKeyPressed(KEY_END)) textBoxCursorIndex = textLength;
+
+ // Delete codepoint from text, after current cursor position
+ if ((textLength > textBoxCursorIndex) && (IsKeyPressed(KEY_DELETE) || (IsKeyDown(KEY_DELETE) && (autoCursorCooldownCounter >= RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN))))
+ {
+ autoCursorDelayCounter++;
+
+ if (IsKeyPressed(KEY_DELETE) || (autoCursorDelayCounter%RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0) // Delay every movement some frames
+ {
+ int nextCodepointSize = 0;
+ GetCodepointNext(text + textBoxCursorIndex, &nextCodepointSize);
+
+ // Move backward text from cursor position
+ for (int i = textBoxCursorIndex; i < textLength; i++) text[i] = text[i + nextCodepointSize];
+
+ textLength -= codepointSize;
- // Only allow keys in range [32..125]
- if ((keyCount + byteSize) < textSize)
+ // Make sure text last character is EOL
+ text[textLength] = '\0';
+ }
+ }
+
+ // Delete codepoint from text, before current cursor position
+ if ((textLength > 0) && (IsKeyPressed(KEY_BACKSPACE) || (IsKeyDown(KEY_BACKSPACE) && (autoCursorCooldownCounter >= RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN))))
{
- //float maxWidth = (bounds.width - (GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING)*2));
+ autoCursorDelayCounter++;
- if (key >= 32)
+ if (IsKeyPressed(KEY_BACKSPACE) || (autoCursorDelayCounter%RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0) // Delay every movement some frames
{
- for (int i = 0; i < byteSize; i++)
+ int prevCodepointSize = 0;
+ GetCodepointPrevious(text + textBoxCursorIndex, &prevCodepointSize);
+
+ // Move backward text from cursor position
+ for (int i = (textBoxCursorIndex - prevCodepointSize); i < textLength; i++) text[i] = text[i + prevCodepointSize];
+
+ // Prevent cursor index from decrementing past 0
+ if (textBoxCursorIndex > 0)
{
- text[keyCount] = textUTF8[i];
- keyCount++;
+ textBoxCursorIndex -= codepointSize;
+ textLength -= codepointSize;
}
- text[keyCount] = '\0';
+ // Make sure text last character is EOL
+ text[textLength] = '\0';
}
}
- // Delete text
- if (keyCount > 0)
+ // Move cursor position with keys
+ if (IsKeyPressed(KEY_LEFT) || (IsKeyDown(KEY_LEFT) && (autoCursorCooldownCounter > RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN)))
{
- if (IsKeyPressed(KEY_BACKSPACE))
+ autoCursorDelayCounter++;
+
+ if (IsKeyPressed(KEY_LEFT) || (autoCursorDelayCounter%RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0) // Delay every movement some frames
+ {
+ int prevCodepointSize = 0;
+ GetCodepointPrevious(text + textBoxCursorIndex, &prevCodepointSize);
+
+ if (textBoxCursorIndex >= prevCodepointSize) textBoxCursorIndex -= prevCodepointSize;
+ }
+ }
+ else if (IsKeyPressed(KEY_RIGHT) || (IsKeyDown(KEY_RIGHT) && (autoCursorCooldownCounter > RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN)))
+ {
+ autoCursorDelayCounter++;
+
+ if (IsKeyPressed(KEY_RIGHT) || (autoCursorDelayCounter%RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0) // Delay every movement some frames
+ {
+ int nextCodepointSize = 0;
+ GetCodepointNext(text + textBoxCursorIndex, &nextCodepointSize);
+
+ if ((textBoxCursorIndex + nextCodepointSize) <= textLength) textBoxCursorIndex += nextCodepointSize;
+ }
+ }
+
+ // Move cursor position with mouse
+ if (CheckCollisionPointRec(mousePosition, textBounds)) // Mouse hover text
+ {
+ float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/(float)guiFont.baseSize;
+ int codepointIndex = 0;
+ float glyphWidth = 0.0f;
+ float widthToMouseX = 0;
+ int mouseCursorIndex = 0;
+
+ for (int i = textIndexOffset; i < textLength; i++)
+ {
+ codepoint = GetCodepointNext(&text[i], &codepointSize);
+ codepointIndex = GetGlyphIndex(guiFont, codepoint);
+
+ if (guiFont.glyphs[codepointIndex].advanceX == 0) glyphWidth = ((float)guiFont.recs[codepointIndex].width*scaleFactor);
+ else glyphWidth = ((float)guiFont.glyphs[codepointIndex].advanceX*scaleFactor);
+
+ if (mousePosition.x <= (textBounds.x + (widthToMouseX + glyphWidth/2)))
+ {
+ mouseCursor.x = textBounds.x + widthToMouseX;
+ mouseCursorIndex = i;
+ break;
+ }
+
+ widthToMouseX += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
+ }
+
+ // Check if mouse cursor is at the last position
+ int textEndWidth = GetTextWidth(text + textIndexOffset);
+ if (GetMousePosition().x >= (textBounds.x + textEndWidth - glyphWidth/2))
+ {
+ mouseCursor.x = textBounds.x + textEndWidth;
+ mouseCursorIndex = (int)strlen(text);
+ }
+
+ // Place cursor at required index on mouse click
+ if ((mouseCursor.x >= 0) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
{
- while ((keyCount > 0) && ((text[--keyCount] & 0xc0) == 0x80));
- text[keyCount] = '\0';
+ cursor.x = mouseCursor.x;
+ textBoxCursorIndex = mouseCursorIndex;
}
}
+ else mouseCursor.x = -1;
- if (IsKeyPressed(KEY_ENTER) || (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON))) pressed = true;
+ // Recalculate cursor position.y depending on textBoxCursorIndex
+ cursor.x = bounds.x + GuiGetStyle(TEXTBOX, TEXT_PADDING) + GetTextWidth(text + textIndexOffset) - GetTextWidth(text + textBoxCursorIndex) + GuiGetStyle(DEFAULT, TEXT_SPACING);
+ //if (multiline) cursor.y = GetTextLines()
+
+ // Finish text editing on ENTER or mouse click outside bounds
+ if ((!multiline && IsKeyPressed(KEY_ENTER)) ||
+ (!CheckCollisionPointRec(mousePosition, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)))
+ {
+ textBoxCursorIndex = 0; // GLOBAL: Reset the shared cursor index
+ result = 1;
+ }
}
else
{
- if (CheckCollisionPointRec(mousePoint, bounds))
+ if (CheckCollisionPointRec(mousePosition, bounds))
{
state = STATE_FOCUSED;
- if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pressed = true;
+
+ if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
+ {
+ textBoxCursorIndex = (int)strlen(text); // GLOBAL: Place cursor index to the end of current text
+ result = 1;
+ }
}
}
}
@@ -2160,44 +2697,61 @@ bool GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode)
//--------------------------------------------------------------------
if (state == STATE_PRESSED)
{
- GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED)), guiAlpha));
+ GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED)));
}
else if (state == STATE_DISABLED)
{
- GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_DISABLED)), guiAlpha));
- }
- else GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), BLANK);
-
- if (editMode)
- {
- // In case we edit and text does not fit in the textbox,
- // we move text pointer to a position it fits inside the text box
- while ((textWidth >= textBounds.width) && (text[0] != '\0'))
- {
- int codepointSize = 0;
- GetCodepointNext(text, &codepointSize);
- text += codepointSize;
- textWidth = GetTextWidth(text);
- cursor.x = textBounds.x + textWidth + 2;
- }
+ GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_DISABLED)));
}
+ else GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), BLANK);
- GuiDrawText(text, textBounds, GuiGetStyle(TEXTBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(TEXTBOX, TEXT + (state*3))), guiAlpha));
+ // Draw text considering index offset if required
+ // NOTE: Text index offset depends on cursor position
+ GuiDrawText(text + textIndexOffset, textBounds, GuiGetStyle(TEXTBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TEXTBOX, TEXT + (state*3))));
// Draw cursor
- if (editMode) GuiDrawRectangle(cursor, 0, BLANK, Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED)), guiAlpha));
+ if (editMode && !GuiGetStyle(TEXTBOX, TEXT_READONLY))
+ {
+ //if (autoCursorMode || ((blinkCursorFrameCounter/40)%2 == 0))
+ GuiDrawRectangle(cursor, 0, BLANK, GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED)));
+
+ // Draw mouse position cursor (if required)
+ if (mouseCursor.x >= 0) GuiDrawRectangle(mouseCursor, 0, BLANK, GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED)));
+ }
else if (state == STATE_FOCUSED) GuiTooltip(bounds);
//--------------------------------------------------------------------
+ return result; // Mouse button pressed: result = 1
+}
+
+/*
+// Text Box control with multiple lines and word-wrap
+// NOTE: This text-box is readonly, no editing supported by default
+bool GuiTextBoxMulti(Rectangle bounds, char *text, int bufferSize, bool editMode)
+{
+ bool pressed = false;
+
+ GuiSetStyle(TEXTBOX, TEXT_READONLY, 1);
+ GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_WORD); // WARNING: If wrap mode enabled, text editing is not supported
+ GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_TOP);
+
+ // TODO: Implement methods to calculate cursor position properly
+ pressed = GuiTextBox(bounds, text, bufferSize, editMode);
+
+ GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE);
+ GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_NONE);
+ GuiSetStyle(TEXTBOX, TEXT_READONLY, 0);
+
return pressed;
}
+*/
// Spinner control, returns selected value
-bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode)
+int GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode)
{
+ int result = 1;
GuiState state = guiState;
- bool pressed = false;
int tempValue = *value;
Rectangle spinner = { bounds.x + GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH) + GuiGetStyle(SPINNER, SPIN_BUTTON_SPACING), bounds.y,
@@ -2208,7 +2762,7 @@ bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, in
Rectangle textBounds = { 0 };
if (text != NULL)
{
- textBounds.width = (float)GetTextWidth(text);
+ textBounds.width = (float)GetTextWidth(text) + 2;
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
textBounds.x = bounds.x + bounds.width + GuiGetStyle(SPINNER, TEXT_PADDING);
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
@@ -2217,7 +2771,7 @@ bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, in
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -2246,8 +2800,7 @@ bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, in
// Draw control
//--------------------------------------------------------------------
- // TODO: Set Spinner properties for ValueBox
- pressed = GuiValueBox(spinner, NULL, &tempValue, minValue, maxValue, editMode);
+ result = GuiValueBox(spinner, NULL, &tempValue, minValue, maxValue, editMode);
// Draw value selector custom buttons
// NOTE: BORDER_WIDTH and TEXT_ALIGNMENT forced values
@@ -2260,23 +2813,23 @@ bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, in
GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth);
// Draw text label if provided
- GuiDrawText(text, textBounds, (GuiGetStyle(SPINNER, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha));
+ GuiDrawText(text, textBounds, (GuiGetStyle(SPINNER, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3))));
//--------------------------------------------------------------------
*value = tempValue;
- return pressed;
+ return result;
}
// Value Box control, updates input text with numbers
// NOTE: Requires static variables: frameCounter
-bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode)
+int GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode)
{
#if !defined(RAYGUI_VALUEBOX_MAX_CHARS)
#define RAYGUI_VALUEBOX_MAX_CHARS 32
#endif
+ int result = 0;
GuiState state = guiState;
- bool pressed = false;
char textValue[RAYGUI_VALUEBOX_MAX_CHARS + 1] = "\0";
sprintf(textValue, "%i", *value);
@@ -2284,7 +2837,7 @@ bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, i
Rectangle textBounds = { 0 };
if (text != NULL)
{
- textBounds.width = (float)GetTextWidth(text);
+ textBounds.width = (float)GetTextWidth(text) + 2;
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING);
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
@@ -2293,7 +2846,7 @@ bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, i
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -2337,7 +2890,7 @@ bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, i
//if (*value > maxValue) *value = maxValue;
//else if (*value < minValue) *value = minValue;
- if (IsKeyPressed(KEY_ENTER) || (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON))) pressed = true;
+ if (IsKeyPressed(KEY_ENTER) || (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON))) result = 1;
}
else
{
@@ -2347,7 +2900,7 @@ bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, i
if (CheckCollisionPointRec(mousePoint, bounds))
{
state = STATE_FOCUSED;
- if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pressed = true;
+ if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) result = 1;
}
}
}
@@ -2359,208 +2912,36 @@ bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, i
if (state == STATE_PRESSED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED));
else if (state == STATE_DISABLED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED));
- // WARNING: BLANK color does not work properly with Fade()
- GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER + (state*3))), guiAlpha), baseColor);
- GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(VALUEBOX, TEXT + (state*3))), guiAlpha));
+ GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), GetColor(GuiGetStyle(VALUEBOX, BORDER + (state*3))), baseColor);
+ GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(VALUEBOX, TEXT + (state*3))));
// Draw cursor
if (editMode)
{
// NOTE: ValueBox internal text is always centered
Rectangle cursor = { bounds.x + GetTextWidth(textValue)/2 + bounds.width/2 + 1, bounds.y + 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), 4, bounds.height - 4*GuiGetStyle(VALUEBOX, BORDER_WIDTH) };
- GuiDrawRectangle(cursor, 0, BLANK, Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha));
+ GuiDrawRectangle(cursor, 0, BLANK, GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)));
}
// Draw text label if provided
- GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha));
- //--------------------------------------------------------------------
-
- return pressed;
-}
-
-// Text Box control with multiple lines
-bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode)
-{
- GuiState state = guiState;
- bool pressed = false;
-
- Rectangle textAreaBounds = {
- bounds.x + GuiGetStyle(TEXTBOX, BORDER_WIDTH) + GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING),
- bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH) + GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING),
- bounds.width - 2*(GuiGetStyle(TEXTBOX, BORDER_WIDTH) + GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING)),
- bounds.height - 2*(GuiGetStyle(TEXTBOX, BORDER_WIDTH) + GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING))
- };
-
- // Cursor position, [x, y] values should be updated
- Rectangle cursor = { 0, -1, 4, (float)GuiGetStyle(DEFAULT, TEXT_SIZE) + 2 };
-
- float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/(float)guiFont.baseSize; // Character rectangle scaling factor
-
- // Update control
- //--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
- {
- Vector2 mousePoint = GetMousePosition();
-
- if (editMode)
- {
- state = STATE_PRESSED;
-
- // We get an Unicode codepoint
- int codepoint = GetCharPressed();
- int textLength = (int)strlen(text); // Length in bytes (UTF-8 string)
- int byteSize = 0;
- const char *textUTF8 = CodepointToUTF8(codepoint, &byteSize);
-
- // Introduce characters
- if ((textLength + byteSize) < textSize)
- {
- if (IsKeyPressed(KEY_ENTER))
- {
- text[textLength] = '\n';
- textLength++;
- }
- else if (codepoint >= 32)
- {
- // Supports Unicode inputs -> Encoded to UTF-8
- int charUTF8Length = 0;
- const char *charEncoded = CodepointToUTF8(codepoint, &charUTF8Length);
- memcpy(text + textLength, charEncoded, charUTF8Length);
- textLength += charUTF8Length;
- }
- }
-
- // Delete characters
- if (textLength > 0)
- {
- if (IsKeyPressed(KEY_BACKSPACE))
- {
- if ((unsigned char)text[textLength - 1] < 127)
- {
- // Remove ASCII equivalent character (1 byte)
- textLength--;
- text[textLength] = '\0';
- }
- else
- {
- // Remove latest UTF-8 unicode character introduced (n bytes)
- int charUTF8Length = 0;
- while ((charUTF8Length < textLength) && ((unsigned char)text[textLength - 1 - charUTF8Length] & 0b01000000) == 0) charUTF8Length++;
-
- textLength -= (charUTF8Length + 1);
- text[textLength] = '\0';
- }
- }
- }
-
- // Exit edit mode
- if (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pressed = true;
- }
- else
- {
- if (CheckCollisionPointRec(mousePoint, bounds))
- {
- state = STATE_FOCUSED;
- if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pressed = true;
- }
- }
- }
- //--------------------------------------------------------------------
-
- // Draw control
- //--------------------------------------------------------------------
- if (state == STATE_PRESSED)
- {
- GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED)), guiAlpha));
- }
- else if (state == STATE_DISABLED)
- {
- GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_DISABLED)), guiAlpha));
- }
- else GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), BLANK);
-
- int wrapMode = 1; // 0-No wrap, 1-Char wrap, 2-Word wrap
- Vector2 cursorPos = { textAreaBounds.x, textAreaBounds.y };
-
- //int lastSpacePos = 0;
- //int lastSpaceWidth = 0;
- //int lastSpaceCursorPos = 0;
-
- for (int i = 0, codepointSize = 0; (text != NULL) && (text[i] != '\0'); i += codepointSize)
- {
- int codepoint = GetCodepointNext(text + i, &codepointSize);
- int index = GetGlyphIndex(guiFont, codepoint); // If requested codepoint is not found, we get '?' (0x3f)
- Rectangle atlasRec = guiFont.recs[index];
- GlyphInfo glyphInfo = guiFont.glyphs[index]; // Glyph measures
-
- if ((codepointSize == 1) && (codepoint == '\n'))
- {
- cursorPos.y += (guiFont.baseSize*scaleFactor + GuiGetStyle(TEXTBOX, TEXT_LINES_SPACING)); // Line feed
- cursorPos.x = textAreaBounds.x; // Carriage return
- }
- else
- {
- if (wrapMode == 1)
- {
- int glyphWidth = 0;
- if (glyphInfo.advanceX != 0) glyphWidth += glyphInfo.advanceX;
- else glyphWidth += (int)(atlasRec.width + glyphInfo.offsetX);
-
- // Jump line if the end of the text box area has been reached
- if ((cursorPos.x + (glyphWidth*scaleFactor)) > (textAreaBounds.x + textAreaBounds.width))
- {
- cursorPos.y += (guiFont.baseSize*scaleFactor + GuiGetStyle(TEXTBOX, TEXT_LINES_SPACING)); // Line feed
- cursorPos.x = textAreaBounds.x; // Carriage return
- }
- }
- else if (wrapMode == 2)
- {
- /*
- if ((codepointSize == 1) && (codepoint == ' '))
- {
- lastSpacePos = i;
- lastSpaceWidth = 0;
- lastSpaceCursorPos = cursorPos.x;
- }
-
- // Jump line if last word reaches end of text box area
- if ((lastSpaceCursorPos + lastSpaceWidth) > (textAreaBounds.x + textAreaBounds.width))
- {
- cursorPos.y += 12; // Line feed
- cursorPos.x = textAreaBounds.x; // Carriage return
- }
- */
- }
-
- // Draw current character glyph
- DrawTextCodepoint(guiFont, codepoint, cursorPos, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), Fade(GetColor(GuiGetStyle(TEXTBOX, TEXT + (state*3))), guiAlpha));
-
- int glyphWidth = 0;
- if (glyphInfo.advanceX != 0) glyphWidth += glyphInfo.advanceX;
- else glyphWidth += (int)(atlasRec.width + glyphInfo.offsetX);
-
- cursorPos.x += (glyphWidth*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
- //if (i > lastSpacePos) lastSpaceWidth += (atlasRec.width + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
- }
- }
-
- cursor.x = cursorPos.x;
- cursor.y = cursorPos.y;
-
- // Draw cursor position considering text glyphs
- if (editMode) GuiDrawRectangle(cursor, 0, BLANK, Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED)), guiAlpha));
+ GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3))));
//--------------------------------------------------------------------
- return pressed;
+ return result;
}
// Slider control with pro parameters
// NOTE: Other GuiSlider*() controls use this one
-float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue, int sliderWidth)
+int GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, int sliderWidth)
{
+ int result = 0;
+ float oldValue = *value;
GuiState state = guiState;
- int sliderValue = (int)(((value - minValue)/(maxValue - minValue))*(bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH)));
+ float temp = (maxValue - minValue)/2.0f;
+ if (value == NULL) value = &temp;
+
+ int sliderValue = (int)(((*value - minValue)/(maxValue - minValue))*(bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH)));
Rectangle slider = { bounds.x, bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING),
0, bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING) };
@@ -2582,25 +2963,52 @@ float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight
{
Vector2 mousePoint = GetMousePosition();
- if (CheckCollisionPointRec(mousePoint, bounds))
+ if (guiSliderDragging) // Keep dragging outside of bounds
+ {
+ if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
+ {
+ if (CHECK_BOUNDS_ID(bounds, guiSliderActive))
+ {
+ state = STATE_PRESSED;
+
+ // Get equivalent value and slider position from mousePosition.x
+ *value = ((maxValue - minValue)*(mousePoint.x - (float)(bounds.x + sliderWidth/2)))/(float)(bounds.width - sliderWidth) + minValue;
+ }
+ }
+ else
+ {
+ guiSliderDragging = false;
+ guiSliderActive = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 };
+ }
+ }
+ else if (CheckCollisionPointRec(mousePoint, bounds))
{
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
{
state = STATE_PRESSED;
+ guiSliderDragging = true;
+ guiSliderActive = bounds; // Store bounds as an identifier when dragging starts
- // Get equivalent value and slider position from mousePoint.x
- value = ((maxValue - minValue)*(mousePoint.x - (float)(bounds.x + sliderWidth/2)))/(float)(bounds.width - sliderWidth) + minValue;
+ if (!CheckCollisionPointRec(mousePoint, slider))
+ {
+ // Get equivalent value and slider position from mousePosition.x
+ *value = ((maxValue - minValue)*(mousePoint.x - (float)(bounds.x + sliderWidth/2)))/(float)(bounds.width - sliderWidth) + minValue;
- if (sliderWidth > 0) slider.x = mousePoint.x - slider.width/2; // Slider
- else if (sliderWidth == 0) slider.width = (float)sliderValue; // SliderBar
+ if (sliderWidth > 0) slider.x = mousePoint.x - slider.width/2; // Slider
+ else if (sliderWidth == 0) slider.width = (float)sliderValue; // SliderBar
+ }
}
else state = STATE_FOCUSED;
}
- if (value > maxValue) value = maxValue;
- else if (value < minValue) value = minValue;
+ if (*value > maxValue) *value = maxValue;
+ else if (*value < minValue) *value = minValue;
}
+ // Control value change check
+ if(oldValue == *value) result = 0;
+ else result = 1;
+
// Bar limits check
if (sliderWidth > 0) // Slider
{
@@ -2615,11 +3023,12 @@ float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight
// Draw control
//--------------------------------------------------------------------
- GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha));
+ GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)));
// Draw slider internal bar (depends on state)
- if ((state == STATE_NORMAL) || (state == STATE_PRESSED)) GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)), guiAlpha));
- else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED)), guiAlpha));
+ if (state == STATE_NORMAL) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)));
+ else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED)));
+ else if (state == STATE_PRESSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_PRESSED)));
// Draw left/right text if provided
if (textLeft != NULL)
@@ -2630,7 +3039,7 @@ float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight
textBounds.x = bounds.x - textBounds.width - GuiGetStyle(SLIDER, TEXT_PADDING);
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
- GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
+ GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))));
}
if (textRight != NULL)
@@ -2641,48 +3050,76 @@ float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight
textBounds.x = bounds.x + bounds.width + GuiGetStyle(SLIDER, TEXT_PADDING);
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
- GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
+ GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))));
}
//--------------------------------------------------------------------
- return value;
+ return result;
}
// Slider control extended, returns selected value and has text
-float GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue)
+int GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue)
{
return GuiSliderPro(bounds, textLeft, textRight, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH));
}
// Slider Bar control extended, returns selected value
-float GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue)
+int GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue)
{
return GuiSliderPro(bounds, textLeft, textRight, value, minValue, maxValue, 0);
}
// Progress Bar control extended, shows current progress value
-float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue)
+int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue)
{
+ int result = 0;
GuiState state = guiState;
+ float temp = (maxValue - minValue)/2.0f;
+ if (value == NULL) value = &temp;
+
+ // Progress bar
Rectangle progress = { bounds.x + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH),
bounds.y + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) + GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING), 0,
bounds.height - 2*GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - 2*GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING) };
// Update control
//--------------------------------------------------------------------
- if (value > maxValue) value = maxValue;
+ if (*value > maxValue) *value = maxValue;
- if (state != STATE_DISABLED) progress.width = ((float)(value/(maxValue - minValue))*(float)(bounds.width - 2*GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)));
+ // WARNING: Working with floats could lead to rounding issues
+ if ((state != STATE_DISABLED)) progress.width = (float)(*value/(maxValue - minValue))*bounds.width - ((*value >= maxValue)? (float)(2*GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)) : 0.0f);
//--------------------------------------------------------------------
// Draw control
//--------------------------------------------------------------------
- GuiDrawRectangle(bounds, GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(PROGRESSBAR, BORDER + (state*3))), guiAlpha), BLANK);
+ if (state == STATE_DISABLED)
+ {
+ GuiDrawRectangle(bounds, GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), GetColor(GuiGetStyle(PROGRESSBAR, BORDER + (state*3))), BLANK);
+ }
+ else
+ {
+ if (*value > minValue)
+ {
+ // Draw progress bar with colored border, more visual
+ GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED)));
+ GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height - 2 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED)));
+ GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED)));
+ }
+ else GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL)));
+
+ if (*value >= maxValue) GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + progress.width + 1, bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED)));
+ else
+ {
+ // Draw borders not yet reached by value
+ GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + (int)progress.width + 1, bounds.y, bounds.width - (int)progress.width - 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL)));
+ GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + (int)progress.width + 1, bounds.y + bounds.height - 1, bounds.width - (int)progress.width - 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL)));
+ GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - 1, bounds.y + 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height - 2 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL)));
+ }
- // Draw slider internal progress bar (depends on state)
- if ((state == STATE_NORMAL) || (state == STATE_PRESSED)) GuiDrawRectangle(progress, 0, BLANK, Fade(GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED)), guiAlpha));
- else if (state == STATE_FOCUSED) GuiDrawRectangle(progress, 0, BLANK, Fade(GetColor(GuiGetStyle(PROGRESSBAR, TEXT_COLOR_FOCUSED)), guiAlpha));
+ // Draw slider internal progress bar (depends on state)
+ GuiDrawRectangle(progress, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED)));
+ }
// Draw left/right text if provided
if (textLeft != NULL)
@@ -2693,7 +3130,7 @@ float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRig
textBounds.x = bounds.x - textBounds.width - GuiGetStyle(PROGRESSBAR, TEXT_PADDING);
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
- GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(PROGRESSBAR, TEXT + (state*3))), guiAlpha));
+ GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(PROGRESSBAR, TEXT + (state*3))));
}
if (textRight != NULL)
@@ -2704,34 +3141,37 @@ float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRig
textBounds.x = bounds.x + bounds.width + GuiGetStyle(PROGRESSBAR, TEXT_PADDING);
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
- GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(PROGRESSBAR, TEXT + (state*3))), guiAlpha));
+ GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, GetColor(GuiGetStyle(PROGRESSBAR, TEXT + (state*3))));
}
//--------------------------------------------------------------------
- return value;
+ return result;
}
// Status Bar control
-void GuiStatusBar(Rectangle bounds, const char *text)
+int GuiStatusBar(Rectangle bounds, const char *text)
{
+ int result = 0;
GuiState state = guiState;
// Draw control
//--------------------------------------------------------------------
- GuiDrawRectangle(bounds, GuiGetStyle(STATUSBAR, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(STATUSBAR, (state != STATE_DISABLED)? BORDER_COLOR_NORMAL : BORDER_COLOR_DISABLED)), guiAlpha),
- Fade(GetColor(GuiGetStyle(STATUSBAR, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha));
- GuiDrawText(text, GetTextBounds(STATUSBAR, bounds), GuiGetStyle(STATUSBAR, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(STATUSBAR, (state != STATE_DISABLED)? TEXT_COLOR_NORMAL : TEXT_COLOR_DISABLED)), guiAlpha));
+ GuiDrawRectangle(bounds, GuiGetStyle(STATUSBAR, BORDER_WIDTH), GetColor(GuiGetStyle(STATUSBAR, BORDER + (state*3))), GetColor(GuiGetStyle(STATUSBAR, BASE + (state*3))));
+ GuiDrawText(text, GetTextBounds(STATUSBAR, bounds), GuiGetStyle(STATUSBAR, TEXT_ALIGNMENT), GetColor(GuiGetStyle(STATUSBAR, TEXT + (state*3))));
//--------------------------------------------------------------------
+
+ return result;
}
// Dummy rectangle control, intended for placeholding
-void GuiDummyRec(Rectangle bounds, const char *text)
+int GuiDummyRec(Rectangle bounds, const char *text)
{
+ int result = 0;
GuiState state = guiState;
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -2746,28 +3186,35 @@ void GuiDummyRec(Rectangle bounds, const char *text)
// Draw control
//--------------------------------------------------------------------
- GuiDrawRectangle(bounds, 0, BLANK, Fade(GetColor(GuiGetStyle(DEFAULT, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha));
- GuiDrawText(text, GetTextBounds(DEFAULT, bounds), TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(BUTTON, (state != STATE_DISABLED)? TEXT_COLOR_NORMAL : TEXT_COLOR_DISABLED)), guiAlpha));
+ GuiDrawRectangle(bounds, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)));
+ GuiDrawText(text, GetTextBounds(DEFAULT, bounds), TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(BUTTON, (state != STATE_DISABLED)? TEXT_COLOR_NORMAL : TEXT_COLOR_DISABLED)));
//------------------------------------------------------------------
+
+ return result;
}
// List View control
-int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int active)
+int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int *active)
{
+ int result = 0;
int itemCount = 0;
const char **items = NULL;
if (text != NULL) items = GuiTextSplit(text, ';', &itemCount, NULL);
- return GuiListViewEx(bounds, items, itemCount, NULL, scrollIndex, active);
+ result = GuiListViewEx(bounds, items, itemCount, scrollIndex, active, NULL);
+
+ return result;
}
// List View control with extended parameters
-int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, int *scrollIndex, int active)
+int GuiListViewEx(Rectangle bounds, const char **text, int count, int *scrollIndex, int *active, int *focus)
{
+ int result = 0;
GuiState state = guiState;
+
int itemFocused = (focus == NULL)? -1 : *focus;
- int itemSelected = active;
+ int itemSelected = (active == NULL)? -1 : *active;
// Check if we need a scroll bar
bool useScrollBar = false;
@@ -2791,7 +3238,7 @@ int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, in
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -2839,35 +3286,35 @@ int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, in
// Draw control
//--------------------------------------------------------------------
- GuiDrawRectangle(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), guiAlpha), GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background
+ GuiDrawRectangle(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background
// Draw visible items
for (int i = 0; ((i < visibleItems) && (text != NULL)); i++)
{
if (state == STATE_DISABLED)
{
- if ((startIndex + i) == itemSelected) GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), guiAlpha), Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED)), guiAlpha));
+ if ((startIndex + i) == itemSelected) GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED)));
- GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED)), guiAlpha));
+ GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED)));
}
else
{
- if ((startIndex + i) == itemSelected)
+ if (((startIndex + i) == itemSelected) && (active != NULL))
{
// Draw item selected
- GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), guiAlpha), Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED)), guiAlpha));
- GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED)), guiAlpha));
+ GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED)));
+ GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED)));
}
- else if ((startIndex + i) == itemFocused)
+ else if (((startIndex + i) == itemFocused)) // && (focus != NULL)) // NOTE: We want items focused, despite not returned!
{
// Draw item focused
- GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), guiAlpha), Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED)), guiAlpha));
- GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED)), guiAlpha));
+ GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED)));
+ GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED)));
}
else
{
// Draw item normal
- GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL)), guiAlpha));
+ GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL)));
}
}
@@ -2899,29 +3346,30 @@ int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, in
}
//--------------------------------------------------------------------
+ if (active != NULL) *active = itemSelected;
if (focus != NULL) *focus = itemFocused;
if (scrollIndex != NULL) *scrollIndex = startIndex;
- return itemSelected;
+ return result;
}
// Color Panel control
-Color GuiColorPanel(Rectangle bounds, const char *text, Color color)
+int GuiColorPanel(Rectangle bounds, const char *text, Color *color)
{
- const Color colWhite = { 255, 255, 255, 255 };
- const Color colBlack = { 0, 0, 0, 255 };
-
+ int result = 0;
GuiState state = guiState;
Vector2 pickerSelector = { 0 };
- Vector3 vcolor = { (float)color.r/255.0f, (float)color.g/255.0f, (float)color.b/255.0f };
+ const Color colWhite = { 255, 255, 255, 255 };
+ const Color colBlack = { 0, 0, 0, 255 };
+
+ Vector3 vcolor = { (float)color->r/255.0f, (float)color->g/255.0f, (float)color->b/255.0f };
Vector3 hsv = ConvertRGBtoHSV(vcolor);
pickerSelector.x = bounds.x + (float)hsv.y*bounds.width; // HSV: Saturation
pickerSelector.y = bounds.y + (1.0f - (float)hsv.z)*bounds.height; // HSV: Value
- float hue = -1.0f;
- Vector3 maxHue = { hue >= 0.0f ? hue : hsv.x, 1.0f, 1.0f };
+ Vector3 maxHue = { hsv.x, 1.0f, 1.0f };
Vector3 rgbHue = ConvertHSVtoRGB(maxHue);
Color maxHueCol = { (unsigned char)(255.0f*rgbHue.x),
(unsigned char)(255.0f*rgbHue.y),
@@ -2929,7 +3377,7 @@ Color GuiColorPanel(Rectangle bounds, const char *text, Color color)
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
{
Vector2 mousePoint = GetMousePosition();
@@ -2952,10 +3400,10 @@ Color GuiColorPanel(Rectangle bounds, const char *text, Color color)
Vector3 rgb = ConvertHSVtoRGB(hsv);
// NOTE: Vector3ToColor() only available on raylib 1.8.1
- color = RAYGUI_CLITERAL(Color){ (unsigned char)(255.0f*rgb.x),
+ *color = RAYGUI_CLITERAL(Color){ (unsigned char)(255.0f*rgb.x),
(unsigned char)(255.0f*rgb.y),
(unsigned char)(255.0f*rgb.z),
- (unsigned char)(255.0f*(float)color.a/255.0f) };
+ (unsigned char)(255.0f*(float)color->a/255.0f) };
}
else state = STATE_FOCUSED;
@@ -2972,29 +3420,30 @@ Color GuiColorPanel(Rectangle bounds, const char *text, Color color)
// Draw color picker: selector
Rectangle selector = { pickerSelector.x - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, pickerSelector.y - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE), (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE) };
- GuiDrawRectangle(selector, 0, BLANK, Fade(colWhite, guiAlpha));
+ GuiDrawRectangle(selector, 0, BLANK, colWhite);
}
else
{
DrawRectangleGradientEx(bounds, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.6f), guiAlpha));
}
- GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha), BLANK);
+ GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK);
//--------------------------------------------------------------------
- return color;
+ return result;
}
// Color Bar Alpha control
// NOTE: Returns alpha value normalized [0..1]
-float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha)
+int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha)
{
#if !defined(RAYGUI_COLORBARALPHA_CHECKED_SIZE)
#define RAYGUI_COLORBARALPHA_CHECKED_SIZE 10
#endif
+ int result = 0;
GuiState state = guiState;
- Rectangle selector = { (float)bounds.x + alpha*bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, (float)bounds.y - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT), (float)bounds.height + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2 };
+ Rectangle selector = { (float)bounds.x + (*alpha)*bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, (float)bounds.y - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT), (float)bounds.height + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2 };
// Update control
//--------------------------------------------------------------------
@@ -3002,16 +3451,36 @@ float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha)
{
Vector2 mousePoint = GetMousePosition();
- if (CheckCollisionPointRec(mousePoint, bounds) ||
- CheckCollisionPointRec(mousePoint, selector))
+ if (guiSliderDragging) // Keep dragging outside of bounds
+ {
+ if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
+ {
+ if (CHECK_BOUNDS_ID(bounds, guiSliderActive))
+ {
+ state = STATE_PRESSED;
+
+ *alpha = (mousePoint.x - bounds.x)/bounds.width;
+ if (*alpha <= 0.0f) *alpha = 0.0f;
+ if (*alpha >= 1.0f) *alpha = 1.0f;
+ }
+ }
+ else
+ {
+ guiSliderDragging = false;
+ guiSliderActive = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 };
+ }
+ }
+ else if (CheckCollisionPointRec(mousePoint, bounds) || CheckCollisionPointRec(mousePoint, selector))
{
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
{
state = STATE_PRESSED;
+ guiSliderDragging = true;
+ guiSliderActive = bounds; // Store bounds as an identifier when dragging starts
- alpha = (mousePoint.x - bounds.x)/bounds.width;
- if (alpha <= 0.0f) alpha = 0.0f;
- if (alpha >= 1.0f) alpha = 1.0f;
+ *alpha = (mousePoint.x - bounds.x)/bounds.width;
+ if (*alpha <= 0.0f) *alpha = 0.0f;
+ if (*alpha >= 1.0f) *alpha = 1.0f;
//selector.x = bounds.x + (int)(((alpha - 0)/(100 - 0))*(bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH))) - selector.width/2;
}
else state = STATE_FOCUSED;
@@ -3033,7 +3502,7 @@ float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha)
for (int y = 0; y < checksY; y++)
{
Rectangle check = { bounds.x + x*RAYGUI_COLORBARALPHA_CHECKED_SIZE, bounds.y + y*RAYGUI_COLORBARALPHA_CHECKED_SIZE, RAYGUI_COLORBARALPHA_CHECKED_SIZE, RAYGUI_COLORBARALPHA_CHECKED_SIZE };
- GuiDrawRectangle(check, 0, BLANK, ((x + y)%2)? Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.4f), guiAlpha) : Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.4f), guiAlpha));
+ GuiDrawRectangle(check, 0, BLANK, ((x + y)%2)? Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.4f) : Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.4f));
}
}
@@ -3041,13 +3510,13 @@ float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha)
}
else DrawRectangleGradientEx(bounds, Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha));
- GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha), BLANK);
+ GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK);
// Draw alpha bar: selector
- GuiDrawRectangle(selector, 0, BLANK, Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha));
+ GuiDrawRectangle(selector, 0, BLANK, GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)));
//--------------------------------------------------------------------
- return alpha;
+ return result;
}
// Color Bar Hue control
@@ -3056,10 +3525,11 @@ float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha)
// Color GuiColorBarSat() [WHITE->color]
// Color GuiColorBarValue() [BLACK->color], HSV/HSL
// float GuiColorBarLuminance() [BLACK->WHITE]
-float GuiColorBarHue(Rectangle bounds, const char *text, float hue)
+int GuiColorBarHue(Rectangle bounds, const char *text, float *hue)
{
+ int result = 0;
GuiState state = guiState;
- Rectangle selector = { (float)bounds.x - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)bounds.y + hue/360.0f*bounds.height - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, (float)bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2, (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT) };
+ Rectangle selector = { (float)bounds.x - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)bounds.y + (*hue)/360.0f*bounds.height - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, (float)bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2, (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT) };
// Update control
//--------------------------------------------------------------------
@@ -3067,16 +3537,36 @@ float GuiColorBarHue(Rectangle bounds, const char *text, float hue)
{
Vector2 mousePoint = GetMousePosition();
- if (CheckCollisionPointRec(mousePoint, bounds) ||
- CheckCollisionPointRec(mousePoint, selector))
+ if (guiSliderDragging) // Keep dragging outside of bounds
+ {
+ if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
+ {
+ if (CHECK_BOUNDS_ID(bounds, guiSliderActive))
+ {
+ state = STATE_PRESSED;
+
+ *hue = (mousePoint.y - bounds.y)*360/bounds.height;
+ if (*hue <= 0.0f) *hue = 0.0f;
+ if (*hue >= 359.0f) *hue = 359.0f;
+ }
+ }
+ else
+ {
+ guiSliderDragging = false;
+ guiSliderActive = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 };
+ }
+ }
+ else if (CheckCollisionPointRec(mousePoint, bounds) || CheckCollisionPointRec(mousePoint, selector))
{
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
{
state = STATE_PRESSED;
+ guiSliderDragging = true;
+ guiSliderActive = bounds; // Store bounds as an identifier when dragging starts
- hue = (mousePoint.y - bounds.y)*360/bounds.height;
- if (hue <= 0.0f) hue = 0.0f;
- if (hue >= 359.0f) hue = 359.0f;
+ *hue = (mousePoint.y - bounds.y)*360/bounds.height;
+ if (*hue <= 0.0f) *hue = 0.0f;
+ if (*hue >= 359.0f) *hue = 359.0f;
}
else state = STATE_FOCUSED;
@@ -3100,7 +3590,8 @@ float GuiColorBarHue(Rectangle bounds, const char *text, float hue)
if (state != STATE_DISABLED)
{
// Draw hue bar:color bars
- DrawRectangleGradientV((int)bounds.x, (int)(bounds.y), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255, 255, 0, 255 }, guiAlpha));
+ // TODO: Use directly DrawRectangleGradientEx(bounds, color1, color2, color2, color1);
+ DrawRectangleGradientV((int)bounds.x, (int)(bounds.y), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255, 255, 0, 255 }, guiAlpha));
DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + bounds.height/6), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 255, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 0, 255 }, guiAlpha));
DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 2*(bounds.height/6)), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 255, 255 }, guiAlpha));
DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 3*(bounds.height/6)), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 255, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 0, 255, 255 }, guiAlpha));
@@ -3109,13 +3600,13 @@ float GuiColorBarHue(Rectangle bounds, const char *text, float hue)
}
else DrawRectangleGradientV((int)bounds.x, (int)bounds.y, (int)bounds.width, (int)bounds.height, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha));
- GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha), BLANK);
+ GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK);
// Draw hue bar: selector
- GuiDrawRectangle(selector, 0, BLANK, Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha));
+ GuiDrawRectangle(selector, 0, BLANK, GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)));
//--------------------------------------------------------------------
- return hue;
+ return result;
}
// Color Picker control
@@ -3124,21 +3615,126 @@ float GuiColorBarHue(Rectangle bounds, const char *text, float hue)
// float GuiColorBarAlpha(Rectangle bounds, float alpha)
// float GuiColorBarHue(Rectangle bounds, float value)
// NOTE: bounds define GuiColorPanel() size
-Color GuiColorPicker(Rectangle bounds, const char *text, Color color)
+int GuiColorPicker(Rectangle bounds, const char *text, Color *color)
{
- color = GuiColorPanel(bounds, NULL, color);
+ int result = 0;
+
+ Color temp = { 200, 0, 0, 255 };
+ if (color == NULL) color = &temp;
+
+ GuiColorPanel(bounds, NULL, color);
Rectangle boundsHue = { (float)bounds.x + bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_PADDING), (float)bounds.y, (float)GuiGetStyle(COLORPICKER, HUEBAR_WIDTH), (float)bounds.height };
//Rectangle boundsAlpha = { bounds.x, bounds.y + bounds.height + GuiGetStyle(COLORPICKER, BARS_PADDING), bounds.width, GuiGetStyle(COLORPICKER, BARS_THICK) };
- Vector3 hsv = ConvertRGBtoHSV(RAYGUI_CLITERAL(Vector3){ color.r/255.0f, color.g/255.0f, color.b/255.0f });
- hsv.x = GuiColorBarHue(boundsHue, NULL, hsv.x);
+ Vector3 hsv = ConvertRGBtoHSV(RAYGUI_CLITERAL(Vector3){ (*color).r/255.0f, (*color).g/255.0f, (*color).b/255.0f });
+
+ GuiColorBarHue(boundsHue, NULL, &hsv.x);
+
//color.a = (unsigned char)(GuiColorBarAlpha(boundsAlpha, (float)color.a/255.0f)*255.0f);
Vector3 rgb = ConvertHSVtoRGB(hsv);
- color = RAYGUI_CLITERAL(Color){ (unsigned char)roundf(rgb.x*255.0f), (unsigned char)roundf(rgb.y*255.0f), (unsigned char)roundf(rgb.z*255.0f), color.a };
+ *color = RAYGUI_CLITERAL(Color){ (unsigned char)roundf(rgb.x*255.0f), (unsigned char)roundf(rgb.y*255.0f), (unsigned char)roundf(rgb.z*255.0f), (*color).a };
- return color;
+ return result;
+}
+
+// Color Picker control that avoids conversion to RGB and back to HSV on each call, thus avoiding jittering.
+// The user can call ConvertHSVtoRGB() to convert *colorHsv value to RGB.
+// NOTE: It's divided in multiple controls:
+// int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv)
+// int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha)
+// float GuiColorBarHue(Rectangle bounds, float value)
+// NOTE: bounds define GuiColorPanelHSV() size
+int GuiColorPickerHSV(Rectangle bounds, const char *text, Vector3 *colorHsv)
+{
+ int result = 0;
+
+ Vector3 tempHsv = { 0 };
+
+ if (colorHsv == NULL)
+ {
+ const Vector3 tempColor = { 200.0f/255.0f, 0.0f, 0.0f };
+ tempHsv = ConvertRGBtoHSV(tempColor);
+ colorHsv = &tempHsv;
+ }
+
+ GuiColorPanelHSV(bounds, NULL, colorHsv);
+
+ const Rectangle boundsHue = { (float)bounds.x + bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_PADDING), (float)bounds.y, (float)GuiGetStyle(COLORPICKER, HUEBAR_WIDTH), (float)bounds.height };
+
+ GuiColorBarHue(boundsHue, NULL, &colorHsv->x);
+
+ return result;
+}
+
+// Color Panel control, returns HSV color value in *colorHsv.
+// Used by GuiColorPickerHSV()
+int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv)
+{
+ int result = 0;
+ GuiState state = guiState;
+ Vector2 pickerSelector = { 0 };
+
+ const Color colWhite = { 255, 255, 255, 255 };
+ const Color colBlack = { 0, 0, 0, 255 };
+
+ pickerSelector.x = bounds.x + (float)colorHsv->y*bounds.width; // HSV: Saturation
+ pickerSelector.y = bounds.y + (1.0f - (float)colorHsv->z)*bounds.height; // HSV: Value
+
+ Vector3 maxHue = { colorHsv->x, 1.0f, 1.0f };
+ Vector3 rgbHue = ConvertHSVtoRGB(maxHue);
+ Color maxHueCol = { (unsigned char)(255.0f*rgbHue.x),
+ (unsigned char)(255.0f*rgbHue.y),
+ (unsigned char)(255.0f*rgbHue.z), 255 };
+
+ // Update control
+ //--------------------------------------------------------------------
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
+ {
+ Vector2 mousePoint = GetMousePosition();
+
+ if (CheckCollisionPointRec(mousePoint, bounds))
+ {
+ if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
+ {
+ state = STATE_PRESSED;
+ pickerSelector = mousePoint;
+
+ // Calculate color from picker
+ Vector2 colorPick = { pickerSelector.x - bounds.x, pickerSelector.y - bounds.y };
+
+ colorPick.x /= (float)bounds.width; // Get normalized value on x
+ colorPick.y /= (float)bounds.height; // Get normalized value on y
+
+ colorHsv->y = colorPick.x;
+ colorHsv->z = 1.0f - colorPick.y;
+ }
+ else state = STATE_FOCUSED;
+ }
+ }
+ //--------------------------------------------------------------------
+
+ // Draw control
+ //--------------------------------------------------------------------
+ if (state != STATE_DISABLED)
+ {
+ DrawRectangleGradientEx(bounds, Fade(colWhite, guiAlpha), Fade(colWhite, guiAlpha), Fade(maxHueCol, guiAlpha), Fade(maxHueCol, guiAlpha));
+ DrawRectangleGradientEx(bounds, Fade(colBlack, 0), Fade(colBlack, guiAlpha), Fade(colBlack, guiAlpha), Fade(colBlack, 0));
+
+ // Draw color picker: selector
+ Rectangle selector = { pickerSelector.x - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, pickerSelector.y - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE), (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE) };
+ GuiDrawRectangle(selector, 0, BLANK, colWhite);
+ }
+ else
+ {
+ DrawRectangleGradientEx(bounds, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.6f), guiAlpha));
+ }
+
+ GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK);
+ //--------------------------------------------------------------------
+
+ return result;
}
// Message Box control
@@ -3151,7 +3747,7 @@ int GuiMessageBox(Rectangle bounds, const char *title, const char *message, cons
#define RAYGUI_MESSAGEBOX_BUTTON_PADDING 12
#endif
- int clicked = -1; // Returns clicked button from buttons list, 0 refers to closed window button
+ int result = -1; // Returns clicked button from buttons list, 0 refers to closed window button
int buttonCount = 0;
const char **buttonsText = GuiTextSplit(buttons, ';', &buttonCount, NULL);
@@ -3161,7 +3757,7 @@ int GuiMessageBox(Rectangle bounds, const char *title, const char *message, cons
buttonBounds.width = (bounds.width - RAYGUI_MESSAGEBOX_BUTTON_PADDING*(buttonCount + 1))/buttonCount;
buttonBounds.height = RAYGUI_MESSAGEBOX_BUTTON_HEIGHT;
- int textWidth = GetTextWidth(message);
+ int textWidth = GetTextWidth(message) + 2;
Rectangle textBounds = { 0 };
textBounds.x = bounds.x + bounds.width/2 - textWidth/2;
@@ -3171,7 +3767,7 @@ int GuiMessageBox(Rectangle bounds, const char *title, const char *message, cons
// Draw control
//--------------------------------------------------------------------
- if (GuiWindowBox(bounds, title)) clicked = 0;
+ if (GuiWindowBox(bounds, title)) result = 0;
int prevTextAlignment = GuiGetStyle(LABEL, TEXT_ALIGNMENT);
GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
@@ -3183,18 +3779,18 @@ int GuiMessageBox(Rectangle bounds, const char *title, const char *message, cons
for (int i = 0; i < buttonCount; i++)
{
- if (GuiButton(buttonBounds, buttonsText[i])) clicked = i + 1;
+ if (GuiButton(buttonBounds, buttonsText[i])) result = i + 1;
buttonBounds.x += (buttonBounds.width + RAYGUI_MESSAGEBOX_BUTTON_PADDING);
}
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, prevTextAlignment);
//--------------------------------------------------------------------
- return clicked;
+ return result;
}
// Text Input Box control, ask for text
-int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, int *secretViewActive)
+int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, bool *secretViewActive)
{
#if !defined(RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT)
#define RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT 24
@@ -3210,7 +3806,7 @@ int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, co
// WARNING: No more than one GuiTextInputBox() should be open at the same time
static bool textEditMode = false;
- int btnIndex = -1;
+ int result = -1;
int buttonCount = 0;
const char **buttonsText = GuiTextSplit(buttons, ';', &buttonCount, NULL);
@@ -3225,7 +3821,7 @@ int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, co
Rectangle textBounds = { 0 };
if (message != NULL)
{
- int textSize = GetTextWidth(message);
+ int textSize = GetTextWidth(message) + 2;
textBounds.x = bounds.x + bounds.width/2 - textSize/2;
textBounds.y = bounds.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + messageInputHeight/4 - (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
@@ -3243,7 +3839,7 @@ int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, co
// Draw control
//--------------------------------------------------------------------
- if (GuiWindowBox(bounds, title)) btnIndex = 0;
+ if (GuiWindowBox(bounds, title)) result = 0;
// Draw message if available
if (message != NULL)
@@ -3260,7 +3856,7 @@ int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, co
if (GuiTextBox(RAYGUI_CLITERAL(Rectangle){ textBoxBounds.x, textBoxBounds.y, textBoxBounds.width - 4 - RAYGUI_TEXTINPUTBOX_HEIGHT, textBoxBounds.height },
((*secretViewActive == 1) || textEditMode)? text : stars, textMaxSize, textEditMode)) textEditMode = !textEditMode;
- *secretViewActive = GuiToggle(RAYGUI_CLITERAL(Rectangle){ textBoxBounds.x + textBoxBounds.width - RAYGUI_TEXTINPUTBOX_HEIGHT, textBoxBounds.y, RAYGUI_TEXTINPUTBOX_HEIGHT, RAYGUI_TEXTINPUTBOX_HEIGHT }, (*secretViewActive == 1)? "#44#" : "#45#", *secretViewActive);
+ GuiToggle(RAYGUI_CLITERAL(Rectangle){ textBoxBounds.x + textBoxBounds.width - RAYGUI_TEXTINPUTBOX_HEIGHT, textBoxBounds.y, RAYGUI_TEXTINPUTBOX_HEIGHT, RAYGUI_TEXTINPUTBOX_HEIGHT }, (*secretViewActive == 1)? "#44#" : "#45#", secretViewActive);
}
else
{
@@ -3272,77 +3868,77 @@ int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, co
for (int i = 0; i < buttonCount; i++)
{
- if (GuiButton(buttonBounds, buttonsText[i])) btnIndex = i + 1;
+ if (GuiButton(buttonBounds, buttonsText[i])) result = i + 1;
buttonBounds.x += (buttonBounds.width + RAYGUI_MESSAGEBOX_BUTTON_PADDING);
}
+ if (result >= 0) textEditMode = false;
+
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, prevBtnTextAlignment);
//--------------------------------------------------------------------
- return btnIndex;
+ return result; // Result is the pressed button index
}
// Grid control
// NOTE: Returns grid mouse-hover selected cell
// About drawing lines at subpixel spacing, simple put, not easy solution:
// https://stackoverflow.com/questions/4435450/2d-opengl-drawing-lines-that-dont-exactly-fit-pixel-raster
-Vector2 GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs)
+int GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs, Vector2 *mouseCell)
{
// Grid lines alpha amount
#if !defined(RAYGUI_GRID_ALPHA)
#define RAYGUI_GRID_ALPHA 0.15f
#endif
+ int result = 0;
GuiState state = guiState;
+
Vector2 mousePoint = GetMousePosition();
- Vector2 currentCell = { -1, -1 };
+ Vector2 currentMouseCell = { -1, -1 };
- int linesV = ((int)(bounds.width/spacing))*subdivs + 1;
- int linesH = ((int)(bounds.height/spacing))*subdivs + 1;
+ float spaceWidth = spacing/(float)subdivs;
+ int linesV = (int)(bounds.width/spaceWidth) + 1;
+ int linesH = (int)(bounds.height/spaceWidth) + 1;
+
+ int color = GuiGetStyle(DEFAULT, LINE_COLOR);
// Update control
//--------------------------------------------------------------------
- if ((state != STATE_DISABLED) && !guiLocked)
+ if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging)
{
if (CheckCollisionPointRec(mousePoint, bounds))
{
// NOTE: Cell values must be the upper left of the cell the mouse is in
- currentCell.x = floorf((mousePoint.x - bounds.x)/spacing);
- currentCell.y = floorf((mousePoint.y - bounds.y)/spacing);
+ currentMouseCell.x = floorf((mousePoint.x - bounds.x)/spacing);
+ currentMouseCell.y = floorf((mousePoint.y - bounds.y)/spacing);
}
}
//--------------------------------------------------------------------
// Draw control
//--------------------------------------------------------------------
+ if (state == STATE_DISABLED) color = GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED);
- // TODO: Draw background panel?
-
- switch (state)
+ if (subdivs > 0)
{
- case STATE_NORMAL:
+ // Draw vertical grid lines
+ for (int i = 0; i < linesV; i++)
{
- if (subdivs > 0)
- {
- // Draw vertical grid lines
- for (int i = 0; i < linesV; i++)
- {
- Rectangle lineV = { bounds.x + spacing*i/subdivs, bounds.y, 1, bounds.height };
- GuiDrawRectangle(lineV, 0, BLANK, ((i%subdivs) == 0) ? Fade(GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)), RAYGUI_GRID_ALPHA*4) : Fade(GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)), RAYGUI_GRID_ALPHA));
- }
+ Rectangle lineV = { bounds.x + spacing*i/subdivs, bounds.y, 1, bounds.height };
+ GuiDrawRectangle(lineV, 0, BLANK, ((i%subdivs) == 0)? GuiFade(GetColor(color), RAYGUI_GRID_ALPHA*4) : GuiFade(GetColor(color), RAYGUI_GRID_ALPHA));
+ }
- // Draw horizontal grid lines
- for (int i = 0; i < linesH; i++)
- {
- Rectangle lineH = { bounds.x, bounds.y + spacing*i/subdivs, bounds.width, 1 };
- GuiDrawRectangle(lineH, 0, BLANK, ((i%subdivs) == 0) ? Fade(GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)), RAYGUI_GRID_ALPHA*4) : Fade(GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)), RAYGUI_GRID_ALPHA));
- }
- }
- } break;
- default: break;
+ // Draw horizontal grid lines
+ for (int i = 0; i < linesH; i++)
+ {
+ Rectangle lineH = { bounds.x, bounds.y + spacing*i/subdivs, bounds.width, 1 };
+ GuiDrawRectangle(lineH, 0, BLANK, ((i%subdivs) == 0)? GuiFade(GetColor(color), RAYGUI_GRID_ALPHA*4) : GuiFade(GetColor(color), RAYGUI_GRID_ALPHA));
+ }
}
- return currentCell;
+ if (mouseCell != NULL) *mouseCell = currentMouseCell;
+ return result;
}
//----------------------------------------------------------------------------------
@@ -3408,34 +4004,37 @@ void GuiLoadStyle(const char *fileName)
sscanf(buffer, "f %d %s %[^\r\n]s", &fontSize, charmapFileName, fontFileName);
Font font = { 0 };
+ int *codepoints = NULL;
+ int codepointCount = 0;
if (charmapFileName[0] != '0')
{
- // Load characters from charmap file,
- // expected '\n' separated list of integer values
- char *charValues = LoadFileText(charmapFileName);
- if (charValues != NULL)
- {
- int glyphCount = 0;
- const char **chars = TextSplit(charValues, '\n', &glyphCount);
-
- int *values = (int *)RAYGUI_MALLOC(glyphCount*sizeof(int));
- for (int i = 0; i < glyphCount; i++) values[i] = TextToInteger(chars[i]);
-
- if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture);
- font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, values, glyphCount);
- if (font.texture.id == 0) font = GetFontDefault();
-
- RAYGUI_FREE(values);
- }
+ // Load text data from file
+ // NOTE: Expected an UTF-8 array of codepoints, no separation
+ char *textData = LoadFileText(TextFormat("%s/%s", GetDirectoryPath(fileName), charmapFileName));
+ codepoints = LoadCodepoints(textData, &codepointCount);
+ UnloadFileText(textData);
}
- else
+
+ if (fontFileName[0] != '\0')
{
+ // In case a font is already loaded and it is not default internal font, unload it
if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture);
- font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, NULL, 0);
- if (font.texture.id == 0) font = GetFontDefault();
+
+ if (codepointCount > 0) font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, codepoints, codepointCount);
+ else font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, NULL, 0); // Default to 95 standard codepoints
}
+ // If font texture not properly loaded, revert to default font and size/spacing
+ if (font.texture.id == 0)
+ {
+ font = GetFontDefault();
+ GuiSetStyle(DEFAULT, TEXT_SIZE, 10);
+ GuiSetStyle(DEFAULT, TEXT_SPACING, 1);
+ }
+
+ UnloadCodepoints(codepoints);
+
if ((font.texture.id > 0) && (font.glyphCount > 0)) GuiSetFont(font);
} break;
@@ -3454,125 +4053,24 @@ void GuiLoadStyle(const char *fileName)
{
rgsFile = fopen(fileName, "rb");
- if (rgsFile == NULL) return;
-
- char signature[5] = { 0 };
- short version = 0;
- short reserved = 0;
- int propertyCount = 0;
-
- fread(signature, 1, 4, rgsFile);
- fread(&version, sizeof(short), 1, rgsFile);
- fread(&reserved, sizeof(short), 1, rgsFile);
- fread(&propertyCount, sizeof(int), 1, rgsFile);
-
- if ((signature[0] == 'r') &&
- (signature[1] == 'G') &&
- (signature[2] == 'S') &&
- (signature[3] == ' '))
+ if (rgsFile != NULL)
{
- short controlId = 0;
- short propertyId = 0;
- unsigned int propertyValue = 0;
+ fseek(rgsFile, 0, SEEK_END);
+ int fileDataSize = ftell(rgsFile);
+ fseek(rgsFile, 0, SEEK_SET);
- for (int i = 0; i < propertyCount; i++)
+ if (fileDataSize > 0)
{
- fread(&controlId, sizeof(short), 1, rgsFile);
- fread(&propertyId, sizeof(short), 1, rgsFile);
- fread(&propertyValue, sizeof(unsigned int), 1, rgsFile);
+ unsigned char *fileData = (unsigned char *)RAYGUI_MALLOC(fileDataSize*sizeof(unsigned char));
+ fread(fileData, sizeof(unsigned char), fileDataSize, rgsFile);
- if (controlId == 0) // DEFAULT control
- {
- // If a DEFAULT property is loaded, it is propagated to all controls
- // NOTE: All DEFAULT properties should be defined first in the file
- GuiSetStyle(0, (int)propertyId, propertyValue);
+ GuiLoadStyleFromMemory(fileData, fileDataSize);
- if (propertyId < RAYGUI_MAX_PROPS_BASE) for (int i = 1; i < RAYGUI_MAX_CONTROLS; i++) GuiSetStyle(i, (int)propertyId, propertyValue);
- }
- else GuiSetStyle((int)controlId, (int)propertyId, propertyValue);
+ RAYGUI_FREE(fileData);
}
- // Font loading is highly dependant on raylib API to load font data and image
-#if !defined(RAYGUI_STANDALONE)
- // Load custom font if available
- int fontDataSize = 0;
- fread(&fontDataSize, sizeof(int), 1, rgsFile);
-
- if (fontDataSize > 0)
- {
- Font font = { 0 };
- int fontType = 0; // 0-Normal, 1-SDF
- Rectangle whiteRec = { 0 };
-
- fread(&font.baseSize, sizeof(int), 1, rgsFile);
- fread(&font.glyphCount, sizeof(int), 1, rgsFile);
- fread(&fontType, sizeof(int), 1, rgsFile);
-
- // Load font white rectangle
- fread(&whiteRec, sizeof(Rectangle), 1, rgsFile);
-
- // Load font image parameters
- int fontImageUncompSize = 0;
- int fontImageCompSize = 0;
- fread(&fontImageUncompSize, sizeof(int), 1, rgsFile);
- fread(&fontImageCompSize, sizeof(int), 1, rgsFile);
-
- Image imFont = { 0 };
- imFont.mipmaps = 1;
- fread(&imFont.width, sizeof(int), 1, rgsFile);
- fread(&imFont.height, sizeof(int), 1, rgsFile);
- fread(&imFont.format, sizeof(int), 1, rgsFile);
-
- if (fontImageCompSize < fontImageUncompSize)
- {
- // Compressed font atlas image data (DEFLATE), it requires DecompressData()
- int dataUncompSize = 0;
- unsigned char *compData = (unsigned char *)RAYGUI_MALLOC(fontImageCompSize);
- fread(compData, 1, fontImageCompSize, rgsFile);
- imFont.data = DecompressData(compData, fontImageCompSize, &dataUncompSize);
-
- // Security check, dataUncompSize must match the provided fontImageUncompSize
- if (dataUncompSize != fontImageUncompSize) RAYGUI_LOG("WARNING: Uncompressed font atlas image data could be corrupted");
-
- RAYGUI_FREE(compData);
- }
- else
- {
- // Font atlas image data is not compressed
- imFont.data = (unsigned char *)RAYGUI_MALLOC(fontImageUncompSize);
- fread(imFont.data, 1, fontImageUncompSize, rgsFile);
- }
-
- if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture);
- font.texture = LoadTextureFromImage(imFont);
- if (font.texture.id == 0) font = GetFontDefault();
-
- RAYGUI_FREE(imFont.data);
-
- // Load font recs data
- font.recs = (Rectangle *)RAYGUI_CALLOC(font.glyphCount, sizeof(Rectangle));
- for (int i = 0; i < font.glyphCount; i++) fread(&font.recs[i], sizeof(Rectangle), 1, rgsFile);
-
- // Load font chars info data
- font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo));
- for (int i = 0; i < font.glyphCount; i++)
- {
- fread(&font.glyphs[i].value, sizeof(int), 1, rgsFile);
- fread(&font.glyphs[i].offsetX, sizeof(int), 1, rgsFile);
- fread(&font.glyphs[i].offsetY, sizeof(int), 1, rgsFile);
- fread(&font.glyphs[i].advanceX, sizeof(int), 1, rgsFile);
- }
-
- GuiSetFont(font);
-
- // Set font texture source rectangle to be used as white texture to draw shapes
- // NOTE: This way, all gui can be draw using a single draw call
- if ((whiteRec.width != 0) && (whiteRec.height != 0)) SetShapesTexture(font.texture, whiteRec);
- }
-#endif
+ fclose(rgsFile);
}
-
- fclose(rgsFile);
}
}
@@ -3584,6 +4082,8 @@ void GuiLoadStyleDefault(void)
guiStyleLoaded = true;
// Initialize default LIGHT style property values
+ // WARNING: Default value are applied to all controls on set but
+ // they can be overwritten later on for every custom control
GuiSetStyle(DEFAULT, BORDER_COLOR_NORMAL, 0x838383ff);
GuiSetStyle(DEFAULT, BASE_COLOR_NORMAL, 0xc9c9c9ff);
GuiSetStyle(DEFAULT, TEXT_COLOR_NORMAL, 0x686868ff);
@@ -3596,17 +4096,29 @@ void GuiLoadStyleDefault(void)
GuiSetStyle(DEFAULT, BORDER_COLOR_DISABLED, 0xb5c1c2ff);
GuiSetStyle(DEFAULT, BASE_COLOR_DISABLED, 0xe6e9e9ff);
GuiSetStyle(DEFAULT, TEXT_COLOR_DISABLED, 0xaeb7b8ff);
- GuiSetStyle(DEFAULT, BORDER_WIDTH, 1); // WARNING: Some controls use other values
- GuiSetStyle(DEFAULT, TEXT_PADDING, 0); // WARNING: Some controls use other values
- GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); // WARNING: Some controls use other values
+ GuiSetStyle(DEFAULT, BORDER_WIDTH, 1);
+ GuiSetStyle(DEFAULT, TEXT_PADDING, 0);
+ GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
+
+ // Initialize default extended property values
+ // NOTE: By default, extended property values are initialized to 0
+ GuiSetStyle(DEFAULT, TEXT_SIZE, 10); // DEFAULT, shared by all controls
+ GuiSetStyle(DEFAULT, TEXT_SPACING, 1); // DEFAULT, shared by all controls
+ GuiSetStyle(DEFAULT, LINE_COLOR, 0x90abb5ff); // DEFAULT specific property
+ GuiSetStyle(DEFAULT, BACKGROUND_COLOR, 0xf5f5f5ff); // DEFAULT specific property
+ GuiSetStyle(DEFAULT, TEXT_LINE_SPACING, 15); // DEFAULT, 15 pixels between lines
+ GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE); // DEFAULT, text aligned vertically to middle of text-bounds
// Initialize control-specific property values
// NOTE: Those properties are in default list but require specific values by control type
GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
GuiSetStyle(BUTTON, BORDER_WIDTH, 2);
GuiSetStyle(SLIDER, TEXT_PADDING, 4);
+ GuiSetStyle(PROGRESSBAR, TEXT_PADDING, 4);
GuiSetStyle(CHECKBOX, TEXT_PADDING, 4);
GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, TEXT_ALIGN_RIGHT);
+ GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 0);
+ GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
GuiSetStyle(TEXTBOX, TEXT_PADDING, 4);
GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
GuiSetStyle(VALUEBOX, TEXT_PADDING, 0);
@@ -3618,10 +4130,6 @@ void GuiLoadStyleDefault(void)
// Initialize extended property values
// NOTE: By default, extended property values are initialized to 0
- GuiSetStyle(DEFAULT, TEXT_SIZE, 10); // DEFAULT, shared by all controls
- GuiSetStyle(DEFAULT, TEXT_SPACING, 1); // DEFAULT, shared by all controls
- GuiSetStyle(DEFAULT, LINE_COLOR, 0x90abb5ff); // DEFAULT specific property
- GuiSetStyle(DEFAULT, BACKGROUND_COLOR, 0xf5f5f5ff); // DEFAULT specific property
GuiSetStyle(TOGGLE, GROUP_PADDING, 2);
GuiSetStyle(SLIDER, SLIDER_WIDTH, 16);
GuiSetStyle(SLIDER, SLIDER_PADDING, 1);
@@ -3631,8 +4139,6 @@ void GuiLoadStyleDefault(void)
GuiSetStyle(COMBOBOX, COMBO_BUTTON_SPACING, 2);
GuiSetStyle(DROPDOWNBOX, ARROW_PADDING, 16);
GuiSetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING, 2);
- GuiSetStyle(TEXTBOX, TEXT_LINES_SPACING, 4);
- GuiSetStyle(TEXTBOX, TEXT_INNER_PADDING, 4);
GuiSetStyle(SPINNER, SPIN_BUTTON_WIDTH, 24);
GuiSetStyle(SPINNER, SPIN_BUTTON_SPACING, 2);
GuiSetStyle(SCROLLBAR, BORDER_WIDTH, 0);
@@ -3656,13 +4162,19 @@ void GuiLoadStyleDefault(void)
{
// Unload previous font texture
UnloadTexture(guiFont.texture);
+ RL_FREE(guiFont.recs);
+ RL_FREE(guiFont.glyphs);
+ guiFont.recs = NULL;
+ guiFont.glyphs = NULL;
// Setup default raylib font
guiFont = GetFontDefault();
- // Setup default raylib font rectangle
- Rectangle whiteChar = { 41, 46, 2, 8 };
- SetShapesTexture(guiFont.texture, whiteChar);
+ // NOTE: Default raylib font character 95 is a white square
+ Rectangle whiteChar = guiFont.recs[95];
+
+ // NOTE: We set up a 1px padding on char rectangle to avoid pixel bleeding on MSAA filtering
+ SetShapesTexture(guiFont.texture, RAYGUI_CLITERAL(Rectangle){ whiteChar.x + 1, whiteChar.y + 1, whiteChar.width - 2, whiteChar.height - 2 });
}
}
@@ -3675,7 +4187,7 @@ const char *GuiIconText(int iconId, const char *text)
return NULL;
#else
static char buffer[1024] = { 0 };
- static char iconBuffer[6] = { 0 };
+ static char iconBuffer[16] = { 0 };
if (text != NULL)
{
@@ -3692,7 +4204,7 @@ const char *GuiIconText(int iconId, const char *text)
}
else
{
- sprintf(iconBuffer, "#%03i#", iconId & 0x1ff);
+ sprintf(iconBuffer, "#%03i#", iconId);
return iconBuffer;
}
@@ -3789,7 +4301,7 @@ void GuiDrawIcon(int iconId, int posX, int posY, int pixelSize, Color color)
if (BIT_CHECK(guiIconsPtr[iconId*RAYGUI_ICON_DATA_ELEMENTS + i], k))
{
#if !defined(RAYGUI_STANDALONE)
- DrawRectangle(posX + (k%RAYGUI_ICON_SIZE)*pixelSize, posY + y*pixelSize, pixelSize, pixelSize, color);
+ GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ (float)posX + (k%RAYGUI_ICON_SIZE)*pixelSize, (float)posY + y*pixelSize, (float)pixelSize, (float)pixelSize }, 0, BLANK, color);
#endif
}
@@ -3809,6 +4321,229 @@ void GuiSetIconScale(int scale)
//----------------------------------------------------------------------------------
// Module specific Functions Definition
//----------------------------------------------------------------------------------
+
+// Load style from memory
+// WARNING: Binary files only
+static void GuiLoadStyleFromMemory(const unsigned char *fileData, int dataSize)
+{
+ unsigned char *fileDataPtr = (unsigned char *)fileData;
+
+ char signature[5] = { 0 };
+ short version = 0;
+ short reserved = 0;
+ int propertyCount = 0;
+
+ memcpy(signature, fileDataPtr, 4);
+ memcpy(&version, fileDataPtr + 4, sizeof(short));
+ memcpy(&reserved, fileDataPtr + 4 + 2, sizeof(short));
+ memcpy(&propertyCount, fileDataPtr + 4 + 2 + 2, sizeof(int));
+ fileDataPtr += 12;
+
+ if ((signature[0] == 'r') &&
+ (signature[1] == 'G') &&
+ (signature[2] == 'S') &&
+ (signature[3] == ' '))
+ {
+ short controlId = 0;
+ short propertyId = 0;
+ unsigned int propertyValue = 0;
+
+ for (int i = 0; i < propertyCount; i++)
+ {
+ memcpy(&controlId, fileDataPtr, sizeof(short));
+ memcpy(&propertyId, fileDataPtr + 2, sizeof(short));
+ memcpy(&propertyValue, fileDataPtr + 2 + 2, sizeof(unsigned int));
+ fileDataPtr += 8;
+
+ if (controlId == 0) // DEFAULT control
+ {
+ // If a DEFAULT property is loaded, it is propagated to all controls
+ // NOTE: All DEFAULT properties should be defined first in the file
+ GuiSetStyle(0, (int)propertyId, propertyValue);
+
+ if (propertyId < RAYGUI_MAX_PROPS_BASE) for (int i = 1; i < RAYGUI_MAX_CONTROLS; i++) GuiSetStyle(i, (int)propertyId, propertyValue);
+ }
+ else GuiSetStyle((int)controlId, (int)propertyId, propertyValue);
+ }
+
+ // Font loading is highly dependant on raylib API to load font data and image
+
+#if !defined(RAYGUI_STANDALONE)
+ // Load custom font if available
+ int fontDataSize = 0;
+ memcpy(&fontDataSize, fileDataPtr, sizeof(int));
+ fileDataPtr += 4;
+
+ if (fontDataSize > 0)
+ {
+ Font font = { 0 };
+ int fontType = 0; // 0-Normal, 1-SDF
+
+ memcpy(&font.baseSize, fileDataPtr, sizeof(int));
+ memcpy(&font.glyphCount, fileDataPtr + 4, sizeof(int));
+ memcpy(&fontType, fileDataPtr + 4 + 4, sizeof(int));
+ fileDataPtr += 12;
+
+ // Load font white rectangle
+ Rectangle fontWhiteRec = { 0 };
+ memcpy(&fontWhiteRec, fileDataPtr, sizeof(Rectangle));
+ fileDataPtr += 16;
+
+ // Load font image parameters
+ int fontImageUncompSize = 0;
+ int fontImageCompSize = 0;
+ memcpy(&fontImageUncompSize, fileDataPtr, sizeof(int));
+ memcpy(&fontImageCompSize, fileDataPtr + 4, sizeof(int));
+ fileDataPtr += 8;
+
+ Image imFont = { 0 };
+ imFont.mipmaps = 1;
+ memcpy(&imFont.width, fileDataPtr, sizeof(int));
+ memcpy(&imFont.height, fileDataPtr + 4, sizeof(int));
+ memcpy(&imFont.format, fileDataPtr + 4 + 4, sizeof(int));
+ fileDataPtr += 12;
+
+ if ((fontImageCompSize > 0) && (fontImageCompSize != fontImageUncompSize))
+ {
+ // Compressed font atlas image data (DEFLATE), it requires DecompressData()
+ int dataUncompSize = 0;
+ unsigned char *compData = (unsigned char *)RAYGUI_MALLOC(fontImageCompSize);
+ memcpy(compData, fileDataPtr, fontImageCompSize);
+ fileDataPtr += fontImageCompSize;
+
+ imFont.data = DecompressData(compData, fontImageCompSize, &dataUncompSize);
+
+ // Security check, dataUncompSize must match the provided fontImageUncompSize
+ if (dataUncompSize != fontImageUncompSize) RAYGUI_LOG("WARNING: Uncompressed font atlas image data could be corrupted");
+
+ RAYGUI_FREE(compData);
+ }
+ else
+ {
+ // Font atlas image data is not compressed
+ imFont.data = (unsigned char *)RAYGUI_MALLOC(fontImageUncompSize);
+ memcpy(imFont.data, fileDataPtr, fontImageUncompSize);
+ fileDataPtr += fontImageUncompSize;
+ }
+
+ if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture);
+ font.texture = LoadTextureFromImage(imFont);
+
+ RAYGUI_FREE(imFont.data);
+
+ // Validate font atlas texture was loaded correctly
+ if (font.texture.id != 0)
+ {
+ // Load font recs data
+ int recsDataSize = font.glyphCount*sizeof(Rectangle);
+ int recsDataCompressedSize = 0;
+
+ // WARNING: Version 400 adds the compression size parameter
+ if (version >= 400)
+ {
+ // RGS files version 400 support compressed recs data
+ memcpy(&recsDataCompressedSize, fileDataPtr, sizeof(int));
+ fileDataPtr += sizeof(int);
+ }
+
+ if ((recsDataCompressedSize > 0) && (recsDataCompressedSize != recsDataSize))
+ {
+ // Recs data is compressed, uncompress it
+ unsigned char *recsDataCompressed = (unsigned char *)RAYGUI_MALLOC(recsDataCompressedSize);
+
+ memcpy(recsDataCompressed, fileDataPtr, recsDataCompressedSize);
+ fileDataPtr += recsDataCompressedSize;
+
+ int recsDataUncompSize = 0;
+ font.recs = (Rectangle *)DecompressData(recsDataCompressed, recsDataCompressedSize, &recsDataUncompSize);
+
+ // Security check, data uncompressed size must match the expected original data size
+ if (recsDataUncompSize != recsDataSize) RAYGUI_LOG("WARNING: Uncompressed font recs data could be corrupted");
+
+ RAYGUI_FREE(recsDataCompressed);
+ }
+ else
+ {
+ // Recs data is uncompressed
+ font.recs = (Rectangle *)RAYGUI_CALLOC(font.glyphCount, sizeof(Rectangle));
+ for (int i = 0; i < font.glyphCount; i++)
+ {
+ memcpy(&font.recs[i], fileDataPtr, sizeof(Rectangle));
+ fileDataPtr += sizeof(Rectangle);
+ }
+ }
+
+ // Load font glyphs info data
+ int glyphsDataSize = font.glyphCount*16; // 16 bytes data per glyph
+ int glyphsDataCompressedSize = 0;
+
+ // WARNING: Version 400 adds the compression size parameter
+ if (version >= 400)
+ {
+ // RGS files version 400 support compressed glyphs data
+ memcpy(&glyphsDataCompressedSize, fileDataPtr, sizeof(int));
+ fileDataPtr += sizeof(int);
+ }
+
+ // Allocate required glyphs space to fill with data
+ font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo));
+
+ if ((glyphsDataCompressedSize > 0) && (glyphsDataCompressedSize != glyphsDataSize))
+ {
+ // Glyphs data is compressed, uncompress it
+ unsigned char *glypsDataCompressed = (unsigned char *)RAYGUI_MALLOC(glyphsDataCompressedSize);
+
+ memcpy(glypsDataCompressed, fileDataPtr, glyphsDataCompressedSize);
+ fileDataPtr += glyphsDataCompressedSize;
+
+ int glyphsDataUncompSize = 0;
+ unsigned char *glyphsDataUncomp = DecompressData(glypsDataCompressed, glyphsDataCompressedSize, &glyphsDataUncompSize);
+
+ // Security check, data uncompressed size must match the expected original data size
+ if (glyphsDataUncompSize != glyphsDataSize) RAYGUI_LOG("WARNING: Uncompressed font glyphs data could be corrupted");
+
+ unsigned char *glyphsDataUncompPtr = glyphsDataUncomp;
+
+ for (int i = 0; i < font.glyphCount; i++)
+ {
+ memcpy(&font.glyphs[i].value, glyphsDataUncompPtr, sizeof(int));
+ memcpy(&font.glyphs[i].offsetX, glyphsDataUncompPtr + 4, sizeof(int));
+ memcpy(&font.glyphs[i].offsetY, glyphsDataUncompPtr + 8, sizeof(int));
+ memcpy(&font.glyphs[i].advanceX, glyphsDataUncompPtr + 12, sizeof(int));
+ glyphsDataUncompPtr += 16;
+ }
+
+ RAYGUI_FREE(glypsDataCompressed);
+ RAYGUI_FREE(glyphsDataUncomp);
+ }
+ else
+ {
+ // Glyphs data is uncompressed
+ for (int i = 0; i < font.glyphCount; i++)
+ {
+ memcpy(&font.glyphs[i].value, fileDataPtr, sizeof(int));
+ memcpy(&font.glyphs[i].offsetX, fileDataPtr + 4, sizeof(int));
+ memcpy(&font.glyphs[i].offsetY, fileDataPtr + 8, sizeof(int));
+ memcpy(&font.glyphs[i].advanceX, fileDataPtr + 12, sizeof(int));
+ fileDataPtr += 16;
+ }
+ }
+ }
+ else font = GetFontDefault(); // Fallback in case of errors loading font atlas texture
+
+ GuiSetFont(font);
+
+ // Set font texture source rectangle to be used as white texture to draw shapes
+ // NOTE: It makes possible to draw shapes and text (full UI) in a single draw call
+ if ((fontWhiteRec.x > 0) &&
+ (fontWhiteRec.y > 0) &&
+ (fontWhiteRec.width > 0) &&
+ (fontWhiteRec.height > 0)) SetShapesTexture(font.texture, fontWhiteRec);
+ }
+#endif
+ }
+}
+
// Gui get text width considering icon
static int GetTextWidth(const char *text)
{
@@ -3823,7 +4558,7 @@ static int GetTextWidth(const char *text)
{
if (text[0] == '#')
{
- for (int i = 1; (text[i] != '\0') && (i < 5); i++)
+ for (int i = 1; (i < 5) && (text[i] != '\0'); i++)
{
if (text[i] == '#')
{
@@ -3858,10 +4593,10 @@ static int GetTextWidth(const char *text)
int codepoint = GetCodepointNext(&text[i], &codepointSize);
int codepointIndex = GetGlyphIndex(guiFont, codepoint);
- if (guiFont.glyphs[codepointIndex].advanceX == 0) glyphWidth = ((float)guiFont.recs[codepointIndex].width*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
- else glyphWidth = ((float)guiFont.glyphs[codepointIndex].advanceX*scaleFactor + GuiGetStyle(DEFAULT, TEXT_SPACING));
+ if (guiFont.glyphs[codepointIndex].advanceX == 0) glyphWidth = ((float)guiFont.recs[codepointIndex].width*scaleFactor);
+ else glyphWidth = ((float)guiFont.glyphs[codepointIndex].advanceX*scaleFactor);
- textSize.x += glyphWidth;
+ textSize.x += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
}
}
@@ -3877,27 +4612,31 @@ static Rectangle GetTextBounds(int control, Rectangle bounds)
Rectangle textBounds = bounds;
textBounds.x = bounds.x + GuiGetStyle(control, BORDER_WIDTH);
- textBounds.y = bounds.y + GuiGetStyle(control, BORDER_WIDTH);
+ textBounds.y = bounds.y + GuiGetStyle(control, BORDER_WIDTH) + GuiGetStyle(control, TEXT_PADDING);
textBounds.width = bounds.width - 2*GuiGetStyle(control, BORDER_WIDTH) - 2*GuiGetStyle(control, TEXT_PADDING);
- textBounds.height = bounds.height - 2*GuiGetStyle(control, BORDER_WIDTH);
+ textBounds.height = bounds.height - 2*GuiGetStyle(control, BORDER_WIDTH) - 2*GuiGetStyle(control, TEXT_PADDING); // NOTE: Text is processed line per line!
- // Consider TEXT_PADDING properly, depends on control type and TEXT_ALIGNMENT
+ // Depending on control, TEXT_PADDING and TEXT_ALIGNMENT properties could affect the text-bounds
switch (control)
{
- case COMBOBOX: textBounds.width -= (GuiGetStyle(control, COMBO_BUTTON_WIDTH) + GuiGetStyle(control, COMBO_BUTTON_SPACING)); break;
- //case VALUEBOX: break; // NOTE: ValueBox text value always centered, text padding applies to label
+ case COMBOBOX:
+ case DROPDOWNBOX:
+ case LISTVIEW:
+ // TODO: Special cases (no label): COMBOBOX, DROPDOWNBOX, LISTVIEW
+ case SLIDER:
+ case CHECKBOX:
+ case VALUEBOX:
+ case SPINNER:
+ // TODO: More special cases (label on side): SLIDER, CHECKBOX, VALUEBOX, SPINNER
default:
{
+ // TODO: WARNING: TEXT_ALIGNMENT is already considered in GuiDrawText()
if (GuiGetStyle(control, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT) textBounds.x -= GuiGetStyle(control, TEXT_PADDING);
else textBounds.x += GuiGetStyle(control, TEXT_PADDING);
- textBounds.width -= 2 * GuiGetStyle(control, TEXT_PADDING);
}
break;
}
- // TODO: Special cases (no label): COMBOBOX, DROPDOWNBOX, LISTVIEW (scrollbar?)
- // More special cases (label on side): CHECKBOX, SLIDER, VALUEBOX, SPINNER
-
return textBounds;
}
@@ -3945,13 +4684,13 @@ const char **GetTextLines(const char *text, int *count)
lines[0] = text;
int len = 0;
*count = 1;
- int lineSize = 0; // Stores current line size, not returned
+ //int lineSize = 0; // Stores current line size, not returned
for (int i = 0, k = 0; (i < textSize) && (*count < RAYGUI_MAX_TEXT_LINES); i++)
{
if (text[i] == '\n')
{
- lineSize = len;
+ //lineSize = len;
k++;
lines[k] = &text[i + 1]; // WARNING: next value is valid?
len = 0;
@@ -3965,8 +4704,37 @@ const char **GetTextLines(const char *text, int *count)
return lines;
}
+// Get text width to next space for provided string
+static float GetNextSpaceWidth(const char *text, int *nextSpaceIndex)
+{
+ float width = 0;
+ int codepointByteCount = 0;
+ int codepoint = 0;
+ int index = 0;
+ float glyphWidth = 0;
+ float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/guiFont.baseSize;
+
+ for (int i = 0; text[i] != '\0'; i++)
+ {
+ if (text[i] != ' ')
+ {
+ codepoint = GetCodepoint(&text[i], &codepointByteCount);
+ index = GetGlyphIndex(guiFont, codepoint);
+ glyphWidth = (guiFont.glyphs[index].advanceX == 0)? guiFont.recs[index].width*scaleFactor : guiFont.glyphs[index].advanceX*scaleFactor;
+ width += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
+ }
+ else
+ {
+ *nextSpaceIndex = i;
+ break;
+ }
+ }
+
+ return width;
+}
+
// Gui draw text using default font
-static void GuiDrawText(const char *text, Rectangle bounds, int alignment, Color tint)
+static void GuiDrawText(const char *text, Rectangle textBounds, int alignment, Color tint)
{
#define TEXT_VALIGN_PIXEL_OFFSET(h) ((int)h%2) // Vertical alignment for pixel perfect
@@ -3974,118 +4742,191 @@ static void GuiDrawText(const char *text, Rectangle bounds, int alignment, Color
#define ICON_TEXT_PADDING 4
#endif
- // We process the text lines one by one
- if ((text != NULL) && (text[0] != '\0'))
+ if ((text == NULL) || (text[0] == '\0')) return; // Security check
+
+ // PROCEDURE:
+ // - Text is processed line per line
+ // - For every line, horizontal alignment is defined
+ // - For all text, vertical alignment is defined (multiline text only)
+ // - For every line, wordwrap mode is checked (useful for GuitextBox(), read-only)
+
+ // Get text lines (using '\n' as delimiter) to be processed individually
+ // WARNING: We can't use GuiTextSplit() function because it can be already used
+ // before the GuiDrawText() call and its buffer is static, it would be overriden :(
+ int lineCount = 0;
+ const char **lines = GetTextLines(text, &lineCount);
+
+ // Text style variables
+ //int alignment = GuiGetStyle(DEFAULT, TEXT_ALIGNMENT);
+ int alignmentVertical = GuiGetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL);
+ int wrapMode = GuiGetStyle(DEFAULT, TEXT_WRAP_MODE); // Wrap-mode only available in read-only mode, no for text editing
+
+ // TODO: WARNING: This totalHeight is not valid for vertical alignment in case of word-wrap
+ float totalHeight = (float)(lineCount*GuiGetStyle(DEFAULT, TEXT_SIZE) + (lineCount - 1)*GuiGetStyle(DEFAULT, TEXT_SIZE)/2);
+ float posOffsetY = 0.0f;
+
+ for (int i = 0; i < lineCount; i++)
{
- // Get text lines ('\n' delimiter) to process lines individually
- // NOTE: We can't use GuiTextSplit() because it can be already use before calling
- // GuiDrawText() and static buffer would be overriden :(
- int lineCount = 0;
- const char **lines = GetTextLines(text, &lineCount);
+ int iconId = 0;
+ lines[i] = GetTextIcon(lines[i], &iconId); // Check text for icon and move cursor
- //Rectangle textBounds = GetTextBounds(LABEL, bounds);
- float totalHeight = (float)(lineCount*GuiGetStyle(DEFAULT, TEXT_SIZE) + (lineCount - 1)*GuiGetStyle(DEFAULT, TEXT_SIZE)/2);
- float posOffsetY = 0;
+ // Get text position depending on alignment and iconId
+ //---------------------------------------------------------------------------------
+ Vector2 textBoundsPosition = { textBounds.x, textBounds.y };
- for (int i = 0; i < lineCount; i++)
+ // NOTE: We get text size after icon has been processed
+ // WARNING: GetTextWidth() also processes text icon to get width! -> Really needed?
+ int textSizeX = GetTextWidth(lines[i]);
+
+ // If text requires an icon, add size to measure
+ if (iconId >= 0)
{
- int iconId = 0;
- lines[i] = GetTextIcon(lines[i], &iconId); // Check text for icon and move cursor
+ textSizeX += RAYGUI_ICON_SIZE*guiIconScale;
- // Get text position depending on alignment and iconId
- //---------------------------------------------------------------------------------
- Vector2 position = { bounds.x, bounds.y };
+ // WARNING: If only icon provided, text could be pointing to EOF character: '\0'
+#if !defined(RAYGUI_NO_ICONS)
+ if ((lines[i] != NULL) && (lines[i][0] != '\0')) textSizeX += ICON_TEXT_PADDING;
+#endif
+ }
- // TODO: We get text size after icon has been processed
- // WARNING: GetTextWidth() also processes text icon to get width! -> Really needed?
- int textSizeX = GetTextWidth(lines[i]);
+ // Check guiTextAlign global variables
+ switch (alignment)
+ {
+ case TEXT_ALIGN_LEFT: textBoundsPosition.x = textBounds.x; break;
+ case TEXT_ALIGN_CENTER: textBoundsPosition.x = textBounds.x + textBounds.width/2 - textSizeX/2; break;
+ case TEXT_ALIGN_RIGHT: textBoundsPosition.x = textBounds.x + textBounds.width - textSizeX; break;
+ default: break;
+ }
- // If text requires an icon, add size to measure
- if (iconId >= 0)
- {
- textSizeX += RAYGUI_ICON_SIZE*guiIconScale;
+ switch (alignmentVertical)
+ {
+ // Only valid in case of wordWrap = 0;
+ case TEXT_ALIGN_TOP: textBoundsPosition.y = textBounds.y + posOffsetY; break;
+ case TEXT_ALIGN_MIDDLE: textBoundsPosition.y = textBounds.y + posOffsetY + textBounds.height/2 - totalHeight/2 + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height); break;
+ case TEXT_ALIGN_BOTTOM: textBoundsPosition.y = textBounds.y + posOffsetY + textBounds.height - totalHeight + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height); break;
+ default: break;
+ }
- // WARNING: If only icon provided, text could be pointing to EOF character: '\0'
- if ((lines[i] != NULL) && (lines[i][0] != '\0')) textSizeX += ICON_TEXT_PADDING;
- }
+ // NOTE: Make sure we get pixel-perfect coordinates,
+ // In case of decimals we got weird text positioning
+ textBoundsPosition.x = (float)((int)textBoundsPosition.x);
+ textBoundsPosition.y = (float)((int)textBoundsPosition.y);
+ //---------------------------------------------------------------------------------
- // Check guiTextAlign global variables
- switch (alignment)
- {
- case TEXT_ALIGN_LEFT:
- {
- position.x = bounds.x;
- position.y = bounds.y + posOffsetY + bounds.height/2 - totalHeight/2 + TEXT_VALIGN_PIXEL_OFFSET(bounds.height);
- } break;
- case TEXT_ALIGN_CENTER:
- {
- position.x = bounds.x + bounds.width/2 - textSizeX/2;
- position.y = bounds.y + posOffsetY + bounds.height/2 - totalHeight/2 + TEXT_VALIGN_PIXEL_OFFSET(bounds.height);
- } break;
- case TEXT_ALIGN_RIGHT:
- {
- position.x = bounds.x + bounds.width - textSizeX;
- position.y = bounds.y + posOffsetY + bounds.height/2 - totalHeight/2 + TEXT_VALIGN_PIXEL_OFFSET(bounds.height);
- } break;
- default: break;
- }
+ // Draw text (with icon if available)
+ //---------------------------------------------------------------------------------
+#if !defined(RAYGUI_NO_ICONS)
+ if (iconId >= 0)
+ {
+ // NOTE: We consider icon height, probably different than text size
+ GuiDrawIcon(iconId, (int)textBoundsPosition.x, (int)(textBounds.y + textBounds.height/2 - RAYGUI_ICON_SIZE*guiIconScale/2 + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height)), guiIconScale, tint);
+ textBoundsPosition.x += (RAYGUI_ICON_SIZE*guiIconScale + ICON_TEXT_PADDING);
+ }
+#endif
+ // Get size in bytes of text,
+ // considering end of line and line break
+ int lineSize = 0;
+ for (int c = 0; (lines[i][c] != '\0') && (lines[i][c] != '\n') && (lines[i][c] != '\r'); c++, lineSize++){ }
+ float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/guiFont.baseSize;
+
+ int lastSpaceIndex = 0;
+ bool tempWrapCharMode = false;
+
+ int textOffsetY = 0;
+ float textOffsetX = 0.0f;
+ float glyphWidth = 0;
+ for (int c = 0, codepointSize = 0; c < lineSize; c += codepointSize)
+ {
+ int codepoint = GetCodepointNext(&lines[i][c], &codepointSize);
+ int index = GetGlyphIndex(guiFont, codepoint);
- // NOTE: Make sure we get pixel-perfect coordinates,
- // In case of decimals we got weird text positioning
- position.x = (float)((int)position.x);
- position.y = (float)((int)position.y);
- //---------------------------------------------------------------------------------
+ // NOTE: Normally we exit the decoding sequence as soon as a bad byte is found (and return 0x3f)
+ // but we need to draw all of the bad bytes using the '?' symbol moving one byte
+ if (codepoint == 0x3f) codepointSize = 1; // TODO: Review not recognized codepoints size
- // Draw text (with icon if available)
- //---------------------------------------------------------------------------------
-#if !defined(RAYGUI_NO_ICONS)
- if (iconId >= 0)
+ // Wrap mode text measuring, to validate if
+ // it can be drawn or a new line is required
+ if (wrapMode == TEXT_WRAP_CHAR)
{
- // NOTE: We consider icon height, probably different than text size
- GuiDrawIcon(iconId, (int)position.x, (int)(bounds.y + bounds.height/2 - RAYGUI_ICON_SIZE*guiIconScale/2 + TEXT_VALIGN_PIXEL_OFFSET(bounds.height)), guiIconScale, tint);
- position.x += (RAYGUI_ICON_SIZE*guiIconScale + ICON_TEXT_PADDING);
- }
-#endif
- //DrawTextEx(guiFont, text, position, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), (float)GuiGetStyle(DEFAULT, TEXT_SPACING), tint);
+ // Get glyph width to check if it goes out of bounds
+ if (guiFont.glyphs[index].advanceX == 0) glyphWidth = ((float)guiFont.recs[index].width*scaleFactor);
+ else glyphWidth = (float)guiFont.glyphs[index].advanceX*scaleFactor;
- // Get size in bytes of text,
- // considering end of line and line break
- int size = 0;
- for (int c = 0; (lines[i][c] != '\0') && (lines[i][c] != '\n'); c++, size++){ }
- float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/guiFont.baseSize;
+ // Jump to next line if current character reach end of the box limits
+ if ((textOffsetX + glyphWidth) > textBounds.width)
+ {
+ textOffsetX = 0.0f;
+ textOffsetY += GuiGetStyle(DEFAULT, TEXT_LINE_SPACING);
- int textOffsetY = 0;
- float textOffsetX = 0.0f;
- for (int c = 0, codepointSize = 0; c < size; c += codepointSize)
+ if (tempWrapCharMode) // Wrap at char level when too long words
+ {
+ wrapMode = TEXT_WRAP_WORD;
+ tempWrapCharMode = false;
+ }
+ }
+ }
+ else if (wrapMode == TEXT_WRAP_WORD)
{
- int codepoint = GetCodepointNext(&lines[i][c], &codepointSize);
- int index = GetGlyphIndex(guiFont, codepoint);
+ if (codepoint == 32) lastSpaceIndex = c;
- // NOTE: Normally we exit the decoding sequence as soon as a bad byte is found (and return 0x3f)
- // but we need to draw all of the bad bytes using the '?' symbol moving one byte
- if (codepoint == 0x3f) codepointSize = 1;
+ // Get width to next space in line
+ int nextSpaceIndex = 0;
+ float nextSpaceWidth = GetNextSpaceWidth(lines[i] + c, &nextSpaceIndex);
- if (codepoint == '\n') break; // WARNING: Lines are already processed manually, no need to keep drawing after this codepoint
- else
+ int nextSpaceIndex2 = 0;
+ float nextWordSize = GetNextSpaceWidth(lines[i] + lastSpaceIndex + 1, &nextSpaceIndex2);
+
+ if (nextWordSize > textBounds.width)
+ {
+ // Considering the case the next word is longer than bounds
+ tempWrapCharMode = true;
+ wrapMode = TEXT_WRAP_CHAR;
+ }
+ else if ((textOffsetX + nextSpaceWidth) > textBounds.width)
+ {
+ textOffsetX = 0.0f;
+ textOffsetY += GuiGetStyle(DEFAULT, TEXT_LINE_SPACING);
+ }
+ }
+
+ if (codepoint == '\n') break; // WARNING: Lines are already processed manually, no need to keep drawing after this codepoint
+ else
+ {
+ // TODO: There are multiple types of spaces in Unicode,
+ // maybe it's a good idea to add support for more: http://jkorpela.fi/chars/spaces.html
+ if ((codepoint != ' ') && (codepoint != '\t')) // Do not draw codepoints with no glyph
{
- if ((codepoint != ' ') && (codepoint != '\t'))
+ if (wrapMode == TEXT_WRAP_NONE)
{
- // TODO: Draw only required text glyphs fitting the bounds.width, '...' can be appended at the end of the text
- if (textOffsetX < bounds.width)
+ // Draw only required text glyphs fitting the textBounds.width
+ if (textOffsetX <= (textBounds.width - glyphWidth))
{
- DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ position.x + textOffsetX, position.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), tint);
+ DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha));
+ }
+ }
+ else if ((wrapMode == TEXT_WRAP_CHAR) || (wrapMode == TEXT_WRAP_WORD))
+ {
+ // Draw only glyphs inside the bounds
+ if ((textBoundsPosition.y + textOffsetY) <= (textBounds.y + textBounds.height - GuiGetStyle(DEFAULT, TEXT_SIZE)))
+ {
+ DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha));
}
}
-
- if (guiFont.glyphs[index].advanceX == 0) textOffsetX += ((float)guiFont.recs[index].width*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
- else textOffsetX += ((float)guiFont.glyphs[index].advanceX*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
}
- }
- posOffsetY += (float)GuiGetStyle(DEFAULT, TEXT_SIZE)*1.5f; // TODO: GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)?
- //---------------------------------------------------------------------------------
+ if (guiFont.glyphs[index].advanceX == 0) textOffsetX += ((float)guiFont.recs[index].width*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
+ else textOffsetX += ((float)guiFont.glyphs[index].advanceX*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
+ }
}
+
+ if (wrapMode == TEXT_WRAP_NONE) posOffsetY += (float)GuiGetStyle(DEFAULT, TEXT_LINE_SPACING);
+ else if ((wrapMode == TEXT_WRAP_CHAR) || (wrapMode == TEXT_WRAP_WORD)) posOffsetY += (textOffsetY + (float)GuiGetStyle(DEFAULT, TEXT_LINE_SPACING));
+ //---------------------------------------------------------------------------------
}
+
+#if defined(RAYGUI_DEBUG_TEXT_BOUNDS)
+ GuiDrawRectangle(textBounds, 0, WHITE, Fade(BLUE, 0.4f));
+#endif
}
// Gui draw rectangle using default raygui plain style with borders
@@ -4094,25 +4935,29 @@ static void GuiDrawRectangle(Rectangle rec, int borderWidth, Color borderColor,
if (color.a > 0)
{
// Draw rectangle filled with color
- DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, color);
+ DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, GuiFade(color, guiAlpha));
}
if (borderWidth > 0)
{
// Draw rectangle border lines with color
- DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, borderWidth, borderColor);
- DrawRectangle((int)rec.x, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, borderColor);
- DrawRectangle((int)rec.x + (int)rec.width - borderWidth, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, borderColor);
- DrawRectangle((int)rec.x, (int)rec.y + (int)rec.height - borderWidth, (int)rec.width, borderWidth, borderColor);
+ DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, borderWidth, GuiFade(borderColor, guiAlpha));
+ DrawRectangle((int)rec.x, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, GuiFade(borderColor, guiAlpha));
+ DrawRectangle((int)rec.x + (int)rec.width - borderWidth, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, GuiFade(borderColor, guiAlpha));
+ DrawRectangle((int)rec.x, (int)rec.y + (int)rec.height - borderWidth, (int)rec.width, borderWidth, GuiFade(borderColor, guiAlpha));
}
+
+#if defined(RAYGUI_DEBUG_RECS_BOUNDS)
+ DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, Fade(RED, 0.4f));
+#endif
}
// Draw tooltip using control bounds
static void GuiTooltip(Rectangle controlRec)
{
- if (!guiLocked && guiTooltip && (guiTooltipPtr != NULL))
+ if (!guiLocked && guiTooltip && (guiTooltipPtr != NULL) && !guiSliderDragging)
{
- Vector2 textSize = MeasureTextEx(GuiGetFont(), guiTooltipPtr, GuiGetStyle(DEFAULT, TEXT_SIZE), GuiGetStyle(DEFAULT, TEXT_SPACING));
+ Vector2 textSize = MeasureTextEx(GuiGetFont(), guiTooltipPtr, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
if ((controlRec.x + textSize.x + 16) > GetScreenWidth()) controlRec.x -= (textSize.x + 16 - controlRec.width);
@@ -4139,7 +4984,7 @@ static const char **GuiTextSplit(const char *text, char delimiter, int *count, i
// 2. Maximum size of text to split is RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE
// NOTE: Those definitions could be externally provided if required
- // WARNING: HACK: TODO: Review!
+ // TODO: HACK: GuiTextSplit() - Review how textRows are returned to user
// textRow is an externally provided array of integers that stores row number for every splitted string
#if !defined(RAYGUI_TEXTSPLIT_MAX_ITEMS)
@@ -4336,7 +5181,7 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue)
if (value > maxValue) value = maxValue;
if (value < minValue) value = minValue;
- const int range = maxValue - minValue;
+ const int valueRange = maxValue - minValue;
int sliderSize = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE);
// Calculate rectangles for all of the components
@@ -4349,15 +5194,27 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue)
{
arrowDownRight = RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)bounds.y + bounds.height - spinnerSize - GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)spinnerSize, (float)spinnerSize };
scrollbar = RAYGUI_CLITERAL(Rectangle){ bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING), arrowUpLeft.y + arrowUpLeft.height, bounds.width - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING)), bounds.height - arrowUpLeft.height - arrowDownRight.height - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH) };
- sliderSize = (sliderSize >= scrollbar.height)? ((int)scrollbar.height - 2) : sliderSize; // Make sure the slider won't get outside of the scrollbar
- slider = RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING), (float)scrollbar.y + (int)(((float)(value - minValue)/range)*(scrollbar.height - sliderSize)), (float)bounds.width - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)), (float)sliderSize };
+
+ // Make sure the slider won't get outside of the scrollbar
+ sliderSize = (sliderSize >= scrollbar.height)? ((int)scrollbar.height - 2) : sliderSize;
+ slider = RAYGUI_CLITERAL(Rectangle){
+ bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING),
+ scrollbar.y + (int)(((float)(value - minValue)/valueRange)*(scrollbar.height - sliderSize)),
+ bounds.width - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)),
+ (float)sliderSize };
}
else // horizontal
{
arrowDownRight = RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + bounds.width - spinnerSize - GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)spinnerSize, (float)spinnerSize };
scrollbar = RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x + arrowUpLeft.width, bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING), bounds.width - arrowUpLeft.width - arrowDownRight.width - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH), bounds.height - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING)) };
- sliderSize = (sliderSize >= scrollbar.width)? ((int)scrollbar.width - 2) : sliderSize; // Make sure the slider won't get outside of the scrollbar
- slider = RAYGUI_CLITERAL(Rectangle){ (float)scrollbar.x + (int)(((float)(value - minValue)/range)*(scrollbar.width - sliderSize)), (float)bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING), (float)sliderSize, (float)bounds.height - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)) };
+
+ // Make sure the slider won't get outside of the scrollbar
+ sliderSize = (sliderSize >= scrollbar.width)? ((int)scrollbar.width - 2) : sliderSize;
+ slider = RAYGUI_CLITERAL(Rectangle){
+ scrollbar.x + (int)(((float)(value - minValue)/valueRange)*(scrollbar.width - sliderSize)),
+ bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING),
+ (float)sliderSize,
+ bounds.height - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)) };
}
// Update control
@@ -4366,7 +5223,27 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue)
{
Vector2 mousePoint = GetMousePosition();
- if (CheckCollisionPointRec(mousePoint, bounds))
+ if (guiSliderDragging) // Keep dragging outside of bounds
+ {
+ if (IsMouseButtonDown(MOUSE_LEFT_BUTTON) &&
+ !CheckCollisionPointRec(mousePoint, arrowUpLeft) &&
+ !CheckCollisionPointRec(mousePoint, arrowDownRight))
+ {
+ if (CHECK_BOUNDS_ID(bounds, guiSliderActive))
+ {
+ state = STATE_PRESSED;
+
+ if (isVertical) value = (int)(((float)(mousePoint.y - scrollbar.y - slider.height/2)*valueRange)/(scrollbar.height - slider.height) + minValue);
+ else value = (int)(((float)(mousePoint.x - scrollbar.x - slider.width/2)*valueRange)/(scrollbar.width - slider.width) + minValue);
+ }
+ }
+ else
+ {
+ guiSliderDragging = false;
+ guiSliderActive = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 };
+ }
+ }
+ else if (CheckCollisionPointRec(mousePoint, bounds))
{
state = STATE_FOCUSED;
@@ -4374,26 +5251,38 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue)
int wheel = (int)GetMouseWheelMove();
if (wheel != 0) value += wheel;
+ // Handle mouse button down
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
{
- if (CheckCollisionPointRec(mousePoint, arrowUpLeft)) value -= range/GuiGetStyle(SCROLLBAR, SCROLL_SPEED);
- else if (CheckCollisionPointRec(mousePoint, arrowDownRight)) value += range/GuiGetStyle(SCROLLBAR, SCROLL_SPEED);
+ guiSliderDragging = true;
+ guiSliderActive = bounds; // Store bounds as an identifier when dragging starts
+
+ // Check arrows click
+ if (CheckCollisionPointRec(mousePoint, arrowUpLeft)) value -= valueRange/GuiGetStyle(SCROLLBAR, SCROLL_SPEED);
+ else if (CheckCollisionPointRec(mousePoint, arrowDownRight)) value += valueRange/GuiGetStyle(SCROLLBAR, SCROLL_SPEED);
+ else if (!CheckCollisionPointRec(mousePoint, slider))
+ {
+ // If click on scrollbar position but not on slider, place slider directly on that position
+ if (isVertical) value = (int)(((float)(mousePoint.y - scrollbar.y - slider.height/2)*valueRange)/(scrollbar.height - slider.height) + minValue);
+ else value = (int)(((float)(mousePoint.x - scrollbar.x - slider.width/2)*valueRange)/(scrollbar.width - slider.width) + minValue);
+ }
state = STATE_PRESSED;
}
- else if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
+
+ // Keyboard control on mouse hover scrollbar
+ /*
+ if (isVertical)
{
- if (!isVertical)
- {
- Rectangle scrollArea = { arrowUpLeft.x + arrowUpLeft.width, arrowUpLeft.y, scrollbar.width, bounds.height - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH) };
- if (CheckCollisionPointRec(mousePoint, scrollArea)) value = (int)(((float)(mousePoint.x - scrollArea.x - slider.width/2)*range)/(scrollArea.width - slider.width) + minValue);
- }
- else
- {
- Rectangle scrollArea = { arrowUpLeft.x, arrowUpLeft.y+arrowUpLeft.height, bounds.width - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH), scrollbar.height };
- if (CheckCollisionPointRec(mousePoint, scrollArea)) value = (int)(((float)(mousePoint.y - scrollArea.y - slider.height/2)*range)/(scrollArea.height - slider.height) + minValue);
- }
+ if (IsKeyDown(KEY_DOWN)) value += 5;
+ else if (IsKeyDown(KEY_UP)) value -= 5;
}
+ else
+ {
+ if (IsKeyDown(KEY_RIGHT)) value += 5;
+ else if (IsKeyDown(KEY_LEFT)) value -= 5;
+ }
+ */
}
// Normalize value
@@ -4404,10 +5293,10 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue)
// Draw control
//--------------------------------------------------------------------
- GuiDrawRectangle(bounds, GuiGetStyle(SCROLLBAR, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), guiAlpha), Fade(GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED)), guiAlpha)); // Draw the background
+ GuiDrawRectangle(bounds, GuiGetStyle(SCROLLBAR, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED))); // Draw the background
- GuiDrawRectangle(scrollbar, 0, BLANK, Fade(GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL)), guiAlpha)); // Draw the scrollbar active area background
- GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, BORDER + state*3)), guiAlpha)); // Draw the slider bar
+ GuiDrawRectangle(scrollbar, 0, BLANK, GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL))); // Draw the scrollbar active area background
+ GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BORDER + state*3))); // Draw the slider bar
// Draw arrows (using icon if available)
if (GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE))
@@ -4415,17 +5304,17 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue)
#if defined(RAYGUI_NO_ICONS)
GuiDrawText(isVertical? "^" : "<",
RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x, arrowUpLeft.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height },
- TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha));
+ TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))));
GuiDrawText(isVertical? "v" : ">",
RAYGUI_CLITERAL(Rectangle){ arrowDownRight.x, arrowDownRight.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height },
- TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha));
+ TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))));
#else
GuiDrawText(isVertical? "#121#" : "#118#",
RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x, arrowUpLeft.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height },
- TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3)), guiAlpha)); // ICON_ARROW_UP_FILL / ICON_ARROW_LEFT_FILL
+ TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3))); // ICON_ARROW_UP_FILL / ICON_ARROW_LEFT_FILL
GuiDrawText(isVertical? "#120#" : "#119#",
RAYGUI_CLITERAL(Rectangle){ arrowDownRight.x, arrowDownRight.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height },
- TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3)), guiAlpha)); // ICON_ARROW_DOWN_FILL / ICON_ARROW_RIGHT_FILL
+ TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3))); // ICON_ARROW_DOWN_FILL / ICON_ARROW_RIGHT_FILL
#endif
}
//--------------------------------------------------------------------
@@ -4433,6 +5322,18 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue)
return value;
}
+// Color fade-in or fade-out, alpha goes from 0.0f to 1.0f
+// WARNING: It multiplies current alpha by alpha scale factor
+static Color GuiFade(Color color, float alpha)
+{
+ if (alpha < 0.0f) alpha = 0.0f;
+ else if (alpha > 1.0f) alpha = 1.0f;
+
+ Color result = { color.r, color.g, color.b, (unsigned char)(color.a*alpha) };
+
+ return result;
+}
+
#if defined(RAYGUI_STANDALONE)
// Returns a Color struct from hexadecimal value
static Color GetColor(int hexValue)
@@ -4464,17 +5365,6 @@ static bool CheckCollisionPointRec(Vector2 point, Rectangle rec)
return collision;
}
-// Color fade-in or fade-out, alpha goes from 0.0f to 1.0f
-static Color Fade(Color color, float alpha)
-{
- if (alpha < 0.0f) alpha = 0.0f;
- else if (alpha > 1.0f) alpha = 1.0f;
-
- Color result = { color.r, color.g, color.b, (unsigned char)(255.0f*alpha) };
-
- return result;
-}
-
// Formatting of text with variables to 'embed'
static const char *TextFormat(const char *text, ...)
{
@@ -4510,7 +5400,7 @@ const char **TextSplit(const char *text, char delimiter, int *count)
// 2. Maximum size of text to split is RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE
#if !defined(RAYGUI_TEXTSPLIT_MAX_ITEMS)
- #define RAYGUI_TEXTSPLIT_MAX_ITEMS 128
+ #define RAYGUI_TEXTSPLIT_MAX_ITEMS 128
#endif
#if !defined(RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE)
#define RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE 1024
@@ -4612,34 +5502,38 @@ static int GetCodepointNext(const char *text, int *codepointSize)
{
const char *ptr = text;
int codepoint = 0x3f; // Codepoint (defaults to '?')
- *codepointSize = 0;
+ *codepointSize = 1;
// Get current codepoint and bytes processed
if (0xf0 == (0xf8 & ptr[0]))
{
// 4 byte UTF-8 codepoint
+ if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80) || ((ptr[3] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks
codepoint = ((0x07 & ptr[0]) << 18) | ((0x3f & ptr[1]) << 12) | ((0x3f & ptr[2]) << 6) | (0x3f & ptr[3]);
*codepointSize = 4;
}
else if (0xe0 == (0xf0 & ptr[0]))
{
// 3 byte UTF-8 codepoint */
+ if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks
codepoint = ((0x0f & ptr[0]) << 12) | ((0x3f & ptr[1]) << 6) | (0x3f & ptr[2]);
*codepointSize = 3;
}
else if (0xc0 == (0xe0 & ptr[0]))
{
// 2 byte UTF-8 codepoint
+ if((ptr[1] & 0xC0) ^ 0x80) { return codepoint; } //10xxxxxx checks
codepoint = ((0x1f & ptr[0]) << 6) | (0x3f & ptr[1]);
*codepointSize = 2;
}
- else
+ else if (0x00 == (0x80 & ptr[0]))
{
// 1 byte UTF-8 codepoint
codepoint = ptr[0];
*codepointSize = 1;
}
+
return codepoint;
}
#endif // RAYGUI_STANDALONE
diff --git a/src/extras/rlgl.h b/src/extras/rlgl.h
index 86208de..6cf9c7e 100644
--- a/src/extras/rlgl.h
+++ b/src/extras/rlgl.h
@@ -2,82 +2,83 @@
*
* rlgl v4.5 - A multi-OpenGL abstraction layer with an immediate-mode style API
*
-* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0)
-* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...)
+* DESCRIPTION:
+* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0)
+* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...)
*
-* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are
-* initialized on rlglInit() to accumulate vertex data.
+* ADDITIONAL NOTES:
+* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are
+* initialized on rlglInit() to accumulate vertex data.
*
-* When an internal state change is required all the stored vertex data is renderer in batch,
-* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch.
+* When an internal state change is required all the stored vertex data is renderer in batch,
+* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch.
*
-* Some additional resources are also loaded for convenience, here the complete list:
-* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data
-* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8
-* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs)
-*
-* Internal buffer (and additional resources) must be manually unloaded calling rlglClose().
+* Some resources are also loaded for convenience, here the complete list:
+* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data
+* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8
+* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs)
*
+* Internal buffer (and resources) must be manually unloaded calling rlglClose().
*
* CONFIGURATION:
+* #define GRAPHICS_API_OPENGL_11
+* #define GRAPHICS_API_OPENGL_21
+* #define GRAPHICS_API_OPENGL_33
+* #define GRAPHICS_API_OPENGL_43
+* #define GRAPHICS_API_OPENGL_ES2
+* #define GRAPHICS_API_OPENGL_ES3
+* Use selected OpenGL graphics backend, should be supported by platform
+* Those preprocessor defines are only used on rlgl module, if OpenGL version is
+* required by any other module, use rlGetVersion() to check it
*
-* #define GRAPHICS_API_OPENGL_11
-* #define GRAPHICS_API_OPENGL_21
-* #define GRAPHICS_API_OPENGL_33
-* #define GRAPHICS_API_OPENGL_43
-* #define GRAPHICS_API_OPENGL_ES2
-* Use selected OpenGL graphics backend, should be supported by platform
-* Those preprocessor defines are only used on rlgl module, if OpenGL version is
-* required by any other module, use rlGetVersion() to check it
-*
-* #define RLGL_IMPLEMENTATION
-* Generates the implementation of the library into the included file.
-* If not defined, the library is in header only mode and can be included in other headers
-* or source files without problems. But only ONE file should hold the implementation.
+* #define RLGL_IMPLEMENTATION
+* Generates the implementation of the library into the included file.
+* If not defined, the library is in header only mode and can be included in other headers
+* or source files without problems. But only ONE file should hold the implementation.
*
-* #define RLGL_RENDER_TEXTURES_HINT
-* Enable framebuffer objects (fbo) support (enabled by default)
-* Some GPUs could not support them despite the OpenGL version
+* #define RLGL_RENDER_TEXTURES_HINT
+* Enable framebuffer objects (fbo) support (enabled by default)
+* Some GPUs could not support them despite the OpenGL version
*
-* #define RLGL_SHOW_GL_DETAILS_INFO
-* Show OpenGL extensions and capabilities detailed logs on init
+* #define RLGL_SHOW_GL_DETAILS_INFO
+* Show OpenGL extensions and capabilities detailed logs on init
*
-* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT
-* Enable debug context (only available on OpenGL 4.3)
+* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT
+* Enable debug context (only available on OpenGL 4.3)
*
-* rlgl capabilities could be customized just defining some internal
-* values before library inclusion (default values listed):
+* rlgl capabilities could be customized just defining some internal
+* values before library inclusion (default values listed):
*
-* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits
-* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering)
-* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture)
-* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture())
+* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits
+* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering)
+* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture)
+* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture())
*
-* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack
-* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported
-* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance
-* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance
+* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack
+* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported
+* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance
+* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance
*
-* When loading a shader, the following vertex attribute and uniform
-* location names are tried to be set automatically:
+* When loading a shader, the following vertex attributes and uniform
+* location names are tried to be set automatically:
*
-* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0
-* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1
-* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2
-* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3
-* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4
-* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix
-* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix
-* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix
-* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix
-* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))
-* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color)
-* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0)
-* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1)
-* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2)
+* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0
+* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1
+* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2
+* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3
+* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4
+* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: 5
+* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix
+* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix
+* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix
+* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix
+* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView))
+* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color)
+* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0)
+* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1)
+* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2)
*
* DEPENDENCIES:
-*
* - OpenGL libraries (depending on platform and OpenGL version selected)
* - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core)
*
@@ -148,7 +149,8 @@
!defined(GRAPHICS_API_OPENGL_21) && \
!defined(GRAPHICS_API_OPENGL_33) && \
!defined(GRAPHICS_API_OPENGL_43) && \
- !defined(GRAPHICS_API_OPENGL_ES2)
+ !defined(GRAPHICS_API_OPENGL_ES2) && \
+ !defined(GRAPHICS_API_OPENGL_ES3)
#define GRAPHICS_API_OPENGL_33
#endif
@@ -179,6 +181,11 @@
#define GRAPHICS_API_OPENGL_33
#endif
+// OpenGL ES 3.0 uses OpenGL ES 2.0 functionality (and more)
+#if defined(GRAPHICS_API_OPENGL_ES3)
+ #define GRAPHICS_API_OPENGL_ES2
+#endif
+
// Support framebuffer objects by default
// NOTE: Some driver implementation do not support it, despite they should
#define RLGL_RENDER_TEXTURES_HINT
@@ -383,7 +390,8 @@ typedef enum {
RL_OPENGL_21, // OpenGL 2.1 (GLSL 120)
RL_OPENGL_33, // OpenGL 3.3 (GLSL 330)
RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330)
- RL_OPENGL_ES_20 // OpenGL ES 2.0 (GLSL 100)
+ RL_OPENGL_ES_20, // OpenGL ES 2.0 (GLSL 100)
+ RL_OPENGL_ES_30 // OpenGL ES 3.0 (GLSL 300 es)
} rlGlVersion;
// Trace log level
@@ -412,6 +420,9 @@ typedef enum {
RL_PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float)
RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float)
RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float)
+ RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float)
+ RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float)
+ RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float)
RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha)
RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha)
RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp
@@ -506,28 +517,28 @@ typedef enum {
// Framebuffer attachment type
// NOTE: By default up to 8 color channels defined, but it can be more
typedef enum {
- RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0
- RL_ATTACHMENT_COLOR_CHANNEL1, // Framebuffer attachment type: color 1
- RL_ATTACHMENT_COLOR_CHANNEL2, // Framebuffer attachment type: color 2
- RL_ATTACHMENT_COLOR_CHANNEL3, // Framebuffer attachment type: color 3
- RL_ATTACHMENT_COLOR_CHANNEL4, // Framebuffer attachment type: color 4
- RL_ATTACHMENT_COLOR_CHANNEL5, // Framebuffer attachment type: color 5
- RL_ATTACHMENT_COLOR_CHANNEL6, // Framebuffer attachment type: color 6
- RL_ATTACHMENT_COLOR_CHANNEL7, // Framebuffer attachment type: color 7
- RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth
- RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil
+ RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0
+ RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1
+ RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2
+ RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3
+ RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4
+ RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5
+ RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6
+ RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7
+ RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth
+ RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil
} rlFramebufferAttachType;
// Framebuffer texture attachment type
typedef enum {
- RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side
- RL_ATTACHMENT_CUBEMAP_NEGATIVE_X, // Framebuffer texture attachment type: cubemap, -X side
- RL_ATTACHMENT_CUBEMAP_POSITIVE_Y, // Framebuffer texture attachment type: cubemap, +Y side
- RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y, // Framebuffer texture attachment type: cubemap, -Y side
- RL_ATTACHMENT_CUBEMAP_POSITIVE_Z, // Framebuffer texture attachment type: cubemap, +Z side
- RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z, // Framebuffer texture attachment type: cubemap, -Z side
- RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d
- RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer
+ RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side
+ RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side
+ RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side
+ RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side
+ RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side
+ RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side
+ RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d
+ RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer
} rlFramebufferAttachTextureType;
// Face culling mode
@@ -607,6 +618,7 @@ RLAPI void rlDisableShader(void); // Disable shader progra
RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo)
RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer
RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers
+RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer
// General render state
RLAPI void rlEnableColorBlend(void); // Enable color blending
@@ -622,7 +634,8 @@ RLAPI void rlEnableScissorTest(void); // Enable scissor test
RLAPI void rlDisableScissorTest(void); // Disable scissor test
RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test
RLAPI void rlEnableWireMode(void); // Enable wire mode
-RLAPI void rlDisableWireMode(void); // Disable wire mode
+RLAPI void rlEnablePointMode(void); // Enable point mode
+RLAPI void rlDisableWireMode(void); // Disable wire mode ( and point ) maybe rename
RLAPI void rlSetLineWidth(float width); // Set the line drawing width
RLAPI float rlGetLineWidth(void); // Get the line drawing width
RLAPI void rlEnableSmoothLines(void); // Enable line aliasing
@@ -787,13 +800,17 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
#define GLAD_FREE RL_FREE
#define GLAD_GL_IMPLEMENTATION
- #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers
+ #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers
#endif
-#if defined(GRAPHICS_API_OPENGL_ES2)
+#if defined(GRAPHICS_API_OPENGL_ES3)
+ #include // OpenGL ES 3.0 library
+ #define GL_GLEXT_PROTOTYPES
+ #include // OpenGL ES 2.0 extensions library
+#elif defined(GRAPHICS_API_OPENGL_ES2)
// NOTE: OpenGL ES 2.0 can be enabled on PLATFORM_DESKTOP,
// in that case, functions are loaded from a custom glad for OpenGL ES 2.0
- #if defined(PLATFORM_DESKTOP)
+ #if defined(PLATFORM_DESKTOP) || defined(PLATFORM_DESKTOP_SDL)
#define GLAD_GLES2_IMPLEMENTATION
#include "external/glad_gles2.h"
#else
@@ -805,7 +822,7 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
// It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi
// provided headers (despite being defined in official Khronos GLES2 headers)
- #if defined(PLATFORM_RPI) || defined(PLATFORM_DRM)
+ #if defined(PLATFORM_DRM)
typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor);
@@ -887,8 +904,10 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
#if defined(GRAPHICS_API_OPENGL_ES2)
#define glClearDepth glClearDepthf
- #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER
- #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER
+ #if !defined(GRAPHICS_API_OPENGL_ES3)
+ #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER
+ #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER
+ #endif
#endif
// Default shader vertex attribute names to set location points
@@ -999,6 +1018,7 @@ typedef struct rlglData {
bool texDepth; // Depth textures supported (GL_ARB_depth_texture, GL_OES_depth_texture)
bool texDepthWebGL; // Depth textures supported WebGL specific (GL_WEBGL_depth_texture)
bool texFloat32; // float textures support (32 bit per channel) (GL_OES_texture_float)
+ bool texFloat16; // half float textures support (16 bit per channel) (GL_OES_texture_half_float)
bool texCompDXT; // DDS texture compression support (GL_EXT_texture_compression_s3tc, GL_WEBGL_compressed_texture_s3tc, GL_WEBKIT_WEBGL_compressed_texture_s3tc)
bool texCompETC1; // ETC1 texture compression support (GL_OES_compressed_ETC1_RGB8_texture, GL_WEBGL_compressed_texture_etc1)
bool texCompETC2; // ETC2/EAC texture compression support (GL_ARB_ES3_compatibility)
@@ -1026,7 +1046,7 @@ typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions
static rlglData RLGL = { 0 };
#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2
-#if defined(GRAPHICS_API_OPENGL_ES2)
+#if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3)
// NOTE: VAO functionality is exposed through extensions (OES)
static PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays = NULL;
static PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray = NULL;
@@ -1045,7 +1065,7 @@ static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL;
static void rlLoadShaderDefault(void); // Load default shader
static void rlUnloadShaderDefault(void); // Unload default shader
#if defined(RLGL_SHOW_GL_DETAILS_INFO)
-static char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name
+static const char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name
#endif // RLGL_SHOW_GL_DETAILS_INFO
#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2
@@ -1416,8 +1436,7 @@ void rlVertex3f(float x, float y, float z)
RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx;
RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy;
- // TODO: Add current normal
- // By default rlVertexBuffer type does not store normals
+ // WARNING: By default rlVertexBuffer struct does not store normals
// Add current color
RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr;
@@ -1702,11 +1721,19 @@ void rlDisableFramebuffer(void)
#endif
}
+// Blit active framebuffer to main framebuffer
+void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask)
+{
+#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT)
+ glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST);
+#endif
+}
+
// Activate multiple draw color buffers
// NOTE: One color buffer is always active by default
void rlActiveDrawBuffers(int count)
{
-#if (defined(GRAPHICS_API_OPENGL_33) && defined(RLGL_RENDER_TEXTURES_HINT))
+#if ((defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT))
// NOTE: Maximum number of draw buffers supported is implementation dependant,
// it can be queried with glGet*() but it must be at least 8
//GLint maxDrawBuffers = 0;
@@ -1718,6 +1745,16 @@ void rlActiveDrawBuffers(int count)
else
{
unsigned int buffers[8] = {
+#if defined(GRAPHICS_API_OPENGL_ES3)
+ GL_COLOR_ATTACHMENT0_EXT,
+ GL_COLOR_ATTACHMENT1_EXT,
+ GL_COLOR_ATTACHMENT2_EXT,
+ GL_COLOR_ATTACHMENT3_EXT,
+ GL_COLOR_ATTACHMENT4_EXT,
+ GL_COLOR_ATTACHMENT5_EXT,
+ GL_COLOR_ATTACHMENT6_EXT,
+ GL_COLOR_ATTACHMENT7_EXT,
+#else
GL_COLOR_ATTACHMENT0,
GL_COLOR_ATTACHMENT1,
GL_COLOR_ATTACHMENT2,
@@ -1726,9 +1763,14 @@ void rlActiveDrawBuffers(int count)
GL_COLOR_ATTACHMENT5,
GL_COLOR_ATTACHMENT6,
GL_COLOR_ATTACHMENT7,
+#endif
};
+#if defined(GRAPHICS_API_OPENGL_ES3)
+ glDrawBuffersEXT(count, buffers);
+#else
glDrawBuffers(count, buffers);
+#endif
}
}
else TRACELOG(LOG_WARNING, "GL: One color buffer active by default");
@@ -1792,6 +1834,14 @@ void rlEnableWireMode(void)
#endif
}
+void rlEnablePointMode(void)
+{
+#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33)
+ // NOTE: glPolygonMode() not available on OpenGL ES
+ glPolygonMode(GL_FRONT_AND_BACK, GL_POINT);
+ glEnable(GL_PROGRAM_POINT_SIZE);
+#endif
+}
// Disable wire mode
void rlDisableWireMode(void)
{
@@ -2047,7 +2097,7 @@ void rlglInit(int width, int height)
if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL))
{
glDebugMessageCallback(rlDebugMessageCallback, 0);
- // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); // TODO: Filter message
+ // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE);
// Debug context options:
// - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints
@@ -2168,6 +2218,7 @@ void rlLoadExtensions(void *loader)
RLGL.ExtSupported.instancing = (GLAD_GL_EXT_draw_instanced && GLAD_GL_ARB_instanced_arrays);
RLGL.ExtSupported.texNPOT = GLAD_GL_ARB_texture_non_power_of_two;
RLGL.ExtSupported.texFloat32 = GLAD_GL_ARB_texture_float;
+ RLGL.ExtSupported.texFloat16 = GLAD_GL_ARB_texture_float;
RLGL.ExtSupported.texDepth = GLAD_GL_ARB_depth_texture;
RLGL.ExtSupported.maxDepthBits = 32;
RLGL.ExtSupported.texAnisoFilter = GLAD_GL_EXT_texture_filter_anisotropic;
@@ -2179,6 +2230,7 @@ void rlLoadExtensions(void *loader)
RLGL.ExtSupported.instancing = true;
RLGL.ExtSupported.texNPOT = true;
RLGL.ExtSupported.texFloat32 = true;
+ RLGL.ExtSupported.texFloat16 = true;
RLGL.ExtSupported.texDepth = true;
RLGL.ExtSupported.maxDepthBits = 32;
RLGL.ExtSupported.texAnisoFilter = true;
@@ -2196,11 +2248,35 @@ void rlLoadExtensions(void *loader)
#endif // GRAPHICS_API_OPENGL_33
-#if defined(GRAPHICS_API_OPENGL_ES2)
-
- #if defined(PLATFORM_DESKTOP)
+#if defined(GRAPHICS_API_OPENGL_ES3)
+ // Register supported extensions flags
+ // OpenGL ES 3.0 extensions supported by default (or it should be)
+ RLGL.ExtSupported.vao = true;
+ RLGL.ExtSupported.instancing = true;
+ RLGL.ExtSupported.texNPOT = true;
+ RLGL.ExtSupported.texFloat32 = true;
+ RLGL.ExtSupported.texFloat16 = true;
+ RLGL.ExtSupported.texDepth = true;
+ RLGL.ExtSupported.texDepthWebGL = true;
+ RLGL.ExtSupported.maxDepthBits = 24;
+ RLGL.ExtSupported.texAnisoFilter = true;
+ RLGL.ExtSupported.texMirrorClamp = true;
+ // TODO: Check for additional OpenGL ES 3.0 supported extensions:
+ //RLGL.ExtSupported.texCompDXT = true;
+ //RLGL.ExtSupported.texCompETC1 = true;
+ //RLGL.ExtSupported.texCompETC2 = true;
+ //RLGL.ExtSupported.texCompPVRT = true;
+ //RLGL.ExtSupported.texCompASTC = true;
+ //RLGL.ExtSupported.maxAnisotropyLevel = true;
+ //RLGL.ExtSupported.computeShader = true;
+ //RLGL.ExtSupported.ssbo = true;
+
+#elif defined(GRAPHICS_API_OPENGL_ES2)
+
+ #if defined(PLATFORM_DESKTOP) || defined(PLATFORM_DESKTOP_SDL)
+ // TODO: Support GLAD loader for OpenGL ES 3.0
if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions");
- else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES2.0 loaded successfully");
+ else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully");
#endif
// Get supported extensions list
@@ -2276,6 +2352,7 @@ void rlLoadExtensions(void *loader)
// Check texture float support
if (strcmp(extList[i], (const char *)"GL_OES_texture_float") == 0) RLGL.ExtSupported.texFloat32 = true;
+ if (strcmp(extList[i], (const char *)"GL_OES_texture_half_float") == 0) RLGL.ExtSupported.texFloat16 = true;
// Check depth texture support
if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true;
@@ -2391,15 +2468,17 @@ int rlGetVersion(void)
#endif
#if defined(GRAPHICS_API_OPENGL_21)
glVersion = RL_OPENGL_21;
+#elif defined(GRAPHICS_API_OPENGL_43)
+ glVersion = RL_OPENGL_43;
#elif defined(GRAPHICS_API_OPENGL_33)
glVersion = RL_OPENGL_33;
#endif
-#if defined(GRAPHICS_API_OPENGL_43)
- glVersion = RL_OPENGL_43;
-#endif
-#if defined(GRAPHICS_API_OPENGL_ES2)
+#if defined(GRAPHICS_API_OPENGL_ES3)
+ glVersion = RL_OPENGL_ES_30;
+#elif defined(GRAPHICS_API_OPENGL_ES2)
glVersion = RL_OPENGL_ES_20;
#endif
+
return glVersion;
}
@@ -2648,7 +2727,7 @@ void rlDrawRenderBatch(rlRenderBatch *batch)
// Update batch vertex buffers
//------------------------------------------------------------------------------------------------------------
// NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0)
- // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (change flag required)
+ // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (use a change detector flag?)
if (RLGL.State.vertexCounter > 0)
{
// Activate elements VAO
@@ -2943,7 +3022,11 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format,
int mipWidth = width;
int mipHeight = height;
- int mipOffset = 0; // Mipmap data offset
+ int mipOffset = 0; // Mipmap data offset, only used for tracelog
+
+ // NOTE: Added pointer math separately from function to avoid UBSAN complaining
+ unsigned char *dataPtr = NULL;
+ if (data != NULL) dataPtr = (unsigned char *)data;
// Load the different mipmap levels
for (int i = 0; i < mipmapCount; i++)
@@ -2955,11 +3038,11 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format,
TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset);
- if (glInternalFormat != -1)
+ if (glInternalFormat != 0)
{
- if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, (unsigned char *)data + mipOffset);
+ if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, dataPtr);
#if !defined(GRAPHICS_API_OPENGL_11)
- else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, (unsigned char *)data + mipOffset);
+ else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, dataPtr);
#endif
#if defined(GRAPHICS_API_OPENGL_33)
@@ -2982,7 +3065,8 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format,
mipWidth /= 2;
mipHeight /= 2;
- mipOffset += mipSize;
+ mipOffset += mipSize; // Increment offset position to next mipmap
+ if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap
// Security check for NPOT textures
if (mipWidth < 1) mipWidth = 1;
@@ -3049,7 +3133,7 @@ unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer)
// Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F
unsigned int glInternalFormat = GL_DEPTH_COMPONENT;
-#if defined(GRAPHICS_API_OPENGL_ES2)
+#if (defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_ES3))
// WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT)
// while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities
if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer)
@@ -3108,7 +3192,7 @@ unsigned int rlLoadTextureCubemap(const void *data, int size, int format)
unsigned int glInternalFormat, glFormat, glType;
rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType);
- if (glInternalFormat != -1)
+ if (glInternalFormat != 0)
{
// Load cubemap faces
for (unsigned int i = 0; i < 6; i++)
@@ -3117,13 +3201,9 @@ unsigned int rlLoadTextureCubemap(const void *data, int size, int format)
{
if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)
{
- if (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32)
- {
- // Instead of using a sized internal texture format (GL_RGB16F, GL_RGB32F), we let the driver to choose the better format for us (GL_RGB)
- if (RLGL.ExtSupported.texFloat32) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, size, size, 0, GL_RGB, GL_FLOAT, NULL);
- else TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported");
- }
- else if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported");
+ if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32)
+ || (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16))
+ TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported");
else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, size, size, 0, glFormat, glType, NULL);
}
else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format");
@@ -3180,7 +3260,7 @@ void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int h
unsigned int glInternalFormat, glFormat, glType;
rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType);
- if ((glInternalFormat != -1) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB))
+ if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB))
{
glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX, offsetY, width, height, glFormat, glType, data);
}
@@ -3206,9 +3286,27 @@ void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned
case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break;
case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break;
#if !defined(GRAPHICS_API_OPENGL_11)
- case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float
- case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float
- case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float
+ #if defined(GRAPHICS_API_OPENGL_ES3)
+ case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F_EXT; *glFormat = GL_RED_EXT; *glType = GL_FLOAT; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F_EXT; *glFormat = GL_RGB; *glType = GL_FLOAT; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F_EXT; *glFormat = GL_RGBA; *glType = GL_FLOAT; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F_EXT; *glFormat = GL_RED_EXT; *glType = GL_HALF_FLOAT; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F_EXT; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F_EXT; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break;
+ #else
+ case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float
+ case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float
+ case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float
+ #if defined(GRAPHICS_API_OPENGL_21)
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_ARB; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_ARB; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_ARB; break;
+ #else // defined(GRAPHICS_API_OPENGL_ES2)
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float
+ #endif
+ #endif
#endif
#elif defined(GRAPHICS_API_OPENGL_33)
case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break;
@@ -3221,6 +3319,9 @@ void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned
case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F; *glFormat = GL_RED; *glType = GL_FLOAT; break;
case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F; *glFormat = GL_RGB; *glType = GL_FLOAT; break;
case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F; *glFormat = GL_RGBA; *glType = GL_FLOAT; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break;
#endif
#if !defined(GRAPHICS_API_OPENGL_11)
case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break;
@@ -3303,7 +3404,7 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format)
rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType);
unsigned int size = rlGetPixelDataSize(width, height, format);
- if ((glInternalFormat != -1) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB))
+ if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB))
{
pixels = RL_MALLOC(size);
glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels);
@@ -3466,11 +3567,14 @@ bool rlFramebufferComplete(unsigned int id)
void rlUnloadFramebuffer(unsigned int id)
{
#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT)
-
// Query depth attachment to automatically delete texture/renderbuffer
int depthType = 0, depthId = 0;
glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type
glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType);
+
+ // TODO: Review warning retrieving object name in WebGL
+ // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name
+ // https://registry.khronos.org/webgl/specs/latest/1.0/
glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId);
unsigned int depthIdU = (unsigned int)depthId;
@@ -3616,7 +3720,11 @@ void rlDrawVertexArray(int offset, int count)
// Draw vertex array elements
void rlDrawVertexArrayElements(int offset, int count, const void *buffer)
{
- glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)buffer + offset);
+ // NOTE: Added pointer math separately from function to avoid UBSAN complaining
+ unsigned short *bufferPtr = (unsigned short *)buffer;
+ if (offset > 0) bufferPtr += offset;
+
+ glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr);
}
// Draw vertex array instanced
@@ -3631,7 +3739,11 @@ void rlDrawVertexArrayInstanced(int offset, int count, int instances)
void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
- glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)buffer + offset, instances);
+ // NOTE: Added pointer math separately from function to avoid UBSAN complaining
+ unsigned short *bufferPtr = (unsigned short *)buffer;
+ if (offset > 0) bufferPtr += offset;
+
+ glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances);
#endif
}
@@ -3923,8 +4035,8 @@ int rlGetLocationUniform(unsigned int shaderId, const char *uniformName)
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
location = glGetUniformLocation(shaderId, uniformName);
- if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName);
- else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location);
+ //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName);
+ //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location);
#endif
return location;
}
@@ -3936,8 +4048,8 @@ int rlGetLocationAttrib(unsigned int shaderId, const char *attribName)
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
location = glGetAttribLocation(shaderId, attribName);
- if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName);
- else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location);
+ //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName);
+ //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location);
#endif
return location;
}
@@ -4091,7 +4203,7 @@ unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHi
glGenBuffers(1, &ssbo);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo);
glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY);
- glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, 0);
+ if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0
glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0);
#endif
@@ -4162,7 +4274,7 @@ void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool re
unsigned int glInternalFormat = 0, glFormat = 0, glType = 0;
rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType);
- glBindImageTexture(index, id, 0, 0, 0, readonly ? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat);
+ glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat);
#endif
}
@@ -4428,6 +4540,9 @@ const char *rlGetPixelFormatName(unsigned int format)
case RL_PIXELFORMAT_UNCOMPRESSED_R32: return "R32"; break; // 32 bpp (1 channel - float)
case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: return "R32G32B32"; break; // 32*3 bpp (3 channels - float)
case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: return "R32G32B32A32"; break; // 32*4 bpp (4 channels - float)
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16: return "R16"; break; // 16 bpp (1 channel - half float)
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: return "R16G16B16"; break; // 16*3 bpp (3 channels - half float)
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: return "R16G16B16A16"; break; // 16*4 bpp (4 channels - half float)
case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: return "DXT1_RGB"; break; // 4 bpp (no alpha)
case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: return "DXT1_RGBA"; break; // 4 bpp (1 bit alpha)
case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: return "DXT3_RGBA"; break; // 8 bpp
@@ -4476,6 +4591,7 @@ static void rlLoadShaderDefault(void)
#endif
#if defined(GRAPHICS_API_OPENGL_ES2)
"#version 100 \n"
+ "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers)
"attribute vec3 vertexPosition; \n"
"attribute vec2 vertexTexCoord; \n"
"attribute vec4 vertexColor; \n"
@@ -4574,7 +4690,7 @@ static void rlUnloadShaderDefault(void)
#if defined(RLGL_SHOW_GL_DETAILS_INFO)
// Get compressed format official GL identifier name
-static char *rlGetCompressedFormatName(int format)
+static const char *rlGetCompressedFormatName(int format)
{
switch (format)
{
@@ -4669,6 +4785,9 @@ static int rlGetPixelDataSize(int width, int height, int format)
case RL_PIXELFORMAT_UNCOMPRESSED_R32: bpp = 32; break;
case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: bpp = 32*3; break;
case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: bpp = 32*4; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16: bpp = 16; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: bpp = 16*3; break;
+ case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: bpp = 16*4; break;
case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB:
case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA:
case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB:
diff --git a/src/generated/node-raylib-drm.js b/src/generated/node-raylib-drm.js
index fc21812..70e7675 100644
--- a/src/generated/node-raylib-drm.js
+++ b/src/generated/node-raylib-drm.js
@@ -20,7 +20,7 @@ const raylib = {}
*
* @return {undefined}
*/
-function InitWindow (width, height, title) {
+function InitWindow(width, height, title) {
return r.BindInitWindow(
width,
height,
@@ -30,31 +30,31 @@ function InitWindow (width, height, title) {
raylib.InitWindow = InitWindow
/**
- * Check if KEY_ESCAPE pressed or Close icon pressed
+ * Close window and unload OpenGL context
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function WindowShouldClose () {
- return r.BindWindowShouldClose()
+function CloseWindow() {
+ return r.BindCloseWindow()
}
-raylib.WindowShouldClose = WindowShouldClose
+raylib.CloseWindow = CloseWindow
/**
- * Close window and unload OpenGL context
+ * Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function CloseWindow () {
- return r.BindCloseWindow()
+function WindowShouldClose() {
+ return r.BindWindowShouldClose()
}
-raylib.CloseWindow = CloseWindow
+raylib.WindowShouldClose = WindowShouldClose
/**
* Check if window has been initialized successfully
*
* @return {boolean} The resulting bool.
*/
-function IsWindowReady () {
+function IsWindowReady() {
return r.BindIsWindowReady()
}
raylib.IsWindowReady = IsWindowReady
@@ -64,7 +64,7 @@ raylib.IsWindowReady = IsWindowReady
*
* @return {boolean} The resulting bool.
*/
-function IsWindowFullscreen () {
+function IsWindowFullscreen() {
return r.BindIsWindowFullscreen()
}
raylib.IsWindowFullscreen = IsWindowFullscreen
@@ -74,7 +74,7 @@ raylib.IsWindowFullscreen = IsWindowFullscreen
*
* @return {boolean} The resulting bool.
*/
-function IsWindowHidden () {
+function IsWindowHidden() {
return r.BindIsWindowHidden()
}
raylib.IsWindowHidden = IsWindowHidden
@@ -84,7 +84,7 @@ raylib.IsWindowHidden = IsWindowHidden
*
* @return {boolean} The resulting bool.
*/
-function IsWindowMinimized () {
+function IsWindowMinimized() {
return r.BindIsWindowMinimized()
}
raylib.IsWindowMinimized = IsWindowMinimized
@@ -94,7 +94,7 @@ raylib.IsWindowMinimized = IsWindowMinimized
*
* @return {boolean} The resulting bool.
*/
-function IsWindowMaximized () {
+function IsWindowMaximized() {
return r.BindIsWindowMaximized()
}
raylib.IsWindowMaximized = IsWindowMaximized
@@ -104,7 +104,7 @@ raylib.IsWindowMaximized = IsWindowMaximized
*
* @return {boolean} The resulting bool.
*/
-function IsWindowFocused () {
+function IsWindowFocused() {
return r.BindIsWindowFocused()
}
raylib.IsWindowFocused = IsWindowFocused
@@ -114,7 +114,7 @@ raylib.IsWindowFocused = IsWindowFocused
*
* @return {boolean} The resulting bool.
*/
-function IsWindowResized () {
+function IsWindowResized() {
return r.BindIsWindowResized()
}
raylib.IsWindowResized = IsWindowResized
@@ -126,7 +126,7 @@ raylib.IsWindowResized = IsWindowResized
*
* @return {boolean} The resulting bool.
*/
-function IsWindowState (flag) {
+function IsWindowState(flag) {
return r.BindIsWindowState(
flag
)
@@ -140,7 +140,7 @@ raylib.IsWindowState = IsWindowState
*
* @return {undefined}
*/
-function SetWindowState (flags) {
+function SetWindowState(flags) {
return r.BindSetWindowState(
flags
)
@@ -154,7 +154,7 @@ raylib.SetWindowState = SetWindowState
*
* @return {undefined}
*/
-function ClearWindowState (flags) {
+function ClearWindowState(flags) {
return r.BindClearWindowState(
flags
)
@@ -166,17 +166,27 @@ raylib.ClearWindowState = ClearWindowState
*
* @return {undefined}
*/
-function ToggleFullscreen () {
+function ToggleFullscreen() {
return r.BindToggleFullscreen()
}
raylib.ToggleFullscreen = ToggleFullscreen
+/**
+ * Toggle window state: borderless windowed (only PLATFORM_DESKTOP)
+ *
+ * @return {undefined}
+ */
+function ToggleBorderlessWindowed() {
+ return r.BindToggleBorderlessWindowed()
+}
+raylib.ToggleBorderlessWindowed = ToggleBorderlessWindowed
+
/**
* Set window state: maximized, if resizable (only PLATFORM_DESKTOP)
*
* @return {undefined}
*/
-function MaximizeWindow () {
+function MaximizeWindow() {
return r.BindMaximizeWindow()
}
raylib.MaximizeWindow = MaximizeWindow
@@ -186,7 +196,7 @@ raylib.MaximizeWindow = MaximizeWindow
*
* @return {undefined}
*/
-function MinimizeWindow () {
+function MinimizeWindow() {
return r.BindMinimizeWindow()
}
raylib.MinimizeWindow = MinimizeWindow
@@ -196,7 +206,7 @@ raylib.MinimizeWindow = MinimizeWindow
*
* @return {undefined}
*/
-function RestoreWindow () {
+function RestoreWindow() {
return r.BindRestoreWindow()
}
raylib.RestoreWindow = RestoreWindow
@@ -208,7 +218,7 @@ raylib.RestoreWindow = RestoreWindow
*
* @return {undefined}
*/
-function SetWindowIcon (image) {
+function SetWindowIcon(image) {
return r.BindSetWindowIcon(
image.data,
image.width,
@@ -227,7 +237,7 @@ raylib.SetWindowIcon = SetWindowIcon
*
* @return {undefined}
*/
-function SetWindowIcons (images, count) {
+function SetWindowIcons(images, count) {
return r.BindSetWindowIcons(
images,
count
@@ -236,13 +246,13 @@ function SetWindowIcons (images, count) {
raylib.SetWindowIcons = SetWindowIcons
/**
- * Set title for window (only PLATFORM_DESKTOP)
+ * Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB)
*
* @param {string} title
*
* @return {undefined}
*/
-function SetWindowTitle (title) {
+function SetWindowTitle(title) {
return r.BindSetWindowTitle(
title
)
@@ -257,7 +267,7 @@ raylib.SetWindowTitle = SetWindowTitle
*
* @return {undefined}
*/
-function SetWindowPosition (x, y) {
+function SetWindowPosition(x, y) {
return r.BindSetWindowPosition(
x,
y
@@ -266,13 +276,13 @@ function SetWindowPosition (x, y) {
raylib.SetWindowPosition = SetWindowPosition
/**
- * Set monitor for the current window (fullscreen mode)
+ * Set monitor for the current window
*
* @param {number} monitor
*
* @return {undefined}
*/
-function SetWindowMonitor (monitor) {
+function SetWindowMonitor(monitor) {
return r.BindSetWindowMonitor(
monitor
)
@@ -287,7 +297,7 @@ raylib.SetWindowMonitor = SetWindowMonitor
*
* @return {undefined}
*/
-function SetWindowMinSize (width, height) {
+function SetWindowMinSize(width, height) {
return r.BindSetWindowMinSize(
width,
height
@@ -295,6 +305,22 @@ function SetWindowMinSize (width, height) {
}
raylib.SetWindowMinSize = SetWindowMinSize
+/**
+ * Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE)
+ *
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {undefined}
+ */
+function SetWindowMaxSize(width, height) {
+ return r.BindSetWindowMaxSize(
+ width,
+ height
+ )
+}
+raylib.SetWindowMaxSize = SetWindowMaxSize
+
/**
* Set window dimensions
*
@@ -303,7 +329,7 @@ raylib.SetWindowMinSize = SetWindowMinSize
*
* @return {undefined}
*/
-function SetWindowSize (width, height) {
+function SetWindowSize(width, height) {
return r.BindSetWindowSize(
width,
height
@@ -318,19 +344,29 @@ raylib.SetWindowSize = SetWindowSize
*
* @return {undefined}
*/
-function SetWindowOpacity (opacity) {
+function SetWindowOpacity(opacity) {
return r.BindSetWindowOpacity(
opacity
)
}
raylib.SetWindowOpacity = SetWindowOpacity
+/**
+ * Set window focused (only PLATFORM_DESKTOP)
+ *
+ * @return {undefined}
+ */
+function SetWindowFocused() {
+ return r.BindSetWindowFocused()
+}
+raylib.SetWindowFocused = SetWindowFocused
+
/**
* Get native window handle
*
* @return {number} The resulting void *.
*/
-function GetWindowHandle () {
+function GetWindowHandle() {
return r.BindGetWindowHandle()
}
raylib.GetWindowHandle = GetWindowHandle
@@ -340,7 +376,7 @@ raylib.GetWindowHandle = GetWindowHandle
*
* @return {number} The resulting int.
*/
-function GetScreenWidth () {
+function GetScreenWidth() {
return r.BindGetScreenWidth()
}
raylib.GetScreenWidth = GetScreenWidth
@@ -350,7 +386,7 @@ raylib.GetScreenWidth = GetScreenWidth
*
* @return {number} The resulting int.
*/
-function GetScreenHeight () {
+function GetScreenHeight() {
return r.BindGetScreenHeight()
}
raylib.GetScreenHeight = GetScreenHeight
@@ -360,7 +396,7 @@ raylib.GetScreenHeight = GetScreenHeight
*
* @return {number} The resulting int.
*/
-function GetRenderWidth () {
+function GetRenderWidth() {
return r.BindGetRenderWidth()
}
raylib.GetRenderWidth = GetRenderWidth
@@ -370,7 +406,7 @@ raylib.GetRenderWidth = GetRenderWidth
*
* @return {number} The resulting int.
*/
-function GetRenderHeight () {
+function GetRenderHeight() {
return r.BindGetRenderHeight()
}
raylib.GetRenderHeight = GetRenderHeight
@@ -380,7 +416,7 @@ raylib.GetRenderHeight = GetRenderHeight
*
* @return {number} The resulting int.
*/
-function GetMonitorCount () {
+function GetMonitorCount() {
return r.BindGetMonitorCount()
}
raylib.GetMonitorCount = GetMonitorCount
@@ -390,7 +426,7 @@ raylib.GetMonitorCount = GetMonitorCount
*
* @return {number} The resulting int.
*/
-function GetCurrentMonitor () {
+function GetCurrentMonitor() {
return r.BindGetCurrentMonitor()
}
raylib.GetCurrentMonitor = GetCurrentMonitor
@@ -402,7 +438,7 @@ raylib.GetCurrentMonitor = GetCurrentMonitor
*
* @return {Vector2} The resulting Vector2.
*/
-function GetMonitorPosition (monitor) {
+function GetMonitorPosition(monitor) {
return r.BindGetMonitorPosition(
monitor
)
@@ -416,7 +452,7 @@ raylib.GetMonitorPosition = GetMonitorPosition
*
* @return {number} The resulting int.
*/
-function GetMonitorWidth (monitor) {
+function GetMonitorWidth(monitor) {
return r.BindGetMonitorWidth(
monitor
)
@@ -430,7 +466,7 @@ raylib.GetMonitorWidth = GetMonitorWidth
*
* @return {number} The resulting int.
*/
-function GetMonitorHeight (monitor) {
+function GetMonitorHeight(monitor) {
return r.BindGetMonitorHeight(
monitor
)
@@ -444,7 +480,7 @@ raylib.GetMonitorHeight = GetMonitorHeight
*
* @return {number} The resulting int.
*/
-function GetMonitorPhysicalWidth (monitor) {
+function GetMonitorPhysicalWidth(monitor) {
return r.BindGetMonitorPhysicalWidth(
monitor
)
@@ -458,7 +494,7 @@ raylib.GetMonitorPhysicalWidth = GetMonitorPhysicalWidth
*
* @return {number} The resulting int.
*/
-function GetMonitorPhysicalHeight (monitor) {
+function GetMonitorPhysicalHeight(monitor) {
return r.BindGetMonitorPhysicalHeight(
monitor
)
@@ -472,7 +508,7 @@ raylib.GetMonitorPhysicalHeight = GetMonitorPhysicalHeight
*
* @return {number} The resulting int.
*/
-function GetMonitorRefreshRate (monitor) {
+function GetMonitorRefreshRate(monitor) {
return r.BindGetMonitorRefreshRate(
monitor
)
@@ -484,7 +520,7 @@ raylib.GetMonitorRefreshRate = GetMonitorRefreshRate
*
* @return {Vector2} The resulting Vector2.
*/
-function GetWindowPosition () {
+function GetWindowPosition() {
return r.BindGetWindowPosition()
}
raylib.GetWindowPosition = GetWindowPosition
@@ -494,19 +530,19 @@ raylib.GetWindowPosition = GetWindowPosition
*
* @return {Vector2} The resulting Vector2.
*/
-function GetWindowScaleDPI () {
+function GetWindowScaleDPI() {
return r.BindGetWindowScaleDPI()
}
raylib.GetWindowScaleDPI = GetWindowScaleDPI
/**
- * Get the human-readable, UTF-8 encoded name of the primary monitor
+ * Get the human-readable, UTF-8 encoded name of the specified monitor
*
* @param {number} monitor
*
* @return {string} The resulting const char *.
*/
-function GetMonitorName (monitor) {
+function GetMonitorName(monitor) {
return r.BindGetMonitorName(
monitor
)
@@ -520,7 +556,7 @@ raylib.GetMonitorName = GetMonitorName
*
* @return {undefined}
*/
-function SetClipboardText (text) {
+function SetClipboardText(text) {
return r.BindSetClipboardText(
text
)
@@ -532,7 +568,7 @@ raylib.SetClipboardText = SetClipboardText
*
* @return {string} The resulting const char *.
*/
-function GetClipboardText () {
+function GetClipboardText() {
return r.BindGetClipboardText()
}
raylib.GetClipboardText = GetClipboardText
@@ -542,7 +578,7 @@ raylib.GetClipboardText = GetClipboardText
*
* @return {undefined}
*/
-function EnableEventWaiting () {
+function EnableEventWaiting() {
return r.BindEnableEventWaiting()
}
raylib.EnableEventWaiting = EnableEventWaiting
@@ -552,51 +588,17 @@ raylib.EnableEventWaiting = EnableEventWaiting
*
* @return {undefined}
*/
-function DisableEventWaiting () {
+function DisableEventWaiting() {
return r.BindDisableEventWaiting()
}
raylib.DisableEventWaiting = DisableEventWaiting
-/**
- * Swap back buffer with front buffer (screen drawing)
- *
- * @return {undefined}
- */
-function SwapScreenBuffer () {
- return r.BindSwapScreenBuffer()
-}
-raylib.SwapScreenBuffer = SwapScreenBuffer
-
-/**
- * Register all input events
- *
- * @return {undefined}
- */
-function PollInputEvents () {
- return r.BindPollInputEvents()
-}
-raylib.PollInputEvents = PollInputEvents
-
-/**
- * Wait for some time (halt program execution)
- *
- * @param {number} seconds
- *
- * @return {undefined}
- */
-function WaitTime (seconds) {
- return r.BindWaitTime(
- seconds
- )
-}
-raylib.WaitTime = WaitTime
-
/**
* Shows cursor
*
* @return {undefined}
*/
-function ShowCursor () {
+function ShowCursor() {
return r.BindShowCursor()
}
raylib.ShowCursor = ShowCursor
@@ -606,7 +608,7 @@ raylib.ShowCursor = ShowCursor
*
* @return {undefined}
*/
-function HideCursor () {
+function HideCursor() {
return r.BindHideCursor()
}
raylib.HideCursor = HideCursor
@@ -616,7 +618,7 @@ raylib.HideCursor = HideCursor
*
* @return {boolean} The resulting bool.
*/
-function IsCursorHidden () {
+function IsCursorHidden() {
return r.BindIsCursorHidden()
}
raylib.IsCursorHidden = IsCursorHidden
@@ -626,7 +628,7 @@ raylib.IsCursorHidden = IsCursorHidden
*
* @return {undefined}
*/
-function EnableCursor () {
+function EnableCursor() {
return r.BindEnableCursor()
}
raylib.EnableCursor = EnableCursor
@@ -636,7 +638,7 @@ raylib.EnableCursor = EnableCursor
*
* @return {undefined}
*/
-function DisableCursor () {
+function DisableCursor() {
return r.BindDisableCursor()
}
raylib.DisableCursor = DisableCursor
@@ -646,7 +648,7 @@ raylib.DisableCursor = DisableCursor
*
* @return {boolean} The resulting bool.
*/
-function IsCursorOnScreen () {
+function IsCursorOnScreen() {
return r.BindIsCursorOnScreen()
}
raylib.IsCursorOnScreen = IsCursorOnScreen
@@ -658,7 +660,7 @@ raylib.IsCursorOnScreen = IsCursorOnScreen
*
* @return {undefined}
*/
-function ClearBackground (color) {
+function ClearBackground(color) {
return r.BindClearBackground(
color.r,
color.g,
@@ -673,7 +675,7 @@ raylib.ClearBackground = ClearBackground
*
* @return {undefined}
*/
-function BeginDrawing () {
+function BeginDrawing() {
return r.BindBeginDrawing()
}
raylib.BeginDrawing = BeginDrawing
@@ -683,7 +685,7 @@ raylib.BeginDrawing = BeginDrawing
*
* @return {undefined}
*/
-function EndDrawing () {
+function EndDrawing() {
return r.BindEndDrawing()
}
raylib.EndDrawing = EndDrawing
@@ -695,7 +697,7 @@ raylib.EndDrawing = EndDrawing
*
* @return {undefined}
*/
-function BeginMode2D (camera) {
+function BeginMode2D(camera) {
return r.BindBeginMode2D(
camera.offset.x,
camera.offset.y,
@@ -712,7 +714,7 @@ raylib.BeginMode2D = BeginMode2D
*
* @return {undefined}
*/
-function EndMode2D () {
+function EndMode2D() {
return r.BindEndMode2D()
}
raylib.EndMode2D = EndMode2D
@@ -724,7 +726,7 @@ raylib.EndMode2D = EndMode2D
*
* @return {undefined}
*/
-function BeginMode3D (camera) {
+function BeginMode3D(camera) {
return r.BindBeginMode3D(
camera.position.x,
camera.position.y,
@@ -746,7 +748,7 @@ raylib.BeginMode3D = BeginMode3D
*
* @return {undefined}
*/
-function EndMode3D () {
+function EndMode3D() {
return r.BindEndMode3D()
}
raylib.EndMode3D = EndMode3D
@@ -758,7 +760,7 @@ raylib.EndMode3D = EndMode3D
*
* @return {undefined}
*/
-function BeginTextureMode (target) {
+function BeginTextureMode(target) {
return r.BindBeginTextureMode(
target.id,
target.texture.id,
@@ -780,7 +782,7 @@ raylib.BeginTextureMode = BeginTextureMode
*
* @return {undefined}
*/
-function EndTextureMode () {
+function EndTextureMode() {
return r.BindEndTextureMode()
}
raylib.EndTextureMode = EndTextureMode
@@ -792,7 +794,7 @@ raylib.EndTextureMode = EndTextureMode
*
* @return {undefined}
*/
-function BeginShaderMode (shader) {
+function BeginShaderMode(shader) {
return r.BindBeginShaderMode(
shader.id,
shader.locs
@@ -805,7 +807,7 @@ raylib.BeginShaderMode = BeginShaderMode
*
* @return {undefined}
*/
-function EndShaderMode () {
+function EndShaderMode() {
return r.BindEndShaderMode()
}
raylib.EndShaderMode = EndShaderMode
@@ -817,7 +819,7 @@ raylib.EndShaderMode = EndShaderMode
*
* @return {undefined}
*/
-function BeginBlendMode (mode) {
+function BeginBlendMode(mode) {
return r.BindBeginBlendMode(
mode
)
@@ -829,7 +831,7 @@ raylib.BeginBlendMode = BeginBlendMode
*
* @return {undefined}
*/
-function EndBlendMode () {
+function EndBlendMode() {
return r.BindEndBlendMode()
}
raylib.EndBlendMode = EndBlendMode
@@ -844,7 +846,7 @@ raylib.EndBlendMode = EndBlendMode
*
* @return {undefined}
*/
-function BeginScissorMode (x, y, width, height) {
+function BeginScissorMode(x, y, width, height) {
return r.BindBeginScissorMode(
x,
y,
@@ -859,7 +861,7 @@ raylib.BeginScissorMode = BeginScissorMode
*
* @return {undefined}
*/
-function EndScissorMode () {
+function EndScissorMode() {
return r.BindEndScissorMode()
}
raylib.EndScissorMode = EndScissorMode
@@ -869,7 +871,7 @@ raylib.EndScissorMode = EndScissorMode
*
* @return {undefined}
*/
-function EndVrStereoMode () {
+function EndVrStereoMode() {
return r.BindEndVrStereoMode()
}
raylib.EndVrStereoMode = EndVrStereoMode
@@ -882,7 +884,7 @@ raylib.EndVrStereoMode = EndVrStereoMode
*
* @return {Shader} The resulting Shader.
*/
-function LoadShader (vsFileName, fsFileName) {
+function LoadShader(vsFileName, fsFileName) {
return r.BindLoadShader(
vsFileName,
fsFileName
@@ -898,7 +900,7 @@ raylib.LoadShader = LoadShader
*
* @return {Shader} The resulting Shader.
*/
-function LoadShaderFromMemory (vsCode, fsCode) {
+function LoadShaderFromMemory(vsCode, fsCode) {
return r.BindLoadShaderFromMemory(
vsCode,
fsCode
@@ -913,7 +915,7 @@ raylib.LoadShaderFromMemory = LoadShaderFromMemory
*
* @return {boolean} The resulting bool.
*/
-function IsShaderReady (shader) {
+function IsShaderReady(shader) {
return r.BindIsShaderReady(
shader.id,
shader.locs
@@ -929,7 +931,7 @@ raylib.IsShaderReady = IsShaderReady
*
* @return {number} The resulting int.
*/
-function GetShaderLocation (shader, uniformName) {
+function GetShaderLocation(shader, uniformName) {
return r.BindGetShaderLocation(
shader.id,
shader.locs,
@@ -946,7 +948,7 @@ raylib.GetShaderLocation = GetShaderLocation
*
* @return {number} The resulting int.
*/
-function GetShaderLocationAttrib (shader, attribName) {
+function GetShaderLocationAttrib(shader, attribName) {
return r.BindGetShaderLocationAttrib(
shader.id,
shader.locs,
@@ -964,7 +966,7 @@ raylib.GetShaderLocationAttrib = GetShaderLocationAttrib
*
* @return {undefined}
*/
-function SetShaderValueMatrix (shader, locIndex, mat) {
+function SetShaderValueMatrix(shader, locIndex, mat) {
return r.BindSetShaderValueMatrix(
shader.id,
shader.locs,
@@ -998,7 +1000,7 @@ raylib.SetShaderValueMatrix = SetShaderValueMatrix
*
* @return {undefined}
*/
-function SetShaderValueTexture (shader, locIndex, texture) {
+function SetShaderValueTexture(shader, locIndex, texture) {
return r.BindSetShaderValueTexture(
shader.id,
shader.locs,
@@ -1019,7 +1021,7 @@ raylib.SetShaderValueTexture = SetShaderValueTexture
*
* @return {undefined}
*/
-function UnloadShader (shader) {
+function UnloadShader(shader) {
return r.BindUnloadShader(
shader.id,
shader.locs
@@ -1035,7 +1037,7 @@ raylib.UnloadShader = UnloadShader
*
* @return {Ray} The resulting Ray.
*/
-function GetMouseRay (mousePosition, camera) {
+function GetMouseRay(mousePosition, camera) {
return r.BindGetMouseRay(
mousePosition.x,
mousePosition.y,
@@ -1061,7 +1063,7 @@ raylib.GetMouseRay = GetMouseRay
*
* @return {Matrix} The resulting Matrix.
*/
-function GetCameraMatrix (camera) {
+function GetCameraMatrix(camera) {
return r.BindGetCameraMatrix(
camera.position.x,
camera.position.y,
@@ -1085,7 +1087,7 @@ raylib.GetCameraMatrix = GetCameraMatrix
*
* @return {Matrix} The resulting Matrix.
*/
-function GetCameraMatrix2D (camera) {
+function GetCameraMatrix2D(camera) {
return r.BindGetCameraMatrix2D(
camera.offset.x,
camera.offset.y,
@@ -1105,7 +1107,7 @@ raylib.GetCameraMatrix2D = GetCameraMatrix2D
*
* @return {Vector2} The resulting Vector2.
*/
-function GetWorldToScreen (position, camera) {
+function GetWorldToScreen(position, camera) {
return r.BindGetWorldToScreen(
position.x,
position.y,
@@ -1133,7 +1135,7 @@ raylib.GetWorldToScreen = GetWorldToScreen
*
* @return {Vector2} The resulting Vector2.
*/
-function GetScreenToWorld2D (position, camera) {
+function GetScreenToWorld2D(position, camera) {
return r.BindGetScreenToWorld2D(
position.x,
position.y,
@@ -1157,7 +1159,7 @@ raylib.GetScreenToWorld2D = GetScreenToWorld2D
*
* @return {Vector2} The resulting Vector2.
*/
-function GetWorldToScreenEx (position, camera, width, height) {
+function GetWorldToScreenEx(position, camera, width, height) {
return r.BindGetWorldToScreenEx(
position.x,
position.y,
@@ -1187,7 +1189,7 @@ raylib.GetWorldToScreenEx = GetWorldToScreenEx
*
* @return {Vector2} The resulting Vector2.
*/
-function GetWorldToScreen2D (position, camera) {
+function GetWorldToScreen2D(position, camera) {
return r.BindGetWorldToScreen2D(
position.x,
position.y,
@@ -1208,42 +1210,90 @@ raylib.GetWorldToScreen2D = GetWorldToScreen2D
*
* @return {undefined}
*/
-function SetTargetFPS (fps) {
+function SetTargetFPS(fps) {
return r.BindSetTargetFPS(
fps
)
}
raylib.SetTargetFPS = SetTargetFPS
+/**
+ * Get time in seconds for last frame drawn (delta time)
+ *
+ * @return {number} The resulting float.
+ */
+function GetFrameTime() {
+ return r.BindGetFrameTime()
+}
+raylib.GetFrameTime = GetFrameTime
+
+/**
+ * Get elapsed time in seconds since InitWindow()
+ *
+ * @return {number} The resulting double.
+ */
+function GetTime() {
+ return r.BindGetTime()
+}
+raylib.GetTime = GetTime
+
/**
* Get current FPS
*
* @return {number} The resulting int.
*/
-function GetFPS () {
+function GetFPS() {
return r.BindGetFPS()
}
raylib.GetFPS = GetFPS
/**
- * Get time in seconds for last frame drawn (delta time)
+ * Swap back buffer with front buffer (screen drawing)
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function GetFrameTime () {
- return r.BindGetFrameTime()
+function SwapScreenBuffer() {
+ return r.BindSwapScreenBuffer()
}
-raylib.GetFrameTime = GetFrameTime
+raylib.SwapScreenBuffer = SwapScreenBuffer
/**
- * Get elapsed time in seconds since InitWindow()
+ * Register all input events
*
- * @return {number} The resulting double.
+ * @return {undefined}
*/
-function GetTime () {
- return r.BindGetTime()
+function PollInputEvents() {
+ return r.BindPollInputEvents()
}
-raylib.GetTime = GetTime
+raylib.PollInputEvents = PollInputEvents
+
+/**
+ * Wait for some time (halt program execution)
+ *
+ * @param {number} seconds
+ *
+ * @return {undefined}
+ */
+function WaitTime(seconds) {
+ return r.BindWaitTime(
+ seconds
+ )
+}
+raylib.WaitTime = WaitTime
+
+/**
+ * Set the seed for the random number generator
+ *
+ * @param {number} seed
+ *
+ * @return {undefined}
+ */
+function SetRandomSeed(seed) {
+ return r.BindSetRandomSeed(
+ seed
+ )
+}
+raylib.SetRandomSeed = SetRandomSeed
/**
* Get a random value between min and max (both included)
@@ -1253,7 +1303,7 @@ raylib.GetTime = GetTime
*
* @return {number} The resulting int.
*/
-function GetRandomValue (min, max) {
+function GetRandomValue(min, max) {
return r.BindGetRandomValue(
min,
max
@@ -1262,18 +1312,36 @@ function GetRandomValue (min, max) {
raylib.GetRandomValue = GetRandomValue
/**
- * Set the seed for the random number generator
+ * Load random values sequence, no values repeated
*
- * @param {number} seed
+ * @param {number} count
+ * @param {number} min
+ * @param {number} max
+ *
+ * @return {number} The resulting int *.
+ */
+function LoadRandomSequence(count, min, max) {
+ return r.BindLoadRandomSequence(
+ count,
+ min,
+ max
+ )
+}
+raylib.LoadRandomSequence = LoadRandomSequence
+
+/**
+ * Unload random values sequence
+ *
+ * @param {number} sequence
*
* @return {undefined}
*/
-function SetRandomSeed (seed) {
- return r.BindSetRandomSeed(
- seed
+function UnloadRandomSequence(sequence) {
+ return r.BindUnloadRandomSequence(
+ sequence
)
}
-raylib.SetRandomSeed = SetRandomSeed
+raylib.UnloadRandomSequence = UnloadRandomSequence
/**
* Takes a screenshot of current screen (filename extension defines format)
@@ -1282,7 +1350,7 @@ raylib.SetRandomSeed = SetRandomSeed
*
* @return {undefined}
*/
-function TakeScreenshot (fileName) {
+function TakeScreenshot(fileName) {
return r.BindTakeScreenshot(
fileName
)
@@ -1296,13 +1364,27 @@ raylib.TakeScreenshot = TakeScreenshot
*
* @return {undefined}
*/
-function SetConfigFlags (flags) {
+function SetConfigFlags(flags) {
return r.BindSetConfigFlags(
flags
)
}
raylib.SetConfigFlags = SetConfigFlags
+/**
+ * Open URL with default system browser (if available)
+ *
+ * @param {string} url
+ *
+ * @return {undefined}
+ */
+function OpenURL(url) {
+ return r.BindOpenURL(
+ url
+ )
+}
+raylib.OpenURL = OpenURL
+
/**
* Set the current threshold (minimum) log level
*
@@ -1310,7 +1392,7 @@ raylib.SetConfigFlags = SetConfigFlags
*
* @return {undefined}
*/
-function SetTraceLogLevel (logLevel) {
+function SetTraceLogLevel(logLevel) {
return r.BindSetTraceLogLevel(
logLevel
)
@@ -1324,7 +1406,7 @@ raylib.SetTraceLogLevel = SetTraceLogLevel
*
* @return {number} The resulting void *.
*/
-function MemAlloc (size) {
+function MemAlloc(size) {
return r.BindMemAlloc(
size
)
@@ -1339,7 +1421,7 @@ raylib.MemAlloc = MemAlloc
*
* @return {number} The resulting void *.
*/
-function MemRealloc (ptr, size) {
+function MemRealloc(ptr, size) {
return r.BindMemRealloc(
ptr,
size
@@ -1354,39 +1436,25 @@ raylib.MemRealloc = MemRealloc
*
* @return {undefined}
*/
-function MemFree (ptr) {
+function MemFree(ptr) {
return r.BindMemFree(
ptr
)
}
raylib.MemFree = MemFree
-/**
- * Open URL with default system browser (if available)
- *
- * @param {string} url
- *
- * @return {undefined}
- */
-function OpenURL (url) {
- return r.BindOpenURL(
- url
- )
-}
-raylib.OpenURL = OpenURL
-
/**
* Load file data as byte array (read)
*
* @param {string} fileName
- * @param {number} bytesRead
+ * @param {number} dataSize
*
* @return {Buffer} The resulting unsigned char *.
*/
-function LoadFileData (fileName, bytesRead) {
+function LoadFileData(fileName, dataSize) {
return r.BindLoadFileData(
fileName,
- bytesRead
+ dataSize
)
}
raylib.LoadFileData = LoadFileData
@@ -1398,7 +1466,7 @@ raylib.LoadFileData = LoadFileData
*
* @return {undefined}
*/
-function UnloadFileData (data) {
+function UnloadFileData(data) {
return r.BindUnloadFileData(
data
)
@@ -1410,15 +1478,15 @@ raylib.UnloadFileData = UnloadFileData
*
* @param {string} fileName
* @param {number} data
- * @param {number} bytesToWrite
+ * @param {number} dataSize
*
* @return {boolean} The resulting bool.
*/
-function SaveFileData (fileName, data, bytesToWrite) {
+function SaveFileData(fileName, data, dataSize) {
return r.BindSaveFileData(
fileName,
data,
- bytesToWrite
+ dataSize
)
}
raylib.SaveFileData = SaveFileData
@@ -1427,15 +1495,15 @@ raylib.SaveFileData = SaveFileData
* Export data to code (.h), returns true on success
*
* @param {Buffer} data
- * @param {number} size
+ * @param {number} dataSize
* @param {string} fileName
*
* @return {boolean} The resulting bool.
*/
-function ExportDataAsCode (data, size, fileName) {
+function ExportDataAsCode(data, dataSize, fileName) {
return r.BindExportDataAsCode(
data,
- size,
+ dataSize,
fileName
)
}
@@ -1448,7 +1516,7 @@ raylib.ExportDataAsCode = ExportDataAsCode
*
* @return {string} The resulting char *.
*/
-function LoadFileText (fileName) {
+function LoadFileText(fileName) {
return r.BindLoadFileText(
fileName
)
@@ -1462,7 +1530,7 @@ raylib.LoadFileText = LoadFileText
*
* @return {undefined}
*/
-function UnloadFileText (text) {
+function UnloadFileText(text) {
return r.BindUnloadFileText(
text
)
@@ -1477,7 +1545,7 @@ raylib.UnloadFileText = UnloadFileText
*
* @return {boolean} The resulting bool.
*/
-function SaveFileText (fileName, text) {
+function SaveFileText(fileName, text) {
return r.BindSaveFileText(
fileName,
text
@@ -1492,7 +1560,7 @@ raylib.SaveFileText = SaveFileText
*
* @return {boolean} The resulting bool.
*/
-function FileExists (fileName) {
+function FileExists(fileName) {
return r.BindFileExists(
fileName
)
@@ -1506,7 +1574,7 @@ raylib.FileExists = FileExists
*
* @return {boolean} The resulting bool.
*/
-function DirectoryExists (dirPath) {
+function DirectoryExists(dirPath) {
return r.BindDirectoryExists(
dirPath
)
@@ -1521,7 +1589,7 @@ raylib.DirectoryExists = DirectoryExists
*
* @return {boolean} The resulting bool.
*/
-function IsFileExtension (fileName, ext) {
+function IsFileExtension(fileName, ext) {
return r.BindIsFileExtension(
fileName,
ext
@@ -1536,7 +1604,7 @@ raylib.IsFileExtension = IsFileExtension
*
* @return {number} The resulting int.
*/
-function GetFileLength (fileName) {
+function GetFileLength(fileName) {
return r.BindGetFileLength(
fileName
)
@@ -1550,7 +1618,7 @@ raylib.GetFileLength = GetFileLength
*
* @return {string} The resulting const char *.
*/
-function GetFileExtension (fileName) {
+function GetFileExtension(fileName) {
return r.BindGetFileExtension(
fileName
)
@@ -1564,7 +1632,7 @@ raylib.GetFileExtension = GetFileExtension
*
* @return {string} The resulting const char *.
*/
-function GetFileName (filePath) {
+function GetFileName(filePath) {
return r.BindGetFileName(
filePath
)
@@ -1578,7 +1646,7 @@ raylib.GetFileName = GetFileName
*
* @return {string} The resulting const char *.
*/
-function GetFileNameWithoutExt (filePath) {
+function GetFileNameWithoutExt(filePath) {
return r.BindGetFileNameWithoutExt(
filePath
)
@@ -1592,7 +1660,7 @@ raylib.GetFileNameWithoutExt = GetFileNameWithoutExt
*
* @return {string} The resulting const char *.
*/
-function GetDirectoryPath (filePath) {
+function GetDirectoryPath(filePath) {
return r.BindGetDirectoryPath(
filePath
)
@@ -1606,7 +1674,7 @@ raylib.GetDirectoryPath = GetDirectoryPath
*
* @return {string} The resulting const char *.
*/
-function GetPrevDirectoryPath (dirPath) {
+function GetPrevDirectoryPath(dirPath) {
return r.BindGetPrevDirectoryPath(
dirPath
)
@@ -1618,17 +1686,17 @@ raylib.GetPrevDirectoryPath = GetPrevDirectoryPath
*
* @return {string} The resulting const char *.
*/
-function GetWorkingDirectory () {
+function GetWorkingDirectory() {
return r.BindGetWorkingDirectory()
}
raylib.GetWorkingDirectory = GetWorkingDirectory
/**
- * Get the directory if the running application (uses static string)
+ * Get the directory of the running application (uses static string)
*
* @return {string} The resulting const char *.
*/
-function GetApplicationDirectory () {
+function GetApplicationDirectory() {
return r.BindGetApplicationDirectory()
}
raylib.GetApplicationDirectory = GetApplicationDirectory
@@ -1640,7 +1708,7 @@ raylib.GetApplicationDirectory = GetApplicationDirectory
*
* @return {boolean} The resulting bool.
*/
-function ChangeDirectory (dir) {
+function ChangeDirectory(dir) {
return r.BindChangeDirectory(
dir
)
@@ -1654,7 +1722,7 @@ raylib.ChangeDirectory = ChangeDirectory
*
* @return {boolean} The resulting bool.
*/
-function IsPathFile (path) {
+function IsPathFile(path) {
return r.BindIsPathFile(
path
)
@@ -1668,7 +1736,7 @@ raylib.IsPathFile = IsPathFile
*
* @return {FilePathList} The resulting FilePathList.
*/
-function LoadDirectoryFiles (dirPath) {
+function LoadDirectoryFiles(dirPath) {
return r.BindLoadDirectoryFiles(
dirPath
)
@@ -1684,7 +1752,7 @@ raylib.LoadDirectoryFiles = LoadDirectoryFiles
*
* @return {FilePathList} The resulting FilePathList.
*/
-function LoadDirectoryFilesEx (basePath, filter, scanSubdirs) {
+function LoadDirectoryFilesEx(basePath, filter, scanSubdirs) {
return r.BindLoadDirectoryFilesEx(
basePath,
filter,
@@ -1700,7 +1768,7 @@ raylib.LoadDirectoryFilesEx = LoadDirectoryFilesEx
*
* @return {undefined}
*/
-function UnloadDirectoryFiles (files) {
+function UnloadDirectoryFiles(files) {
return r.BindUnloadDirectoryFiles(
files.capacity,
files.count,
@@ -1714,7 +1782,7 @@ raylib.UnloadDirectoryFiles = UnloadDirectoryFiles
*
* @return {boolean} The resulting bool.
*/
-function IsFileDropped () {
+function IsFileDropped() {
return r.BindIsFileDropped()
}
raylib.IsFileDropped = IsFileDropped
@@ -1724,7 +1792,7 @@ raylib.IsFileDropped = IsFileDropped
*
* @return {FilePathList} The resulting FilePathList.
*/
-function LoadDroppedFiles () {
+function LoadDroppedFiles() {
return r.BindLoadDroppedFiles()
}
raylib.LoadDroppedFiles = LoadDroppedFiles
@@ -1736,7 +1804,7 @@ raylib.LoadDroppedFiles = LoadDroppedFiles
*
* @return {undefined}
*/
-function UnloadDroppedFiles (files) {
+function UnloadDroppedFiles(files) {
return r.BindUnloadDroppedFiles(
files.capacity,
files.count,
@@ -1752,7 +1820,7 @@ raylib.UnloadDroppedFiles = UnloadDroppedFiles
*
* @return {number} The resulting long.
*/
-function GetFileModTime (fileName) {
+function GetFileModTime(fileName) {
return r.BindGetFileModTime(
fileName
)
@@ -1768,7 +1836,7 @@ raylib.GetFileModTime = GetFileModTime
*
* @return {Buffer} The resulting unsigned char *.
*/
-function CompressData (data, dataSize, compDataSize) {
+function CompressData(data, dataSize, compDataSize) {
return r.BindCompressData(
data,
dataSize,
@@ -1786,7 +1854,7 @@ raylib.CompressData = CompressData
*
* @return {Buffer} The resulting unsigned char *.
*/
-function DecompressData (compData, compDataSize, dataSize) {
+function DecompressData(compData, compDataSize, dataSize) {
return r.BindDecompressData(
compData,
compDataSize,
@@ -1804,7 +1872,7 @@ raylib.DecompressData = DecompressData
*
* @return {string} The resulting char *.
*/
-function EncodeDataBase64 (data, dataSize, outputSize) {
+function EncodeDataBase64(data, dataSize, outputSize) {
return r.BindEncodeDataBase64(
data,
dataSize,
@@ -1821,7 +1889,7 @@ raylib.EncodeDataBase64 = EncodeDataBase64
*
* @return {Buffer} The resulting unsigned char *.
*/
-function DecodeDataBase64 (data, outputSize) {
+function DecodeDataBase64(data, outputSize) {
return r.BindDecodeDataBase64(
data,
outputSize
@@ -1830,138 +1898,262 @@ function DecodeDataBase64 (data, outputSize) {
raylib.DecodeDataBase64 = DecodeDataBase64
/**
- * Check if a key has been pressed once
+ * Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS
*
- * @param {number} key
+ * @param {string} fileName
*
- * @return {boolean} The resulting bool.
+ * @return {AutomationEventList} The resulting AutomationEventList.
*/
-function IsKeyPressed (key) {
- return r.BindIsKeyPressed(
- key
+function LoadAutomationEventList(fileName) {
+ return r.BindLoadAutomationEventList(
+ fileName
)
}
-raylib.IsKeyPressed = IsKeyPressed
+raylib.LoadAutomationEventList = LoadAutomationEventList
/**
- * Check if a key is being pressed
+ * Unload automation events list from file
*
- * @param {number} key
+ * @param {number} list
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsKeyDown (key) {
- return r.BindIsKeyDown(
- key
+function UnloadAutomationEventList(list) {
+ return r.BindUnloadAutomationEventList(
+ list
)
}
-raylib.IsKeyDown = IsKeyDown
+raylib.UnloadAutomationEventList = UnloadAutomationEventList
/**
- * Check if a key has been released once
+ * Export automation events list as text file
*
- * @param {number} key
+ * @param {AutomationEventList} list
+ * @param {string} fileName
*
* @return {boolean} The resulting bool.
*/
-function IsKeyReleased (key) {
- return r.BindIsKeyReleased(
- key
+function ExportAutomationEventList(list, fileName) {
+ return r.BindExportAutomationEventList(
+ list.capacity,
+ list.count,
+ list.events,
+ fileName
)
}
-raylib.IsKeyReleased = IsKeyReleased
+raylib.ExportAutomationEventList = ExportAutomationEventList
/**
- * Check if a key is NOT being pressed
+ * Set automation event list to record to
*
- * @param {number} key
+ * @param {number} list
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsKeyUp (key) {
- return r.BindIsKeyUp(
- key
+function SetAutomationEventList(list) {
+ return r.BindSetAutomationEventList(
+ list
)
}
-raylib.IsKeyUp = IsKeyUp
+raylib.SetAutomationEventList = SetAutomationEventList
/**
- * Set a custom key to exit program (default is ESC)
+ * Set automation event internal base frame to start recording
*
- * @param {number} key
+ * @param {number} frame
*
* @return {undefined}
*/
-function SetExitKey (key) {
- return r.BindSetExitKey(
- key
+function SetAutomationEventBaseFrame(frame) {
+ return r.BindSetAutomationEventBaseFrame(
+ frame
)
}
-raylib.SetExitKey = SetExitKey
+raylib.SetAutomationEventBaseFrame = SetAutomationEventBaseFrame
/**
- * Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty
+ * Start recording automation events (AutomationEventList must be set)
*
- * @return {number} The resulting int.
+ * @return {undefined}
*/
-function GetKeyPressed () {
- return r.BindGetKeyPressed()
+function StartAutomationEventRecording() {
+ return r.BindStartAutomationEventRecording()
}
-raylib.GetKeyPressed = GetKeyPressed
+raylib.StartAutomationEventRecording = StartAutomationEventRecording
/**
- * Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty
+ * Stop recording automation events
*
- * @return {number} The resulting int.
+ * @return {undefined}
*/
-function GetCharPressed () {
- return r.BindGetCharPressed()
+function StopAutomationEventRecording() {
+ return r.BindStopAutomationEventRecording()
}
-raylib.GetCharPressed = GetCharPressed
+raylib.StopAutomationEventRecording = StopAutomationEventRecording
/**
- * Check if a gamepad is available
+ * Play a recorded automation event
*
- * @param {number} gamepad
+ * @param {AutomationEvent} event
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsGamepadAvailable (gamepad) {
- return r.BindIsGamepadAvailable(
- gamepad
+function PlayAutomationEvent(event) {
+ return r.BindPlayAutomationEvent(
+ event.frame,
+ event.type,
+ event.params
)
}
-raylib.IsGamepadAvailable = IsGamepadAvailable
+raylib.PlayAutomationEvent = PlayAutomationEvent
/**
- * Get gamepad internal name id
+ * Check if a key has been pressed once
*
- * @param {number} gamepad
+ * @param {number} key
*
- * @return {string} The resulting const char *.
+ * @return {boolean} The resulting bool.
*/
-function GetGamepadName (gamepad) {
- return r.BindGetGamepadName(
- gamepad
+function IsKeyPressed(key) {
+ return r.BindIsKeyPressed(
+ key
)
}
-raylib.GetGamepadName = GetGamepadName
+raylib.IsKeyPressed = IsKeyPressed
/**
- * Check if a gamepad button has been pressed once
+ * Check if a key has been pressed again (Only PLATFORM_DESKTOP)
*
- * @param {number} gamepad
- * @param {number} button
+ * @param {number} key
*
* @return {boolean} The resulting bool.
*/
-function IsGamepadButtonPressed (gamepad, button) {
- return r.BindIsGamepadButtonPressed(
- gamepad,
- button
+function IsKeyPressedRepeat(key) {
+ return r.BindIsKeyPressedRepeat(
+ key
)
}
-raylib.IsGamepadButtonPressed = IsGamepadButtonPressed
+raylib.IsKeyPressedRepeat = IsKeyPressedRepeat
+
+/**
+ * Check if a key is being pressed
+ *
+ * @param {number} key
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsKeyDown(key) {
+ return r.BindIsKeyDown(
+ key
+ )
+}
+raylib.IsKeyDown = IsKeyDown
+
+/**
+ * Check if a key has been released once
+ *
+ * @param {number} key
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsKeyReleased(key) {
+ return r.BindIsKeyReleased(
+ key
+ )
+}
+raylib.IsKeyReleased = IsKeyReleased
+
+/**
+ * Check if a key is NOT being pressed
+ *
+ * @param {number} key
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsKeyUp(key) {
+ return r.BindIsKeyUp(
+ key
+ )
+}
+raylib.IsKeyUp = IsKeyUp
+
+/**
+ * Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty
+ *
+ * @return {number} The resulting int.
+ */
+function GetKeyPressed() {
+ return r.BindGetKeyPressed()
+}
+raylib.GetKeyPressed = GetKeyPressed
+
+/**
+ * Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty
+ *
+ * @return {number} The resulting int.
+ */
+function GetCharPressed() {
+ return r.BindGetCharPressed()
+}
+raylib.GetCharPressed = GetCharPressed
+
+/**
+ * Set a custom key to exit program (default is ESC)
+ *
+ * @param {number} key
+ *
+ * @return {undefined}
+ */
+function SetExitKey(key) {
+ return r.BindSetExitKey(
+ key
+ )
+}
+raylib.SetExitKey = SetExitKey
+
+/**
+ * Check if a gamepad is available
+ *
+ * @param {number} gamepad
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsGamepadAvailable(gamepad) {
+ return r.BindIsGamepadAvailable(
+ gamepad
+ )
+}
+raylib.IsGamepadAvailable = IsGamepadAvailable
+
+/**
+ * Get gamepad internal name id
+ *
+ * @param {number} gamepad
+ *
+ * @return {string} The resulting const char *.
+ */
+function GetGamepadName(gamepad) {
+ return r.BindGetGamepadName(
+ gamepad
+ )
+}
+raylib.GetGamepadName = GetGamepadName
+
+/**
+ * Check if a gamepad button has been pressed once
+ *
+ * @param {number} gamepad
+ * @param {number} button
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsGamepadButtonPressed(gamepad, button) {
+ return r.BindIsGamepadButtonPressed(
+ gamepad,
+ button
+ )
+}
+raylib.IsGamepadButtonPressed = IsGamepadButtonPressed
/**
* Check if a gamepad button is being pressed
@@ -1971,7 +2163,7 @@ raylib.IsGamepadButtonPressed = IsGamepadButtonPressed
*
* @return {boolean} The resulting bool.
*/
-function IsGamepadButtonDown (gamepad, button) {
+function IsGamepadButtonDown(gamepad, button) {
return r.BindIsGamepadButtonDown(
gamepad,
button
@@ -1987,7 +2179,7 @@ raylib.IsGamepadButtonDown = IsGamepadButtonDown
*
* @return {boolean} The resulting bool.
*/
-function IsGamepadButtonReleased (gamepad, button) {
+function IsGamepadButtonReleased(gamepad, button) {
return r.BindIsGamepadButtonReleased(
gamepad,
button
@@ -2003,7 +2195,7 @@ raylib.IsGamepadButtonReleased = IsGamepadButtonReleased
*
* @return {boolean} The resulting bool.
*/
-function IsGamepadButtonUp (gamepad, button) {
+function IsGamepadButtonUp(gamepad, button) {
return r.BindIsGamepadButtonUp(
gamepad,
button
@@ -2016,7 +2208,7 @@ raylib.IsGamepadButtonUp = IsGamepadButtonUp
*
* @return {number} The resulting int.
*/
-function GetGamepadButtonPressed () {
+function GetGamepadButtonPressed() {
return r.BindGetGamepadButtonPressed()
}
raylib.GetGamepadButtonPressed = GetGamepadButtonPressed
@@ -2028,7 +2220,7 @@ raylib.GetGamepadButtonPressed = GetGamepadButtonPressed
*
* @return {number} The resulting int.
*/
-function GetGamepadAxisCount (gamepad) {
+function GetGamepadAxisCount(gamepad) {
return r.BindGetGamepadAxisCount(
gamepad
)
@@ -2043,7 +2235,7 @@ raylib.GetGamepadAxisCount = GetGamepadAxisCount
*
* @return {number} The resulting float.
*/
-function GetGamepadAxisMovement (gamepad, axis) {
+function GetGamepadAxisMovement(gamepad, axis) {
return r.BindGetGamepadAxisMovement(
gamepad,
axis
@@ -2058,7 +2250,7 @@ raylib.GetGamepadAxisMovement = GetGamepadAxisMovement
*
* @return {number} The resulting int.
*/
-function SetGamepadMappings (mappings) {
+function SetGamepadMappings(mappings) {
return r.BindSetGamepadMappings(
mappings
)
@@ -2072,7 +2264,7 @@ raylib.SetGamepadMappings = SetGamepadMappings
*
* @return {boolean} The resulting bool.
*/
-function IsMouseButtonPressed (button) {
+function IsMouseButtonPressed(button) {
return r.BindIsMouseButtonPressed(
button
)
@@ -2086,7 +2278,7 @@ raylib.IsMouseButtonPressed = IsMouseButtonPressed
*
* @return {boolean} The resulting bool.
*/
-function IsMouseButtonDown (button) {
+function IsMouseButtonDown(button) {
return r.BindIsMouseButtonDown(
button
)
@@ -2100,7 +2292,7 @@ raylib.IsMouseButtonDown = IsMouseButtonDown
*
* @return {boolean} The resulting bool.
*/
-function IsMouseButtonReleased (button) {
+function IsMouseButtonReleased(button) {
return r.BindIsMouseButtonReleased(
button
)
@@ -2114,7 +2306,7 @@ raylib.IsMouseButtonReleased = IsMouseButtonReleased
*
* @return {boolean} The resulting bool.
*/
-function IsMouseButtonUp (button) {
+function IsMouseButtonUp(button) {
return r.BindIsMouseButtonUp(
button
)
@@ -2126,7 +2318,7 @@ raylib.IsMouseButtonUp = IsMouseButtonUp
*
* @return {number} The resulting int.
*/
-function GetMouseX () {
+function GetMouseX() {
return r.BindGetMouseX()
}
raylib.GetMouseX = GetMouseX
@@ -2136,7 +2328,7 @@ raylib.GetMouseX = GetMouseX
*
* @return {number} The resulting int.
*/
-function GetMouseY () {
+function GetMouseY() {
return r.BindGetMouseY()
}
raylib.GetMouseY = GetMouseY
@@ -2146,7 +2338,7 @@ raylib.GetMouseY = GetMouseY
*
* @return {Vector2} The resulting Vector2.
*/
-function GetMousePosition () {
+function GetMousePosition() {
return r.BindGetMousePosition()
}
raylib.GetMousePosition = GetMousePosition
@@ -2156,7 +2348,7 @@ raylib.GetMousePosition = GetMousePosition
*
* @return {Vector2} The resulting Vector2.
*/
-function GetMouseDelta () {
+function GetMouseDelta() {
return r.BindGetMouseDelta()
}
raylib.GetMouseDelta = GetMouseDelta
@@ -2169,7 +2361,7 @@ raylib.GetMouseDelta = GetMouseDelta
*
* @return {undefined}
*/
-function SetMousePosition (x, y) {
+function SetMousePosition(x, y) {
return r.BindSetMousePosition(
x,
y
@@ -2185,7 +2377,7 @@ raylib.SetMousePosition = SetMousePosition
*
* @return {undefined}
*/
-function SetMouseOffset (offsetX, offsetY) {
+function SetMouseOffset(offsetX, offsetY) {
return r.BindSetMouseOffset(
offsetX,
offsetY
@@ -2201,7 +2393,7 @@ raylib.SetMouseOffset = SetMouseOffset
*
* @return {undefined}
*/
-function SetMouseScale (scaleX, scaleY) {
+function SetMouseScale(scaleX, scaleY) {
return r.BindSetMouseScale(
scaleX,
scaleY
@@ -2214,7 +2406,7 @@ raylib.SetMouseScale = SetMouseScale
*
* @return {number} The resulting float.
*/
-function GetMouseWheelMove () {
+function GetMouseWheelMove() {
return r.BindGetMouseWheelMove()
}
raylib.GetMouseWheelMove = GetMouseWheelMove
@@ -2224,7 +2416,7 @@ raylib.GetMouseWheelMove = GetMouseWheelMove
*
* @return {Vector2} The resulting Vector2.
*/
-function GetMouseWheelMoveV () {
+function GetMouseWheelMoveV() {
return r.BindGetMouseWheelMoveV()
}
raylib.GetMouseWheelMoveV = GetMouseWheelMoveV
@@ -2236,7 +2428,7 @@ raylib.GetMouseWheelMoveV = GetMouseWheelMoveV
*
* @return {undefined}
*/
-function SetMouseCursor (cursor) {
+function SetMouseCursor(cursor) {
return r.BindSetMouseCursor(
cursor
)
@@ -2248,7 +2440,7 @@ raylib.SetMouseCursor = SetMouseCursor
*
* @return {number} The resulting int.
*/
-function GetTouchX () {
+function GetTouchX() {
return r.BindGetTouchX()
}
raylib.GetTouchX = GetTouchX
@@ -2258,7 +2450,7 @@ raylib.GetTouchX = GetTouchX
*
* @return {number} The resulting int.
*/
-function GetTouchY () {
+function GetTouchY() {
return r.BindGetTouchY()
}
raylib.GetTouchY = GetTouchY
@@ -2270,7 +2462,7 @@ raylib.GetTouchY = GetTouchY
*
* @return {Vector2} The resulting Vector2.
*/
-function GetTouchPosition (index) {
+function GetTouchPosition(index) {
return r.BindGetTouchPosition(
index
)
@@ -2284,7 +2476,7 @@ raylib.GetTouchPosition = GetTouchPosition
*
* @return {number} The resulting int.
*/
-function GetTouchPointId (index) {
+function GetTouchPointId(index) {
return r.BindGetTouchPointId(
index
)
@@ -2296,7 +2488,7 @@ raylib.GetTouchPointId = GetTouchPointId
*
* @return {number} The resulting int.
*/
-function GetTouchPointCount () {
+function GetTouchPointCount() {
return r.BindGetTouchPointCount()
}
raylib.GetTouchPointCount = GetTouchPointCount
@@ -2308,7 +2500,7 @@ raylib.GetTouchPointCount = GetTouchPointCount
*
* @return {undefined}
*/
-function SetGesturesEnabled (flags) {
+function SetGesturesEnabled(flags) {
return r.BindSetGesturesEnabled(
flags
)
@@ -2322,7 +2514,7 @@ raylib.SetGesturesEnabled = SetGesturesEnabled
*
* @return {boolean} The resulting bool.
*/
-function IsGestureDetected (gesture) {
+function IsGestureDetected(gesture) {
return r.BindIsGestureDetected(
gesture
)
@@ -2334,7 +2526,7 @@ raylib.IsGestureDetected = IsGestureDetected
*
* @return {number} The resulting int.
*/
-function GetGestureDetected () {
+function GetGestureDetected() {
return r.BindGetGestureDetected()
}
raylib.GetGestureDetected = GetGestureDetected
@@ -2344,7 +2536,7 @@ raylib.GetGestureDetected = GetGestureDetected
*
* @return {number} The resulting float.
*/
-function GetGestureHoldDuration () {
+function GetGestureHoldDuration() {
return r.BindGetGestureHoldDuration()
}
raylib.GetGestureHoldDuration = GetGestureHoldDuration
@@ -2354,7 +2546,7 @@ raylib.GetGestureHoldDuration = GetGestureHoldDuration
*
* @return {Vector2} The resulting Vector2.
*/
-function GetGestureDragVector () {
+function GetGestureDragVector() {
return r.BindGetGestureDragVector()
}
raylib.GetGestureDragVector = GetGestureDragVector
@@ -2364,7 +2556,7 @@ raylib.GetGestureDragVector = GetGestureDragVector
*
* @return {number} The resulting float.
*/
-function GetGestureDragAngle () {
+function GetGestureDragAngle() {
return r.BindGetGestureDragAngle()
}
raylib.GetGestureDragAngle = GetGestureDragAngle
@@ -2374,7 +2566,7 @@ raylib.GetGestureDragAngle = GetGestureDragAngle
*
* @return {Vector2} The resulting Vector2.
*/
-function GetGesturePinchVector () {
+function GetGesturePinchVector() {
return r.BindGetGesturePinchVector()
}
raylib.GetGesturePinchVector = GetGesturePinchVector
@@ -2384,7 +2576,7 @@ raylib.GetGesturePinchVector = GetGesturePinchVector
*
* @return {number} The resulting float.
*/
-function GetGesturePinchAngle () {
+function GetGesturePinchAngle() {
return r.BindGetGesturePinchAngle()
}
raylib.GetGesturePinchAngle = GetGesturePinchAngle
@@ -2399,7 +2591,7 @@ raylib.GetGesturePinchAngle = GetGesturePinchAngle
*
* @return {undefined}
*/
-function UpdateCameraPro (camera, movement, rotation, zoom) {
+function UpdateCameraPro(camera, movement, rotation, zoom) {
return r.BindUpdateCameraPro(
camera,
movement.x,
@@ -2421,7 +2613,7 @@ raylib.UpdateCameraPro = UpdateCameraPro
*
* @return {undefined}
*/
-function SetShapesTexture (texture, source) {
+function SetShapesTexture(texture, source) {
return r.BindSetShapesTexture(
texture.id,
texture.width,
@@ -2445,7 +2637,7 @@ raylib.SetShapesTexture = SetShapesTexture
*
* @return {undefined}
*/
-function DrawPixel (posX, posY, color) {
+function DrawPixel(posX, posY, color) {
return r.BindDrawPixel(
posX,
posY,
@@ -2465,7 +2657,7 @@ raylib.DrawPixel = DrawPixel
*
* @return {undefined}
*/
-function DrawPixelV (position, color) {
+function DrawPixelV(position, color) {
return r.BindDrawPixelV(
position.x,
position.y,
@@ -2488,7 +2680,7 @@ raylib.DrawPixelV = DrawPixelV
*
* @return {undefined}
*/
-function DrawLine (startPosX, startPosY, endPosX, endPosY, color) {
+function DrawLine(startPosX, startPosY, endPosX, endPosY, color) {
return r.BindDrawLine(
startPosX,
startPosY,
@@ -2503,7 +2695,7 @@ function DrawLine (startPosX, startPosY, endPosX, endPosY, color) {
raylib.DrawLine = DrawLine
/**
- * Draw a line (Vector version)
+ * Draw a line (using gl lines)
*
* @param {Vector2} startPos
* @param {Vector2} endPos
@@ -2511,7 +2703,7 @@ raylib.DrawLine = DrawLine
*
* @return {undefined}
*/
-function DrawLineV (startPos, endPos, color) {
+function DrawLineV(startPos, endPos, color) {
return r.BindDrawLineV(
startPos.x,
startPos.y,
@@ -2526,7 +2718,7 @@ function DrawLineV (startPos, endPos, color) {
raylib.DrawLineV = DrawLineV
/**
- * Draw a line defining thickness
+ * Draw a line (using triangles/quads)
*
* @param {Vector2} startPos
* @param {Vector2} endPos
@@ -2535,7 +2727,7 @@ raylib.DrawLineV = DrawLineV
*
* @return {undefined}
*/
-function DrawLineEx (startPos, endPos, thick, color) {
+function DrawLineEx(startPos, endPos, thick, color) {
return r.BindDrawLineEx(
startPos.x,
startPos.y,
@@ -2551,80 +2743,42 @@ function DrawLineEx (startPos, endPos, thick, color) {
raylib.DrawLineEx = DrawLineEx
/**
- * Draw a line using cubic-bezier curves in-out
- *
- * @param {Vector2} startPos
- * @param {Vector2} endPos
- * @param {number} thick
- * @param {Color} color
- *
- * @return {undefined}
- */
-function DrawLineBezier (startPos, endPos, thick, color) {
- return r.BindDrawLineBezier(
- startPos.x,
- startPos.y,
- endPos.x,
- endPos.y,
- thick,
- color.r,
- color.g,
- color.b,
- color.a
- )
-}
-raylib.DrawLineBezier = DrawLineBezier
-
-/**
- * Draw line using quadratic bezier curves with a control point
+ * Draw lines sequence (using gl lines)
*
- * @param {Vector2} startPos
- * @param {Vector2} endPos
- * @param {Vector2} controlPos
- * @param {number} thick
+ * @param {number} points
+ * @param {number} pointCount
* @param {Color} color
*
* @return {undefined}
*/
-function DrawLineBezierQuad (startPos, endPos, controlPos, thick, color) {
- return r.BindDrawLineBezierQuad(
- startPos.x,
- startPos.y,
- endPos.x,
- endPos.y,
- controlPos.x,
- controlPos.y,
- thick,
+function DrawLineStrip(points, pointCount, color) {
+ return r.BindDrawLineStrip(
+ points,
+ pointCount,
color.r,
color.g,
color.b,
color.a
)
}
-raylib.DrawLineBezierQuad = DrawLineBezierQuad
+raylib.DrawLineStrip = DrawLineStrip
/**
- * Draw line using cubic bezier curves with 2 control points
+ * Draw line segment cubic-bezier in-out interpolation
*
* @param {Vector2} startPos
* @param {Vector2} endPos
- * @param {Vector2} startControlPos
- * @param {Vector2} endControlPos
* @param {number} thick
* @param {Color} color
*
* @return {undefined}
*/
-function DrawLineBezierCubic (startPos, endPos, startControlPos, endControlPos, thick, color) {
- return r.BindDrawLineBezierCubic(
+function DrawLineBezier(startPos, endPos, thick, color) {
+ return r.BindDrawLineBezier(
startPos.x,
startPos.y,
endPos.x,
endPos.y,
- startControlPos.x,
- startControlPos.y,
- endControlPos.x,
- endControlPos.y,
thick,
color.r,
color.g,
@@ -2632,28 +2786,7 @@ function DrawLineBezierCubic (startPos, endPos, startControlPos, endControlPos,
color.a
)
}
-raylib.DrawLineBezierCubic = DrawLineBezierCubic
-
-/**
- * Draw lines sequence
- *
- * @param {number} points
- * @param {number} pointCount
- * @param {Color} color
- *
- * @return {undefined}
- */
-function DrawLineStrip (points, pointCount, color) {
- return r.BindDrawLineStrip(
- points,
- pointCount,
- color.r,
- color.g,
- color.b,
- color.a
- )
-}
-raylib.DrawLineStrip = DrawLineStrip
+raylib.DrawLineBezier = DrawLineBezier
/**
* Draw a color-filled circle
@@ -2665,7 +2798,7 @@ raylib.DrawLineStrip = DrawLineStrip
*
* @return {undefined}
*/
-function DrawCircle (centerX, centerY, radius, color) {
+function DrawCircle(centerX, centerY, radius, color) {
return r.BindDrawCircle(
centerX,
centerY,
@@ -2690,7 +2823,7 @@ raylib.DrawCircle = DrawCircle
*
* @return {undefined}
*/
-function DrawCircleSector (center, radius, startAngle, endAngle, segments, color) {
+function DrawCircleSector(center, radius, startAngle, endAngle, segments, color) {
return r.BindDrawCircleSector(
center.x,
center.y,
@@ -2718,7 +2851,7 @@ raylib.DrawCircleSector = DrawCircleSector
*
* @return {undefined}
*/
-function DrawCircleSectorLines (center, radius, startAngle, endAngle, segments, color) {
+function DrawCircleSectorLines(center, radius, startAngle, endAngle, segments, color) {
return r.BindDrawCircleSectorLines(
center.x,
center.y,
@@ -2745,7 +2878,7 @@ raylib.DrawCircleSectorLines = DrawCircleSectorLines
*
* @return {undefined}
*/
-function DrawCircleGradient (centerX, centerY, radius, color1, color2) {
+function DrawCircleGradient(centerX, centerY, radius, color1, color2) {
return r.BindDrawCircleGradient(
centerX,
centerY,
@@ -2771,7 +2904,7 @@ raylib.DrawCircleGradient = DrawCircleGradient
*
* @return {undefined}
*/
-function DrawCircleV (center, radius, color) {
+function DrawCircleV(center, radius, color) {
return r.BindDrawCircleV(
center.x,
center.y,
@@ -2794,7 +2927,7 @@ raylib.DrawCircleV = DrawCircleV
*
* @return {undefined}
*/
-function DrawCircleLines (centerX, centerY, radius, color) {
+function DrawCircleLines(centerX, centerY, radius, color) {
return r.BindDrawCircleLines(
centerX,
centerY,
@@ -2807,6 +2940,28 @@ function DrawCircleLines (centerX, centerY, radius, color) {
}
raylib.DrawCircleLines = DrawCircleLines
+/**
+ * Draw circle outline (Vector version)
+ *
+ * @param {Vector2} center
+ * @param {number} radius
+ * @param {Color} color
+ *
+ * @return {undefined}
+ */
+function DrawCircleLinesV(center, radius, color) {
+ return r.BindDrawCircleLinesV(
+ center.x,
+ center.y,
+ radius,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+}
+raylib.DrawCircleLinesV = DrawCircleLinesV
+
/**
* Draw ellipse
*
@@ -2818,7 +2973,7 @@ raylib.DrawCircleLines = DrawCircleLines
*
* @return {undefined}
*/
-function DrawEllipse (centerX, centerY, radiusH, radiusV, color) {
+function DrawEllipse(centerX, centerY, radiusH, radiusV, color) {
return r.BindDrawEllipse(
centerX,
centerY,
@@ -2843,7 +2998,7 @@ raylib.DrawEllipse = DrawEllipse
*
* @return {undefined}
*/
-function DrawEllipseLines (centerX, centerY, radiusH, radiusV, color) {
+function DrawEllipseLines(centerX, centerY, radiusH, radiusV, color) {
return r.BindDrawEllipseLines(
centerX,
centerY,
@@ -2870,7 +3025,7 @@ raylib.DrawEllipseLines = DrawEllipseLines
*
* @return {undefined}
*/
-function DrawRing (center, innerRadius, outerRadius, startAngle, endAngle, segments, color) {
+function DrawRing(center, innerRadius, outerRadius, startAngle, endAngle, segments, color) {
return r.BindDrawRing(
center.x,
center.y,
@@ -2900,7 +3055,7 @@ raylib.DrawRing = DrawRing
*
* @return {undefined}
*/
-function DrawRingLines (center, innerRadius, outerRadius, startAngle, endAngle, segments, color) {
+function DrawRingLines(center, innerRadius, outerRadius, startAngle, endAngle, segments, color) {
return r.BindDrawRingLines(
center.x,
center.y,
@@ -2928,7 +3083,7 @@ raylib.DrawRingLines = DrawRingLines
*
* @return {undefined}
*/
-function DrawRectangle (posX, posY, width, height, color) {
+function DrawRectangle(posX, posY, width, height, color) {
return r.BindDrawRectangle(
posX,
posY,
@@ -2951,7 +3106,7 @@ raylib.DrawRectangle = DrawRectangle
*
* @return {undefined}
*/
-function DrawRectangleV (position, size, color) {
+function DrawRectangleV(position, size, color) {
return r.BindDrawRectangleV(
position.x,
position.y,
@@ -2973,7 +3128,7 @@ raylib.DrawRectangleV = DrawRectangleV
*
* @return {undefined}
*/
-function DrawRectangleRec (rec, color) {
+function DrawRectangleRec(rec, color) {
return r.BindDrawRectangleRec(
rec.x,
rec.y,
@@ -2997,7 +3152,7 @@ raylib.DrawRectangleRec = DrawRectangleRec
*
* @return {undefined}
*/
-function DrawRectanglePro (rec, origin, rotation, color) {
+function DrawRectanglePro(rec, origin, rotation, color) {
return r.BindDrawRectanglePro(
rec.x,
rec.y,
@@ -3026,7 +3181,7 @@ raylib.DrawRectanglePro = DrawRectanglePro
*
* @return {undefined}
*/
-function DrawRectangleGradientV (posX, posY, width, height, color1, color2) {
+function DrawRectangleGradientV(posX, posY, width, height, color1, color2) {
return r.BindDrawRectangleGradientV(
posX,
posY,
@@ -3056,7 +3211,7 @@ raylib.DrawRectangleGradientV = DrawRectangleGradientV
*
* @return {undefined}
*/
-function DrawRectangleGradientH (posX, posY, width, height, color1, color2) {
+function DrawRectangleGradientH(posX, posY, width, height, color1, color2) {
return r.BindDrawRectangleGradientH(
posX,
posY,
@@ -3085,7 +3240,7 @@ raylib.DrawRectangleGradientH = DrawRectangleGradientH
*
* @return {undefined}
*/
-function DrawRectangleGradientEx (rec, col1, col2, col3, col4) {
+function DrawRectangleGradientEx(rec, col1, col2, col3, col4) {
return r.BindDrawRectangleGradientEx(
rec.x,
rec.y,
@@ -3122,7 +3277,7 @@ raylib.DrawRectangleGradientEx = DrawRectangleGradientEx
*
* @return {undefined}
*/
-function DrawRectangleLines (posX, posY, width, height, color) {
+function DrawRectangleLines(posX, posY, width, height, color) {
return r.BindDrawRectangleLines(
posX,
posY,
@@ -3145,7 +3300,7 @@ raylib.DrawRectangleLines = DrawRectangleLines
*
* @return {undefined}
*/
-function DrawRectangleLinesEx (rec, lineThick, color) {
+function DrawRectangleLinesEx(rec, lineThick, color) {
return r.BindDrawRectangleLinesEx(
rec.x,
rec.y,
@@ -3170,7 +3325,7 @@ raylib.DrawRectangleLinesEx = DrawRectangleLinesEx
*
* @return {undefined}
*/
-function DrawRectangleRounded (rec, roundness, segments, color) {
+function DrawRectangleRounded(rec, roundness, segments, color) {
return r.BindDrawRectangleRounded(
rec.x,
rec.y,
@@ -3197,7 +3352,7 @@ raylib.DrawRectangleRounded = DrawRectangleRounded
*
* @return {undefined}
*/
-function DrawRectangleRoundedLines (rec, roundness, segments, lineThick, color) {
+function DrawRectangleRoundedLines(rec, roundness, segments, lineThick, color) {
return r.BindDrawRectangleRoundedLines(
rec.x,
rec.y,
@@ -3224,7 +3379,7 @@ raylib.DrawRectangleRoundedLines = DrawRectangleRoundedLines
*
* @return {undefined}
*/
-function DrawTriangle (v1, v2, v3, color) {
+function DrawTriangle(v1, v2, v3, color) {
return r.BindDrawTriangle(
v1.x,
v1.y,
@@ -3250,7 +3405,7 @@ raylib.DrawTriangle = DrawTriangle
*
* @return {undefined}
*/
-function DrawTriangleLines (v1, v2, v3, color) {
+function DrawTriangleLines(v1, v2, v3, color) {
return r.BindDrawTriangleLines(
v1.x,
v1.y,
@@ -3275,7 +3430,7 @@ raylib.DrawTriangleLines = DrawTriangleLines
*
* @return {undefined}
*/
-function DrawTriangleFan (points, pointCount, color) {
+function DrawTriangleFan(points, pointCount, color) {
return r.BindDrawTriangleFan(
points,
pointCount,
@@ -3296,7 +3451,7 @@ raylib.DrawTriangleFan = DrawTriangleFan
*
* @return {undefined}
*/
-function DrawTriangleStrip (points, pointCount, color) {
+function DrawTriangleStrip(points, pointCount, color) {
return r.BindDrawTriangleStrip(
points,
pointCount,
@@ -3319,7 +3474,7 @@ raylib.DrawTriangleStrip = DrawTriangleStrip
*
* @return {undefined}
*/
-function DrawPoly (center, sides, radius, rotation, color) {
+function DrawPoly(center, sides, radius, rotation, color) {
return r.BindDrawPoly(
center.x,
center.y,
@@ -3345,7 +3500,7 @@ raylib.DrawPoly = DrawPoly
*
* @return {undefined}
*/
-function DrawPolyLines (center, sides, radius, rotation, color) {
+function DrawPolyLines(center, sides, radius, rotation, color) {
return r.BindDrawPolyLines(
center.x,
center.y,
@@ -3372,7 +3527,7 @@ raylib.DrawPolyLines = DrawPolyLines
*
* @return {undefined}
*/
-function DrawPolyLinesEx (center, sides, radius, rotation, lineThick, color) {
+function DrawPolyLinesEx(center, sides, radius, rotation, lineThick, color) {
return r.BindDrawPolyLinesEx(
center.x,
center.y,
@@ -3389,3679 +3544,3526 @@ function DrawPolyLinesEx (center, sides, radius, rotation, lineThick, color) {
raylib.DrawPolyLinesEx = DrawPolyLinesEx
/**
- * Check collision between two rectangles
+ * Draw spline: Linear, minimum 2 points
*
- * @param {Rectangle} rec1
- * @param {Rectangle} rec2
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionRecs (rec1, rec2) {
- return r.BindCheckCollisionRecs(
- rec1.x,
- rec1.y,
- rec1.width,
- rec1.height,
- rec2.x,
- rec2.y,
- rec2.width,
- rec2.height
+function DrawSplineLinear(points, pointCount, thick, color) {
+ return r.BindDrawSplineLinear(
+ points,
+ pointCount,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionRecs = CheckCollisionRecs
+raylib.DrawSplineLinear = DrawSplineLinear
/**
- * Check collision between two circles
+ * Draw spline: B-Spline, minimum 4 points
*
- * @param {Vector2} center1
- * @param {number} radius1
- * @param {Vector2} center2
- * @param {number} radius2
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionCircles (center1, radius1, center2, radius2) {
- return r.BindCheckCollisionCircles(
- center1.x,
- center1.y,
- radius1,
- center2.x,
- center2.y,
- radius2
+function DrawSplineBasis(points, pointCount, thick, color) {
+ return r.BindDrawSplineBasis(
+ points,
+ pointCount,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionCircles = CheckCollisionCircles
+raylib.DrawSplineBasis = DrawSplineBasis
/**
- * Check collision between circle and rectangle
+ * Draw spline: Catmull-Rom, minimum 4 points
*
- * @param {Vector2} center
- * @param {number} radius
- * @param {Rectangle} rec
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionCircleRec (center, radius, rec) {
- return r.BindCheckCollisionCircleRec(
- center.x,
- center.y,
- radius,
- rec.x,
- rec.y,
- rec.width,
- rec.height
+function DrawSplineCatmullRom(points, pointCount, thick, color) {
+ return r.BindDrawSplineCatmullRom(
+ points,
+ pointCount,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionCircleRec = CheckCollisionCircleRec
+raylib.DrawSplineCatmullRom = DrawSplineCatmullRom
/**
- * Check if point is inside rectangle
+ * Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]
*
- * @param {Vector2} point
- * @param {Rectangle} rec
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionPointRec (point, rec) {
- return r.BindCheckCollisionPointRec(
- point.x,
- point.y,
- rec.x,
- rec.y,
- rec.width,
- rec.height
+function DrawSplineBezierQuadratic(points, pointCount, thick, color) {
+ return r.BindDrawSplineBezierQuadratic(
+ points,
+ pointCount,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionPointRec = CheckCollisionPointRec
+raylib.DrawSplineBezierQuadratic = DrawSplineBezierQuadratic
/**
- * Check if point is inside circle
+ * Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]
*
- * @param {Vector2} point
- * @param {Vector2} center
- * @param {number} radius
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionPointCircle (point, center, radius) {
- return r.BindCheckCollisionPointCircle(
- point.x,
- point.y,
- center.x,
- center.y,
- radius
+function DrawSplineBezierCubic(points, pointCount, thick, color) {
+ return r.BindDrawSplineBezierCubic(
+ points,
+ pointCount,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionPointCircle = CheckCollisionPointCircle
+raylib.DrawSplineBezierCubic = DrawSplineBezierCubic
/**
- * Check if point is inside a triangle
+ * Draw spline segment: Linear, 2 points
*
- * @param {Vector2} point
* @param {Vector2} p1
* @param {Vector2} p2
- * @param {Vector2} p3
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionPointTriangle (point, p1, p2, p3) {
- return r.BindCheckCollisionPointTriangle(
- point.x,
- point.y,
+function DrawSplineSegmentLinear(p1, p2, thick, color) {
+ return r.BindDrawSplineSegmentLinear(
p1.x,
p1.y,
p2.x,
p2.y,
- p3.x,
- p3.y
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionPointTriangle = CheckCollisionPointTriangle
+raylib.DrawSplineSegmentLinear = DrawSplineSegmentLinear
/**
- * Check if point is within a polygon described by array of vertices
+ * Draw spline segment: B-Spline, 4 points
*
- * @param {Vector2} point
- * @param {number} points
- * @param {number} pointCount
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {Vector2} p3
+ * @param {Vector2} p4
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionPointPoly (point, points, pointCount) {
- return r.BindCheckCollisionPointPoly(
- point.x,
- point.y,
- points,
- pointCount
+function DrawSplineSegmentBasis(p1, p2, p3, p4, thick, color) {
+ return r.BindDrawSplineSegmentBasis(
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ p3.x,
+ p3.y,
+ p4.x,
+ p4.y,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionPointPoly = CheckCollisionPointPoly
+raylib.DrawSplineSegmentBasis = DrawSplineSegmentBasis
/**
- * Check the collision between two lines defined by two points each, returns collision point by reference
+ * Draw spline segment: Catmull-Rom, 4 points
*
- * @param {Vector2} startPos1
- * @param {Vector2} endPos1
- * @param {Vector2} startPos2
- * @param {Vector2} endPos2
- * @param {number} collisionPoint
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {Vector2} p3
+ * @param {Vector2} p4
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionLines (startPos1, endPos1, startPos2, endPos2, collisionPoint) {
- return r.BindCheckCollisionLines(
- startPos1.x,
- startPos1.y,
- endPos1.x,
- endPos1.y,
- startPos2.x,
- startPos2.y,
- endPos2.x,
- endPos2.y,
- collisionPoint
+function DrawSplineSegmentCatmullRom(p1, p2, p3, p4, thick, color) {
+ return r.BindDrawSplineSegmentCatmullRom(
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ p3.x,
+ p3.y,
+ p4.x,
+ p4.y,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionLines = CheckCollisionLines
+raylib.DrawSplineSegmentCatmullRom = DrawSplineSegmentCatmullRom
/**
- * Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]
+ * Draw spline segment: Quadratic Bezier, 2 points, 1 control point
*
- * @param {Vector2} point
* @param {Vector2} p1
- * @param {Vector2} p2
- * @param {number} threshold
+ * @param {Vector2} c2
+ * @param {Vector2} p3
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionPointLine (point, p1, p2, threshold) {
- return r.BindCheckCollisionPointLine(
- point.x,
- point.y,
+function DrawSplineSegmentBezierQuadratic(p1, c2, p3, thick, color) {
+ return r.BindDrawSplineSegmentBezierQuadratic(
p1.x,
p1.y,
- p2.x,
- p2.y,
- threshold
+ c2.x,
+ c2.y,
+ p3.x,
+ p3.y,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionPointLine = CheckCollisionPointLine
+raylib.DrawSplineSegmentBezierQuadratic = DrawSplineSegmentBezierQuadratic
/**
- * Get collision rectangle for two rectangles collision
+ * Draw spline segment: Cubic Bezier, 2 points, 2 control points
*
- * @param {Rectangle} rec1
- * @param {Rectangle} rec2
+ * @param {Vector2} p1
+ * @param {Vector2} c2
+ * @param {Vector2} c3
+ * @param {Vector2} p4
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {Rectangle} The resulting Rectangle.
+ * @return {undefined}
*/
-function GetCollisionRec (rec1, rec2) {
- return r.BindGetCollisionRec(
- rec1.x,
- rec1.y,
- rec1.width,
- rec1.height,
- rec2.x,
- rec2.y,
- rec2.width,
- rec2.height
+function DrawSplineSegmentBezierCubic(p1, c2, c3, p4, thick, color) {
+ return r.BindDrawSplineSegmentBezierCubic(
+ p1.x,
+ p1.y,
+ c2.x,
+ c2.y,
+ c3.x,
+ c3.y,
+ p4.x,
+ p4.y,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.GetCollisionRec = GetCollisionRec
+raylib.DrawSplineSegmentBezierCubic = DrawSplineSegmentBezierCubic
/**
- * Load image from file into CPU memory (RAM)
+ * Get (evaluate) spline point: Linear
*
- * @param {string} fileName
+ * @param {Vector2} startPos
+ * @param {Vector2} endPos
+ * @param {number} t
*
- * @return {Image} The resulting Image.
+ * @return {Vector2} The resulting Vector2.
*/
-function LoadImage (fileName) {
- return r.BindLoadImage(
- fileName
+function GetSplinePointLinear(startPos, endPos, t) {
+ return r.BindGetSplinePointLinear(
+ startPos.x,
+ startPos.y,
+ endPos.x,
+ endPos.y,
+ t
)
}
-raylib.LoadImage = LoadImage
+raylib.GetSplinePointLinear = GetSplinePointLinear
/**
- * Load image from RAW file data
+ * Get (evaluate) spline point: B-Spline
*
- * @param {string} fileName
- * @param {number} width
- * @param {number} height
- * @param {number} format
- * @param {number} headerSize
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {Vector2} p3
+ * @param {Vector2} p4
+ * @param {number} t
*
- * @return {Image} The resulting Image.
+ * @return {Vector2} The resulting Vector2.
*/
-function LoadImageRaw (fileName, width, height, format, headerSize) {
- return r.BindLoadImageRaw(
- fileName,
- width,
- height,
- format,
- headerSize
+function GetSplinePointBasis(p1, p2, p3, p4, t) {
+ return r.BindGetSplinePointBasis(
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ p3.x,
+ p3.y,
+ p4.x,
+ p4.y,
+ t
)
}
-raylib.LoadImageRaw = LoadImageRaw
+raylib.GetSplinePointBasis = GetSplinePointBasis
/**
- * Load image sequence from file (frames appended to image.data)
+ * Get (evaluate) spline point: Catmull-Rom
*
- * @param {string} fileName
- * @param {number} frames
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {Vector2} p3
+ * @param {Vector2} p4
+ * @param {number} t
*
- * @return {Image} The resulting Image.
+ * @return {Vector2} The resulting Vector2.
*/
-function LoadImageAnim (fileName, frames) {
- return r.BindLoadImageAnim(
- fileName,
- frames
+function GetSplinePointCatmullRom(p1, p2, p3, p4, t) {
+ return r.BindGetSplinePointCatmullRom(
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ p3.x,
+ p3.y,
+ p4.x,
+ p4.y,
+ t
)
}
-raylib.LoadImageAnim = LoadImageAnim
+raylib.GetSplinePointCatmullRom = GetSplinePointCatmullRom
/**
- * Load image from memory buffer, fileType refers to extension: i.e. '.png'
+ * Get (evaluate) spline point: Quadratic Bezier
*
- * @param {string} fileType
- * @param {Buffer} fileData
- * @param {number} dataSize
+ * @param {Vector2} p1
+ * @param {Vector2} c2
+ * @param {Vector2} p3
+ * @param {number} t
*
- * @return {Image} The resulting Image.
+ * @return {Vector2} The resulting Vector2.
*/
-function LoadImageFromMemory (fileType, fileData, dataSize) {
- return r.BindLoadImageFromMemory(
- fileType,
- fileData,
- dataSize
+function GetSplinePointBezierQuad(p1, c2, p3, t) {
+ return r.BindGetSplinePointBezierQuad(
+ p1.x,
+ p1.y,
+ c2.x,
+ c2.y,
+ p3.x,
+ p3.y,
+ t
)
}
-raylib.LoadImageFromMemory = LoadImageFromMemory
+raylib.GetSplinePointBezierQuad = GetSplinePointBezierQuad
/**
- * Load image from GPU texture data
+ * Get (evaluate) spline point: Cubic Bezier
*
- * @param {Texture2D} texture
+ * @param {Vector2} p1
+ * @param {Vector2} c2
+ * @param {Vector2} c3
+ * @param {Vector2} p4
+ * @param {number} t
*
- * @return {Image} The resulting Image.
+ * @return {Vector2} The resulting Vector2.
*/
-function LoadImageFromTexture (texture) {
- return r.BindLoadImageFromTexture(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format
+function GetSplinePointBezierCubic(p1, c2, c3, p4, t) {
+ return r.BindGetSplinePointBezierCubic(
+ p1.x,
+ p1.y,
+ c2.x,
+ c2.y,
+ c3.x,
+ c3.y,
+ p4.x,
+ p4.y,
+ t
)
}
-raylib.LoadImageFromTexture = LoadImageFromTexture
+raylib.GetSplinePointBezierCubic = GetSplinePointBezierCubic
/**
- * Load image from screen buffer and (screenshot)
+ * Check collision between two rectangles
*
- * @return {Image} The resulting Image.
+ * @param {Rectangle} rec1
+ * @param {Rectangle} rec2
+ *
+ * @return {boolean} The resulting bool.
*/
-function LoadImageFromScreen () {
- return r.BindLoadImageFromScreen()
+function CheckCollisionRecs(rec1, rec2) {
+ return r.BindCheckCollisionRecs(
+ rec1.x,
+ rec1.y,
+ rec1.width,
+ rec1.height,
+ rec2.x,
+ rec2.y,
+ rec2.width,
+ rec2.height
+ )
}
-raylib.LoadImageFromScreen = LoadImageFromScreen
+raylib.CheckCollisionRecs = CheckCollisionRecs
/**
- * Check if an image is ready
+ * Check collision between two circles
*
- * @param {Image} image
+ * @param {Vector2} center1
+ * @param {number} radius1
+ * @param {Vector2} center2
+ * @param {number} radius2
*
* @return {boolean} The resulting bool.
*/
-function IsImageReady (image) {
- return r.BindIsImageReady(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
+function CheckCollisionCircles(center1, radius1, center2, radius2) {
+ return r.BindCheckCollisionCircles(
+ center1.x,
+ center1.y,
+ radius1,
+ center2.x,
+ center2.y,
+ radius2
)
}
-raylib.IsImageReady = IsImageReady
+raylib.CheckCollisionCircles = CheckCollisionCircles
/**
- * Unload image from CPU memory (RAM)
+ * Check collision between circle and rectangle
*
- * @param {Image} image
+ * @param {Vector2} center
+ * @param {number} radius
+ * @param {Rectangle} rec
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function UnloadImage (image) {
- return r.BindUnloadImage(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
+function CheckCollisionCircleRec(center, radius, rec) {
+ return r.BindCheckCollisionCircleRec(
+ center.x,
+ center.y,
+ radius,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height
)
}
-raylib.UnloadImage = UnloadImage
+raylib.CheckCollisionCircleRec = CheckCollisionCircleRec
/**
- * Export image data to file, returns true on success
+ * Check if point is inside rectangle
*
- * @param {Image} image
- * @param {string} fileName
+ * @param {Vector2} point
+ * @param {Rectangle} rec
*
* @return {boolean} The resulting bool.
*/
-function ExportImage (image, fileName) {
- return r.BindExportImage(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- fileName
+function CheckCollisionPointRec(point, rec) {
+ return r.BindCheckCollisionPointRec(
+ point.x,
+ point.y,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height
)
}
-raylib.ExportImage = ExportImage
+raylib.CheckCollisionPointRec = CheckCollisionPointRec
/**
- * Export image as code file defining an array of bytes, returns true on success
+ * Check if point is inside circle
*
- * @param {Image} image
- * @param {string} fileName
+ * @param {Vector2} point
+ * @param {Vector2} center
+ * @param {number} radius
*
* @return {boolean} The resulting bool.
*/
-function ExportImageAsCode (image, fileName) {
- return r.BindExportImageAsCode(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- fileName
+function CheckCollisionPointCircle(point, center, radius) {
+ return r.BindCheckCollisionPointCircle(
+ point.x,
+ point.y,
+ center.x,
+ center.y,
+ radius
)
}
-raylib.ExportImageAsCode = ExportImageAsCode
+raylib.CheckCollisionPointCircle = CheckCollisionPointCircle
/**
- * Generate image: plain color
+ * Check if point is inside a triangle
*
- * @param {number} width
- * @param {number} height
- * @param {Color} color
+ * @param {Vector2} point
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {Vector2} p3
*
- * @return {Image} The resulting Image.
+ * @return {boolean} The resulting bool.
*/
-function GenImageColor (width, height, color) {
- return r.BindGenImageColor(
- width,
- height,
- color.r,
- color.g,
- color.b,
- color.a
+function CheckCollisionPointTriangle(point, p1, p2, p3) {
+ return r.BindCheckCollisionPointTriangle(
+ point.x,
+ point.y,
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ p3.x,
+ p3.y
)
}
-raylib.GenImageColor = GenImageColor
+raylib.CheckCollisionPointTriangle = CheckCollisionPointTriangle
/**
- * Generate image: vertical gradient
+ * Check if point is within a polygon described by array of vertices
*
- * @param {number} width
- * @param {number} height
- * @param {Color} top
- * @param {Color} bottom
+ * @param {Vector2} point
+ * @param {number} points
+ * @param {number} pointCount
*
- * @return {Image} The resulting Image.
+ * @return {boolean} The resulting bool.
*/
-function GenImageGradientV (width, height, top, bottom) {
- return r.BindGenImageGradientV(
- width,
- height,
- top.r,
- top.g,
- top.b,
- top.a,
- bottom.r,
- bottom.g,
- bottom.b,
- bottom.a
+function CheckCollisionPointPoly(point, points, pointCount) {
+ return r.BindCheckCollisionPointPoly(
+ point.x,
+ point.y,
+ points,
+ pointCount
)
}
-raylib.GenImageGradientV = GenImageGradientV
+raylib.CheckCollisionPointPoly = CheckCollisionPointPoly
/**
- * Generate image: horizontal gradient
+ * Check the collision between two lines defined by two points each, returns collision point by reference
*
- * @param {number} width
- * @param {number} height
- * @param {Color} left
- * @param {Color} right
+ * @param {Vector2} startPos1
+ * @param {Vector2} endPos1
+ * @param {Vector2} startPos2
+ * @param {Vector2} endPos2
+ * @param {number} collisionPoint
*
- * @return {Image} The resulting Image.
+ * @return {boolean} The resulting bool.
*/
-function GenImageGradientH (width, height, left, right) {
- return r.BindGenImageGradientH(
- width,
- height,
- left.r,
- left.g,
- left.b,
- left.a,
- right.r,
- right.g,
- right.b,
- right.a
+function CheckCollisionLines(startPos1, endPos1, startPos2, endPos2, collisionPoint) {
+ return r.BindCheckCollisionLines(
+ startPos1.x,
+ startPos1.y,
+ endPos1.x,
+ endPos1.y,
+ startPos2.x,
+ startPos2.y,
+ endPos2.x,
+ endPos2.y,
+ collisionPoint
)
}
-raylib.GenImageGradientH = GenImageGradientH
+raylib.CheckCollisionLines = CheckCollisionLines
/**
- * Generate image: radial gradient
+ * Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]
*
- * @param {number} width
- * @param {number} height
- * @param {number} density
- * @param {Color} inner
- * @param {Color} outer
+ * @param {Vector2} point
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {number} threshold
*
- * @return {Image} The resulting Image.
+ * @return {boolean} The resulting bool.
*/
-function GenImageGradientRadial (width, height, density, inner, outer) {
- return r.BindGenImageGradientRadial(
- width,
- height,
- density,
- inner.r,
- inner.g,
- inner.b,
- inner.a,
- outer.r,
- outer.g,
- outer.b,
- outer.a
+function CheckCollisionPointLine(point, p1, p2, threshold) {
+ return r.BindCheckCollisionPointLine(
+ point.x,
+ point.y,
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ threshold
)
}
-raylib.GenImageGradientRadial = GenImageGradientRadial
+raylib.CheckCollisionPointLine = CheckCollisionPointLine
/**
- * Generate image: checked
+ * Get collision rectangle for two rectangles collision
*
- * @param {number} width
- * @param {number} height
- * @param {number} checksX
- * @param {number} checksY
- * @param {Color} col1
- * @param {Color} col2
+ * @param {Rectangle} rec1
+ * @param {Rectangle} rec2
*
- * @return {Image} The resulting Image.
+ * @return {Rectangle} The resulting Rectangle.
*/
-function GenImageChecked (width, height, checksX, checksY, col1, col2) {
- return r.BindGenImageChecked(
- width,
- height,
- checksX,
- checksY,
- col1.r,
- col1.g,
- col1.b,
- col1.a,
- col2.r,
- col2.g,
- col2.b,
- col2.a
+function GetCollisionRec(rec1, rec2) {
+ return r.BindGetCollisionRec(
+ rec1.x,
+ rec1.y,
+ rec1.width,
+ rec1.height,
+ rec2.x,
+ rec2.y,
+ rec2.width,
+ rec2.height
)
}
-raylib.GenImageChecked = GenImageChecked
+raylib.GetCollisionRec = GetCollisionRec
/**
- * Generate image: white noise
+ * Load image from file into CPU memory (RAM)
*
- * @param {number} width
- * @param {number} height
- * @param {number} factor
+ * @param {string} fileName
*
* @return {Image} The resulting Image.
*/
-function GenImageWhiteNoise (width, height, factor) {
- return r.BindGenImageWhiteNoise(
- width,
- height,
- factor
+function LoadImage(fileName) {
+ return r.BindLoadImage(
+ fileName
)
}
-raylib.GenImageWhiteNoise = GenImageWhiteNoise
+raylib.LoadImage = LoadImage
/**
- * Generate image: perlin noise
+ * Load image from RAW file data
*
+ * @param {string} fileName
* @param {number} width
* @param {number} height
- * @param {number} offsetX
- * @param {number} offsetY
- * @param {number} scale
+ * @param {number} format
+ * @param {number} headerSize
*
* @return {Image} The resulting Image.
*/
-function GenImagePerlinNoise (width, height, offsetX, offsetY, scale) {
- return r.BindGenImagePerlinNoise(
+function LoadImageRaw(fileName, width, height, format, headerSize) {
+ return r.BindLoadImageRaw(
+ fileName,
width,
height,
- offsetX,
- offsetY,
- scale
+ format,
+ headerSize
)
}
-raylib.GenImagePerlinNoise = GenImagePerlinNoise
+raylib.LoadImageRaw = LoadImageRaw
/**
- * Generate image: cellular algorithm, bigger tileSize means bigger cells
+ * Load image from SVG file data or string with specified size
*
+ * @param {string} fileNameOrString
* @param {number} width
* @param {number} height
- * @param {number} tileSize
*
* @return {Image} The resulting Image.
*/
-function GenImageCellular (width, height, tileSize) {
- return r.BindGenImageCellular(
+function LoadImageSvg(fileNameOrString, width, height) {
+ return r.BindLoadImageSvg(
+ fileNameOrString,
width,
- height,
- tileSize
+ height
)
}
-raylib.GenImageCellular = GenImageCellular
+raylib.LoadImageSvg = LoadImageSvg
/**
- * Generate image: grayscale image from text data
+ * Load image sequence from file (frames appended to image.data)
*
- * @param {number} width
- * @param {number} height
- * @param {string} text
+ * @param {string} fileName
+ * @param {number} frames
*
* @return {Image} The resulting Image.
*/
-function GenImageText (width, height, text) {
- return r.BindGenImageText(
- width,
- height,
- text
+function LoadImageAnim(fileName, frames) {
+ return r.BindLoadImageAnim(
+ fileName,
+ frames
)
}
-raylib.GenImageText = GenImageText
+raylib.LoadImageAnim = LoadImageAnim
/**
- * Create an image duplicate (useful for transformations)
+ * Load image from memory buffer, fileType refers to extension: i.e. '.png'
*
- * @param {Image} image
+ * @param {string} fileType
+ * @param {Buffer} fileData
+ * @param {number} dataSize
*
* @return {Image} The resulting Image.
*/
-function ImageCopy (image) {
- return r.BindImageCopy(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
+function LoadImageFromMemory(fileType, fileData, dataSize) {
+ return r.BindLoadImageFromMemory(
+ fileType,
+ fileData,
+ dataSize
)
}
-raylib.ImageCopy = ImageCopy
+raylib.LoadImageFromMemory = LoadImageFromMemory
/**
- * Create an image from another image piece
+ * Load image from GPU texture data
*
- * @param {Image} image
- * @param {Rectangle} rec
+ * @param {Texture2D} texture
*
* @return {Image} The resulting Image.
*/
-function ImageFromImage (image, rec) {
- return r.BindImageFromImage(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- rec.x,
- rec.y,
- rec.width,
- rec.height
+function LoadImageFromTexture(texture) {
+ return r.BindLoadImageFromTexture(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format
)
}
-raylib.ImageFromImage = ImageFromImage
+raylib.LoadImageFromTexture = LoadImageFromTexture
/**
- * Create an image from text (default font)
- *
- * @param {string} text
- * @param {number} fontSize
- * @param {Color} color
+ * Load image from screen buffer and (screenshot)
*
* @return {Image} The resulting Image.
*/
-function ImageText (text, fontSize, color) {
- return r.BindImageText(
- text,
- fontSize,
- color.r,
- color.g,
- color.b,
- color.a
- )
+function LoadImageFromScreen() {
+ return r.BindLoadImageFromScreen()
}
-raylib.ImageText = ImageText
+raylib.LoadImageFromScreen = LoadImageFromScreen
/**
- * Create an image from text (custom sprite font)
+ * Check if an image is ready
*
- * @param {Font} font
- * @param {string} text
- * @param {number} fontSize
- * @param {number} spacing
- * @param {Color} tint
+ * @param {Image} image
*
- * @return {Image} The resulting Image.
+ * @return {boolean} The resulting bool.
*/
-function ImageTextEx (font, text, fontSize, spacing, tint) {
- return r.BindImageTextEx(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- text,
- fontSize,
- spacing,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function IsImageReady(image) {
+ return r.BindIsImageReady(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
)
}
-raylib.ImageTextEx = ImageTextEx
+raylib.IsImageReady = IsImageReady
/**
- * Apply Gaussian blur using a box blur approximation
+ * Unload image from CPU memory (RAM)
*
- * @param {number} image
- * @param {number} blurSize
+ * @param {Image} image
*
* @return {undefined}
*/
-function ImageBlurGaussian (image, blurSize) {
- return r.BindImageBlurGaussian(
- image,
- blurSize
+function UnloadImage(image) {
+ return r.BindUnloadImage(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
)
}
-raylib.ImageBlurGaussian = ImageBlurGaussian
+raylib.UnloadImage = UnloadImage
/**
- * Load color data from image as a Color array (RGBA - 32bit)
+ * Export image data to file, returns true on success
*
* @param {Image} image
+ * @param {string} fileName
*
- * @return {number} The resulting Color *.
+ * @return {boolean} The resulting bool.
*/
-function LoadImageColors (image) {
- return r.BindLoadImageColors(
+function ExportImage(image, fileName) {
+ return r.BindExportImage(
image.data,
image.width,
image.height,
image.mipmaps,
- image.format
+ image.format,
+ fileName
)
}
-raylib.LoadImageColors = LoadImageColors
+raylib.ExportImage = ExportImage
/**
- * Load colors palette from image as a Color array (RGBA - 32bit)
+ * Export image to memory buffer
*
* @param {Image} image
- * @param {number} maxPaletteSize
- * @param {number} colorCount
+ * @param {string} fileType
+ * @param {number} fileSize
*
- * @return {number} The resulting Color *.
+ * @return {Buffer} The resulting unsigned char *.
*/
-function LoadImagePalette (image, maxPaletteSize, colorCount) {
- return r.BindLoadImagePalette(
+function ExportImageToMemory(image, fileType, fileSize) {
+ return r.BindExportImageToMemory(
image.data,
image.width,
image.height,
image.mipmaps,
image.format,
- maxPaletteSize,
- colorCount
+ fileType,
+ fileSize
)
}
-raylib.LoadImagePalette = LoadImagePalette
+raylib.ExportImageToMemory = ExportImageToMemory
/**
- * Unload color data loaded with LoadImageColors()
+ * Export image as code file defining an array of bytes, returns true on success
*
- * @param {number} colors
+ * @param {Image} image
+ * @param {string} fileName
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function UnloadImageColors (colors) {
- return r.BindUnloadImageColors(
- colors
+function ExportImageAsCode(image, fileName) {
+ return r.BindExportImageAsCode(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ fileName
)
}
-raylib.UnloadImageColors = UnloadImageColors
+raylib.ExportImageAsCode = ExportImageAsCode
/**
- * Unload colors palette loaded with LoadImagePalette()
+ * Generate image: plain color
*
- * @param {number} colors
+ * @param {number} width
+ * @param {number} height
+ * @param {Color} color
*
- * @return {undefined}
+ * @return {Image} The resulting Image.
*/
-function UnloadImagePalette (colors) {
- return r.BindUnloadImagePalette(
- colors
+function GenImageColor(width, height, color) {
+ return r.BindGenImageColor(
+ width,
+ height,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.UnloadImagePalette = UnloadImagePalette
+raylib.GenImageColor = GenImageColor
/**
- * Get image alpha border rectangle
+ * Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient
*
- * @param {Image} image
- * @param {number} threshold
+ * @param {number} width
+ * @param {number} height
+ * @param {number} direction
+ * @param {Color} start
+ * @param {Color} end
*
- * @return {Rectangle} The resulting Rectangle.
+ * @return {Image} The resulting Image.
*/
-function GetImageAlphaBorder (image, threshold) {
- return r.BindGetImageAlphaBorder(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- threshold
+function GenImageGradientLinear(width, height, direction, start, end) {
+ return r.BindGenImageGradientLinear(
+ width,
+ height,
+ direction,
+ start.r,
+ start.g,
+ start.b,
+ start.a,
+ end.r,
+ end.g,
+ end.b,
+ end.a
)
}
-raylib.GetImageAlphaBorder = GetImageAlphaBorder
+raylib.GenImageGradientLinear = GenImageGradientLinear
/**
- * Get image pixel color at (x, y) position
+ * Generate image: radial gradient
*
- * @param {Image} image
- * @param {number} x
- * @param {number} y
+ * @param {number} width
+ * @param {number} height
+ * @param {number} density
+ * @param {Color} inner
+ * @param {Color} outer
*
- * @return {Color} The resulting Color.
+ * @return {Image} The resulting Image.
*/
-function GetImageColor (image, x, y) {
- return r.BindGetImageColor(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- x,
- y
+function GenImageGradientRadial(width, height, density, inner, outer) {
+ return r.BindGenImageGradientRadial(
+ width,
+ height,
+ density,
+ inner.r,
+ inner.g,
+ inner.b,
+ inner.a,
+ outer.r,
+ outer.g,
+ outer.b,
+ outer.a
)
}
-raylib.GetImageColor = GetImageColor
+raylib.GenImageGradientRadial = GenImageGradientRadial
/**
- * Draw circle outline within an image
+ * Generate image: square gradient
*
- * @param {number} dst
- * @param {number} centerX
- * @param {number} centerY
- * @param {number} radius
- * @param {Color} color
+ * @param {number} width
+ * @param {number} height
+ * @param {number} density
+ * @param {Color} inner
+ * @param {Color} outer
*
- * @return {undefined}
+ * @return {Image} The resulting Image.
*/
-function ImageDrawCircleLines (dst, centerX, centerY, radius, color) {
- return r.BindImageDrawCircleLines(
- dst,
- centerX,
- centerY,
- radius,
- color.r,
- color.g,
- color.b,
- color.a
+function GenImageGradientSquare(width, height, density, inner, outer) {
+ return r.BindGenImageGradientSquare(
+ width,
+ height,
+ density,
+ inner.r,
+ inner.g,
+ inner.b,
+ inner.a,
+ outer.r,
+ outer.g,
+ outer.b,
+ outer.a
)
}
-raylib.ImageDrawCircleLines = ImageDrawCircleLines
+raylib.GenImageGradientSquare = GenImageGradientSquare
/**
- * Draw circle outline within an image (Vector version)
+ * Generate image: checked
*
- * @param {number} dst
- * @param {Vector2} center
- * @param {number} radius
- * @param {Color} color
+ * @param {number} width
+ * @param {number} height
+ * @param {number} checksX
+ * @param {number} checksY
+ * @param {Color} col1
+ * @param {Color} col2
*
- * @return {undefined}
+ * @return {Image} The resulting Image.
*/
-function ImageDrawCircleLinesV (dst, center, radius, color) {
- return r.BindImageDrawCircleLinesV(
- dst,
- center.x,
- center.y,
- radius,
- color.r,
- color.g,
- color.b,
- color.a
+function GenImageChecked(width, height, checksX, checksY, col1, col2) {
+ return r.BindGenImageChecked(
+ width,
+ height,
+ checksX,
+ checksY,
+ col1.r,
+ col1.g,
+ col1.b,
+ col1.a,
+ col2.r,
+ col2.g,
+ col2.b,
+ col2.a
)
}
-raylib.ImageDrawCircleLinesV = ImageDrawCircleLinesV
+raylib.GenImageChecked = GenImageChecked
/**
- * Load texture from file into GPU memory (VRAM)
+ * Generate image: white noise
*
- * @param {string} fileName
+ * @param {number} width
+ * @param {number} height
+ * @param {number} factor
*
- * @return {Texture2D} The resulting Texture2D.
+ * @return {Image} The resulting Image.
*/
-function LoadTexture (fileName) {
- return r.BindLoadTexture(
- fileName
+function GenImageWhiteNoise(width, height, factor) {
+ return r.BindGenImageWhiteNoise(
+ width,
+ height,
+ factor
)
}
-raylib.LoadTexture = LoadTexture
+raylib.GenImageWhiteNoise = GenImageWhiteNoise
/**
- * Load texture from image data
+ * Generate image: perlin noise
*
- * @param {Image} image
+ * @param {number} width
+ * @param {number} height
+ * @param {number} offsetX
+ * @param {number} offsetY
+ * @param {number} scale
*
- * @return {Texture2D} The resulting Texture2D.
+ * @return {Image} The resulting Image.
*/
-function LoadTextureFromImage (image) {
- return r.BindLoadTextureFromImage(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
+function GenImagePerlinNoise(width, height, offsetX, offsetY, scale) {
+ return r.BindGenImagePerlinNoise(
+ width,
+ height,
+ offsetX,
+ offsetY,
+ scale
)
}
-raylib.LoadTextureFromImage = LoadTextureFromImage
+raylib.GenImagePerlinNoise = GenImagePerlinNoise
/**
- * Load cubemap from image, multiple image cubemap layouts supported
+ * Generate image: cellular algorithm, bigger tileSize means bigger cells
*
- * @param {Image} image
- * @param {number} layout
+ * @param {number} width
+ * @param {number} height
+ * @param {number} tileSize
*
- * @return {TextureCubemap} The resulting TextureCubemap.
+ * @return {Image} The resulting Image.
*/
-function LoadTextureCubemap (image, layout) {
- return r.BindLoadTextureCubemap(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- layout
+function GenImageCellular(width, height, tileSize) {
+ return r.BindGenImageCellular(
+ width,
+ height,
+ tileSize
)
}
-raylib.LoadTextureCubemap = LoadTextureCubemap
+raylib.GenImageCellular = GenImageCellular
/**
- * Load texture for rendering (framebuffer)
+ * Generate image: grayscale image from text data
*
* @param {number} width
* @param {number} height
+ * @param {string} text
*
- * @return {RenderTexture2D} The resulting RenderTexture2D.
+ * @return {Image} The resulting Image.
*/
-function LoadRenderTexture (width, height) {
- return r.BindLoadRenderTexture(
+function GenImageText(width, height, text) {
+ return r.BindGenImageText(
width,
- height
+ height,
+ text
)
}
-raylib.LoadRenderTexture = LoadRenderTexture
+raylib.GenImageText = GenImageText
/**
- * Check if a texture is ready
+ * Create an image duplicate (useful for transformations)
*
- * @param {Texture2D} texture
+ * @param {Image} image
*
- * @return {boolean} The resulting bool.
+ * @return {Image} The resulting Image.
*/
-function IsTextureReady (texture) {
- return r.BindIsTextureReady(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format
+function ImageCopy(image) {
+ return r.BindImageCopy(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
)
}
-raylib.IsTextureReady = IsTextureReady
+raylib.ImageCopy = ImageCopy
/**
- * Unload texture from GPU memory (VRAM)
+ * Create an image from another image piece
*
- * @param {Texture2D} texture
+ * @param {Image} image
+ * @param {Rectangle} rec
*
- * @return {undefined}
+ * @return {Image} The resulting Image.
*/
-function UnloadTexture (texture) {
- return r.BindUnloadTexture(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format
+function ImageFromImage(image, rec) {
+ return r.BindImageFromImage(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height
)
}
-raylib.UnloadTexture = UnloadTexture
+raylib.ImageFromImage = ImageFromImage
/**
- * Check if a render texture is ready
+ * Create an image from text (default font)
*
- * @param {RenderTexture2D} target
+ * @param {string} text
+ * @param {number} fontSize
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {Image} The resulting Image.
*/
-function IsRenderTextureReady (target) {
- return r.BindIsRenderTextureReady(
- target.id,
- target.texture.id,
- target.texture.width,
- target.texture.height,
- target.texture.mipmaps,
- target.texture.format,
- target.depth.id,
- target.depth.width,
- target.depth.height,
- target.depth.mipmaps,
- target.depth.format
+function ImageText(text, fontSize, color) {
+ return r.BindImageText(
+ text,
+ fontSize,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.IsRenderTextureReady = IsRenderTextureReady
+raylib.ImageText = ImageText
/**
- * Unload render texture from GPU memory (VRAM)
+ * Create an image from text (custom sprite font)
*
- * @param {RenderTexture2D} target
+ * @param {Font} font
+ * @param {string} text
+ * @param {number} fontSize
+ * @param {number} spacing
+ * @param {Color} tint
*
- * @return {undefined}
+ * @return {Image} The resulting Image.
*/
-function UnloadRenderTexture (target) {
- return r.BindUnloadRenderTexture(
- target.id,
- target.texture.id,
- target.texture.width,
- target.texture.height,
- target.texture.mipmaps,
- target.texture.format,
- target.depth.id,
- target.depth.width,
- target.depth.height,
- target.depth.mipmaps,
- target.depth.format
+function ImageTextEx(font, text, fontSize, spacing, tint) {
+ return r.BindImageTextEx(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ text,
+ fontSize,
+ spacing,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.UnloadRenderTexture = UnloadRenderTexture
+raylib.ImageTextEx = ImageTextEx
/**
- * Update GPU texture with new data
+ * Apply Gaussian blur using a box blur approximation
*
- * @param {Texture2D} texture
- * @param {number} pixels
+ * @param {number} image
+ * @param {number} blurSize
*
* @return {undefined}
*/
-function UpdateTexture (texture, pixels) {
- return r.BindUpdateTexture(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- pixels
+function ImageBlurGaussian(image, blurSize) {
+ return r.BindImageBlurGaussian(
+ image,
+ blurSize
)
}
-raylib.UpdateTexture = UpdateTexture
+raylib.ImageBlurGaussian = ImageBlurGaussian
/**
- * Update GPU texture rectangle with new data
+ * Rotate image by input angle in degrees (-359 to 359)
*
- * @param {Texture2D} texture
- * @param {Rectangle} rec
- * @param {number} pixels
+ * @param {number} image
+ * @param {number} degrees
*
* @return {undefined}
*/
-function UpdateTextureRec (texture, rec, pixels) {
- return r.BindUpdateTextureRec(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- rec.x,
- rec.y,
- rec.width,
- rec.height,
- pixels
+function ImageRotate(image, degrees) {
+ return r.BindImageRotate(
+ image,
+ degrees
)
}
-raylib.UpdateTextureRec = UpdateTextureRec
+raylib.ImageRotate = ImageRotate
/**
- * Set texture scaling filter mode
+ * Load color data from image as a Color array (RGBA - 32bit)
*
- * @param {Texture2D} texture
- * @param {number} filter
+ * @param {Image} image
*
- * @return {undefined}
+ * @return {number} The resulting Color *.
*/
-function SetTextureFilter (texture, filter) {
- return r.BindSetTextureFilter(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- filter
+function LoadImageColors(image) {
+ return r.BindLoadImageColors(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
)
}
-raylib.SetTextureFilter = SetTextureFilter
+raylib.LoadImageColors = LoadImageColors
/**
- * Set texture wrapping mode
+ * Load colors palette from image as a Color array (RGBA - 32bit)
*
- * @param {Texture2D} texture
- * @param {number} wrap
+ * @param {Image} image
+ * @param {number} maxPaletteSize
+ * @param {number} colorCount
*
- * @return {undefined}
+ * @return {number} The resulting Color *.
*/
-function SetTextureWrap (texture, wrap) {
- return r.BindSetTextureWrap(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- wrap
+function LoadImagePalette(image, maxPaletteSize, colorCount) {
+ return r.BindLoadImagePalette(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ maxPaletteSize,
+ colorCount
)
}
-raylib.SetTextureWrap = SetTextureWrap
+raylib.LoadImagePalette = LoadImagePalette
/**
- * Draw a Texture2D
+ * Unload color data loaded with LoadImageColors()
*
- * @param {Texture2D} texture
- * @param {number} posX
- * @param {number} posY
- * @param {Color} tint
+ * @param {number} colors
*
* @return {undefined}
*/
-function DrawTexture (texture, posX, posY, tint) {
- return r.BindDrawTexture(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- posX,
- posY,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function UnloadImageColors(colors) {
+ return r.BindUnloadImageColors(
+ colors
)
}
-raylib.DrawTexture = DrawTexture
+raylib.UnloadImageColors = UnloadImageColors
/**
- * Draw a Texture2D with position defined as Vector2
+ * Unload colors palette loaded with LoadImagePalette()
*
- * @param {Texture2D} texture
- * @param {Vector2} position
- * @param {Color} tint
+ * @param {number} colors
*
* @return {undefined}
*/
-function DrawTextureV (texture, position, tint) {
- return r.BindDrawTextureV(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- position.x,
- position.y,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function UnloadImagePalette(colors) {
+ return r.BindUnloadImagePalette(
+ colors
)
}
-raylib.DrawTextureV = DrawTextureV
+raylib.UnloadImagePalette = UnloadImagePalette
/**
- * Draw a Texture2D with extended parameters
+ * Get image alpha border rectangle
*
- * @param {Texture2D} texture
- * @param {Vector2} position
- * @param {number} rotation
- * @param {number} scale
- * @param {Color} tint
+ * @param {Image} image
+ * @param {number} threshold
*
- * @return {undefined}
+ * @return {Rectangle} The resulting Rectangle.
*/
-function DrawTextureEx (texture, position, rotation, scale, tint) {
- return r.BindDrawTextureEx(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- position.x,
- position.y,
- rotation,
- scale,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function GetImageAlphaBorder(image, threshold) {
+ return r.BindGetImageAlphaBorder(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ threshold
)
}
-raylib.DrawTextureEx = DrawTextureEx
+raylib.GetImageAlphaBorder = GetImageAlphaBorder
/**
- * Draw a part of a texture defined by a rectangle
+ * Get image pixel color at (x, y) position
*
- * @param {Texture2D} texture
- * @param {Rectangle} source
- * @param {Vector2} position
- * @param {Color} tint
+ * @param {Image} image
+ * @param {number} x
+ * @param {number} y
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawTextureRec (texture, source, position, tint) {
- return r.BindDrawTextureRec(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- source.x,
- source.y,
- source.width,
- source.height,
- position.x,
- position.y,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function GetImageColor(image, x, y) {
+ return r.BindGetImageColor(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ x,
+ y
)
}
-raylib.DrawTextureRec = DrawTextureRec
+raylib.GetImageColor = GetImageColor
/**
- * Draw a part of a texture defined by a rectangle with 'pro' parameters
- *
- * @param {Texture2D} texture
- * @param {Rectangle} source
- * @param {Rectangle} dest
- * @param {Vector2} origin
- * @param {number} rotation
- * @param {Color} tint
- *
- * @return {undefined}
- */
-function DrawTexturePro (texture, source, dest, origin, rotation, tint) {
- return r.BindDrawTexturePro(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- source.x,
- source.y,
- source.width,
- source.height,
- dest.x,
- dest.y,
- dest.width,
- dest.height,
- origin.x,
- origin.y,
- rotation,
- tint.r,
- tint.g,
- tint.b,
- tint.a
- )
-}
-raylib.DrawTexturePro = DrawTexturePro
-
-/**
- * Draws a texture (or part of it) that stretches or shrinks nicely
- *
- * @param {Texture2D} texture
- * @param {NPatchInfo} nPatchInfo
- * @param {Rectangle} dest
- * @param {Vector2} origin
- * @param {number} rotation
- * @param {Color} tint
- *
- * @return {undefined}
- */
-function DrawTextureNPatch (texture, nPatchInfo, dest, origin, rotation, tint) {
- return r.BindDrawTextureNPatch(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- nPatchInfo.source.x,
- nPatchInfo.source.y,
- nPatchInfo.source.width,
- nPatchInfo.source.height,
- nPatchInfo.left,
- nPatchInfo.top,
- nPatchInfo.right,
- nPatchInfo.bottom,
- nPatchInfo.layout,
- dest.x,
- dest.y,
- dest.width,
- dest.height,
- origin.x,
- origin.y,
- rotation,
- tint.r,
- tint.g,
- tint.b,
- tint.a
- )
-}
-raylib.DrawTextureNPatch = DrawTextureNPatch
-
-/**
- * Get color with alpha applied, alpha goes from 0.0f to 1.0f
+ * Draw circle outline within an image
*
+ * @param {number} dst
+ * @param {number} centerX
+ * @param {number} centerY
+ * @param {number} radius
* @param {Color} color
- * @param {number} alpha
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function Fade (color, alpha) {
- return r.BindFade(
+function ImageDrawCircleLines(dst, centerX, centerY, radius, color) {
+ return r.BindImageDrawCircleLines(
+ dst,
+ centerX,
+ centerY,
+ radius,
color.r,
color.g,
color.b,
- color.a,
- alpha
+ color.a
)
}
-raylib.Fade = Fade
+raylib.ImageDrawCircleLines = ImageDrawCircleLines
/**
- * Get hexadecimal value for a Color
+ * Draw circle outline within an image (Vector version)
*
+ * @param {number} dst
+ * @param {Vector2} center
+ * @param {number} radius
* @param {Color} color
*
- * @return {number} The resulting int.
+ * @return {undefined}
*/
-function ColorToInt (color) {
- return r.BindColorToInt(
+function ImageDrawCircleLinesV(dst, center, radius, color) {
+ return r.BindImageDrawCircleLinesV(
+ dst,
+ center.x,
+ center.y,
+ radius,
color.r,
color.g,
color.b,
color.a
)
}
-raylib.ColorToInt = ColorToInt
+raylib.ImageDrawCircleLinesV = ImageDrawCircleLinesV
/**
- * Get Color normalized as float [0..1]
+ * Load texture from file into GPU memory (VRAM)
*
- * @param {Color} color
+ * @param {string} fileName
*
- * @return {Vector4} The resulting Vector4.
+ * @return {Texture2D} The resulting Texture2D.
*/
-function ColorNormalize (color) {
- return r.BindColorNormalize(
- color.r,
- color.g,
- color.b,
- color.a
+function LoadTexture(fileName) {
+ return r.BindLoadTexture(
+ fileName
)
}
-raylib.ColorNormalize = ColorNormalize
+raylib.LoadTexture = LoadTexture
/**
- * Get Color from normalized values [0..1]
+ * Load texture from image data
*
- * @param {Vector4} normalized
+ * @param {Image} image
*
- * @return {Color} The resulting Color.
+ * @return {Texture2D} The resulting Texture2D.
*/
-function ColorFromNormalized (normalized) {
- return r.BindColorFromNormalized(
- normalized.x,
- normalized.y,
- normalized.z,
- normalized.w
+function LoadTextureFromImage(image) {
+ return r.BindLoadTextureFromImage(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
)
}
-raylib.ColorFromNormalized = ColorFromNormalized
+raylib.LoadTextureFromImage = LoadTextureFromImage
/**
- * Get HSV values for a Color, hue [0..360], saturation/value [0..1]
+ * Load cubemap from image, multiple image cubemap layouts supported
*
- * @param {Color} color
+ * @param {Image} image
+ * @param {number} layout
*
- * @return {Vector3} The resulting Vector3.
+ * @return {TextureCubemap} The resulting TextureCubemap.
*/
-function ColorToHSV (color) {
- return r.BindColorToHSV(
- color.r,
- color.g,
- color.b,
- color.a
+function LoadTextureCubemap(image, layout) {
+ return r.BindLoadTextureCubemap(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ layout
)
}
-raylib.ColorToHSV = ColorToHSV
+raylib.LoadTextureCubemap = LoadTextureCubemap
/**
- * Get a Color from HSV values, hue [0..360], saturation/value [0..1]
+ * Load texture for rendering (framebuffer)
*
- * @param {number} hue
- * @param {number} saturation
- * @param {number} value
+ * @param {number} width
+ * @param {number} height
*
- * @return {Color} The resulting Color.
+ * @return {RenderTexture2D} The resulting RenderTexture2D.
*/
-function ColorFromHSV (hue, saturation, value) {
- return r.BindColorFromHSV(
- hue,
- saturation,
- value
+function LoadRenderTexture(width, height) {
+ return r.BindLoadRenderTexture(
+ width,
+ height
)
}
-raylib.ColorFromHSV = ColorFromHSV
+raylib.LoadRenderTexture = LoadRenderTexture
/**
- * Get color multiplied with another color
+ * Check if a texture is ready
*
- * @param {Color} color
- * @param {Color} tint
+ * @param {Texture2D} texture
*
- * @return {Color} The resulting Color.
+ * @return {boolean} The resulting bool.
*/
-function ColorTint (color, tint) {
- return r.BindColorTint(
- color.r,
- color.g,
- color.b,
- color.a,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function IsTextureReady(texture) {
+ return r.BindIsTextureReady(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format
)
}
-raylib.ColorTint = ColorTint
+raylib.IsTextureReady = IsTextureReady
/**
- * Get color with brightness correction, brightness factor goes from -1.0f to 1.0f
+ * Unload texture from GPU memory (VRAM)
*
- * @param {Color} color
- * @param {number} factor
+ * @param {Texture2D} texture
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function ColorBrightness (color, factor) {
- return r.BindColorBrightness(
- color.r,
- color.g,
- color.b,
- color.a,
- factor
+function UnloadTexture(texture) {
+ return r.BindUnloadTexture(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format
)
}
-raylib.ColorBrightness = ColorBrightness
+raylib.UnloadTexture = UnloadTexture
/**
- * Get color with contrast correction, contrast values between -1.0f and 1.0f
+ * Check if a render texture is ready
*
- * @param {Color} color
- * @param {number} contrast
+ * @param {RenderTexture2D} target
*
- * @return {Color} The resulting Color.
+ * @return {boolean} The resulting bool.
*/
-function ColorContrast (color, contrast) {
- return r.BindColorContrast(
- color.r,
- color.g,
- color.b,
- color.a,
- contrast
+function IsRenderTextureReady(target) {
+ return r.BindIsRenderTextureReady(
+ target.id,
+ target.texture.id,
+ target.texture.width,
+ target.texture.height,
+ target.texture.mipmaps,
+ target.texture.format,
+ target.depth.id,
+ target.depth.width,
+ target.depth.height,
+ target.depth.mipmaps,
+ target.depth.format
)
}
-raylib.ColorContrast = ColorContrast
+raylib.IsRenderTextureReady = IsRenderTextureReady
/**
- * Get color with alpha applied, alpha goes from 0.0f to 1.0f
+ * Unload render texture from GPU memory (VRAM)
*
- * @param {Color} color
- * @param {number} alpha
+ * @param {RenderTexture2D} target
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function ColorAlpha (color, alpha) {
- return r.BindColorAlpha(
- color.r,
- color.g,
- color.b,
- color.a,
- alpha
+function UnloadRenderTexture(target) {
+ return r.BindUnloadRenderTexture(
+ target.id,
+ target.texture.id,
+ target.texture.width,
+ target.texture.height,
+ target.texture.mipmaps,
+ target.texture.format,
+ target.depth.id,
+ target.depth.width,
+ target.depth.height,
+ target.depth.mipmaps,
+ target.depth.format
)
}
-raylib.ColorAlpha = ColorAlpha
+raylib.UnloadRenderTexture = UnloadRenderTexture
/**
- * Get src alpha-blended into dst color with tint
+ * Update GPU texture with new data
*
- * @param {Color} dst
- * @param {Color} src
- * @param {Color} tint
+ * @param {Texture2D} texture
+ * @param {number} pixels
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function ColorAlphaBlend (dst, src, tint) {
- return r.BindColorAlphaBlend(
- dst.r,
- dst.g,
- dst.b,
- dst.a,
- src.r,
- src.g,
- src.b,
- src.a,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function UpdateTexture(texture, pixels) {
+ return r.BindUpdateTexture(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ pixels
)
}
-raylib.ColorAlphaBlend = ColorAlphaBlend
+raylib.UpdateTexture = UpdateTexture
/**
- * Get Color structure from hexadecimal value
+ * Update GPU texture rectangle with new data
*
- * @param {number} hexValue
+ * @param {Texture2D} texture
+ * @param {Rectangle} rec
+ * @param {number} pixels
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function GetColor (hexValue) {
- return r.BindGetColor(
- hexValue
+function UpdateTextureRec(texture, rec, pixels) {
+ return r.BindUpdateTextureRec(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height,
+ pixels
)
}
-raylib.GetColor = GetColor
+raylib.UpdateTextureRec = UpdateTextureRec
/**
- * Get Color from a source pixel pointer of certain format
+ * Set texture scaling filter mode
*
- * @param {number} srcPtr
- * @param {number} format
+ * @param {Texture2D} texture
+ * @param {number} filter
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function GetPixelColor (srcPtr, format) {
- return r.BindGetPixelColor(
- srcPtr,
- format
+function SetTextureFilter(texture, filter) {
+ return r.BindSetTextureFilter(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ filter
)
}
-raylib.GetPixelColor = GetPixelColor
+raylib.SetTextureFilter = SetTextureFilter
/**
- * Set color formatted into destination pixel pointer
+ * Set texture wrapping mode
*
- * @param {number} dstPtr
- * @param {Color} color
- * @param {number} format
+ * @param {Texture2D} texture
+ * @param {number} wrap
*
* @return {undefined}
*/
-function SetPixelColor (dstPtr, color, format) {
- return r.BindSetPixelColor(
- dstPtr,
- color.r,
- color.g,
- color.b,
- color.a,
- format
+function SetTextureWrap(texture, wrap) {
+ return r.BindSetTextureWrap(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ wrap
)
}
-raylib.SetPixelColor = SetPixelColor
+raylib.SetTextureWrap = SetTextureWrap
/**
- * Get pixel data size in bytes for certain format
+ * Draw a Texture2D
*
- * @param {number} width
- * @param {number} height
- * @param {number} format
+ * @param {Texture2D} texture
+ * @param {number} posX
+ * @param {number} posY
+ * @param {Color} tint
*
- * @return {number} The resulting int.
+ * @return {undefined}
*/
-function GetPixelDataSize (width, height, format) {
- return r.BindGetPixelDataSize(
- width,
- height,
- format
+function DrawTexture(texture, posX, posY, tint) {
+ return r.BindDrawTexture(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ posX,
+ posY,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.GetPixelDataSize = GetPixelDataSize
+raylib.DrawTexture = DrawTexture
/**
- * Get the default Font
+ * Draw a Texture2D with position defined as Vector2
*
- * @return {Font} The resulting Font.
+ * @param {Texture2D} texture
+ * @param {Vector2} position
+ * @param {Color} tint
+ *
+ * @return {undefined}
*/
-function GetFontDefault () {
- return r.BindGetFontDefault()
+function DrawTextureV(texture, position, tint) {
+ return r.BindDrawTextureV(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ position.x,
+ position.y,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
+ )
}
-raylib.GetFontDefault = GetFontDefault
+raylib.DrawTextureV = DrawTextureV
/**
- * Load font from file into GPU memory (VRAM)
+ * Draw a Texture2D with extended parameters
*
- * @param {string} fileName
+ * @param {Texture2D} texture
+ * @param {Vector2} position
+ * @param {number} rotation
+ * @param {number} scale
+ * @param {Color} tint
*
- * @return {Font} The resulting Font.
+ * @return {undefined}
*/
-function LoadFont (fileName) {
- return r.BindLoadFont(
- fileName
+function DrawTextureEx(texture, position, rotation, scale, tint) {
+ return r.BindDrawTextureEx(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ position.x,
+ position.y,
+ rotation,
+ scale,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.LoadFont = LoadFont
+raylib.DrawTextureEx = DrawTextureEx
/**
- * Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set
+ * Draw a part of a texture defined by a rectangle
*
- * @param {string} fileName
- * @param {number} fontSize
- * @param {number} fontChars
- * @param {number} glyphCount
+ * @param {Texture2D} texture
+ * @param {Rectangle} source
+ * @param {Vector2} position
+ * @param {Color} tint
*
- * @return {Font} The resulting Font.
+ * @return {undefined}
*/
-function LoadFontEx (fileName, fontSize, fontChars, glyphCount) {
- return r.BindLoadFontEx(
- fileName,
- fontSize,
- fontChars,
- glyphCount
+function DrawTextureRec(texture, source, position, tint) {
+ return r.BindDrawTextureRec(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ source.x,
+ source.y,
+ source.width,
+ source.height,
+ position.x,
+ position.y,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.LoadFontEx = LoadFontEx
+raylib.DrawTextureRec = DrawTextureRec
/**
- * Load font from Image (XNA style)
+ * Draw a part of a texture defined by a rectangle with 'pro' parameters
*
- * @param {Image} image
- * @param {Color} key
- * @param {number} firstChar
+ * @param {Texture2D} texture
+ * @param {Rectangle} source
+ * @param {Rectangle} dest
+ * @param {Vector2} origin
+ * @param {number} rotation
+ * @param {Color} tint
*
- * @return {Font} The resulting Font.
+ * @return {undefined}
*/
-function LoadFontFromImage (image, key, firstChar) {
- return r.BindLoadFontFromImage(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- key.r,
- key.g,
- key.b,
- key.a,
- firstChar
+function DrawTexturePro(texture, source, dest, origin, rotation, tint) {
+ return r.BindDrawTexturePro(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ source.x,
+ source.y,
+ source.width,
+ source.height,
+ dest.x,
+ dest.y,
+ dest.width,
+ dest.height,
+ origin.x,
+ origin.y,
+ rotation,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.LoadFontFromImage = LoadFontFromImage
+raylib.DrawTexturePro = DrawTexturePro
/**
- * Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
+ * Draws a texture (or part of it) that stretches or shrinks nicely
*
- * @param {string} fileType
- * @param {Buffer} fileData
- * @param {number} dataSize
- * @param {number} fontSize
- * @param {number} fontChars
- * @param {number} glyphCount
+ * @param {Texture2D} texture
+ * @param {NPatchInfo} nPatchInfo
+ * @param {Rectangle} dest
+ * @param {Vector2} origin
+ * @param {number} rotation
+ * @param {Color} tint
*
- * @return {Font} The resulting Font.
+ * @return {undefined}
*/
-function LoadFontFromMemory (fileType, fileData, dataSize, fontSize, fontChars, glyphCount) {
- return r.BindLoadFontFromMemory(
- fileType,
- fileData,
- dataSize,
- fontSize,
- fontChars,
- glyphCount
+function DrawTextureNPatch(texture, nPatchInfo, dest, origin, rotation, tint) {
+ return r.BindDrawTextureNPatch(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ nPatchInfo.source.x,
+ nPatchInfo.source.y,
+ nPatchInfo.source.width,
+ nPatchInfo.source.height,
+ nPatchInfo.left,
+ nPatchInfo.top,
+ nPatchInfo.right,
+ nPatchInfo.bottom,
+ nPatchInfo.layout,
+ dest.x,
+ dest.y,
+ dest.width,
+ dest.height,
+ origin.x,
+ origin.y,
+ rotation,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.LoadFontFromMemory = LoadFontFromMemory
+raylib.DrawTextureNPatch = DrawTextureNPatch
/**
- * Check if a font is ready
+ * Get color with alpha applied, alpha goes from 0.0f to 1.0f
*
- * @param {Font} font
+ * @param {Color} color
+ * @param {number} alpha
*
- * @return {boolean} The resulting bool.
+ * @return {Color} The resulting Color.
*/
-function IsFontReady (font) {
- return r.BindIsFontReady(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs
+function Fade(color, alpha) {
+ return r.BindFade(
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ alpha
)
}
-raylib.IsFontReady = IsFontReady
+raylib.Fade = Fade
/**
- * Load font data for further use
+ * Get hexadecimal value for a Color
*
- * @param {Buffer} fileData
- * @param {number} dataSize
- * @param {number} fontSize
- * @param {number} fontChars
- * @param {number} glyphCount
- * @param {number} type
+ * @param {Color} color
*
- * @return {number} The resulting GlyphInfo *.
+ * @return {number} The resulting int.
*/
-function LoadFontData (fileData, dataSize, fontSize, fontChars, glyphCount, type) {
- return r.BindLoadFontData(
- fileData,
- dataSize,
- fontSize,
- fontChars,
- glyphCount,
- type
+function ColorToInt(color) {
+ return r.BindColorToInt(
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.LoadFontData = LoadFontData
+raylib.ColorToInt = ColorToInt
/**
- * Generate image font atlas using chars info
+ * Get Color normalized as float [0..1]
*
- * @param {number} chars
- * @param {number} recs
- * @param {number} glyphCount
- * @param {number} fontSize
- * @param {number} padding
- * @param {number} packMethod
+ * @param {Color} color
*
- * @return {Image} The resulting Image.
+ * @return {Vector4} The resulting Vector4.
*/
-function GenImageFontAtlas (chars, recs, glyphCount, fontSize, padding, packMethod) {
- return r.BindGenImageFontAtlas(
- chars,
- recs,
- glyphCount,
- fontSize,
- padding,
- packMethod
+function ColorNormalize(color) {
+ return r.BindColorNormalize(
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.GenImageFontAtlas = GenImageFontAtlas
+raylib.ColorNormalize = ColorNormalize
/**
- * Unload font chars info data (RAM)
+ * Get Color from normalized values [0..1]
*
- * @param {number} chars
- * @param {number} glyphCount
+ * @param {Vector4} normalized
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function UnloadFontData (chars, glyphCount) {
- return r.BindUnloadFontData(
- chars,
- glyphCount
+function ColorFromNormalized(normalized) {
+ return r.BindColorFromNormalized(
+ normalized.x,
+ normalized.y,
+ normalized.z,
+ normalized.w
)
}
-raylib.UnloadFontData = UnloadFontData
+raylib.ColorFromNormalized = ColorFromNormalized
/**
- * Unload font from GPU memory (VRAM)
+ * Get HSV values for a Color, hue [0..360], saturation/value [0..1]
*
- * @param {Font} font
+ * @param {Color} color
*
- * @return {undefined}
+ * @return {Vector3} The resulting Vector3.
*/
-function UnloadFont (font) {
- return r.BindUnloadFont(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs
+function ColorToHSV(color) {
+ return r.BindColorToHSV(
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.UnloadFont = UnloadFont
+raylib.ColorToHSV = ColorToHSV
/**
- * Export font as code file, returns true on success
+ * Get a Color from HSV values, hue [0..360], saturation/value [0..1]
*
- * @param {Font} font
- * @param {string} fileName
+ * @param {number} hue
+ * @param {number} saturation
+ * @param {number} value
*
- * @return {boolean} The resulting bool.
+ * @return {Color} The resulting Color.
*/
-function ExportFontAsCode (font, fileName) {
- return r.BindExportFontAsCode(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- fileName
+function ColorFromHSV(hue, saturation, value) {
+ return r.BindColorFromHSV(
+ hue,
+ saturation,
+ value
)
}
-raylib.ExportFontAsCode = ExportFontAsCode
+raylib.ColorFromHSV = ColorFromHSV
/**
- * Draw current FPS
+ * Get color multiplied with another color
*
- * @param {number} posX
- * @param {number} posY
+ * @param {Color} color
+ * @param {Color} tint
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawFPS (posX, posY) {
- return r.BindDrawFPS(
- posX,
- posY
+function ColorTint(color, tint) {
+ return r.BindColorTint(
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.DrawFPS = DrawFPS
+raylib.ColorTint = ColorTint
/**
- * Draw text (using default font)
+ * Get color with brightness correction, brightness factor goes from -1.0f to 1.0f
*
- * @param {string} text
- * @param {number} posX
- * @param {number} posY
- * @param {number} fontSize
* @param {Color} color
+ * @param {number} factor
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawText (text, posX, posY, fontSize, color) {
- return r.BindDrawText(
- text,
- posX,
- posY,
- fontSize,
+function ColorBrightness(color, factor) {
+ return r.BindColorBrightness(
color.r,
color.g,
color.b,
- color.a
+ color.a,
+ factor
)
}
-raylib.DrawText = DrawText
+raylib.ColorBrightness = ColorBrightness
/**
- * Draw text using font and additional parameters
+ * Get color with contrast correction, contrast values between -1.0f and 1.0f
*
- * @param {Font} font
- * @param {string} text
- * @param {Vector2} position
- * @param {number} fontSize
- * @param {number} spacing
- * @param {Color} tint
+ * @param {Color} color
+ * @param {number} contrast
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawTextEx (font, text, position, fontSize, spacing, tint) {
- return r.BindDrawTextEx(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- text,
- position.x,
- position.y,
- fontSize,
- spacing,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function ColorContrast(color, contrast) {
+ return r.BindColorContrast(
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ contrast
)
}
-raylib.DrawTextEx = DrawTextEx
+raylib.ColorContrast = ColorContrast
/**
- * Draw text using Font and pro parameters (rotation)
+ * Get color with alpha applied, alpha goes from 0.0f to 1.0f
*
- * @param {Font} font
- * @param {string} text
- * @param {Vector2} position
- * @param {Vector2} origin
- * @param {number} rotation
- * @param {number} fontSize
- * @param {number} spacing
- * @param {Color} tint
+ * @param {Color} color
+ * @param {number} alpha
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawTextPro (font, text, position, origin, rotation, fontSize, spacing, tint) {
- return r.BindDrawTextPro(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- text,
- position.x,
- position.y,
- origin.x,
- origin.y,
- rotation,
- fontSize,
- spacing,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function ColorAlpha(color, alpha) {
+ return r.BindColorAlpha(
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ alpha
)
}
-raylib.DrawTextPro = DrawTextPro
+raylib.ColorAlpha = ColorAlpha
/**
- * Draw one character (codepoint)
+ * Get src alpha-blended into dst color with tint
*
- * @param {Font} font
- * @param {number} codepoint
- * @param {Vector2} position
- * @param {number} fontSize
+ * @param {Color} dst
+ * @param {Color} src
* @param {Color} tint
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawTextCodepoint (font, codepoint, position, fontSize, tint) {
- return r.BindDrawTextCodepoint(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- codepoint,
- position.x,
- position.y,
- fontSize,
+function ColorAlphaBlend(dst, src, tint) {
+ return r.BindColorAlphaBlend(
+ dst.r,
+ dst.g,
+ dst.b,
+ dst.a,
+ src.r,
+ src.g,
+ src.b,
+ src.a,
tint.r,
tint.g,
tint.b,
tint.a
)
}
-raylib.DrawTextCodepoint = DrawTextCodepoint
+raylib.ColorAlphaBlend = ColorAlphaBlend
/**
- * Draw multiple character (codepoint)
+ * Get Color structure from hexadecimal value
*
- * @param {Font} font
- * @param {number} codepoints
- * @param {number} count
- * @param {Vector2} position
- * @param {number} fontSize
- * @param {number} spacing
- * @param {Color} tint
+ * @param {number} hexValue
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawTextCodepoints (font, codepoints, count, position, fontSize, spacing, tint) {
- return r.BindDrawTextCodepoints(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- codepoints,
- count,
- position.x,
- position.y,
- fontSize,
- spacing,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function GetColor(hexValue) {
+ return r.BindGetColor(
+ hexValue
)
}
-raylib.DrawTextCodepoints = DrawTextCodepoints
+raylib.GetColor = GetColor
/**
- * Measure string width for default font
+ * Get Color from a source pixel pointer of certain format
*
- * @param {string} text
- * @param {number} fontSize
+ * @param {number} srcPtr
+ * @param {number} format
*
- * @return {number} The resulting int.
+ * @return {Color} The resulting Color.
*/
-function MeasureText (text, fontSize) {
- return r.BindMeasureText(
- text,
- fontSize
+function GetPixelColor(srcPtr, format) {
+ return r.BindGetPixelColor(
+ srcPtr,
+ format
)
}
-raylib.MeasureText = MeasureText
+raylib.GetPixelColor = GetPixelColor
/**
- * Measure string size for Font
+ * Set color formatted into destination pixel pointer
*
- * @param {Font} font
- * @param {string} text
- * @param {number} fontSize
- * @param {number} spacing
+ * @param {number} dstPtr
+ * @param {Color} color
+ * @param {number} format
*
- * @return {Vector2} The resulting Vector2.
+ * @return {undefined}
*/
-function MeasureTextEx (font, text, fontSize, spacing) {
- return r.BindMeasureTextEx(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- text,
- fontSize,
- spacing
+function SetPixelColor(dstPtr, color, format) {
+ return r.BindSetPixelColor(
+ dstPtr,
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ format
)
}
-raylib.MeasureTextEx = MeasureTextEx
+raylib.SetPixelColor = SetPixelColor
/**
- * Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found
+ * Get pixel data size in bytes for certain format
*
- * @param {Font} font
- * @param {number} codepoint
+ * @param {number} width
+ * @param {number} height
+ * @param {number} format
*
* @return {number} The resulting int.
*/
-function GetGlyphIndex (font, codepoint) {
- return r.BindGetGlyphIndex(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- codepoint
+function GetPixelDataSize(width, height, format) {
+ return r.BindGetPixelDataSize(
+ width,
+ height,
+ format
)
}
-raylib.GetGlyphIndex = GetGlyphIndex
+raylib.GetPixelDataSize = GetPixelDataSize
/**
- * Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found
- *
- * @param {Font} font
- * @param {number} codepoint
+ * Get the default Font
*
- * @return {GlyphInfo} The resulting GlyphInfo.
+ * @return {Font} The resulting Font.
*/
-function GetGlyphInfo (font, codepoint) {
- return r.BindGetGlyphInfo(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- codepoint
- )
+function GetFontDefault() {
+ return r.BindGetFontDefault()
}
-raylib.GetGlyphInfo = GetGlyphInfo
+raylib.GetFontDefault = GetFontDefault
/**
- * Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found
+ * Load font from file into GPU memory (VRAM)
*
- * @param {Font} font
- * @param {number} codepoint
+ * @param {string} fileName
*
- * @return {Rectangle} The resulting Rectangle.
+ * @return {Font} The resulting Font.
*/
-function GetGlyphAtlasRec (font, codepoint) {
- return r.BindGetGlyphAtlasRec(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- codepoint
+function LoadFont(fileName) {
+ return r.BindLoadFont(
+ fileName
)
}
-raylib.GetGlyphAtlasRec = GetGlyphAtlasRec
+raylib.LoadFont = LoadFont
/**
- * Load UTF-8 text encoded from codepoints array
+ * Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set
*
+ * @param {string} fileName
+ * @param {number} fontSize
* @param {number} codepoints
- * @param {number} length
+ * @param {number} codepointCount
*
- * @return {string} The resulting char *.
+ * @return {Font} The resulting Font.
*/
-function LoadUTF8 (codepoints, length) {
- return r.BindLoadUTF8(
+function LoadFontEx(fileName, fontSize, codepoints, codepointCount) {
+ return r.BindLoadFontEx(
+ fileName,
+ fontSize,
codepoints,
- length
+ codepointCount
)
}
-raylib.LoadUTF8 = LoadUTF8
-
-/**
- * Unload UTF-8 text encoded from codepoints array
- *
- * @param {string} text
- *
- * @return {undefined}
- */
-function UnloadUTF8 (text) {
- return r.BindUnloadUTF8(
- text
- )
-}
-raylib.UnloadUTF8 = UnloadUTF8
+raylib.LoadFontEx = LoadFontEx
/**
- * Load all codepoints from a UTF-8 text string, codepoints count returned by parameter
+ * Load font from Image (XNA style)
*
- * @param {string} text
- * @param {number} count
+ * @param {Image} image
+ * @param {Color} key
+ * @param {number} firstChar
*
- * @return {number} The resulting int *.
+ * @return {Font} The resulting Font.
*/
-function LoadCodepoints (text, count) {
- return r.BindLoadCodepoints(
- text,
- count
+function LoadFontFromImage(image, key, firstChar) {
+ return r.BindLoadFontFromImage(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ key.r,
+ key.g,
+ key.b,
+ key.a,
+ firstChar
)
}
-raylib.LoadCodepoints = LoadCodepoints
+raylib.LoadFontFromImage = LoadFontFromImage
/**
- * Unload codepoints data from memory
+ * Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
*
+ * @param {string} fileType
+ * @param {Buffer} fileData
+ * @param {number} dataSize
+ * @param {number} fontSize
* @param {number} codepoints
+ * @param {number} codepointCount
*
- * @return {undefined}
+ * @return {Font} The resulting Font.
*/
-function UnloadCodepoints (codepoints) {
- return r.BindUnloadCodepoints(
- codepoints
+function LoadFontFromMemory(fileType, fileData, dataSize, fontSize, codepoints, codepointCount) {
+ return r.BindLoadFontFromMemory(
+ fileType,
+ fileData,
+ dataSize,
+ fontSize,
+ codepoints,
+ codepointCount
)
}
-raylib.UnloadCodepoints = UnloadCodepoints
+raylib.LoadFontFromMemory = LoadFontFromMemory
/**
- * Get total number of codepoints in a UTF-8 encoded string
+ * Check if a font is ready
*
- * @param {string} text
+ * @param {Font} font
*
- * @return {number} The resulting int.
+ * @return {boolean} The resulting bool.
*/
-function GetCodepointCount (text) {
- return r.BindGetCodepointCount(
- text
+function IsFontReady(font) {
+ return r.BindIsFontReady(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs
)
}
-raylib.GetCodepointCount = GetCodepointCount
+raylib.IsFontReady = IsFontReady
/**
- * Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
+ * Load font data for further use
*
- * @param {string} text
- * @param {number} codepointSize
+ * @param {Buffer} fileData
+ * @param {number} dataSize
+ * @param {number} fontSize
+ * @param {number} codepoints
+ * @param {number} codepointCount
+ * @param {number} type
*
- * @return {number} The resulting int.
+ * @return {number} The resulting GlyphInfo *.
*/
-function GetCodepoint (text, codepointSize) {
- return r.BindGetCodepoint(
- text,
- codepointSize
+function LoadFontData(fileData, dataSize, fontSize, codepoints, codepointCount, type) {
+ return r.BindLoadFontData(
+ fileData,
+ dataSize,
+ fontSize,
+ codepoints,
+ codepointCount,
+ type
)
}
-raylib.GetCodepoint = GetCodepoint
+raylib.LoadFontData = LoadFontData
/**
- * Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
+ * Generate image font atlas using chars info
*
- * @param {string} text
- * @param {number} codepointSize
+ * @param {number} glyphs
+ * @param {number} glyphRecs
+ * @param {number} glyphCount
+ * @param {number} fontSize
+ * @param {number} padding
+ * @param {number} packMethod
*
- * @return {number} The resulting int.
+ * @return {Image} The resulting Image.
*/
-function GetCodepointNext (text, codepointSize) {
- return r.BindGetCodepointNext(
- text,
- codepointSize
+function GenImageFontAtlas(glyphs, glyphRecs, glyphCount, fontSize, padding, packMethod) {
+ return r.BindGenImageFontAtlas(
+ glyphs,
+ glyphRecs,
+ glyphCount,
+ fontSize,
+ padding,
+ packMethod
)
}
-raylib.GetCodepointNext = GetCodepointNext
+raylib.GenImageFontAtlas = GenImageFontAtlas
/**
- * Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
+ * Unload font chars info data (RAM)
*
- * @param {string} text
- * @param {number} codepointSize
+ * @param {number} glyphs
+ * @param {number} glyphCount
*
- * @return {number} The resulting int.
+ * @return {undefined}
*/
-function GetCodepointPrevious (text, codepointSize) {
- return r.BindGetCodepointPrevious(
- text,
- codepointSize
+function UnloadFontData(glyphs, glyphCount) {
+ return r.BindUnloadFontData(
+ glyphs,
+ glyphCount
)
}
-raylib.GetCodepointPrevious = GetCodepointPrevious
+raylib.UnloadFontData = UnloadFontData
/**
- * Encode one codepoint into UTF-8 byte array (array length returned as parameter)
+ * Unload font from GPU memory (VRAM)
*
- * @param {number} codepoint
- * @param {number} utf8Size
+ * @param {Font} font
*
- * @return {string} The resulting const char *.
+ * @return {undefined}
*/
-function CodepointToUTF8 (codepoint, utf8Size) {
- return r.BindCodepointToUTF8(
- codepoint,
- utf8Size
+function UnloadFont(font) {
+ return r.BindUnloadFont(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs
)
}
-raylib.CodepointToUTF8 = CodepointToUTF8
+raylib.UnloadFont = UnloadFont
/**
- * Copy one string to another, returns bytes copied
+ * Export font as code file, returns true on success
*
- * @param {string} dst
- * @param {string} src
+ * @param {Font} font
+ * @param {string} fileName
*
- * @return {number} The resulting int.
+ * @return {boolean} The resulting bool.
*/
-function TextCopy (dst, src) {
- return r.BindTextCopy(
- dst,
- src
+function ExportFontAsCode(font, fileName) {
+ return r.BindExportFontAsCode(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ fileName
)
}
-raylib.TextCopy = TextCopy
+raylib.ExportFontAsCode = ExportFontAsCode
/**
- * Check if two text string are equal
+ * Draw current FPS
*
- * @param {string} text1
- * @param {string} text2
+ * @param {number} posX
+ * @param {number} posY
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function TextIsEqual (text1, text2) {
- return r.BindTextIsEqual(
- text1,
- text2
+function DrawFPS(posX, posY) {
+ return r.BindDrawFPS(
+ posX,
+ posY
)
}
-raylib.TextIsEqual = TextIsEqual
+raylib.DrawFPS = DrawFPS
/**
- * Get text length, checks for '\0' ending
+ * Draw text (using default font)
*
* @param {string} text
+ * @param {number} posX
+ * @param {number} posY
+ * @param {number} fontSize
+ * @param {Color} color
*
- * @return {number} The resulting unsigned int.
+ * @return {undefined}
*/
-function TextLength (text) {
- return r.BindTextLength(
- text
+function DrawText(text, posX, posY, fontSize, color) {
+ return r.BindDrawText(
+ text,
+ posX,
+ posY,
+ fontSize,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.TextLength = TextLength
+raylib.DrawText = DrawText
/**
- * Get a piece of a text string
+ * Draw text using font and additional parameters
*
+ * @param {Font} font
* @param {string} text
- * @param {number} position
- * @param {number} length
+ * @param {Vector2} position
+ * @param {number} fontSize
+ * @param {number} spacing
+ * @param {Color} tint
*
- * @return {string} The resulting const char *.
+ * @return {undefined}
*/
-function TextSubtext (text, position, length) {
- return r.BindTextSubtext(
+function DrawTextEx(font, text, position, fontSize, spacing, tint) {
+ return r.BindDrawTextEx(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
text,
- position,
- length
+ position.x,
+ position.y,
+ fontSize,
+ spacing,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.TextSubtext = TextSubtext
+raylib.DrawTextEx = DrawTextEx
/**
- * Replace text string (WARNING: memory must be freed!)
+ * Draw text using Font and pro parameters (rotation)
*
+ * @param {Font} font
* @param {string} text
- * @param {string} replace
- * @param {string} by
+ * @param {Vector2} position
+ * @param {Vector2} origin
+ * @param {number} rotation
+ * @param {number} fontSize
+ * @param {number} spacing
+ * @param {Color} tint
*
- * @return {string} The resulting char *.
+ * @return {undefined}
*/
-function TextReplace (text, replace, by) {
- return r.BindTextReplace(
+function DrawTextPro(font, text, position, origin, rotation, fontSize, spacing, tint) {
+ return r.BindDrawTextPro(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
text,
- replace,
- by
+ position.x,
+ position.y,
+ origin.x,
+ origin.y,
+ rotation,
+ fontSize,
+ spacing,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.TextReplace = TextReplace
+raylib.DrawTextPro = DrawTextPro
/**
- * Insert text in a position (WARNING: memory must be freed!)
+ * Draw one character (codepoint)
*
- * @param {string} text
- * @param {string} insert
- * @param {number} position
+ * @param {Font} font
+ * @param {number} codepoint
+ * @param {Vector2} position
+ * @param {number} fontSize
+ * @param {Color} tint
*
- * @return {string} The resulting char *.
+ * @return {undefined}
*/
-function TextInsert (text, insert, position) {
- return r.BindTextInsert(
- text,
- insert,
- position
+function DrawTextCodepoint(font, codepoint, position, fontSize, tint) {
+ return r.BindDrawTextCodepoint(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ codepoint,
+ position.x,
+ position.y,
+ fontSize,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.TextInsert = TextInsert
+raylib.DrawTextCodepoint = DrawTextCodepoint
/**
- * Join text strings with delimiter
+ * Draw multiple character (codepoint)
*
- * @param {number} textList
- * @param {number} count
- * @param {string} delimiter
+ * @param {Font} font
+ * @param {number} codepoints
+ * @param {number} codepointCount
+ * @param {Vector2} position
+ * @param {number} fontSize
+ * @param {number} spacing
+ * @param {Color} tint
*
- * @return {string} The resulting const char *.
+ * @return {undefined}
*/
-function TextJoin (textList, count, delimiter) {
- return r.BindTextJoin(
- textList,
- count,
- delimiter
+function DrawTextCodepoints(font, codepoints, codepointCount, position, fontSize, spacing, tint) {
+ return r.BindDrawTextCodepoints(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ codepoints,
+ codepointCount,
+ position.x,
+ position.y,
+ fontSize,
+ spacing,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.TextJoin = TextJoin
+raylib.DrawTextCodepoints = DrawTextCodepoints
/**
- * Split text into multiple strings
+ * Set vertical line spacing when drawing with line-breaks
*
- * @param {string} text
- * @param {string} delimiter
- * @param {number} count
+ * @param {number} spacing
*
- * @return {number} The resulting const char **.
+ * @return {undefined}
*/
-function TextSplit (text, delimiter, count) {
- return r.BindTextSplit(
- text,
- delimiter,
- count
+function SetTextLineSpacing(spacing) {
+ return r.BindSetTextLineSpacing(
+ spacing
)
}
-raylib.TextSplit = TextSplit
+raylib.SetTextLineSpacing = SetTextLineSpacing
/**
- * Append text at specific position and move cursor!
+ * Measure string width for default font
*
* @param {string} text
- * @param {string} append
- * @param {number} position
+ * @param {number} fontSize
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function TextAppend (text, append, position) {
- return r.BindTextAppend(
+function MeasureText(text, fontSize) {
+ return r.BindMeasureText(
text,
- append,
- position
+ fontSize
)
}
-raylib.TextAppend = TextAppend
+raylib.MeasureText = MeasureText
/**
- * Find first text occurrence within a string
+ * Measure string size for Font
*
+ * @param {Font} font
* @param {string} text
- * @param {string} find
+ * @param {number} fontSize
+ * @param {number} spacing
*
- * @return {number} The resulting int.
+ * @return {Vector2} The resulting Vector2.
*/
-function TextFindIndex (text, find) {
- return r.BindTextFindIndex(
+function MeasureTextEx(font, text, fontSize, spacing) {
+ return r.BindMeasureTextEx(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
text,
- find
+ fontSize,
+ spacing
)
}
-raylib.TextFindIndex = TextFindIndex
+raylib.MeasureTextEx = MeasureTextEx
/**
- * Get upper case version of provided string
+ * Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found
*
- * @param {string} text
+ * @param {Font} font
+ * @param {number} codepoint
*
- * @return {string} The resulting const char *.
+ * @return {number} The resulting int.
*/
-function TextToUpper (text) {
- return r.BindTextToUpper(
- text
+function GetGlyphIndex(font, codepoint) {
+ return r.BindGetGlyphIndex(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ codepoint
)
}
-raylib.TextToUpper = TextToUpper
+raylib.GetGlyphIndex = GetGlyphIndex
/**
- * Get lower case version of provided string
+ * Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found
*
- * @param {string} text
+ * @param {Font} font
+ * @param {number} codepoint
*
- * @return {string} The resulting const char *.
+ * @return {GlyphInfo} The resulting GlyphInfo.
*/
-function TextToLower (text) {
- return r.BindTextToLower(
- text
+function GetGlyphInfo(font, codepoint) {
+ return r.BindGetGlyphInfo(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ codepoint
)
}
-raylib.TextToLower = TextToLower
+raylib.GetGlyphInfo = GetGlyphInfo
/**
- * Get Pascal case notation version of provided string
+ * Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found
*
- * @param {string} text
+ * @param {Font} font
+ * @param {number} codepoint
*
- * @return {string} The resulting const char *.
+ * @return {Rectangle} The resulting Rectangle.
*/
-function TextToPascal (text) {
- return r.BindTextToPascal(
- text
- )
-}
-raylib.TextToPascal = TextToPascal
+function GetGlyphAtlasRec(font, codepoint) {
+ return r.BindGetGlyphAtlasRec(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ codepoint
+ )
+}
+raylib.GetGlyphAtlasRec = GetGlyphAtlasRec
/**
- * Get integer value from text (negative values not supported)
+ * Load UTF-8 text encoded from codepoints array
*
- * @param {string} text
+ * @param {number} codepoints
+ * @param {number} length
*
- * @return {number} The resulting int.
+ * @return {string} The resulting char *.
*/
-function TextToInteger (text) {
- return r.BindTextToInteger(
- text
+function LoadUTF8(codepoints, length) {
+ return r.BindLoadUTF8(
+ codepoints,
+ length
)
}
-raylib.TextToInteger = TextToInteger
+raylib.LoadUTF8 = LoadUTF8
/**
- * Draw a line in 3D world space
+ * Unload UTF-8 text encoded from codepoints array
*
- * @param {Vector3} startPos
- * @param {Vector3} endPos
- * @param {Color} color
+ * @param {string} text
*
* @return {undefined}
*/
-function DrawLine3D (startPos, endPos, color) {
- return r.BindDrawLine3D(
- startPos.x,
- startPos.y,
- startPos.z,
- endPos.x,
- endPos.y,
- endPos.z,
- color.r,
- color.g,
- color.b,
- color.a
+function UnloadUTF8(text) {
+ return r.BindUnloadUTF8(
+ text
)
}
-raylib.DrawLine3D = DrawLine3D
+raylib.UnloadUTF8 = UnloadUTF8
/**
- * Draw a point in 3D space, actually a small line
+ * Load all codepoints from a UTF-8 text string, codepoints count returned by parameter
*
- * @param {Vector3} position
- * @param {Color} color
+ * @param {string} text
+ * @param {number} count
*
- * @return {undefined}
+ * @return {number} The resulting int *.
*/
-function DrawPoint3D (position, color) {
- return r.BindDrawPoint3D(
- position.x,
- position.y,
- position.z,
- color.r,
- color.g,
- color.b,
- color.a
+function LoadCodepoints(text, count) {
+ return r.BindLoadCodepoints(
+ text,
+ count
)
}
-raylib.DrawPoint3D = DrawPoint3D
+raylib.LoadCodepoints = LoadCodepoints
/**
- * Draw a circle in 3D world space
+ * Unload codepoints data from memory
*
- * @param {Vector3} center
- * @param {number} radius
- * @param {Vector3} rotationAxis
- * @param {number} rotationAngle
- * @param {Color} color
+ * @param {number} codepoints
*
* @return {undefined}
*/
-function DrawCircle3D (center, radius, rotationAxis, rotationAngle, color) {
- return r.BindDrawCircle3D(
- center.x,
- center.y,
- center.z,
- radius,
- rotationAxis.x,
- rotationAxis.y,
- rotationAxis.z,
- rotationAngle,
- color.r,
- color.g,
- color.b,
- color.a
+function UnloadCodepoints(codepoints) {
+ return r.BindUnloadCodepoints(
+ codepoints
)
}
-raylib.DrawCircle3D = DrawCircle3D
+raylib.UnloadCodepoints = UnloadCodepoints
/**
- * Draw a color-filled triangle (vertex in counter-clockwise order!)
+ * Get total number of codepoints in a UTF-8 encoded string
*
- * @param {Vector3} v1
- * @param {Vector3} v2
- * @param {Vector3} v3
- * @param {Color} color
+ * @param {string} text
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawTriangle3D (v1, v2, v3, color) {
- return r.BindDrawTriangle3D(
- v1.x,
- v1.y,
- v1.z,
- v2.x,
- v2.y,
- v2.z,
- v3.x,
- v3.y,
- v3.z,
- color.r,
- color.g,
- color.b,
- color.a
+function GetCodepointCount(text) {
+ return r.BindGetCodepointCount(
+ text
)
}
-raylib.DrawTriangle3D = DrawTriangle3D
+raylib.GetCodepointCount = GetCodepointCount
/**
- * Draw a triangle strip defined by points
+ * Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
*
- * @param {number} points
- * @param {number} pointCount
- * @param {Color} color
+ * @param {string} text
+ * @param {number} codepointSize
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawTriangleStrip3D (points, pointCount, color) {
- return r.BindDrawTriangleStrip3D(
- points,
- pointCount,
- color.r,
- color.g,
- color.b,
- color.a
+function GetCodepoint(text, codepointSize) {
+ return r.BindGetCodepoint(
+ text,
+ codepointSize
)
}
-raylib.DrawTriangleStrip3D = DrawTriangleStrip3D
+raylib.GetCodepoint = GetCodepoint
/**
- * Draw cube
+ * Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
*
- * @param {Vector3} position
- * @param {number} width
- * @param {number} height
- * @param {number} length
- * @param {Color} color
+ * @param {string} text
+ * @param {number} codepointSize
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawCube (position, width, height, length, color) {
- return r.BindDrawCube(
- position.x,
- position.y,
- position.z,
- width,
- height,
- length,
- color.r,
- color.g,
- color.b,
- color.a
+function GetCodepointNext(text, codepointSize) {
+ return r.BindGetCodepointNext(
+ text,
+ codepointSize
)
}
-raylib.DrawCube = DrawCube
+raylib.GetCodepointNext = GetCodepointNext
/**
- * Draw cube (Vector version)
+ * Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
*
- * @param {Vector3} position
- * @param {Vector3} size
- * @param {Color} color
+ * @param {string} text
+ * @param {number} codepointSize
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawCubeV (position, size, color) {
- return r.BindDrawCubeV(
- position.x,
- position.y,
- position.z,
- size.x,
- size.y,
- size.z,
- color.r,
- color.g,
- color.b,
- color.a
+function GetCodepointPrevious(text, codepointSize) {
+ return r.BindGetCodepointPrevious(
+ text,
+ codepointSize
)
}
-raylib.DrawCubeV = DrawCubeV
+raylib.GetCodepointPrevious = GetCodepointPrevious
/**
- * Draw cube wires
+ * Encode one codepoint into UTF-8 byte array (array length returned as parameter)
*
- * @param {Vector3} position
- * @param {number} width
- * @param {number} height
- * @param {number} length
- * @param {Color} color
+ * @param {number} codepoint
+ * @param {number} utf8Size
*
- * @return {undefined}
+ * @return {string} The resulting const char *.
*/
-function DrawCubeWires (position, width, height, length, color) {
- return r.BindDrawCubeWires(
- position.x,
- position.y,
- position.z,
- width,
- height,
- length,
- color.r,
- color.g,
- color.b,
- color.a
+function CodepointToUTF8(codepoint, utf8Size) {
+ return r.BindCodepointToUTF8(
+ codepoint,
+ utf8Size
)
}
-raylib.DrawCubeWires = DrawCubeWires
+raylib.CodepointToUTF8 = CodepointToUTF8
/**
- * Draw cube wires (Vector version)
+ * Copy one string to another, returns bytes copied
*
- * @param {Vector3} position
- * @param {Vector3} size
- * @param {Color} color
+ * @param {string} dst
+ * @param {string} src
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawCubeWiresV (position, size, color) {
- return r.BindDrawCubeWiresV(
- position.x,
- position.y,
- position.z,
- size.x,
- size.y,
- size.z,
- color.r,
- color.g,
- color.b,
- color.a
+function TextCopy(dst, src) {
+ return r.BindTextCopy(
+ dst,
+ src
)
}
-raylib.DrawCubeWiresV = DrawCubeWiresV
+raylib.TextCopy = TextCopy
/**
- * Draw sphere
+ * Check if two text string are equal
*
- * @param {Vector3} centerPos
- * @param {number} radius
- * @param {Color} color
+ * @param {string} text1
+ * @param {string} text2
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function DrawSphere (centerPos, radius, color) {
- return r.BindDrawSphere(
- centerPos.x,
- centerPos.y,
- centerPos.z,
- radius,
- color.r,
- color.g,
- color.b,
- color.a
+function TextIsEqual(text1, text2) {
+ return r.BindTextIsEqual(
+ text1,
+ text2
)
}
-raylib.DrawSphere = DrawSphere
+raylib.TextIsEqual = TextIsEqual
/**
- * Draw sphere with extended parameters
+ * Get text length, checks for '\0' ending
*
- * @param {Vector3} centerPos
- * @param {number} radius
- * @param {number} rings
- * @param {number} slices
- * @param {Color} color
+ * @param {string} text
*
- * @return {undefined}
+ * @return {number} The resulting unsigned int.
*/
-function DrawSphereEx (centerPos, radius, rings, slices, color) {
- return r.BindDrawSphereEx(
- centerPos.x,
- centerPos.y,
- centerPos.z,
- radius,
- rings,
- slices,
- color.r,
- color.g,
- color.b,
- color.a
+function TextLength(text) {
+ return r.BindTextLength(
+ text
)
}
-raylib.DrawSphereEx = DrawSphereEx
+raylib.TextLength = TextLength
/**
- * Draw sphere wires
+ * Get a piece of a text string
*
- * @param {Vector3} centerPos
- * @param {number} radius
- * @param {number} rings
- * @param {number} slices
- * @param {Color} color
+ * @param {string} text
+ * @param {number} position
+ * @param {number} length
*
- * @return {undefined}
+ * @return {string} The resulting const char *.
*/
-function DrawSphereWires (centerPos, radius, rings, slices, color) {
- return r.BindDrawSphereWires(
- centerPos.x,
- centerPos.y,
- centerPos.z,
- radius,
- rings,
- slices,
- color.r,
- color.g,
- color.b,
- color.a
+function TextSubtext(text, position, length) {
+ return r.BindTextSubtext(
+ text,
+ position,
+ length
)
}
-raylib.DrawSphereWires = DrawSphereWires
+raylib.TextSubtext = TextSubtext
/**
- * Draw a cylinder/cone
+ * Replace text string (WARNING: memory must be freed!)
*
- * @param {Vector3} position
- * @param {number} radiusTop
- * @param {number} radiusBottom
- * @param {number} height
- * @param {number} slices
- * @param {Color} color
+ * @param {string} text
+ * @param {string} replace
+ * @param {string} by
*
- * @return {undefined}
+ * @return {string} The resulting char *.
*/
-function DrawCylinder (position, radiusTop, radiusBottom, height, slices, color) {
- return r.BindDrawCylinder(
- position.x,
- position.y,
- position.z,
- radiusTop,
- radiusBottom,
- height,
- slices,
- color.r,
- color.g,
- color.b,
- color.a
+function TextReplace(text, replace, by) {
+ return r.BindTextReplace(
+ text,
+ replace,
+ by
)
}
-raylib.DrawCylinder = DrawCylinder
+raylib.TextReplace = TextReplace
/**
- * Draw a cylinder with base at startPos and top at endPos
+ * Insert text in a position (WARNING: memory must be freed!)
*
- * @param {Vector3} startPos
- * @param {Vector3} endPos
- * @param {number} startRadius
- * @param {number} endRadius
- * @param {number} sides
- * @param {Color} color
+ * @param {string} text
+ * @param {string} insert
+ * @param {number} position
*
- * @return {undefined}
+ * @return {string} The resulting char *.
*/
-function DrawCylinderEx (startPos, endPos, startRadius, endRadius, sides, color) {
- return r.BindDrawCylinderEx(
- startPos.x,
- startPos.y,
- startPos.z,
- endPos.x,
- endPos.y,
- endPos.z,
- startRadius,
- endRadius,
- sides,
- color.r,
- color.g,
- color.b,
- color.a
+function TextInsert(text, insert, position) {
+ return r.BindTextInsert(
+ text,
+ insert,
+ position
)
}
-raylib.DrawCylinderEx = DrawCylinderEx
+raylib.TextInsert = TextInsert
/**
- * Draw a cylinder/cone wires
+ * Join text strings with delimiter
*
- * @param {Vector3} position
- * @param {number} radiusTop
- * @param {number} radiusBottom
- * @param {number} height
- * @param {number} slices
- * @param {Color} color
+ * @param {number} textList
+ * @param {number} count
+ * @param {string} delimiter
*
- * @return {undefined}
+ * @return {string} The resulting const char *.
*/
-function DrawCylinderWires (position, radiusTop, radiusBottom, height, slices, color) {
- return r.BindDrawCylinderWires(
- position.x,
- position.y,
- position.z,
- radiusTop,
- radiusBottom,
- height,
- slices,
- color.r,
- color.g,
- color.b,
- color.a
+function TextJoin(textList, count, delimiter) {
+ return r.BindTextJoin(
+ textList,
+ count,
+ delimiter
)
}
-raylib.DrawCylinderWires = DrawCylinderWires
+raylib.TextJoin = TextJoin
/**
- * Draw a cylinder wires with base at startPos and top at endPos
+ * Split text into multiple strings
*
- * @param {Vector3} startPos
- * @param {Vector3} endPos
- * @param {number} startRadius
- * @param {number} endRadius
- * @param {number} sides
- * @param {Color} color
+ * @param {string} text
+ * @param {string} delimiter
+ * @param {number} count
*
- * @return {undefined}
+ * @return {number} The resulting const char **.
*/
-function DrawCylinderWiresEx (startPos, endPos, startRadius, endRadius, sides, color) {
- return r.BindDrawCylinderWiresEx(
- startPos.x,
- startPos.y,
- startPos.z,
- endPos.x,
- endPos.y,
- endPos.z,
- startRadius,
- endRadius,
- sides,
- color.r,
- color.g,
- color.b,
- color.a
+function TextSplit(text, delimiter, count) {
+ return r.BindTextSplit(
+ text,
+ delimiter,
+ count
)
}
-raylib.DrawCylinderWiresEx = DrawCylinderWiresEx
+raylib.TextSplit = TextSplit
/**
- * Draw a capsule with the center of its sphere caps at startPos and endPos
+ * Append text at specific position and move cursor!
*
- * @param {Vector3} startPos
- * @param {Vector3} endPos
- * @param {number} radius
- * @param {number} slices
- * @param {number} rings
- * @param {Color} color
+ * @param {string} text
+ * @param {string} append
+ * @param {number} position
*
* @return {undefined}
*/
-function DrawCapsule (startPos, endPos, radius, slices, rings, color) {
- return r.BindDrawCapsule(
- startPos.x,
- startPos.y,
- startPos.z,
- endPos.x,
- endPos.y,
- endPos.z,
- radius,
- slices,
- rings,
- color.r,
- color.g,
- color.b,
- color.a
+function TextAppend(text, append, position) {
+ return r.BindTextAppend(
+ text,
+ append,
+ position
)
}
-raylib.DrawCapsule = DrawCapsule
+raylib.TextAppend = TextAppend
/**
- * Draw capsule wireframe with the center of its sphere caps at startPos and endPos
+ * Find first text occurrence within a string
*
- * @param {Vector3} startPos
- * @param {Vector3} endPos
- * @param {number} radius
- * @param {number} slices
- * @param {number} rings
- * @param {Color} color
+ * @param {string} text
+ * @param {string} find
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawCapsuleWires (startPos, endPos, radius, slices, rings, color) {
- return r.BindDrawCapsuleWires(
- startPos.x,
- startPos.y,
- startPos.z,
- endPos.x,
- endPos.y,
- endPos.z,
- radius,
- slices,
- rings,
- color.r,
- color.g,
- color.b,
- color.a
- )
+function TextFindIndex(text, find) {
+ return r.BindTextFindIndex(
+ text,
+ find
+ )
}
-raylib.DrawCapsuleWires = DrawCapsuleWires
+raylib.TextFindIndex = TextFindIndex
/**
- * Draw a plane XZ
+ * Get upper case version of provided string
*
- * @param {Vector3} centerPos
- * @param {Vector2} size
+ * @param {string} text
+ *
+ * @return {string} The resulting const char *.
+ */
+function TextToUpper(text) {
+ return r.BindTextToUpper(
+ text
+ )
+}
+raylib.TextToUpper = TextToUpper
+
+/**
+ * Get lower case version of provided string
+ *
+ * @param {string} text
+ *
+ * @return {string} The resulting const char *.
+ */
+function TextToLower(text) {
+ return r.BindTextToLower(
+ text
+ )
+}
+raylib.TextToLower = TextToLower
+
+/**
+ * Get Pascal case notation version of provided string
+ *
+ * @param {string} text
+ *
+ * @return {string} The resulting const char *.
+ */
+function TextToPascal(text) {
+ return r.BindTextToPascal(
+ text
+ )
+}
+raylib.TextToPascal = TextToPascal
+
+/**
+ * Get integer value from text (negative values not supported)
+ *
+ * @param {string} text
+ *
+ * @return {number} The resulting int.
+ */
+function TextToInteger(text) {
+ return r.BindTextToInteger(
+ text
+ )
+}
+raylib.TextToInteger = TextToInteger
+
+/**
+ * Draw a line in 3D world space
+ *
+ * @param {Vector3} startPos
+ * @param {Vector3} endPos
* @param {Color} color
*
* @return {undefined}
*/
-function DrawPlane (centerPos, size, color) {
- return r.BindDrawPlane(
- centerPos.x,
- centerPos.y,
- centerPos.z,
- size.x,
- size.y,
+function DrawLine3D(startPos, endPos, color) {
+ return r.BindDrawLine3D(
+ startPos.x,
+ startPos.y,
+ startPos.z,
+ endPos.x,
+ endPos.y,
+ endPos.z,
color.r,
color.g,
color.b,
color.a
)
}
-raylib.DrawPlane = DrawPlane
+raylib.DrawLine3D = DrawLine3D
/**
- * Draw a ray line
+ * Draw a point in 3D space, actually a small line
*
- * @param {Ray} ray
+ * @param {Vector3} position
* @param {Color} color
*
* @return {undefined}
*/
-function DrawRay (ray, color) {
- return r.BindDrawRay(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
+function DrawPoint3D(position, color) {
+ return r.BindDrawPoint3D(
+ position.x,
+ position.y,
+ position.z,
color.r,
color.g,
color.b,
color.a
)
}
-raylib.DrawRay = DrawRay
+raylib.DrawPoint3D = DrawPoint3D
/**
- * Draw a grid (centered at (0, 0, 0))
+ * Draw a circle in 3D world space
*
- * @param {number} slices
- * @param {number} spacing
+ * @param {Vector3} center
+ * @param {number} radius
+ * @param {Vector3} rotationAxis
+ * @param {number} rotationAngle
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawGrid (slices, spacing) {
- return r.BindDrawGrid(
- slices,
- spacing
+function DrawCircle3D(center, radius, rotationAxis, rotationAngle, color) {
+ return r.BindDrawCircle3D(
+ center.x,
+ center.y,
+ center.z,
+ radius,
+ rotationAxis.x,
+ rotationAxis.y,
+ rotationAxis.z,
+ rotationAngle,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawGrid = DrawGrid
+raylib.DrawCircle3D = DrawCircle3D
/**
- * Load model from files (meshes and materials)
+ * Draw a color-filled triangle (vertex in counter-clockwise order!)
*
- * @param {string} fileName
+ * @param {Vector3} v1
+ * @param {Vector3} v2
+ * @param {Vector3} v3
+ * @param {Color} color
*
- * @return {Model} The resulting Model.
+ * @return {undefined}
*/
-function LoadModel (fileName) {
- return r.BindLoadModel(
- fileName
+function DrawTriangle3D(v1, v2, v3, color) {
+ return r.BindDrawTriangle3D(
+ v1.x,
+ v1.y,
+ v1.z,
+ v2.x,
+ v2.y,
+ v2.z,
+ v3.x,
+ v3.y,
+ v3.z,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.LoadModel = LoadModel
+raylib.DrawTriangle3D = DrawTriangle3D
/**
- * Load model from generated mesh (default material)
+ * Draw a triangle strip defined by points
*
- * @param {Mesh} mesh
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {Color} color
*
- * @return {Model} The resulting Model.
+ * @return {undefined}
*/
-function LoadModelFromMesh (mesh) {
- return r.BindLoadModelFromMesh(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId
+function DrawTriangleStrip3D(points, pointCount, color) {
+ return r.BindDrawTriangleStrip3D(
+ points,
+ pointCount,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.LoadModelFromMesh = LoadModelFromMesh
+raylib.DrawTriangleStrip3D = DrawTriangleStrip3D
/**
- * Check if a model is ready
+ * Draw cube
*
- * @param {Model} model
+ * @param {Vector3} position
+ * @param {number} width
+ * @param {number} height
+ * @param {number} length
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsModelReady (model) {
- return r.BindIsModelReady(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose
+function DrawCube(position, width, height, length, color) {
+ return r.BindDrawCube(
+ position.x,
+ position.y,
+ position.z,
+ width,
+ height,
+ length,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.IsModelReady = IsModelReady
+raylib.DrawCube = DrawCube
/**
- * Unload model (including meshes) from memory (RAM and/or VRAM)
+ * Draw cube (Vector version)
*
- * @param {Model} model
+ * @param {Vector3} position
+ * @param {Vector3} size
+ * @param {Color} color
*
* @return {undefined}
*/
-function UnloadModel (model) {
- return r.BindUnloadModel(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose
+function DrawCubeV(position, size, color) {
+ return r.BindDrawCubeV(
+ position.x,
+ position.y,
+ position.z,
+ size.x,
+ size.y,
+ size.z,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.UnloadModel = UnloadModel
+raylib.DrawCubeV = DrawCubeV
/**
- * Compute model bounding box limits (considers all meshes)
+ * Draw cube wires
*
- * @param {Model} model
+ * @param {Vector3} position
+ * @param {number} width
+ * @param {number} height
+ * @param {number} length
+ * @param {Color} color
*
- * @return {BoundingBox} The resulting BoundingBox.
+ * @return {undefined}
*/
-function GetModelBoundingBox (model) {
- return r.BindGetModelBoundingBox(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose
+function DrawCubeWires(position, width, height, length, color) {
+ return r.BindDrawCubeWires(
+ position.x,
+ position.y,
+ position.z,
+ width,
+ height,
+ length,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.GetModelBoundingBox = GetModelBoundingBox
+raylib.DrawCubeWires = DrawCubeWires
/**
- * Draw a model (with texture if set)
+ * Draw cube wires (Vector version)
*
- * @param {Model} model
* @param {Vector3} position
- * @param {number} scale
- * @param {Color} tint
+ * @param {Vector3} size
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawModel (model, position, scale, tint) {
- return r.BindDrawModel(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose,
+function DrawCubeWiresV(position, size, color) {
+ return r.BindDrawCubeWiresV(
position.x,
position.y,
position.z,
- scale,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+ size.x,
+ size.y,
+ size.z,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawModel = DrawModel
+raylib.DrawCubeWiresV = DrawCubeWiresV
/**
- * Draw a model with extended parameters
+ * Draw sphere
*
- * @param {Model} model
- * @param {Vector3} position
- * @param {Vector3} rotationAxis
- * @param {number} rotationAngle
- * @param {Vector3} scale
- * @param {Color} tint
+ * @param {Vector3} centerPos
+ * @param {number} radius
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawModelEx (model, position, rotationAxis, rotationAngle, scale, tint) {
- return r.BindDrawModelEx(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose,
- position.x,
- position.y,
- position.z,
- rotationAxis.x,
- rotationAxis.y,
- rotationAxis.z,
- rotationAngle,
- scale.x,
- scale.y,
- scale.z,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function DrawSphere(centerPos, radius, color) {
+ return r.BindDrawSphere(
+ centerPos.x,
+ centerPos.y,
+ centerPos.z,
+ radius,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawModelEx = DrawModelEx
+raylib.DrawSphere = DrawSphere
/**
- * Draw a model wires (with texture if set)
+ * Draw sphere with extended parameters
*
- * @param {Model} model
- * @param {Vector3} position
- * @param {number} scale
- * @param {Color} tint
+ * @param {Vector3} centerPos
+ * @param {number} radius
+ * @param {number} rings
+ * @param {number} slices
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawModelWires (model, position, scale, tint) {
- return r.BindDrawModelWires(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose,
- position.x,
- position.y,
- position.z,
- scale,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function DrawSphereEx(centerPos, radius, rings, slices, color) {
+ return r.BindDrawSphereEx(
+ centerPos.x,
+ centerPos.y,
+ centerPos.z,
+ radius,
+ rings,
+ slices,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawModelWires = DrawModelWires
+raylib.DrawSphereEx = DrawSphereEx
/**
- * Draw a model wires (with texture if set) with extended parameters
+ * Draw sphere wires
*
- * @param {Model} model
- * @param {Vector3} position
- * @param {Vector3} rotationAxis
- * @param {number} rotationAngle
- * @param {Vector3} scale
- * @param {Color} tint
+ * @param {Vector3} centerPos
+ * @param {number} radius
+ * @param {number} rings
+ * @param {number} slices
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawModelWiresEx (model, position, rotationAxis, rotationAngle, scale, tint) {
- return r.BindDrawModelWiresEx(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose,
- position.x,
- position.y,
- position.z,
- rotationAxis.x,
- rotationAxis.y,
- rotationAxis.z,
- rotationAngle,
- scale.x,
- scale.y,
- scale.z,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function DrawSphereWires(centerPos, radius, rings, slices, color) {
+ return r.BindDrawSphereWires(
+ centerPos.x,
+ centerPos.y,
+ centerPos.z,
+ radius,
+ rings,
+ slices,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawModelWiresEx = DrawModelWiresEx
+raylib.DrawSphereWires = DrawSphereWires
/**
- * Draw bounding box (wires)
+ * Draw a cylinder/cone
*
- * @param {BoundingBox} box
+ * @param {Vector3} position
+ * @param {number} radiusTop
+ * @param {number} radiusBottom
+ * @param {number} height
+ * @param {number} slices
* @param {Color} color
*
* @return {undefined}
*/
-function DrawBoundingBox (box, color) {
- return r.BindDrawBoundingBox(
- box.min.x,
- box.min.y,
- box.min.z,
- box.max.x,
- box.max.y,
- box.max.z,
+function DrawCylinder(position, radiusTop, radiusBottom, height, slices, color) {
+ return r.BindDrawCylinder(
+ position.x,
+ position.y,
+ position.z,
+ radiusTop,
+ radiusBottom,
+ height,
+ slices,
color.r,
color.g,
color.b,
color.a
)
}
-raylib.DrawBoundingBox = DrawBoundingBox
+raylib.DrawCylinder = DrawCylinder
/**
- * Draw a billboard texture
+ * Draw a cylinder with base at startPos and top at endPos
*
- * @param {Camera} camera
- * @param {Texture2D} texture
- * @param {Vector3} position
- * @param {number} size
- * @param {Color} tint
+ * @param {Vector3} startPos
+ * @param {Vector3} endPos
+ * @param {number} startRadius
+ * @param {number} endRadius
+ * @param {number} sides
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawBillboard (camera, texture, position, size, tint) {
- return r.BindDrawBillboard(
- camera.position.x,
- camera.position.y,
- camera.position.z,
- camera.target.x,
- camera.target.y,
- camera.target.z,
- camera.up.x,
- camera.up.y,
- camera.up.z,
- camera.fovy,
- camera.projection,
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- position.x,
- position.y,
- position.z,
- size,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function DrawCylinderEx(startPos, endPos, startRadius, endRadius, sides, color) {
+ return r.BindDrawCylinderEx(
+ startPos.x,
+ startPos.y,
+ startPos.z,
+ endPos.x,
+ endPos.y,
+ endPos.z,
+ startRadius,
+ endRadius,
+ sides,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawBillboard = DrawBillboard
+raylib.DrawCylinderEx = DrawCylinderEx
/**
- * Draw a billboard texture defined by source
+ * Draw a cylinder/cone wires
*
- * @param {Camera} camera
- * @param {Texture2D} texture
- * @param {Rectangle} source
* @param {Vector3} position
- * @param {Vector2} size
- * @param {Color} tint
+ * @param {number} radiusTop
+ * @param {number} radiusBottom
+ * @param {number} height
+ * @param {number} slices
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawBillboardRec (camera, texture, source, position, size, tint) {
- return r.BindDrawBillboardRec(
- camera.position.x,
- camera.position.y,
- camera.position.z,
- camera.target.x,
- camera.target.y,
- camera.target.z,
- camera.up.x,
- camera.up.y,
- camera.up.z,
- camera.fovy,
- camera.projection,
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- source.x,
- source.y,
- source.width,
- source.height,
+function DrawCylinderWires(position, radiusTop, radiusBottom, height, slices, color) {
+ return r.BindDrawCylinderWires(
position.x,
position.y,
position.z,
- size.x,
- size.y,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+ radiusTop,
+ radiusBottom,
+ height,
+ slices,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawBillboardRec = DrawBillboardRec
+raylib.DrawCylinderWires = DrawCylinderWires
/**
- * Draw a billboard texture defined by source and rotation
+ * Draw a cylinder wires with base at startPos and top at endPos
*
- * @param {Camera} camera
- * @param {Texture2D} texture
- * @param {Rectangle} source
- * @param {Vector3} position
- * @param {Vector3} up
- * @param {Vector2} size
- * @param {Vector2} origin
- * @param {number} rotation
- * @param {Color} tint
+ * @param {Vector3} startPos
+ * @param {Vector3} endPos
+ * @param {number} startRadius
+ * @param {number} endRadius
+ * @param {number} sides
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawBillboardPro (camera, texture, source, position, up, size, origin, rotation, tint) {
- return r.BindDrawBillboardPro(
- camera.position.x,
- camera.position.y,
- camera.position.z,
- camera.target.x,
- camera.target.y,
- camera.target.z,
- camera.up.x,
- camera.up.y,
- camera.up.z,
- camera.fovy,
- camera.projection,
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- source.x,
- source.y,
- source.width,
- source.height,
- position.x,
- position.y,
- position.z,
- up.x,
- up.y,
- up.z,
- size.x,
- size.y,
- origin.x,
- origin.y,
- rotation,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function DrawCylinderWiresEx(startPos, endPos, startRadius, endRadius, sides, color) {
+ return r.BindDrawCylinderWiresEx(
+ startPos.x,
+ startPos.y,
+ startPos.z,
+ endPos.x,
+ endPos.y,
+ endPos.z,
+ startRadius,
+ endRadius,
+ sides,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawBillboardPro = DrawBillboardPro
+raylib.DrawCylinderWiresEx = DrawCylinderWiresEx
/**
- * Update mesh vertex data in GPU for a specific buffer index
+ * Draw a capsule with the center of its sphere caps at startPos and endPos
*
- * @param {Mesh} mesh
- * @param {number} index
- * @param {number} data
- * @param {number} dataSize
- * @param {number} offset
+ * @param {Vector3} startPos
+ * @param {Vector3} endPos
+ * @param {number} radius
+ * @param {number} slices
+ * @param {number} rings
+ * @param {Color} color
*
* @return {undefined}
*/
-function UpdateMeshBuffer (mesh, index, data, dataSize, offset) {
- return r.BindUpdateMeshBuffer(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId,
- index,
- data,
- dataSize,
- offset
+function DrawCapsule(startPos, endPos, radius, slices, rings, color) {
+ return r.BindDrawCapsule(
+ startPos.x,
+ startPos.y,
+ startPos.z,
+ endPos.x,
+ endPos.y,
+ endPos.z,
+ radius,
+ slices,
+ rings,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.UpdateMeshBuffer = UpdateMeshBuffer
+raylib.DrawCapsule = DrawCapsule
/**
- * Unload mesh data from CPU and GPU
+ * Draw capsule wireframe with the center of its sphere caps at startPos and endPos
*
- * @param {Mesh} mesh
+ * @param {Vector3} startPos
+ * @param {Vector3} endPos
+ * @param {number} radius
+ * @param {number} slices
+ * @param {number} rings
+ * @param {Color} color
*
* @return {undefined}
*/
-function UnloadMesh (mesh) {
- return r.BindUnloadMesh(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId
+function DrawCapsuleWires(startPos, endPos, radius, slices, rings, color) {
+ return r.BindDrawCapsuleWires(
+ startPos.x,
+ startPos.y,
+ startPos.z,
+ endPos.x,
+ endPos.y,
+ endPos.z,
+ radius,
+ slices,
+ rings,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.UnloadMesh = UnloadMesh
+raylib.DrawCapsuleWires = DrawCapsuleWires
/**
- * Export mesh data to file, returns true on success
+ * Draw a plane XZ
+ *
+ * @param {Vector3} centerPos
+ * @param {Vector2} size
+ * @param {Color} color
+ *
+ * @return {undefined}
+ */
+function DrawPlane(centerPos, size, color) {
+ return r.BindDrawPlane(
+ centerPos.x,
+ centerPos.y,
+ centerPos.z,
+ size.x,
+ size.y,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+}
+raylib.DrawPlane = DrawPlane
+
+/**
+ * Draw a ray line
+ *
+ * @param {Ray} ray
+ * @param {Color} color
+ *
+ * @return {undefined}
+ */
+function DrawRay(ray, color) {
+ return r.BindDrawRay(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+}
+raylib.DrawRay = DrawRay
+
+/**
+ * Draw a grid (centered at (0, 0, 0))
+ *
+ * @param {number} slices
+ * @param {number} spacing
+ *
+ * @return {undefined}
+ */
+function DrawGrid(slices, spacing) {
+ return r.BindDrawGrid(
+ slices,
+ spacing
+ )
+}
+raylib.DrawGrid = DrawGrid
+
+/**
+ * Load model from files (meshes and materials)
*
- * @param {Mesh} mesh
* @param {string} fileName
*
- * @return {boolean} The resulting bool.
+ * @return {Model} The resulting Model.
*/
-function ExportMesh (mesh, fileName) {
- return r.BindExportMesh(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId,
+function LoadModel(fileName) {
+ return r.BindLoadModel(
fileName
)
}
-raylib.ExportMesh = ExportMesh
+raylib.LoadModel = LoadModel
/**
- * Compute mesh bounding box limits
+ * Load model from generated mesh (default material)
*
* @param {Mesh} mesh
*
- * @return {BoundingBox} The resulting BoundingBox.
+ * @return {Model} The resulting Model.
*/
-function GetMeshBoundingBox (mesh) {
- return r.BindGetMeshBoundingBox(
+function LoadModelFromMesh(mesh) {
+ return r.BindLoadModelFromMesh(
mesh.vertexCount,
mesh.triangleCount,
mesh.vertices,
@@ -7079,245 +7081,131 @@ function GetMeshBoundingBox (mesh) {
mesh.vboId
)
}
-raylib.GetMeshBoundingBox = GetMeshBoundingBox
+raylib.LoadModelFromMesh = LoadModelFromMesh
/**
- * Generate polygonal mesh
+ * Check if a model is ready
*
- * @param {number} sides
- * @param {number} radius
+ * @param {Model} model
*
- * @return {Mesh} The resulting Mesh.
+ * @return {boolean} The resulting bool.
*/
-function GenMeshPoly (sides, radius) {
- return r.BindGenMeshPoly(
- sides,
- radius
+function IsModelReady(model) {
+ return r.BindIsModelReady(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose
)
}
-raylib.GenMeshPoly = GenMeshPoly
+raylib.IsModelReady = IsModelReady
/**
- * Generate plane mesh (with subdivisions)
+ * Unload model (including meshes) from memory (RAM and/or VRAM)
*
- * @param {number} width
- * @param {number} length
- * @param {number} resX
- * @param {number} resZ
+ * @param {Model} model
*
- * @return {Mesh} The resulting Mesh.
+ * @return {undefined}
*/
-function GenMeshPlane (width, length, resX, resZ) {
- return r.BindGenMeshPlane(
- width,
- length,
- resX,
- resZ
+function UnloadModel(model) {
+ return r.BindUnloadModel(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose
)
}
-raylib.GenMeshPlane = GenMeshPlane
+raylib.UnloadModel = UnloadModel
/**
- * Generate cuboid mesh
+ * Compute model bounding box limits (considers all meshes)
*
- * @param {number} width
- * @param {number} height
- * @param {number} length
+ * @param {Model} model
*
- * @return {Mesh} The resulting Mesh.
+ * @return {BoundingBox} The resulting BoundingBox.
*/
-function GenMeshCube (width, height, length) {
- return r.BindGenMeshCube(
- width,
- height,
- length
- )
-}
-raylib.GenMeshCube = GenMeshCube
-
-/**
- * Generate sphere mesh (standard sphere)
- *
- * @param {number} radius
- * @param {number} rings
- * @param {number} slices
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshSphere (radius, rings, slices) {
- return r.BindGenMeshSphere(
- radius,
- rings,
- slices
- )
-}
-raylib.GenMeshSphere = GenMeshSphere
-
-/**
- * Generate half-sphere mesh (no bottom cap)
- *
- * @param {number} radius
- * @param {number} rings
- * @param {number} slices
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshHemiSphere (radius, rings, slices) {
- return r.BindGenMeshHemiSphere(
- radius,
- rings,
- slices
- )
-}
-raylib.GenMeshHemiSphere = GenMeshHemiSphere
-
-/**
- * Generate cylinder mesh
- *
- * @param {number} radius
- * @param {number} height
- * @param {number} slices
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshCylinder (radius, height, slices) {
- return r.BindGenMeshCylinder(
- radius,
- height,
- slices
- )
-}
-raylib.GenMeshCylinder = GenMeshCylinder
-
-/**
- * Generate cone/pyramid mesh
- *
- * @param {number} radius
- * @param {number} height
- * @param {number} slices
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshCone (radius, height, slices) {
- return r.BindGenMeshCone(
- radius,
- height,
- slices
- )
-}
-raylib.GenMeshCone = GenMeshCone
-
-/**
- * Generate torus mesh
- *
- * @param {number} radius
- * @param {number} size
- * @param {number} radSeg
- * @param {number} sides
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshTorus (radius, size, radSeg, sides) {
- return r.BindGenMeshTorus(
- radius,
- size,
- radSeg,
- sides
- )
-}
-raylib.GenMeshTorus = GenMeshTorus
-
-/**
- * Generate trefoil knot mesh
- *
- * @param {number} radius
- * @param {number} size
- * @param {number} radSeg
- * @param {number} sides
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshKnot (radius, size, radSeg, sides) {
- return r.BindGenMeshKnot(
- radius,
- size,
- radSeg,
- sides
- )
-}
-raylib.GenMeshKnot = GenMeshKnot
-
-/**
- * Generate heightmap mesh from image data
- *
- * @param {Image} heightmap
- * @param {Vector3} size
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshHeightmap (heightmap, size) {
- return r.BindGenMeshHeightmap(
- heightmap.data,
- heightmap.width,
- heightmap.height,
- heightmap.mipmaps,
- heightmap.format,
- size.x,
- size.y,
- size.z
- )
-}
-raylib.GenMeshHeightmap = GenMeshHeightmap
-
-/**
- * Generate cubes-based map mesh from image data
- *
- * @param {Image} cubicmap
- * @param {Vector3} cubeSize
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshCubicmap (cubicmap, cubeSize) {
- return r.BindGenMeshCubicmap(
- cubicmap.data,
- cubicmap.width,
- cubicmap.height,
- cubicmap.mipmaps,
- cubicmap.format,
- cubeSize.x,
- cubeSize.y,
- cubeSize.z
- )
-}
-raylib.GenMeshCubicmap = GenMeshCubicmap
-
-/**
- * Load model animations from file
- *
- * @param {string} fileName
- * @param {number} animCount
- *
- * @return {number} The resulting ModelAnimation *.
- */
-function LoadModelAnimations (fileName, animCount) {
- return r.BindLoadModelAnimations(
- fileName,
- animCount
+function GetModelBoundingBox(model) {
+ return r.BindGetModelBoundingBox(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose
)
}
-raylib.LoadModelAnimations = LoadModelAnimations
+raylib.GetModelBoundingBox = GetModelBoundingBox
/**
- * Update model animation pose
+ * Draw a model (with texture if set)
*
* @param {Model} model
- * @param {ModelAnimation} anim
- * @param {number} frame
+ * @param {Vector3} position
+ * @param {number} scale
+ * @param {Color} tint
*
* @return {undefined}
*/
-function UpdateModelAnimation (model, anim, frame) {
- return r.BindUpdateModelAnimation(
+function DrawModel(model, position, scale, tint) {
+ return r.BindDrawModel(
model.transform.m0,
model.transform.m4,
model.transform.m8,
@@ -7342,58 +7230,32 @@ function UpdateModelAnimation (model, anim, frame) {
model.boneCount,
model.bones,
model.bindPose,
- anim.boneCount,
- anim.frameCount,
- anim.bones,
- anim.framePoses,
- frame
- )
-}
-raylib.UpdateModelAnimation = UpdateModelAnimation
-
-/**
- * Unload animation data
- *
- * @param {ModelAnimation} anim
- *
- * @return {undefined}
- */
-function UnloadModelAnimation (anim) {
- return r.BindUnloadModelAnimation(
- anim.boneCount,
- anim.frameCount,
- anim.bones,
- anim.framePoses
- )
-}
-raylib.UnloadModelAnimation = UnloadModelAnimation
-
-/**
- * Unload animation array data
- *
- * @param {number} animations
- * @param {number} count
- *
- * @return {undefined}
- */
-function UnloadModelAnimations (animations, count) {
- return r.BindUnloadModelAnimations(
- animations,
- count
+ position.x,
+ position.y,
+ position.z,
+ scale,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.UnloadModelAnimations = UnloadModelAnimations
+raylib.DrawModel = DrawModel
/**
- * Check model animation skeleton match
+ * Draw a model with extended parameters
*
* @param {Model} model
- * @param {ModelAnimation} anim
+ * @param {Vector3} position
+ * @param {Vector3} rotationAxis
+ * @param {number} rotationAngle
+ * @param {Vector3} scale
+ * @param {Color} tint
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsModelAnimationValid (model, anim) {
- return r.BindIsModelAnimationValid(
+function DrawModelEx(model, position, rotationAxis, rotationAngle, scale, tint) {
+ return r.BindDrawModelEx(
model.transform.m0,
model.transform.m4,
model.transform.m8,
@@ -7418,158 +7280,310 @@ function IsModelAnimationValid (model, anim) {
model.boneCount,
model.bones,
model.bindPose,
- anim.boneCount,
- anim.frameCount,
- anim.bones,
- anim.framePoses
+ position.x,
+ position.y,
+ position.z,
+ rotationAxis.x,
+ rotationAxis.y,
+ rotationAxis.z,
+ rotationAngle,
+ scale.x,
+ scale.y,
+ scale.z,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.IsModelAnimationValid = IsModelAnimationValid
+raylib.DrawModelEx = DrawModelEx
/**
- * Check collision between two spheres
+ * Draw a model wires (with texture if set)
*
- * @param {Vector3} center1
- * @param {number} radius1
- * @param {Vector3} center2
- * @param {number} radius2
+ * @param {Model} model
+ * @param {Vector3} position
+ * @param {number} scale
+ * @param {Color} tint
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionSpheres (center1, radius1, center2, radius2) {
- return r.BindCheckCollisionSpheres(
- center1.x,
- center1.y,
- center1.z,
- radius1,
- center2.x,
- center2.y,
- center2.z,
- radius2
+function DrawModelWires(model, position, scale, tint) {
+ return r.BindDrawModelWires(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose,
+ position.x,
+ position.y,
+ position.z,
+ scale,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.CheckCollisionSpheres = CheckCollisionSpheres
+raylib.DrawModelWires = DrawModelWires
/**
- * Check collision between two bounding boxes
+ * Draw a model wires (with texture if set) with extended parameters
*
- * @param {BoundingBox} box1
- * @param {BoundingBox} box2
+ * @param {Model} model
+ * @param {Vector3} position
+ * @param {Vector3} rotationAxis
+ * @param {number} rotationAngle
+ * @param {Vector3} scale
+ * @param {Color} tint
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionBoxes (box1, box2) {
- return r.BindCheckCollisionBoxes(
- box1.min.x,
- box1.min.y,
- box1.min.z,
- box1.max.x,
- box1.max.y,
- box1.max.z,
- box2.min.x,
- box2.min.y,
- box2.min.z,
- box2.max.x,
- box2.max.y,
- box2.max.z
+function DrawModelWiresEx(model, position, rotationAxis, rotationAngle, scale, tint) {
+ return r.BindDrawModelWiresEx(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose,
+ position.x,
+ position.y,
+ position.z,
+ rotationAxis.x,
+ rotationAxis.y,
+ rotationAxis.z,
+ rotationAngle,
+ scale.x,
+ scale.y,
+ scale.z,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.CheckCollisionBoxes = CheckCollisionBoxes
+raylib.DrawModelWiresEx = DrawModelWiresEx
/**
- * Check collision between box and sphere
+ * Draw bounding box (wires)
*
* @param {BoundingBox} box
- * @param {Vector3} center
- * @param {number} radius
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionBoxSphere (box, center, radius) {
- return r.BindCheckCollisionBoxSphere(
+function DrawBoundingBox(box, color) {
+ return r.BindDrawBoundingBox(
box.min.x,
box.min.y,
box.min.z,
box.max.x,
box.max.y,
box.max.z,
- center.x,
- center.y,
- center.z,
- radius
- )
-}
-raylib.CheckCollisionBoxSphere = CheckCollisionBoxSphere
-
-/**
- * Get collision info between ray and sphere
- *
- * @param {Ray} ray
- * @param {Vector3} center
- * @param {number} radius
- *
- * @return {RayCollision} The resulting RayCollision.
- */
-function GetRayCollisionSphere (ray, center, radius) {
- return r.BindGetRayCollisionSphere(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
- center.x,
- center.y,
- center.z,
- radius
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.GetRayCollisionSphere = GetRayCollisionSphere
+raylib.DrawBoundingBox = DrawBoundingBox
/**
- * Get collision info between ray and box
+ * Draw a billboard texture
*
- * @param {Ray} ray
- * @param {BoundingBox} box
+ * @param {Camera} camera
+ * @param {Texture2D} texture
+ * @param {Vector3} position
+ * @param {number} size
+ * @param {Color} tint
*
- * @return {RayCollision} The resulting RayCollision.
+ * @return {undefined}
*/
-function GetRayCollisionBox (ray, box) {
- return r.BindGetRayCollisionBox(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
- box.min.x,
- box.min.y,
- box.min.z,
- box.max.x,
- box.max.y,
- box.max.z
+function DrawBillboard(camera, texture, position, size, tint) {
+ return r.BindDrawBillboard(
+ camera.position.x,
+ camera.position.y,
+ camera.position.z,
+ camera.target.x,
+ camera.target.y,
+ camera.target.z,
+ camera.up.x,
+ camera.up.y,
+ camera.up.z,
+ camera.fovy,
+ camera.projection,
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ position.x,
+ position.y,
+ position.z,
+ size,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.GetRayCollisionBox = GetRayCollisionBox
+raylib.DrawBillboard = DrawBillboard
/**
- * Get collision info between ray and mesh
+ * Draw a billboard texture defined by source
*
- * @param {Ray} ray
- * @param {Mesh} mesh
- * @param {Matrix} transform
+ * @param {Camera} camera
+ * @param {Texture2D} texture
+ * @param {Rectangle} source
+ * @param {Vector3} position
+ * @param {Vector2} size
+ * @param {Color} tint
*
- * @return {RayCollision} The resulting RayCollision.
+ * @return {undefined}
*/
-function GetRayCollisionMesh (ray, mesh, transform) {
- return r.BindGetRayCollisionMesh(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
- mesh.vertexCount,
+function DrawBillboardRec(camera, texture, source, position, size, tint) {
+ return r.BindDrawBillboardRec(
+ camera.position.x,
+ camera.position.y,
+ camera.position.z,
+ camera.target.x,
+ camera.target.y,
+ camera.target.z,
+ camera.up.x,
+ camera.up.y,
+ camera.up.z,
+ camera.fovy,
+ camera.projection,
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ source.x,
+ source.y,
+ source.width,
+ source.height,
+ position.x,
+ position.y,
+ position.z,
+ size.x,
+ size.y,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
+ )
+}
+raylib.DrawBillboardRec = DrawBillboardRec
+
+/**
+ * Draw a billboard texture defined by source and rotation
+ *
+ * @param {Camera} camera
+ * @param {Texture2D} texture
+ * @param {Rectangle} source
+ * @param {Vector3} position
+ * @param {Vector3} up
+ * @param {Vector2} size
+ * @param {Vector2} origin
+ * @param {number} rotation
+ * @param {Color} tint
+ *
+ * @return {undefined}
+ */
+function DrawBillboardPro(camera, texture, source, position, up, size, origin, rotation, tint) {
+ return r.BindDrawBillboardPro(
+ camera.position.x,
+ camera.position.y,
+ camera.position.z,
+ camera.target.x,
+ camera.target.y,
+ camera.target.z,
+ camera.up.x,
+ camera.up.y,
+ camera.up.z,
+ camera.fovy,
+ camera.projection,
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ source.x,
+ source.y,
+ source.width,
+ source.height,
+ position.x,
+ position.y,
+ position.z,
+ up.x,
+ up.y,
+ up.z,
+ size.x,
+ size.y,
+ origin.x,
+ origin.y,
+ rotation,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
+ )
+}
+raylib.DrawBillboardPro = DrawBillboardPro
+
+/**
+ * Update mesh vertex data in GPU for a specific buffer index
+ *
+ * @param {Mesh} mesh
+ * @param {number} index
+ * @param {number} data
+ * @param {number} dataSize
+ * @param {number} offset
+ *
+ * @return {undefined}
+ */
+function UpdateMeshBuffer(mesh, index, data, dataSize, offset) {
+ return r.BindUpdateMeshBuffer(
+ mesh.vertexCount,
mesh.triangleCount,
mesh.vertices,
mesh.texcoords,
@@ -7584,1593 +7598,1801 @@ function GetRayCollisionMesh (ray, mesh, transform) {
mesh.boneWeights,
mesh.vaoId,
mesh.vboId,
- transform.m0,
- transform.m4,
- transform.m8,
- transform.m12,
- transform.m1,
- transform.m5,
- transform.m9,
- transform.m13,
- transform.m2,
- transform.m6,
- transform.m10,
- transform.m14,
- transform.m3,
- transform.m7,
- transform.m11,
- transform.m15
+ index,
+ data,
+ dataSize,
+ offset
)
}
-raylib.GetRayCollisionMesh = GetRayCollisionMesh
+raylib.UpdateMeshBuffer = UpdateMeshBuffer
/**
- * Get collision info between ray and triangle
+ * Unload mesh data from CPU and GPU
*
- * @param {Ray} ray
- * @param {Vector3} p1
- * @param {Vector3} p2
- * @param {Vector3} p3
+ * @param {Mesh} mesh
*
- * @return {RayCollision} The resulting RayCollision.
+ * @return {undefined}
*/
-function GetRayCollisionTriangle (ray, p1, p2, p3) {
- return r.BindGetRayCollisionTriangle(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
- p1.x,
- p1.y,
- p1.z,
- p2.x,
- p2.y,
- p2.z,
- p3.x,
- p3.y,
- p3.z
+function UnloadMesh(mesh) {
+ return r.BindUnloadMesh(
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId
)
}
-raylib.GetRayCollisionTriangle = GetRayCollisionTriangle
+raylib.UnloadMesh = UnloadMesh
/**
- * Get collision info between ray and quad
+ * Export mesh data to file, returns true on success
*
- * @param {Ray} ray
- * @param {Vector3} p1
- * @param {Vector3} p2
- * @param {Vector3} p3
- * @param {Vector3} p4
+ * @param {Mesh} mesh
+ * @param {string} fileName
*
- * @return {RayCollision} The resulting RayCollision.
+ * @return {boolean} The resulting bool.
*/
-function GetRayCollisionQuad (ray, p1, p2, p3, p4) {
- return r.BindGetRayCollisionQuad(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
- p1.x,
- p1.y,
- p1.z,
- p2.x,
- p2.y,
- p2.z,
- p3.x,
- p3.y,
- p3.z,
- p4.x,
- p4.y,
- p4.z
+function ExportMesh(mesh, fileName) {
+ return r.BindExportMesh(
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId,
+ fileName
)
}
-raylib.GetRayCollisionQuad = GetRayCollisionQuad
+raylib.ExportMesh = ExportMesh
/**
- * Initialize audio device and context
+ * Compute mesh bounding box limits
*
- * @return {undefined}
+ * @param {Mesh} mesh
+ *
+ * @return {BoundingBox} The resulting BoundingBox.
*/
-function InitAudioDevice () {
- return r.BindInitAudioDevice()
+function GetMeshBoundingBox(mesh) {
+ return r.BindGetMeshBoundingBox(
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId
+ )
}
-raylib.InitAudioDevice = InitAudioDevice
+raylib.GetMeshBoundingBox = GetMeshBoundingBox
/**
- * Close the audio device and context
+ * Generate polygonal mesh
*
- * @return {undefined}
+ * @param {number} sides
+ * @param {number} radius
+ *
+ * @return {Mesh} The resulting Mesh.
*/
-function CloseAudioDevice () {
- return r.BindCloseAudioDevice()
+function GenMeshPoly(sides, radius) {
+ return r.BindGenMeshPoly(
+ sides,
+ radius
+ )
}
-raylib.CloseAudioDevice = CloseAudioDevice
+raylib.GenMeshPoly = GenMeshPoly
/**
- * Check if audio device has been initialized successfully
- *
- * @return {boolean} The resulting bool.
- */
-function IsAudioDeviceReady () {
- return r.BindIsAudioDeviceReady()
-}
-raylib.IsAudioDeviceReady = IsAudioDeviceReady
-
-/**
- * Set master volume (listener)
+ * Generate plane mesh (with subdivisions)
*
- * @param {number} volume
+ * @param {number} width
+ * @param {number} length
+ * @param {number} resX
+ * @param {number} resZ
*
- * @return {undefined}
+ * @return {Mesh} The resulting Mesh.
*/
-function SetMasterVolume (volume) {
- return r.BindSetMasterVolume(
- volume
+function GenMeshPlane(width, length, resX, resZ) {
+ return r.BindGenMeshPlane(
+ width,
+ length,
+ resX,
+ resZ
)
}
-raylib.SetMasterVolume = SetMasterVolume
+raylib.GenMeshPlane = GenMeshPlane
/**
- * Load wave data from file
+ * Generate cuboid mesh
*
- * @param {string} fileName
+ * @param {number} width
+ * @param {number} height
+ * @param {number} length
*
- * @return {Wave} The resulting Wave.
+ * @return {Mesh} The resulting Mesh.
*/
-function LoadWave (fileName) {
- return r.BindLoadWave(
- fileName
+function GenMeshCube(width, height, length) {
+ return r.BindGenMeshCube(
+ width,
+ height,
+ length
)
}
-raylib.LoadWave = LoadWave
+raylib.GenMeshCube = GenMeshCube
/**
- * Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
+ * Generate sphere mesh (standard sphere)
*
- * @param {string} fileType
- * @param {Buffer} fileData
- * @param {number} dataSize
+ * @param {number} radius
+ * @param {number} rings
+ * @param {number} slices
*
- * @return {Wave} The resulting Wave.
+ * @return {Mesh} The resulting Mesh.
*/
-function LoadWaveFromMemory (fileType, fileData, dataSize) {
- return r.BindLoadWaveFromMemory(
- fileType,
- fileData,
- dataSize
+function GenMeshSphere(radius, rings, slices) {
+ return r.BindGenMeshSphere(
+ radius,
+ rings,
+ slices
)
}
-raylib.LoadWaveFromMemory = LoadWaveFromMemory
+raylib.GenMeshSphere = GenMeshSphere
/**
- * Checks if wave data is ready
+ * Generate half-sphere mesh (no bottom cap)
*
- * @param {Wave} wave
+ * @param {number} radius
+ * @param {number} rings
+ * @param {number} slices
*
- * @return {boolean} The resulting bool.
+ * @return {Mesh} The resulting Mesh.
*/
-function IsWaveReady (wave) {
- return r.BindIsWaveReady(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data
+function GenMeshHemiSphere(radius, rings, slices) {
+ return r.BindGenMeshHemiSphere(
+ radius,
+ rings,
+ slices
)
}
-raylib.IsWaveReady = IsWaveReady
+raylib.GenMeshHemiSphere = GenMeshHemiSphere
/**
- * Load sound from file
+ * Generate cylinder mesh
*
- * @param {string} fileName
+ * @param {number} radius
+ * @param {number} height
+ * @param {number} slices
*
- * @return {Sound} The resulting Sound.
+ * @return {Mesh} The resulting Mesh.
*/
-function LoadSound (fileName) {
- return r.BindLoadSound(
- fileName
+function GenMeshCylinder(radius, height, slices) {
+ return r.BindGenMeshCylinder(
+ radius,
+ height,
+ slices
)
}
-raylib.LoadSound = LoadSound
+raylib.GenMeshCylinder = GenMeshCylinder
/**
- * Load sound from wave data
+ * Generate cone/pyramid mesh
*
- * @param {Wave} wave
+ * @param {number} radius
+ * @param {number} height
+ * @param {number} slices
*
- * @return {Sound} The resulting Sound.
+ * @return {Mesh} The resulting Mesh.
*/
-function LoadSoundFromWave (wave) {
- return r.BindLoadSoundFromWave(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data
+function GenMeshCone(radius, height, slices) {
+ return r.BindGenMeshCone(
+ radius,
+ height,
+ slices
)
}
-raylib.LoadSoundFromWave = LoadSoundFromWave
+raylib.GenMeshCone = GenMeshCone
/**
- * Checks if a sound is ready
+ * Generate torus mesh
*
- * @param {Sound} sound
+ * @param {number} radius
+ * @param {number} size
+ * @param {number} radSeg
+ * @param {number} sides
*
- * @return {boolean} The resulting bool.
+ * @return {Mesh} The resulting Mesh.
*/
-function IsSoundReady (sound) {
- return r.BindIsSoundReady(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function GenMeshTorus(radius, size, radSeg, sides) {
+ return r.BindGenMeshTorus(
+ radius,
+ size,
+ radSeg,
+ sides
)
}
-raylib.IsSoundReady = IsSoundReady
+raylib.GenMeshTorus = GenMeshTorus
/**
- * Update sound buffer with new data
+ * Generate trefoil knot mesh
*
- * @param {Sound} sound
- * @param {number} data
- * @param {number} sampleCount
+ * @param {number} radius
+ * @param {number} size
+ * @param {number} radSeg
+ * @param {number} sides
*
- * @return {undefined}
+ * @return {Mesh} The resulting Mesh.
*/
-function UpdateSound (sound, data, sampleCount) {
- return r.BindUpdateSound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount,
- data,
- sampleCount
+function GenMeshKnot(radius, size, radSeg, sides) {
+ return r.BindGenMeshKnot(
+ radius,
+ size,
+ radSeg,
+ sides
)
}
-raylib.UpdateSound = UpdateSound
+raylib.GenMeshKnot = GenMeshKnot
/**
- * Unload wave data
+ * Generate heightmap mesh from image data
*
- * @param {Wave} wave
+ * @param {Image} heightmap
+ * @param {Vector3} size
*
- * @return {undefined}
+ * @return {Mesh} The resulting Mesh.
*/
-function UnloadWave (wave) {
- return r.BindUnloadWave(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data
+function GenMeshHeightmap(heightmap, size) {
+ return r.BindGenMeshHeightmap(
+ heightmap.data,
+ heightmap.width,
+ heightmap.height,
+ heightmap.mipmaps,
+ heightmap.format,
+ size.x,
+ size.y,
+ size.z
)
}
-raylib.UnloadWave = UnloadWave
+raylib.GenMeshHeightmap = GenMeshHeightmap
/**
- * Unload sound
+ * Generate cubes-based map mesh from image data
*
- * @param {Sound} sound
+ * @param {Image} cubicmap
+ * @param {Vector3} cubeSize
*
- * @return {undefined}
+ * @return {Mesh} The resulting Mesh.
*/
-function UnloadSound (sound) {
- return r.BindUnloadSound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function GenMeshCubicmap(cubicmap, cubeSize) {
+ return r.BindGenMeshCubicmap(
+ cubicmap.data,
+ cubicmap.width,
+ cubicmap.height,
+ cubicmap.mipmaps,
+ cubicmap.format,
+ cubeSize.x,
+ cubeSize.y,
+ cubeSize.z
)
}
-raylib.UnloadSound = UnloadSound
+raylib.GenMeshCubicmap = GenMeshCubicmap
/**
- * Export wave data to file, returns true on success
+ * Load model animations from file
*
- * @param {Wave} wave
* @param {string} fileName
+ * @param {number} animCount
*
- * @return {boolean} The resulting bool.
+ * @return {number} The resulting ModelAnimation *.
*/
-function ExportWave (wave, fileName) {
- return r.BindExportWave(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data,
- fileName
+function LoadModelAnimations(fileName, animCount) {
+ return r.BindLoadModelAnimations(
+ fileName,
+ animCount
)
}
-raylib.ExportWave = ExportWave
+raylib.LoadModelAnimations = LoadModelAnimations
/**
- * Export wave sample data to code (.h), returns true on success
+ * Update model animation pose
*
- * @param {Wave} wave
- * @param {string} fileName
+ * @param {Model} model
+ * @param {ModelAnimation} anim
+ * @param {number} frame
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function ExportWaveAsCode (wave, fileName) {
- return r.BindExportWaveAsCode(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data,
- fileName
- )
-}
-raylib.ExportWaveAsCode = ExportWaveAsCode
-
-/**
- * Play a sound
- *
- * @param {Sound} sound
- *
- * @return {undefined}
- */
-function PlaySound (sound) {
- return r.BindPlaySound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function UpdateModelAnimation(model, anim, frame) {
+ return r.BindUpdateModelAnimation(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose,
+ anim.boneCount,
+ anim.frameCount,
+ anim.bones,
+ anim.framePoses,
+ anim.name,
+ frame
)
}
-raylib.PlaySound = PlaySound
+raylib.UpdateModelAnimation = UpdateModelAnimation
/**
- * Stop playing a sound
+ * Unload animation data
*
- * @param {Sound} sound
+ * @param {ModelAnimation} anim
*
* @return {undefined}
*/
-function StopSound (sound) {
- return r.BindStopSound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function UnloadModelAnimation(anim) {
+ return r.BindUnloadModelAnimation(
+ anim.boneCount,
+ anim.frameCount,
+ anim.bones,
+ anim.framePoses,
+ anim.name
)
}
-raylib.StopSound = StopSound
+raylib.UnloadModelAnimation = UnloadModelAnimation
/**
- * Pause a sound
+ * Unload animation array data
*
- * @param {Sound} sound
+ * @param {number} animations
+ * @param {number} animCount
*
* @return {undefined}
*/
-function PauseSound (sound) {
- return r.BindPauseSound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function UnloadModelAnimations(animations, animCount) {
+ return r.BindUnloadModelAnimations(
+ animations,
+ animCount
)
}
-raylib.PauseSound = PauseSound
+raylib.UnloadModelAnimations = UnloadModelAnimations
/**
- * Resume a paused sound
+ * Check model animation skeleton match
*
- * @param {Sound} sound
+ * @param {Model} model
+ * @param {ModelAnimation} anim
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function ResumeSound (sound) {
- return r.BindResumeSound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function IsModelAnimationValid(model, anim) {
+ return r.BindIsModelAnimationValid(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose,
+ anim.boneCount,
+ anim.frameCount,
+ anim.bones,
+ anim.framePoses,
+ anim.name
)
}
-raylib.ResumeSound = ResumeSound
+raylib.IsModelAnimationValid = IsModelAnimationValid
/**
- * Check if a sound is currently playing
+ * Check collision between two spheres
*
- * @param {Sound} sound
+ * @param {Vector3} center1
+ * @param {number} radius1
+ * @param {Vector3} center2
+ * @param {number} radius2
*
* @return {boolean} The resulting bool.
*/
-function IsSoundPlaying (sound) {
- return r.BindIsSoundPlaying(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function CheckCollisionSpheres(center1, radius1, center2, radius2) {
+ return r.BindCheckCollisionSpheres(
+ center1.x,
+ center1.y,
+ center1.z,
+ radius1,
+ center2.x,
+ center2.y,
+ center2.z,
+ radius2
)
}
-raylib.IsSoundPlaying = IsSoundPlaying
+raylib.CheckCollisionSpheres = CheckCollisionSpheres
/**
- * Set volume for a sound (1.0 is max level)
+ * Check collision between two bounding boxes
*
- * @param {Sound} sound
- * @param {number} volume
+ * @param {BoundingBox} box1
+ * @param {BoundingBox} box2
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function SetSoundVolume (sound, volume) {
- return r.BindSetSoundVolume(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount,
- volume
+function CheckCollisionBoxes(box1, box2) {
+ return r.BindCheckCollisionBoxes(
+ box1.min.x,
+ box1.min.y,
+ box1.min.z,
+ box1.max.x,
+ box1.max.y,
+ box1.max.z,
+ box2.min.x,
+ box2.min.y,
+ box2.min.z,
+ box2.max.x,
+ box2.max.y,
+ box2.max.z
)
}
-raylib.SetSoundVolume = SetSoundVolume
+raylib.CheckCollisionBoxes = CheckCollisionBoxes
/**
- * Set pitch for a sound (1.0 is base level)
+ * Check collision between box and sphere
*
- * @param {Sound} sound
- * @param {number} pitch
+ * @param {BoundingBox} box
+ * @param {Vector3} center
+ * @param {number} radius
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function SetSoundPitch (sound, pitch) {
- return r.BindSetSoundPitch(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount,
- pitch
+function CheckCollisionBoxSphere(box, center, radius) {
+ return r.BindCheckCollisionBoxSphere(
+ box.min.x,
+ box.min.y,
+ box.min.z,
+ box.max.x,
+ box.max.y,
+ box.max.z,
+ center.x,
+ center.y,
+ center.z,
+ radius
)
}
-raylib.SetSoundPitch = SetSoundPitch
+raylib.CheckCollisionBoxSphere = CheckCollisionBoxSphere
/**
- * Set pan for a sound (0.5 is center)
+ * Get collision info between ray and sphere
*
- * @param {Sound} sound
- * @param {number} pan
+ * @param {Ray} ray
+ * @param {Vector3} center
+ * @param {number} radius
*
- * @return {undefined}
+ * @return {RayCollision} The resulting RayCollision.
*/
-function SetSoundPan (sound, pan) {
- return r.BindSetSoundPan(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount,
- pan
+function GetRayCollisionSphere(ray, center, radius) {
+ return r.BindGetRayCollisionSphere(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ center.x,
+ center.y,
+ center.z,
+ radius
)
}
-raylib.SetSoundPan = SetSoundPan
+raylib.GetRayCollisionSphere = GetRayCollisionSphere
/**
- * Copy a wave to a new wave
+ * Get collision info between ray and box
*
- * @param {Wave} wave
+ * @param {Ray} ray
+ * @param {BoundingBox} box
*
- * @return {Wave} The resulting Wave.
+ * @return {RayCollision} The resulting RayCollision.
*/
-function WaveCopy (wave) {
- return r.BindWaveCopy(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data
- )
+function GetRayCollisionBox(ray, box) {
+ return r.BindGetRayCollisionBox(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ box.min.x,
+ box.min.y,
+ box.min.z,
+ box.max.x,
+ box.max.y,
+ box.max.z
+ )
}
-raylib.WaveCopy = WaveCopy
+raylib.GetRayCollisionBox = GetRayCollisionBox
/**
- * Load samples data from wave as a 32bit float data array
+ * Get collision info between ray and mesh
*
- * @param {Wave} wave
+ * @param {Ray} ray
+ * @param {Mesh} mesh
+ * @param {Matrix} transform
*
- * @return {number} The resulting float *.
+ * @return {RayCollision} The resulting RayCollision.
*/
-function LoadWaveSamples (wave) {
- return r.BindLoadWaveSamples(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data
+function GetRayCollisionMesh(ray, mesh, transform) {
+ return r.BindGetRayCollisionMesh(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId,
+ transform.m0,
+ transform.m4,
+ transform.m8,
+ transform.m12,
+ transform.m1,
+ transform.m5,
+ transform.m9,
+ transform.m13,
+ transform.m2,
+ transform.m6,
+ transform.m10,
+ transform.m14,
+ transform.m3,
+ transform.m7,
+ transform.m11,
+ transform.m15
)
}
-raylib.LoadWaveSamples = LoadWaveSamples
+raylib.GetRayCollisionMesh = GetRayCollisionMesh
/**
- * Unload samples data loaded with LoadWaveSamples()
+ * Get collision info between ray and triangle
*
- * @param {number} samples
+ * @param {Ray} ray
+ * @param {Vector3} p1
+ * @param {Vector3} p2
+ * @param {Vector3} p3
*
- * @return {undefined}
+ * @return {RayCollision} The resulting RayCollision.
*/
-function UnloadWaveSamples (samples) {
- return r.BindUnloadWaveSamples(
- samples
+function GetRayCollisionTriangle(ray, p1, p2, p3) {
+ return r.BindGetRayCollisionTriangle(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ p1.x,
+ p1.y,
+ p1.z,
+ p2.x,
+ p2.y,
+ p2.z,
+ p3.x,
+ p3.y,
+ p3.z
)
}
-raylib.UnloadWaveSamples = UnloadWaveSamples
+raylib.GetRayCollisionTriangle = GetRayCollisionTriangle
/**
- * Load music stream from file
+ * Get collision info between ray and quad
*
- * @param {string} fileName
+ * @param {Ray} ray
+ * @param {Vector3} p1
+ * @param {Vector3} p2
+ * @param {Vector3} p3
+ * @param {Vector3} p4
*
- * @return {Music} The resulting Music.
+ * @return {RayCollision} The resulting RayCollision.
*/
-function LoadMusicStream (fileName) {
- return r.BindLoadMusicStream(
- fileName
+function GetRayCollisionQuad(ray, p1, p2, p3, p4) {
+ return r.BindGetRayCollisionQuad(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ p1.x,
+ p1.y,
+ p1.z,
+ p2.x,
+ p2.y,
+ p2.z,
+ p3.x,
+ p3.y,
+ p3.z,
+ p4.x,
+ p4.y,
+ p4.z
)
}
-raylib.LoadMusicStream = LoadMusicStream
+raylib.GetRayCollisionQuad = GetRayCollisionQuad
/**
- * Load music stream from data
- *
- * @param {string} fileType
- * @param {Buffer} data
- * @param {number} dataSize
+ * Initialize audio device and context
*
- * @return {Music} The resulting Music.
+ * @return {undefined}
*/
-function LoadMusicStreamFromMemory (fileType, data, dataSize) {
- return r.BindLoadMusicStreamFromMemory(
- fileType,
- data,
- dataSize
- )
+function InitAudioDevice() {
+ return r.BindInitAudioDevice()
}
-raylib.LoadMusicStreamFromMemory = LoadMusicStreamFromMemory
+raylib.InitAudioDevice = InitAudioDevice
/**
- * Checks if a music stream is ready
+ * Close the audio device and context
*
- * @param {Music} music
+ * @return {undefined}
+ */
+function CloseAudioDevice() {
+ return r.BindCloseAudioDevice()
+}
+raylib.CloseAudioDevice = CloseAudioDevice
+
+/**
+ * Check if audio device has been initialized successfully
*
* @return {boolean} The resulting bool.
*/
-function IsMusicReady (music) {
- return r.BindIsMusicReady(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
- )
+function IsAudioDeviceReady() {
+ return r.BindIsAudioDeviceReady()
}
-raylib.IsMusicReady = IsMusicReady
+raylib.IsAudioDeviceReady = IsAudioDeviceReady
/**
- * Unload music stream
+ * Set master volume (listener)
*
- * @param {Music} music
+ * @param {number} volume
*
* @return {undefined}
*/
-function UnloadMusicStream (music) {
- return r.BindUnloadMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function SetMasterVolume(volume) {
+ return r.BindSetMasterVolume(
+ volume
)
}
-raylib.UnloadMusicStream = UnloadMusicStream
+raylib.SetMasterVolume = SetMasterVolume
/**
- * Start music playing
+ * Get master volume (listener)
*
- * @param {Music} music
- *
- * @return {undefined}
+ * @return {number} The resulting float.
*/
-function PlayMusicStream (music) {
- return r.BindPlayMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
- )
+function GetMasterVolume() {
+ return r.BindGetMasterVolume()
}
-raylib.PlayMusicStream = PlayMusicStream
+raylib.GetMasterVolume = GetMasterVolume
/**
- * Check if music is playing
+ * Load wave data from file
*
- * @param {Music} music
+ * @param {string} fileName
*
- * @return {boolean} The resulting bool.
+ * @return {Wave} The resulting Wave.
*/
-function IsMusicStreamPlaying (music) {
- return r.BindIsMusicStreamPlaying(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function LoadWave(fileName) {
+ return r.BindLoadWave(
+ fileName
)
}
-raylib.IsMusicStreamPlaying = IsMusicStreamPlaying
+raylib.LoadWave = LoadWave
/**
- * Updates buffers for music streaming
+ * Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
*
- * @param {Music} music
+ * @param {string} fileType
+ * @param {Buffer} fileData
+ * @param {number} dataSize
*
- * @return {undefined}
+ * @return {Wave} The resulting Wave.
*/
-function UpdateMusicStream (music) {
- return r.BindUpdateMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function LoadWaveFromMemory(fileType, fileData, dataSize) {
+ return r.BindLoadWaveFromMemory(
+ fileType,
+ fileData,
+ dataSize
)
}
-raylib.UpdateMusicStream = UpdateMusicStream
+raylib.LoadWaveFromMemory = LoadWaveFromMemory
/**
- * Stop music playing
+ * Checks if wave data is ready
*
- * @param {Music} music
+ * @param {Wave} wave
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function StopMusicStream (music) {
- return r.BindStopMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function IsWaveReady(wave) {
+ return r.BindIsWaveReady(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data
)
}
-raylib.StopMusicStream = StopMusicStream
+raylib.IsWaveReady = IsWaveReady
/**
- * Pause music playing
+ * Load sound from file
*
- * @param {Music} music
+ * @param {string} fileName
*
- * @return {undefined}
+ * @return {Sound} The resulting Sound.
*/
-function PauseMusicStream (music) {
- return r.BindPauseMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function LoadSound(fileName) {
+ return r.BindLoadSound(
+ fileName
)
}
-raylib.PauseMusicStream = PauseMusicStream
+raylib.LoadSound = LoadSound
/**
- * Resume playing paused music
+ * Load sound from wave data
*
- * @param {Music} music
+ * @param {Wave} wave
*
- * @return {undefined}
+ * @return {Sound} The resulting Sound.
*/
-function ResumeMusicStream (music) {
- return r.BindResumeMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function LoadSoundFromWave(wave) {
+ return r.BindLoadSoundFromWave(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data
)
}
-raylib.ResumeMusicStream = ResumeMusicStream
+raylib.LoadSoundFromWave = LoadSoundFromWave
/**
- * Seek music to a position (in seconds)
+ * Create a new sound that shares the same sample data as the source sound, does not own the sound data
*
- * @param {Music} music
- * @param {number} position
+ * @param {Sound} source
*
- * @return {undefined}
+ * @return {Sound} The resulting Sound.
*/
-function SeekMusicStream (music, position) {
- return r.BindSeekMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData,
- position
+function LoadSoundAlias(source) {
+ return r.BindLoadSoundAlias(
+ source.stream.buffer,
+ source.stream.processor,
+ source.stream.sampleRate,
+ source.stream.sampleSize,
+ source.stream.channels,
+ source.frameCount
)
}
-raylib.SeekMusicStream = SeekMusicStream
+raylib.LoadSoundAlias = LoadSoundAlias
/**
- * Set volume for music (1.0 is max level)
+ * Checks if a sound is ready
*
- * @param {Music} music
- * @param {number} volume
+ * @param {Sound} sound
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function SetMusicVolume (music, volume) {
- return r.BindSetMusicVolume(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData,
- volume
+function IsSoundReady(sound) {
+ return r.BindIsSoundReady(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.SetMusicVolume = SetMusicVolume
+raylib.IsSoundReady = IsSoundReady
/**
- * Set pitch for a music (1.0 is base level)
+ * Update sound buffer with new data
*
- * @param {Music} music
- * @param {number} pitch
+ * @param {Sound} sound
+ * @param {number} data
+ * @param {number} sampleCount
*
* @return {undefined}
*/
-function SetMusicPitch (music, pitch) {
- return r.BindSetMusicPitch(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData,
- pitch
+function UpdateSound(sound, data, sampleCount) {
+ return r.BindUpdateSound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount,
+ data,
+ sampleCount
)
}
-raylib.SetMusicPitch = SetMusicPitch
+raylib.UpdateSound = UpdateSound
/**
- * Set pan for a music (0.5 is center)
+ * Unload wave data
*
- * @param {Music} music
- * @param {number} pan
+ * @param {Wave} wave
*
* @return {undefined}
*/
-function SetMusicPan (music, pan) {
- return r.BindSetMusicPan(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData,
- pan
+function UnloadWave(wave) {
+ return r.BindUnloadWave(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data
)
}
-raylib.SetMusicPan = SetMusicPan
+raylib.UnloadWave = UnloadWave
/**
- * Get music time length (in seconds)
+ * Unload sound
*
- * @param {Music} music
+ * @param {Sound} sound
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function GetMusicTimeLength (music) {
- return r.BindGetMusicTimeLength(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function UnloadSound(sound) {
+ return r.BindUnloadSound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.GetMusicTimeLength = GetMusicTimeLength
+raylib.UnloadSound = UnloadSound
/**
- * Get current music time played (in seconds)
+ * Unload a sound alias (does not deallocate sample data)
*
- * @param {Music} music
+ * @param {Sound} alias
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function GetMusicTimePlayed (music) {
- return r.BindGetMusicTimePlayed(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function UnloadSoundAlias(alias) {
+ return r.BindUnloadSoundAlias(
+ alias.stream.buffer,
+ alias.stream.processor,
+ alias.stream.sampleRate,
+ alias.stream.sampleSize,
+ alias.stream.channels,
+ alias.frameCount
)
}
-raylib.GetMusicTimePlayed = GetMusicTimePlayed
+raylib.UnloadSoundAlias = UnloadSoundAlias
/**
- * Load audio stream (to stream raw audio pcm data)
+ * Export wave data to file, returns true on success
*
- * @param {number} sampleRate
- * @param {number} sampleSize
- * @param {number} channels
+ * @param {Wave} wave
+ * @param {string} fileName
*
- * @return {AudioStream} The resulting AudioStream.
+ * @return {boolean} The resulting bool.
*/
-function LoadAudioStream (sampleRate, sampleSize, channels) {
- return r.BindLoadAudioStream(
- sampleRate,
- sampleSize,
- channels
+function ExportWave(wave, fileName) {
+ return r.BindExportWave(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data,
+ fileName
)
}
-raylib.LoadAudioStream = LoadAudioStream
+raylib.ExportWave = ExportWave
/**
- * Checks if an audio stream is ready
+ * Export wave sample data to code (.h), returns true on success
*
- * @param {AudioStream} stream
+ * @param {Wave} wave
+ * @param {string} fileName
*
* @return {boolean} The resulting bool.
*/
-function IsAudioStreamReady (stream) {
- return r.BindIsAudioStreamReady(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function ExportWaveAsCode(wave, fileName) {
+ return r.BindExportWaveAsCode(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data,
+ fileName
)
}
-raylib.IsAudioStreamReady = IsAudioStreamReady
+raylib.ExportWaveAsCode = ExportWaveAsCode
/**
- * Unload audio stream and free memory
+ * Play a sound
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
*
* @return {undefined}
*/
-function UnloadAudioStream (stream) {
- return r.BindUnloadAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
- )
-}
-raylib.UnloadAudioStream = UnloadAudioStream
+function PlaySound(sound) {
+ return r.BindPlaySound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
+ )
+}
+raylib.PlaySound = PlaySound
/**
- * Update audio stream buffers with data
+ * Stop playing a sound
*
- * @param {AudioStream} stream
- * @param {number} data
- * @param {number} frameCount
+ * @param {Sound} sound
*
* @return {undefined}
*/
-function UpdateAudioStream (stream, data, frameCount) {
- return r.BindUpdateAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels,
- data,
- frameCount
+function StopSound(sound) {
+ return r.BindStopSound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.UpdateAudioStream = UpdateAudioStream
+raylib.StopSound = StopSound
/**
- * Check if any audio stream buffers requires refill
+ * Pause a sound
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsAudioStreamProcessed (stream) {
- return r.BindIsAudioStreamProcessed(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function PauseSound(sound) {
+ return r.BindPauseSound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.IsAudioStreamProcessed = IsAudioStreamProcessed
+raylib.PauseSound = PauseSound
/**
- * Play audio stream
+ * Resume a paused sound
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
*
* @return {undefined}
*/
-function PlayAudioStream (stream) {
- return r.BindPlayAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function ResumeSound(sound) {
+ return r.BindResumeSound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.PlayAudioStream = PlayAudioStream
+raylib.ResumeSound = ResumeSound
/**
- * Pause audio stream
+ * Check if a sound is currently playing
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function PauseAudioStream (stream) {
- return r.BindPauseAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function IsSoundPlaying(sound) {
+ return r.BindIsSoundPlaying(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.PauseAudioStream = PauseAudioStream
+raylib.IsSoundPlaying = IsSoundPlaying
/**
- * Resume audio stream
+ * Set volume for a sound (1.0 is max level)
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
+ * @param {number} volume
*
* @return {undefined}
*/
-function ResumeAudioStream (stream) {
- return r.BindResumeAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function SetSoundVolume(sound, volume) {
+ return r.BindSetSoundVolume(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount,
+ volume
)
}
-raylib.ResumeAudioStream = ResumeAudioStream
+raylib.SetSoundVolume = SetSoundVolume
/**
- * Check if audio stream is playing
+ * Set pitch for a sound (1.0 is base level)
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
+ * @param {number} pitch
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsAudioStreamPlaying (stream) {
- return r.BindIsAudioStreamPlaying(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function SetSoundPitch(sound, pitch) {
+ return r.BindSetSoundPitch(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount,
+ pitch
)
}
-raylib.IsAudioStreamPlaying = IsAudioStreamPlaying
+raylib.SetSoundPitch = SetSoundPitch
/**
- * Stop audio stream
+ * Set pan for a sound (0.5 is center)
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
+ * @param {number} pan
*
* @return {undefined}
*/
-function StopAudioStream (stream) {
- return r.BindStopAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function SetSoundPan(sound, pan) {
+ return r.BindSetSoundPan(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount,
+ pan
)
}
-raylib.StopAudioStream = StopAudioStream
+raylib.SetSoundPan = SetSoundPan
/**
- * Set volume for audio stream (1.0 is max level)
+ * Copy a wave to a new wave
*
- * @param {AudioStream} stream
- * @param {number} volume
+ * @param {Wave} wave
*
- * @return {undefined}
+ * @return {Wave} The resulting Wave.
*/
-function SetAudioStreamVolume (stream, volume) {
- return r.BindSetAudioStreamVolume(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels,
- volume
+function WaveCopy(wave) {
+ return r.BindWaveCopy(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data
)
}
-raylib.SetAudioStreamVolume = SetAudioStreamVolume
+raylib.WaveCopy = WaveCopy
/**
- * Set pitch for audio stream (1.0 is base level)
+ * Load samples data from wave as a 32bit float data array
*
- * @param {AudioStream} stream
- * @param {number} pitch
+ * @param {Wave} wave
*
- * @return {undefined}
+ * @return {number} The resulting float *.
*/
-function SetAudioStreamPitch (stream, pitch) {
- return r.BindSetAudioStreamPitch(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels,
- pitch
+function LoadWaveSamples(wave) {
+ return r.BindLoadWaveSamples(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data
)
}
-raylib.SetAudioStreamPitch = SetAudioStreamPitch
+raylib.LoadWaveSamples = LoadWaveSamples
/**
- * Set pan for audio stream (0.5 is centered)
+ * Unload samples data loaded with LoadWaveSamples()
*
- * @param {AudioStream} stream
- * @param {number} pan
+ * @param {number} samples
*
* @return {undefined}
*/
-function SetAudioStreamPan (stream, pan) {
- return r.BindSetAudioStreamPan(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels,
- pan
+function UnloadWaveSamples(samples) {
+ return r.BindUnloadWaveSamples(
+ samples
)
}
-raylib.SetAudioStreamPan = SetAudioStreamPan
+raylib.UnloadWaveSamples = UnloadWaveSamples
/**
- * Default size for new audio streams
+ * Load music stream from file
*
- * @param {number} size
+ * @param {string} fileName
*
- * @return {undefined}
+ * @return {Music} The resulting Music.
*/
-function SetAudioStreamBufferSizeDefault (size) {
- return r.BindSetAudioStreamBufferSizeDefault(
- size
+function LoadMusicStream(fileName) {
+ return r.BindLoadMusicStream(
+ fileName
)
}
-raylib.SetAudioStreamBufferSizeDefault = SetAudioStreamBufferSizeDefault
+raylib.LoadMusicStream = LoadMusicStream
/**
- * Ease: Linear
+ * Load music stream from data
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {string} fileType
+ * @param {Buffer} data
+ * @param {number} dataSize
*
- * @return {number} The resulting float.
+ * @return {Music} The resulting Music.
*/
-function EaseLinearNone (t, b, c, d) {
- return r.BindEaseLinearNone(
- t,
- b,
- c,
- d
+function LoadMusicStreamFromMemory(fileType, data, dataSize) {
+ return r.BindLoadMusicStreamFromMemory(
+ fileType,
+ data,
+ dataSize
)
}
-raylib.EaseLinearNone = EaseLinearNone
+raylib.LoadMusicStreamFromMemory = LoadMusicStreamFromMemory
/**
- * Ease: Linear In
+ * Checks if a music stream is ready
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {boolean} The resulting bool.
*/
-function EaseLinearIn (t, b, c, d) {
- return r.BindEaseLinearIn(
- t,
- b,
- c,
- d
+function IsMusicReady(music) {
+ return r.BindIsMusicReady(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseLinearIn = EaseLinearIn
+raylib.IsMusicReady = IsMusicReady
/**
- * Ease: Linear Out
+ * Unload music stream
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseLinearOut (t, b, c, d) {
- return r.BindEaseLinearOut(
- t,
- b,
- c,
- d
+function UnloadMusicStream(music) {
+ return r.BindUnloadMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseLinearOut = EaseLinearOut
+raylib.UnloadMusicStream = UnloadMusicStream
/**
- * Ease: Linear In Out
+ * Start music playing
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseLinearInOut (t, b, c, d) {
- return r.BindEaseLinearInOut(
- t,
- b,
- c,
- d
+function PlayMusicStream(music) {
+ return r.BindPlayMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseLinearInOut = EaseLinearInOut
+raylib.PlayMusicStream = PlayMusicStream
/**
- * Ease: Sine In
+ * Check if music is playing
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {boolean} The resulting bool.
*/
-function EaseSineIn (t, b, c, d) {
- return r.BindEaseSineIn(
- t,
- b,
- c,
- d
+function IsMusicStreamPlaying(music) {
+ return r.BindIsMusicStreamPlaying(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseSineIn = EaseSineIn
+raylib.IsMusicStreamPlaying = IsMusicStreamPlaying
/**
- * Ease: Sine Out
+ * Updates buffers for music streaming
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseSineOut (t, b, c, d) {
- return r.BindEaseSineOut(
- t,
- b,
- c,
- d
+function UpdateMusicStream(music) {
+ return r.BindUpdateMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseSineOut = EaseSineOut
+raylib.UpdateMusicStream = UpdateMusicStream
/**
- * Ease: Sine Out
+ * Stop music playing
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseSineInOut (t, b, c, d) {
- return r.BindEaseSineInOut(
- t,
- b,
- c,
- d
+function StopMusicStream(music) {
+ return r.BindStopMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseSineInOut = EaseSineInOut
+raylib.StopMusicStream = StopMusicStream
/**
- * Ease: Circular In
+ * Pause music playing
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseCircIn (t, b, c, d) {
- return r.BindEaseCircIn(
- t,
- b,
- c,
- d
+function PauseMusicStream(music) {
+ return r.BindPauseMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseCircIn = EaseCircIn
+raylib.PauseMusicStream = PauseMusicStream
/**
- * Ease: Circular Out
+ * Resume playing paused music
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseCircOut (t, b, c, d) {
- return r.BindEaseCircOut(
- t,
- b,
- c,
- d
+function ResumeMusicStream(music) {
+ return r.BindResumeMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseCircOut = EaseCircOut
+raylib.ResumeMusicStream = ResumeMusicStream
/**
- * Ease: Circular In Out
+ * Seek music to a position (in seconds)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
+ * @param {number} position
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseCircInOut (t, b, c, d) {
- return r.BindEaseCircInOut(
- t,
- b,
- c,
- d
+function SeekMusicStream(music, position) {
+ return r.BindSeekMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData,
+ position
)
}
-raylib.EaseCircInOut = EaseCircInOut
+raylib.SeekMusicStream = SeekMusicStream
/**
- * Ease: Cubic In
+ * Set volume for music (1.0 is max level)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
+ * @param {number} volume
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseCubicIn (t, b, c, d) {
- return r.BindEaseCubicIn(
- t,
- b,
- c,
- d
- )
-}
-raylib.EaseCubicIn = EaseCubicIn
-
-/**
- * Ease: Cubic Out
- *
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
- *
- * @return {number} The resulting float.
- */
-function EaseCubicOut (t, b, c, d) {
- return r.BindEaseCubicOut(
- t,
- b,
- c,
- d
+function SetMusicVolume(music, volume) {
+ return r.BindSetMusicVolume(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData,
+ volume
)
}
-raylib.EaseCubicOut = EaseCubicOut
+raylib.SetMusicVolume = SetMusicVolume
/**
- * Ease: Cubic In Out
+ * Set pitch for a music (1.0 is base level)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
+ * @param {number} pitch
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseCubicInOut (t, b, c, d) {
- return r.BindEaseCubicInOut(
- t,
- b,
- c,
- d
+function SetMusicPitch(music, pitch) {
+ return r.BindSetMusicPitch(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData,
+ pitch
)
}
-raylib.EaseCubicInOut = EaseCubicInOut
+raylib.SetMusicPitch = SetMusicPitch
/**
- * Ease: Quadratic In
+ * Set pan for a music (0.5 is center)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
+ * @param {number} pan
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseQuadIn (t, b, c, d) {
- return r.BindEaseQuadIn(
- t,
- b,
- c,
- d
+function SetMusicPan(music, pan) {
+ return r.BindSetMusicPan(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData,
+ pan
)
}
-raylib.EaseQuadIn = EaseQuadIn
+raylib.SetMusicPan = SetMusicPan
/**
- * Ease: Quadratic Out
+ * Get music time length (in seconds)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
* @return {number} The resulting float.
*/
-function EaseQuadOut (t, b, c, d) {
- return r.BindEaseQuadOut(
- t,
- b,
- c,
- d
+function GetMusicTimeLength(music) {
+ return r.BindGetMusicTimeLength(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseQuadOut = EaseQuadOut
+raylib.GetMusicTimeLength = GetMusicTimeLength
/**
- * Ease: Quadratic In Out
+ * Get current music time played (in seconds)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
* @return {number} The resulting float.
*/
-function EaseQuadInOut (t, b, c, d) {
- return r.BindEaseQuadInOut(
- t,
- b,
- c,
- d
+function GetMusicTimePlayed(music) {
+ return r.BindGetMusicTimePlayed(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseQuadInOut = EaseQuadInOut
+raylib.GetMusicTimePlayed = GetMusicTimePlayed
/**
- * Ease: Exponential In
+ * Load audio stream (to stream raw audio pcm data)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {number} sampleRate
+ * @param {number} sampleSize
+ * @param {number} channels
*
- * @return {number} The resulting float.
+ * @return {AudioStream} The resulting AudioStream.
*/
-function EaseExpoIn (t, b, c, d) {
- return r.BindEaseExpoIn(
- t,
- b,
- c,
- d
+function LoadAudioStream(sampleRate, sampleSize, channels) {
+ return r.BindLoadAudioStream(
+ sampleRate,
+ sampleSize,
+ channels
)
}
-raylib.EaseExpoIn = EaseExpoIn
+raylib.LoadAudioStream = LoadAudioStream
/**
- * Ease: Exponential Out
+ * Checks if an audio stream is ready
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {AudioStream} stream
*
- * @return {number} The resulting float.
+ * @return {boolean} The resulting bool.
*/
-function EaseExpoOut (t, b, c, d) {
- return r.BindEaseExpoOut(
- t,
- b,
- c,
- d
+function IsAudioStreamReady(stream) {
+ return r.BindIsAudioStreamReady(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
)
}
-raylib.EaseExpoOut = EaseExpoOut
+raylib.IsAudioStreamReady = IsAudioStreamReady
/**
- * Ease: Exponential In Out
+ * Unload audio stream and free memory
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {AudioStream} stream
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseExpoInOut (t, b, c, d) {
- return r.BindEaseExpoInOut(
- t,
- b,
- c,
- d
+function UnloadAudioStream(stream) {
+ return r.BindUnloadAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
)
}
-raylib.EaseExpoInOut = EaseExpoInOut
+raylib.UnloadAudioStream = UnloadAudioStream
/**
- * Ease: Back In
+ * Update audio stream buffers with data
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {AudioStream} stream
+ * @param {number} data
+ * @param {number} frameCount
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseBackIn (t, b, c, d) {
- return r.BindEaseBackIn(
- t,
- b,
- c,
- d
+function UpdateAudioStream(stream, data, frameCount) {
+ return r.BindUpdateAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels,
+ data,
+ frameCount
)
}
-raylib.EaseBackIn = EaseBackIn
+raylib.UpdateAudioStream = UpdateAudioStream
/**
- * Ease: Back Out
+ * Check if any audio stream buffers requires refill
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {AudioStream} stream
*
- * @return {number} The resulting float.
+ * @return {boolean} The resulting bool.
*/
-function EaseBackOut (t, b, c, d) {
- return r.BindEaseBackOut(
- t,
- b,
- c,
- d
+function IsAudioStreamProcessed(stream) {
+ return r.BindIsAudioStreamProcessed(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
)
}
-raylib.EaseBackOut = EaseBackOut
+raylib.IsAudioStreamProcessed = IsAudioStreamProcessed
/**
- * Ease: Back In Out
+ * Play audio stream
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {AudioStream} stream
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseBackInOut (t, b, c, d) {
- return r.BindEaseBackInOut(
- t,
- b,
- c,
- d
+function PlayAudioStream(stream) {
+ return r.BindPlayAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
)
}
-raylib.EaseBackInOut = EaseBackInOut
+raylib.PlayAudioStream = PlayAudioStream
/**
- * Ease: Bounce Out
+ * Pause audio stream
+ *
+ * @param {AudioStream} stream
+ *
+ * @return {undefined}
+ */
+function PauseAudioStream(stream) {
+ return r.BindPauseAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
+ )
+}
+raylib.PauseAudioStream = PauseAudioStream
+
+/**
+ * Resume audio stream
+ *
+ * @param {AudioStream} stream
+ *
+ * @return {undefined}
+ */
+function ResumeAudioStream(stream) {
+ return r.BindResumeAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
+ )
+}
+raylib.ResumeAudioStream = ResumeAudioStream
+
+/**
+ * Check if audio stream is playing
+ *
+ * @param {AudioStream} stream
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsAudioStreamPlaying(stream) {
+ return r.BindIsAudioStreamPlaying(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
+ )
+}
+raylib.IsAudioStreamPlaying = IsAudioStreamPlaying
+
+/**
+ * Stop audio stream
+ *
+ * @param {AudioStream} stream
+ *
+ * @return {undefined}
+ */
+function StopAudioStream(stream) {
+ return r.BindStopAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
+ )
+}
+raylib.StopAudioStream = StopAudioStream
+
+/**
+ * Set volume for audio stream (1.0 is max level)
+ *
+ * @param {AudioStream} stream
+ * @param {number} volume
+ *
+ * @return {undefined}
+ */
+function SetAudioStreamVolume(stream, volume) {
+ return r.BindSetAudioStreamVolume(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels,
+ volume
+ )
+}
+raylib.SetAudioStreamVolume = SetAudioStreamVolume
+
+/**
+ * Set pitch for audio stream (1.0 is base level)
+ *
+ * @param {AudioStream} stream
+ * @param {number} pitch
+ *
+ * @return {undefined}
+ */
+function SetAudioStreamPitch(stream, pitch) {
+ return r.BindSetAudioStreamPitch(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels,
+ pitch
+ )
+}
+raylib.SetAudioStreamPitch = SetAudioStreamPitch
+
+/**
+ * Set pan for audio stream (0.5 is centered)
+ *
+ * @param {AudioStream} stream
+ * @param {number} pan
+ *
+ * @return {undefined}
+ */
+function SetAudioStreamPan(stream, pan) {
+ return r.BindSetAudioStreamPan(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels,
+ pan
+ )
+}
+raylib.SetAudioStreamPan = SetAudioStreamPan
+
+/**
+ * Default size for new audio streams
+ *
+ * @param {number} size
+ *
+ * @return {undefined}
+ */
+function SetAudioStreamBufferSizeDefault(size) {
+ return r.BindSetAudioStreamBufferSizeDefault(
+ size
+ )
+}
+raylib.SetAudioStreamBufferSizeDefault = SetAudioStreamBufferSizeDefault
+
+/**
+ * Ease: Linear
*
* @param {number} t
* @param {number} b
@@ -9179,18 +9401,18 @@ raylib.EaseBackInOut = EaseBackInOut
*
* @return {number} The resulting float.
*/
-function EaseBounceOut (t, b, c, d) {
- return r.BindEaseBounceOut(
+function EaseLinearNone(t, b, c, d) {
+ return r.BindEaseLinearNone(
t,
b,
c,
d
)
}
-raylib.EaseBounceOut = EaseBounceOut
+raylib.EaseLinearNone = EaseLinearNone
/**
- * Ease: Bounce In
+ * Ease: Linear In
*
* @param {number} t
* @param {number} b
@@ -9199,18 +9421,18 @@ raylib.EaseBounceOut = EaseBounceOut
*
* @return {number} The resulting float.
*/
-function EaseBounceIn (t, b, c, d) {
- return r.BindEaseBounceIn(
+function EaseLinearIn(t, b, c, d) {
+ return r.BindEaseLinearIn(
t,
b,
c,
d
)
}
-raylib.EaseBounceIn = EaseBounceIn
+raylib.EaseLinearIn = EaseLinearIn
/**
- * Ease: Bounce In Out
+ * Ease: Linear Out
*
* @param {number} t
* @param {number} b
@@ -9219,18 +9441,18 @@ raylib.EaseBounceIn = EaseBounceIn
*
* @return {number} The resulting float.
*/
-function EaseBounceInOut (t, b, c, d) {
- return r.BindEaseBounceInOut(
+function EaseLinearOut(t, b, c, d) {
+ return r.BindEaseLinearOut(
t,
b,
c,
d
)
}
-raylib.EaseBounceInOut = EaseBounceInOut
+raylib.EaseLinearOut = EaseLinearOut
/**
- * Ease: Elastic In
+ * Ease: Linear In Out
*
* @param {number} t
* @param {number} b
@@ -9239,18 +9461,18 @@ raylib.EaseBounceInOut = EaseBounceInOut
*
* @return {number} The resulting float.
*/
-function EaseElasticIn (t, b, c, d) {
- return r.BindEaseElasticIn(
+function EaseLinearInOut(t, b, c, d) {
+ return r.BindEaseLinearInOut(
t,
b,
c,
d
)
}
-raylib.EaseElasticIn = EaseElasticIn
+raylib.EaseLinearInOut = EaseLinearInOut
/**
- * Ease: Elastic Out
+ * Ease: Sine In
*
* @param {number} t
* @param {number} b
@@ -9259,18 +9481,18 @@ raylib.EaseElasticIn = EaseElasticIn
*
* @return {number} The resulting float.
*/
-function EaseElasticOut (t, b, c, d) {
- return r.BindEaseElasticOut(
+function EaseSineIn(t, b, c, d) {
+ return r.BindEaseSineIn(
t,
b,
c,
d
)
}
-raylib.EaseElasticOut = EaseElasticOut
+raylib.EaseSineIn = EaseSineIn
/**
- * Ease: Elastic In Out
+ * Ease: Sine Out
*
* @param {number} t
* @param {number} b
@@ -9279,327 +9501,767 @@ raylib.EaseElasticOut = EaseElasticOut
*
* @return {number} The resulting float.
*/
-function EaseElasticInOut (t, b, c, d) {
- return r.BindEaseElasticInOut(
+function EaseSineOut(t, b, c, d) {
+ return r.BindEaseSineOut(
t,
b,
c,
d
)
}
-raylib.EaseElasticInOut = EaseElasticInOut
-
-function Clamp (value, min, max) {
- return r.BindClamp(
- value,
- min,
- max
- )
-}
-raylib.Clamp = Clamp
+raylib.EaseSineOut = EaseSineOut
-function Lerp (start, end, amount) {
- return r.BindLerp(
- start,
- end,
- amount
+/**
+ * Ease: Sine Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseSineInOut(t, b, c, d) {
+ return r.BindEaseSineInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Lerp = Lerp
+raylib.EaseSineInOut = EaseSineInOut
-function Normalize (value, start, end) {
- return r.BindNormalize(
- value,
- start,
- end
+/**
+ * Ease: Circular In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCircIn(t, b, c, d) {
+ return r.BindEaseCircIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Normalize = Normalize
+raylib.EaseCircIn = EaseCircIn
-function Remap (value, inputStart, inputEnd, outputStart, outputEnd) {
- return r.BindRemap(
- value,
- inputStart,
- inputEnd,
- outputStart,
- outputEnd
+/**
+ * Ease: Circular Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCircOut(t, b, c, d) {
+ return r.BindEaseCircOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Remap = Remap
+raylib.EaseCircOut = EaseCircOut
-function Wrap (value, min, max) {
- return r.BindWrap(
- value,
- min,
- max
+/**
+ * Ease: Circular In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCircInOut(t, b, c, d) {
+ return r.BindEaseCircInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Wrap = Wrap
+raylib.EaseCircInOut = EaseCircInOut
-function FloatEquals (x, y) {
- return r.BindFloatEquals(
- x,
- y
+/**
+ * Ease: Cubic In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCubicIn(t, b, c, d) {
+ return r.BindEaseCubicIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.FloatEquals = FloatEquals
-
-function Vector2Zero () {
- return r.BindVector2Zero()
-}
-raylib.Vector2Zero = Vector2Zero
+raylib.EaseCubicIn = EaseCubicIn
-function Vector2One () {
- return r.BindVector2One()
+/**
+ * Ease: Cubic Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCubicOut(t, b, c, d) {
+ return r.BindEaseCubicOut(
+ t,
+ b,
+ c,
+ d
+ )
}
-raylib.Vector2One = Vector2One
+raylib.EaseCubicOut = EaseCubicOut
-function Vector2Add (v1, v2) {
- return r.BindVector2Add(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Cubic In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCubicInOut(t, b, c, d) {
+ return r.BindEaseCubicInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Add = Vector2Add
+raylib.EaseCubicInOut = EaseCubicInOut
-function Vector2AddValue (v, add) {
- return r.BindVector2AddValue(
- v.x,
- v.y,
- add
+/**
+ * Ease: Quadratic In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseQuadIn(t, b, c, d) {
+ return r.BindEaseQuadIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2AddValue = Vector2AddValue
+raylib.EaseQuadIn = EaseQuadIn
-function Vector2Subtract (v1, v2) {
- return r.BindVector2Subtract(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Quadratic Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseQuadOut(t, b, c, d) {
+ return r.BindEaseQuadOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Subtract = Vector2Subtract
+raylib.EaseQuadOut = EaseQuadOut
-function Vector2SubtractValue (v, sub) {
- return r.BindVector2SubtractValue(
- v.x,
- v.y,
- sub
+/**
+ * Ease: Quadratic In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseQuadInOut(t, b, c, d) {
+ return r.BindEaseQuadInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2SubtractValue = Vector2SubtractValue
+raylib.EaseQuadInOut = EaseQuadInOut
-function Vector2Length (v) {
- return r.BindVector2Length(
- v.x,
- v.y
+/**
+ * Ease: Exponential In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseExpoIn(t, b, c, d) {
+ return r.BindEaseExpoIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Length = Vector2Length
+raylib.EaseExpoIn = EaseExpoIn
-function Vector2LengthSqr (v) {
- return r.BindVector2LengthSqr(
- v.x,
- v.y
+/**
+ * Ease: Exponential Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseExpoOut(t, b, c, d) {
+ return r.BindEaseExpoOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2LengthSqr = Vector2LengthSqr
+raylib.EaseExpoOut = EaseExpoOut
-function Vector2DotProduct (v1, v2) {
- return r.BindVector2DotProduct(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Exponential In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseExpoInOut(t, b, c, d) {
+ return r.BindEaseExpoInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2DotProduct = Vector2DotProduct
+raylib.EaseExpoInOut = EaseExpoInOut
-function Vector2Distance (v1, v2) {
- return r.BindVector2Distance(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Back In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBackIn(t, b, c, d) {
+ return r.BindEaseBackIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Distance = Vector2Distance
+raylib.EaseBackIn = EaseBackIn
-function Vector2DistanceSqr (v1, v2) {
- return r.BindVector2DistanceSqr(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Back Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBackOut(t, b, c, d) {
+ return r.BindEaseBackOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2DistanceSqr = Vector2DistanceSqr
+raylib.EaseBackOut = EaseBackOut
-function Vector2Angle (v1, v2) {
- return r.BindVector2Angle(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Back In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBackInOut(t, b, c, d) {
+ return r.BindEaseBackInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Angle = Vector2Angle
+raylib.EaseBackInOut = EaseBackInOut
-function Vector2LineAngle (start, end) {
- return r.BindVector2LineAngle(
- start.x,
- start.y,
- end.x,
- end.y
+/**
+ * Ease: Bounce Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBounceOut(t, b, c, d) {
+ return r.BindEaseBounceOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2LineAngle = Vector2LineAngle
+raylib.EaseBounceOut = EaseBounceOut
-function Vector2Scale (v, scale) {
- return r.BindVector2Scale(
- v.x,
- v.y,
- scale
+/**
+ * Ease: Bounce In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBounceIn(t, b, c, d) {
+ return r.BindEaseBounceIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Scale = Vector2Scale
+raylib.EaseBounceIn = EaseBounceIn
-function Vector2Multiply (v1, v2) {
- return r.BindVector2Multiply(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Bounce In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBounceInOut(t, b, c, d) {
+ return r.BindEaseBounceInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Multiply = Vector2Multiply
+raylib.EaseBounceInOut = EaseBounceInOut
-function Vector2Negate (v) {
- return r.BindVector2Negate(
- v.x,
- v.y
+/**
+ * Ease: Elastic In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseElasticIn(t, b, c, d) {
+ return r.BindEaseElasticIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Negate = Vector2Negate
+raylib.EaseElasticIn = EaseElasticIn
-function Vector2Divide (v1, v2) {
- return r.BindVector2Divide(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Elastic Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseElasticOut(t, b, c, d) {
+ return r.BindEaseElasticOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Divide = Vector2Divide
+raylib.EaseElasticOut = EaseElasticOut
-function Vector2Normalize (v) {
- return r.BindVector2Normalize(
- v.x,
- v.y
+/**
+ * Ease: Elastic In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseElasticInOut(t, b, c, d) {
+ return r.BindEaseElasticInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Normalize = Vector2Normalize
+raylib.EaseElasticInOut = EaseElasticInOut
-function Vector2Transform (v, mat) {
- return r.BindVector2Transform(
- v.x,
- v.y,
- mat.m0,
- mat.m4,
- mat.m8,
- mat.m12,
- mat.m1,
- mat.m5,
- mat.m9,
- mat.m13,
- mat.m2,
- mat.m6,
- mat.m10,
- mat.m14,
- mat.m3,
- mat.m7,
- mat.m11,
- mat.m15
+function Clamp(value, min, max) {
+ return r.BindClamp(
+ value,
+ min,
+ max
)
}
-raylib.Vector2Transform = Vector2Transform
+raylib.Clamp = Clamp
-function Vector2Lerp (v1, v2, amount) {
- return r.BindVector2Lerp(
- v1.x,
- v1.y,
- v2.x,
- v2.y,
+function Lerp(start, end, amount) {
+ return r.BindLerp(
+ start,
+ end,
amount
)
}
-raylib.Vector2Lerp = Vector2Lerp
+raylib.Lerp = Lerp
-function Vector2Reflect (v, normal) {
- return r.BindVector2Reflect(
- v.x,
- v.y,
- normal.x,
- normal.y
+function Normalize(value, start, end) {
+ return r.BindNormalize(
+ value,
+ start,
+ end
)
}
-raylib.Vector2Reflect = Vector2Reflect
+raylib.Normalize = Normalize
-function Vector2Rotate (v, angle) {
- return r.BindVector2Rotate(
- v.x,
- v.y,
- angle
+function Remap(value, inputStart, inputEnd, outputStart, outputEnd) {
+ return r.BindRemap(
+ value,
+ inputStart,
+ inputEnd,
+ outputStart,
+ outputEnd
)
}
-raylib.Vector2Rotate = Vector2Rotate
+raylib.Remap = Remap
-function Vector2MoveTowards (v, target, maxDistance) {
- return r.BindVector2MoveTowards(
- v.x,
- v.y,
- target.x,
- target.y,
- maxDistance
+function Wrap(value, min, max) {
+ return r.BindWrap(
+ value,
+ min,
+ max
)
}
-raylib.Vector2MoveTowards = Vector2MoveTowards
+raylib.Wrap = Wrap
-function Vector2Invert (v) {
- return r.BindVector2Invert(
- v.x,
- v.y
+function FloatEquals(x, y) {
+ return r.BindFloatEquals(
+ x,
+ y
)
}
-raylib.Vector2Invert = Vector2Invert
+raylib.FloatEquals = FloatEquals
-function Vector2Clamp (v, min, max) {
- return r.BindVector2Clamp(
- v.x,
- v.y,
- min.x,
- min.y,
- max.x,
- max.y
+function Vector2Zero() {
+ return r.BindVector2Zero()
+}
+raylib.Vector2Zero = Vector2Zero
+
+function Vector2One() {
+ return r.BindVector2One()
+}
+raylib.Vector2One = Vector2One
+
+function Vector2Add(v1, v2) {
+ return r.BindVector2Add(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
)
}
-raylib.Vector2Clamp = Vector2Clamp
+raylib.Vector2Add = Vector2Add
-function Vector2ClampValue (v, min, max) {
- return r.BindVector2ClampValue(
+function Vector2AddValue(v, add) {
+ return r.BindVector2AddValue(
v.x,
v.y,
- min,
- max
+ add
)
}
-raylib.Vector2ClampValue = Vector2ClampValue
+raylib.Vector2AddValue = Vector2AddValue
-function Vector2Equals (p, q) {
- return r.BindVector2Equals(
+function Vector2Subtract(v1, v2) {
+ return r.BindVector2Subtract(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2Subtract = Vector2Subtract
+
+function Vector2SubtractValue(v, sub) {
+ return r.BindVector2SubtractValue(
+ v.x,
+ v.y,
+ sub
+ )
+}
+raylib.Vector2SubtractValue = Vector2SubtractValue
+
+function Vector2Length(v) {
+ return r.BindVector2Length(
+ v.x,
+ v.y
+ )
+}
+raylib.Vector2Length = Vector2Length
+
+function Vector2LengthSqr(v) {
+ return r.BindVector2LengthSqr(
+ v.x,
+ v.y
+ )
+}
+raylib.Vector2LengthSqr = Vector2LengthSqr
+
+function Vector2DotProduct(v1, v2) {
+ return r.BindVector2DotProduct(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2DotProduct = Vector2DotProduct
+
+function Vector2Distance(v1, v2) {
+ return r.BindVector2Distance(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2Distance = Vector2Distance
+
+function Vector2DistanceSqr(v1, v2) {
+ return r.BindVector2DistanceSqr(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2DistanceSqr = Vector2DistanceSqr
+
+function Vector2Angle(v1, v2) {
+ return r.BindVector2Angle(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2Angle = Vector2Angle
+
+function Vector2LineAngle(start, end) {
+ return r.BindVector2LineAngle(
+ start.x,
+ start.y,
+ end.x,
+ end.y
+ )
+}
+raylib.Vector2LineAngle = Vector2LineAngle
+
+function Vector2Scale(v, scale) {
+ return r.BindVector2Scale(
+ v.x,
+ v.y,
+ scale
+ )
+}
+raylib.Vector2Scale = Vector2Scale
+
+function Vector2Multiply(v1, v2) {
+ return r.BindVector2Multiply(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2Multiply = Vector2Multiply
+
+function Vector2Negate(v) {
+ return r.BindVector2Negate(
+ v.x,
+ v.y
+ )
+}
+raylib.Vector2Negate = Vector2Negate
+
+function Vector2Divide(v1, v2) {
+ return r.BindVector2Divide(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2Divide = Vector2Divide
+
+function Vector2Normalize(v) {
+ return r.BindVector2Normalize(
+ v.x,
+ v.y
+ )
+}
+raylib.Vector2Normalize = Vector2Normalize
+
+function Vector2Transform(v, mat) {
+ return r.BindVector2Transform(
+ v.x,
+ v.y,
+ mat.m0,
+ mat.m4,
+ mat.m8,
+ mat.m12,
+ mat.m1,
+ mat.m5,
+ mat.m9,
+ mat.m13,
+ mat.m2,
+ mat.m6,
+ mat.m10,
+ mat.m14,
+ mat.m3,
+ mat.m7,
+ mat.m11,
+ mat.m15
+ )
+}
+raylib.Vector2Transform = Vector2Transform
+
+function Vector2Lerp(v1, v2, amount) {
+ return r.BindVector2Lerp(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y,
+ amount
+ )
+}
+raylib.Vector2Lerp = Vector2Lerp
+
+function Vector2Reflect(v, normal) {
+ return r.BindVector2Reflect(
+ v.x,
+ v.y,
+ normal.x,
+ normal.y
+ )
+}
+raylib.Vector2Reflect = Vector2Reflect
+
+function Vector2Rotate(v, angle) {
+ return r.BindVector2Rotate(
+ v.x,
+ v.y,
+ angle
+ )
+}
+raylib.Vector2Rotate = Vector2Rotate
+
+function Vector2MoveTowards(v, target, maxDistance) {
+ return r.BindVector2MoveTowards(
+ v.x,
+ v.y,
+ target.x,
+ target.y,
+ maxDistance
+ )
+}
+raylib.Vector2MoveTowards = Vector2MoveTowards
+
+function Vector2Invert(v) {
+ return r.BindVector2Invert(
+ v.x,
+ v.y
+ )
+}
+raylib.Vector2Invert = Vector2Invert
+
+function Vector2Clamp(v, min, max) {
+ return r.BindVector2Clamp(
+ v.x,
+ v.y,
+ min.x,
+ min.y,
+ max.x,
+ max.y
+ )
+}
+raylib.Vector2Clamp = Vector2Clamp
+
+function Vector2ClampValue(v, min, max) {
+ return r.BindVector2ClampValue(
+ v.x,
+ v.y,
+ min,
+ max
+ )
+}
+raylib.Vector2ClampValue = Vector2ClampValue
+
+function Vector2Equals(p, q) {
+ return r.BindVector2Equals(
p.x,
p.y,
q.x,
@@ -9608,17 +10270,17 @@ function Vector2Equals (p, q) {
}
raylib.Vector2Equals = Vector2Equals
-function Vector3Zero () {
+function Vector3Zero() {
return r.BindVector3Zero()
}
raylib.Vector3Zero = Vector3Zero
-function Vector3One () {
+function Vector3One() {
return r.BindVector3One()
}
raylib.Vector3One = Vector3One
-function Vector3Add (v1, v2) {
+function Vector3Add(v1, v2) {
return r.BindVector3Add(
v1.x,
v1.y,
@@ -9630,7 +10292,7 @@ function Vector3Add (v1, v2) {
}
raylib.Vector3Add = Vector3Add
-function Vector3AddValue (v, add) {
+function Vector3AddValue(v, add) {
return r.BindVector3AddValue(
v.x,
v.y,
@@ -9640,7 +10302,7 @@ function Vector3AddValue (v, add) {
}
raylib.Vector3AddValue = Vector3AddValue
-function Vector3Subtract (v1, v2) {
+function Vector3Subtract(v1, v2) {
return r.BindVector3Subtract(
v1.x,
v1.y,
@@ -9652,7 +10314,7 @@ function Vector3Subtract (v1, v2) {
}
raylib.Vector3Subtract = Vector3Subtract
-function Vector3SubtractValue (v, sub) {
+function Vector3SubtractValue(v, sub) {
return r.BindVector3SubtractValue(
v.x,
v.y,
@@ -9662,7 +10324,7 @@ function Vector3SubtractValue (v, sub) {
}
raylib.Vector3SubtractValue = Vector3SubtractValue
-function Vector3Scale (v, scalar) {
+function Vector3Scale(v, scalar) {
return r.BindVector3Scale(
v.x,
v.y,
@@ -9672,7 +10334,7 @@ function Vector3Scale (v, scalar) {
}
raylib.Vector3Scale = Vector3Scale
-function Vector3Multiply (v1, v2) {
+function Vector3Multiply(v1, v2) {
return r.BindVector3Multiply(
v1.x,
v1.y,
@@ -9684,7 +10346,7 @@ function Vector3Multiply (v1, v2) {
}
raylib.Vector3Multiply = Vector3Multiply
-function Vector3CrossProduct (v1, v2) {
+function Vector3CrossProduct(v1, v2) {
return r.BindVector3CrossProduct(
v1.x,
v1.y,
@@ -9696,7 +10358,7 @@ function Vector3CrossProduct (v1, v2) {
}
raylib.Vector3CrossProduct = Vector3CrossProduct
-function Vector3Perpendicular (v) {
+function Vector3Perpendicular(v) {
return r.BindVector3Perpendicular(
v.x,
v.y,
@@ -9705,21 +10367,21 @@ function Vector3Perpendicular (v) {
}
raylib.Vector3Perpendicular = Vector3Perpendicular
-function Vector3Length (v) {
+function Vector3Length(v) {
return r.BindVector3Length(
v
)
}
raylib.Vector3Length = Vector3Length
-function Vector3LengthSqr (v) {
+function Vector3LengthSqr(v) {
return r.BindVector3LengthSqr(
v
)
}
raylib.Vector3LengthSqr = Vector3LengthSqr
-function Vector3DotProduct (v1, v2) {
+function Vector3DotProduct(v1, v2) {
return r.BindVector3DotProduct(
v1.x,
v1.y,
@@ -9731,7 +10393,7 @@ function Vector3DotProduct (v1, v2) {
}
raylib.Vector3DotProduct = Vector3DotProduct
-function Vector3Distance (v1, v2) {
+function Vector3Distance(v1, v2) {
return r.BindVector3Distance(
v1.x,
v1.y,
@@ -9743,7 +10405,7 @@ function Vector3Distance (v1, v2) {
}
raylib.Vector3Distance = Vector3Distance
-function Vector3DistanceSqr (v1, v2) {
+function Vector3DistanceSqr(v1, v2) {
return r.BindVector3DistanceSqr(
v1.x,
v1.y,
@@ -9755,7 +10417,7 @@ function Vector3DistanceSqr (v1, v2) {
}
raylib.Vector3DistanceSqr = Vector3DistanceSqr
-function Vector3Angle (v1, v2) {
+function Vector3Angle(v1, v2) {
return r.BindVector3Angle(
v1.x,
v1.y,
@@ -9767,7 +10429,7 @@ function Vector3Angle (v1, v2) {
}
raylib.Vector3Angle = Vector3Angle
-function Vector3Negate (v) {
+function Vector3Negate(v) {
return r.BindVector3Negate(
v.x,
v.y,
@@ -9776,7 +10438,7 @@ function Vector3Negate (v) {
}
raylib.Vector3Negate = Vector3Negate
-function Vector3Divide (v1, v2) {
+function Vector3Divide(v1, v2) {
return r.BindVector3Divide(
v1.x,
v1.y,
@@ -9788,7 +10450,7 @@ function Vector3Divide (v1, v2) {
}
raylib.Vector3Divide = Vector3Divide
-function Vector3Normalize (v) {
+function Vector3Normalize(v) {
return r.BindVector3Normalize(
v.x,
v.y,
@@ -9797,7 +10459,31 @@ function Vector3Normalize (v) {
}
raylib.Vector3Normalize = Vector3Normalize
-function Vector3OrthoNormalize (v1, v2) {
+function Vector3Project(v1, v2) {
+ return r.BindVector3Project(
+ v1.x,
+ v1.y,
+ v1.z,
+ v2.x,
+ v2.y,
+ v2.z
+ )
+}
+raylib.Vector3Project = Vector3Project
+
+function Vector3Reject(v1, v2) {
+ return r.BindVector3Reject(
+ v1.x,
+ v1.y,
+ v1.z,
+ v2.x,
+ v2.y,
+ v2.z
+ )
+}
+raylib.Vector3Reject = Vector3Reject
+
+function Vector3OrthoNormalize(v1, v2) {
return r.BindVector3OrthoNormalize(
v1,
v2
@@ -9805,7 +10491,7 @@ function Vector3OrthoNormalize (v1, v2) {
}
raylib.Vector3OrthoNormalize = Vector3OrthoNormalize
-function Vector3Transform (v, mat) {
+function Vector3Transform(v, mat) {
return r.BindVector3Transform(
v.x,
v.y,
@@ -9830,7 +10516,7 @@ function Vector3Transform (v, mat) {
}
raylib.Vector3Transform = Vector3Transform
-function Vector3RotateByQuaternion (v, q) {
+function Vector3RotateByQuaternion(v, q) {
return r.BindVector3RotateByQuaternion(
v.x,
v.y,
@@ -9840,7 +10526,7 @@ function Vector3RotateByQuaternion (v, q) {
}
raylib.Vector3RotateByQuaternion = Vector3RotateByQuaternion
-function Vector3RotateByAxisAngle (v, axis, angle) {
+function Vector3RotateByAxisAngle(v, axis, angle) {
return r.BindVector3RotateByAxisAngle(
v.x,
v.y,
@@ -9853,7 +10539,7 @@ function Vector3RotateByAxisAngle (v, axis, angle) {
}
raylib.Vector3RotateByAxisAngle = Vector3RotateByAxisAngle
-function Vector3Lerp (v1, v2, amount) {
+function Vector3Lerp(v1, v2, amount) {
return r.BindVector3Lerp(
v1.x,
v1.y,
@@ -9866,7 +10552,7 @@ function Vector3Lerp (v1, v2, amount) {
}
raylib.Vector3Lerp = Vector3Lerp
-function Vector3Reflect (v, normal) {
+function Vector3Reflect(v, normal) {
return r.BindVector3Reflect(
v.x,
v.y,
@@ -9878,7 +10564,7 @@ function Vector3Reflect (v, normal) {
}
raylib.Vector3Reflect = Vector3Reflect
-function Vector3Min (v1, v2) {
+function Vector3Min(v1, v2) {
return r.BindVector3Min(
v1.x,
v1.y,
@@ -9890,7 +10576,7 @@ function Vector3Min (v1, v2) {
}
raylib.Vector3Min = Vector3Min
-function Vector3Max (v1, v2) {
+function Vector3Max(v1, v2) {
return r.BindVector3Max(
v1.x,
v1.y,
@@ -9902,7 +10588,7 @@ function Vector3Max (v1, v2) {
}
raylib.Vector3Max = Vector3Max
-function Vector3Barycenter (p, a, b, c) {
+function Vector3Barycenter(p, a, b, c) {
return r.BindVector3Barycenter(
p.x,
p.y,
@@ -9920,7 +10606,7 @@ function Vector3Barycenter (p, a, b, c) {
}
raylib.Vector3Barycenter = Vector3Barycenter
-function Vector3Unproject (source, projection, view) {
+function Vector3Unproject(source, projection, view) {
return r.BindVector3Unproject(
source.x,
source.y,
@@ -9961,7 +10647,7 @@ function Vector3Unproject (source, projection, view) {
}
raylib.Vector3Unproject = Vector3Unproject
-function Vector3Invert (v) {
+function Vector3Invert(v) {
return r.BindVector3Invert(
v.x,
v.y,
@@ -9970,7 +10656,7 @@ function Vector3Invert (v) {
}
raylib.Vector3Invert = Vector3Invert
-function Vector3Clamp (v, min, max) {
+function Vector3Clamp(v, min, max) {
return r.BindVector3Clamp(
v.x,
v.y,
@@ -9985,7 +10671,7 @@ function Vector3Clamp (v, min, max) {
}
raylib.Vector3Clamp = Vector3Clamp
-function Vector3ClampValue (v, min, max) {
+function Vector3ClampValue(v, min, max) {
return r.BindVector3ClampValue(
v.x,
v.y,
@@ -9996,7 +10682,7 @@ function Vector3ClampValue (v, min, max) {
}
raylib.Vector3ClampValue = Vector3ClampValue
-function Vector3Equals (p, q) {
+function Vector3Equals(p, q) {
return r.BindVector3Equals(
p.x,
p.y,
@@ -10008,7 +10694,7 @@ function Vector3Equals (p, q) {
}
raylib.Vector3Equals = Vector3Equals
-function Vector3Refract (v, n, r) {
+function Vector3Refract(v, n, r) {
return r.BindVector3Refract(
v.x,
v.y,
@@ -10021,7 +10707,7 @@ function Vector3Refract (v, n, r) {
}
raylib.Vector3Refract = Vector3Refract
-function MatrixDeterminant (mat) {
+function MatrixDeterminant(mat) {
return r.BindMatrixDeterminant(
mat.m0,
mat.m4,
@@ -10043,7 +10729,7 @@ function MatrixDeterminant (mat) {
}
raylib.MatrixDeterminant = MatrixDeterminant
-function MatrixTrace (mat) {
+function MatrixTrace(mat) {
return r.BindMatrixTrace(
mat.m0,
mat.m4,
@@ -10065,7 +10751,7 @@ function MatrixTrace (mat) {
}
raylib.MatrixTrace = MatrixTrace
-function MatrixTranspose (mat) {
+function MatrixTranspose(mat) {
return r.BindMatrixTranspose(
mat.m0,
mat.m4,
@@ -10087,7 +10773,7 @@ function MatrixTranspose (mat) {
}
raylib.MatrixTranspose = MatrixTranspose
-function MatrixInvert (mat) {
+function MatrixInvert(mat) {
return r.BindMatrixInvert(
mat.m0,
mat.m4,
@@ -10109,12 +10795,12 @@ function MatrixInvert (mat) {
}
raylib.MatrixInvert = MatrixInvert
-function MatrixIdentity () {
+function MatrixIdentity() {
return r.BindMatrixIdentity()
}
raylib.MatrixIdentity = MatrixIdentity
-function MatrixAdd (left, right) {
+function MatrixAdd(left, right) {
return r.BindMatrixAdd(
left.m0,
left.m4,
@@ -10152,7 +10838,7 @@ function MatrixAdd (left, right) {
}
raylib.MatrixAdd = MatrixAdd
-function MatrixSubtract (left, right) {
+function MatrixSubtract(left, right) {
return r.BindMatrixSubtract(
left.m0,
left.m4,
@@ -10190,7 +10876,7 @@ function MatrixSubtract (left, right) {
}
raylib.MatrixSubtract = MatrixSubtract
-function MatrixMultiply (left, right) {
+function MatrixMultiply(left, right) {
return r.BindMatrixMultiply(
left.m0,
left.m4,
@@ -10228,7 +10914,7 @@ function MatrixMultiply (left, right) {
}
raylib.MatrixMultiply = MatrixMultiply
-function MatrixTranslate (x, y, z) {
+function MatrixTranslate(x, y, z) {
return r.BindMatrixTranslate(
x,
y,
@@ -10237,7 +10923,7 @@ function MatrixTranslate (x, y, z) {
}
raylib.MatrixTranslate = MatrixTranslate
-function MatrixRotate (axis, angle) {
+function MatrixRotate(axis, angle) {
return r.BindMatrixRotate(
axis.x,
axis.y,
@@ -10247,28 +10933,28 @@ function MatrixRotate (axis, angle) {
}
raylib.MatrixRotate = MatrixRotate
-function MatrixRotateX (angle) {
+function MatrixRotateX(angle) {
return r.BindMatrixRotateX(
angle
)
}
raylib.MatrixRotateX = MatrixRotateX
-function MatrixRotateY (angle) {
+function MatrixRotateY(angle) {
return r.BindMatrixRotateY(
angle
)
}
raylib.MatrixRotateY = MatrixRotateY
-function MatrixRotateZ (angle) {
+function MatrixRotateZ(angle) {
return r.BindMatrixRotateZ(
angle
)
}
raylib.MatrixRotateZ = MatrixRotateZ
-function MatrixRotateXYZ (angle) {
+function MatrixRotateXYZ(angle) {
return r.BindMatrixRotateXYZ(
angle.x,
angle.y,
@@ -10277,7 +10963,7 @@ function MatrixRotateXYZ (angle) {
}
raylib.MatrixRotateXYZ = MatrixRotateXYZ
-function MatrixRotateZYX (angle) {
+function MatrixRotateZYX(angle) {
return r.BindMatrixRotateZYX(
angle.x,
angle.y,
@@ -10286,7 +10972,7 @@ function MatrixRotateZYX (angle) {
}
raylib.MatrixRotateZYX = MatrixRotateZYX
-function MatrixScale (x, y, z) {
+function MatrixScale(x, y, z) {
return r.BindMatrixScale(
x,
y,
@@ -10295,7 +10981,7 @@ function MatrixScale (x, y, z) {
}
raylib.MatrixScale = MatrixScale
-function MatrixFrustum (left, right, bottom, top, near, far) {
+function MatrixFrustum(left, right, bottom, top, near, far) {
return r.BindMatrixFrustum(
left,
right,
@@ -10307,29 +10993,29 @@ function MatrixFrustum (left, right, bottom, top, near, far) {
}
raylib.MatrixFrustum = MatrixFrustum
-function MatrixPerspective (fovy, aspect, near, far) {
+function MatrixPerspective(fovY, aspect, nearPlane, farPlane) {
return r.BindMatrixPerspective(
- fovy,
+ fovY,
aspect,
- near,
- far
+ nearPlane,
+ farPlane
)
}
raylib.MatrixPerspective = MatrixPerspective
-function MatrixOrtho (left, right, bottom, top, near, far) {
+function MatrixOrtho(left, right, bottom, top, nearPlane, farPlane) {
return r.BindMatrixOrtho(
left,
right,
bottom,
top,
- near,
- far
+ nearPlane,
+ farPlane
)
}
raylib.MatrixOrtho = MatrixOrtho
-function MatrixLookAt (eye, target, up) {
+function MatrixLookAt(eye, target, up) {
return r.BindMatrixLookAt(
eye.x,
eye.y,
@@ -10344,7 +11030,7 @@ function MatrixLookAt (eye, target, up) {
}
raylib.MatrixLookAt = MatrixLookAt
-function QuaternionAdd (q1, q2) {
+function QuaternionAdd(q1, q2) {
return r.BindQuaternionAdd(
q1,
q2
@@ -10352,7 +11038,7 @@ function QuaternionAdd (q1, q2) {
}
raylib.QuaternionAdd = QuaternionAdd
-function QuaternionAddValue (q, add) {
+function QuaternionAddValue(q, add) {
return r.BindQuaternionAddValue(
q,
add
@@ -10360,7 +11046,7 @@ function QuaternionAddValue (q, add) {
}
raylib.QuaternionAddValue = QuaternionAddValue
-function QuaternionSubtract (q1, q2) {
+function QuaternionSubtract(q1, q2) {
return r.BindQuaternionSubtract(
q1,
q2
@@ -10368,7 +11054,7 @@ function QuaternionSubtract (q1, q2) {
}
raylib.QuaternionSubtract = QuaternionSubtract
-function QuaternionSubtractValue (q, sub) {
+function QuaternionSubtractValue(q, sub) {
return r.BindQuaternionSubtractValue(
q,
sub
@@ -10376,33 +11062,33 @@ function QuaternionSubtractValue (q, sub) {
}
raylib.QuaternionSubtractValue = QuaternionSubtractValue
-function QuaternionIdentity () {
+function QuaternionIdentity() {
return r.BindQuaternionIdentity()
}
raylib.QuaternionIdentity = QuaternionIdentity
-function QuaternionLength (q) {
+function QuaternionLength(q) {
return r.BindQuaternionLength(
q
)
}
raylib.QuaternionLength = QuaternionLength
-function QuaternionNormalize (q) {
+function QuaternionNormalize(q) {
return r.BindQuaternionNormalize(
q
)
}
raylib.QuaternionNormalize = QuaternionNormalize
-function QuaternionInvert (q) {
+function QuaternionInvert(q) {
return r.BindQuaternionInvert(
q
)
}
raylib.QuaternionInvert = QuaternionInvert
-function QuaternionMultiply (q1, q2) {
+function QuaternionMultiply(q1, q2) {
return r.BindQuaternionMultiply(
q1,
q2
@@ -10410,7 +11096,7 @@ function QuaternionMultiply (q1, q2) {
}
raylib.QuaternionMultiply = QuaternionMultiply
-function QuaternionScale (q, mul) {
+function QuaternionScale(q, mul) {
return r.BindQuaternionScale(
q,
mul
@@ -10418,7 +11104,7 @@ function QuaternionScale (q, mul) {
}
raylib.QuaternionScale = QuaternionScale
-function QuaternionDivide (q1, q2) {
+function QuaternionDivide(q1, q2) {
return r.BindQuaternionDivide(
q1,
q2
@@ -10426,7 +11112,7 @@ function QuaternionDivide (q1, q2) {
}
raylib.QuaternionDivide = QuaternionDivide
-function QuaternionLerp (q1, q2, amount) {
+function QuaternionLerp(q1, q2, amount) {
return r.BindQuaternionLerp(
q1,
q2,
@@ -10435,7 +11121,7 @@ function QuaternionLerp (q1, q2, amount) {
}
raylib.QuaternionLerp = QuaternionLerp
-function QuaternionNlerp (q1, q2, amount) {
+function QuaternionNlerp(q1, q2, amount) {
return r.BindQuaternionNlerp(
q1,
q2,
@@ -10444,7 +11130,7 @@ function QuaternionNlerp (q1, q2, amount) {
}
raylib.QuaternionNlerp = QuaternionNlerp
-function QuaternionSlerp (q1, q2, amount) {
+function QuaternionSlerp(q1, q2, amount) {
return r.BindQuaternionSlerp(
q1,
q2,
@@ -10453,7 +11139,7 @@ function QuaternionSlerp (q1, q2, amount) {
}
raylib.QuaternionSlerp = QuaternionSlerp
-function QuaternionFromVector3ToVector3 (from, to) {
+function QuaternionFromVector3ToVector3(from, to) {
return r.BindQuaternionFromVector3ToVector3(
from.x,
from.y,
@@ -10465,7 +11151,7 @@ function QuaternionFromVector3ToVector3 (from, to) {
}
raylib.QuaternionFromVector3ToVector3 = QuaternionFromVector3ToVector3
-function QuaternionFromMatrix (mat) {
+function QuaternionFromMatrix(mat) {
return r.BindQuaternionFromMatrix(
mat.m0,
mat.m4,
@@ -10487,14 +11173,14 @@ function QuaternionFromMatrix (mat) {
}
raylib.QuaternionFromMatrix = QuaternionFromMatrix
-function QuaternionToMatrix (q) {
+function QuaternionToMatrix(q) {
return r.BindQuaternionToMatrix(
q
)
}
raylib.QuaternionToMatrix = QuaternionToMatrix
-function QuaternionFromAxisAngle (axis, angle) {
+function QuaternionFromAxisAngle(axis, angle) {
return r.BindQuaternionFromAxisAngle(
axis.x,
axis.y,
@@ -10504,7 +11190,7 @@ function QuaternionFromAxisAngle (axis, angle) {
}
raylib.QuaternionFromAxisAngle = QuaternionFromAxisAngle
-function QuaternionToAxisAngle (q, outAxis, outAngle) {
+function QuaternionToAxisAngle(q, outAxis, outAngle) {
return r.BindQuaternionToAxisAngle(
q,
outAxis,
@@ -10513,7 +11199,7 @@ function QuaternionToAxisAngle (q, outAxis, outAngle) {
}
raylib.QuaternionToAxisAngle = QuaternionToAxisAngle
-function QuaternionFromEuler (pitch, yaw, roll) {
+function QuaternionFromEuler(pitch, yaw, roll) {
return r.BindQuaternionFromEuler(
pitch,
yaw,
@@ -10522,14 +11208,14 @@ function QuaternionFromEuler (pitch, yaw, roll) {
}
raylib.QuaternionFromEuler = QuaternionFromEuler
-function QuaternionToEuler (q) {
+function QuaternionToEuler(q) {
return r.BindQuaternionToEuler(
q
)
}
raylib.QuaternionToEuler = QuaternionToEuler
-function QuaternionTransform (q, mat) {
+function QuaternionTransform(q, mat) {
return r.BindQuaternionTransform(
q,
mat.m0,
@@ -10552,9643 +11238,6093 @@ function QuaternionTransform (q, mat) {
}
raylib.QuaternionTransform = QuaternionTransform
-function QuaternionEquals (p, q) {
+function QuaternionEquals(p, q) {
return r.BindQuaternionEquals(
p,
q
- )
-}
-raylib.QuaternionEquals = QuaternionEquals
-
-/**
- * Enable gui controls (global state)
- *
- * @return {undefined}
- */
-function GuiEnable () {
- return r.BindGuiEnable()
-}
-raylib.GuiEnable = GuiEnable
-
-/**
- * Disable gui controls (global state)
- *
- * @return {undefined}
- */
-function GuiDisable () {
- return r.BindGuiDisable()
-}
-raylib.GuiDisable = GuiDisable
-
-/**
- * Lock gui controls (global state)
- *
- * @return {undefined}
- */
-function GuiLock () {
- return r.BindGuiLock()
-}
-raylib.GuiLock = GuiLock
-
-/**
- * Unlock gui controls (global state)
- *
- * @return {undefined}
- */
-function GuiUnlock () {
- return r.BindGuiUnlock()
-}
-raylib.GuiUnlock = GuiUnlock
-
-/**
- * Check if gui is locked (global state)
- *
- * @return {boolean} The resulting bool.
- */
-function GuiIsLocked () {
- return r.BindGuiIsLocked()
-}
-raylib.GuiIsLocked = GuiIsLocked
-
-/**
- * Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
- *
- * @param {number} alpha
- *
- * @return {undefined}
- */
-function GuiFade (alpha) {
- return r.BindGuiFade(
- alpha
- )
-}
-raylib.GuiFade = GuiFade
-
-/**
- * Set gui state (global state)
- *
- * @param {number} state
- *
- * @return {undefined}
- */
-function GuiSetState (state) {
- return r.BindGuiSetState(
- state
- )
-}
-raylib.GuiSetState = GuiSetState
-
-/**
- * Get gui state (global state)
- *
- * @return {number} The resulting int.
- */
-function GuiGetState () {
- return r.BindGuiGetState()
-}
-raylib.GuiGetState = GuiGetState
-
-/**
- * Set gui custom font (global state)
- *
- * @param {Font} font
- *
- * @return {undefined}
- */
-function GuiSetFont (font) {
- return r.BindGuiSetFont(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs
- )
-}
-raylib.GuiSetFont = GuiSetFont
-
-/**
- * Get gui custom font (global state)
- *
- * @return {Font} The resulting Font.
- */
-function GuiGetFont () {
- return r.BindGuiGetFont()
-}
-raylib.GuiGetFont = GuiGetFont
-
-/**
- * Set one style property
- *
- * @param {number} control
- * @param {number} property
- * @param {number} value
- *
- * @return {undefined}
- */
-function GuiSetStyle (control, property, value) {
- return r.BindGuiSetStyle(
- control,
- property,
- value
- )
-}
-raylib.GuiSetStyle = GuiSetStyle
-
-/**
- * Get one style property
- *
- * @param {number} control
- * @param {number} property
- *
- * @return {number} The resulting int.
- */
-function GuiGetStyle (control, property) {
- return r.BindGuiGetStyle(
- control,
- property
- )
-}
-raylib.GuiGetStyle = GuiGetStyle
-
-/**
- * Window Box control, shows a window that can be closed
- *
- * @param {Rectangle} bounds
- * @param {string} title
- *
- * @return {boolean} The resulting bool.
- */
-function GuiWindowBox (bounds, title) {
- return r.BindGuiWindowBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- title
- )
-}
-raylib.GuiWindowBox = GuiWindowBox
-
-/**
- * Group Box control with text name
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiGroupBox (bounds, text) {
- return r.BindGuiGroupBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiGroupBox = GuiGroupBox
-
-/**
- * Line separator control, could contain text
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiLine (bounds, text) {
- return r.BindGuiLine(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiLine = GuiLine
-
-/**
- * Panel control, useful to group controls
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiPanel (bounds, text) {
- return r.BindGuiPanel(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiPanel = GuiPanel
-
-/**
- * Tab Bar control, returns TAB to be closed or -1
- *
- * @param {Rectangle} bounds
- * @param {number} text
- * @param {number} count
- * @param {number} active
- *
- * @return {number} The resulting int.
- */
-function GuiTabBar (bounds, text, count, active) {
- return r.BindGuiTabBar(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- count,
- active
- )
-}
-raylib.GuiTabBar = GuiTabBar
-
-/**
- * Scroll Panel control
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {Rectangle} content
- * @param {number} scroll
- *
- * @return {Rectangle} The resulting Rectangle.
- */
-function GuiScrollPanel (bounds, text, content, scroll) {
- return r.BindGuiScrollPanel(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- content.x,
- content.y,
- content.width,
- content.height,
- scroll
- )
-}
-raylib.GuiScrollPanel = GuiScrollPanel
-
-/**
- * Label control, shows text
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiLabel (bounds, text) {
- return r.BindGuiLabel(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiLabel = GuiLabel
-
-/**
- * Button control, returns true when clicked
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {boolean} The resulting bool.
- */
-function GuiButton (bounds, text) {
- return r.BindGuiButton(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiButton = GuiButton
-
-/**
- * Label button control, show true when clicked
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {boolean} The resulting bool.
- */
-function GuiLabelButton (bounds, text) {
- return r.BindGuiLabelButton(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiLabelButton = GuiLabelButton
-
-/**
- * Toggle Button control, returns true when active
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {boolean} active
- *
- * @return {boolean} The resulting bool.
- */
-function GuiToggle (bounds, text, active) {
- return r.BindGuiToggle(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- active
- )
-}
-raylib.GuiToggle = GuiToggle
-
-/**
- * Toggle Group control, returns active toggle index
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} active
- *
- * @return {number} The resulting int.
- */
-function GuiToggleGroup (bounds, text, active) {
- return r.BindGuiToggleGroup(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- active
- )
-}
-raylib.GuiToggleGroup = GuiToggleGroup
-
-/**
- * Check Box control, returns true when active
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {boolean} checked
- *
- * @return {boolean} The resulting bool.
- */
-function GuiCheckBox (bounds, text, checked) {
- return r.BindGuiCheckBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- checked
- )
-}
-raylib.GuiCheckBox = GuiCheckBox
-
-/**
- * Combo Box control, returns selected item index
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} active
- *
- * @return {number} The resulting int.
- */
-function GuiComboBox (bounds, text, active) {
- return r.BindGuiComboBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- active
- )
-}
-raylib.GuiComboBox = GuiComboBox
-
-/**
- * Dropdown Box control, returns selected item
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} active
- * @param {boolean} editMode
- *
- * @return {boolean} The resulting bool.
- */
-function GuiDropdownBox (bounds, text, active, editMode) {
- return r.BindGuiDropdownBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- active,
- editMode
- )
-}
-raylib.GuiDropdownBox = GuiDropdownBox
-
-/**
- * Spinner control, returns selected value
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} value
- * @param {number} minValue
- * @param {number} maxValue
- * @param {boolean} editMode
- *
- * @return {boolean} The resulting bool.
- */
-function GuiSpinner (bounds, text, value, minValue, maxValue, editMode) {
- return r.BindGuiSpinner(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- value,
- minValue,
- maxValue,
- editMode
- )
-}
-raylib.GuiSpinner = GuiSpinner
-
-/**
- * Value Box control, updates input text with numbers
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} value
- * @param {number} minValue
- * @param {number} maxValue
- * @param {boolean} editMode
- *
- * @return {boolean} The resulting bool.
- */
-function GuiValueBox (bounds, text, value, minValue, maxValue, editMode) {
- return r.BindGuiValueBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- value,
- minValue,
- maxValue,
- editMode
- )
-}
-raylib.GuiValueBox = GuiValueBox
-
-/**
- * Text Box control, updates input text
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} textSize
- * @param {boolean} editMode
- *
- * @return {boolean} The resulting bool.
- */
-function GuiTextBox (bounds, text, textSize, editMode) {
- return r.BindGuiTextBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- textSize,
- editMode
- )
-}
-raylib.GuiTextBox = GuiTextBox
-
-/**
- * Text Box control with multiple lines
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} textSize
- * @param {boolean} editMode
- *
- * @return {boolean} The resulting bool.
- */
-function GuiTextBoxMulti (bounds, text, textSize, editMode) {
- return r.BindGuiTextBoxMulti(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- textSize,
- editMode
- )
-}
-raylib.GuiTextBoxMulti = GuiTextBoxMulti
-
-/**
- * Slider control, returns selected value
- *
- * @param {Rectangle} bounds
- * @param {string} textLeft
- * @param {string} textRight
- * @param {number} value
- * @param {number} minValue
- * @param {number} maxValue
- *
- * @return {number} The resulting float.
- */
-function GuiSlider (bounds, textLeft, textRight, value, minValue, maxValue) {
- return r.BindGuiSlider(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- textLeft,
- textRight,
- value,
- minValue,
- maxValue
- )
-}
-raylib.GuiSlider = GuiSlider
-
-/**
- * Slider Bar control, returns selected value
- *
- * @param {Rectangle} bounds
- * @param {string} textLeft
- * @param {string} textRight
- * @param {number} value
- * @param {number} minValue
- * @param {number} maxValue
- *
- * @return {number} The resulting float.
- */
-function GuiSliderBar (bounds, textLeft, textRight, value, minValue, maxValue) {
- return r.BindGuiSliderBar(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- textLeft,
- textRight,
- value,
- minValue,
- maxValue
- )
-}
-raylib.GuiSliderBar = GuiSliderBar
-
-/**
- * Progress Bar control, shows current progress value
- *
- * @param {Rectangle} bounds
- * @param {string} textLeft
- * @param {string} textRight
- * @param {number} value
- * @param {number} minValue
- * @param {number} maxValue
- *
- * @return {number} The resulting float.
- */
-function GuiProgressBar (bounds, textLeft, textRight, value, minValue, maxValue) {
- return r.BindGuiProgressBar(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- textLeft,
- textRight,
- value,
- minValue,
- maxValue
- )
-}
-raylib.GuiProgressBar = GuiProgressBar
-
-/**
- * Status Bar control, shows info text
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiStatusBar (bounds, text) {
- return r.BindGuiStatusBar(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiStatusBar = GuiStatusBar
-
-/**
- * Dummy control for placeholders
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiDummyRec (bounds, text) {
- return r.BindGuiDummyRec(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiDummyRec = GuiDummyRec
-
-/**
- * Grid control, returns mouse cell position
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} spacing
- * @param {number} subdivs
- *
- * @return {Vector2} The resulting Vector2.
- */
-function GuiGrid (bounds, text, spacing, subdivs) {
- return r.BindGuiGrid(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- spacing,
- subdivs
- )
-}
-raylib.GuiGrid = GuiGrid
-
-/**
- * List View control, returns selected list item index
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} scrollIndex
- * @param {number} active
- *
- * @return {number} The resulting int.
- */
-function GuiListView (bounds, text, scrollIndex, active) {
- return r.BindGuiListView(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- scrollIndex,
- active
- )
-}
-raylib.GuiListView = GuiListView
-
-/**
- * List View with extended parameters
- *
- * @param {Rectangle} bounds
- * @param {number} text
- * @param {number} count
- * @param {number} focus
- * @param {number} scrollIndex
- * @param {number} active
- *
- * @return {number} The resulting int.
- */
-function GuiListViewEx (bounds, text, count, focus, scrollIndex, active) {
- return r.BindGuiListViewEx(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- count,
- focus,
- scrollIndex,
- active
- )
-}
-raylib.GuiListViewEx = GuiListViewEx
-
-/**
- * Message Box control, displays a message
- *
- * @param {Rectangle} bounds
- * @param {string} title
- * @param {string} message
- * @param {string} buttons
- *
- * @return {number} The resulting int.
- */
-function GuiMessageBox (bounds, title, message, buttons) {
- return r.BindGuiMessageBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- title,
- message,
- buttons
- )
-}
-raylib.GuiMessageBox = GuiMessageBox
-
-/**
- * Text Input Box control, ask for text, supports secret
- *
- * @param {Rectangle} bounds
- * @param {string} title
- * @param {string} message
- * @param {string} buttons
- * @param {string} text
- * @param {number} textMaxSize
- * @param {number} secretViewActive
- *
- * @return {number} The resulting int.
- */
-function GuiTextInputBox (bounds, title, message, buttons, text, textMaxSize, secretViewActive) {
- return r.BindGuiTextInputBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- title,
- message,
- buttons,
- text,
- textMaxSize,
- secretViewActive
- )
-}
-raylib.GuiTextInputBox = GuiTextInputBox
-
-/**
- * Color Picker control (multiple color controls)
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {Color} color
- *
- * @return {Color} The resulting Color.
- */
-function GuiColorPicker (bounds, text, color) {
- return r.BindGuiColorPicker(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- color.r,
- color.g,
- color.b,
- color.a
- )
-}
-raylib.GuiColorPicker = GuiColorPicker
-
-/**
- * Color Panel control
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {Color} color
- *
- * @return {Color} The resulting Color.
- */
-function GuiColorPanel (bounds, text, color) {
- return r.BindGuiColorPanel(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- color.r,
- color.g,
- color.b,
- color.a
- )
-}
-raylib.GuiColorPanel = GuiColorPanel
-
-/**
- * Color Bar Alpha control
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} alpha
- *
- * @return {number} The resulting float.
- */
-function GuiColorBarAlpha (bounds, text, alpha) {
- return r.BindGuiColorBarAlpha(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- alpha
- )
-}
-raylib.GuiColorBarAlpha = GuiColorBarAlpha
-
-/**
- * Color Bar Hue control
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} value
- *
- * @return {number} The resulting float.
- */
-function GuiColorBarHue (bounds, text, value) {
- return r.BindGuiColorBarHue(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- value
- )
-}
-raylib.GuiColorBarHue = GuiColorBarHue
-
-/**
- * Load style file over global style variable (.rgs)
- *
- * @param {string} fileName
- *
- * @return {undefined}
- */
-function GuiLoadStyle (fileName) {
- return r.BindGuiLoadStyle(
- fileName
- )
-}
-raylib.GuiLoadStyle = GuiLoadStyle
-
-/**
- * Load style default over global style
- *
- * @return {undefined}
- */
-function GuiLoadStyleDefault () {
- return r.BindGuiLoadStyleDefault()
-}
-raylib.GuiLoadStyleDefault = GuiLoadStyleDefault
-
-/**
- * Enable gui tooltips (global state)
- *
- * @return {undefined}
- */
-function GuiEnableTooltip () {
- return r.BindGuiEnableTooltip()
-}
-raylib.GuiEnableTooltip = GuiEnableTooltip
-
-/**
- * Disable gui tooltips (global state)
- *
- * @return {undefined}
- */
-function GuiDisableTooltip () {
- return r.BindGuiDisableTooltip()
-}
-raylib.GuiDisableTooltip = GuiDisableTooltip
-
-/**
- * Set tooltip string
- *
- * @param {string} tooltip
- *
- * @return {undefined}
- */
-function GuiSetTooltip (tooltip) {
- return r.BindGuiSetTooltip(
- tooltip
- )
-}
-raylib.GuiSetTooltip = GuiSetTooltip
-
-/**
- * Get text with icon id prepended (if supported)
- *
- * @param {number} iconId
- * @param {string} text
- *
- * @return {string} The resulting const char *.
- */
-function GuiIconText (iconId, text) {
- return r.BindGuiIconText(
- iconId,
- text
- )
-}
-raylib.GuiIconText = GuiIconText
-
-/**
- * Get raygui icons data pointer
- *
- * @return {number} The resulting unsigned int *.
- */
-function GuiGetIcons () {
- return r.BindGuiGetIcons()
-}
-raylib.GuiGetIcons = GuiGetIcons
-
-/**
- * Load raygui icons file (.rgi) into internal icons data
- *
- * @param {string} fileName
- * @param {boolean} loadIconsName
- *
- * @return {number} The resulting char **.
- */
-function GuiLoadIcons (fileName, loadIconsName) {
- return r.BindGuiLoadIcons(
- fileName,
- loadIconsName
- )
-}
-raylib.GuiLoadIcons = GuiLoadIcons
-
-function GuiDrawIcon (iconId, posX, posY, pixelSize, color) {
- return r.BindGuiDrawIcon(
- iconId,
- posX,
- posY,
- pixelSize,
- color.r,
- color.g,
- color.b,
- color.a
- )
-}
-raylib.GuiDrawIcon = GuiDrawIcon
-
-/**
- * Set icon drawing size
- *
- * @param {number} scale
- *
- * @return {undefined}
- */
-function GuiSetIconScale (scale) {
- return r.BindGuiSetIconScale(
- scale
- )
-}
-raylib.GuiSetIconScale = GuiSetIconScale
-
-/**
- * Choose the current matrix to be transformed
- *
- * @param {number} mode
- *
- * @return {undefined}
- */
-function rlMatrixMode (mode) {
- return r.BindrlMatrixMode(
- mode
- )
-}
-raylib.rlMatrixMode = rlMatrixMode
-
-/**
- * Push the current matrix to stack
- *
- * @return {undefined}
- */
-function rlPushMatrix () {
- return r.BindrlPushMatrix()
-}
-raylib.rlPushMatrix = rlPushMatrix
-
-/**
- * Pop latest inserted matrix from stack
- *
- * @return {undefined}
- */
-function rlPopMatrix () {
- return r.BindrlPopMatrix()
-}
-raylib.rlPopMatrix = rlPopMatrix
-
-/**
- * Reset current matrix to identity matrix
- *
- * @return {undefined}
- */
-function rlLoadIdentity () {
- return r.BindrlLoadIdentity()
-}
-raylib.rlLoadIdentity = rlLoadIdentity
-
-/**
- * Multiply the current matrix by a translation matrix
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlTranslatef (x, y, z) {
- return r.BindrlTranslatef(
- x,
- y,
- z
- )
-}
-raylib.rlTranslatef = rlTranslatef
-
-/**
- * Multiply the current matrix by a rotation matrix
- *
- * @param {number} angle
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlRotatef (angle, x, y, z) {
- return r.BindrlRotatef(
- angle,
- x,
- y,
- z
- )
-}
-raylib.rlRotatef = rlRotatef
-
-/**
- * Multiply the current matrix by a scaling matrix
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlScalef (x, y, z) {
- return r.BindrlScalef(
- x,
- y,
- z
- )
-}
-raylib.rlScalef = rlScalef
-
-/**
- * Multiply the current matrix by another matrix
- *
- * @param {number} matf
- *
- * @return {undefined}
- */
-function rlMultMatrixf (matf) {
- return r.BindrlMultMatrixf(
- matf
- )
-}
-raylib.rlMultMatrixf = rlMultMatrixf
-
-function rlFrustum (left, right, bottom, top, znear, zfar) {
- return r.BindrlFrustum(
- left,
- right,
- bottom,
- top,
- znear,
- zfar
- )
-}
-raylib.rlFrustum = rlFrustum
-
-function rlOrtho (left, right, bottom, top, znear, zfar) {
- return r.BindrlOrtho(
- left,
- right,
- bottom,
- top,
- znear,
- zfar
- )
-}
-raylib.rlOrtho = rlOrtho
-
-/**
- * Set the viewport area
- *
- * @param {number} x
- * @param {number} y
- * @param {number} width
- * @param {number} height
- *
- * @return {undefined}
- */
-function rlViewport (x, y, width, height) {
- return r.BindrlViewport(
- x,
- y,
- width,
- height
- )
-}
-raylib.rlViewport = rlViewport
-
-/**
- * Initialize drawing mode (how to organize vertex)
- *
- * @param {number} mode
- *
- * @return {undefined}
- */
-function rlBegin (mode) {
- return r.BindrlBegin(
- mode
- )
-}
-raylib.rlBegin = rlBegin
-
-/**
- * Finish vertex providing
- *
- * @return {undefined}
- */
-function rlEnd () {
- return r.BindrlEnd()
-}
-raylib.rlEnd = rlEnd
-
-/**
- * Define one vertex (position) - 2 int
- *
- * @param {number} x
- * @param {number} y
- *
- * @return {undefined}
- */
-function rlVertex2i (x, y) {
- return r.BindrlVertex2i(
- x,
- y
- )
-}
-raylib.rlVertex2i = rlVertex2i
-
-/**
- * Define one vertex (position) - 2 float
- *
- * @param {number} x
- * @param {number} y
- *
- * @return {undefined}
- */
-function rlVertex2f (x, y) {
- return r.BindrlVertex2f(
- x,
- y
- )
-}
-raylib.rlVertex2f = rlVertex2f
-
-/**
- * Define one vertex (position) - 3 float
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlVertex3f (x, y, z) {
- return r.BindrlVertex3f(
- x,
- y,
- z
- )
-}
-raylib.rlVertex3f = rlVertex3f
-
-/**
- * Define one vertex (texture coordinate) - 2 float
- *
- * @param {number} x
- * @param {number} y
- *
- * @return {undefined}
- */
-function rlTexCoord2f (x, y) {
- return r.BindrlTexCoord2f(
- x,
- y
- )
-}
-raylib.rlTexCoord2f = rlTexCoord2f
-
-/**
- * Define one vertex (normal) - 3 float
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlNormal3f (x, y, z) {
- return r.BindrlNormal3f(
- x,
- y,
- z
- )
-}
-raylib.rlNormal3f = rlNormal3f
-
-/**
- * Define one vertex (color) - 4 byte
- *
- * @param {number} r
- * @param {number} g
- * @param {number} b
- * @param {number} a
- *
- * @return {undefined}
- */
-function rlColor4ub (r, g, b, a) {
- return r.BindrlColor4ub(
- r,
- g,
- b,
- a
- )
-}
-raylib.rlColor4ub = rlColor4ub
-
-/**
- * Define one vertex (color) - 3 float
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlColor3f (x, y, z) {
- return r.BindrlColor3f(
- x,
- y,
- z
- )
-}
-raylib.rlColor3f = rlColor3f
-
-/**
- * Define one vertex (color) - 4 float
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- * @param {number} w
- *
- * @return {undefined}
- */
-function rlColor4f (x, y, z, w) {
- return r.BindrlColor4f(
- x,
- y,
- z,
- w
- )
-}
-raylib.rlColor4f = rlColor4f
-
-/**
- * Enable vertex array (VAO, if supported)
- *
- * @param {number} vaoId
- *
- * @return {boolean} The resulting bool.
- */
-function rlEnableVertexArray (vaoId) {
- return r.BindrlEnableVertexArray(
- vaoId
- )
-}
-raylib.rlEnableVertexArray = rlEnableVertexArray
-
-/**
- * Disable vertex array (VAO, if supported)
- *
- * @return {undefined}
- */
-function rlDisableVertexArray () {
- return r.BindrlDisableVertexArray()
-}
-raylib.rlDisableVertexArray = rlDisableVertexArray
-
-/**
- * Enable vertex buffer (VBO)
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableVertexBuffer (id) {
- return r.BindrlEnableVertexBuffer(
- id
- )
-}
-raylib.rlEnableVertexBuffer = rlEnableVertexBuffer
-
-/**
- * Disable vertex buffer (VBO)
- *
- * @return {undefined}
- */
-function rlDisableVertexBuffer () {
- return r.BindrlDisableVertexBuffer()
-}
-raylib.rlDisableVertexBuffer = rlDisableVertexBuffer
-
-/**
- * Enable vertex buffer element (VBO element)
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableVertexBufferElement (id) {
- return r.BindrlEnableVertexBufferElement(
- id
- )
-}
-raylib.rlEnableVertexBufferElement = rlEnableVertexBufferElement
-
-/**
- * Disable vertex buffer element (VBO element)
- *
- * @return {undefined}
- */
-function rlDisableVertexBufferElement () {
- return r.BindrlDisableVertexBufferElement()
-}
-raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement
-
-/**
- * Enable vertex attribute index
- *
- * @param {number} index
- *
- * @return {undefined}
- */
-function rlEnableVertexAttribute (index) {
- return r.BindrlEnableVertexAttribute(
- index
- )
-}
-raylib.rlEnableVertexAttribute = rlEnableVertexAttribute
-
-/**
- * Disable vertex attribute index
- *
- * @param {number} index
- *
- * @return {undefined}
- */
-function rlDisableVertexAttribute (index) {
- return r.BindrlDisableVertexAttribute(
- index
- )
-}
-raylib.rlDisableVertexAttribute = rlDisableVertexAttribute
-
-/**
- * Select and active a texture slot
- *
- * @param {number} slot
- *
- * @return {undefined}
- */
-function rlActiveTextureSlot (slot) {
- return r.BindrlActiveTextureSlot(
- slot
- )
-}
-raylib.rlActiveTextureSlot = rlActiveTextureSlot
-
-/**
- * Enable texture
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableTexture (id) {
- return r.BindrlEnableTexture(
- id
- )
-}
-raylib.rlEnableTexture = rlEnableTexture
-
-/**
- * Disable texture
- *
- * @return {undefined}
- */
-function rlDisableTexture () {
- return r.BindrlDisableTexture()
-}
-raylib.rlDisableTexture = rlDisableTexture
-
-/**
- * Enable texture cubemap
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableTextureCubemap (id) {
- return r.BindrlEnableTextureCubemap(
- id
- )
-}
-raylib.rlEnableTextureCubemap = rlEnableTextureCubemap
-
-/**
- * Disable texture cubemap
- *
- * @return {undefined}
- */
-function rlDisableTextureCubemap () {
- return r.BindrlDisableTextureCubemap()
-}
-raylib.rlDisableTextureCubemap = rlDisableTextureCubemap
-
-/**
- * Set texture parameters (filter, wrap)
- *
- * @param {number} id
- * @param {number} param
- * @param {number} value
- *
- * @return {undefined}
- */
-function rlTextureParameters (id, param, value) {
- return r.BindrlTextureParameters(
- id,
- param,
- value
- )
-}
-raylib.rlTextureParameters = rlTextureParameters
-
-/**
- * Set cubemap parameters (filter, wrap)
- *
- * @param {number} id
- * @param {number} param
- * @param {number} value
- *
- * @return {undefined}
- */
-function rlCubemapParameters (id, param, value) {
- return r.BindrlCubemapParameters(
- id,
- param,
- value
- )
-}
-raylib.rlCubemapParameters = rlCubemapParameters
-
-/**
- * Enable shader program
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableShader (id) {
- return r.BindrlEnableShader(
- id
- )
-}
-raylib.rlEnableShader = rlEnableShader
-
-/**
- * Disable shader program
- *
- * @return {undefined}
- */
-function rlDisableShader () {
- return r.BindrlDisableShader()
-}
-raylib.rlDisableShader = rlDisableShader
-
-/**
- * Enable render texture (fbo)
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableFramebuffer (id) {
- return r.BindrlEnableFramebuffer(
- id
- )
-}
-raylib.rlEnableFramebuffer = rlEnableFramebuffer
-
-/**
- * Disable render texture (fbo), return to default framebuffer
- *
- * @return {undefined}
- */
-function rlDisableFramebuffer () {
- return r.BindrlDisableFramebuffer()
-}
-raylib.rlDisableFramebuffer = rlDisableFramebuffer
-
-/**
- * Activate multiple draw color buffers
- *
- * @param {number} count
- *
- * @return {undefined}
- */
-function rlActiveDrawBuffers (count) {
- return r.BindrlActiveDrawBuffers(
- count
- )
-}
-raylib.rlActiveDrawBuffers = rlActiveDrawBuffers
-
-/**
- * Enable color blending
- *
- * @return {undefined}
- */
-function rlEnableColorBlend () {
- return r.BindrlEnableColorBlend()
-}
-raylib.rlEnableColorBlend = rlEnableColorBlend
-
-/**
- * Disable color blending
- *
- * @return {undefined}
- */
-function rlDisableColorBlend () {
- return r.BindrlDisableColorBlend()
-}
-raylib.rlDisableColorBlend = rlDisableColorBlend
-
-/**
- * Enable depth test
- *
- * @return {undefined}
- */
-function rlEnableDepthTest () {
- return r.BindrlEnableDepthTest()
-}
-raylib.rlEnableDepthTest = rlEnableDepthTest
-
-/**
- * Disable depth test
- *
- * @return {undefined}
- */
-function rlDisableDepthTest () {
- return r.BindrlDisableDepthTest()
-}
-raylib.rlDisableDepthTest = rlDisableDepthTest
-
-/**
- * Enable depth write
- *
- * @return {undefined}
- */
-function rlEnableDepthMask () {
- return r.BindrlEnableDepthMask()
-}
-raylib.rlEnableDepthMask = rlEnableDepthMask
-
-/**
- * Disable depth write
- *
- * @return {undefined}
- */
-function rlDisableDepthMask () {
- return r.BindrlDisableDepthMask()
-}
-raylib.rlDisableDepthMask = rlDisableDepthMask
-
-/**
- * Enable backface culling
- *
- * @return {undefined}
- */
-function rlEnableBackfaceCulling () {
- return r.BindrlEnableBackfaceCulling()
-}
-raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling
-
-/**
- * Disable backface culling
- *
- * @return {undefined}
- */
-function rlDisableBackfaceCulling () {
- return r.BindrlDisableBackfaceCulling()
-}
-raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling
-
-/**
- * Set face culling mode
- *
- * @param {number} mode
- *
- * @return {undefined}
- */
-function rlSetCullFace (mode) {
- return r.BindrlSetCullFace(
- mode
- )
-}
-raylib.rlSetCullFace = rlSetCullFace
-
-/**
- * Enable scissor test
- *
- * @return {undefined}
- */
-function rlEnableScissorTest () {
- return r.BindrlEnableScissorTest()
-}
-raylib.rlEnableScissorTest = rlEnableScissorTest
-
-/**
- * Disable scissor test
- *
- * @return {undefined}
- */
-function rlDisableScissorTest () {
- return r.BindrlDisableScissorTest()
-}
-raylib.rlDisableScissorTest = rlDisableScissorTest
-
-/**
- * Scissor test
- *
- * @param {number} x
- * @param {number} y
- * @param {number} width
- * @param {number} height
- *
- * @return {undefined}
- */
-function rlScissor (x, y, width, height) {
- return r.BindrlScissor(
- x,
- y,
- width,
- height
- )
-}
-raylib.rlScissor = rlScissor
-
-/**
- * Enable wire mode
- *
- * @return {undefined}
- */
-function rlEnableWireMode () {
- return r.BindrlEnableWireMode()
-}
-raylib.rlEnableWireMode = rlEnableWireMode
-
-/**
- * Disable wire mode
- *
- * @return {undefined}
- */
-function rlDisableWireMode () {
- return r.BindrlDisableWireMode()
-}
-raylib.rlDisableWireMode = rlDisableWireMode
-
-/**
- * Set the line drawing width
- *
- * @param {number} width
- *
- * @return {undefined}
- */
-function rlSetLineWidth (width) {
- return r.BindrlSetLineWidth(
- width
- )
-}
-raylib.rlSetLineWidth = rlSetLineWidth
-
-/**
- * Get the line drawing width
- *
- * @return {number} The resulting float.
- */
-function rlGetLineWidth () {
- return r.BindrlGetLineWidth()
-}
-raylib.rlGetLineWidth = rlGetLineWidth
-
-/**
- * Enable line aliasing
- *
- * @return {undefined}
- */
-function rlEnableSmoothLines () {
- return r.BindrlEnableSmoothLines()
-}
-raylib.rlEnableSmoothLines = rlEnableSmoothLines
-
-/**
- * Disable line aliasing
- *
- * @return {undefined}
- */
-function rlDisableSmoothLines () {
- return r.BindrlDisableSmoothLines()
-}
-raylib.rlDisableSmoothLines = rlDisableSmoothLines
-
-/**
- * Enable stereo rendering
- *
- * @return {undefined}
- */
-function rlEnableStereoRender () {
- return r.BindrlEnableStereoRender()
-}
-raylib.rlEnableStereoRender = rlEnableStereoRender
-
-/**
- * Disable stereo rendering
- *
- * @return {undefined}
- */
-function rlDisableStereoRender () {
- return r.BindrlDisableStereoRender()
-}
-raylib.rlDisableStereoRender = rlDisableStereoRender
-
-/**
- * Check if stereo render is enabled
- *
- * @return {boolean} The resulting bool.
- */
-function rlIsStereoRenderEnabled () {
- return r.BindrlIsStereoRenderEnabled()
-}
-raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled
-
-/**
- * Clear color buffer with color
- *
- * @param {number} r
- * @param {number} g
- * @param {number} b
- * @param {number} a
- *
- * @return {undefined}
- */
-function rlClearColor (r, g, b, a) {
- return r.BindrlClearColor(
- r,
- g,
- b,
- a
- )
-}
-raylib.rlClearColor = rlClearColor
-
-/**
- * Clear used screen buffers (color and depth)
- *
- * @return {undefined}
- */
-function rlClearScreenBuffers () {
- return r.BindrlClearScreenBuffers()
-}
-raylib.rlClearScreenBuffers = rlClearScreenBuffers
-
-/**
- * Check and log OpenGL error codes
- *
- * @return {undefined}
- */
-function rlCheckErrors () {
- return r.BindrlCheckErrors()
-}
-raylib.rlCheckErrors = rlCheckErrors
-
-/**
- * Set blending mode
- *
- * @param {number} mode
- *
- * @return {undefined}
- */
-function rlSetBlendMode (mode) {
- return r.BindrlSetBlendMode(
- mode
- )
-}
-raylib.rlSetBlendMode = rlSetBlendMode
-
-/**
- * Set blending mode factor and equation (using OpenGL factors)
- *
- * @param {number} glSrcFactor
- * @param {number} glDstFactor
- * @param {number} glEquation
- *
- * @return {undefined}
- */
-function rlSetBlendFactors (glSrcFactor, glDstFactor, glEquation) {
- return r.BindrlSetBlendFactors(
- glSrcFactor,
- glDstFactor,
- glEquation
- )
-}
-raylib.rlSetBlendFactors = rlSetBlendFactors
-
-/**
- * Set blending mode factors and equations separately (using OpenGL factors)
- *
- * @param {number} glSrcRGB
- * @param {number} glDstRGB
- * @param {number} glSrcAlpha
- * @param {number} glDstAlpha
- * @param {number} glEqRGB
- * @param {number} glEqAlpha
- *
- * @return {undefined}
- */
-function rlSetBlendFactorsSeparate (glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) {
- return r.BindrlSetBlendFactorsSeparate(
- glSrcRGB,
- glDstRGB,
- glSrcAlpha,
- glDstAlpha,
- glEqRGB,
- glEqAlpha
- )
-}
-raylib.rlSetBlendFactorsSeparate = rlSetBlendFactorsSeparate
-
-/**
- * Initialize rlgl (buffers, shaders, textures, states)
- *
- * @param {number} width
- * @param {number} height
- *
- * @return {undefined}
- */
-function rlglInit (width, height) {
- return r.BindrlglInit(
- width,
- height
- )
-}
-raylib.rlglInit = rlglInit
-
-/**
- * De-initialize rlgl (buffers, shaders, textures)
- *
- * @return {undefined}
- */
-function rlglClose () {
- return r.BindrlglClose()
-}
-raylib.rlglClose = rlglClose
-
-/**
- * Load OpenGL extensions (loader function required)
- *
- * @param {number} loader
- *
- * @return {undefined}
- */
-function rlLoadExtensions (loader) {
- return r.BindrlLoadExtensions(
- loader
- )
-}
-raylib.rlLoadExtensions = rlLoadExtensions
-
-/**
- * Get current OpenGL version
- *
- * @return {number} The resulting int.
- */
-function rlGetVersion () {
- return r.BindrlGetVersion()
-}
-raylib.rlGetVersion = rlGetVersion
-
-/**
- * Set current framebuffer width
- *
- * @param {number} width
- *
- * @return {undefined}
- */
-function rlSetFramebufferWidth (width) {
- return r.BindrlSetFramebufferWidth(
- width
- )
-}
-raylib.rlSetFramebufferWidth = rlSetFramebufferWidth
-
-/**
- * Get default framebuffer width
- *
- * @return {number} The resulting int.
- */
-function rlGetFramebufferWidth () {
- return r.BindrlGetFramebufferWidth()
-}
-raylib.rlGetFramebufferWidth = rlGetFramebufferWidth
-
-/**
- * Set current framebuffer height
- *
- * @param {number} height
- *
- * @return {undefined}
- */
-function rlSetFramebufferHeight (height) {
- return r.BindrlSetFramebufferHeight(
- height
- )
-}
-raylib.rlSetFramebufferHeight = rlSetFramebufferHeight
-
-/**
- * Get default framebuffer height
- *
- * @return {number} The resulting int.
- */
-function rlGetFramebufferHeight () {
- return r.BindrlGetFramebufferHeight()
-}
-raylib.rlGetFramebufferHeight = rlGetFramebufferHeight
-
-/**
- * Get default texture id
- *
- * @return {number} The resulting unsigned int.
- */
-function rlGetTextureIdDefault () {
- return r.BindrlGetTextureIdDefault()
-}
-raylib.rlGetTextureIdDefault = rlGetTextureIdDefault
-
-/**
- * Get default shader id
- *
- * @return {number} The resulting unsigned int.
- */
-function rlGetShaderIdDefault () {
- return r.BindrlGetShaderIdDefault()
-}
-raylib.rlGetShaderIdDefault = rlGetShaderIdDefault
-
-/**
- * Get default shader locations
- *
- * @return {number} The resulting int *.
- */
-function rlGetShaderLocsDefault () {
- return r.BindrlGetShaderLocsDefault()
-}
-raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault
-
-/**
- * Load a render batch system
- *
- * @param {number} numBuffers
- * @param {number} bufferElements
- *
- * @return {rlRenderBatch} The resulting rlRenderBatch.
- */
-function rlLoadRenderBatch (numBuffers, bufferElements) {
- return r.BindrlLoadRenderBatch(
- numBuffers,
- bufferElements
- )
-}
-raylib.rlLoadRenderBatch = rlLoadRenderBatch
-
-/**
- * Unload render batch system
- *
- * @param {rlRenderBatch} batch
- *
- * @return {undefined}
- */
-function rlUnloadRenderBatch (batch) {
- return r.BindrlUnloadRenderBatch(
- batch.bufferCount,
- batch.currentBuffer,
- batch.vertexBuffer,
- batch.draws,
- batch.drawCounter,
- batch.currentDepth
- )
-}
-raylib.rlUnloadRenderBatch = rlUnloadRenderBatch
-
-/**
- * Draw render batch data (Update->Draw->Reset)
- *
- * @param {number} batch
- *
- * @return {undefined}
- */
-function rlDrawRenderBatch (batch) {
- return r.BindrlDrawRenderBatch(
- batch
- )
-}
-raylib.rlDrawRenderBatch = rlDrawRenderBatch
-
-/**
- * Set the active render batch for rlgl (NULL for default internal)
- *
- * @param {number} batch
- *
- * @return {undefined}
- */
-function rlSetRenderBatchActive (batch) {
- return r.BindrlSetRenderBatchActive(
- batch
- )
-}
-raylib.rlSetRenderBatchActive = rlSetRenderBatchActive
-
-/**
- * Update and draw internal render batch
- *
- * @return {undefined}
- */
-function rlDrawRenderBatchActive () {
- return r.BindrlDrawRenderBatchActive()
-}
-raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive
-
-/**
- * Check internal buffer overflow for a given number of vertex
- *
- * @param {number} vCount
- *
- * @return {boolean} The resulting bool.
- */
-function rlCheckRenderBatchLimit (vCount) {
- return r.BindrlCheckRenderBatchLimit(
- vCount
- )
-}
-raylib.rlCheckRenderBatchLimit = rlCheckRenderBatchLimit
-
-/**
- * Set current texture for render batch and check buffers limits
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlSetTexture (id) {
- return r.BindrlSetTexture(
- id
- )
-}
-raylib.rlSetTexture = rlSetTexture
-
-/**
- * Load vertex array (vao) if supported
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadVertexArray () {
- return r.BindrlLoadVertexArray()
-}
-raylib.rlLoadVertexArray = rlLoadVertexArray
-
-/**
- * Load a vertex buffer attribute
- *
- * @param {number} buffer
- * @param {number} size
- * @param {boolean} dynamic
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadVertexBuffer (buffer, size, dynamic) {
- return r.BindrlLoadVertexBuffer(
- buffer,
- size,
- dynamic
- )
-}
-raylib.rlLoadVertexBuffer = rlLoadVertexBuffer
-
-/**
- * Load a new attributes element buffer
- *
- * @param {number} buffer
- * @param {number} size
- * @param {boolean} dynamic
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadVertexBufferElement (buffer, size, dynamic) {
- return r.BindrlLoadVertexBufferElement(
- buffer,
- size,
- dynamic
- )
-}
-raylib.rlLoadVertexBufferElement = rlLoadVertexBufferElement
-
-/**
- * Update GPU buffer with new data
- *
- * @param {number} bufferId
- * @param {number} data
- * @param {number} dataSize
- * @param {number} offset
- *
- * @return {undefined}
- */
-function rlUpdateVertexBuffer (bufferId, data, dataSize, offset) {
- return r.BindrlUpdateVertexBuffer(
- bufferId,
- data,
- dataSize,
- offset
- )
-}
-raylib.rlUpdateVertexBuffer = rlUpdateVertexBuffer
-
-/**
- * Update vertex buffer elements with new data
- *
- * @param {number} id
- * @param {number} data
- * @param {number} dataSize
- * @param {number} offset
- *
- * @return {undefined}
- */
-function rlUpdateVertexBufferElements (id, data, dataSize, offset) {
- return r.BindrlUpdateVertexBufferElements(
- id,
- data,
- dataSize,
- offset
- )
-}
-raylib.rlUpdateVertexBufferElements = rlUpdateVertexBufferElements
-
-function rlUnloadVertexArray (vaoId) {
- return r.BindrlUnloadVertexArray(
- vaoId
- )
-}
-raylib.rlUnloadVertexArray = rlUnloadVertexArray
-
-function rlUnloadVertexBuffer (vboId) {
- return r.BindrlUnloadVertexBuffer(
- vboId
- )
-}
-raylib.rlUnloadVertexBuffer = rlUnloadVertexBuffer
-
-function rlSetVertexAttribute (index, compSize, type, normalized, stride, pointer) {
- return r.BindrlSetVertexAttribute(
- index,
- compSize,
- type,
- normalized,
- stride,
- pointer
- )
-}
-raylib.rlSetVertexAttribute = rlSetVertexAttribute
-
-function rlSetVertexAttributeDivisor (index, divisor) {
- return r.BindrlSetVertexAttributeDivisor(
- index,
- divisor
- )
-}
-raylib.rlSetVertexAttributeDivisor = rlSetVertexAttributeDivisor
-
-/**
- * Set vertex attribute default value
- *
- * @param {number} locIndex
- * @param {number} value
- * @param {number} attribType
- * @param {number} count
- *
- * @return {undefined}
- */
-function rlSetVertexAttributeDefault (locIndex, value, attribType, count) {
- return r.BindrlSetVertexAttributeDefault(
- locIndex,
- value,
- attribType,
- count
- )
-}
-raylib.rlSetVertexAttributeDefault = rlSetVertexAttributeDefault
-
-function rlDrawVertexArray (offset, count) {
- return r.BindrlDrawVertexArray(
- offset,
- count
- )
-}
-raylib.rlDrawVertexArray = rlDrawVertexArray
-
-function rlDrawVertexArrayElements (offset, count, buffer) {
- return r.BindrlDrawVertexArrayElements(
- offset,
- count,
- buffer
- )
-}
-raylib.rlDrawVertexArrayElements = rlDrawVertexArrayElements
-
-function rlDrawVertexArrayInstanced (offset, count, instances) {
- return r.BindrlDrawVertexArrayInstanced(
- offset,
- count,
- instances
- )
-}
-raylib.rlDrawVertexArrayInstanced = rlDrawVertexArrayInstanced
-
-function rlDrawVertexArrayElementsInstanced (offset, count, buffer, instances) {
- return r.BindrlDrawVertexArrayElementsInstanced(
- offset,
- count,
- buffer,
- instances
- )
-}
-raylib.rlDrawVertexArrayElementsInstanced = rlDrawVertexArrayElementsInstanced
-
-/**
- * Load texture in GPU
- *
- * @param {number} data
- * @param {number} width
- * @param {number} height
- * @param {number} format
- * @param {number} mipmapCount
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadTexture (data, width, height, format, mipmapCount) {
- return r.BindrlLoadTexture(
- data,
- width,
- height,
- format,
- mipmapCount
- )
-}
-raylib.rlLoadTexture = rlLoadTexture
-
-/**
- * Load depth texture/renderbuffer (to be attached to fbo)
- *
- * @param {number} width
- * @param {number} height
- * @param {boolean} useRenderBuffer
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadTextureDepth (width, height, useRenderBuffer) {
- return r.BindrlLoadTextureDepth(
- width,
- height,
- useRenderBuffer
- )
-}
-raylib.rlLoadTextureDepth = rlLoadTextureDepth
-
-/**
- * Load texture cubemap
- *
- * @param {number} data
- * @param {number} size
- * @param {number} format
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadTextureCubemap (data, size, format) {
- return r.BindrlLoadTextureCubemap(
- data,
- size,
- format
- )
-}
-raylib.rlLoadTextureCubemap = rlLoadTextureCubemap
-
-/**
- * Update GPU texture with new data
- *
- * @param {number} id
- * @param {number} offsetX
- * @param {number} offsetY
- * @param {number} width
- * @param {number} height
- * @param {number} format
- * @param {number} data
- *
- * @return {undefined}
- */
-function rlUpdateTexture (id, offsetX, offsetY, width, height, format, data) {
- return r.BindrlUpdateTexture(
- id,
- offsetX,
- offsetY,
- width,
- height,
- format,
- data
- )
-}
-raylib.rlUpdateTexture = rlUpdateTexture
-
-/**
- * Get OpenGL internal formats
- *
- * @param {number} format
- * @param {number} glInternalFormat
- * @param {number} glFormat
- * @param {number} glType
- *
- * @return {undefined}
- */
-function rlGetGlTextureFormats (format, glInternalFormat, glFormat, glType) {
- return r.BindrlGetGlTextureFormats(
- format,
- glInternalFormat,
- glFormat,
- glType
- )
-}
-raylib.rlGetGlTextureFormats = rlGetGlTextureFormats
-
-/**
- * Get name string for pixel format
- *
- * @param {number} format
- *
- * @return {string} The resulting const char *.
- */
-function rlGetPixelFormatName (format) {
- return r.BindrlGetPixelFormatName(
- format
- )
-}
-raylib.rlGetPixelFormatName = rlGetPixelFormatName
-
-/**
- * Unload texture from GPU memory
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlUnloadTexture (id) {
- return r.BindrlUnloadTexture(
- id
- )
-}
-raylib.rlUnloadTexture = rlUnloadTexture
-
-/**
- * Generate mipmap data for selected texture
- *
- * @param {number} id
- * @param {number} width
- * @param {number} height
- * @param {number} format
- * @param {number} mipmaps
- *
- * @return {undefined}
- */
-function rlGenTextureMipmaps (id, width, height, format, mipmaps) {
- return r.BindrlGenTextureMipmaps(
- id,
- width,
- height,
- format,
- mipmaps
- )
-}
-raylib.rlGenTextureMipmaps = rlGenTextureMipmaps
-
-/**
- * Read texture pixel data
- *
- * @param {number} id
- * @param {number} width
- * @param {number} height
- * @param {number} format
- *
- * @return {number} The resulting void *.
- */
-function rlReadTexturePixels (id, width, height, format) {
- return r.BindrlReadTexturePixels(
- id,
- width,
- height,
- format
- )
-}
-raylib.rlReadTexturePixels = rlReadTexturePixels
-
-/**
- * Read screen pixel data (color buffer)
- *
- * @param {number} width
- * @param {number} height
- *
- * @return {Buffer} The resulting unsigned char *.
- */
-function rlReadScreenPixels (width, height) {
- return r.BindrlReadScreenPixels(
- width,
- height
- )
-}
-raylib.rlReadScreenPixels = rlReadScreenPixels
-
-/**
- * Load an empty framebuffer
- *
- * @param {number} width
- * @param {number} height
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadFramebuffer (width, height) {
- return r.BindrlLoadFramebuffer(
- width,
- height
- )
-}
-raylib.rlLoadFramebuffer = rlLoadFramebuffer
-
-/**
- * Attach texture/renderbuffer to a framebuffer
- *
- * @param {number} fboId
- * @param {number} texId
- * @param {number} attachType
- * @param {number} texType
- * @param {number} mipLevel
- *
- * @return {undefined}
- */
-function rlFramebufferAttach (fboId, texId, attachType, texType, mipLevel) {
- return r.BindrlFramebufferAttach(
- fboId,
- texId,
- attachType,
- texType,
- mipLevel
- )
-}
-raylib.rlFramebufferAttach = rlFramebufferAttach
-
-/**
- * Verify framebuffer is complete
- *
- * @param {number} id
- *
- * @return {boolean} The resulting bool.
- */
-function rlFramebufferComplete (id) {
- return r.BindrlFramebufferComplete(
- id
- )
-}
-raylib.rlFramebufferComplete = rlFramebufferComplete
-
-/**
- * Delete framebuffer from GPU
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlUnloadFramebuffer (id) {
- return r.BindrlUnloadFramebuffer(
- id
- )
-}
-raylib.rlUnloadFramebuffer = rlUnloadFramebuffer
-
-/**
- * Load shader from code strings
- *
- * @param {string} vsCode
- * @param {string} fsCode
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadShaderCode (vsCode, fsCode) {
- return r.BindrlLoadShaderCode(
- vsCode,
- fsCode
- )
-}
-raylib.rlLoadShaderCode = rlLoadShaderCode
-
-/**
- * Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)
- *
- * @param {string} shaderCode
- * @param {number} type
- *
- * @return {number} The resulting unsigned int.
- */
-function rlCompileShader (shaderCode, type) {
- return r.BindrlCompileShader(
- shaderCode,
- type
- )
-}
-raylib.rlCompileShader = rlCompileShader
-
-/**
- * Load custom shader program
- *
- * @param {number} vShaderId
- * @param {number} fShaderId
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadShaderProgram (vShaderId, fShaderId) {
- return r.BindrlLoadShaderProgram(
- vShaderId,
- fShaderId
- )
-}
-raylib.rlLoadShaderProgram = rlLoadShaderProgram
-
-/**
- * Unload shader program
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlUnloadShaderProgram (id) {
- return r.BindrlUnloadShaderProgram(
- id
- )
-}
-raylib.rlUnloadShaderProgram = rlUnloadShaderProgram
-
-/**
- * Get shader location uniform
- *
- * @param {number} shaderId
- * @param {string} uniformName
- *
- * @return {number} The resulting int.
- */
-function rlGetLocationUniform (shaderId, uniformName) {
- return r.BindrlGetLocationUniform(
- shaderId,
- uniformName
- )
-}
-raylib.rlGetLocationUniform = rlGetLocationUniform
-
-/**
- * Get shader location attribute
- *
- * @param {number} shaderId
- * @param {string} attribName
- *
- * @return {number} The resulting int.
- */
-function rlGetLocationAttrib (shaderId, attribName) {
- return r.BindrlGetLocationAttrib(
- shaderId,
- attribName
- )
-}
-raylib.rlGetLocationAttrib = rlGetLocationAttrib
-
-/**
- * Set shader value uniform
- *
- * @param {number} locIndex
- * @param {number} value
- * @param {number} uniformType
- * @param {number} count
- *
- * @return {undefined}
- */
-function rlSetUniform (locIndex, value, uniformType, count) {
- return r.BindrlSetUniform(
- locIndex,
- value,
- uniformType,
- count
- )
-}
-raylib.rlSetUniform = rlSetUniform
-
-/**
- * Set shader value matrix
- *
- * @param {number} locIndex
- * @param {Matrix} mat
- *
- * @return {undefined}
- */
-function rlSetUniformMatrix (locIndex, mat) {
- return r.BindrlSetUniformMatrix(
- locIndex,
- mat.m0,
- mat.m4,
- mat.m8,
- mat.m12,
- mat.m1,
- mat.m5,
- mat.m9,
- mat.m13,
- mat.m2,
- mat.m6,
- mat.m10,
- mat.m14,
- mat.m3,
- mat.m7,
- mat.m11,
- mat.m15
- )
-}
-raylib.rlSetUniformMatrix = rlSetUniformMatrix
-
-/**
- * Set shader value sampler
- *
- * @param {number} locIndex
- * @param {number} textureId
- *
- * @return {undefined}
- */
-function rlSetUniformSampler (locIndex, textureId) {
- return r.BindrlSetUniformSampler(
- locIndex,
- textureId
- )
-}
-raylib.rlSetUniformSampler = rlSetUniformSampler
-
-/**
- * Set shader currently active (id and locations)
- *
- * @param {number} id
- * @param {number} locs
- *
- * @return {undefined}
- */
-function rlSetShader (id, locs) {
- return r.BindrlSetShader(
- id,
- locs
- )
-}
-raylib.rlSetShader = rlSetShader
-
-/**
- * Load compute shader program
- *
- * @param {number} shaderId
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadComputeShaderProgram (shaderId) {
- return r.BindrlLoadComputeShaderProgram(
- shaderId
- )
-}
-raylib.rlLoadComputeShaderProgram = rlLoadComputeShaderProgram
-
-/**
- * Dispatch compute shader (equivalent to *draw* for graphics pipeline)
- *
- * @param {number} groupX
- * @param {number} groupY
- * @param {number} groupZ
- *
- * @return {undefined}
- */
-function rlComputeShaderDispatch (groupX, groupY, groupZ) {
- return r.BindrlComputeShaderDispatch(
- groupX,
- groupY,
- groupZ
- )
-}
-raylib.rlComputeShaderDispatch = rlComputeShaderDispatch
-
-/**
- * Load shader storage buffer object (SSBO)
- *
- * @param {number} size
- * @param {number} data
- * @param {number} usageHint
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadShaderBuffer (size, data, usageHint) {
- return r.BindrlLoadShaderBuffer(
- size,
- data,
- usageHint
- )
-}
-raylib.rlLoadShaderBuffer = rlLoadShaderBuffer
-
-/**
- * Unload shader storage buffer object (SSBO)
- *
- * @param {number} ssboId
- *
- * @return {undefined}
- */
-function rlUnloadShaderBuffer (ssboId) {
- return r.BindrlUnloadShaderBuffer(
- ssboId
- )
-}
-raylib.rlUnloadShaderBuffer = rlUnloadShaderBuffer
-
-/**
- * Update SSBO buffer data
- *
- * @param {number} id
- * @param {number} data
- * @param {number} dataSize
- * @param {number} offset
- *
- * @return {undefined}
- */
-function rlUpdateShaderBuffer (id, data, dataSize, offset) {
- return r.BindrlUpdateShaderBuffer(
- id,
- data,
- dataSize,
- offset
- )
-}
-raylib.rlUpdateShaderBuffer = rlUpdateShaderBuffer
-
-/**
- * Bind SSBO buffer
- *
- * @param {number} id
- * @param {number} index
- *
- * @return {undefined}
- */
-function rlBindShaderBuffer (id, index) {
- return r.BindrlBindShaderBuffer(
- id,
- index
- )
-}
-raylib.rlBindShaderBuffer = rlBindShaderBuffer
-
-/**
- * Read SSBO buffer data (GPU->CPU)
- *
- * @param {number} id
- * @param {number} dest
- * @param {number} count
- * @param {number} offset
- *
- * @return {undefined}
- */
-function rlReadShaderBuffer (id, dest, count, offset) {
- return r.BindrlReadShaderBuffer(
- id,
- dest,
- count,
- offset
- )
-}
-raylib.rlReadShaderBuffer = rlReadShaderBuffer
-
-/**
- * Copy SSBO data between buffers
- *
- * @param {number} destId
- * @param {number} srcId
- * @param {number} destOffset
- * @param {number} srcOffset
- * @param {number} count
- *
- * @return {undefined}
- */
-function rlCopyShaderBuffer (destId, srcId, destOffset, srcOffset, count) {
- return r.BindrlCopyShaderBuffer(
- destId,
- srcId,
- destOffset,
- srcOffset,
- count
- )
-}
-raylib.rlCopyShaderBuffer = rlCopyShaderBuffer
-
-/**
- * Get SSBO buffer size
- *
- * @param {number} id
- *
- * @return {number} The resulting unsigned int.
- */
-function rlGetShaderBufferSize (id) {
- return r.BindrlGetShaderBufferSize(
- id
- )
-}
-raylib.rlGetShaderBufferSize = rlGetShaderBufferSize
-
-/**
- * Bind image texture
- *
- * @param {number} id
- * @param {number} index
- * @param {number} format
- * @param {boolean} readonly
- *
- * @return {undefined}
- */
-function rlBindImageTexture (id, index, format, readonly) {
- return r.BindrlBindImageTexture(
- id,
- index,
- format,
- readonly
- )
-}
-raylib.rlBindImageTexture = rlBindImageTexture
-
-/**
- * Get internal modelview matrix
- *
- * @return {Matrix} The resulting Matrix.
- */
-function rlGetMatrixModelview () {
- return r.BindrlGetMatrixModelview()
-}
-raylib.rlGetMatrixModelview = rlGetMatrixModelview
-
-/**
- * Get internal projection matrix
- *
- * @return {Matrix} The resulting Matrix.
- */
-function rlGetMatrixProjection () {
- return r.BindrlGetMatrixProjection()
-}
-raylib.rlGetMatrixProjection = rlGetMatrixProjection
-
-/**
- * Get internal accumulated transform matrix
- *
- * @return {Matrix} The resulting Matrix.
- */
-function rlGetMatrixTransform () {
- return r.BindrlGetMatrixTransform()
-}
-raylib.rlGetMatrixTransform = rlGetMatrixTransform
-
-/**
- * Get internal projection matrix for stereo render (selected eye)
- *
- * @param {number} eye
- *
- * @return {Matrix} The resulting Matrix.
- */
-function rlGetMatrixProjectionStereo (eye) {
- return r.BindrlGetMatrixProjectionStereo(
- eye
- )
-}
-raylib.rlGetMatrixProjectionStereo = rlGetMatrixProjectionStereo
-
-/**
- * Get internal view offset matrix for stereo render (selected eye)
- *
- * @param {number} eye
- *
- * @return {Matrix} The resulting Matrix.
- */
-function rlGetMatrixViewOffsetStereo (eye) {
- return r.BindrlGetMatrixViewOffsetStereo(
- eye
- )
-}
-raylib.rlGetMatrixViewOffsetStereo = rlGetMatrixViewOffsetStereo
-
-/**
- * Set a custom projection matrix (replaces internal projection matrix)
- *
- * @param {Matrix} proj
- *
- * @return {undefined}
- */
-function rlSetMatrixProjection (proj) {
- return r.BindrlSetMatrixProjection(
- proj.m0,
- proj.m4,
- proj.m8,
- proj.m12,
- proj.m1,
- proj.m5,
- proj.m9,
- proj.m13,
- proj.m2,
- proj.m6,
- proj.m10,
- proj.m14,
- proj.m3,
- proj.m7,
- proj.m11,
- proj.m15
- )
-}
-raylib.rlSetMatrixProjection = rlSetMatrixProjection
-
-/**
- * Set a custom modelview matrix (replaces internal modelview matrix)
- *
- * @param {Matrix} view
- *
- * @return {undefined}
- */
-function rlSetMatrixModelview (view) {
- return r.BindrlSetMatrixModelview(
- view.m0,
- view.m4,
- view.m8,
- view.m12,
- view.m1,
- view.m5,
- view.m9,
- view.m13,
- view.m2,
- view.m6,
- view.m10,
- view.m14,
- view.m3,
- view.m7,
- view.m11,
- view.m15
- )
-}
-raylib.rlSetMatrixModelview = rlSetMatrixModelview
-
-/**
- * Set eyes projection matrices for stereo rendering
- *
- * @param {Matrix} right
- * @param {Matrix} left
- *
- * @return {undefined}
- */
-function rlSetMatrixProjectionStereo (right, left) {
- return r.BindrlSetMatrixProjectionStereo(
- right.m0,
- right.m4,
- right.m8,
- right.m12,
- right.m1,
- right.m5,
- right.m9,
- right.m13,
- right.m2,
- right.m6,
- right.m10,
- right.m14,
- right.m3,
- right.m7,
- right.m11,
- right.m15,
- left.m0,
- left.m4,
- left.m8,
- left.m12,
- left.m1,
- left.m5,
- left.m9,
- left.m13,
- left.m2,
- left.m6,
- left.m10,
- left.m14,
- left.m3,
- left.m7,
- left.m11,
- left.m15
- )
-}
-raylib.rlSetMatrixProjectionStereo = rlSetMatrixProjectionStereo
-
-/**
- * Set eyes view offsets matrices for stereo rendering
- *
- * @param {Matrix} right
- * @param {Matrix} left
- *
- * @return {undefined}
- */
-function rlSetMatrixViewOffsetStereo (right, left) {
- return r.BindrlSetMatrixViewOffsetStereo(
- right.m0,
- right.m4,
- right.m8,
- right.m12,
- right.m1,
- right.m5,
- right.m9,
- right.m13,
- right.m2,
- right.m6,
- right.m10,
- right.m14,
- right.m3,
- right.m7,
- right.m11,
- right.m15,
- left.m0,
- left.m4,
- left.m8,
- left.m12,
- left.m1,
- left.m5,
- left.m9,
- left.m13,
- left.m2,
- left.m6,
- left.m10,
- left.m14,
- left.m3,
- left.m7,
- left.m11,
- left.m15
- )
-}
-raylib.rlSetMatrixViewOffsetStereo = rlSetMatrixViewOffsetStereo
-
-/**
- * Load and draw a cube
- *
- * @return {undefined}
- */
-function rlLoadDrawCube () {
- return r.BindrlLoadDrawCube()
-}
-raylib.rlLoadDrawCube = rlLoadDrawCube
-
-/**
- * Load and draw a quad
- *
- * @return {undefined}
- */
-function rlLoadDrawQuad () {
- return r.BindrlLoadDrawQuad()
-}
-raylib.rlLoadDrawQuad = rlLoadDrawQuad
-
-/**
- * Update camera position for selected mode
- *
- * @param {Camera} camera
- * @param {number} mode
- *
- * @return {undefined}
- */
-function UpdateCamera (camera, mode) {
- const obj = r.BindUpdateCamera(
- camera.position.x,
- camera.position.y,
- camera.position.z,
- camera.target.x,
- camera.target.y,
- camera.target.z,
- camera.up.x,
- camera.up.y,
- camera.up.z,
- camera.fovy,
- camera.projection,
- mode
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- camera[key] = obj[key]
- }
- }
-}
-raylib.UpdateCamera = UpdateCamera
-
-/**
- * Convert image data to desired format
- *
- * @param {Image} image
- * @param {number} newFormat
- *
- * @return {undefined}
- */
-function ImageFormat (image, newFormat) {
- const obj = r.BindImageFormat(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- newFormat
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageFormat = ImageFormat
-
-/**
- * Convert image to POT (power-of-two)
- *
- * @param {Image} image
- * @param {Color} fill
- *
- * @return {undefined}
- */
-function ImageToPOT (image, fill) {
- const obj = r.BindImageToPOT(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- fill.r,
- fill.g,
- fill.b,
- fill.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageToPOT = ImageToPOT
-
-/**
- * Crop an image to a defined rectangle
- *
- * @param {Image} image
- * @param {Rectangle} crop
- *
- * @return {undefined}
- */
-function ImageCrop (image, crop) {
- const obj = r.BindImageCrop(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- crop.x,
- crop.y,
- crop.width,
- crop.height
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageCrop = ImageCrop
-
-/**
- * Crop image depending on alpha value
- *
- * @param {Image} image
- * @param {number} threshold
- *
- * @return {undefined}
- */
-function ImageAlphaCrop (image, threshold) {
- const obj = r.BindImageAlphaCrop(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- threshold
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageAlphaCrop = ImageAlphaCrop
-
-/**
- * Clear alpha channel to desired color
- *
- * @param {Image} image
- * @param {Color} color
- * @param {number} threshold
- *
- * @return {undefined}
- */
-function ImageAlphaClear (image, color, threshold) {
- const obj = r.BindImageAlphaClear(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- color.r,
- color.g,
- color.b,
- color.a,
- threshold
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageAlphaClear = ImageAlphaClear
-
-/**
- * Apply alpha mask to image
- *
- * @param {Image} image
- * @param {Image} alphaMask
- *
- * @return {undefined}
- */
-function ImageAlphaMask (image, alphaMask) {
- const obj = r.BindImageAlphaMask(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- alphaMask.data,
- alphaMask.width,
- alphaMask.height,
- alphaMask.mipmaps,
- alphaMask.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageAlphaMask = ImageAlphaMask
-
-/**
- * Premultiply alpha channel
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageAlphaPremultiply (image) {
- const obj = r.BindImageAlphaPremultiply(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageAlphaPremultiply = ImageAlphaPremultiply
-
-/**
- * Resize image (Bicubic scaling algorithm)
- *
- * @param {Image} image
- * @param {number} newWidth
- * @param {number} newHeight
- *
- * @return {undefined}
- */
-function ImageResize (image, newWidth, newHeight) {
- const obj = r.BindImageResize(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- newWidth,
- newHeight
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageResize = ImageResize
-
-/**
- * Resize image (Nearest-Neighbor scaling algorithm)
- *
- * @param {Image} image
- * @param {number} newWidth
- * @param {number} newHeight
- *
- * @return {undefined}
- */
-function ImageResizeNN (image, newWidth, newHeight) {
- const obj = r.BindImageResizeNN(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- newWidth,
- newHeight
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageResizeNN = ImageResizeNN
-
-/**
- * Resize canvas and fill with color
- *
- * @param {Image} image
- * @param {number} newWidth
- * @param {number} newHeight
- * @param {number} offsetX
- * @param {number} offsetY
- * @param {Color} fill
- *
- * @return {undefined}
- */
-function ImageResizeCanvas (image, newWidth, newHeight, offsetX, offsetY, fill) {
- const obj = r.BindImageResizeCanvas(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- newWidth,
- newHeight,
- offsetX,
- offsetY,
- fill.r,
- fill.g,
- fill.b,
- fill.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageResizeCanvas = ImageResizeCanvas
-
-/**
- * Compute all mipmap levels for a provided image
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageMipmaps (image) {
- const obj = r.BindImageMipmaps(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageMipmaps = ImageMipmaps
-
-/**
- * Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
- *
- * @param {Image} image
- * @param {number} rBpp
- * @param {number} gBpp
- * @param {number} bBpp
- * @param {number} aBpp
- *
- * @return {undefined}
- */
-function ImageDither (image, rBpp, gBpp, bBpp, aBpp) {
- const obj = r.BindImageDither(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- rBpp,
- gBpp,
- bBpp,
- aBpp
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageDither = ImageDither
-
-/**
- * Flip image vertically
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageFlipVertical (image) {
- const obj = r.BindImageFlipVertical(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageFlipVertical = ImageFlipVertical
-
-/**
- * Flip image horizontally
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageFlipHorizontal (image) {
- const obj = r.BindImageFlipHorizontal(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageFlipHorizontal = ImageFlipHorizontal
-
-/**
- * Rotate image clockwise 90deg
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageRotateCW (image) {
- const obj = r.BindImageRotateCW(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageRotateCW = ImageRotateCW
-
-/**
- * Rotate image counter-clockwise 90deg
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageRotateCCW (image) {
- const obj = r.BindImageRotateCCW(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageRotateCCW = ImageRotateCCW
-
-/**
- * Modify image color: tint
- *
- * @param {Image} image
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageColorTint (image, color) {
- const obj = r.BindImageColorTint(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorTint = ImageColorTint
-
-/**
- * Modify image color: invert
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageColorInvert (image) {
- const obj = r.BindImageColorInvert(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorInvert = ImageColorInvert
-
-/**
- * Modify image color: grayscale
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageColorGrayscale (image) {
- const obj = r.BindImageColorGrayscale(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorGrayscale = ImageColorGrayscale
-
-/**
- * Modify image color: contrast (-100 to 100)
- *
- * @param {Image} image
- * @param {number} contrast
- *
- * @return {undefined}
- */
-function ImageColorContrast (image, contrast) {
- const obj = r.BindImageColorContrast(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- contrast
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorContrast = ImageColorContrast
-
-/**
- * Modify image color: brightness (-255 to 255)
- *
- * @param {Image} image
- * @param {number} brightness
- *
- * @return {undefined}
- */
-function ImageColorBrightness (image, brightness) {
- const obj = r.BindImageColorBrightness(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- brightness
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorBrightness = ImageColorBrightness
-
-/**
- * Modify image color: replace color
- *
- * @param {Image} image
- * @param {Color} color
- * @param {Color} replace
- *
- * @return {undefined}
- */
-function ImageColorReplace (image, color, replace) {
- const obj = r.BindImageColorReplace(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- color.r,
- color.g,
- color.b,
- color.a,
- replace.r,
- replace.g,
- replace.b,
- replace.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorReplace = ImageColorReplace
-
-/**
- * Clear image background with given color
- *
- * @param {Image} dst
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageClearBackground (dst, color) {
- const obj = r.BindImageClearBackground(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageClearBackground = ImageClearBackground
-
-/**
- * Draw pixel within an image
- *
- * @param {Image} dst
- * @param {number} posX
- * @param {number} posY
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawPixel (dst, posX, posY, color) {
- const obj = r.BindImageDrawPixel(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- posX,
- posY,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawPixel = ImageDrawPixel
-
-/**
- * Draw pixel within an image (Vector version)
- *
- * @param {Image} dst
- * @param {Vector2} position
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawPixelV (dst, position, color) {
- const obj = r.BindImageDrawPixelV(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- position.x,
- position.y,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawPixelV = ImageDrawPixelV
-
-/**
- * Draw line within an image
- *
- * @param {Image} dst
- * @param {number} startPosX
- * @param {number} startPosY
- * @param {number} endPosX
- * @param {number} endPosY
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawLine (dst, startPosX, startPosY, endPosX, endPosY, color) {
- const obj = r.BindImageDrawLine(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- startPosX,
- startPosY,
- endPosX,
- endPosY,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawLine = ImageDrawLine
-
-/**
- * Draw line within an image (Vector version)
- *
- * @param {Image} dst
- * @param {Vector2} start
- * @param {Vector2} end
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawLineV (dst, start, end, color) {
- const obj = r.BindImageDrawLineV(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- start.x,
- start.y,
- end.x,
- end.y,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawLineV = ImageDrawLineV
-
-/**
- * Draw a filled circle within an image
- *
- * @param {Image} dst
- * @param {number} centerX
- * @param {number} centerY
- * @param {number} radius
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawCircle (dst, centerX, centerY, radius, color) {
- const obj = r.BindImageDrawCircle(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- centerX,
- centerY,
- radius,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawCircle = ImageDrawCircle
-
-/**
- * Draw a filled circle within an image (Vector version)
- *
- * @param {Image} dst
- * @param {Vector2} center
- * @param {number} radius
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawCircleV (dst, center, radius, color) {
- const obj = r.BindImageDrawCircleV(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- center.x,
- center.y,
- radius,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawCircleV = ImageDrawCircleV
-
-/**
- * Draw rectangle within an image
- *
- * @param {Image} dst
- * @param {number} posX
- * @param {number} posY
- * @param {number} width
- * @param {number} height
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawRectangle (dst, posX, posY, width, height, color) {
- const obj = r.BindImageDrawRectangle(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- posX,
- posY,
- width,
- height,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawRectangle = ImageDrawRectangle
-
-/**
- * Draw rectangle within an image (Vector version)
- *
- * @param {Image} dst
- * @param {Vector2} position
- * @param {Vector2} size
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawRectangleV (dst, position, size, color) {
- const obj = r.BindImageDrawRectangleV(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- position.x,
- position.y,
- size.x,
- size.y,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawRectangleV = ImageDrawRectangleV
-
-/**
- * Draw rectangle within an image
- *
- * @param {Image} dst
- * @param {Rectangle} rec
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawRectangleRec (dst, rec, color) {
- const obj = r.BindImageDrawRectangleRec(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- rec.x,
- rec.y,
- rec.width,
- rec.height,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawRectangleRec = ImageDrawRectangleRec
-
-/**
- * Draw rectangle lines within an image
- *
- * @param {Image} dst
- * @param {Rectangle} rec
- * @param {number} thick
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawRectangleLines (dst, rec, thick, color) {
- const obj = r.BindImageDrawRectangleLines(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- rec.x,
- rec.y,
- rec.width,
- rec.height,
- thick,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawRectangleLines = ImageDrawRectangleLines
-
-/**
- * Draw a source image within a destination image (tint applied to source)
- *
- * @param {Image} dst
- * @param {Image} src
- * @param {Rectangle} srcRec
- * @param {Rectangle} dstRec
- * @param {Color} tint
- *
- * @return {undefined}
- */
-function ImageDraw (dst, src, srcRec, dstRec, tint) {
- const obj = r.BindImageDraw(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- src.data,
- src.width,
- src.height,
- src.mipmaps,
- src.format,
- srcRec.x,
- srcRec.y,
- srcRec.width,
- srcRec.height,
- dstRec.x,
- dstRec.y,
- dstRec.width,
- dstRec.height,
- tint.r,
- tint.g,
- tint.b,
- tint.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDraw = ImageDraw
-
-/**
- * Draw text (using default font) within an image (destination)
- *
- * @param {Image} dst
- * @param {string} text
- * @param {number} posX
- * @param {number} posY
- * @param {number} fontSize
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawText (dst, text, posX, posY, fontSize, color) {
- const obj = r.BindImageDrawText(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- text,
- posX,
- posY,
- fontSize,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawText = ImageDrawText
-
-/**
- * Draw text (custom sprite font) within an image (destination)
- *
- * @param {Image} dst
- * @param {Font} font
- * @param {string} text
- * @param {Vector2} position
- * @param {number} fontSize
- * @param {number} spacing
- * @param {Color} tint
- *
- * @return {undefined}
- */
-function ImageDrawTextEx (dst, font, text, position, fontSize, spacing, tint) {
- const obj = r.BindImageDrawTextEx(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- text,
- position.x,
- position.y,
- fontSize,
- spacing,
- tint.r,
- tint.g,
- tint.b,
- tint.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawTextEx = ImageDrawTextEx
-
-/**
- * Generate GPU mipmaps for a texture
- *
- * @param {Texture2D} texture
- *
- * @return {undefined}
- */
-function GenTextureMipmaps (texture) {
- const obj = r.BindGenTextureMipmaps(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- texture[key] = obj[key]
- }
- }
-}
-raylib.GenTextureMipmaps = GenTextureMipmaps
-
-/**
- * Upload mesh vertex data in GPU and provide VAO/VBO ids
- *
- * @param {Mesh} mesh
- * @param {boolean} dynamic
- *
- * @return {undefined}
- */
-function UploadMesh (mesh, dynamic) {
- const obj = r.BindUploadMesh(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId,
- dynamic
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- mesh[key] = obj[key]
- }
- }
-}
-raylib.UploadMesh = UploadMesh
-
-/**
- * Compute mesh tangents
- *
- * @param {Mesh} mesh
- *
- * @return {undefined}
- */
-function GenMeshTangents (mesh) {
- const obj = r.BindGenMeshTangents(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- mesh[key] = obj[key]
- }
- }
-}
-raylib.GenMeshTangents = GenMeshTangents
-
-/**
- * Set material for a mesh
- *
- * @param {Model} model
- * @param {number} meshId
- * @param {number} materialId
- *
- * @return {undefined}
- */
-function SetModelMeshMaterial (model, meshId, materialId) {
- const obj = r.BindSetModelMeshMaterial(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose,
- meshId,
- materialId
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- model[key] = obj[key]
- }
- }
-}
-raylib.SetModelMeshMaterial = SetModelMeshMaterial
-
-/**
- * Crop a wave to defined samples range
- *
- * @param {Wave} wave
- * @param {number} initSample
- * @param {number} finalSample
- *
- * @return {undefined}
- */
-function WaveCrop (wave, initSample, finalSample) {
- const obj = r.BindWaveCrop(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data,
- initSample,
- finalSample
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- wave[key] = obj[key]
- }
- }
-}
-raylib.WaveCrop = WaveCrop
-
-/**
- * Convert wave data to desired format
- *
- * @param {Wave} wave
- * @param {number} sampleRate
- * @param {number} sampleSize
- * @param {number} channels
- *
- * @return {undefined}
- */
-function WaveFormat (wave, sampleRate, sampleSize, channels) {
- const obj = r.BindWaveFormat(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data,
- sampleRate,
- sampleSize,
- channels
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- wave[key] = obj[key]
- }
- }
-}
-raylib.WaveFormat = WaveFormat
-
-/**
- * Color, 4 components, R8G8B8A8 (32bit)
- *
- * @param {number} r - Color red value
- * @param {number} g - Color green value
- * @param {number} b - Color blue value
- * @param {number} a - Color alpha value
- *
- * @return {Color} The new Color.
- */
-function Color (r, g, b, a) {
- return { r, g, b, a }
-}
-raylib.Color = Color
-
-/**
- * Vector2, 2 components
- *
- * @param {number} x - Vector x component
- * @param {number} y - Vector y component
- *
- * @return {Vector2} The new Vector2.
- */
-function Vector2 (x, y) {
- return { x, y }
-}
-raylib.Vector2 = Vector2
-
-/**
- * Vector3, 3 components
- *
- * @param {number} x - Vector x component
- * @param {number} y - Vector y component
- * @param {number} z - Vector z component
- *
- * @return {Vector3} The new Vector3.
- */
-function Vector3 (x, y, z) {
- return { x, y, z }
-}
-raylib.Vector3 = Vector3
-
-/**
- * Vector4, 4 components
- *
- * @param {number} x - Vector x component
- * @param {number} y - Vector y component
- * @param {number} z - Vector z component
- * @param {number} w - Vector w component
- *
- * @return {Vector4} The new Vector4.
- */
-function Vector4 (x, y, z, w) {
- return { x, y, z, w }
-}
-raylib.Vector4 = Vector4
-
-/**
- * Rectangle, 4 components
- *
- * @param {number} x - Rectangle top-left corner position x
- * @param {number} y - Rectangle top-left corner position y
- * @param {number} width - Rectangle width
- * @param {number} height - Rectangle height
- *
- * @return {Rectangle} The new Rectangle.
- */
-function Rectangle (x, y, width, height) {
- return { x, y, width, height }
-}
-raylib.Rectangle = Rectangle
-
-/**
- * Camera2D, defines position/orientation in 2d space
- *
- * @param {Vector2} offset - Camera offset (displacement from target)
- * @param {Vector2} target - Camera target (rotation and zoom origin)
- * @param {number} rotation - Camera rotation in degrees
- * @param {number} zoom - Camera zoom (scaling), should be 1.0f by default
- *
- * @return {Camera2D} The new Camera2D.
- */
-function Camera2D (offset, target, rotation, zoom) {
- return { offset, target, rotation, zoom }
-}
-raylib.Camera2D = Camera2D
-
-/**
- * Camera, defines position/orientation in 3d space
- *
- * @param {Vector3} position - Camera position
- * @param {Vector3} target - Camera target it looks-at
- * @param {Vector3} up - Camera up vector (rotation over its axis)
- * @param {number} fovy - Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic
- * @param {number} projection - Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
- *
- * @return {Camera3D} The new Camera3D.
- */
-function Camera3D (position, target, up, fovy, projection) {
- return { position, target, up, fovy, projection }
-}
-raylib.Camera3D = Camera3D
-raylib.Camera = raylib.Camera3D
-
-// WRAPPED TYPED SHADER FUNCTIONS
-
-/**
- * Set shader uniform value float
- *
- * @param {Shader} shader
- * @param {number} locIndex
- * @param {number} value
- *
- * @returns {undefined}
- */
-function SetShaderFloat (shader, locIndex, value) {
- return r.BindSetShaderFloat(
- shader.id,
- shader.locs,
- locIndex,
- value
- )
-}
-raylib.SetShaderFloat = SetShaderFloat
-
-/**
- * Set shader uniform value float
- *
- * @param {Shader} shader
- * @param {number} locIndex
- * @param {number} value
- *
- * @returns {undefined}
- */
-function SetShaderInt (shader, locIndex, value) {
- return r.BindSetShaderInt(
- shader.id,
- shader.locs,
- locIndex,
- value
- )
-}
-raylib.SetShaderInt = SetShaderInt
-
-/**
- * Set shader uniform value vector2
- *
- * @param {Shader} shader
- * @param {number} locIndex
- * @param {Vector2} value
- *
- * @returns {undefined}
- */
-function SetShaderVec2 (shader, locIndex, value) {
- return r.BindSetShaderVec2(
- shader.id,
- shader.locs,
- locIndex,
- value.x,
- value.y
- )
-}
-raylib.SetShaderVec2 = SetShaderVec2
-
-/**
- * Set shader uniform value vector3
- *
- * @param {Shader} shader
- * @param {number} locIndex
- * @param {Vector3} value
- *
- * @returns {undefined}
- */
-function SetShaderVec3 (shader, locIndex, value) {
- return r.BindSetShaderVec3(
- shader.id,
- shader.locs,
- locIndex,
- value.x,
- value.y,
- value.z
- )
-}
-raylib.SetShaderVec3 = SetShaderVec3
-
-/**
- * Set shader uniform value vector4
- *
- * @param {Shader} shader
- * @param {number} locIndex
- * @param {Vector4} value
- *
- * @returns {undefined}
- */
-function SetShaderVec4 (shader, locIndex, value) {
- return r.BindSetShaderVec4(
- shader.id,
- shader.locs,
- locIndex,
- value.x,
- value.y,
- value.z,
- value.w
- )
-}
-raylib.SetShaderVec4 = SetShaderVec4
-
-/**
- * Set to try enabling V-Sync on GPU
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_VSYNC_HINT = 64
-
-/**
- * Set to run program in fullscreen
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_FULLSCREEN_MODE = 2
-
-/**
- * Set to allow resizable window
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_RESIZABLE = 4
-
-/**
- * Set to disable window decoration (frame and buttons)
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_UNDECORATED = 8
-
-/**
- * Set to hide window
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_HIDDEN = 128
-
-/**
- * Set to minimize window (iconify)
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_MINIMIZED = 512
-
-/**
- * Set to maximize window (expanded to monitor)
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_MAXIMIZED = 1024
-
-/**
- * Set to window non focused
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_UNFOCUSED = 2048
-
-/**
- * Set to window always on top
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_TOPMOST = 4096
-
-/**
- * Set to allow windows running while minimized
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_ALWAYS_RUN = 256
-
-/**
- * Set to allow transparent framebuffer
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_TRANSPARENT = 16
-
-/**
- * Set to support HighDPI
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_HIGHDPI = 8192
-
-/**
- * Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384
-
-/**
- * Set to try enabling MSAA 4X
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_MSAA_4X_HINT = 32
-
-/**
- * Set to try enabling interlaced video format (for V3D)
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_INTERLACED_HINT = 65536
-
-/**
- * Display all logs
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_ALL = 0
-
-/**
- * Trace logging, intended for internal use only
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_TRACE = 1
-
-/**
- * Debug logging, used for internal debugging, it should be disabled on release builds
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_DEBUG = 2
-
-/**
- * Info logging, used for program execution info
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_INFO = 3
-
-/**
- * Warning logging, used on recoverable failures
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_WARNING = 4
-
-/**
- * Error logging, used on unrecoverable failures
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_ERROR = 5
-
-/**
- * Fatal logging, used to abort program: exit(EXIT_FAILURE)
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_FATAL = 6
-
-/**
- * Disable logging
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_NONE = 7
-
-/**
- * Key: NULL, used for no key pressed
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_NULL = 0
-
-/**
- * Key: '
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_APOSTROPHE = 39
-
-/**
- * Key: ,
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_COMMA = 44
-
-/**
- * Key: -
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_MINUS = 45
-
-/**
- * Key: .
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_PERIOD = 46
-
-/**
- * Key: /
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SLASH = 47
-
-/**
- * Key: 0
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_ZERO = 48
-
-/**
- * Key: 1
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_ONE = 49
-
-/**
- * Key: 2
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_TWO = 50
-
-/**
- * Key: 3
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_THREE = 51
-
-/**
- * Key: 4
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_FOUR = 52
-
-/**
- * Key: 5
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_FIVE = 53
-
-/**
- * Key: 6
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SIX = 54
-
-/**
- * Key: 7
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SEVEN = 55
-
-/**
- * Key: 8
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_EIGHT = 56
-
-/**
- * Key: 9
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_NINE = 57
-
-/**
- * Key: ;
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SEMICOLON = 59
-
-/**
- * Key: =
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_EQUAL = 61
-
-/**
- * Key: A | a
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_A = 65
-
-/**
- * Key: B | b
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_B = 66
-
-/**
- * Key: C | c
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_C = 67
-
-/**
- * Key: D | d
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_D = 68
-
-/**
- * Key: E | e
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_E = 69
-
-/**
- * Key: F | f
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F = 70
-
-/**
- * Key: G | g
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_G = 71
-
-/**
- * Key: H | h
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_H = 72
-
-/**
- * Key: I | i
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_I = 73
-
-/**
- * Key: J | j
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_J = 74
-
-/**
- * Key: K | k
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_K = 75
-
-/**
- * Key: L | l
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_L = 76
-
-/**
- * Key: M | m
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_M = 77
-
-/**
- * Key: N | n
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_N = 78
-
-/**
- * Key: O | o
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_O = 79
-
-/**
- * Key: P | p
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_P = 80
-
-/**
- * Key: Q | q
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_Q = 81
-
-/**
- * Key: R | r
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_R = 82
-
-/**
- * Key: S | s
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_S = 83
-
-/**
- * Key: T | t
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_T = 84
-
-/**
- * Key: U | u
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_U = 85
-
-/**
- * Key: V | v
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_V = 86
-
-/**
- * Key: W | w
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_W = 87
-
-/**
- * Key: X | x
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_X = 88
-
-/**
- * Key: Y | y
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_Y = 89
-
-/**
- * Key: Z | z
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_Z = 90
-
-/**
- * Key: [
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT_BRACKET = 91
-
-/**
- * Key: '\'
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_BACKSLASH = 92
-
-/**
- * Key: ]
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT_BRACKET = 93
-
-/**
- * Key: `
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_GRAVE = 96
-
-/**
- * Key: Space
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SPACE = 32
-
-/**
- * Key: Esc
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_ESCAPE = 256
-
-/**
- * Key: Enter
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_ENTER = 257
-
-/**
- * Key: Tab
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_TAB = 258
-
-/**
- * Key: Backspace
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_BACKSPACE = 259
-
-/**
- * Key: Ins
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_INSERT = 260
-
-/**
- * Key: Del
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_DELETE = 261
-
-/**
- * Key: Cursor right
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT = 262
-
-/**
- * Key: Cursor left
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT = 263
-
-/**
- * Key: Cursor down
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_DOWN = 264
-
-/**
- * Key: Cursor up
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_UP = 265
-
-/**
- * Key: Page up
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_PAGE_UP = 266
-
-/**
- * Key: Page down
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_PAGE_DOWN = 267
-
-/**
- * Key: Home
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_HOME = 268
-
-/**
- * Key: End
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_END = 269
-
-/**
- * Key: Caps lock
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_CAPS_LOCK = 280
-
-/**
- * Key: Scroll down
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SCROLL_LOCK = 281
-
-/**
- * Key: Num lock
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_NUM_LOCK = 282
-
-/**
- * Key: Print screen
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_PRINT_SCREEN = 283
-
-/**
- * Key: Pause
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_PAUSE = 284
-
-/**
- * Key: F1
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F1 = 290
-
-/**
- * Key: F2
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F2 = 291
-
-/**
- * Key: F3
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F3 = 292
-
-/**
- * Key: F4
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F4 = 293
-
-/**
- * Key: F5
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F5 = 294
-
-/**
- * Key: F6
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F6 = 295
-
-/**
- * Key: F7
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F7 = 296
-
-/**
- * Key: F8
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F8 = 297
-
-/**
- * Key: F9
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F9 = 298
-
-/**
- * Key: F10
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F10 = 299
-
-/**
- * Key: F11
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F11 = 300
-
-/**
- * Key: F12
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F12 = 301
-
-/**
- * Key: Shift left
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT_SHIFT = 340
-
-/**
- * Key: Control left
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT_CONTROL = 341
-
-/**
- * Key: Alt left
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT_ALT = 342
-
-/**
- * Key: Super left
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT_SUPER = 343
-
-/**
- * Key: Shift right
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT_SHIFT = 344
-
-/**
- * Key: Control right
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT_CONTROL = 345
-
-/**
- * Key: Alt right
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT_ALT = 346
-
-/**
- * Key: Super right
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT_SUPER = 347
-
-/**
- * Key: KB menu
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_KB_MENU = 348
-
-/**
- * Key: Keypad 0
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_0 = 320
-
-/**
- * Key: Keypad 1
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_1 = 321
-
-/**
- * Key: Keypad 2
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_2 = 322
-
-/**
- * Key: Keypad 3
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_3 = 323
+ )
+}
+raylib.QuaternionEquals = QuaternionEquals
/**
- * Key: Keypad 4
+ * Choose the current matrix to be transformed
*
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_4 = 324
-
-/**
- * Key: Keypad 5
+ * @param {number} mode
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_5 = 325
+function rlMatrixMode(mode) {
+ return r.BindrlMatrixMode(
+ mode
+ )
+}
+raylib.rlMatrixMode = rlMatrixMode
/**
- * Key: Keypad 6
+ * Push the current matrix to stack
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_6 = 326
+function rlPushMatrix() {
+ return r.BindrlPushMatrix()
+}
+raylib.rlPushMatrix = rlPushMatrix
/**
- * Key: Keypad 7
+ * Pop latest inserted matrix from stack
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_7 = 327
+function rlPopMatrix() {
+ return r.BindrlPopMatrix()
+}
+raylib.rlPopMatrix = rlPopMatrix
/**
- * Key: Keypad 8
+ * Reset current matrix to identity matrix
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_8 = 328
+function rlLoadIdentity() {
+ return r.BindrlLoadIdentity()
+}
+raylib.rlLoadIdentity = rlLoadIdentity
/**
- * Key: Keypad 9
+ * Multiply the current matrix by a translation matrix
*
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_9 = 329
-
-/**
- * Key: Keypad .
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_DECIMAL = 330
+function rlTranslatef(x, y, z) {
+ return r.BindrlTranslatef(
+ x,
+ y,
+ z
+ )
+}
+raylib.rlTranslatef = rlTranslatef
/**
- * Key: Keypad /
+ * Multiply the current matrix by a rotation matrix
*
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_DIVIDE = 331
-
-/**
- * Key: Keypad *
+ * @param {number} angle
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_MULTIPLY = 332
+function rlRotatef(angle, x, y, z) {
+ return r.BindrlRotatef(
+ angle,
+ x,
+ y,
+ z
+ )
+}
+raylib.rlRotatef = rlRotatef
/**
- * Key: Keypad -
+ * Multiply the current matrix by a scaling matrix
*
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_SUBTRACT = 333
-
-/**
- * Key: Keypad +
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_ADD = 334
+function rlScalef(x, y, z) {
+ return r.BindrlScalef(
+ x,
+ y,
+ z
+ )
+}
+raylib.rlScalef = rlScalef
/**
- * Key: Keypad Enter
+ * Multiply the current matrix by another matrix
*
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_ENTER = 335
-
-/**
- * Key: Keypad =
+ * @param {number} matf
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_EQUAL = 336
+function rlMultMatrixf(matf) {
+ return r.BindrlMultMatrixf(
+ matf
+ )
+}
+raylib.rlMultMatrixf = rlMultMatrixf
-/**
- * Key: Android back button
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_BACK = 4
+function rlFrustum(left, right, bottom, top, znear, zfar) {
+ return r.BindrlFrustum(
+ left,
+ right,
+ bottom,
+ top,
+ znear,
+ zfar
+ )
+}
+raylib.rlFrustum = rlFrustum
-/**
- * Key: Android menu button
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_MENU = 82
+function rlOrtho(left, right, bottom, top, znear, zfar) {
+ return r.BindrlOrtho(
+ left,
+ right,
+ bottom,
+ top,
+ znear,
+ zfar
+ )
+}
+raylib.rlOrtho = rlOrtho
/**
- * Key: Android volume up button
+ * Set the viewport area
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {undefined}
*/
-raylib.KEY_VOLUME_UP = 24
+function rlViewport(x, y, width, height) {
+ return r.BindrlViewport(
+ x,
+ y,
+ width,
+ height
+ )
+}
+raylib.rlViewport = rlViewport
/**
- * Key: Android volume down button
+ * Initialize drawing mode (how to organize vertex)
*
- * @type {number}
- * @constant
+ * @param {number} mode
+ *
+ * @return {undefined}
*/
-raylib.KEY_VOLUME_DOWN = 25
+function rlBegin(mode) {
+ return r.BindrlBegin(
+ mode
+ )
+}
+raylib.rlBegin = rlBegin
/**
- * Mouse button left
+ * Finish vertex providing
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_LEFT = 0
+function rlEnd() {
+ return r.BindrlEnd()
+}
+raylib.rlEnd = rlEnd
/**
- * Mouse button right
+ * Define one vertex (position) - 2 int
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_RIGHT = 1
+function rlVertex2i(x, y) {
+ return r.BindrlVertex2i(
+ x,
+ y
+ )
+}
+raylib.rlVertex2i = rlVertex2i
/**
- * Mouse button middle (pressed wheel)
+ * Define one vertex (position) - 2 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_MIDDLE = 2
+function rlVertex2f(x, y) {
+ return r.BindrlVertex2f(
+ x,
+ y
+ )
+}
+raylib.rlVertex2f = rlVertex2f
/**
- * Mouse button side (advanced mouse device)
+ * Define one vertex (position) - 3 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_SIDE = 3
+function rlVertex3f(x, y, z) {
+ return r.BindrlVertex3f(
+ x,
+ y,
+ z
+ )
+}
+raylib.rlVertex3f = rlVertex3f
/**
- * Mouse button extra (advanced mouse device)
+ * Define one vertex (texture coordinate) - 2 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_EXTRA = 4
+function rlTexCoord2f(x, y) {
+ return r.BindrlTexCoord2f(
+ x,
+ y
+ )
+}
+raylib.rlTexCoord2f = rlTexCoord2f
/**
- * Mouse button forward (advanced mouse device)
+ * Define one vertex (normal) - 3 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_FORWARD = 5
+function rlNormal3f(x, y, z) {
+ return r.BindrlNormal3f(
+ x,
+ y,
+ z
+ )
+}
+raylib.rlNormal3f = rlNormal3f
/**
- * Mouse button back (advanced mouse device)
+ * Define one vertex (color) - 4 byte
*
- * @type {number}
- * @constant
+ * @param {number} r
+ * @param {number} g
+ * @param {number} b
+ * @param {number} a
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_BACK = 6
+function rlColor4ub(r, g, b, a) {
+ return r.BindrlColor4ub(
+ r,
+ g,
+ b,
+ a
+ )
+}
+raylib.rlColor4ub = rlColor4ub
/**
- * Default pointer shape
+ * Define one vertex (color) - 3 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_DEFAULT = 0
+function rlColor3f(x, y, z) {
+ return r.BindrlColor3f(
+ x,
+ y,
+ z
+ )
+}
+raylib.rlColor3f = rlColor3f
/**
- * Arrow shape
+ * Define one vertex (color) - 4 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
+ * @param {number} w
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_ARROW = 1
+function rlColor4f(x, y, z, w) {
+ return r.BindrlColor4f(
+ x,
+ y,
+ z,
+ w
+ )
+}
+raylib.rlColor4f = rlColor4f
/**
- * Text writing cursor shape
+ * Enable vertex array (VAO, if supported)
*
- * @type {number}
- * @constant
+ * @param {number} vaoId
+ *
+ * @return {boolean} The resulting bool.
*/
-raylib.MOUSE_CURSOR_IBEAM = 2
+function rlEnableVertexArray(vaoId) {
+ return r.BindrlEnableVertexArray(
+ vaoId
+ )
+}
+raylib.rlEnableVertexArray = rlEnableVertexArray
/**
- * Cross shape
+ * Disable vertex array (VAO, if supported)
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_CROSSHAIR = 3
+function rlDisableVertexArray() {
+ return r.BindrlDisableVertexArray()
+}
+raylib.rlDisableVertexArray = rlDisableVertexArray
/**
- * Pointing hand cursor
+ * Enable vertex buffer (VBO)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_POINTING_HAND = 4
+function rlEnableVertexBuffer(id) {
+ return r.BindrlEnableVertexBuffer(
+ id
+ )
+}
+raylib.rlEnableVertexBuffer = rlEnableVertexBuffer
/**
- * Horizontal resize/move arrow shape
+ * Disable vertex buffer (VBO)
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_RESIZE_EW = 5
+function rlDisableVertexBuffer() {
+ return r.BindrlDisableVertexBuffer()
+}
+raylib.rlDisableVertexBuffer = rlDisableVertexBuffer
/**
- * Vertical resize/move arrow shape
+ * Enable vertex buffer element (VBO element)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_RESIZE_NS = 6
+function rlEnableVertexBufferElement(id) {
+ return r.BindrlEnableVertexBufferElement(
+ id
+ )
+}
+raylib.rlEnableVertexBufferElement = rlEnableVertexBufferElement
/**
- * Top-left to bottom-right diagonal resize/move arrow shape
+ * Disable vertex buffer element (VBO element)
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_RESIZE_NWSE = 7
+function rlDisableVertexBufferElement() {
+ return r.BindrlDisableVertexBufferElement()
+}
+raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement
/**
- * The top-right to bottom-left diagonal resize/move arrow shape
+ * Enable vertex attribute index
*
- * @type {number}
- * @constant
+ * @param {number} index
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_RESIZE_NESW = 8
+function rlEnableVertexAttribute(index) {
+ return r.BindrlEnableVertexAttribute(
+ index
+ )
+}
+raylib.rlEnableVertexAttribute = rlEnableVertexAttribute
/**
- * The omnidirectional resize/move cursor shape
+ * Disable vertex attribute index
*
- * @type {number}
- * @constant
+ * @param {number} index
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_RESIZE_ALL = 9
+function rlDisableVertexAttribute(index) {
+ return r.BindrlDisableVertexAttribute(
+ index
+ )
+}
+raylib.rlDisableVertexAttribute = rlDisableVertexAttribute
/**
- * The operation-not-allowed shape
+ * Select and active a texture slot
*
- * @type {number}
- * @constant
+ * @param {number} slot
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_NOT_ALLOWED = 10
+function rlActiveTextureSlot(slot) {
+ return r.BindrlActiveTextureSlot(
+ slot
+ )
+}
+raylib.rlActiveTextureSlot = rlActiveTextureSlot
/**
- * Unknown button, just for error checking
+ * Enable texture
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_UNKNOWN = 0
+function rlEnableTexture(id) {
+ return r.BindrlEnableTexture(
+ id
+ )
+}
+raylib.rlEnableTexture = rlEnableTexture
/**
- * Gamepad left DPAD up button
+ * Disable texture
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_FACE_UP = 1
+function rlDisableTexture() {
+ return r.BindrlDisableTexture()
+}
+raylib.rlDisableTexture = rlDisableTexture
/**
- * Gamepad left DPAD right button
+ * Enable texture cubemap
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2
+function rlEnableTextureCubemap(id) {
+ return r.BindrlEnableTextureCubemap(
+ id
+ )
+}
+raylib.rlEnableTextureCubemap = rlEnableTextureCubemap
/**
- * Gamepad left DPAD down button
+ * Disable texture cubemap
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3
+function rlDisableTextureCubemap() {
+ return r.BindrlDisableTextureCubemap()
+}
+raylib.rlDisableTextureCubemap = rlDisableTextureCubemap
/**
- * Gamepad left DPAD left button
+ * Set texture parameters (filter, wrap)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} param
+ * @param {number} value
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4
+function rlTextureParameters(id, param, value) {
+ return r.BindrlTextureParameters(
+ id,
+ param,
+ value
+ )
+}
+raylib.rlTextureParameters = rlTextureParameters
/**
- * Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)
+ * Set cubemap parameters (filter, wrap)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} param
+ * @param {number} value
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_FACE_UP = 5
+function rlCubemapParameters(id, param, value) {
+ return r.BindrlCubemapParameters(
+ id,
+ param,
+ value
+ )
+}
+raylib.rlCubemapParameters = rlCubemapParameters
/**
- * Gamepad right button right (i.e. PS3: Square, Xbox: X)
+ * Enable shader program
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6
+function rlEnableShader(id) {
+ return r.BindrlEnableShader(
+ id
+ )
+}
+raylib.rlEnableShader = rlEnableShader
/**
- * Gamepad right button down (i.e. PS3: Cross, Xbox: A)
+ * Disable shader program
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7
+function rlDisableShader() {
+ return r.BindrlDisableShader()
+}
+raylib.rlDisableShader = rlDisableShader
/**
- * Gamepad right button left (i.e. PS3: Circle, Xbox: B)
+ * Enable render texture (fbo)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8
+function rlEnableFramebuffer(id) {
+ return r.BindrlEnableFramebuffer(
+ id
+ )
+}
+raylib.rlEnableFramebuffer = rlEnableFramebuffer
/**
- * Gamepad top/back trigger left (first), it could be a trailing button
+ * Disable render texture (fbo), return to default framebuffer
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9
+function rlDisableFramebuffer() {
+ return r.BindrlDisableFramebuffer()
+}
+raylib.rlDisableFramebuffer = rlDisableFramebuffer
/**
- * Gamepad top/back trigger left (second), it could be a trailing button
+ * Activate multiple draw color buffers
*
- * @type {number}
- * @constant
+ * @param {number} count
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10
+function rlActiveDrawBuffers(count) {
+ return r.BindrlActiveDrawBuffers(
+ count
+ )
+}
+raylib.rlActiveDrawBuffers = rlActiveDrawBuffers
/**
- * Gamepad top/back trigger right (one), it could be a trailing button
+ * Blit active framebuffer to main framebuffer
*
- * @type {number}
- * @constant
+ * @param {number} srcX
+ * @param {number} srcY
+ * @param {number} srcWidth
+ * @param {number} srcHeight
+ * @param {number} dstX
+ * @param {number} dstY
+ * @param {number} dstWidth
+ * @param {number} dstHeight
+ * @param {number} bufferMask
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11
+function rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) {
+ return r.BindrlBlitFramebuffer(
+ srcX,
+ srcY,
+ srcWidth,
+ srcHeight,
+ dstX,
+ dstY,
+ dstWidth,
+ dstHeight,
+ bufferMask
+ )
+}
+raylib.rlBlitFramebuffer = rlBlitFramebuffer
/**
- * Gamepad top/back trigger right (second), it could be a trailing button
+ * Enable color blending
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12
+function rlEnableColorBlend() {
+ return r.BindrlEnableColorBlend()
+}
+raylib.rlEnableColorBlend = rlEnableColorBlend
/**
- * Gamepad center buttons, left one (i.e. PS3: Select)
+ * Disable color blending
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_MIDDLE_LEFT = 13
+function rlDisableColorBlend() {
+ return r.BindrlDisableColorBlend()
+}
+raylib.rlDisableColorBlend = rlDisableColorBlend
/**
- * Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)
+ * Enable depth test
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_MIDDLE = 14
+function rlEnableDepthTest() {
+ return r.BindrlEnableDepthTest()
+}
+raylib.rlEnableDepthTest = rlEnableDepthTest
/**
- * Gamepad center buttons, right one (i.e. PS3: Start)
+ * Disable depth test
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_MIDDLE_RIGHT = 15
+function rlDisableDepthTest() {
+ return r.BindrlDisableDepthTest()
+}
+raylib.rlDisableDepthTest = rlDisableDepthTest
/**
- * Gamepad joystick pressed button left
+ * Enable depth write
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_THUMB = 16
+function rlEnableDepthMask() {
+ return r.BindrlEnableDepthMask()
+}
+raylib.rlEnableDepthMask = rlEnableDepthMask
/**
- * Gamepad joystick pressed button right
+ * Disable depth write
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_THUMB = 17
+function rlDisableDepthMask() {
+ return r.BindrlDisableDepthMask()
+}
+raylib.rlDisableDepthMask = rlDisableDepthMask
/**
- * Gamepad left stick X axis
+ * Enable backface culling
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_LEFT_X = 0
+function rlEnableBackfaceCulling() {
+ return r.BindrlEnableBackfaceCulling()
+}
+raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling
/**
- * Gamepad left stick Y axis
+ * Disable backface culling
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_LEFT_Y = 1
+function rlDisableBackfaceCulling() {
+ return r.BindrlDisableBackfaceCulling()
+}
+raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling
/**
- * Gamepad right stick X axis
+ * Set face culling mode
*
- * @type {number}
- * @constant
+ * @param {number} mode
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_RIGHT_X = 2
+function rlSetCullFace(mode) {
+ return r.BindrlSetCullFace(
+ mode
+ )
+}
+raylib.rlSetCullFace = rlSetCullFace
/**
- * Gamepad right stick Y axis
+ * Enable scissor test
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_RIGHT_Y = 3
+function rlEnableScissorTest() {
+ return r.BindrlEnableScissorTest()
+}
+raylib.rlEnableScissorTest = rlEnableScissorTest
/**
- * Gamepad back trigger left, pressure level: [1..-1]
+ * Disable scissor test
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_LEFT_TRIGGER = 4
+function rlDisableScissorTest() {
+ return r.BindrlDisableScissorTest()
+}
+raylib.rlDisableScissorTest = rlDisableScissorTest
/**
- * Gamepad back trigger right, pressure level: [1..-1]
+ * Scissor test
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_RIGHT_TRIGGER = 5
+function rlScissor(x, y, width, height) {
+ return r.BindrlScissor(
+ x,
+ y,
+ width,
+ height
+ )
+}
+raylib.rlScissor = rlScissor
/**
- * Albedo material (same as: MATERIAL_MAP_DIFFUSE)
+ * Enable wire mode
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_ALBEDO = 0
+function rlEnableWireMode() {
+ return r.BindrlEnableWireMode()
+}
+raylib.rlEnableWireMode = rlEnableWireMode
/**
- * Metalness material (same as: MATERIAL_MAP_SPECULAR)
+ * Enable point mode
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_METALNESS = 1
+function rlEnablePointMode() {
+ return r.BindrlEnablePointMode()
+}
+raylib.rlEnablePointMode = rlEnablePointMode
/**
- * Normal material
+ * Disable wire mode ( and point ) maybe rename
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_NORMAL = 2
+function rlDisableWireMode() {
+ return r.BindrlDisableWireMode()
+}
+raylib.rlDisableWireMode = rlDisableWireMode
/**
- * Roughness material
+ * Set the line drawing width
*
- * @type {number}
- * @constant
+ * @param {number} width
+ *
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_ROUGHNESS = 3
+function rlSetLineWidth(width) {
+ return r.BindrlSetLineWidth(
+ width
+ )
+}
+raylib.rlSetLineWidth = rlSetLineWidth
/**
- * Ambient occlusion material
+ * Get the line drawing width
*
- * @type {number}
- * @constant
+ * @return {number} The resulting float.
*/
-raylib.MATERIAL_MAP_OCCLUSION = 4
+function rlGetLineWidth() {
+ return r.BindrlGetLineWidth()
+}
+raylib.rlGetLineWidth = rlGetLineWidth
/**
- * Emission material
- *
- * @type {number}
- * @constant
+ * Enable line aliasing
+ *
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_EMISSION = 5
+function rlEnableSmoothLines() {
+ return r.BindrlEnableSmoothLines()
+}
+raylib.rlEnableSmoothLines = rlEnableSmoothLines
/**
- * Heightmap material
+ * Disable line aliasing
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_HEIGHT = 6
+function rlDisableSmoothLines() {
+ return r.BindrlDisableSmoothLines()
+}
+raylib.rlDisableSmoothLines = rlDisableSmoothLines
/**
- * Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+ * Enable stereo rendering
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_CUBEMAP = 7
+function rlEnableStereoRender() {
+ return r.BindrlEnableStereoRender()
+}
+raylib.rlEnableStereoRender = rlEnableStereoRender
/**
- * Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+ * Disable stereo rendering
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_IRRADIANCE = 8
+function rlDisableStereoRender() {
+ return r.BindrlDisableStereoRender()
+}
+raylib.rlDisableStereoRender = rlDisableStereoRender
/**
- * Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+ * Check if stereo render is enabled
*
- * @type {number}
- * @constant
+ * @return {boolean} The resulting bool.
*/
-raylib.MATERIAL_MAP_PREFILTER = 9
+function rlIsStereoRenderEnabled() {
+ return r.BindrlIsStereoRenderEnabled()
+}
+raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled
/**
- * Brdf material
+ * Clear color buffer with color
*
- * @type {number}
- * @constant
+ * @param {number} r
+ * @param {number} g
+ * @param {number} b
+ * @param {number} a
+ *
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_BRDF = 10
+function rlClearColor(r, g, b, a) {
+ return r.BindrlClearColor(
+ r,
+ g,
+ b,
+ a
+ )
+}
+raylib.rlClearColor = rlClearColor
/**
- * Shader location: vertex attribute: position
+ * Clear used screen buffers (color and depth)
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_POSITION = 0
+function rlClearScreenBuffers() {
+ return r.BindrlClearScreenBuffers()
+}
+raylib.rlClearScreenBuffers = rlClearScreenBuffers
/**
- * Shader location: vertex attribute: texcoord01
+ * Check and log OpenGL error codes
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_TEXCOORD01 = 1
+function rlCheckErrors() {
+ return r.BindrlCheckErrors()
+}
+raylib.rlCheckErrors = rlCheckErrors
/**
- * Shader location: vertex attribute: texcoord02
+ * Set blending mode
*
- * @type {number}
- * @constant
+ * @param {number} mode
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_TEXCOORD02 = 2
+function rlSetBlendMode(mode) {
+ return r.BindrlSetBlendMode(
+ mode
+ )
+}
+raylib.rlSetBlendMode = rlSetBlendMode
/**
- * Shader location: vertex attribute: normal
+ * Set blending mode factor and equation (using OpenGL factors)
*
- * @type {number}
- * @constant
+ * @param {number} glSrcFactor
+ * @param {number} glDstFactor
+ * @param {number} glEquation
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_NORMAL = 3
+function rlSetBlendFactors(glSrcFactor, glDstFactor, glEquation) {
+ return r.BindrlSetBlendFactors(
+ glSrcFactor,
+ glDstFactor,
+ glEquation
+ )
+}
+raylib.rlSetBlendFactors = rlSetBlendFactors
/**
- * Shader location: vertex attribute: tangent
+ * Set blending mode factors and equations separately (using OpenGL factors)
*
- * @type {number}
- * @constant
+ * @param {number} glSrcRGB
+ * @param {number} glDstRGB
+ * @param {number} glSrcAlpha
+ * @param {number} glDstAlpha
+ * @param {number} glEqRGB
+ * @param {number} glEqAlpha
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_TANGENT = 4
+function rlSetBlendFactorsSeparate(glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) {
+ return r.BindrlSetBlendFactorsSeparate(
+ glSrcRGB,
+ glDstRGB,
+ glSrcAlpha,
+ glDstAlpha,
+ glEqRGB,
+ glEqAlpha
+ )
+}
+raylib.rlSetBlendFactorsSeparate = rlSetBlendFactorsSeparate
/**
- * Shader location: vertex attribute: color
+ * Initialize rlgl (buffers, shaders, textures, states)
*
- * @type {number}
- * @constant
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_COLOR = 5
+function rlglInit(width, height) {
+ return r.BindrlglInit(
+ width,
+ height
+ )
+}
+raylib.rlglInit = rlglInit
/**
- * Shader location: matrix uniform: model-view-projection
+ * De-initialize rlgl (buffers, shaders, textures)
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MATRIX_MVP = 6
+function rlglClose() {
+ return r.BindrlglClose()
+}
+raylib.rlglClose = rlglClose
/**
- * Shader location: matrix uniform: view (camera transform)
+ * Load OpenGL extensions (loader function required)
*
- * @type {number}
- * @constant
+ * @param {number} loader
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MATRIX_VIEW = 7
+function rlLoadExtensions(loader) {
+ return r.BindrlLoadExtensions(
+ loader
+ )
+}
+raylib.rlLoadExtensions = rlLoadExtensions
/**
- * Shader location: matrix uniform: projection
+ * Get current OpenGL version
*
- * @type {number}
- * @constant
+ * @return {number} The resulting int.
*/
-raylib.SHADER_LOC_MATRIX_PROJECTION = 8
+function rlGetVersion() {
+ return r.BindrlGetVersion()
+}
+raylib.rlGetVersion = rlGetVersion
/**
- * Shader location: matrix uniform: model (transform)
+ * Set current framebuffer width
*
- * @type {number}
- * @constant
+ * @param {number} width
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MATRIX_MODEL = 9
+function rlSetFramebufferWidth(width) {
+ return r.BindrlSetFramebufferWidth(
+ width
+ )
+}
+raylib.rlSetFramebufferWidth = rlSetFramebufferWidth
/**
- * Shader location: matrix uniform: normal
+ * Get default framebuffer width
*
- * @type {number}
- * @constant
+ * @return {number} The resulting int.
*/
-raylib.SHADER_LOC_MATRIX_NORMAL = 10
+function rlGetFramebufferWidth() {
+ return r.BindrlGetFramebufferWidth()
+}
+raylib.rlGetFramebufferWidth = rlGetFramebufferWidth
/**
- * Shader location: vector uniform: view
+ * Set current framebuffer height
*
- * @type {number}
- * @constant
+ * @param {number} height
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VECTOR_VIEW = 11
+function rlSetFramebufferHeight(height) {
+ return r.BindrlSetFramebufferHeight(
+ height
+ )
+}
+raylib.rlSetFramebufferHeight = rlSetFramebufferHeight
/**
- * Shader location: vector uniform: diffuse color
+ * Get default framebuffer height
*
- * @type {number}
- * @constant
+ * @return {number} The resulting int.
*/
-raylib.SHADER_LOC_COLOR_DIFFUSE = 12
+function rlGetFramebufferHeight() {
+ return r.BindrlGetFramebufferHeight()
+}
+raylib.rlGetFramebufferHeight = rlGetFramebufferHeight
/**
- * Shader location: vector uniform: specular color
+ * Get default texture id
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_LOC_COLOR_SPECULAR = 13
+function rlGetTextureIdDefault() {
+ return r.BindrlGetTextureIdDefault()
+}
+raylib.rlGetTextureIdDefault = rlGetTextureIdDefault
/**
- * Shader location: vector uniform: ambient color
+ * Get default shader id
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_LOC_COLOR_AMBIENT = 14
+function rlGetShaderIdDefault() {
+ return r.BindrlGetShaderIdDefault()
+}
+raylib.rlGetShaderIdDefault = rlGetShaderIdDefault
/**
- * Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)
+ * Get default shader locations
*
- * @type {number}
- * @constant
+ * @return {number} The resulting int *.
*/
-raylib.SHADER_LOC_MAP_ALBEDO = 15
+function rlGetShaderLocsDefault() {
+ return r.BindrlGetShaderLocsDefault()
+}
+raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault
/**
- * Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)
+ * Load a render batch system
*
- * @type {number}
- * @constant
+ * @param {number} numBuffers
+ * @param {number} bufferElements
+ *
+ * @return {rlRenderBatch} The resulting rlRenderBatch.
*/
-raylib.SHADER_LOC_MAP_METALNESS = 16
+function rlLoadRenderBatch(numBuffers, bufferElements) {
+ return r.BindrlLoadRenderBatch(
+ numBuffers,
+ bufferElements
+ )
+}
+raylib.rlLoadRenderBatch = rlLoadRenderBatch
/**
- * Shader location: sampler2d texture: normal
+ * Unload render batch system
*
- * @type {number}
- * @constant
+ * @param {rlRenderBatch} batch
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MAP_NORMAL = 17
+function rlUnloadRenderBatch(batch) {
+ return r.BindrlUnloadRenderBatch(
+ batch.bufferCount,
+ batch.currentBuffer,
+ batch.vertexBuffer,
+ batch.draws,
+ batch.drawCounter,
+ batch.currentDepth
+ )
+}
+raylib.rlUnloadRenderBatch = rlUnloadRenderBatch
/**
- * Shader location: sampler2d texture: roughness
+ * Draw render batch data (Update->Draw->Reset)
*
- * @type {number}
- * @constant
+ * @param {number} batch
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MAP_ROUGHNESS = 18
+function rlDrawRenderBatch(batch) {
+ return r.BindrlDrawRenderBatch(
+ batch
+ )
+}
+raylib.rlDrawRenderBatch = rlDrawRenderBatch
/**
- * Shader location: sampler2d texture: occlusion
+ * Set the active render batch for rlgl (NULL for default internal)
*
- * @type {number}
- * @constant
+ * @param {number} batch
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MAP_OCCLUSION = 19
+function rlSetRenderBatchActive(batch) {
+ return r.BindrlSetRenderBatchActive(
+ batch
+ )
+}
+raylib.rlSetRenderBatchActive = rlSetRenderBatchActive
/**
- * Shader location: sampler2d texture: emission
+ * Update and draw internal render batch
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MAP_EMISSION = 20
+function rlDrawRenderBatchActive() {
+ return r.BindrlDrawRenderBatchActive()
+}
+raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive
/**
- * Shader location: sampler2d texture: height
+ * Check internal buffer overflow for a given number of vertex
*
- * @type {number}
- * @constant
+ * @param {number} vCount
+ *
+ * @return {boolean} The resulting bool.
*/
-raylib.SHADER_LOC_MAP_HEIGHT = 21
+function rlCheckRenderBatchLimit(vCount) {
+ return r.BindrlCheckRenderBatchLimit(
+ vCount
+ )
+}
+raylib.rlCheckRenderBatchLimit = rlCheckRenderBatchLimit
/**
- * Shader location: samplerCube texture: cubemap
+ * Set current texture for render batch and check buffers limits
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MAP_CUBEMAP = 22
+function rlSetTexture(id) {
+ return r.BindrlSetTexture(
+ id
+ )
+}
+raylib.rlSetTexture = rlSetTexture
/**
- * Shader location: samplerCube texture: irradiance
+ * Load vertex array (vao) if supported
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_LOC_MAP_IRRADIANCE = 23
+function rlLoadVertexArray() {
+ return r.BindrlLoadVertexArray()
+}
+raylib.rlLoadVertexArray = rlLoadVertexArray
/**
- * Shader location: samplerCube texture: prefilter
+ * Load a vertex buffer attribute
*
- * @type {number}
- * @constant
+ * @param {number} buffer
+ * @param {number} size
+ * @param {boolean} dynamic
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_LOC_MAP_PREFILTER = 24
+function rlLoadVertexBuffer(buffer, size, dynamic) {
+ return r.BindrlLoadVertexBuffer(
+ buffer,
+ size,
+ dynamic
+ )
+}
+raylib.rlLoadVertexBuffer = rlLoadVertexBuffer
/**
- * Shader location: sampler2d texture: brdf
+ * Load a new attributes element buffer
*
- * @type {number}
- * @constant
+ * @param {number} buffer
+ * @param {number} size
+ * @param {boolean} dynamic
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_LOC_MAP_BRDF = 25
+function rlLoadVertexBufferElement(buffer, size, dynamic) {
+ return r.BindrlLoadVertexBufferElement(
+ buffer,
+ size,
+ dynamic
+ )
+}
+raylib.rlLoadVertexBufferElement = rlLoadVertexBufferElement
/**
- * Shader uniform type: float
+ * Update GPU buffer with new data
*
- * @type {number}
- * @constant
+ * @param {number} bufferId
+ * @param {number} data
+ * @param {number} dataSize
+ * @param {number} offset
+ *
+ * @return {undefined}
*/
-raylib.SHADER_UNIFORM_FLOAT = 0
+function rlUpdateVertexBuffer(bufferId, data, dataSize, offset) {
+ return r.BindrlUpdateVertexBuffer(
+ bufferId,
+ data,
+ dataSize,
+ offset
+ )
+}
+raylib.rlUpdateVertexBuffer = rlUpdateVertexBuffer
/**
- * Shader uniform type: vec2 (2 float)
+ * Update vertex buffer elements with new data
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} data
+ * @param {number} dataSize
+ * @param {number} offset
+ *
+ * @return {undefined}
*/
-raylib.SHADER_UNIFORM_VEC2 = 1
+function rlUpdateVertexBufferElements(id, data, dataSize, offset) {
+ return r.BindrlUpdateVertexBufferElements(
+ id,
+ data,
+ dataSize,
+ offset
+ )
+}
+raylib.rlUpdateVertexBufferElements = rlUpdateVertexBufferElements
+
+function rlUnloadVertexArray(vaoId) {
+ return r.BindrlUnloadVertexArray(
+ vaoId
+ )
+}
+raylib.rlUnloadVertexArray = rlUnloadVertexArray
+
+function rlUnloadVertexBuffer(vboId) {
+ return r.BindrlUnloadVertexBuffer(
+ vboId
+ )
+}
+raylib.rlUnloadVertexBuffer = rlUnloadVertexBuffer
+
+function rlSetVertexAttribute(index, compSize, type, normalized, stride, pointer) {
+ return r.BindrlSetVertexAttribute(
+ index,
+ compSize,
+ type,
+ normalized,
+ stride,
+ pointer
+ )
+}
+raylib.rlSetVertexAttribute = rlSetVertexAttribute
+
+function rlSetVertexAttributeDivisor(index, divisor) {
+ return r.BindrlSetVertexAttributeDivisor(
+ index,
+ divisor
+ )
+}
+raylib.rlSetVertexAttributeDivisor = rlSetVertexAttributeDivisor
/**
- * Shader uniform type: vec3 (3 float)
+ * Set vertex attribute default value
*
- * @type {number}
- * @constant
+ * @param {number} locIndex
+ * @param {number} value
+ * @param {number} attribType
+ * @param {number} count
+ *
+ * @return {undefined}
*/
-raylib.SHADER_UNIFORM_VEC3 = 2
+function rlSetVertexAttributeDefault(locIndex, value, attribType, count) {
+ return r.BindrlSetVertexAttributeDefault(
+ locIndex,
+ value,
+ attribType,
+ count
+ )
+}
+raylib.rlSetVertexAttributeDefault = rlSetVertexAttributeDefault
+
+function rlDrawVertexArray(offset, count) {
+ return r.BindrlDrawVertexArray(
+ offset,
+ count
+ )
+}
+raylib.rlDrawVertexArray = rlDrawVertexArray
+
+function rlDrawVertexArrayElements(offset, count, buffer) {
+ return r.BindrlDrawVertexArrayElements(
+ offset,
+ count,
+ buffer
+ )
+}
+raylib.rlDrawVertexArrayElements = rlDrawVertexArrayElements
+
+function rlDrawVertexArrayInstanced(offset, count, instances) {
+ return r.BindrlDrawVertexArrayInstanced(
+ offset,
+ count,
+ instances
+ )
+}
+raylib.rlDrawVertexArrayInstanced = rlDrawVertexArrayInstanced
+
+function rlDrawVertexArrayElementsInstanced(offset, count, buffer, instances) {
+ return r.BindrlDrawVertexArrayElementsInstanced(
+ offset,
+ count,
+ buffer,
+ instances
+ )
+}
+raylib.rlDrawVertexArrayElementsInstanced = rlDrawVertexArrayElementsInstanced
/**
- * Shader uniform type: vec4 (4 float)
+ * Load texture in GPU
+ *
+ * @param {number} data
+ * @param {number} width
+ * @param {number} height
+ * @param {number} format
+ * @param {number} mipmapCount
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_UNIFORM_VEC4 = 3
+function rlLoadTexture(data, width, height, format, mipmapCount) {
+ return r.BindrlLoadTexture(
+ data,
+ width,
+ height,
+ format,
+ mipmapCount
+ )
+}
+raylib.rlLoadTexture = rlLoadTexture
/**
- * Shader uniform type: int
+ * Load depth texture/renderbuffer (to be attached to fbo)
*
- * @type {number}
- * @constant
- */
-raylib.SHADER_UNIFORM_INT = 4
-
-/**
- * Shader uniform type: ivec2 (2 int)
+ * @param {number} width
+ * @param {number} height
+ * @param {boolean} useRenderBuffer
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_UNIFORM_IVEC2 = 5
+function rlLoadTextureDepth(width, height, useRenderBuffer) {
+ return r.BindrlLoadTextureDepth(
+ width,
+ height,
+ useRenderBuffer
+ )
+}
+raylib.rlLoadTextureDepth = rlLoadTextureDepth
/**
- * Shader uniform type: ivec3 (3 int)
+ * Load texture cubemap
*
- * @type {number}
- * @constant
+ * @param {number} data
+ * @param {number} size
+ * @param {number} format
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_UNIFORM_IVEC3 = 6
+function rlLoadTextureCubemap(data, size, format) {
+ return r.BindrlLoadTextureCubemap(
+ data,
+ size,
+ format
+ )
+}
+raylib.rlLoadTextureCubemap = rlLoadTextureCubemap
/**
- * Shader uniform type: ivec4 (4 int)
+ * Update GPU texture with new data
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} offsetX
+ * @param {number} offsetY
+ * @param {number} width
+ * @param {number} height
+ * @param {number} format
+ * @param {number} data
+ *
+ * @return {undefined}
*/
-raylib.SHADER_UNIFORM_IVEC4 = 7
+function rlUpdateTexture(id, offsetX, offsetY, width, height, format, data) {
+ return r.BindrlUpdateTexture(
+ id,
+ offsetX,
+ offsetY,
+ width,
+ height,
+ format,
+ data
+ )
+}
+raylib.rlUpdateTexture = rlUpdateTexture
/**
- * Shader uniform type: sampler2d
+ * Get OpenGL internal formats
*
- * @type {number}
- * @constant
+ * @param {number} format
+ * @param {number} glInternalFormat
+ * @param {number} glFormat
+ * @param {number} glType
+ *
+ * @return {undefined}
*/
-raylib.SHADER_UNIFORM_SAMPLER2D = 8
+function rlGetGlTextureFormats(format, glInternalFormat, glFormat, glType) {
+ return r.BindrlGetGlTextureFormats(
+ format,
+ glInternalFormat,
+ glFormat,
+ glType
+ )
+}
+raylib.rlGetGlTextureFormats = rlGetGlTextureFormats
/**
- * Shader attribute type: float
+ * Get name string for pixel format
*
- * @type {number}
- * @constant
+ * @param {number} format
+ *
+ * @return {string} The resulting const char *.
*/
-raylib.SHADER_ATTRIB_FLOAT = 0
+function rlGetPixelFormatName(format) {
+ return r.BindrlGetPixelFormatName(
+ format
+ )
+}
+raylib.rlGetPixelFormatName = rlGetPixelFormatName
/**
- * Shader attribute type: vec2 (2 float)
+ * Unload texture from GPU memory
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.SHADER_ATTRIB_VEC2 = 1
+function rlUnloadTexture(id) {
+ return r.BindrlUnloadTexture(
+ id
+ )
+}
+raylib.rlUnloadTexture = rlUnloadTexture
/**
- * Shader attribute type: vec3 (3 float)
+ * Generate mipmap data for selected texture
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} width
+ * @param {number} height
+ * @param {number} format
+ * @param {number} mipmaps
+ *
+ * @return {undefined}
*/
-raylib.SHADER_ATTRIB_VEC3 = 2
+function rlGenTextureMipmaps(id, width, height, format, mipmaps) {
+ return r.BindrlGenTextureMipmaps(
+ id,
+ width,
+ height,
+ format,
+ mipmaps
+ )
+}
+raylib.rlGenTextureMipmaps = rlGenTextureMipmaps
/**
- * Shader attribute type: vec4 (4 float)
+ * Read texture pixel data
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} width
+ * @param {number} height
+ * @param {number} format
+ *
+ * @return {number} The resulting void *.
*/
-raylib.SHADER_ATTRIB_VEC4 = 3
+function rlReadTexturePixels(id, width, height, format) {
+ return r.BindrlReadTexturePixels(
+ id,
+ width,
+ height,
+ format
+ )
+}
+raylib.rlReadTexturePixels = rlReadTexturePixels
/**
- * 8 bit per pixel (no alpha)
+ * Read screen pixel data (color buffer)
*
- * @type {number}
- * @constant
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {Buffer} The resulting unsigned char *.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1
+function rlReadScreenPixels(width, height) {
+ return r.BindrlReadScreenPixels(
+ width,
+ height
+ )
+}
+raylib.rlReadScreenPixels = rlReadScreenPixels
/**
- * 8*2 bpp (2 channels)
+ * Load an empty framebuffer
*
- * @type {number}
- * @constant
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2
+function rlLoadFramebuffer(width, height) {
+ return r.BindrlLoadFramebuffer(
+ width,
+ height
+ )
+}
+raylib.rlLoadFramebuffer = rlLoadFramebuffer
/**
- * 16 bpp
+ * Attach texture/renderbuffer to a framebuffer
*
- * @type {number}
- * @constant
+ * @param {number} fboId
+ * @param {number} texId
+ * @param {number} attachType
+ * @param {number} texType
+ * @param {number} mipLevel
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3
+function rlFramebufferAttach(fboId, texId, attachType, texType, mipLevel) {
+ return r.BindrlFramebufferAttach(
+ fboId,
+ texId,
+ attachType,
+ texType,
+ mipLevel
+ )
+}
+raylib.rlFramebufferAttach = rlFramebufferAttach
/**
- * 24 bpp
+ * Verify framebuffer is complete
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {boolean} The resulting bool.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4
+function rlFramebufferComplete(id) {
+ return r.BindrlFramebufferComplete(
+ id
+ )
+}
+raylib.rlFramebufferComplete = rlFramebufferComplete
/**
- * 16 bpp (1 bit alpha)
+ * Delete framebuffer from GPU
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5
+function rlUnloadFramebuffer(id) {
+ return r.BindrlUnloadFramebuffer(
+ id
+ )
+}
+raylib.rlUnloadFramebuffer = rlUnloadFramebuffer
/**
- * 16 bpp (4 bit alpha)
+ * Load shader from code strings
*
- * @type {number}
- * @constant
+ * @param {string} vsCode
+ * @param {string} fsCode
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6
+function rlLoadShaderCode(vsCode, fsCode) {
+ return r.BindrlLoadShaderCode(
+ vsCode,
+ fsCode
+ )
+}
+raylib.rlLoadShaderCode = rlLoadShaderCode
/**
- * 32 bpp
+ * Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)
*
- * @type {number}
- * @constant
- */
-raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7
-
-/**
- * 32 bpp (1 channel - float)
+ * @param {string} shaderCode
+ * @param {number} type
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R32 = 8
+function rlCompileShader(shaderCode, type) {
+ return r.BindrlCompileShader(
+ shaderCode,
+ type
+ )
+}
+raylib.rlCompileShader = rlCompileShader
/**
- * 32*3 bpp (3 channels - float)
+ * Load custom shader program
*
- * @type {number}
- * @constant
+ * @param {number} vShaderId
+ * @param {number} fShaderId
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
+function rlLoadShaderProgram(vShaderId, fShaderId) {
+ return r.BindrlLoadShaderProgram(
+ vShaderId,
+ fShaderId
+ )
+}
+raylib.rlLoadShaderProgram = rlLoadShaderProgram
/**
- * 32*4 bpp (4 channels - float)
+ * Unload shader program
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
+function rlUnloadShaderProgram(id) {
+ return r.BindrlUnloadShaderProgram(
+ id
+ )
+}
+raylib.rlUnloadShaderProgram = rlUnloadShaderProgram
/**
- * 4 bpp (no alpha)
+ * Get shader location uniform
*
- * @type {number}
- * @constant
+ * @param {number} shaderId
+ * @param {string} uniformName
+ *
+ * @return {number} The resulting int.
*/
-raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
+function rlGetLocationUniform(shaderId, uniformName) {
+ return r.BindrlGetLocationUniform(
+ shaderId,
+ uniformName
+ )
+}
+raylib.rlGetLocationUniform = rlGetLocationUniform
/**
- * 4 bpp (1 bit alpha)
+ * Get shader location attribute
*
- * @type {number}
- * @constant
+ * @param {number} shaderId
+ * @param {string} attribName
+ *
+ * @return {number} The resulting int.
*/
-raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
+function rlGetLocationAttrib(shaderId, attribName) {
+ return r.BindrlGetLocationAttrib(
+ shaderId,
+ attribName
+ )
+}
+raylib.rlGetLocationAttrib = rlGetLocationAttrib
/**
- * 8 bpp
+ * Set shader value uniform
*
- * @type {number}
- * @constant
+ * @param {number} locIndex
+ * @param {number} value
+ * @param {number} uniformType
+ * @param {number} count
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
+function rlSetUniform(locIndex, value, uniformType, count) {
+ return r.BindrlSetUniform(
+ locIndex,
+ value,
+ uniformType,
+ count
+ )
+}
+raylib.rlSetUniform = rlSetUniform
/**
- * 8 bpp
+ * Set shader value matrix
*
- * @type {number}
- * @constant
+ * @param {number} locIndex
+ * @param {Matrix} mat
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
+function rlSetUniformMatrix(locIndex, mat) {
+ return r.BindrlSetUniformMatrix(
+ locIndex,
+ mat.m0,
+ mat.m4,
+ mat.m8,
+ mat.m12,
+ mat.m1,
+ mat.m5,
+ mat.m9,
+ mat.m13,
+ mat.m2,
+ mat.m6,
+ mat.m10,
+ mat.m14,
+ mat.m3,
+ mat.m7,
+ mat.m11,
+ mat.m15
+ )
+}
+raylib.rlSetUniformMatrix = rlSetUniformMatrix
/**
- * 4 bpp
+ * Set shader value sampler
*
- * @type {number}
- * @constant
+ * @param {number} locIndex
+ * @param {number} textureId
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
+function rlSetUniformSampler(locIndex, textureId) {
+ return r.BindrlSetUniformSampler(
+ locIndex,
+ textureId
+ )
+}
+raylib.rlSetUniformSampler = rlSetUniformSampler
/**
- * 4 bpp
+ * Set shader currently active (id and locations)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} locs
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
+function rlSetShader(id, locs) {
+ return r.BindrlSetShader(
+ id,
+ locs
+ )
+}
+raylib.rlSetShader = rlSetShader
/**
- * 8 bpp
+ * Load compute shader program
*
- * @type {number}
- * @constant
+ * @param {number} shaderId
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
+function rlLoadComputeShaderProgram(shaderId) {
+ return r.BindrlLoadComputeShaderProgram(
+ shaderId
+ )
+}
+raylib.rlLoadComputeShaderProgram = rlLoadComputeShaderProgram
/**
- * 4 bpp
+ * Dispatch compute shader (equivalent to *draw* for graphics pipeline)
*
- * @type {number}
- * @constant
+ * @param {number} groupX
+ * @param {number} groupY
+ * @param {number} groupZ
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
+function rlComputeShaderDispatch(groupX, groupY, groupZ) {
+ return r.BindrlComputeShaderDispatch(
+ groupX,
+ groupY,
+ groupZ
+ )
+}
+raylib.rlComputeShaderDispatch = rlComputeShaderDispatch
/**
- * 4 bpp
+ * Load shader storage buffer object (SSBO)
*
- * @type {number}
- * @constant
+ * @param {number} size
+ * @param {number} data
+ * @param {number} usageHint
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
+function rlLoadShaderBuffer(size, data, usageHint) {
+ return r.BindrlLoadShaderBuffer(
+ size,
+ data,
+ usageHint
+ )
+}
+raylib.rlLoadShaderBuffer = rlLoadShaderBuffer
/**
- * 8 bpp
+ * Unload shader storage buffer object (SSBO)
*
- * @type {number}
- * @constant
+ * @param {number} ssboId
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
+function rlUnloadShaderBuffer(ssboId) {
+ return r.BindrlUnloadShaderBuffer(
+ ssboId
+ )
+}
+raylib.rlUnloadShaderBuffer = rlUnloadShaderBuffer
/**
- * 2 bpp
+ * Update SSBO buffer data
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} data
+ * @param {number} dataSize
+ * @param {number} offset
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21
+function rlUpdateShaderBuffer(id, data, dataSize, offset) {
+ return r.BindrlUpdateShaderBuffer(
+ id,
+ data,
+ dataSize,
+ offset
+ )
+}
+raylib.rlUpdateShaderBuffer = rlUpdateShaderBuffer
/**
- * No filter, just pixel approximation
+ * Bind SSBO buffer
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} index
+ *
+ * @return {undefined}
*/
-raylib.TEXTURE_FILTER_POINT = 0
+function rlBindShaderBuffer(id, index) {
+ return r.BindrlBindShaderBuffer(
+ id,
+ index
+ )
+}
+raylib.rlBindShaderBuffer = rlBindShaderBuffer
/**
- * Linear filtering
+ * Read SSBO buffer data (GPU->CPU)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} dest
+ * @param {number} count
+ * @param {number} offset
+ *
+ * @return {undefined}
*/
-raylib.TEXTURE_FILTER_BILINEAR = 1
+function rlReadShaderBuffer(id, dest, count, offset) {
+ return r.BindrlReadShaderBuffer(
+ id,
+ dest,
+ count,
+ offset
+ )
+}
+raylib.rlReadShaderBuffer = rlReadShaderBuffer
/**
- * Trilinear filtering (linear with mipmaps)
+ * Copy SSBO data between buffers
*
- * @type {number}
- * @constant
+ * @param {number} destId
+ * @param {number} srcId
+ * @param {number} destOffset
+ * @param {number} srcOffset
+ * @param {number} count
+ *
+ * @return {undefined}
*/
-raylib.TEXTURE_FILTER_TRILINEAR = 2
+function rlCopyShaderBuffer(destId, srcId, destOffset, srcOffset, count) {
+ return r.BindrlCopyShaderBuffer(
+ destId,
+ srcId,
+ destOffset,
+ srcOffset,
+ count
+ )
+}
+raylib.rlCopyShaderBuffer = rlCopyShaderBuffer
/**
- * Anisotropic filtering 4x
+ * Get SSBO buffer size
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.TEXTURE_FILTER_ANISOTROPIC_4X = 3
+function rlGetShaderBufferSize(id) {
+ return r.BindrlGetShaderBufferSize(
+ id
+ )
+}
+raylib.rlGetShaderBufferSize = rlGetShaderBufferSize
/**
- * Anisotropic filtering 8x
+ * Bind image texture
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} index
+ * @param {number} format
+ * @param {boolean} readonly
+ *
+ * @return {undefined}
*/
-raylib.TEXTURE_FILTER_ANISOTROPIC_8X = 4
+function rlBindImageTexture(id, index, format, readonly) {
+ return r.BindrlBindImageTexture(
+ id,
+ index,
+ format,
+ readonly
+ )
+}
+raylib.rlBindImageTexture = rlBindImageTexture
/**
- * Anisotropic filtering 16x
+ * Get internal modelview matrix
*
- * @type {number}
- * @constant
+ * @return {Matrix} The resulting Matrix.
*/
-raylib.TEXTURE_FILTER_ANISOTROPIC_16X = 5
+function rlGetMatrixModelview() {
+ return r.BindrlGetMatrixModelview()
+}
+raylib.rlGetMatrixModelview = rlGetMatrixModelview
/**
- * Repeats texture in tiled mode
+ * Get internal projection matrix
*
- * @type {number}
- * @constant
+ * @return {Matrix} The resulting Matrix.
*/
-raylib.TEXTURE_WRAP_REPEAT = 0
+function rlGetMatrixProjection() {
+ return r.BindrlGetMatrixProjection()
+}
+raylib.rlGetMatrixProjection = rlGetMatrixProjection
/**
- * Clamps texture to edge pixel in tiled mode
+ * Get internal accumulated transform matrix
*
- * @type {number}
- * @constant
+ * @return {Matrix} The resulting Matrix.
*/
-raylib.TEXTURE_WRAP_CLAMP = 1
+function rlGetMatrixTransform() {
+ return r.BindrlGetMatrixTransform()
+}
+raylib.rlGetMatrixTransform = rlGetMatrixTransform
/**
- * Mirrors and repeats the texture in tiled mode
+ * Get internal projection matrix for stereo render (selected eye)
*
- * @type {number}
- * @constant
+ * @param {number} eye
+ *
+ * @return {Matrix} The resulting Matrix.
*/
-raylib.TEXTURE_WRAP_MIRROR_REPEAT = 2
+function rlGetMatrixProjectionStereo(eye) {
+ return r.BindrlGetMatrixProjectionStereo(
+ eye
+ )
+}
+raylib.rlGetMatrixProjectionStereo = rlGetMatrixProjectionStereo
/**
- * Mirrors and clamps to border the texture in tiled mode
+ * Get internal view offset matrix for stereo render (selected eye)
*
- * @type {number}
- * @constant
+ * @param {number} eye
+ *
+ * @return {Matrix} The resulting Matrix.
*/
-raylib.TEXTURE_WRAP_MIRROR_CLAMP = 3
+function rlGetMatrixViewOffsetStereo(eye) {
+ return r.BindrlGetMatrixViewOffsetStereo(
+ eye
+ )
+}
+raylib.rlGetMatrixViewOffsetStereo = rlGetMatrixViewOffsetStereo
/**
- * Automatically detect layout type
+ * Set a custom projection matrix (replaces internal projection matrix)
*
- * @type {number}
- * @constant
+ * @param {Matrix} proj
+ *
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_AUTO_DETECT = 0
+function rlSetMatrixProjection(proj) {
+ return r.BindrlSetMatrixProjection(
+ proj.m0,
+ proj.m4,
+ proj.m8,
+ proj.m12,
+ proj.m1,
+ proj.m5,
+ proj.m9,
+ proj.m13,
+ proj.m2,
+ proj.m6,
+ proj.m10,
+ proj.m14,
+ proj.m3,
+ proj.m7,
+ proj.m11,
+ proj.m15
+ )
+}
+raylib.rlSetMatrixProjection = rlSetMatrixProjection
/**
- * Layout is defined by a vertical line with faces
+ * Set a custom modelview matrix (replaces internal modelview matrix)
*
- * @type {number}
- * @constant
+ * @param {Matrix} view
+ *
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_LINE_VERTICAL = 1
+function rlSetMatrixModelview(view) {
+ return r.BindrlSetMatrixModelview(
+ view.m0,
+ view.m4,
+ view.m8,
+ view.m12,
+ view.m1,
+ view.m5,
+ view.m9,
+ view.m13,
+ view.m2,
+ view.m6,
+ view.m10,
+ view.m14,
+ view.m3,
+ view.m7,
+ view.m11,
+ view.m15
+ )
+}
+raylib.rlSetMatrixModelview = rlSetMatrixModelview
/**
- * Layout is defined by a horizontal line with faces
+ * Set eyes projection matrices for stereo rendering
*
- * @type {number}
- * @constant
+ * @param {Matrix} right
+ * @param {Matrix} left
+ *
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2
+function rlSetMatrixProjectionStereo(right, left) {
+ return r.BindrlSetMatrixProjectionStereo(
+ right.m0,
+ right.m4,
+ right.m8,
+ right.m12,
+ right.m1,
+ right.m5,
+ right.m9,
+ right.m13,
+ right.m2,
+ right.m6,
+ right.m10,
+ right.m14,
+ right.m3,
+ right.m7,
+ right.m11,
+ right.m15,
+ left.m0,
+ left.m4,
+ left.m8,
+ left.m12,
+ left.m1,
+ left.m5,
+ left.m9,
+ left.m13,
+ left.m2,
+ left.m6,
+ left.m10,
+ left.m14,
+ left.m3,
+ left.m7,
+ left.m11,
+ left.m15
+ )
+}
+raylib.rlSetMatrixProjectionStereo = rlSetMatrixProjectionStereo
/**
- * Layout is defined by a 3x4 cross with cubemap faces
+ * Set eyes view offsets matrices for stereo rendering
*
- * @type {number}
- * @constant
+ * @param {Matrix} right
+ * @param {Matrix} left
+ *
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3
+function rlSetMatrixViewOffsetStereo(right, left) {
+ return r.BindrlSetMatrixViewOffsetStereo(
+ right.m0,
+ right.m4,
+ right.m8,
+ right.m12,
+ right.m1,
+ right.m5,
+ right.m9,
+ right.m13,
+ right.m2,
+ right.m6,
+ right.m10,
+ right.m14,
+ right.m3,
+ right.m7,
+ right.m11,
+ right.m15,
+ left.m0,
+ left.m4,
+ left.m8,
+ left.m12,
+ left.m1,
+ left.m5,
+ left.m9,
+ left.m13,
+ left.m2,
+ left.m6,
+ left.m10,
+ left.m14,
+ left.m3,
+ left.m7,
+ left.m11,
+ left.m15
+ )
+}
+raylib.rlSetMatrixViewOffsetStereo = rlSetMatrixViewOffsetStereo
/**
- * Layout is defined by a 4x3 cross with cubemap faces
+ * Load and draw a cube
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4
+function rlLoadDrawCube() {
+ return r.BindrlLoadDrawCube()
+}
+raylib.rlLoadDrawCube = rlLoadDrawCube
/**
- * Layout is defined by a panorama image (equirrectangular map)
+ * Load and draw a quad
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_PANORAMA = 5
+function rlLoadDrawQuad() {
+ return r.BindrlLoadDrawQuad()
+}
+raylib.rlLoadDrawQuad = rlLoadDrawQuad
/**
- * Default font generation, anti-aliased
+ * Update camera position for selected mode
*
- * @type {number}
- * @constant
- */
-raylib.FONT_DEFAULT = 0
-
-/**
- * Bitmap font generation, no anti-aliasing
+ * @param {Camera} camera
+ * @param {number} mode
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.FONT_BITMAP = 1
+function UpdateCamera(camera, mode) {
+ const obj = r.BindUpdateCamera(
+ camera.position.x,
+ camera.position.y,
+ camera.position.z,
+ camera.target.x,
+ camera.target.y,
+ camera.target.z,
+ camera.up.x,
+ camera.up.y,
+ camera.up.z,
+ camera.fovy,
+ camera.projection,
+ mode
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ camera[key] = obj[key]
+ }
+ }
+}
+raylib.UpdateCamera = UpdateCamera
/**
- * SDF font generation, requires external shader
+ * Convert image data to desired format
*
- * @type {number}
- * @constant
- */
-raylib.FONT_SDF = 2
-
-/**
- * Blend textures considering alpha (default)
+ * @param {Image} image
+ * @param {number} newFormat
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.BLEND_ALPHA = 0
+function ImageFormat(image, newFormat) {
+ const obj = r.BindImageFormat(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ newFormat
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageFormat = ImageFormat
/**
- * Blend textures adding colors
+ * Convert image to POT (power-of-two)
*
- * @type {number}
- * @constant
- */
-raylib.BLEND_ADDITIVE = 1
-
-/**
- * Blend textures multiplying colors
+ * @param {Image} image
+ * @param {Color} fill
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.BLEND_MULTIPLIED = 2
+function ImageToPOT(image, fill) {
+ const obj = r.BindImageToPOT(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ fill.r,
+ fill.g,
+ fill.b,
+ fill.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageToPOT = ImageToPOT
/**
- * Blend textures adding colors (alternative)
+ * Crop an image to a defined rectangle
*
- * @type {number}
- * @constant
- */
-raylib.BLEND_ADD_COLORS = 3
-
-/**
- * Blend textures subtracting colors (alternative)
+ * @param {Image} image
+ * @param {Rectangle} crop
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.BLEND_SUBTRACT_COLORS = 4
+function ImageCrop(image, crop) {
+ const obj = r.BindImageCrop(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ crop.x,
+ crop.y,
+ crop.width,
+ crop.height
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageCrop = ImageCrop
/**
- * Blend premultiplied textures considering alpha
+ * Crop image depending on alpha value
*
- * @type {number}
- * @constant
- */
-raylib.BLEND_ALPHA_PREMULTIPLY = 5
-
-/**
- * Blend textures using custom src/dst factors (use rlSetBlendFactors())
+ * @param {Image} image
+ * @param {number} threshold
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.BLEND_CUSTOM = 6
+function ImageAlphaCrop(image, threshold) {
+ const obj = r.BindImageAlphaCrop(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ threshold
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageAlphaCrop = ImageAlphaCrop
/**
- * Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())
+ * Clear alpha channel to desired color
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {Color} color
+ * @param {number} threshold
+ *
+ * @return {undefined}
*/
-raylib.BLEND_CUSTOM_SEPARATE = 7
+function ImageAlphaClear(image, color, threshold) {
+ const obj = r.BindImageAlphaClear(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ threshold
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageAlphaClear = ImageAlphaClear
/**
- * No gesture
+ * Apply alpha mask to image
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {Image} alphaMask
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_NONE = 0
+function ImageAlphaMask(image, alphaMask) {
+ const obj = r.BindImageAlphaMask(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ alphaMask.data,
+ alphaMask.width,
+ alphaMask.height,
+ alphaMask.mipmaps,
+ alphaMask.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageAlphaMask = ImageAlphaMask
/**
- * Tap gesture
+ * Premultiply alpha channel
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_TAP = 1
+function ImageAlphaPremultiply(image) {
+ const obj = r.BindImageAlphaPremultiply(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageAlphaPremultiply = ImageAlphaPremultiply
/**
- * Double tap gesture
+ * Resize image (Bicubic scaling algorithm)
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} newWidth
+ * @param {number} newHeight
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_DOUBLETAP = 2
+function ImageResize(image, newWidth, newHeight) {
+ const obj = r.BindImageResize(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ newWidth,
+ newHeight
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageResize = ImageResize
/**
- * Hold gesture
+ * Resize image (Nearest-Neighbor scaling algorithm)
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} newWidth
+ * @param {number} newHeight
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_HOLD = 4
+function ImageResizeNN(image, newWidth, newHeight) {
+ const obj = r.BindImageResizeNN(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ newWidth,
+ newHeight
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageResizeNN = ImageResizeNN
/**
- * Drag gesture
+ * Resize canvas and fill with color
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} newWidth
+ * @param {number} newHeight
+ * @param {number} offsetX
+ * @param {number} offsetY
+ * @param {Color} fill
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_DRAG = 8
+function ImageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, fill) {
+ const obj = r.BindImageResizeCanvas(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ newWidth,
+ newHeight,
+ offsetX,
+ offsetY,
+ fill.r,
+ fill.g,
+ fill.b,
+ fill.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageResizeCanvas = ImageResizeCanvas
/**
- * Swipe right gesture
+ * Compute all mipmap levels for a provided image
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_SWIPE_RIGHT = 16
+function ImageMipmaps(image) {
+ const obj = r.BindImageMipmaps(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageMipmaps = ImageMipmaps
/**
- * Swipe left gesture
+ * Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} rBpp
+ * @param {number} gBpp
+ * @param {number} bBpp
+ * @param {number} aBpp
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_SWIPE_LEFT = 32
+function ImageDither(image, rBpp, gBpp, bBpp, aBpp) {
+ const obj = r.BindImageDither(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ rBpp,
+ gBpp,
+ bBpp,
+ aBpp
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDither = ImageDither
/**
- * Swipe up gesture
+ * Flip image vertically
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_SWIPE_UP = 64
+function ImageFlipVertical(image) {
+ const obj = r.BindImageFlipVertical(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageFlipVertical = ImageFlipVertical
/**
- * Swipe down gesture
+ * Flip image horizontally
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_SWIPE_DOWN = 128
+function ImageFlipHorizontal(image) {
+ const obj = r.BindImageFlipHorizontal(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageFlipHorizontal = ImageFlipHorizontal
/**
- * Pinch in gesture
+ * Rotate image clockwise 90deg
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_PINCH_IN = 256
+function ImageRotateCW(image) {
+ const obj = r.BindImageRotateCW(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageRotateCW = ImageRotateCW
/**
- * Pinch out gesture
+ * Rotate image counter-clockwise 90deg
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_PINCH_OUT = 512
+function ImageRotateCCW(image) {
+ const obj = r.BindImageRotateCCW(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageRotateCCW = ImageRotateCCW
/**
- * Custom camera
+ * Modify image color: tint
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_CUSTOM = 0
+function ImageColorTint(image, color) {
+ const obj = r.BindImageColorTint(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorTint = ImageColorTint
/**
- * Free camera
+ * Modify image color: invert
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_FREE = 1
+function ImageColorInvert(image) {
+ const obj = r.BindImageColorInvert(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorInvert = ImageColorInvert
/**
- * Orbital camera
+ * Modify image color: grayscale
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_ORBITAL = 2
+function ImageColorGrayscale(image) {
+ const obj = r.BindImageColorGrayscale(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorGrayscale = ImageColorGrayscale
/**
- * First person camera
+ * Modify image color: contrast (-100 to 100)
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} contrast
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_FIRST_PERSON = 3
+function ImageColorContrast(image, contrast) {
+ const obj = r.BindImageColorContrast(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ contrast
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorContrast = ImageColorContrast
/**
- * Third person camera
+ * Modify image color: brightness (-255 to 255)
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} brightness
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_THIRD_PERSON = 4
+function ImageColorBrightness(image, brightness) {
+ const obj = r.BindImageColorBrightness(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ brightness
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorBrightness = ImageColorBrightness
/**
- * Perspective projection
+ * Modify image color: replace color
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {Color} color
+ * @param {Color} replace
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_PERSPECTIVE = 0
+function ImageColorReplace(image, color, replace) {
+ const obj = r.BindImageColorReplace(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ replace.r,
+ replace.g,
+ replace.b,
+ replace.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorReplace = ImageColorReplace
/**
- * Orthographic projection
+ * Clear image background with given color
*
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_ORTHOGRAPHIC = 1
+function ImageClearBackground(dst, color) {
+ const obj = r.BindImageClearBackground(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageClearBackground = ImageClearBackground
/**
- * Npatch layout: 3x3 tiles
+ * Draw pixel within an image
*
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {number} posX
+ * @param {number} posY
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.NPATCH_NINE_PATCH = 0
+function ImageDrawPixel(dst, posX, posY, color) {
+ const obj = r.BindImageDrawPixel(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ posX,
+ posY,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawPixel = ImageDrawPixel
/**
- * Npatch layout: 1x3 tiles
+ * Draw pixel within an image (Vector version)
*
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {Vector2} position
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.NPATCH_THREE_PATCH_VERTICAL = 1
+function ImageDrawPixelV(dst, position, color) {
+ const obj = r.BindImageDrawPixelV(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ position.x,
+ position.y,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawPixelV = ImageDrawPixelV
/**
- * Npatch layout: 3x1 tiles
+ * Draw line within an image
*
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {number} startPosX
+ * @param {number} startPosY
+ * @param {number} endPosX
+ * @param {number} endPosY
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2
+function ImageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, color) {
+ const obj = r.BindImageDrawLine(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ startPosX,
+ startPosY,
+ endPosX,
+ endPosY,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawLine = ImageDrawLine
/**
+ * Draw line within an image (Vector version)
*
- *
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {Vector2} start
+ * @param {Vector2} end
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.STATE_NORMAL = 0
+function ImageDrawLineV(dst, start, end, color) {
+ const obj = r.BindImageDrawLineV(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ start.x,
+ start.y,
+ end.x,
+ end.y,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawLineV = ImageDrawLineV
/**
+ * Draw a filled circle within an image
*
+ * @param {Image} dst
+ * @param {number} centerX
+ * @param {number} centerY
+ * @param {number} radius
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.STATE_FOCUSED = 1
+function ImageDrawCircle(dst, centerX, centerY, radius, color) {
+ const obj = r.BindImageDrawCircle(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ centerX,
+ centerY,
+ radius,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawCircle = ImageDrawCircle
/**
+ * Draw a filled circle within an image (Vector version)
*
+ * @param {Image} dst
+ * @param {Vector2} center
+ * @param {number} radius
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.STATE_PRESSED = 2
+function ImageDrawCircleV(dst, center, radius, color) {
+ const obj = r.BindImageDrawCircleV(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ center.x,
+ center.y,
+ radius,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawCircleV = ImageDrawCircleV
/**
+ * Draw rectangle within an image
*
+ * @param {Image} dst
+ * @param {number} posX
+ * @param {number} posY
+ * @param {number} width
+ * @param {number} height
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.STATE_DISABLED = 3
+function ImageDrawRectangle(dst, posX, posY, width, height, color) {
+ const obj = r.BindImageDrawRectangle(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ posX,
+ posY,
+ width,
+ height,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawRectangle = ImageDrawRectangle
/**
+ * Draw rectangle within an image (Vector version)
*
+ * @param {Image} dst
+ * @param {Vector2} position
+ * @param {Vector2} size
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.TEXT_ALIGN_LEFT = 0
+function ImageDrawRectangleV(dst, position, size, color) {
+ const obj = r.BindImageDrawRectangleV(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ position.x,
+ position.y,
+ size.x,
+ size.y,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawRectangleV = ImageDrawRectangleV
/**
+ * Draw rectangle within an image
*
+ * @param {Image} dst
+ * @param {Rectangle} rec
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.TEXT_ALIGN_CENTER = 1
+function ImageDrawRectangleRec(dst, rec, color) {
+ const obj = r.BindImageDrawRectangleRec(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawRectangleRec = ImageDrawRectangleRec
/**
+ * Draw rectangle lines within an image
*
+ * @param {Image} dst
+ * @param {Rectangle} rec
+ * @param {number} thick
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.TEXT_ALIGN_RIGHT = 2
+function ImageDrawRectangleLines(dst, rec, thick, color) {
+ const obj = r.BindImageDrawRectangleLines(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawRectangleLines = ImageDrawRectangleLines
/**
+ * Draw a source image within a destination image (tint applied to source)
*
+ * @param {Image} dst
+ * @param {Image} src
+ * @param {Rectangle} srcRec
+ * @param {Rectangle} dstRec
+ * @param {Color} tint
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.DEFAULT = 0
+function ImageDraw(dst, src, srcRec, dstRec, tint) {
+ const obj = r.BindImageDraw(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ src.data,
+ src.width,
+ src.height,
+ src.mipmaps,
+ src.format,
+ srcRec.x,
+ srcRec.y,
+ srcRec.width,
+ srcRec.height,
+ dstRec.x,
+ dstRec.y,
+ dstRec.width,
+ dstRec.height,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDraw = ImageDraw
/**
- * Used also for: LABELBUTTON
+ * Draw text (using default font) within an image (destination)
*
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {string} text
+ * @param {number} posX
+ * @param {number} posY
+ * @param {number} fontSize
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.LABEL = 1
+function ImageDrawText(dst, text, posX, posY, fontSize, color) {
+ const obj = r.BindImageDrawText(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ text,
+ posX,
+ posY,
+ fontSize,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawText = ImageDrawText
/**
+ * Draw text (custom sprite font) within an image (destination)
*
+ * @param {Image} dst
+ * @param {Font} font
+ * @param {string} text
+ * @param {Vector2} position
+ * @param {number} fontSize
+ * @param {number} spacing
+ * @param {Color} tint
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.BUTTON = 2
+function ImageDrawTextEx(dst, font, text, position, fontSize, spacing, tint) {
+ const obj = r.BindImageDrawTextEx(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ text,
+ position.x,
+ position.y,
+ fontSize,
+ spacing,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawTextEx = ImageDrawTextEx
/**
- * Used also for: TOGGLEGROUP
+ * Generate GPU mipmaps for a texture
*
- * @type {number}
- * @constant
- */
-raylib.TOGGLE = 3
-
-/**
- * Used also for: SLIDERBAR
+ * @param {Texture2D} texture
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.SLIDER = 4
+function GenTextureMipmaps(texture) {
+ const obj = r.BindGenTextureMipmaps(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ texture[key] = obj[key]
+ }
+ }
+}
+raylib.GenTextureMipmaps = GenTextureMipmaps
/**
+ * Upload mesh vertex data in GPU and provide VAO/VBO ids
*
+ * @param {Mesh} mesh
+ * @param {boolean} dynamic
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.PROGRESSBAR = 5
+function UploadMesh(mesh, dynamic) {
+ const obj = r.BindUploadMesh(
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId,
+ dynamic
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ mesh[key] = obj[key]
+ }
+ }
+}
+raylib.UploadMesh = UploadMesh
/**
+ * Compute mesh tangents
*
+ * @param {Mesh} mesh
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.CHECKBOX = 6
+function GenMeshTangents(mesh) {
+ const obj = r.BindGenMeshTangents(
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ mesh[key] = obj[key]
+ }
+ }
+}
+raylib.GenMeshTangents = GenMeshTangents
/**
+ * Set material for a mesh
*
+ * @param {Model} model
+ * @param {number} meshId
+ * @param {number} materialId
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.COMBOBOX = 7
+function SetModelMeshMaterial(model, meshId, materialId) {
+ const obj = r.BindSetModelMeshMaterial(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose,
+ meshId,
+ materialId
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ model[key] = obj[key]
+ }
+ }
+}
+raylib.SetModelMeshMaterial = SetModelMeshMaterial
/**
+ * Crop a wave to defined samples range
*
+ * @param {Wave} wave
+ * @param {number} initSample
+ * @param {number} finalSample
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.DROPDOWNBOX = 8
+function WaveCrop(wave, initSample, finalSample) {
+ const obj = r.BindWaveCrop(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data,
+ initSample,
+ finalSample
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ wave[key] = obj[key]
+ }
+ }
+}
+raylib.WaveCrop = WaveCrop
/**
- * Used also for: TEXTBOXMULTI
+ * Convert wave data to desired format
*
- * @type {number}
- * @constant
+ * @param {Wave} wave
+ * @param {number} sampleRate
+ * @param {number} sampleSize
+ * @param {number} channels
+ *
+ * @return {undefined}
*/
-raylib.TEXTBOX = 9
+function WaveFormat(wave, sampleRate, sampleSize, channels) {
+ const obj = r.BindWaveFormat(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data,
+ sampleRate,
+ sampleSize,
+ channels
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ wave[key] = obj[key]
+ }
+ }
+}
+raylib.WaveFormat = WaveFormat
/**
+ * Color, 4 components, R8G8B8A8 (32bit)
*
+ * @param {number} r - Color red value
+ * @param {number} g - Color green value
+ * @param {number} b - Color blue value
+ * @param {number} a - Color alpha value
*
- * @type {number}
- * @constant
+ * @return {Color} The new Color.
*/
-raylib.VALUEBOX = 10
+function Color(r,g,b,a) {
+ return {r,g,b,a}
+}
+raylib.Color = Color
/**
- * Uses: BUTTON, VALUEBOX
+ * Vector2, 2 components
*
- * @type {number}
- * @constant
+ * @param {number} x - Vector x component
+ * @param {number} y - Vector y component
+ *
+ * @return {Vector2} The new Vector2.
*/
-raylib.SPINNER = 11
+function Vector2(x,y) {
+ return {x,y}
+}
+raylib.Vector2 = Vector2
/**
+ * Vector3, 3 components
*
+ * @param {number} x - Vector x component
+ * @param {number} y - Vector y component
+ * @param {number} z - Vector z component
*
- * @type {number}
- * @constant
+ * @return {Vector3} The new Vector3.
*/
-raylib.LISTVIEW = 12
+function Vector3(x,y,z) {
+ return {x,y,z}
+}
+raylib.Vector3 = Vector3
/**
+ * Vector4, 4 components
*
+ * @param {number} x - Vector x component
+ * @param {number} y - Vector y component
+ * @param {number} z - Vector z component
+ * @param {number} w - Vector w component
*
- * @type {number}
- * @constant
+ * @return {Vector4} The new Vector4.
*/
-raylib.COLORPICKER = 13
+function Vector4(x,y,z,w) {
+ return {x,y,z,w}
+}
+raylib.Vector4 = Vector4
/**
+ * Rectangle, 4 components
*
+ * @param {number} x - Rectangle top-left corner position x
+ * @param {number} y - Rectangle top-left corner position y
+ * @param {number} width - Rectangle width
+ * @param {number} height - Rectangle height
*
- * @type {number}
- * @constant
+ * @return {Rectangle} The new Rectangle.
*/
-raylib.SCROLLBAR = 14
+function Rectangle(x,y,width,height) {
+ return {x,y,width,height}
+}
+raylib.Rectangle = Rectangle
/**
+ * Camera2D, defines position/orientation in 2d space
*
+ * @param {Vector2} offset - Camera offset (displacement from target)
+ * @param {Vector2} target - Camera target (rotation and zoom origin)
+ * @param {number} rotation - Camera rotation in degrees
+ * @param {number} zoom - Camera zoom (scaling), should be 1.0f by default
*
- * @type {number}
- * @constant
+ * @return {Camera2D} The new Camera2D.
*/
-raylib.STATUSBAR = 15
+function Camera2D(offset,target,rotation,zoom) {
+ return {offset,target,rotation,zoom}
+}
+raylib.Camera2D = Camera2D
/**
+ * Camera, defines position/orientation in 3d space
*
+ * @param {Vector3} position - Camera position
+ * @param {Vector3} target - Camera target it looks-at
+ * @param {Vector3} up - Camera up vector (rotation over its axis)
+ * @param {number} fovy - Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic
+ * @param {number} projection - Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
*
- * @type {number}
- * @constant
+ * @return {Camera3D} The new Camera3D.
*/
-raylib.BORDER_COLOR_NORMAL = 0
+function Camera3D(position,target,up,fovy,projection) {
+ return {position,target,up,fovy,projection}
+}
+raylib.Camera3D = Camera3D
+raylib.Camera = raylib.Camera3D
+
+// WRAPPED TYPED SHADER FUNCTIONS
/**
- *
- *
- * @type {number}
- * @constant
+ * Set shader uniform value float
+ *
+ * @param {Shader} shader
+ * @param {number} locIndex
+ * @param {number} value
+ *
+ * @returns {undefined}
*/
-raylib.BASE_COLOR_NORMAL = 1
+function SetShaderFloat(shader, locIndex, value) {
+ return r.BindSetShaderFloat(
+ shader.id,
+ shader.locs,
+ locIndex,
+ value
+ )
+}
+raylib.SetShaderFloat = SetShaderFloat
/**
- *
- *
- * @type {number}
- * @constant
+ * Set shader uniform value float
+ *
+ * @param {Shader} shader
+ * @param {number} locIndex
+ * @param {number} value
+ *
+ * @returns {undefined}
*/
-raylib.TEXT_COLOR_NORMAL = 2
+function SetShaderInt(shader, locIndex, value) {
+ return r.BindSetShaderInt(
+ shader.id,
+ shader.locs,
+ locIndex,
+ value
+ )
+}
+raylib.SetShaderInt = SetShaderInt
/**
- *
- *
- * @type {number}
- * @constant
+ * Set shader uniform value vector2
+ *
+ * @param {Shader} shader
+ * @param {number} locIndex
+ * @param {Vector2} value
+ *
+ * @returns {undefined}
*/
-raylib.BORDER_COLOR_FOCUSED = 3
+function SetShaderVec2(shader, locIndex, value) {
+ return r.BindSetShaderVec2(
+ shader.id,
+ shader.locs,
+ locIndex,
+ value.x,
+ value.y
+ )
+}
+raylib.SetShaderVec2 = SetShaderVec2
/**
- *
- *
- * @type {number}
- * @constant
+ * Set shader uniform value vector3
+ *
+ * @param {Shader} shader
+ * @param {number} locIndex
+ * @param {Vector3} value
+ *
+ * @returns {undefined}
*/
-raylib.BASE_COLOR_FOCUSED = 4
+function SetShaderVec3(shader, locIndex, value) {
+ return r.BindSetShaderVec3(
+ shader.id,
+ shader.locs,
+ locIndex,
+ value.x,
+ value.y,
+ value.z
+ )
+}
+raylib.SetShaderVec3 = SetShaderVec3
/**
- *
- *
- * @type {number}
- * @constant
+ * Set shader uniform value vector4
+ *
+ * @param {Shader} shader
+ * @param {number} locIndex
+ * @param {Vector4} value
+ *
+ * @returns {undefined}
*/
-raylib.TEXT_COLOR_FOCUSED = 5
+function SetShaderVec4(shader, locIndex, value) {
+ return r.BindSetShaderVec4(
+ shader.id,
+ shader.locs,
+ locIndex,
+ value.x,
+ value.y,
+ value.z,
+ value.w
+ )
+}
+raylib.SetShaderVec4 = SetShaderVec4
/**
- *
+ * Set to try enabling V-Sync on GPU
*
* @type {number}
* @constant
*/
-raylib.BORDER_COLOR_PRESSED = 6
+raylib.FLAG_VSYNC_HINT = 64
/**
- *
+ * Set to run program in fullscreen
*
* @type {number}
* @constant
*/
-raylib.BASE_COLOR_PRESSED = 7
+raylib.FLAG_FULLSCREEN_MODE = 2
/**
- *
+ * Set to allow resizable window
*
* @type {number}
* @constant
*/
-raylib.TEXT_COLOR_PRESSED = 8
+raylib.FLAG_WINDOW_RESIZABLE = 4
/**
- *
+ * Set to disable window decoration (frame and buttons)
*
* @type {number}
* @constant
*/
-raylib.BORDER_COLOR_DISABLED = 9
+raylib.FLAG_WINDOW_UNDECORATED = 8
/**
- *
+ * Set to hide window
*
* @type {number}
* @constant
*/
-raylib.BASE_COLOR_DISABLED = 10
+raylib.FLAG_WINDOW_HIDDEN = 128
/**
- *
+ * Set to minimize window (iconify)
*
* @type {number}
* @constant
*/
-raylib.TEXT_COLOR_DISABLED = 11
+raylib.FLAG_WINDOW_MINIMIZED = 512
/**
- *
+ * Set to maximize window (expanded to monitor)
*
* @type {number}
* @constant
*/
-raylib.BORDER_WIDTH = 12
+raylib.FLAG_WINDOW_MAXIMIZED = 1024
/**
- *
+ * Set to window non focused
*
* @type {number}
* @constant
*/
-raylib.TEXT_PADDING = 13
+raylib.FLAG_WINDOW_UNFOCUSED = 2048
/**
- *
+ * Set to window always on top
*
* @type {number}
* @constant
*/
-raylib.TEXT_ALIGNMENT = 14
+raylib.FLAG_WINDOW_TOPMOST = 4096
/**
- *
+ * Set to allow windows running while minimized
*
* @type {number}
* @constant
*/
-raylib.RESERVED = 15
+raylib.FLAG_WINDOW_ALWAYS_RUN = 256
/**
- * Text size (glyphs max height)
+ * Set to allow transparent framebuffer
*
* @type {number}
* @constant
*/
-raylib.TEXT_SIZE = 16
+raylib.FLAG_WINDOW_TRANSPARENT = 16
/**
- * Text spacing between glyphs
+ * Set to support HighDPI
*
* @type {number}
* @constant
*/
-raylib.TEXT_SPACING = 17
+raylib.FLAG_WINDOW_HIGHDPI = 8192
/**
- * Line control color
+ * Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED
*
* @type {number}
* @constant
*/
-raylib.LINE_COLOR = 18
+raylib.FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384
/**
- * Background color
+ * Set to run program in borderless windowed mode
*
* @type {number}
* @constant
*/
-raylib.BACKGROUND_COLOR = 19
+raylib.FLAG_BORDERLESS_WINDOWED_MODE = 32768
/**
- * ToggleGroup separation between toggles
+ * Set to try enabling MSAA 4X
*
* @type {number}
* @constant
*/
-raylib.GROUP_PADDING = 16
+raylib.FLAG_MSAA_4X_HINT = 32
/**
- * Slider size of internal bar
+ * Set to try enabling interlaced video format (for V3D)
*
* @type {number}
* @constant
*/
-raylib.SLIDER_WIDTH = 16
+raylib.FLAG_INTERLACED_HINT = 65536
/**
- * Slider/SliderBar internal bar padding
+ * Display all logs
*
* @type {number}
* @constant
*/
-raylib.SLIDER_PADDING = 17
+raylib.LOG_ALL = 0
/**
- * ProgressBar internal padding
+ * Trace logging, intended for internal use only
*
* @type {number}
* @constant
*/
-raylib.PROGRESS_PADDING = 16
+raylib.LOG_TRACE = 1
/**
- *
+ * Debug logging, used for internal debugging, it should be disabled on release builds
*
* @type {number}
* @constant
*/
-raylib.ARROWS_SIZE = 16
+raylib.LOG_DEBUG = 2
/**
- *
+ * Info logging, used for program execution info
*
* @type {number}
* @constant
*/
-raylib.ARROWS_VISIBLE = 17
+raylib.LOG_INFO = 3
/**
- * (SLIDERBAR, SLIDER_PADDING)
+ * Warning logging, used on recoverable failures
*
* @type {number}
* @constant
*/
-raylib.SCROLL_SLIDER_PADDING = 18
+raylib.LOG_WARNING = 4
/**
- *
+ * Error logging, used on unrecoverable failures
*
* @type {number}
* @constant
*/
-raylib.SCROLL_SLIDER_SIZE = 19
+raylib.LOG_ERROR = 5
/**
- *
+ * Fatal logging, used to abort program: exit(EXIT_FAILURE)
*
* @type {number}
* @constant
*/
-raylib.SCROLL_PADDING = 20
+raylib.LOG_FATAL = 6
/**
- *
+ * Disable logging
*
* @type {number}
* @constant
*/
-raylib.SCROLL_SPEED = 21
+raylib.LOG_NONE = 7
/**
- * CheckBox internal check padding
+ * Key: NULL, used for no key pressed
*
* @type {number}
* @constant
*/
-raylib.CHECK_PADDING = 16
+raylib.KEY_NULL = 0
/**
- * ComboBox right button width
+ * Key: '
*
* @type {number}
* @constant
*/
-raylib.COMBO_BUTTON_WIDTH = 16
+raylib.KEY_APOSTROPHE = 39
/**
- * ComboBox button separation
+ * Key: ,
*
* @type {number}
* @constant
*/
-raylib.COMBO_BUTTON_SPACING = 17
+raylib.KEY_COMMA = 44
/**
- * DropdownBox arrow separation from border and items
+ * Key: -
*
* @type {number}
* @constant
*/
-raylib.ARROW_PADDING = 16
+raylib.KEY_MINUS = 45
/**
- * DropdownBox items separation
+ * Key: .
*
* @type {number}
* @constant
*/
-raylib.DROPDOWN_ITEMS_SPACING = 17
+raylib.KEY_PERIOD = 46
/**
- * TextBox/TextBoxMulti/ValueBox/Spinner inner text padding
+ * Key: /
*
* @type {number}
* @constant
*/
-raylib.TEXT_INNER_PADDING = 16
+raylib.KEY_SLASH = 47
/**
- * TextBoxMulti lines separation
+ * Key: 0
*
* @type {number}
* @constant
*/
-raylib.TEXT_LINES_SPACING = 17
+raylib.KEY_ZERO = 48
/**
- * Spinner left/right buttons width
+ * Key: 1
*
* @type {number}
* @constant
*/
-raylib.SPIN_BUTTON_WIDTH = 16
+raylib.KEY_ONE = 49
/**
- * Spinner buttons separation
+ * Key: 2
*
* @type {number}
* @constant
*/
-raylib.SPIN_BUTTON_SPACING = 17
+raylib.KEY_TWO = 50
/**
- * ListView items height
+ * Key: 3
*
* @type {number}
* @constant
*/
-raylib.LIST_ITEMS_HEIGHT = 16
+raylib.KEY_THREE = 51
/**
- * ListView items separation
+ * Key: 4
*
* @type {number}
* @constant
*/
-raylib.LIST_ITEMS_SPACING = 17
+raylib.KEY_FOUR = 52
/**
- * ListView scrollbar size (usually width)
+ * Key: 5
*
* @type {number}
* @constant
*/
-raylib.SCROLLBAR_WIDTH = 18
+raylib.KEY_FIVE = 53
/**
- * ListView scrollbar side (0-left, 1-right)
+ * Key: 6
*
* @type {number}
* @constant
*/
-raylib.SCROLLBAR_SIDE = 19
+raylib.KEY_SIX = 54
/**
- *
+ * Key: 7
*
* @type {number}
* @constant
*/
-raylib.COLOR_SELECTOR_SIZE = 16
+raylib.KEY_SEVEN = 55
/**
- * ColorPicker right hue bar width
+ * Key: 8
*
* @type {number}
* @constant
*/
-raylib.HUEBAR_WIDTH = 17
+raylib.KEY_EIGHT = 56
/**
- * ColorPicker right hue bar separation from panel
+ * Key: 9
*
* @type {number}
* @constant
*/
-raylib.HUEBAR_PADDING = 18
+raylib.KEY_NINE = 57
/**
- * ColorPicker right hue bar selector height
+ * Key: ;
*
* @type {number}
* @constant
*/
-raylib.HUEBAR_SELECTOR_HEIGHT = 19
+raylib.KEY_SEMICOLON = 59
/**
- * ColorPicker right hue bar selector overflow
+ * Key: =
*
* @type {number}
* @constant
*/
-raylib.HUEBAR_SELECTOR_OVERFLOW = 20
+raylib.KEY_EQUAL = 61
/**
- *
+ * Key: A | a
*
* @type {number}
* @constant
*/
-raylib.ICON_NONE = 0
+raylib.KEY_A = 65
/**
- *
+ * Key: B | b
*
* @type {number}
* @constant
*/
-raylib.ICON_FOLDER_FILE_OPEN = 1
+raylib.KEY_B = 66
/**
- *
+ * Key: C | c
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_SAVE_CLASSIC = 2
+raylib.KEY_C = 67
/**
- *
+ * Key: D | d
*
* @type {number}
* @constant
*/
-raylib.ICON_FOLDER_OPEN = 3
+raylib.KEY_D = 68
/**
- *
+ * Key: E | e
*
* @type {number}
* @constant
*/
-raylib.ICON_FOLDER_SAVE = 4
+raylib.KEY_E = 69
/**
- *
+ * Key: F | f
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_OPEN = 5
+raylib.KEY_F = 70
/**
- *
+ * Key: G | g
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_SAVE = 6
+raylib.KEY_G = 71
/**
- *
+ * Key: H | h
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_EXPORT = 7
+raylib.KEY_H = 72
/**
- *
+ * Key: I | i
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_ADD = 8
+raylib.KEY_I = 73
/**
- *
+ * Key: J | j
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_DELETE = 9
+raylib.KEY_J = 74
/**
- *
+ * Key: K | k
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_TEXT = 10
+raylib.KEY_K = 75
/**
- *
+ * Key: L | l
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_AUDIO = 11
+raylib.KEY_L = 76
/**
- *
+ * Key: M | m
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_IMAGE = 12
+raylib.KEY_M = 77
/**
- *
+ * Key: N | n
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_PLAY = 13
+raylib.KEY_N = 78
/**
- *
+ * Key: O | o
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_VIDEO = 14
+raylib.KEY_O = 79
/**
- *
+ * Key: P | p
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_INFO = 15
+raylib.KEY_P = 80
/**
- *
+ * Key: Q | q
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_COPY = 16
+raylib.KEY_Q = 81
/**
- *
+ * Key: R | r
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_CUT = 17
+raylib.KEY_R = 82
/**
- *
+ * Key: S | s
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_PASTE = 18
+raylib.KEY_S = 83
/**
- *
+ * Key: T | t
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_HAND = 19
+raylib.KEY_T = 84
/**
- *
+ * Key: U | u
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_POINTER = 20
+raylib.KEY_U = 85
/**
- *
+ * Key: V | v
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_CLASSIC = 21
+raylib.KEY_V = 86
/**
- *
+ * Key: W | w
*
* @type {number}
* @constant
*/
-raylib.ICON_PENCIL = 22
+raylib.KEY_W = 87
/**
- *
+ * Key: X | x
*
* @type {number}
* @constant
*/
-raylib.ICON_PENCIL_BIG = 23
+raylib.KEY_X = 88
/**
- *
+ * Key: Y | y
*
* @type {number}
* @constant
*/
-raylib.ICON_BRUSH_CLASSIC = 24
+raylib.KEY_Y = 89
/**
- *
+ * Key: Z | z
*
* @type {number}
* @constant
*/
-raylib.ICON_BRUSH_PAINTER = 25
+raylib.KEY_Z = 90
/**
- *
+ * Key: [
*
* @type {number}
* @constant
*/
-raylib.ICON_WATER_DROP = 26
+raylib.KEY_LEFT_BRACKET = 91
/**
- *
+ * Key: '\'
*
* @type {number}
* @constant
*/
-raylib.ICON_COLOR_PICKER = 27
+raylib.KEY_BACKSLASH = 92
/**
- *
+ * Key: ]
*
* @type {number}
* @constant
*/
-raylib.ICON_RUBBER = 28
+raylib.KEY_RIGHT_BRACKET = 93
/**
- *
+ * Key: `
*
* @type {number}
* @constant
*/
-raylib.ICON_COLOR_BUCKET = 29
+raylib.KEY_GRAVE = 96
/**
- *
+ * Key: Space
*
* @type {number}
* @constant
*/
-raylib.ICON_TEXT_T = 30
+raylib.KEY_SPACE = 32
/**
- *
+ * Key: Esc
*
* @type {number}
* @constant
*/
-raylib.ICON_TEXT_A = 31
+raylib.KEY_ESCAPE = 256
/**
- *
+ * Key: Enter
*
* @type {number}
* @constant
*/
-raylib.ICON_SCALE = 32
+raylib.KEY_ENTER = 257
/**
- *
+ * Key: Tab
*
* @type {number}
* @constant
*/
-raylib.ICON_RESIZE = 33
+raylib.KEY_TAB = 258
/**
- *
+ * Key: Backspace
*
* @type {number}
* @constant
*/
-raylib.ICON_FILTER_POINT = 34
+raylib.KEY_BACKSPACE = 259
/**
- *
+ * Key: Ins
*
* @type {number}
* @constant
*/
-raylib.ICON_FILTER_BILINEAR = 35
+raylib.KEY_INSERT = 260
/**
- *
+ * Key: Del
*
* @type {number}
* @constant
*/
-raylib.ICON_CROP = 36
+raylib.KEY_DELETE = 261
/**
- *
+ * Key: Cursor right
*
* @type {number}
* @constant
*/
-raylib.ICON_CROP_ALPHA = 37
+raylib.KEY_RIGHT = 262
/**
- *
+ * Key: Cursor left
*
* @type {number}
* @constant
*/
-raylib.ICON_SQUARE_TOGGLE = 38
+raylib.KEY_LEFT = 263
/**
- *
+ * Key: Cursor down
*
* @type {number}
* @constant
*/
-raylib.ICON_SYMMETRY = 39
+raylib.KEY_DOWN = 264
/**
- *
+ * Key: Cursor up
*
* @type {number}
* @constant
*/
-raylib.ICON_SYMMETRY_HORIZONTAL = 40
+raylib.KEY_UP = 265
/**
- *
+ * Key: Page up
*
* @type {number}
* @constant
*/
-raylib.ICON_SYMMETRY_VERTICAL = 41
+raylib.KEY_PAGE_UP = 266
/**
- *
+ * Key: Page down
*
* @type {number}
* @constant
*/
-raylib.ICON_LENS = 42
+raylib.KEY_PAGE_DOWN = 267
/**
- *
+ * Key: Home
*
* @type {number}
* @constant
*/
-raylib.ICON_LENS_BIG = 43
+raylib.KEY_HOME = 268
/**
- *
+ * Key: End
*
* @type {number}
* @constant
*/
-raylib.ICON_EYE_ON = 44
+raylib.KEY_END = 269
/**
- *
+ * Key: Caps lock
*
* @type {number}
* @constant
*/
-raylib.ICON_EYE_OFF = 45
+raylib.KEY_CAPS_LOCK = 280
/**
- *
+ * Key: Scroll down
*
* @type {number}
* @constant
*/
-raylib.ICON_FILTER_TOP = 46
+raylib.KEY_SCROLL_LOCK = 281
/**
- *
+ * Key: Num lock
*
* @type {number}
* @constant
*/
-raylib.ICON_FILTER = 47
+raylib.KEY_NUM_LOCK = 282
/**
- *
+ * Key: Print screen
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_POINT = 48
+raylib.KEY_PRINT_SCREEN = 283
/**
- *
+ * Key: Pause
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_SMALL = 49
+raylib.KEY_PAUSE = 284
/**
- *
+ * Key: F1
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_BIG = 50
+raylib.KEY_F1 = 290
/**
- *
+ * Key: F2
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_MOVE = 51
+raylib.KEY_F2 = 291
/**
- *
+ * Key: F3
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_MOVE = 52
+raylib.KEY_F3 = 292
/**
- *
+ * Key: F4
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE = 53
+raylib.KEY_F4 = 293
/**
- *
+ * Key: F5
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE_RIGHT = 54
+raylib.KEY_F5 = 294
/**
- *
+ * Key: F6
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE_LEFT = 55
+raylib.KEY_F6 = 295
/**
- *
+ * Key: F7
*
* @type {number}
* @constant
*/
-raylib.ICON_UNDO = 56
+raylib.KEY_F7 = 296
/**
- *
+ * Key: F8
*
* @type {number}
* @constant
*/
-raylib.ICON_REDO = 57
+raylib.KEY_F8 = 297
/**
- *
+ * Key: F9
*
* @type {number}
* @constant
*/
-raylib.ICON_REREDO = 58
+raylib.KEY_F9 = 298
/**
- *
+ * Key: F10
*
* @type {number}
* @constant
*/
-raylib.ICON_MUTATE = 59
+raylib.KEY_F10 = 299
/**
- *
+ * Key: F11
*
* @type {number}
* @constant
*/
-raylib.ICON_ROTATE = 60
+raylib.KEY_F11 = 300
/**
- *
+ * Key: F12
*
* @type {number}
* @constant
*/
-raylib.ICON_REPEAT = 61
+raylib.KEY_F12 = 301
/**
- *
+ * Key: Shift left
*
* @type {number}
* @constant
*/
-raylib.ICON_SHUFFLE = 62
+raylib.KEY_LEFT_SHIFT = 340
/**
- *
+ * Key: Control left
*
* @type {number}
* @constant
*/
-raylib.ICON_EMPTYBOX = 63
+raylib.KEY_LEFT_CONTROL = 341
/**
- *
+ * Key: Alt left
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET = 64
+raylib.KEY_LEFT_ALT = 342
/**
- *
+ * Key: Super left
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_SMALL_FILL = 65
+raylib.KEY_LEFT_SUPER = 343
/**
- *
+ * Key: Shift right
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_BIG_FILL = 66
+raylib.KEY_RIGHT_SHIFT = 344
/**
- *
+ * Key: Control right
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_MOVE_FILL = 67
+raylib.KEY_RIGHT_CONTROL = 345
/**
- *
+ * Key: Alt right
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_MOVE_FILL = 68
+raylib.KEY_RIGHT_ALT = 346
/**
- *
+ * Key: Super right
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE_FILL = 69
+raylib.KEY_RIGHT_SUPER = 347
/**
- *
+ * Key: KB menu
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE_RIGHT_FILL = 70
+raylib.KEY_KB_MENU = 348
/**
- *
+ * Key: Keypad 0
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE_LEFT_FILL = 71
+raylib.KEY_KP_0 = 320
/**
- *
+ * Key: Keypad 1
*
* @type {number}
* @constant
*/
-raylib.ICON_UNDO_FILL = 72
+raylib.KEY_KP_1 = 321
/**
- *
+ * Key: Keypad 2
*
* @type {number}
* @constant
*/
-raylib.ICON_REDO_FILL = 73
+raylib.KEY_KP_2 = 322
/**
- *
+ * Key: Keypad 3
*
* @type {number}
* @constant
*/
-raylib.ICON_REREDO_FILL = 74
+raylib.KEY_KP_3 = 323
/**
- *
+ * Key: Keypad 4
*
* @type {number}
* @constant
*/
-raylib.ICON_MUTATE_FILL = 75
+raylib.KEY_KP_4 = 324
/**
- *
+ * Key: Keypad 5
*
* @type {number}
* @constant
*/
-raylib.ICON_ROTATE_FILL = 76
+raylib.KEY_KP_5 = 325
/**
- *
+ * Key: Keypad 6
*
* @type {number}
* @constant
*/
-raylib.ICON_REPEAT_FILL = 77
+raylib.KEY_KP_6 = 326
/**
- *
+ * Key: Keypad 7
*
* @type {number}
* @constant
*/
-raylib.ICON_SHUFFLE_FILL = 78
+raylib.KEY_KP_7 = 327
/**
- *
+ * Key: Keypad 8
*
* @type {number}
* @constant
*/
-raylib.ICON_EMPTYBOX_SMALL = 79
+raylib.KEY_KP_8 = 328
/**
- *
+ * Key: Keypad 9
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX = 80
+raylib.KEY_KP_9 = 329
/**
- *
+ * Key: Keypad .
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_TOP = 81
+raylib.KEY_KP_DECIMAL = 330
/**
- *
+ * Key: Keypad /
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_TOP_RIGHT = 82
+raylib.KEY_KP_DIVIDE = 331
/**
- *
+ * Key: Keypad *
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_RIGHT = 83
+raylib.KEY_KP_MULTIPLY = 332
/**
- *
+ * Key: Keypad -
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_BOTTOM_RIGHT = 84
+raylib.KEY_KP_SUBTRACT = 333
/**
- *
+ * Key: Keypad +
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_BOTTOM = 85
+raylib.KEY_KP_ADD = 334
/**
- *
+ * Key: Keypad Enter
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_BOTTOM_LEFT = 86
+raylib.KEY_KP_ENTER = 335
/**
- *
+ * Key: Keypad =
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_LEFT = 87
+raylib.KEY_KP_EQUAL = 336
/**
- *
+ * Key: Android back button
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_TOP_LEFT = 88
+raylib.KEY_BACK = 4
/**
- *
+ * Key: Android menu button
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_CENTER = 89
+raylib.KEY_MENU = 82
/**
- *
+ * Key: Android volume up button
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_CIRCLE_MASK = 90
+raylib.KEY_VOLUME_UP = 24
/**
- *
+ * Key: Android volume down button
*
* @type {number}
* @constant
*/
-raylib.ICON_POT = 91
+raylib.KEY_VOLUME_DOWN = 25
/**
- *
+ * Mouse button left
*
* @type {number}
* @constant
*/
-raylib.ICON_ALPHA_MULTIPLY = 92
+raylib.MOUSE_BUTTON_LEFT = 0
/**
- *
+ * Mouse button right
*
* @type {number}
* @constant
*/
-raylib.ICON_ALPHA_CLEAR = 93
+raylib.MOUSE_BUTTON_RIGHT = 1
/**
- *
+ * Mouse button middle (pressed wheel)
*
* @type {number}
* @constant
*/
-raylib.ICON_DITHERING = 94
+raylib.MOUSE_BUTTON_MIDDLE = 2
/**
- *
+ * Mouse button side (advanced mouse device)
*
* @type {number}
* @constant
*/
-raylib.ICON_MIPMAPS = 95
+raylib.MOUSE_BUTTON_SIDE = 3
/**
- *
+ * Mouse button extra (advanced mouse device)
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_GRID = 96
+raylib.MOUSE_BUTTON_EXTRA = 4
/**
- *
+ * Mouse button forward (advanced mouse device)
*
* @type {number}
* @constant
*/
-raylib.ICON_GRID = 97
+raylib.MOUSE_BUTTON_FORWARD = 5
/**
- *
+ * Mouse button back (advanced mouse device)
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_CORNERS_SMALL = 98
+raylib.MOUSE_BUTTON_BACK = 6
/**
- *
+ * Default pointer shape
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_CORNERS_BIG = 99
+raylib.MOUSE_CURSOR_DEFAULT = 0
/**
- *
+ * Arrow shape
*
* @type {number}
* @constant
*/
-raylib.ICON_FOUR_BOXES = 100
+raylib.MOUSE_CURSOR_ARROW = 1
/**
- *
+ * Text writing cursor shape
*
* @type {number}
* @constant
*/
-raylib.ICON_GRID_FILL = 101
+raylib.MOUSE_CURSOR_IBEAM = 2
/**
- *
+ * Cross shape
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_MULTISIZE = 102
+raylib.MOUSE_CURSOR_CROSSHAIR = 3
/**
- *
+ * Pointing hand cursor
*
* @type {number}
* @constant
*/
-raylib.ICON_ZOOM_SMALL = 103
+raylib.MOUSE_CURSOR_POINTING_HAND = 4
/**
- *
+ * Horizontal resize/move arrow shape
*
* @type {number}
* @constant
*/
-raylib.ICON_ZOOM_MEDIUM = 104
+raylib.MOUSE_CURSOR_RESIZE_EW = 5
/**
- *
+ * Vertical resize/move arrow shape
*
* @type {number}
* @constant
*/
-raylib.ICON_ZOOM_BIG = 105
+raylib.MOUSE_CURSOR_RESIZE_NS = 6
/**
- *
+ * Top-left to bottom-right diagonal resize/move arrow shape
*
* @type {number}
* @constant
*/
-raylib.ICON_ZOOM_ALL = 106
+raylib.MOUSE_CURSOR_RESIZE_NWSE = 7
/**
- *
+ * The top-right to bottom-left diagonal resize/move arrow shape
*
* @type {number}
* @constant
*/
-raylib.ICON_ZOOM_CENTER = 107
+raylib.MOUSE_CURSOR_RESIZE_NESW = 8
/**
- *
+ * The omnidirectional resize/move cursor shape
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_DOTS_SMALL = 108
+raylib.MOUSE_CURSOR_RESIZE_ALL = 9
/**
- *
+ * The operation-not-allowed shape
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_DOTS_BIG = 109
+raylib.MOUSE_CURSOR_NOT_ALLOWED = 10
/**
- *
+ * Unknown button, just for error checking
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_CONCENTRIC = 110
+raylib.GAMEPAD_BUTTON_UNKNOWN = 0
/**
- *
+ * Gamepad left DPAD up button
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_GRID_BIG = 111
+raylib.GAMEPAD_BUTTON_LEFT_FACE_UP = 1
/**
- *
+ * Gamepad left DPAD right button
*
* @type {number}
* @constant
*/
-raylib.ICON_OK_TICK = 112
+raylib.GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2
/**
- *
+ * Gamepad left DPAD down button
*
* @type {number}
* @constant
*/
-raylib.ICON_CROSS = 113
+raylib.GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3
/**
- *
+ * Gamepad left DPAD left button
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_LEFT = 114
+raylib.GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4
/**
- *
+ * Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_RIGHT = 115
+raylib.GAMEPAD_BUTTON_RIGHT_FACE_UP = 5
/**
- *
+ * Gamepad right button right (i.e. PS3: Square, Xbox: X)
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_DOWN = 116
+raylib.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6
/**
- *
+ * Gamepad right button down (i.e. PS3: Cross, Xbox: A)
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_UP = 117
+raylib.GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7
/**
- *
+ * Gamepad right button left (i.e. PS3: Circle, Xbox: B)
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_LEFT_FILL = 118
+raylib.GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8
/**
- *
+ * Gamepad top/back trigger left (first), it could be a trailing button
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_RIGHT_FILL = 119
+raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9
/**
- *
+ * Gamepad top/back trigger left (second), it could be a trailing button
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_DOWN_FILL = 120
+raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10
/**
- *
+ * Gamepad top/back trigger right (one), it could be a trailing button
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_UP_FILL = 121
+raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11
/**
- *
+ * Gamepad top/back trigger right (second), it could be a trailing button
*
* @type {number}
* @constant
*/
-raylib.ICON_AUDIO = 122
+raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12
/**
- *
+ * Gamepad center buttons, left one (i.e. PS3: Select)
*
* @type {number}
* @constant
*/
-raylib.ICON_FX = 123
+raylib.GAMEPAD_BUTTON_MIDDLE_LEFT = 13
/**
- *
+ * Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)
*
* @type {number}
* @constant
*/
-raylib.ICON_WAVE = 124
+raylib.GAMEPAD_BUTTON_MIDDLE = 14
/**
- *
+ * Gamepad center buttons, right one (i.e. PS3: Start)
*
* @type {number}
* @constant
*/
-raylib.ICON_WAVE_SINUS = 125
+raylib.GAMEPAD_BUTTON_MIDDLE_RIGHT = 15
/**
- *
+ * Gamepad joystick pressed button left
*
* @type {number}
* @constant
*/
-raylib.ICON_WAVE_SQUARE = 126
+raylib.GAMEPAD_BUTTON_LEFT_THUMB = 16
/**
- *
+ * Gamepad joystick pressed button right
*
* @type {number}
* @constant
*/
-raylib.ICON_WAVE_TRIANGULAR = 127
+raylib.GAMEPAD_BUTTON_RIGHT_THUMB = 17
/**
- *
+ * Gamepad left stick X axis
*
* @type {number}
* @constant
*/
-raylib.ICON_CROSS_SMALL = 128
+raylib.GAMEPAD_AXIS_LEFT_X = 0
/**
- *
+ * Gamepad left stick Y axis
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_PREVIOUS = 129
+raylib.GAMEPAD_AXIS_LEFT_Y = 1
/**
- *
+ * Gamepad right stick X axis
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_PLAY_BACK = 130
+raylib.GAMEPAD_AXIS_RIGHT_X = 2
/**
- *
+ * Gamepad right stick Y axis
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_PLAY = 131
+raylib.GAMEPAD_AXIS_RIGHT_Y = 3
/**
- *
+ * Gamepad back trigger left, pressure level: [1..-1]
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_PAUSE = 132
+raylib.GAMEPAD_AXIS_LEFT_TRIGGER = 4
/**
- *
+ * Gamepad back trigger right, pressure level: [1..-1]
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_STOP = 133
+raylib.GAMEPAD_AXIS_RIGHT_TRIGGER = 5
/**
- *
+ * Albedo material (same as: MATERIAL_MAP_DIFFUSE)
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_NEXT = 134
+raylib.MATERIAL_MAP_ALBEDO = 0
/**
- *
+ * Metalness material (same as: MATERIAL_MAP_SPECULAR)
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_RECORD = 135
+raylib.MATERIAL_MAP_METALNESS = 1
/**
- *
+ * Normal material
*
* @type {number}
* @constant
*/
-raylib.ICON_MAGNET = 136
+raylib.MATERIAL_MAP_NORMAL = 2
/**
- *
+ * Roughness material
*
* @type {number}
* @constant
*/
-raylib.ICON_LOCK_CLOSE = 137
+raylib.MATERIAL_MAP_ROUGHNESS = 3
/**
- *
+ * Ambient occlusion material
*
* @type {number}
* @constant
*/
-raylib.ICON_LOCK_OPEN = 138
+raylib.MATERIAL_MAP_OCCLUSION = 4
/**
- *
+ * Emission material
*
* @type {number}
* @constant
*/
-raylib.ICON_CLOCK = 139
+raylib.MATERIAL_MAP_EMISSION = 5
/**
- *
+ * Heightmap material
*
* @type {number}
* @constant
*/
-raylib.ICON_TOOLS = 140
+raylib.MATERIAL_MAP_HEIGHT = 6
/**
- *
+ * Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
*
* @type {number}
* @constant
*/
-raylib.ICON_GEAR = 141
+raylib.MATERIAL_MAP_CUBEMAP = 7
/**
- *
+ * Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
*
* @type {number}
* @constant
*/
-raylib.ICON_GEAR_BIG = 142
+raylib.MATERIAL_MAP_IRRADIANCE = 8
/**
- *
+ * Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
*
* @type {number}
* @constant
*/
-raylib.ICON_BIN = 143
+raylib.MATERIAL_MAP_PREFILTER = 9
/**
- *
+ * Brdf material
*
* @type {number}
* @constant
*/
-raylib.ICON_HAND_POINTER = 144
+raylib.MATERIAL_MAP_BRDF = 10
/**
- *
+ * Shader location: vertex attribute: position
*
* @type {number}
* @constant
*/
-raylib.ICON_LASER = 145
+raylib.SHADER_LOC_VERTEX_POSITION = 0
/**
- *
+ * Shader location: vertex attribute: texcoord01
*
* @type {number}
* @constant
*/
-raylib.ICON_COIN = 146
+raylib.SHADER_LOC_VERTEX_TEXCOORD01 = 1
/**
- *
+ * Shader location: vertex attribute: texcoord02
*
* @type {number}
* @constant
*/
-raylib.ICON_EXPLOSION = 147
+raylib.SHADER_LOC_VERTEX_TEXCOORD02 = 2
/**
- *
+ * Shader location: vertex attribute: normal
*
* @type {number}
* @constant
*/
-raylib.ICON_1UP = 148
+raylib.SHADER_LOC_VERTEX_NORMAL = 3
/**
- *
+ * Shader location: vertex attribute: tangent
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER = 149
+raylib.SHADER_LOC_VERTEX_TANGENT = 4
/**
- *
+ * Shader location: vertex attribute: color
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_JUMP = 150
+raylib.SHADER_LOC_VERTEX_COLOR = 5
/**
- *
+ * Shader location: matrix uniform: model-view-projection
*
* @type {number}
* @constant
*/
-raylib.ICON_KEY = 151
+raylib.SHADER_LOC_MATRIX_MVP = 6
/**
- *
+ * Shader location: matrix uniform: view (camera transform)
*
* @type {number}
* @constant
*/
-raylib.ICON_DEMON = 152
+raylib.SHADER_LOC_MATRIX_VIEW = 7
/**
- *
+ * Shader location: matrix uniform: projection
*
* @type {number}
* @constant
*/
-raylib.ICON_TEXT_POPUP = 153
+raylib.SHADER_LOC_MATRIX_PROJECTION = 8
/**
- *
+ * Shader location: matrix uniform: model (transform)
*
* @type {number}
* @constant
*/
-raylib.ICON_GEAR_EX = 154
+raylib.SHADER_LOC_MATRIX_MODEL = 9
/**
- *
+ * Shader location: matrix uniform: normal
*
* @type {number}
* @constant
*/
-raylib.ICON_CRACK = 155
+raylib.SHADER_LOC_MATRIX_NORMAL = 10
/**
- *
+ * Shader location: vector uniform: view
*
* @type {number}
* @constant
*/
-raylib.ICON_CRACK_POINTS = 156
+raylib.SHADER_LOC_VECTOR_VIEW = 11
/**
- *
+ * Shader location: vector uniform: diffuse color
*
* @type {number}
* @constant
*/
-raylib.ICON_STAR = 157
+raylib.SHADER_LOC_COLOR_DIFFUSE = 12
/**
- *
+ * Shader location: vector uniform: specular color
*
* @type {number}
* @constant
*/
-raylib.ICON_DOOR = 158
+raylib.SHADER_LOC_COLOR_SPECULAR = 13
/**
- *
+ * Shader location: vector uniform: ambient color
*
* @type {number}
* @constant
*/
-raylib.ICON_EXIT = 159
+raylib.SHADER_LOC_COLOR_AMBIENT = 14
/**
- *
+ * Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)
*
* @type {number}
* @constant
*/
-raylib.ICON_MODE_2D = 160
+raylib.SHADER_LOC_MAP_ALBEDO = 15
/**
- *
+ * Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)
*
* @type {number}
* @constant
*/
-raylib.ICON_MODE_3D = 161
+raylib.SHADER_LOC_MAP_METALNESS = 16
/**
- *
+ * Shader location: sampler2d texture: normal
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE = 162
+raylib.SHADER_LOC_MAP_NORMAL = 17
/**
- *
+ * Shader location: sampler2d texture: roughness
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_TOP = 163
+raylib.SHADER_LOC_MAP_ROUGHNESS = 18
/**
- *
+ * Shader location: sampler2d texture: occlusion
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_LEFT = 164
+raylib.SHADER_LOC_MAP_OCCLUSION = 19
/**
- *
+ * Shader location: sampler2d texture: emission
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_FRONT = 165
+raylib.SHADER_LOC_MAP_EMISSION = 20
/**
- *
+ * Shader location: sampler2d texture: height
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_BOTTOM = 166
+raylib.SHADER_LOC_MAP_HEIGHT = 21
/**
- *
+ * Shader location: samplerCube texture: cubemap
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_RIGHT = 167
+raylib.SHADER_LOC_MAP_CUBEMAP = 22
/**
- *
+ * Shader location: samplerCube texture: irradiance
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_BACK = 168
+raylib.SHADER_LOC_MAP_IRRADIANCE = 23
/**
- *
+ * Shader location: samplerCube texture: prefilter
*
* @type {number}
* @constant
*/
-raylib.ICON_CAMERA = 169
+raylib.SHADER_LOC_MAP_PREFILTER = 24
/**
- *
+ * Shader location: sampler2d texture: brdf
*
* @type {number}
* @constant
*/
-raylib.ICON_SPECIAL = 170
+raylib.SHADER_LOC_MAP_BRDF = 25
/**
- *
+ * Shader uniform type: float
*
* @type {number}
* @constant
*/
-raylib.ICON_LINK_NET = 171
+raylib.SHADER_UNIFORM_FLOAT = 0
/**
- *
+ * Shader uniform type: vec2 (2 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_LINK_BOXES = 172
+raylib.SHADER_UNIFORM_VEC2 = 1
/**
- *
+ * Shader uniform type: vec3 (3 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_LINK_MULTI = 173
+raylib.SHADER_UNIFORM_VEC3 = 2
/**
- *
+ * Shader uniform type: vec4 (4 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_LINK = 174
+raylib.SHADER_UNIFORM_VEC4 = 3
/**
- *
+ * Shader uniform type: int
*
* @type {number}
* @constant
*/
-raylib.ICON_LINK_BROKE = 175
+raylib.SHADER_UNIFORM_INT = 4
/**
- *
+ * Shader uniform type: ivec2 (2 int)
*
* @type {number}
* @constant
*/
-raylib.ICON_TEXT_NOTES = 176
+raylib.SHADER_UNIFORM_IVEC2 = 5
/**
- *
+ * Shader uniform type: ivec3 (3 int)
*
* @type {number}
* @constant
*/
-raylib.ICON_NOTEBOOK = 177
+raylib.SHADER_UNIFORM_IVEC3 = 6
/**
- *
+ * Shader uniform type: ivec4 (4 int)
*
* @type {number}
* @constant
*/
-raylib.ICON_SUITCASE = 178
+raylib.SHADER_UNIFORM_IVEC4 = 7
/**
- *
+ * Shader uniform type: sampler2d
*
* @type {number}
* @constant
*/
-raylib.ICON_SUITCASE_ZIP = 179
+raylib.SHADER_UNIFORM_SAMPLER2D = 8
/**
- *
+ * Shader attribute type: float
*
* @type {number}
* @constant
*/
-raylib.ICON_MAILBOX = 180
+raylib.SHADER_ATTRIB_FLOAT = 0
/**
- *
+ * Shader attribute type: vec2 (2 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_MONITOR = 181
+raylib.SHADER_ATTRIB_VEC2 = 1
/**
- *
+ * Shader attribute type: vec3 (3 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_PRINTER = 182
+raylib.SHADER_ATTRIB_VEC3 = 2
/**
- *
+ * Shader attribute type: vec4 (4 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_PHOTO_CAMERA = 183
+raylib.SHADER_ATTRIB_VEC4 = 3
/**
- *
+ * 8 bit per pixel (no alpha)
*
* @type {number}
* @constant
*/
-raylib.ICON_PHOTO_CAMERA_FLASH = 184
+raylib.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1
/**
- *
+ * 8*2 bpp (2 channels)
*
* @type {number}
* @constant
*/
-raylib.ICON_HOUSE = 185
+raylib.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2
/**
- *
+ * 16 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_HEART = 186
+raylib.PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3
/**
- *
+ * 24 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_CORNER = 187
+raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4
/**
- *
+ * 16 bpp (1 bit alpha)
*
* @type {number}
* @constant
*/
-raylib.ICON_VERTICAL_BARS = 188
+raylib.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5
/**
- *
+ * 16 bpp (4 bit alpha)
*
* @type {number}
* @constant
*/
-raylib.ICON_VERTICAL_BARS_FILL = 189
+raylib.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6
/**
- *
+ * 32 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_LIFE_BARS = 190
+raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7
/**
- *
+ * 32 bpp (1 channel - float)
*
* @type {number}
* @constant
*/
-raylib.ICON_INFO = 191
+raylib.PIXELFORMAT_UNCOMPRESSED_R32 = 8
/**
- *
+ * 32*3 bpp (3 channels - float)
*
* @type {number}
* @constant
*/
-raylib.ICON_CROSSLINE = 192
+raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
/**
- *
+ * 32*4 bpp (4 channels - float)
*
* @type {number}
* @constant
*/
-raylib.ICON_HELP = 193
+raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
/**
- *
+ * 16 bpp (1 channel - half float)
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_ALPHA = 194
+raylib.PIXELFORMAT_UNCOMPRESSED_R16 = 11
/**
- *
+ * 16*3 bpp (3 channels - half float)
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_HOME = 195
+raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12
/**
- *
+ * 16*4 bpp (4 channels - half float)
*
* @type {number}
* @constant
*/
-raylib.ICON_LAYERS_VISIBLE = 196
+raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13
/**
- *
+ * 4 bpp (no alpha)
*
* @type {number}
* @constant
*/
-raylib.ICON_LAYERS = 197
+raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 14
/**
- *
+ * 4 bpp (1 bit alpha)
*
* @type {number}
* @constant
*/
-raylib.ICON_WINDOW = 198
+raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15
/**
- *
+ * 8 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_HIDPI = 199
+raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16
/**
- *
+ * 8 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_BINARY = 200
+raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17
/**
- *
+ * 4 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_HEX = 201
+raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 18
/**
- *
+ * 4 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_SHIELD = 202
+raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 19
/**
- *
+ * 8 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_NEW = 203
+raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20
/**
- *
+ * 4 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_FOLDER_ADD = 204
+raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 21
/**
- *
+ * 4 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_ALARM = 205
+raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22
/**
- *
+ * 8 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_CPU = 206
+raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23
/**
- *
+ * 2 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_ROM = 207
+raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24
/**
- *
+ * No filter, just pixel approximation
*
* @type {number}
* @constant
*/
-raylib.ICON_STEP_OVER = 208
+raylib.TEXTURE_FILTER_POINT = 0
/**
- *
+ * Linear filtering
*
* @type {number}
* @constant
*/
-raylib.ICON_STEP_INTO = 209
+raylib.TEXTURE_FILTER_BILINEAR = 1
/**
- *
+ * Trilinear filtering (linear with mipmaps)
*
* @type {number}
* @constant
*/
-raylib.ICON_STEP_OUT = 210
+raylib.TEXTURE_FILTER_TRILINEAR = 2
/**
- *
+ * Anisotropic filtering 4x
*
* @type {number}
* @constant
*/
-raylib.ICON_RESTART = 211
+raylib.TEXTURE_FILTER_ANISOTROPIC_4X = 3
/**
- *
+ * Anisotropic filtering 8x
*
* @type {number}
* @constant
*/
-raylib.ICON_BREAKPOINT_ON = 212
+raylib.TEXTURE_FILTER_ANISOTROPIC_8X = 4
/**
- *
+ * Anisotropic filtering 16x
*
* @type {number}
* @constant
*/
-raylib.ICON_BREAKPOINT_OFF = 213
+raylib.TEXTURE_FILTER_ANISOTROPIC_16X = 5
/**
- *
+ * Repeats texture in tiled mode
*
* @type {number}
* @constant
*/
-raylib.ICON_BURGER_MENU = 214
+raylib.TEXTURE_WRAP_REPEAT = 0
/**
- *
+ * Clamps texture to edge pixel in tiled mode
*
* @type {number}
* @constant
*/
-raylib.ICON_CASE_SENSITIVE = 215
+raylib.TEXTURE_WRAP_CLAMP = 1
/**
- *
+ * Mirrors and repeats the texture in tiled mode
*
* @type {number}
* @constant
*/
-raylib.ICON_REG_EXP = 216
+raylib.TEXTURE_WRAP_MIRROR_REPEAT = 2
/**
- *
+ * Mirrors and clamps to border the texture in tiled mode
*
* @type {number}
* @constant
*/
-raylib.ICON_FOLDER = 217
+raylib.TEXTURE_WRAP_MIRROR_CLAMP = 3
/**
- *
+ * Automatically detect layout type
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE = 218
+raylib.CUBEMAP_LAYOUT_AUTO_DETECT = 0
/**
- *
+ * Layout is defined by a vertical line with faces
*
* @type {number}
* @constant
*/
-raylib.ICON_219 = 219
+raylib.CUBEMAP_LAYOUT_LINE_VERTICAL = 1
/**
- *
+ * Layout is defined by a horizontal line with faces
*
* @type {number}
* @constant
*/
-raylib.ICON_220 = 220
+raylib.CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2
/**
- *
+ * Layout is defined by a 3x4 cross with cubemap faces
*
* @type {number}
* @constant
*/
-raylib.ICON_221 = 221
+raylib.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3
/**
- *
+ * Layout is defined by a 4x3 cross with cubemap faces
*
* @type {number}
* @constant
*/
-raylib.ICON_222 = 222
+raylib.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4
/**
- *
+ * Layout is defined by a panorama image (equirrectangular map)
*
* @type {number}
* @constant
*/
-raylib.ICON_223 = 223
+raylib.CUBEMAP_LAYOUT_PANORAMA = 5
/**
- *
+ * Default font generation, anti-aliased
*
* @type {number}
* @constant
*/
-raylib.ICON_224 = 224
+raylib.FONT_DEFAULT = 0
/**
- *
+ * Bitmap font generation, no anti-aliasing
*
* @type {number}
* @constant
*/
-raylib.ICON_225 = 225
+raylib.FONT_BITMAP = 1
/**
- *
+ * SDF font generation, requires external shader
*
* @type {number}
* @constant
*/
-raylib.ICON_226 = 226
+raylib.FONT_SDF = 2
/**
- *
+ * Blend textures considering alpha (default)
*
* @type {number}
* @constant
*/
-raylib.ICON_227 = 227
+raylib.BLEND_ALPHA = 0
/**
- *
+ * Blend textures adding colors
*
* @type {number}
* @constant
*/
-raylib.ICON_228 = 228
+raylib.BLEND_ADDITIVE = 1
/**
- *
+ * Blend textures multiplying colors
*
* @type {number}
* @constant
*/
-raylib.ICON_229 = 229
+raylib.BLEND_MULTIPLIED = 2
/**
- *
+ * Blend textures adding colors (alternative)
*
* @type {number}
* @constant
*/
-raylib.ICON_230 = 230
+raylib.BLEND_ADD_COLORS = 3
/**
- *
+ * Blend textures subtracting colors (alternative)
*
* @type {number}
* @constant
*/
-raylib.ICON_231 = 231
+raylib.BLEND_SUBTRACT_COLORS = 4
/**
- *
+ * Blend premultiplied textures considering alpha
*
* @type {number}
* @constant
*/
-raylib.ICON_232 = 232
+raylib.BLEND_ALPHA_PREMULTIPLY = 5
/**
- *
+ * Blend textures using custom src/dst factors (use rlSetBlendFactors())
*
* @type {number}
* @constant
*/
-raylib.ICON_233 = 233
+raylib.BLEND_CUSTOM = 6
/**
- *
+ * Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())
*
* @type {number}
* @constant
*/
-raylib.ICON_234 = 234
+raylib.BLEND_CUSTOM_SEPARATE = 7
/**
- *
+ * No gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_235 = 235
+raylib.GESTURE_NONE = 0
/**
- *
+ * Tap gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_236 = 236
+raylib.GESTURE_TAP = 1
/**
- *
+ * Double tap gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_237 = 237
+raylib.GESTURE_DOUBLETAP = 2
/**
- *
+ * Hold gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_238 = 238
+raylib.GESTURE_HOLD = 4
/**
- *
+ * Drag gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_239 = 239
+raylib.GESTURE_DRAG = 8
/**
- *
+ * Swipe right gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_240 = 240
+raylib.GESTURE_SWIPE_RIGHT = 16
/**
- *
+ * Swipe left gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_241 = 241
+raylib.GESTURE_SWIPE_LEFT = 32
/**
- *
+ * Swipe up gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_242 = 242
+raylib.GESTURE_SWIPE_UP = 64
/**
- *
+ * Swipe down gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_243 = 243
+raylib.GESTURE_SWIPE_DOWN = 128
/**
- *
+ * Pinch in gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_244 = 244
+raylib.GESTURE_PINCH_IN = 256
/**
- *
+ * Pinch out gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_245 = 245
+raylib.GESTURE_PINCH_OUT = 512
/**
- *
+ * Custom camera
*
* @type {number}
* @constant
*/
-raylib.ICON_246 = 246
+raylib.CAMERA_CUSTOM = 0
/**
- *
+ * Free camera
*
* @type {number}
* @constant
*/
-raylib.ICON_247 = 247
+raylib.CAMERA_FREE = 1
/**
- *
+ * Orbital camera
*
* @type {number}
* @constant
*/
-raylib.ICON_248 = 248
+raylib.CAMERA_ORBITAL = 2
/**
- *
+ * First person camera
*
* @type {number}
* @constant
*/
-raylib.ICON_249 = 249
+raylib.CAMERA_FIRST_PERSON = 3
/**
- *
+ * Third person camera
*
* @type {number}
* @constant
*/
-raylib.ICON_250 = 250
+raylib.CAMERA_THIRD_PERSON = 4
/**
- *
+ * Perspective projection
*
* @type {number}
* @constant
*/
-raylib.ICON_251 = 251
+raylib.CAMERA_PERSPECTIVE = 0
/**
- *
+ * Orthographic projection
*
* @type {number}
* @constant
*/
-raylib.ICON_252 = 252
+raylib.CAMERA_ORTHOGRAPHIC = 1
/**
- *
+ * Npatch layout: 3x3 tiles
*
* @type {number}
* @constant
*/
-raylib.ICON_253 = 253
+raylib.NPATCH_NINE_PATCH = 0
/**
- *
+ * Npatch layout: 1x3 tiles
*
* @type {number}
* @constant
*/
-raylib.ICON_254 = 254
+raylib.NPATCH_THREE_PATCH_VERTICAL = 1
/**
- *
+ * Npatch layout: 3x1 tiles
*
* @type {number}
* @constant
*/
-raylib.ICON_255 = 255
+raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2
/**
* OpenGL 1.1
@@ -20230,6 +17366,14 @@ raylib.RL_OPENGL_43 = 4
*/
raylib.RL_OPENGL_ES_20 = 5
+/**
+ * OpenGL ES 3.0 (GLSL 300 es)
+ *
+ * @type {number}
+ * @constant
+ */
+raylib.RL_OPENGL_ES_30 = 6
+
/**
* Display all logs
*
@@ -20374,13 +17518,37 @@ raylib.RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
*/
raylib.RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
+/**
+ * 16 bpp (1 channel - half float)
+ *
+ * @type {number}
+ * @constant
+ */
+raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16 = 11
+
+/**
+ * 16*3 bpp (3 channels - half float)
+ *
+ * @type {number}
+ * @constant
+ */
+raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12
+
+/**
+ * 16*4 bpp (4 channels - half float)
+ *
+ * @type {number}
+ * @constant
+ */
+raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13
+
/**
* 4 bpp (no alpha)
*
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
+raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 14
/**
* 4 bpp (1 bit alpha)
@@ -20388,7 +17556,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
+raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15
/**
* 8 bpp
@@ -20396,7 +17564,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
+raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16
/**
* 8 bpp
@@ -20404,7 +17572,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
+raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17
/**
* 4 bpp
@@ -20412,7 +17580,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
+raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 18
/**
* 4 bpp
@@ -20420,7 +17588,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
+raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 19
/**
* 8 bpp
@@ -20428,7 +17596,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
+raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20
/**
* 4 bpp
@@ -20436,7 +17604,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
+raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 21
/**
* 4 bpp
@@ -20444,7 +17612,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
+raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22
/**
* 8 bpp
@@ -20452,7 +17620,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
+raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23
/**
* 2 bpp
@@ -20460,7 +17628,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21
+raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24
/**
* No filter, just pixel approximation
@@ -21031,7 +18199,7 @@ raylib.RL_ATTACHMENT_TEXTURE2D = 100
raylib.RL_ATTACHMENT_RENDERBUFFER = 200
/**
- *
+ *
*
* @type {number}
* @constant
@@ -21039,7 +18207,7 @@ raylib.RL_ATTACHMENT_RENDERBUFFER = 200
raylib.RL_CULL_FACE_FRONT = 0
/**
- *
+ *
*
* @type {number}
* @constant
@@ -21047,7 +18215,7 @@ raylib.RL_CULL_FACE_FRONT = 0
raylib.RL_CULL_FACE_BACK = 1
/**
- *
+ *
*
* @type {number}
* @constant
diff --git a/src/generated/node-raylib.cc b/src/generated/node-raylib.cc
index b0ea9d3..aeb11c5 100644
--- a/src/generated/node-raylib.cc
+++ b/src/generated/node-raylib.cc
@@ -315,7 +315,8 @@ inline ModelAnimation ModelAnimationFromValue(const Napi::CallbackInfo& info, in
intFromValue(info, index + 0),
intFromValue(info, index + 1),
(BoneInfo *) pointerFromValue(info, index + 2),
- (Transform **) pointerFromValue(info, index + 3)
+ (Transform **) pointerFromValue(info, index + 3),
+ pointerFromValue(info, index + 4)
};
}
@@ -387,6 +388,22 @@ inline FilePathList FilePathListFromValue(const Napi::CallbackInfo& info, int in
};
}
+inline AutomationEvent AutomationEventFromValue(const Napi::CallbackInfo& info, int index) {
+ return {
+ unsignedintFromValue(info, index + 0),
+ unsignedintFromValue(info, index + 1),
+ pointerFromValue(info, index + 2)
+ };
+}
+
+inline AutomationEventList AutomationEventListFromValue(const Napi::CallbackInfo& info, int index) {
+ return {
+ unsignedintFromValue(info, index + 0),
+ unsignedintFromValue(info, index + 1),
+ (AutomationEvent *) pointerFromValue(info, index + 2)
+ };
+}
+
inline rlDrawCall rlDrawCallFromValue(const Napi::CallbackInfo& info, int index) {
return {
intFromValue(info, index + 0),
@@ -620,6 +637,7 @@ inline Napi::Value ToValue(Napi::Env env, ModelAnimation obj) {
out.Set("frameCount", ToValue(env, obj.frameCount));
out.Set("bones", ToValue(env, obj.bones));
out.Set("framePoses", ToValue(env, obj.framePoses));
+ out.Set("name", ToValue(env, obj.name));
return out;
}
@@ -691,6 +709,22 @@ inline Napi::Value ToValue(Napi::Env env, FilePathList obj) {
return out;
}
+inline Napi::Value ToValue(Napi::Env env, AutomationEvent obj) {
+ Napi::Object out = Napi::Object::New(env);
+ out.Set("frame", ToValue(env, obj.frame));
+ out.Set("type", ToValue(env, obj.type));
+ out.Set("params", ToValue(env, obj.params));
+ return out;
+}
+
+inline Napi::Value ToValue(Napi::Env env, AutomationEventList obj) {
+ Napi::Object out = Napi::Object::New(env);
+ out.Set("capacity", ToValue(env, obj.capacity));
+ out.Set("count", ToValue(env, obj.count));
+ out.Set("events", ToValue(env, obj.events));
+ return out;
+}
+
inline Napi::Value ToValue(Napi::Env env, rlVertexBuffer obj) {
Napi::Object out = Napi::Object::New(env);
out.Set("elementCount", ToValue(env, obj.elementCount));
@@ -1066,25 +1100,25 @@ Napi::Value BindGetWorldToScreen2D(const Napi::CallbackInfo& info) {
);
}
-Napi::Value BindGetFPS(const Napi::CallbackInfo& info) {
+Napi::Value BindGetFrameTime(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GetFPS(
+ GetFrameTime(
)
);
}
-Napi::Value BindGetFrameTime(const Napi::CallbackInfo& info) {
+Napi::Value BindGetTime(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GetFrameTime(
+ GetTime(
)
);
}
-Napi::Value BindGetTime(const Napi::CallbackInfo& info) {
+Napi::Value BindGetFPS(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GetTime(
+ GetFPS(
)
);
@@ -1099,6 +1133,16 @@ Napi::Value BindGetRandomValue(const Napi::CallbackInfo& info) {
);
}
+Napi::Value BindLoadRandomSequence(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ LoadRandomSequence(
+ unsignedintFromValue(info, 0),
+ intFromValue(info, 1),
+ intFromValue(info, 2)
+ )
+ );
+}
+
Napi::Value BindMemAlloc(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
MemAlloc(
@@ -1120,7 +1164,7 @@ Napi::Value BindLoadFileData(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
LoadFileData(
(const char *) stringFromValue(info, 0),
- (unsigned int *) pointerFromValue(info, 1)
+ (int *) pointerFromValue(info, 1)
)
);
}
@@ -1130,7 +1174,7 @@ Napi::Value BindSaveFileData(const Napi::CallbackInfo& info) {
SaveFileData(
(const char *) stringFromValue(info, 0),
(void *) pointerFromValue(info, 1),
- unsignedintFromValue(info, 2)
+ intFromValue(info, 2)
)
);
}
@@ -1139,7 +1183,7 @@ Napi::Value BindExportDataAsCode(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
ExportDataAsCode(
(const unsigned char *) pointerFromValue(info, 0),
- unsignedintFromValue(info, 1),
+ intFromValue(info, 1),
(const char *) stringFromValue(info, 2)
)
);
@@ -1348,6 +1392,23 @@ Napi::Value BindDecodeDataBase64(const Napi::CallbackInfo& info) {
);
}
+Napi::Value BindLoadAutomationEventList(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ LoadAutomationEventList(
+ (const char *) stringFromValue(info, 0)
+ )
+ );
+}
+
+Napi::Value BindExportAutomationEventList(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ ExportAutomationEventList(
+ AutomationEventListFromValue(info, 0),
+ (const char *) stringFromValue(info, 3)
+ )
+ );
+}
+
Napi::Value BindIsKeyPressed(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
IsKeyPressed(
@@ -1356,6 +1417,14 @@ Napi::Value BindIsKeyPressed(const Napi::CallbackInfo& info) {
);
}
+Napi::Value BindIsKeyPressedRepeat(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ IsKeyPressedRepeat(
+ intFromValue(info, 0)
+ )
+ );
+}
+
Napi::Value BindIsKeyDown(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
IsKeyDown(
@@ -1604,7 +1673,7 @@ Napi::Value BindGetTouchPointCount(const Napi::CallbackInfo& info) {
Napi::Value BindIsGestureDetected(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
IsGestureDetected(
- intFromValue(info, 0)
+ unsignedintFromValue(info, 0)
)
);
}
@@ -1657,6 +1726,63 @@ Napi::Value BindGetGesturePinchAngle(const Napi::CallbackInfo& info) {
);
}
+Napi::Value BindGetSplinePointLinear(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ GetSplinePointLinear(
+ Vector2FromValue(info, 0),
+ Vector2FromValue(info, 2),
+ floatFromValue(info, 4)
+ )
+ );
+}
+
+Napi::Value BindGetSplinePointBasis(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ GetSplinePointBasis(
+ Vector2FromValue(info, 0),
+ Vector2FromValue(info, 2),
+ Vector2FromValue(info, 4),
+ Vector2FromValue(info, 6),
+ floatFromValue(info, 8)
+ )
+ );
+}
+
+Napi::Value BindGetSplinePointCatmullRom(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ GetSplinePointCatmullRom(
+ Vector2FromValue(info, 0),
+ Vector2FromValue(info, 2),
+ Vector2FromValue(info, 4),
+ Vector2FromValue(info, 6),
+ floatFromValue(info, 8)
+ )
+ );
+}
+
+Napi::Value BindGetSplinePointBezierQuad(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ GetSplinePointBezierQuad(
+ Vector2FromValue(info, 0),
+ Vector2FromValue(info, 2),
+ Vector2FromValue(info, 4),
+ floatFromValue(info, 6)
+ )
+ );
+}
+
+Napi::Value BindGetSplinePointBezierCubic(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ GetSplinePointBezierCubic(
+ Vector2FromValue(info, 0),
+ Vector2FromValue(info, 2),
+ Vector2FromValue(info, 4),
+ Vector2FromValue(info, 6),
+ floatFromValue(info, 8)
+ )
+ );
+}
+
Napi::Value BindCheckCollisionRecs(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
CheckCollisionRecs(
@@ -1779,6 +1905,16 @@ Napi::Value BindLoadImageRaw(const Napi::CallbackInfo& info) {
);
}
+Napi::Value BindLoadImageSvg(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ LoadImageSvg(
+ (const char *) stringFromValue(info, 0),
+ intFromValue(info, 1),
+ intFromValue(info, 2)
+ )
+ );
+}
+
Napi::Value BindLoadImageAnim(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
LoadImageAnim(
@@ -1831,6 +1967,16 @@ Napi::Value BindExportImage(const Napi::CallbackInfo& info) {
);
}
+Napi::Value BindExportImageToMemory(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ ExportImageToMemory(
+ ImageFromValue(info, 0),
+ (const char *) stringFromValue(info, 5),
+ (int *) pointerFromValue(info, 6)
+ )
+ );
+}
+
Napi::Value BindExportImageAsCode(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
ExportImageAsCode(
@@ -1850,31 +1996,33 @@ Napi::Value BindGenImageColor(const Napi::CallbackInfo& info) {
);
}
-Napi::Value BindGenImageGradientV(const Napi::CallbackInfo& info) {
+Napi::Value BindGenImageGradientLinear(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GenImageGradientV(
+ GenImageGradientLinear(
intFromValue(info, 0),
intFromValue(info, 1),
- ColorFromValue(info, 2),
- ColorFromValue(info, 6)
+ intFromValue(info, 2),
+ ColorFromValue(info, 3),
+ ColorFromValue(info, 7)
)
);
}
-Napi::Value BindGenImageGradientH(const Napi::CallbackInfo& info) {
+Napi::Value BindGenImageGradientRadial(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GenImageGradientH(
+ GenImageGradientRadial(
intFromValue(info, 0),
intFromValue(info, 1),
- ColorFromValue(info, 2),
- ColorFromValue(info, 6)
+ floatFromValue(info, 2),
+ ColorFromValue(info, 3),
+ ColorFromValue(info, 7)
)
);
}
-Napi::Value BindGenImageGradientRadial(const Napi::CallbackInfo& info) {
+Napi::Value BindGenImageGradientSquare(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GenImageGradientRadial(
+ GenImageGradientSquare(
intFromValue(info, 0),
intFromValue(info, 1),
floatFromValue(info, 2),
@@ -2671,7 +2819,7 @@ Napi::Value BindLoadModelAnimations(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
LoadModelAnimations(
(const char *) stringFromValue(info, 0),
- (unsigned int *) pointerFromValue(info, 1)
+ (int *) pointerFromValue(info, 1)
)
);
}
@@ -2775,6 +2923,14 @@ Napi::Value BindIsAudioDeviceReady(const Napi::CallbackInfo& info) {
);
}
+Napi::Value BindGetMasterVolume(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ GetMasterVolume(
+
+ )
+ );
+}
+
Napi::Value BindLoadWave(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
LoadWave(
@@ -2817,6 +2973,14 @@ Napi::Value BindLoadSoundFromWave(const Napi::CallbackInfo& info) {
);
}
+Napi::Value BindLoadSoundAlias(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ LoadSoundAlias(
+ SoundFromValue(info, 0)
+ )
+ );
+}
+
Napi::Value BindIsSoundReady(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
IsSoundReady(
@@ -3724,6 +3888,24 @@ Napi::Value BindVector3Normalize(const Napi::CallbackInfo& info) {
);
}
+Napi::Value BindVector3Project(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ Vector3Project(
+ Vector3FromValue(info, 0),
+ Vector3FromValue(info, 3)
+ )
+ );
+}
+
+Napi::Value BindVector3Reject(const Napi::CallbackInfo& info) {
+ return ToValue(info.Env(),
+ Vector3Reject(
+ Vector3FromValue(info, 0),
+ Vector3FromValue(info, 3)
+ )
+ );
+}
+
Napi::Value BindVector3Transform(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
Vector3Transform(
@@ -4235,492 +4417,146 @@ Napi::Value BindQuaternionEquals(const Napi::CallbackInfo& info) {
);
}
-Napi::Value BindGuiIsLocked(const Napi::CallbackInfo& info) {
+Napi::Value BindrlEnableVertexArray(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiIsLocked(
-
+ rlEnableVertexArray(
+ unsignedintFromValue(info, 0)
)
);
}
-Napi::Value BindGuiGetState(const Napi::CallbackInfo& info) {
+Napi::Value BindrlGetLineWidth(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiGetState(
+ rlGetLineWidth(
)
);
}
-Napi::Value BindGuiGetFont(const Napi::CallbackInfo& info) {
+Napi::Value BindrlIsStereoRenderEnabled(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiGetFont(
+ rlIsStereoRenderEnabled(
)
);
}
-Napi::Value BindGuiGetStyle(const Napi::CallbackInfo& info) {
+Napi::Value BindrlGetVersion(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiGetStyle(
- intFromValue(info, 0),
- intFromValue(info, 1)
+ rlGetVersion(
+
)
);
}
-Napi::Value BindGuiWindowBox(const Napi::CallbackInfo& info) {
+Napi::Value BindrlGetFramebufferWidth(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiWindowBox(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4)
+ rlGetFramebufferWidth(
+
)
);
}
-Napi::Value BindGuiTabBar(const Napi::CallbackInfo& info) {
+Napi::Value BindrlGetFramebufferHeight(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiTabBar(
- RectangleFromValue(info, 0),
- (const char **) pointerFromValue(info, 4),
- intFromValue(info, 5),
- (int *) pointerFromValue(info, 6)
+ rlGetFramebufferHeight(
+
)
);
}
-Napi::Value BindGuiScrollPanel(const Napi::CallbackInfo& info) {
+Napi::Value BindrlGetTextureIdDefault(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiScrollPanel(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- RectangleFromValue(info, 5),
- (Vector2 *) pointerFromValue(info, 9)
+ rlGetTextureIdDefault(
+
)
);
}
-Napi::Value BindGuiButton(const Napi::CallbackInfo& info) {
+Napi::Value BindrlGetShaderIdDefault(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiButton(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4)
+ rlGetShaderIdDefault(
+
)
);
}
-Napi::Value BindGuiLabelButton(const Napi::CallbackInfo& info) {
+Napi::Value BindrlGetShaderLocsDefault(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiLabelButton(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4)
+ rlGetShaderLocsDefault(
+
)
);
}
-Napi::Value BindGuiToggle(const Napi::CallbackInfo& info) {
+Napi::Value BindrlLoadRenderBatch(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiToggle(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- boolFromValue(info, 5)
+ rlLoadRenderBatch(
+ intFromValue(info, 0),
+ intFromValue(info, 1)
)
);
}
-Napi::Value BindGuiToggleGroup(const Napi::CallbackInfo& info) {
+Napi::Value BindrlCheckRenderBatchLimit(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiToggleGroup(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- intFromValue(info, 5)
+ rlCheckRenderBatchLimit(
+ intFromValue(info, 0)
)
);
}
-Napi::Value BindGuiCheckBox(const Napi::CallbackInfo& info) {
+Napi::Value BindrlLoadVertexArray(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiCheckBox(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- boolFromValue(info, 5)
+ rlLoadVertexArray(
+
)
);
}
-Napi::Value BindGuiComboBox(const Napi::CallbackInfo& info) {
+Napi::Value BindrlLoadVertexBuffer(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiComboBox(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- intFromValue(info, 5)
+ rlLoadVertexBuffer(
+ (const void *) pointerFromValue(info, 0),
+ intFromValue(info, 1),
+ boolFromValue(info, 2)
)
);
}
-Napi::Value BindGuiDropdownBox(const Napi::CallbackInfo& info) {
+Napi::Value BindrlLoadVertexBufferElement(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiDropdownBox(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- (int *) pointerFromValue(info, 5),
- boolFromValue(info, 6)
+ rlLoadVertexBufferElement(
+ (const void *) pointerFromValue(info, 0),
+ intFromValue(info, 1),
+ boolFromValue(info, 2)
)
);
}
-Napi::Value BindGuiSpinner(const Napi::CallbackInfo& info) {
+Napi::Value BindrlLoadTexture(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiSpinner(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- (int *) pointerFromValue(info, 5),
- intFromValue(info, 6),
- intFromValue(info, 7),
- boolFromValue(info, 8)
+ rlLoadTexture(
+ (const void *) pointerFromValue(info, 0),
+ intFromValue(info, 1),
+ intFromValue(info, 2),
+ intFromValue(info, 3),
+ intFromValue(info, 4)
)
);
}
-Napi::Value BindGuiValueBox(const Napi::CallbackInfo& info) {
+Napi::Value BindrlLoadTextureDepth(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
- GuiValueBox(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- (int *) pointerFromValue(info, 5),
- intFromValue(info, 6),
- intFromValue(info, 7),
- boolFromValue(info, 8)
+ rlLoadTextureDepth(
+ intFromValue(info, 0),
+ intFromValue(info, 1),
+ boolFromValue(info, 2)
)
);
}
-Napi::Value BindGuiTextBox(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiTextBox(
- RectangleFromValue(info, 0),
- (char *) pointerFromValue(info, 4),
- intFromValue(info, 5),
- boolFromValue(info, 6)
- )
- );
-}
-
-Napi::Value BindGuiTextBoxMulti(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiTextBoxMulti(
- RectangleFromValue(info, 0),
- (char *) pointerFromValue(info, 4),
- intFromValue(info, 5),
- boolFromValue(info, 6)
- )
- );
-}
-
-Napi::Value BindGuiSlider(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiSlider(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- (const char *) stringFromValue(info, 5),
- floatFromValue(info, 6),
- floatFromValue(info, 7),
- floatFromValue(info, 8)
- )
- );
-}
-
-Napi::Value BindGuiSliderBar(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiSliderBar(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- (const char *) stringFromValue(info, 5),
- floatFromValue(info, 6),
- floatFromValue(info, 7),
- floatFromValue(info, 8)
- )
- );
-}
-
-Napi::Value BindGuiProgressBar(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiProgressBar(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- (const char *) stringFromValue(info, 5),
- floatFromValue(info, 6),
- floatFromValue(info, 7),
- floatFromValue(info, 8)
- )
- );
-}
-
-Napi::Value BindGuiGrid(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiGrid(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- floatFromValue(info, 5),
- intFromValue(info, 6)
- )
- );
-}
-
-Napi::Value BindGuiListView(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiListView(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- (int *) pointerFromValue(info, 5),
- intFromValue(info, 6)
- )
- );
-}
-
-Napi::Value BindGuiListViewEx(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiListViewEx(
- RectangleFromValue(info, 0),
- (const char **) pointerFromValue(info, 4),
- intFromValue(info, 5),
- (int *) pointerFromValue(info, 6),
- (int *) pointerFromValue(info, 7),
- intFromValue(info, 8)
- )
- );
-}
-
-Napi::Value BindGuiMessageBox(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiMessageBox(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- (const char *) stringFromValue(info, 5),
- (const char *) stringFromValue(info, 6)
- )
- );
-}
-
-Napi::Value BindGuiTextInputBox(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiTextInputBox(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- (const char *) stringFromValue(info, 5),
- (const char *) stringFromValue(info, 6),
- (char *) pointerFromValue(info, 7),
- intFromValue(info, 8),
- (int *) pointerFromValue(info, 9)
- )
- );
-}
-
-Napi::Value BindGuiColorPicker(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiColorPicker(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- ColorFromValue(info, 5)
- )
- );
-}
-
-Napi::Value BindGuiColorPanel(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiColorPanel(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- ColorFromValue(info, 5)
- )
- );
-}
-
-Napi::Value BindGuiColorBarAlpha(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiColorBarAlpha(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- floatFromValue(info, 5)
- )
- );
-}
-
-Napi::Value BindGuiColorBarHue(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiColorBarHue(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4),
- floatFromValue(info, 5)
- )
- );
-}
-
-Napi::Value BindGuiIconText(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiIconText(
- intFromValue(info, 0),
- (const char *) stringFromValue(info, 1)
- )
- );
-}
-
-Napi::Value BindGuiGetIcons(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiGetIcons(
-
- )
- );
-}
-
-Napi::Value BindGuiLoadIcons(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- GuiLoadIcons(
- (const char *) stringFromValue(info, 0),
- boolFromValue(info, 1)
- )
- );
-}
-
-Napi::Value BindrlEnableVertexArray(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlEnableVertexArray(
- unsignedintFromValue(info, 0)
- )
- );
-}
-
-Napi::Value BindrlGetLineWidth(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlGetLineWidth(
-
- )
- );
-}
-
-Napi::Value BindrlIsStereoRenderEnabled(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlIsStereoRenderEnabled(
-
- )
- );
-}
-
-Napi::Value BindrlGetVersion(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlGetVersion(
-
- )
- );
-}
-
-Napi::Value BindrlGetFramebufferWidth(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlGetFramebufferWidth(
-
- )
- );
-}
-
-Napi::Value BindrlGetFramebufferHeight(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlGetFramebufferHeight(
-
- )
- );
-}
-
-Napi::Value BindrlGetTextureIdDefault(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlGetTextureIdDefault(
-
- )
- );
-}
-
-Napi::Value BindrlGetShaderIdDefault(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlGetShaderIdDefault(
-
- )
- );
-}
-
-Napi::Value BindrlGetShaderLocsDefault(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlGetShaderLocsDefault(
-
- )
- );
-}
-
-Napi::Value BindrlLoadRenderBatch(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlLoadRenderBatch(
- intFromValue(info, 0),
- intFromValue(info, 1)
- )
- );
-}
-
-Napi::Value BindrlCheckRenderBatchLimit(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlCheckRenderBatchLimit(
- intFromValue(info, 0)
- )
- );
-}
-
-Napi::Value BindrlLoadVertexArray(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlLoadVertexArray(
-
- )
- );
-}
-
-Napi::Value BindrlLoadVertexBuffer(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlLoadVertexBuffer(
- (const void *) pointerFromValue(info, 0),
- intFromValue(info, 1),
- boolFromValue(info, 2)
- )
- );
-}
-
-Napi::Value BindrlLoadVertexBufferElement(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlLoadVertexBufferElement(
- (const void *) pointerFromValue(info, 0),
- intFromValue(info, 1),
- boolFromValue(info, 2)
- )
- );
-}
-
-Napi::Value BindrlLoadTexture(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlLoadTexture(
- (const void *) pointerFromValue(info, 0),
- intFromValue(info, 1),
- intFromValue(info, 2),
- intFromValue(info, 3),
- intFromValue(info, 4)
- )
- );
-}
-
-Napi::Value BindrlLoadTextureDepth(const Napi::CallbackInfo& info) {
- return ToValue(info.Env(),
- rlLoadTextureDepth(
- intFromValue(info, 0),
- intFromValue(info, 1),
- boolFromValue(info, 2)
- )
- );
-}
-
-Napi::Value BindrlLoadTextureCubemap(const Napi::CallbackInfo& info) {
+Napi::Value BindrlLoadTextureCubemap(const Napi::CallbackInfo& info) {
return ToValue(info.Env(),
rlLoadTextureCubemap(
(const void *) pointerFromValue(info, 0),
@@ -4918,6 +4754,12 @@ void BindToggleFullscreen(const Napi::CallbackInfo& info) {
);
}
+void BindToggleBorderlessWindowed(const Napi::CallbackInfo& info) {
+ ToggleBorderlessWindowed(
+
+ );
+}
+
void BindMaximizeWindow(const Napi::CallbackInfo& info) {
MaximizeWindow(
@@ -4975,6 +4817,13 @@ void BindSetWindowMinSize(const Napi::CallbackInfo& info) {
);
}
+void BindSetWindowMaxSize(const Napi::CallbackInfo& info) {
+ SetWindowMaxSize(
+ intFromValue(info, 0),
+ intFromValue(info, 1)
+ );
+}
+
void BindSetWindowSize(const Napi::CallbackInfo& info) {
SetWindowSize(
intFromValue(info, 0),
@@ -4988,6 +4837,12 @@ void BindSetWindowOpacity(const Napi::CallbackInfo& info) {
);
}
+void BindSetWindowFocused(const Napi::CallbackInfo& info) {
+ SetWindowFocused(
+
+ );
+}
+
void BindSetClipboardText(const Napi::CallbackInfo& info) {
SetClipboardText(
(const char *) stringFromValue(info, 0)
@@ -5006,24 +4861,6 @@ void BindDisableEventWaiting(const Napi::CallbackInfo& info) {
);
}
-void BindSwapScreenBuffer(const Napi::CallbackInfo& info) {
- SwapScreenBuffer(
-
- );
-}
-
-void BindPollInputEvents(const Napi::CallbackInfo& info) {
- PollInputEvents(
-
- );
-}
-
-void BindWaitTime(const Napi::CallbackInfo& info) {
- WaitTime(
- doubleFromValue(info, 0)
- );
-}
-
void BindShowCursor(const Napi::CallbackInfo& info) {
ShowCursor(
@@ -5175,12 +5012,36 @@ void BindSetTargetFPS(const Napi::CallbackInfo& info) {
);
}
+void BindSwapScreenBuffer(const Napi::CallbackInfo& info) {
+ SwapScreenBuffer(
+
+ );
+}
+
+void BindPollInputEvents(const Napi::CallbackInfo& info) {
+ PollInputEvents(
+
+ );
+}
+
+void BindWaitTime(const Napi::CallbackInfo& info) {
+ WaitTime(
+ doubleFromValue(info, 0)
+ );
+}
+
void BindSetRandomSeed(const Napi::CallbackInfo& info) {
SetRandomSeed(
unsignedintFromValue(info, 0)
);
}
+void BindUnloadRandomSequence(const Napi::CallbackInfo& info) {
+ UnloadRandomSequence(
+ (int *) pointerFromValue(info, 0)
+ );
+}
+
void BindTakeScreenshot(const Napi::CallbackInfo& info) {
TakeScreenshot(
(const char *) stringFromValue(info, 0)
@@ -5193,6 +5054,12 @@ void BindSetConfigFlags(const Napi::CallbackInfo& info) {
);
}
+void BindOpenURL(const Napi::CallbackInfo& info) {
+ OpenURL(
+ (const char *) stringFromValue(info, 0)
+ );
+}
+
void BindSetTraceLogLevel(const Napi::CallbackInfo& info) {
SetTraceLogLevel(
intFromValue(info, 0)
@@ -5205,12 +5072,6 @@ void BindMemFree(const Napi::CallbackInfo& info) {
);
}
-void BindOpenURL(const Napi::CallbackInfo& info) {
- OpenURL(
- (const char *) stringFromValue(info, 0)
- );
-}
-
void BindUnloadFileData(const Napi::CallbackInfo& info) {
UnloadFileData(
(unsigned char *) pointerFromValue(info, 0)
@@ -5235,6 +5096,42 @@ void BindUnloadDroppedFiles(const Napi::CallbackInfo& info) {
);
}
+void BindUnloadAutomationEventList(const Napi::CallbackInfo& info) {
+ UnloadAutomationEventList(
+ (AutomationEventList *) pointerFromValue(info, 0)
+ );
+}
+
+void BindSetAutomationEventList(const Napi::CallbackInfo& info) {
+ SetAutomationEventList(
+ (AutomationEventList *) pointerFromValue(info, 0)
+ );
+}
+
+void BindSetAutomationEventBaseFrame(const Napi::CallbackInfo& info) {
+ SetAutomationEventBaseFrame(
+ intFromValue(info, 0)
+ );
+}
+
+void BindStartAutomationEventRecording(const Napi::CallbackInfo& info) {
+ StartAutomationEventRecording(
+
+ );
+}
+
+void BindStopAutomationEventRecording(const Napi::CallbackInfo& info) {
+ StopAutomationEventRecording(
+
+ );
+}
+
+void BindPlayAutomationEvent(const Napi::CallbackInfo& info) {
+ PlayAutomationEvent(
+ AutomationEventFromValue(info, 0)
+ );
+}
+
void BindSetExitKey(const Napi::CallbackInfo& info) {
SetExitKey(
intFromValue(info, 0)
@@ -5332,6 +5229,14 @@ void BindDrawLineEx(const Napi::CallbackInfo& info) {
);
}
+void BindDrawLineStrip(const Napi::CallbackInfo& info) {
+ DrawLineStrip(
+ (Vector2 *) pointerFromValue(info, 0),
+ intFromValue(info, 1),
+ ColorFromValue(info, 2)
+ );
+}
+
void BindDrawLineBezier(const Napi::CallbackInfo& info) {
DrawLineBezier(
Vector2FromValue(info, 0),
@@ -5341,35 +5246,6 @@ void BindDrawLineBezier(const Napi::CallbackInfo& info) {
);
}
-void BindDrawLineBezierQuad(const Napi::CallbackInfo& info) {
- DrawLineBezierQuad(
- Vector2FromValue(info, 0),
- Vector2FromValue(info, 2),
- Vector2FromValue(info, 4),
- floatFromValue(info, 6),
- ColorFromValue(info, 7)
- );
-}
-
-void BindDrawLineBezierCubic(const Napi::CallbackInfo& info) {
- DrawLineBezierCubic(
- Vector2FromValue(info, 0),
- Vector2FromValue(info, 2),
- Vector2FromValue(info, 4),
- Vector2FromValue(info, 6),
- floatFromValue(info, 8),
- ColorFromValue(info, 9)
- );
-}
-
-void BindDrawLineStrip(const Napi::CallbackInfo& info) {
- DrawLineStrip(
- (Vector2 *) pointerFromValue(info, 0),
- intFromValue(info, 1),
- ColorFromValue(info, 2)
- );
-}
-
void BindDrawCircle(const Napi::CallbackInfo& info) {
DrawCircle(
intFromValue(info, 0),
@@ -5428,6 +5304,14 @@ void BindDrawCircleLines(const Napi::CallbackInfo& info) {
);
}
+void BindDrawCircleLinesV(const Napi::CallbackInfo& info) {
+ DrawCircleLinesV(
+ Vector2FromValue(info, 0),
+ floatFromValue(info, 2),
+ ColorFromValue(info, 3)
+ );
+}
+
void BindDrawEllipse(const Napi::CallbackInfo& info) {
DrawEllipse(
intFromValue(info, 0),
@@ -5640,6 +5524,103 @@ void BindDrawPolyLinesEx(const Napi::CallbackInfo& info) {
);
}
+void BindDrawSplineLinear(const Napi::CallbackInfo& info) {
+ DrawSplineLinear(
+ (Vector2 *) pointerFromValue(info, 0),
+ intFromValue(info, 1),
+ floatFromValue(info, 2),
+ ColorFromValue(info, 3)
+ );
+}
+
+void BindDrawSplineBasis(const Napi::CallbackInfo& info) {
+ DrawSplineBasis(
+ (Vector2 *) pointerFromValue(info, 0),
+ intFromValue(info, 1),
+ floatFromValue(info, 2),
+ ColorFromValue(info, 3)
+ );
+}
+
+void BindDrawSplineCatmullRom(const Napi::CallbackInfo& info) {
+ DrawSplineCatmullRom(
+ (Vector2 *) pointerFromValue(info, 0),
+ intFromValue(info, 1),
+ floatFromValue(info, 2),
+ ColorFromValue(info, 3)
+ );
+}
+
+void BindDrawSplineBezierQuadratic(const Napi::CallbackInfo& info) {
+ DrawSplineBezierQuadratic(
+ (Vector2 *) pointerFromValue(info, 0),
+ intFromValue(info, 1),
+ floatFromValue(info, 2),
+ ColorFromValue(info, 3)
+ );
+}
+
+void BindDrawSplineBezierCubic(const Napi::CallbackInfo& info) {
+ DrawSplineBezierCubic(
+ (Vector2 *) pointerFromValue(info, 0),
+ intFromValue(info, 1),
+ floatFromValue(info, 2),
+ ColorFromValue(info, 3)
+ );
+}
+
+void BindDrawSplineSegmentLinear(const Napi::CallbackInfo& info) {
+ DrawSplineSegmentLinear(
+ Vector2FromValue(info, 0),
+ Vector2FromValue(info, 2),
+ floatFromValue(info, 4),
+ ColorFromValue(info, 5)
+ );
+}
+
+void BindDrawSplineSegmentBasis(const Napi::CallbackInfo& info) {
+ DrawSplineSegmentBasis(
+ Vector2FromValue(info, 0),
+ Vector2FromValue(info, 2),
+ Vector2FromValue(info, 4),
+ Vector2FromValue(info, 6),
+ floatFromValue(info, 8),
+ ColorFromValue(info, 9)
+ );
+}
+
+void BindDrawSplineSegmentCatmullRom(const Napi::CallbackInfo& info) {
+ DrawSplineSegmentCatmullRom(
+ Vector2FromValue(info, 0),
+ Vector2FromValue(info, 2),
+ Vector2FromValue(info, 4),
+ Vector2FromValue(info, 6),
+ floatFromValue(info, 8),
+ ColorFromValue(info, 9)
+ );
+}
+
+void BindDrawSplineSegmentBezierQuadratic(const Napi::CallbackInfo& info) {
+ DrawSplineSegmentBezierQuadratic(
+ Vector2FromValue(info, 0),
+ Vector2FromValue(info, 2),
+ Vector2FromValue(info, 4),
+ floatFromValue(info, 6),
+ ColorFromValue(info, 7)
+ );
+}
+
+void BindDrawSplineSegmentBezierCubic(const Napi::CallbackInfo& info) {
+ DrawSplineSegmentBezierCubic(
+ Vector2FromValue(info, 0),
+ Vector2FromValue(info, 2),
+ Vector2FromValue(info, 4),
+ Vector2FromValue(info, 6),
+ floatFromValue(info, 8),
+ ColorFromValue(info, 9)
+ );
+}
+
void BindUnloadImage(const Napi::CallbackInfo& info) {
UnloadImage(
ImageFromValue(info, 0)
@@ -5653,6 +5634,13 @@ void BindImageBlurGaussian(const Napi::CallbackInfo& info) {
);
}
+void BindImageRotate(const Napi::CallbackInfo& info) {
+ ImageRotate(
+ (Image *) pointerFromValue(info, 0),
+ intFromValue(info, 1)
+ );
+}
+
void BindUnloadImageColors(const Napi::CallbackInfo& info) {
UnloadImageColors(
(Color *) pointerFromValue(info, 0)
@@ -5867,6 +5855,12 @@ void BindDrawTextCodepoints(const Napi::CallbackInfo& info) {
);
}
+void BindSetTextLineSpacing(const Napi::CallbackInfo& info) {
+ SetTextLineSpacing(
+ intFromValue(info, 0)
+ );
+}
+
void BindUnloadUTF8(const Napi::CallbackInfo& info) {
UnloadUTF8(
(char *) pointerFromValue(info, 0)
@@ -6189,7 +6183,7 @@ void BindUpdateModelAnimation(const Napi::CallbackInfo& info) {
UpdateModelAnimation(
ModelFromValue(info, 0),
ModelAnimationFromValue(info, 24),
- intFromValue(info, 28)
+ intFromValue(info, 29)
);
}
@@ -6202,7 +6196,7 @@ void BindUnloadModelAnimation(const Napi::CallbackInfo& info) {
void BindUnloadModelAnimations(const Napi::CallbackInfo& info) {
UnloadModelAnimations(
(ModelAnimation *) pointerFromValue(info, 0),
- unsignedintFromValue(info, 1)
+ intFromValue(info, 1)
);
}
@@ -6244,6 +6238,12 @@ void BindUnloadSound(const Napi::CallbackInfo& info) {
);
}
+void BindUnloadSoundAlias(const Napi::CallbackInfo& info) {
+ UnloadSoundAlias(
+ SoundFromValue(info, 0)
+ );
+}
+
void BindPlaySound(const Napi::CallbackInfo& info) {
PlaySound(
SoundFromValue(info, 0)
@@ -6439,144 +6439,6 @@ void BindQuaternionToAxisAngle(const Napi::CallbackInfo& info) {
);
}
-void BindGuiEnable(const Napi::CallbackInfo& info) {
- GuiEnable(
-
- );
-}
-
-void BindGuiDisable(const Napi::CallbackInfo& info) {
- GuiDisable(
-
- );
-}
-
-void BindGuiLock(const Napi::CallbackInfo& info) {
- GuiLock(
-
- );
-}
-
-void BindGuiUnlock(const Napi::CallbackInfo& info) {
- GuiUnlock(
-
- );
-}
-
-void BindGuiFade(const Napi::CallbackInfo& info) {
- GuiFade(
- floatFromValue(info, 0)
- );
-}
-
-void BindGuiSetState(const Napi::CallbackInfo& info) {
- GuiSetState(
- intFromValue(info, 0)
- );
-}
-
-void BindGuiSetFont(const Napi::CallbackInfo& info) {
- GuiSetFont(
- FontFromValue(info, 0)
- );
-}
-
-void BindGuiSetStyle(const Napi::CallbackInfo& info) {
- GuiSetStyle(
- intFromValue(info, 0),
- intFromValue(info, 1),
- intFromValue(info, 2)
- );
-}
-
-void BindGuiGroupBox(const Napi::CallbackInfo& info) {
- GuiGroupBox(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4)
- );
-}
-
-void BindGuiLine(const Napi::CallbackInfo& info) {
- GuiLine(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4)
- );
-}
-
-void BindGuiPanel(const Napi::CallbackInfo& info) {
- GuiPanel(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4)
- );
-}
-
-void BindGuiLabel(const Napi::CallbackInfo& info) {
- GuiLabel(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4)
- );
-}
-
-void BindGuiStatusBar(const Napi::CallbackInfo& info) {
- GuiStatusBar(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4)
- );
-}
-
-void BindGuiDummyRec(const Napi::CallbackInfo& info) {
- GuiDummyRec(
- RectangleFromValue(info, 0),
- (const char *) stringFromValue(info, 4)
- );
-}
-
-void BindGuiLoadStyle(const Napi::CallbackInfo& info) {
- GuiLoadStyle(
- (const char *) stringFromValue(info, 0)
- );
-}
-
-void BindGuiLoadStyleDefault(const Napi::CallbackInfo& info) {
- GuiLoadStyleDefault(
-
- );
-}
-
-void BindGuiEnableTooltip(const Napi::CallbackInfo& info) {
- GuiEnableTooltip(
-
- );
-}
-
-void BindGuiDisableTooltip(const Napi::CallbackInfo& info) {
- GuiDisableTooltip(
-
- );
-}
-
-void BindGuiSetTooltip(const Napi::CallbackInfo& info) {
- GuiSetTooltip(
- (const char *) stringFromValue(info, 0)
- );
-}
-
-void BindGuiDrawIcon(const Napi::CallbackInfo& info) {
- GuiDrawIcon(
- intFromValue(info, 0),
- intFromValue(info, 1),
- intFromValue(info, 2),
- intFromValue(info, 3),
- ColorFromValue(info, 4)
- );
-}
-
-void BindGuiSetIconScale(const Napi::CallbackInfo& info) {
- GuiSetIconScale(
- intFromValue(info, 0)
- );
-}
-
void BindrlMatrixMode(const Napi::CallbackInfo& info) {
rlMatrixMode(
intFromValue(info, 0)
@@ -6856,6 +6718,20 @@ void BindrlActiveDrawBuffers(const Napi::CallbackInfo& info) {
);
}
+void BindrlBlitFramebuffer(const Napi::CallbackInfo& info) {
+ rlBlitFramebuffer(
+ intFromValue(info, 0),
+ intFromValue(info, 1),
+ intFromValue(info, 2),
+ intFromValue(info, 3),
+ intFromValue(info, 4),
+ intFromValue(info, 5),
+ intFromValue(info, 6),
+ intFromValue(info, 7),
+ intFromValue(info, 8)
+ );
+}
+
void BindrlEnableColorBlend(const Napi::CallbackInfo& info) {
rlEnableColorBlend(
@@ -6937,6 +6813,12 @@ void BindrlEnableWireMode(const Napi::CallbackInfo& info) {
);
}
+void BindrlEnablePointMode(const Napi::CallbackInfo& info) {
+ rlEnablePointMode(
+
+ );
+}
+
void BindrlDisableWireMode(const Napi::CallbackInfo& info) {
rlDisableWireMode(
@@ -7819,8 +7701,8 @@ void BindSetShaderVec4(const Napi::CallbackInfo& info) {
Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindInitWindow", Napi::Function::New(env, BindInitWindow));
- exports.Set("BindWindowShouldClose", Napi::Function::New(env, BindWindowShouldClose));
exports.Set("BindCloseWindow", Napi::Function::New(env, BindCloseWindow));
+ exports.Set("BindWindowShouldClose", Napi::Function::New(env, BindWindowShouldClose));
exports.Set("BindIsWindowReady", Napi::Function::New(env, BindIsWindowReady));
exports.Set("BindIsWindowFullscreen", Napi::Function::New(env, BindIsWindowFullscreen));
exports.Set("BindIsWindowHidden", Napi::Function::New(env, BindIsWindowHidden));
@@ -7832,6 +7714,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindSetWindowState", Napi::Function::New(env, BindSetWindowState));
exports.Set("BindClearWindowState", Napi::Function::New(env, BindClearWindowState));
exports.Set("BindToggleFullscreen", Napi::Function::New(env, BindToggleFullscreen));
+ exports.Set("BindToggleBorderlessWindowed", Napi::Function::New(env, BindToggleBorderlessWindowed));
exports.Set("BindMaximizeWindow", Napi::Function::New(env, BindMaximizeWindow));
exports.Set("BindMinimizeWindow", Napi::Function::New(env, BindMinimizeWindow));
exports.Set("BindRestoreWindow", Napi::Function::New(env, BindRestoreWindow));
@@ -7841,8 +7724,10 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindSetWindowPosition", Napi::Function::New(env, BindSetWindowPosition));
exports.Set("BindSetWindowMonitor", Napi::Function::New(env, BindSetWindowMonitor));
exports.Set("BindSetWindowMinSize", Napi::Function::New(env, BindSetWindowMinSize));
+ exports.Set("BindSetWindowMaxSize", Napi::Function::New(env, BindSetWindowMaxSize));
exports.Set("BindSetWindowSize", Napi::Function::New(env, BindSetWindowSize));
exports.Set("BindSetWindowOpacity", Napi::Function::New(env, BindSetWindowOpacity));
+ exports.Set("BindSetWindowFocused", Napi::Function::New(env, BindSetWindowFocused));
exports.Set("BindGetWindowHandle", Napi::Function::New(env, BindGetWindowHandle));
exports.Set("BindGetScreenWidth", Napi::Function::New(env, BindGetScreenWidth));
exports.Set("BindGetScreenHeight", Napi::Function::New(env, BindGetScreenHeight));
@@ -7863,9 +7748,6 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindGetClipboardText", Napi::Function::New(env, BindGetClipboardText));
exports.Set("BindEnableEventWaiting", Napi::Function::New(env, BindEnableEventWaiting));
exports.Set("BindDisableEventWaiting", Napi::Function::New(env, BindDisableEventWaiting));
- exports.Set("BindSwapScreenBuffer", Napi::Function::New(env, BindSwapScreenBuffer));
- exports.Set("BindPollInputEvents", Napi::Function::New(env, BindPollInputEvents));
- exports.Set("BindWaitTime", Napi::Function::New(env, BindWaitTime));
exports.Set("BindShowCursor", Napi::Function::New(env, BindShowCursor));
exports.Set("BindHideCursor", Napi::Function::New(env, BindHideCursor));
exports.Set("BindIsCursorHidden", Napi::Function::New(env, BindIsCursorHidden));
@@ -7904,18 +7786,23 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindGetWorldToScreenEx", Napi::Function::New(env, BindGetWorldToScreenEx));
exports.Set("BindGetWorldToScreen2D", Napi::Function::New(env, BindGetWorldToScreen2D));
exports.Set("BindSetTargetFPS", Napi::Function::New(env, BindSetTargetFPS));
- exports.Set("BindGetFPS", Napi::Function::New(env, BindGetFPS));
exports.Set("BindGetFrameTime", Napi::Function::New(env, BindGetFrameTime));
exports.Set("BindGetTime", Napi::Function::New(env, BindGetTime));
- exports.Set("BindGetRandomValue", Napi::Function::New(env, BindGetRandomValue));
+ exports.Set("BindGetFPS", Napi::Function::New(env, BindGetFPS));
+ exports.Set("BindSwapScreenBuffer", Napi::Function::New(env, BindSwapScreenBuffer));
+ exports.Set("BindPollInputEvents", Napi::Function::New(env, BindPollInputEvents));
+ exports.Set("BindWaitTime", Napi::Function::New(env, BindWaitTime));
exports.Set("BindSetRandomSeed", Napi::Function::New(env, BindSetRandomSeed));
+ exports.Set("BindGetRandomValue", Napi::Function::New(env, BindGetRandomValue));
+ exports.Set("BindLoadRandomSequence", Napi::Function::New(env, BindLoadRandomSequence));
+ exports.Set("BindUnloadRandomSequence", Napi::Function::New(env, BindUnloadRandomSequence));
exports.Set("BindTakeScreenshot", Napi::Function::New(env, BindTakeScreenshot));
exports.Set("BindSetConfigFlags", Napi::Function::New(env, BindSetConfigFlags));
+ exports.Set("BindOpenURL", Napi::Function::New(env, BindOpenURL));
exports.Set("BindSetTraceLogLevel", Napi::Function::New(env, BindSetTraceLogLevel));
exports.Set("BindMemAlloc", Napi::Function::New(env, BindMemAlloc));
exports.Set("BindMemRealloc", Napi::Function::New(env, BindMemRealloc));
exports.Set("BindMemFree", Napi::Function::New(env, BindMemFree));
- exports.Set("BindOpenURL", Napi::Function::New(env, BindOpenURL));
exports.Set("BindLoadFileData", Napi::Function::New(env, BindLoadFileData));
exports.Set("BindUnloadFileData", Napi::Function::New(env, BindUnloadFileData));
exports.Set("BindSaveFileData", Napi::Function::New(env, BindSaveFileData));
@@ -7947,13 +7834,22 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindDecompressData", Napi::Function::New(env, BindDecompressData));
exports.Set("BindEncodeDataBase64", Napi::Function::New(env, BindEncodeDataBase64));
exports.Set("BindDecodeDataBase64", Napi::Function::New(env, BindDecodeDataBase64));
+ exports.Set("BindLoadAutomationEventList", Napi::Function::New(env, BindLoadAutomationEventList));
+ exports.Set("BindUnloadAutomationEventList", Napi::Function::New(env, BindUnloadAutomationEventList));
+ exports.Set("BindExportAutomationEventList", Napi::Function::New(env, BindExportAutomationEventList));
+ exports.Set("BindSetAutomationEventList", Napi::Function::New(env, BindSetAutomationEventList));
+ exports.Set("BindSetAutomationEventBaseFrame", Napi::Function::New(env, BindSetAutomationEventBaseFrame));
+ exports.Set("BindStartAutomationEventRecording", Napi::Function::New(env, BindStartAutomationEventRecording));
+ exports.Set("BindStopAutomationEventRecording", Napi::Function::New(env, BindStopAutomationEventRecording));
+ exports.Set("BindPlayAutomationEvent", Napi::Function::New(env, BindPlayAutomationEvent));
exports.Set("BindIsKeyPressed", Napi::Function::New(env, BindIsKeyPressed));
+ exports.Set("BindIsKeyPressedRepeat", Napi::Function::New(env, BindIsKeyPressedRepeat));
exports.Set("BindIsKeyDown", Napi::Function::New(env, BindIsKeyDown));
exports.Set("BindIsKeyReleased", Napi::Function::New(env, BindIsKeyReleased));
exports.Set("BindIsKeyUp", Napi::Function::New(env, BindIsKeyUp));
- exports.Set("BindSetExitKey", Napi::Function::New(env, BindSetExitKey));
exports.Set("BindGetKeyPressed", Napi::Function::New(env, BindGetKeyPressed));
exports.Set("BindGetCharPressed", Napi::Function::New(env, BindGetCharPressed));
+ exports.Set("BindSetExitKey", Napi::Function::New(env, BindSetExitKey));
exports.Set("BindIsGamepadAvailable", Napi::Function::New(env, BindIsGamepadAvailable));
exports.Set("BindGetGamepadName", Napi::Function::New(env, BindGetGamepadName));
exports.Set("BindIsGamepadButtonPressed", Napi::Function::New(env, BindIsGamepadButtonPressed));
@@ -7999,16 +7895,15 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindDrawLine", Napi::Function::New(env, BindDrawLine));
exports.Set("BindDrawLineV", Napi::Function::New(env, BindDrawLineV));
exports.Set("BindDrawLineEx", Napi::Function::New(env, BindDrawLineEx));
- exports.Set("BindDrawLineBezier", Napi::Function::New(env, BindDrawLineBezier));
- exports.Set("BindDrawLineBezierQuad", Napi::Function::New(env, BindDrawLineBezierQuad));
- exports.Set("BindDrawLineBezierCubic", Napi::Function::New(env, BindDrawLineBezierCubic));
exports.Set("BindDrawLineStrip", Napi::Function::New(env, BindDrawLineStrip));
+ exports.Set("BindDrawLineBezier", Napi::Function::New(env, BindDrawLineBezier));
exports.Set("BindDrawCircle", Napi::Function::New(env, BindDrawCircle));
exports.Set("BindDrawCircleSector", Napi::Function::New(env, BindDrawCircleSector));
exports.Set("BindDrawCircleSectorLines", Napi::Function::New(env, BindDrawCircleSectorLines));
exports.Set("BindDrawCircleGradient", Napi::Function::New(env, BindDrawCircleGradient));
exports.Set("BindDrawCircleV", Napi::Function::New(env, BindDrawCircleV));
exports.Set("BindDrawCircleLines", Napi::Function::New(env, BindDrawCircleLines));
+ exports.Set("BindDrawCircleLinesV", Napi::Function::New(env, BindDrawCircleLinesV));
exports.Set("BindDrawEllipse", Napi::Function::New(env, BindDrawEllipse));
exports.Set("BindDrawEllipseLines", Napi::Function::New(env, BindDrawEllipseLines));
exports.Set("BindDrawRing", Napi::Function::New(env, BindDrawRing));
@@ -8031,6 +7926,21 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindDrawPoly", Napi::Function::New(env, BindDrawPoly));
exports.Set("BindDrawPolyLines", Napi::Function::New(env, BindDrawPolyLines));
exports.Set("BindDrawPolyLinesEx", Napi::Function::New(env, BindDrawPolyLinesEx));
+ exports.Set("BindDrawSplineLinear", Napi::Function::New(env, BindDrawSplineLinear));
+ exports.Set("BindDrawSplineBasis", Napi::Function::New(env, BindDrawSplineBasis));
+ exports.Set("BindDrawSplineCatmullRom", Napi::Function::New(env, BindDrawSplineCatmullRom));
+ exports.Set("BindDrawSplineBezierQuadratic", Napi::Function::New(env, BindDrawSplineBezierQuadratic));
+ exports.Set("BindDrawSplineBezierCubic", Napi::Function::New(env, BindDrawSplineBezierCubic));
+ exports.Set("BindDrawSplineSegmentLinear", Napi::Function::New(env, BindDrawSplineSegmentLinear));
+ exports.Set("BindDrawSplineSegmentBasis", Napi::Function::New(env, BindDrawSplineSegmentBasis));
+ exports.Set("BindDrawSplineSegmentCatmullRom", Napi::Function::New(env, BindDrawSplineSegmentCatmullRom));
+ exports.Set("BindDrawSplineSegmentBezierQuadratic", Napi::Function::New(env, BindDrawSplineSegmentBezierQuadratic));
+ exports.Set("BindDrawSplineSegmentBezierCubic", Napi::Function::New(env, BindDrawSplineSegmentBezierCubic));
+ exports.Set("BindGetSplinePointLinear", Napi::Function::New(env, BindGetSplinePointLinear));
+ exports.Set("BindGetSplinePointBasis", Napi::Function::New(env, BindGetSplinePointBasis));
+ exports.Set("BindGetSplinePointCatmullRom", Napi::Function::New(env, BindGetSplinePointCatmullRom));
+ exports.Set("BindGetSplinePointBezierQuad", Napi::Function::New(env, BindGetSplinePointBezierQuad));
+ exports.Set("BindGetSplinePointBezierCubic", Napi::Function::New(env, BindGetSplinePointBezierCubic));
exports.Set("BindCheckCollisionRecs", Napi::Function::New(env, BindCheckCollisionRecs));
exports.Set("BindCheckCollisionCircles", Napi::Function::New(env, BindCheckCollisionCircles));
exports.Set("BindCheckCollisionCircleRec", Napi::Function::New(env, BindCheckCollisionCircleRec));
@@ -8043,6 +7953,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindGetCollisionRec", Napi::Function::New(env, BindGetCollisionRec));
exports.Set("BindLoadImage", Napi::Function::New(env, BindLoadImage));
exports.Set("BindLoadImageRaw", Napi::Function::New(env, BindLoadImageRaw));
+ exports.Set("BindLoadImageSvg", Napi::Function::New(env, BindLoadImageSvg));
exports.Set("BindLoadImageAnim", Napi::Function::New(env, BindLoadImageAnim));
exports.Set("BindLoadImageFromMemory", Napi::Function::New(env, BindLoadImageFromMemory));
exports.Set("BindLoadImageFromTexture", Napi::Function::New(env, BindLoadImageFromTexture));
@@ -8050,11 +7961,12 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindIsImageReady", Napi::Function::New(env, BindIsImageReady));
exports.Set("BindUnloadImage", Napi::Function::New(env, BindUnloadImage));
exports.Set("BindExportImage", Napi::Function::New(env, BindExportImage));
+ exports.Set("BindExportImageToMemory", Napi::Function::New(env, BindExportImageToMemory));
exports.Set("BindExportImageAsCode", Napi::Function::New(env, BindExportImageAsCode));
exports.Set("BindGenImageColor", Napi::Function::New(env, BindGenImageColor));
- exports.Set("BindGenImageGradientV", Napi::Function::New(env, BindGenImageGradientV));
- exports.Set("BindGenImageGradientH", Napi::Function::New(env, BindGenImageGradientH));
+ exports.Set("BindGenImageGradientLinear", Napi::Function::New(env, BindGenImageGradientLinear));
exports.Set("BindGenImageGradientRadial", Napi::Function::New(env, BindGenImageGradientRadial));
+ exports.Set("BindGenImageGradientSquare", Napi::Function::New(env, BindGenImageGradientSquare));
exports.Set("BindGenImageChecked", Napi::Function::New(env, BindGenImageChecked));
exports.Set("BindGenImageWhiteNoise", Napi::Function::New(env, BindGenImageWhiteNoise));
exports.Set("BindGenImagePerlinNoise", Napi::Function::New(env, BindGenImagePerlinNoise));
@@ -8079,6 +7991,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindImageDither", Napi::Function::New(env, BindImageDither));
exports.Set("BindImageFlipVertical", Napi::Function::New(env, BindImageFlipVertical));
exports.Set("BindImageFlipHorizontal", Napi::Function::New(env, BindImageFlipHorizontal));
+ exports.Set("BindImageRotate", Napi::Function::New(env, BindImageRotate));
exports.Set("BindImageRotateCW", Napi::Function::New(env, BindImageRotateCW));
exports.Set("BindImageRotateCCW", Napi::Function::New(env, BindImageRotateCCW));
exports.Set("BindImageColorTint", Napi::Function::New(env, BindImageColorTint));
@@ -8160,6 +8073,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindDrawTextPro", Napi::Function::New(env, BindDrawTextPro));
exports.Set("BindDrawTextCodepoint", Napi::Function::New(env, BindDrawTextCodepoint));
exports.Set("BindDrawTextCodepoints", Napi::Function::New(env, BindDrawTextCodepoints));
+ exports.Set("BindSetTextLineSpacing", Napi::Function::New(env, BindSetTextLineSpacing));
exports.Set("BindMeasureText", Napi::Function::New(env, BindMeasureText));
exports.Set("BindMeasureTextEx", Napi::Function::New(env, BindMeasureTextEx));
exports.Set("BindGetGlyphIndex", Napi::Function::New(env, BindGetGlyphIndex));
@@ -8257,15 +8171,18 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindCloseAudioDevice", Napi::Function::New(env, BindCloseAudioDevice));
exports.Set("BindIsAudioDeviceReady", Napi::Function::New(env, BindIsAudioDeviceReady));
exports.Set("BindSetMasterVolume", Napi::Function::New(env, BindSetMasterVolume));
+ exports.Set("BindGetMasterVolume", Napi::Function::New(env, BindGetMasterVolume));
exports.Set("BindLoadWave", Napi::Function::New(env, BindLoadWave));
exports.Set("BindLoadWaveFromMemory", Napi::Function::New(env, BindLoadWaveFromMemory));
exports.Set("BindIsWaveReady", Napi::Function::New(env, BindIsWaveReady));
exports.Set("BindLoadSound", Napi::Function::New(env, BindLoadSound));
exports.Set("BindLoadSoundFromWave", Napi::Function::New(env, BindLoadSoundFromWave));
+ exports.Set("BindLoadSoundAlias", Napi::Function::New(env, BindLoadSoundAlias));
exports.Set("BindIsSoundReady", Napi::Function::New(env, BindIsSoundReady));
exports.Set("BindUpdateSound", Napi::Function::New(env, BindUpdateSound));
exports.Set("BindUnloadWave", Napi::Function::New(env, BindUnloadWave));
exports.Set("BindUnloadSound", Napi::Function::New(env, BindUnloadSound));
+ exports.Set("BindUnloadSoundAlias", Napi::Function::New(env, BindUnloadSoundAlias));
exports.Set("BindExportWave", Napi::Function::New(env, BindExportWave));
exports.Set("BindExportWaveAsCode", Napi::Function::New(env, BindExportWaveAsCode));
exports.Set("BindPlaySound", Napi::Function::New(env, BindPlaySound));
@@ -8391,6 +8308,8 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindVector3Negate", Napi::Function::New(env, BindVector3Negate));
exports.Set("BindVector3Divide", Napi::Function::New(env, BindVector3Divide));
exports.Set("BindVector3Normalize", Napi::Function::New(env, BindVector3Normalize));
+ exports.Set("BindVector3Project", Napi::Function::New(env, BindVector3Project));
+ exports.Set("BindVector3Reject", Napi::Function::New(env, BindVector3Reject));
exports.Set("BindVector3OrthoNormalize", Napi::Function::New(env, BindVector3OrthoNormalize));
exports.Set("BindVector3Transform", Napi::Function::New(env, BindVector3Transform));
exports.Set("BindVector3RotateByQuaternion", Napi::Function::New(env, BindVector3RotateByQuaternion));
@@ -8449,60 +8368,6 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindQuaternionToEuler", Napi::Function::New(env, BindQuaternionToEuler));
exports.Set("BindQuaternionTransform", Napi::Function::New(env, BindQuaternionTransform));
exports.Set("BindQuaternionEquals", Napi::Function::New(env, BindQuaternionEquals));
- exports.Set("BindGuiEnable", Napi::Function::New(env, BindGuiEnable));
- exports.Set("BindGuiDisable", Napi::Function::New(env, BindGuiDisable));
- exports.Set("BindGuiLock", Napi::Function::New(env, BindGuiLock));
- exports.Set("BindGuiUnlock", Napi::Function::New(env, BindGuiUnlock));
- exports.Set("BindGuiIsLocked", Napi::Function::New(env, BindGuiIsLocked));
- exports.Set("BindGuiFade", Napi::Function::New(env, BindGuiFade));
- exports.Set("BindGuiSetState", Napi::Function::New(env, BindGuiSetState));
- exports.Set("BindGuiGetState", Napi::Function::New(env, BindGuiGetState));
- exports.Set("BindGuiSetFont", Napi::Function::New(env, BindGuiSetFont));
- exports.Set("BindGuiGetFont", Napi::Function::New(env, BindGuiGetFont));
- exports.Set("BindGuiSetStyle", Napi::Function::New(env, BindGuiSetStyle));
- exports.Set("BindGuiGetStyle", Napi::Function::New(env, BindGuiGetStyle));
- exports.Set("BindGuiWindowBox", Napi::Function::New(env, BindGuiWindowBox));
- exports.Set("BindGuiGroupBox", Napi::Function::New(env, BindGuiGroupBox));
- exports.Set("BindGuiLine", Napi::Function::New(env, BindGuiLine));
- exports.Set("BindGuiPanel", Napi::Function::New(env, BindGuiPanel));
- exports.Set("BindGuiTabBar", Napi::Function::New(env, BindGuiTabBar));
- exports.Set("BindGuiScrollPanel", Napi::Function::New(env, BindGuiScrollPanel));
- exports.Set("BindGuiLabel", Napi::Function::New(env, BindGuiLabel));
- exports.Set("BindGuiButton", Napi::Function::New(env, BindGuiButton));
- exports.Set("BindGuiLabelButton", Napi::Function::New(env, BindGuiLabelButton));
- exports.Set("BindGuiToggle", Napi::Function::New(env, BindGuiToggle));
- exports.Set("BindGuiToggleGroup", Napi::Function::New(env, BindGuiToggleGroup));
- exports.Set("BindGuiCheckBox", Napi::Function::New(env, BindGuiCheckBox));
- exports.Set("BindGuiComboBox", Napi::Function::New(env, BindGuiComboBox));
- exports.Set("BindGuiDropdownBox", Napi::Function::New(env, BindGuiDropdownBox));
- exports.Set("BindGuiSpinner", Napi::Function::New(env, BindGuiSpinner));
- exports.Set("BindGuiValueBox", Napi::Function::New(env, BindGuiValueBox));
- exports.Set("BindGuiTextBox", Napi::Function::New(env, BindGuiTextBox));
- exports.Set("BindGuiTextBoxMulti", Napi::Function::New(env, BindGuiTextBoxMulti));
- exports.Set("BindGuiSlider", Napi::Function::New(env, BindGuiSlider));
- exports.Set("BindGuiSliderBar", Napi::Function::New(env, BindGuiSliderBar));
- exports.Set("BindGuiProgressBar", Napi::Function::New(env, BindGuiProgressBar));
- exports.Set("BindGuiStatusBar", Napi::Function::New(env, BindGuiStatusBar));
- exports.Set("BindGuiDummyRec", Napi::Function::New(env, BindGuiDummyRec));
- exports.Set("BindGuiGrid", Napi::Function::New(env, BindGuiGrid));
- exports.Set("BindGuiListView", Napi::Function::New(env, BindGuiListView));
- exports.Set("BindGuiListViewEx", Napi::Function::New(env, BindGuiListViewEx));
- exports.Set("BindGuiMessageBox", Napi::Function::New(env, BindGuiMessageBox));
- exports.Set("BindGuiTextInputBox", Napi::Function::New(env, BindGuiTextInputBox));
- exports.Set("BindGuiColorPicker", Napi::Function::New(env, BindGuiColorPicker));
- exports.Set("BindGuiColorPanel", Napi::Function::New(env, BindGuiColorPanel));
- exports.Set("BindGuiColorBarAlpha", Napi::Function::New(env, BindGuiColorBarAlpha));
- exports.Set("BindGuiColorBarHue", Napi::Function::New(env, BindGuiColorBarHue));
- exports.Set("BindGuiLoadStyle", Napi::Function::New(env, BindGuiLoadStyle));
- exports.Set("BindGuiLoadStyleDefault", Napi::Function::New(env, BindGuiLoadStyleDefault));
- exports.Set("BindGuiEnableTooltip", Napi::Function::New(env, BindGuiEnableTooltip));
- exports.Set("BindGuiDisableTooltip", Napi::Function::New(env, BindGuiDisableTooltip));
- exports.Set("BindGuiSetTooltip", Napi::Function::New(env, BindGuiSetTooltip));
- exports.Set("BindGuiIconText", Napi::Function::New(env, BindGuiIconText));
- exports.Set("BindGuiGetIcons", Napi::Function::New(env, BindGuiGetIcons));
- exports.Set("BindGuiLoadIcons", Napi::Function::New(env, BindGuiLoadIcons));
- exports.Set("BindGuiDrawIcon", Napi::Function::New(env, BindGuiDrawIcon));
- exports.Set("BindGuiSetIconScale", Napi::Function::New(env, BindGuiSetIconScale));
exports.Set("BindrlMatrixMode", Napi::Function::New(env, BindrlMatrixMode));
exports.Set("BindrlPushMatrix", Napi::Function::New(env, BindrlPushMatrix));
exports.Set("BindrlPopMatrix", Napi::Function::New(env, BindrlPopMatrix));
@@ -8544,6 +8409,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindrlEnableFramebuffer", Napi::Function::New(env, BindrlEnableFramebuffer));
exports.Set("BindrlDisableFramebuffer", Napi::Function::New(env, BindrlDisableFramebuffer));
exports.Set("BindrlActiveDrawBuffers", Napi::Function::New(env, BindrlActiveDrawBuffers));
+ exports.Set("BindrlBlitFramebuffer", Napi::Function::New(env, BindrlBlitFramebuffer));
exports.Set("BindrlEnableColorBlend", Napi::Function::New(env, BindrlEnableColorBlend));
exports.Set("BindrlDisableColorBlend", Napi::Function::New(env, BindrlDisableColorBlend));
exports.Set("BindrlEnableDepthTest", Napi::Function::New(env, BindrlEnableDepthTest));
@@ -8557,6 +8423,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("BindrlDisableScissorTest", Napi::Function::New(env, BindrlDisableScissorTest));
exports.Set("BindrlScissor", Napi::Function::New(env, BindrlScissor));
exports.Set("BindrlEnableWireMode", Napi::Function::New(env, BindrlEnableWireMode));
+ exports.Set("BindrlEnablePointMode", Napi::Function::New(env, BindrlEnablePointMode));
exports.Set("BindrlDisableWireMode", Napi::Function::New(env, BindrlDisableWireMode));
exports.Set("BindrlSetLineWidth", Napi::Function::New(env, BindrlSetLineWidth));
exports.Set("BindrlGetLineWidth", Napi::Function::New(env, BindrlGetLineWidth));
diff --git a/src/generated/node-raylib.d.ts b/src/generated/node-raylib.d.ts
index f2ff791..81939b0 100644
--- a/src/generated/node-raylib.d.ts
+++ b/src/generated/node-raylib.d.ts
@@ -291,6 +291,8 @@ declare module "raylib" {
bones: number
/** Poses array by frame. (Transform **) */
framePoses: number
+ /** Animation name. (char[32]) */
+ name: string
}
/** Ray, ray for raycasting */
export interface Ray {
@@ -414,6 +416,24 @@ declare module "raylib" {
/** Filepaths entries. (char **) */
paths: number
}
+ /** Automation event */
+ export interface AutomationEvent {
+ /** Event frame. (unsigned int) */
+ frame: number
+ /** Event type (AutomationEventType). (unsigned int) */
+ type: number
+ /** Event parameters (if required). (int[4]) */
+ params: number
+ }
+ /** Automation event list */
+ export interface AutomationEventList {
+ /** Events max entries (MAX_AUTOMATION_EVENTS). (unsigned int) */
+ capacity: number
+ /** Events entries count. (unsigned int) */
+ count: number
+ /** Events entries. (AutomationEvent *) */
+ events: number
+ }
/** Dynamic vertex buffers (position + texcoords + colors + indices arrays) */
export interface rlVertexBuffer {
/** Number of elements in the buffer (QUADS). (int) */
@@ -475,12 +495,12 @@ declare module "raylib" {
/** Initialize window and OpenGL context */
export function InitWindow(width: number, height: number, title: string): void
- /** Check if KEY_ESCAPE pressed or Close icon pressed */
- export function WindowShouldClose(): boolean
-
/** Close window and unload OpenGL context */
export function CloseWindow(): void
+ /** Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) */
+ export function WindowShouldClose(): boolean
+
/** Check if window has been initialized successfully */
export function IsWindowReady(): boolean
@@ -514,6 +534,9 @@ declare module "raylib" {
/** Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP) */
export function ToggleFullscreen(): void
+ /** Toggle window state: borderless windowed (only PLATFORM_DESKTOP) */
+ export function ToggleBorderlessWindowed(): void
+
/** Set window state: maximized, if resizable (only PLATFORM_DESKTOP) */
export function MaximizeWindow(): void
@@ -529,24 +552,30 @@ declare module "raylib" {
/** Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP) */
export function SetWindowIcons(images: number, count: number): void
- /** Set title for window (only PLATFORM_DESKTOP) */
+ /** Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB) */
export function SetWindowTitle(title: string): void
/** Set window position on screen (only PLATFORM_DESKTOP) */
export function SetWindowPosition(x: number, y: number): void
- /** Set monitor for the current window (fullscreen mode) */
+ /** Set monitor for the current window */
export function SetWindowMonitor(monitor: number): void
/** Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) */
export function SetWindowMinSize(width: number, height: number): void
+ /** Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) */
+ export function SetWindowMaxSize(width: number, height: number): void
+
/** Set window dimensions */
export function SetWindowSize(width: number, height: number): void
/** Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP) */
export function SetWindowOpacity(opacity: number): void
+ /** Set window focused (only PLATFORM_DESKTOP) */
+ export function SetWindowFocused(): void
+
/** Get native window handle */
export function GetWindowHandle(): number
@@ -592,7 +621,7 @@ declare module "raylib" {
/** Get window scale DPI factor */
export function GetWindowScaleDPI(): Vector2
- /** Get the human-readable, UTF-8 encoded name of the primary monitor */
+ /** Get the human-readable, UTF-8 encoded name of the specified monitor */
export function GetMonitorName(monitor: number): string
/** Set clipboard text content */
@@ -607,15 +636,6 @@ declare module "raylib" {
/** Disable waiting for events on EndDrawing(), automatic events polling */
export function DisableEventWaiting(): void
- /** Swap back buffer with front buffer (screen drawing) */
- export function SwapScreenBuffer(): void
-
- /** Register all input events */
- export function PollInputEvents(): void
-
- /** Wait for some time (halt program execution) */
- export function WaitTime(seconds: number): void
-
/** Shows cursor */
export function ShowCursor(): void
@@ -730,27 +750,45 @@ declare module "raylib" {
/** Set target FPS (maximum) */
export function SetTargetFPS(fps: number): void
- /** Get current FPS */
- export function GetFPS(): number
-
/** Get time in seconds for last frame drawn (delta time) */
export function GetFrameTime(): number
/** Get elapsed time in seconds since InitWindow() */
export function GetTime(): number
- /** Get a random value between min and max (both included) */
- export function GetRandomValue(min: number, max: number): number
+ /** Get current FPS */
+ export function GetFPS(): number
+
+ /** Swap back buffer with front buffer (screen drawing) */
+ export function SwapScreenBuffer(): void
+
+ /** Register all input events */
+ export function PollInputEvents(): void
+
+ /** Wait for some time (halt program execution) */
+ export function WaitTime(seconds: number): void
/** Set the seed for the random number generator */
export function SetRandomSeed(seed: number): void
+ /** Get a random value between min and max (both included) */
+ export function GetRandomValue(min: number, max: number): number
+
+ /** Load random values sequence, no values repeated */
+ export function LoadRandomSequence(count: number, min: number, max: number): number
+
+ /** Unload random values sequence */
+ export function UnloadRandomSequence(sequence: number): void
+
/** Takes a screenshot of current screen (filename extension defines format) */
export function TakeScreenshot(fileName: string): void
/** Setup init configuration flags (view FLAGS) */
export function SetConfigFlags(flags: number): void
+ /** Open URL with default system browser (if available) */
+ export function OpenURL(url: string): void
+
/** Set the current threshold (minimum) log level */
export function SetTraceLogLevel(logLevel: number): void
@@ -763,20 +801,17 @@ declare module "raylib" {
/** Internal memory free */
export function MemFree(ptr: number): void
- /** Open URL with default system browser (if available) */
- export function OpenURL(url: string): void
-
/** Load file data as byte array (read) */
- export function LoadFileData(fileName: string, bytesRead: number): Buffer
+ export function LoadFileData(fileName: string, dataSize: number): Buffer
/** Unload file data allocated by LoadFileData() */
export function UnloadFileData(data: Buffer): void
/** Save data to file from byte array (write), returns true on success */
- export function SaveFileData(fileName: string, data: number, bytesToWrite: number): boolean
+ export function SaveFileData(fileName: string, data: number, dataSize: number): boolean
/** Export data to code (.h), returns true on success */
- export function ExportDataAsCode(data: Buffer, size: number, fileName: string): boolean
+ export function ExportDataAsCode(data: Buffer, dataSize: number, fileName: string): boolean
/** Load text data from file (read), returns a '\0' terminated string */
export function LoadFileText(fileName: string): string
@@ -817,7 +852,7 @@ declare module "raylib" {
/** Get current working directory (uses static string) */
export function GetWorkingDirectory(): string
- /** Get the directory if the running application (uses static string) */
+ /** Get the directory of the running application (uses static string) */
export function GetApplicationDirectory(): string
/** Change working directory, return true on success */
@@ -859,9 +894,36 @@ declare module "raylib" {
/** Decode Base64 string data, memory must be MemFree() */
export function DecodeDataBase64(data: Buffer, outputSize: number): Buffer
+ /** Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS */
+ export function LoadAutomationEventList(fileName: string): AutomationEventList
+
+ /** Unload automation events list from file */
+ export function UnloadAutomationEventList(list: number): void
+
+ /** Export automation events list as text file */
+ export function ExportAutomationEventList(list: AutomationEventList, fileName: string): boolean
+
+ /** Set automation event list to record to */
+ export function SetAutomationEventList(list: number): void
+
+ /** Set automation event internal base frame to start recording */
+ export function SetAutomationEventBaseFrame(frame: number): void
+
+ /** Start recording automation events (AutomationEventList must be set) */
+ export function StartAutomationEventRecording(): void
+
+ /** Stop recording automation events */
+ export function StopAutomationEventRecording(): void
+
+ /** Play a recorded automation event */
+ export function PlayAutomationEvent(event: AutomationEvent): void
+
/** Check if a key has been pressed once */
export function IsKeyPressed(key: number): boolean
+ /** Check if a key has been pressed again (Only PLATFORM_DESKTOP) */
+ export function IsKeyPressedRepeat(key: number): boolean
+
/** Check if a key is being pressed */
export function IsKeyDown(key: number): boolean
@@ -871,15 +933,15 @@ declare module "raylib" {
/** Check if a key is NOT being pressed */
export function IsKeyUp(key: number): boolean
- /** Set a custom key to exit program (default is ESC) */
- export function SetExitKey(key: number): void
-
/** Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty */
export function GetKeyPressed(): number
/** Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty */
export function GetCharPressed(): number
+ /** Set a custom key to exit program (default is ESC) */
+ export function SetExitKey(key: number): void
+
/** Check if a gamepad is available */
export function IsGamepadAvailable(gamepad: number): boolean
@@ -1009,24 +1071,18 @@ declare module "raylib" {
/** Draw a line */
export function DrawLine(startPosX: number, startPosY: number, endPosX: number, endPosY: number, color: Color): void
- /** Draw a line (Vector version) */
+ /** Draw a line (using gl lines) */
export function DrawLineV(startPos: Vector2, endPos: Vector2, color: Color): void
- /** Draw a line defining thickness */
+ /** Draw a line (using triangles/quads) */
export function DrawLineEx(startPos: Vector2, endPos: Vector2, thick: number, color: Color): void
- /** Draw a line using cubic-bezier curves in-out */
- export function DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: number, color: Color): void
-
- /** Draw line using quadratic bezier curves with a control point */
- export function DrawLineBezierQuad(startPos: Vector2, endPos: Vector2, controlPos: Vector2, thick: number, color: Color): void
-
- /** Draw line using cubic bezier curves with 2 control points */
- export function DrawLineBezierCubic(startPos: Vector2, endPos: Vector2, startControlPos: Vector2, endControlPos: Vector2, thick: number, color: Color): void
-
- /** Draw lines sequence */
+ /** Draw lines sequence (using gl lines) */
export function DrawLineStrip(points: number, pointCount: number, color: Color): void
+ /** Draw line segment cubic-bezier in-out interpolation */
+ export function DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: number, color: Color): void
+
/** Draw a color-filled circle */
export function DrawCircle(centerX: number, centerY: number, radius: number, color: Color): void
@@ -1045,6 +1101,9 @@ declare module "raylib" {
/** Draw circle outline */
export function DrawCircleLines(centerX: number, centerY: number, radius: number, color: Color): void
+ /** Draw circle outline (Vector version) */
+ export function DrawCircleLinesV(center: Vector2, radius: number, color: Color): void
+
/** Draw ellipse */
export function DrawEllipse(centerX: number, centerY: number, radiusH: number, radiusV: number, color: Color): void
@@ -1111,6 +1170,51 @@ declare module "raylib" {
/** Draw a polygon outline of n sides with extended parameters */
export function DrawPolyLinesEx(center: Vector2, sides: number, radius: number, rotation: number, lineThick: number, color: Color): void
+ /** Draw spline: Linear, minimum 2 points */
+ export function DrawSplineLinear(points: number, pointCount: number, thick: number, color: Color): void
+
+ /** Draw spline: B-Spline, minimum 4 points */
+ export function DrawSplineBasis(points: number, pointCount: number, thick: number, color: Color): void
+
+ /** Draw spline: Catmull-Rom, minimum 4 points */
+ export function DrawSplineCatmullRom(points: number, pointCount: number, thick: number, color: Color): void
+
+ /** Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] */
+ export function DrawSplineBezierQuadratic(points: number, pointCount: number, thick: number, color: Color): void
+
+ /** Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] */
+ export function DrawSplineBezierCubic(points: number, pointCount: number, thick: number, color: Color): void
+
+ /** Draw spline segment: Linear, 2 points */
+ export function DrawSplineSegmentLinear(p1: Vector2, p2: Vector2, thick: number, color: Color): void
+
+ /** Draw spline segment: B-Spline, 4 points */
+ export function DrawSplineSegmentBasis(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, thick: number, color: Color): void
+
+ /** Draw spline segment: Catmull-Rom, 4 points */
+ export function DrawSplineSegmentCatmullRom(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, thick: number, color: Color): void
+
+ /** Draw spline segment: Quadratic Bezier, 2 points, 1 control point */
+ export function DrawSplineSegmentBezierQuadratic(p1: Vector2, c2: Vector2, p3: Vector2, thick: number, color: Color): void
+
+ /** Draw spline segment: Cubic Bezier, 2 points, 2 control points */
+ export function DrawSplineSegmentBezierCubic(p1: Vector2, c2: Vector2, c3: Vector2, p4: Vector2, thick: number, color: Color): void
+
+ /** Get (evaluate) spline point: Linear */
+ export function GetSplinePointLinear(startPos: Vector2, endPos: Vector2, t: number): Vector2
+
+ /** Get (evaluate) spline point: B-Spline */
+ export function GetSplinePointBasis(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, t: number): Vector2
+
+ /** Get (evaluate) spline point: Catmull-Rom */
+ export function GetSplinePointCatmullRom(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, t: number): Vector2
+
+ /** Get (evaluate) spline point: Quadratic Bezier */
+ export function GetSplinePointBezierQuad(p1: Vector2, c2: Vector2, p3: Vector2, t: number): Vector2
+
+ /** Get (evaluate) spline point: Cubic Bezier */
+ export function GetSplinePointBezierCubic(p1: Vector2, c2: Vector2, c3: Vector2, p4: Vector2, t: number): Vector2
+
/** Check collision between two rectangles */
export function CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle): boolean
@@ -1147,6 +1251,9 @@ declare module "raylib" {
/** Load image from RAW file data */
export function LoadImageRaw(fileName: string, width: number, height: number, format: number, headerSize: number): Image
+ /** Load image from SVG file data or string with specified size */
+ export function LoadImageSvg(fileNameOrString: string, width: number, height: number): Image
+
/** Load image sequence from file (frames appended to image.data) */
export function LoadImageAnim(fileName: string, frames: number): Image
@@ -1168,21 +1275,24 @@ declare module "raylib" {
/** Export image data to file, returns true on success */
export function ExportImage(image: Image, fileName: string): boolean
+ /** Export image to memory buffer */
+ export function ExportImageToMemory(image: Image, fileType: string, fileSize: number): Buffer
+
/** Export image as code file defining an array of bytes, returns true on success */
export function ExportImageAsCode(image: Image, fileName: string): boolean
/** Generate image: plain color */
export function GenImageColor(width: number, height: number, color: Color): Image
- /** Generate image: vertical gradient */
- export function GenImageGradientV(width: number, height: number, top: Color, bottom: Color): Image
-
- /** Generate image: horizontal gradient */
- export function GenImageGradientH(width: number, height: number, left: Color, right: Color): Image
+ /** Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient */
+ export function GenImageGradientLinear(width: number, height: number, direction: number, start: Color, end: Color): Image
/** Generate image: radial gradient */
export function GenImageGradientRadial(width: number, height: number, density: number, inner: Color, outer: Color): Image
+ /** Generate image: square gradient */
+ export function GenImageGradientSquare(width: number, height: number, density: number, inner: Color, outer: Color): Image
+
/** Generate image: checked */
export function GenImageChecked(width: number, height: number, checksX: number, checksY: number, col1: Color, col2: Color): Image
@@ -1255,6 +1365,9 @@ declare module "raylib" {
/** Flip image horizontally */
export function ImageFlipHorizontal(image: Image): void
+ /** Rotate image by input angle in degrees (-359 to 359) */
+ export function ImageRotate(image: number, degrees: number): void
+
/** Rotate image clockwise 90deg */
export function ImageRotateCW(image: Image): void
@@ -1453,26 +1566,26 @@ declare module "raylib" {
/** Load font from file into GPU memory (VRAM) */
export function LoadFont(fileName: string): Font
- /** Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set */
- export function LoadFontEx(fileName: string, fontSize: number, fontChars: number, glyphCount: number): Font
+ /** Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set */
+ export function LoadFontEx(fileName: string, fontSize: number, codepoints: number, codepointCount: number): Font
/** Load font from Image (XNA style) */
export function LoadFontFromImage(image: Image, key: Color, firstChar: number): Font
/** Load font from memory buffer, fileType refers to extension: i.e. '.ttf' */
- export function LoadFontFromMemory(fileType: string, fileData: Buffer, dataSize: number, fontSize: number, fontChars: number, glyphCount: number): Font
+ export function LoadFontFromMemory(fileType: string, fileData: Buffer, dataSize: number, fontSize: number, codepoints: number, codepointCount: number): Font
/** Check if a font is ready */
export function IsFontReady(font: Font): boolean
/** Load font data for further use */
- export function LoadFontData(fileData: Buffer, dataSize: number, fontSize: number, fontChars: number, glyphCount: number, type: number): number
+ export function LoadFontData(fileData: Buffer, dataSize: number, fontSize: number, codepoints: number, codepointCount: number, type: number): number
/** Generate image font atlas using chars info */
- export function GenImageFontAtlas(chars: number, recs: number, glyphCount: number, fontSize: number, padding: number, packMethod: number): Image
+ export function GenImageFontAtlas(glyphs: number, glyphRecs: number, glyphCount: number, fontSize: number, padding: number, packMethod: number): Image
/** Unload font chars info data (RAM) */
- export function UnloadFontData(chars: number, glyphCount: number): void
+ export function UnloadFontData(glyphs: number, glyphCount: number): void
/** Unload font from GPU memory (VRAM) */
export function UnloadFont(font: Font): void
@@ -1496,7 +1609,10 @@ declare module "raylib" {
export function DrawTextCodepoint(font: Font, codepoint: number, position: Vector2, fontSize: number, tint: Color): void
/** Draw multiple character (codepoint) */
- export function DrawTextCodepoints(font: Font, codepoints: number, count: number, position: Vector2, fontSize: number, spacing: number, tint: Color): void
+ export function DrawTextCodepoints(font: Font, codepoints: number, codepointCount: number, position: Vector2, fontSize: number, spacing: number, tint: Color): void
+
+ /** Set vertical line spacing when drawing with line-breaks */
+ export function SetTextLineSpacing(spacing: number): void
/** Measure string width for default font */
export function MeasureText(text: string, fontSize: number): number
@@ -1748,7 +1864,7 @@ declare module "raylib" {
export function UnloadModelAnimation(anim: ModelAnimation): void
/** Unload animation array data */
- export function UnloadModelAnimations(animations: number, count: number): void
+ export function UnloadModelAnimations(animations: number, animCount: number): void
/** Check model animation skeleton match */
export function IsModelAnimationValid(model: Model, anim: ModelAnimation): boolean
@@ -1789,6 +1905,9 @@ declare module "raylib" {
/** Set master volume (listener) */
export function SetMasterVolume(volume: number): void
+ /** Get master volume (listener) */
+ export function GetMasterVolume(): number
+
/** Load wave data from file */
export function LoadWave(fileName: string): Wave
@@ -1804,6 +1923,9 @@ declare module "raylib" {
/** Load sound from wave data */
export function LoadSoundFromWave(wave: Wave): Sound
+ /** Create a new sound that shares the same sample data as the source sound, does not own the sound data */
+ export function LoadSoundAlias(source: Sound): Sound
+
/** Checks if a sound is ready */
export function IsSoundReady(sound: Sound): boolean
@@ -1816,6 +1938,9 @@ declare module "raylib" {
/** Unload sound */
export function UnloadSound(sound: Sound): void
+ /** Unload a sound alias (does not deallocate sample data) */
+ export function UnloadSoundAlias(alias: Sound): void
+
/** Export wave data to file, returns true on success */
export function ExportWave(wave: Wave, fileName: string): boolean
@@ -2191,6 +2316,12 @@ declare module "raylib" {
/** */
export function Vector3Normalize(v: Vector3): Vector3
+ /** */
+ export function Vector3Project(v1: Vector3, v2: Vector3): Vector3
+
+ /** */
+ export function Vector3Reject(v1: Vector3, v2: Vector3): Vector3
+
/** */
export function Vector3OrthoNormalize(v1: number, v2: number): void
@@ -2288,10 +2419,10 @@ declare module "raylib" {
export function MatrixFrustum(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix
/** */
- export function MatrixPerspective(fovy: number, aspect: number, near: number, far: number): Matrix
+ export function MatrixPerspective(fovY: number, aspect: number, nearPlane: number, farPlane: number): Matrix
/** */
- export function MatrixOrtho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix
+ export function MatrixOrtho(left: number, right: number, bottom: number, top: number, nearPlane: number, farPlane: number): Matrix
/** */
export function MatrixLookAt(eye: Vector3, target: Vector3, up: Vector3): Matrix
@@ -2365,168 +2496,6 @@ declare module "raylib" {
/** */
export function QuaternionEquals(p: Quaternion, q: Quaternion): number
- /** Enable gui controls (global state) */
- export function GuiEnable(): void
-
- /** Disable gui controls (global state) */
- export function GuiDisable(): void
-
- /** Lock gui controls (global state) */
- export function GuiLock(): void
-
- /** Unlock gui controls (global state) */
- export function GuiUnlock(): void
-
- /** Check if gui is locked (global state) */
- export function GuiIsLocked(): boolean
-
- /** Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f */
- export function GuiFade(alpha: number): void
-
- /** Set gui state (global state) */
- export function GuiSetState(state: number): void
-
- /** Get gui state (global state) */
- export function GuiGetState(): number
-
- /** Set gui custom font (global state) */
- export function GuiSetFont(font: Font): void
-
- /** Get gui custom font (global state) */
- export function GuiGetFont(): Font
-
- /** Set one style property */
- export function GuiSetStyle(control: number, property: number, value: number): void
-
- /** Get one style property */
- export function GuiGetStyle(control: number, property: number): number
-
- /** Window Box control, shows a window that can be closed */
- export function GuiWindowBox(bounds: Rectangle, title: string): boolean
-
- /** Group Box control with text name */
- export function GuiGroupBox(bounds: Rectangle, text: string): void
-
- /** Line separator control, could contain text */
- export function GuiLine(bounds: Rectangle, text: string): void
-
- /** Panel control, useful to group controls */
- export function GuiPanel(bounds: Rectangle, text: string): void
-
- /** Tab Bar control, returns TAB to be closed or -1 */
- export function GuiTabBar(bounds: Rectangle, text: number, count: number, active: number): number
-
- /** Scroll Panel control */
- export function GuiScrollPanel(bounds: Rectangle, text: string, content: Rectangle, scroll: number): Rectangle
-
- /** Label control, shows text */
- export function GuiLabel(bounds: Rectangle, text: string): void
-
- /** Button control, returns true when clicked */
- export function GuiButton(bounds: Rectangle, text: string): boolean
-
- /** Label button control, show true when clicked */
- export function GuiLabelButton(bounds: Rectangle, text: string): boolean
-
- /** Toggle Button control, returns true when active */
- export function GuiToggle(bounds: Rectangle, text: string, active: boolean): boolean
-
- /** Toggle Group control, returns active toggle index */
- export function GuiToggleGroup(bounds: Rectangle, text: string, active: number): number
-
- /** Check Box control, returns true when active */
- export function GuiCheckBox(bounds: Rectangle, text: string, checked: boolean): boolean
-
- /** Combo Box control, returns selected item index */
- export function GuiComboBox(bounds: Rectangle, text: string, active: number): number
-
- /** Dropdown Box control, returns selected item */
- export function GuiDropdownBox(bounds: Rectangle, text: string, active: number, editMode: boolean): boolean
-
- /** Spinner control, returns selected value */
- export function GuiSpinner(bounds: Rectangle, text: string, value: number, minValue: number, maxValue: number, editMode: boolean): boolean
-
- /** Value Box control, updates input text with numbers */
- export function GuiValueBox(bounds: Rectangle, text: string, value: number, minValue: number, maxValue: number, editMode: boolean): boolean
-
- /** Text Box control, updates input text */
- export function GuiTextBox(bounds: Rectangle, text: string, textSize: number, editMode: boolean): boolean
-
- /** Text Box control with multiple lines */
- export function GuiTextBoxMulti(bounds: Rectangle, text: string, textSize: number, editMode: boolean): boolean
-
- /** Slider control, returns selected value */
- export function GuiSlider(bounds: Rectangle, textLeft: string, textRight: string, value: number, minValue: number, maxValue: number): number
-
- /** Slider Bar control, returns selected value */
- export function GuiSliderBar(bounds: Rectangle, textLeft: string, textRight: string, value: number, minValue: number, maxValue: number): number
-
- /** Progress Bar control, shows current progress value */
- export function GuiProgressBar(bounds: Rectangle, textLeft: string, textRight: string, value: number, minValue: number, maxValue: number): number
-
- /** Status Bar control, shows info text */
- export function GuiStatusBar(bounds: Rectangle, text: string): void
-
- /** Dummy control for placeholders */
- export function GuiDummyRec(bounds: Rectangle, text: string): void
-
- /** Grid control, returns mouse cell position */
- export function GuiGrid(bounds: Rectangle, text: string, spacing: number, subdivs: number): Vector2
-
- /** List View control, returns selected list item index */
- export function GuiListView(bounds: Rectangle, text: string, scrollIndex: number, active: number): number
-
- /** List View with extended parameters */
- export function GuiListViewEx(bounds: Rectangle, text: number, count: number, focus: number, scrollIndex: number, active: number): number
-
- /** Message Box control, displays a message */
- export function GuiMessageBox(bounds: Rectangle, title: string, message: string, buttons: string): number
-
- /** Text Input Box control, ask for text, supports secret */
- export function GuiTextInputBox(bounds: Rectangle, title: string, message: string, buttons: string, text: string, textMaxSize: number, secretViewActive: number): number
-
- /** Color Picker control (multiple color controls) */
- export function GuiColorPicker(bounds: Rectangle, text: string, color: Color): Color
-
- /** Color Panel control */
- export function GuiColorPanel(bounds: Rectangle, text: string, color: Color): Color
-
- /** Color Bar Alpha control */
- export function GuiColorBarAlpha(bounds: Rectangle, text: string, alpha: number): number
-
- /** Color Bar Hue control */
- export function GuiColorBarHue(bounds: Rectangle, text: string, value: number): number
-
- /** Load style file over global style variable (.rgs) */
- export function GuiLoadStyle(fileName: string): void
-
- /** Load style default over global style */
- export function GuiLoadStyleDefault(): void
-
- /** Enable gui tooltips (global state) */
- export function GuiEnableTooltip(): void
-
- /** Disable gui tooltips (global state) */
- export function GuiDisableTooltip(): void
-
- /** Set tooltip string */
- export function GuiSetTooltip(tooltip: string): void
-
- /** Get text with icon id prepended (if supported) */
- export function GuiIconText(iconId: number, text: string): string
-
- /** Get raygui icons data pointer */
- export function GuiGetIcons(): number
-
- /** Load raygui icons file (.rgi) into internal icons data */
- export function GuiLoadIcons(fileName: string, loadIconsName: boolean): number
-
- /** */
- export function GuiDrawIcon(iconId: number, posX: number, posY: number, pixelSize: number, color: Color): void
-
- /** Set icon drawing size */
- export function GuiSetIconScale(scale: number): void
-
/** Choose the current matrix to be transformed */
export function rlMatrixMode(mode: number): void
@@ -2650,6 +2619,9 @@ declare module "raylib" {
/** Activate multiple draw color buffers */
export function rlActiveDrawBuffers(count: number): void
+ /** Blit active framebuffer to main framebuffer */
+ export function rlBlitFramebuffer(srcX: number, srcY: number, srcWidth: number, srcHeight: number, dstX: number, dstY: number, dstWidth: number, dstHeight: number, bufferMask: number): void
+
/** Enable color blending */
export function rlEnableColorBlend(): void
@@ -2689,7 +2661,10 @@ declare module "raylib" {
/** Enable wire mode */
export function rlEnableWireMode(): void
- /** Disable wire mode */
+ /** Enable point mode */
+ export function rlEnablePointMode(): void
+
+ /** Disable wire mode ( and point ) maybe rename */
export function rlDisableWireMode(): void
/** Set the line drawing width */
@@ -3000,6 +2975,8 @@ declare module "raylib" {
export const FLAG_WINDOW_HIGHDPI = 8192
/** Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED */
export const FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384
+ /** Set to run program in borderless windowed mode */
+ export const FLAG_BORDERLESS_WINDOWED_MODE = 32768
/** Set to try enabling MSAA 4X */
export const FLAG_MSAA_4X_HINT = 32
/** Set to try enabling interlaced video format (for V3D) */
@@ -3444,28 +3421,34 @@ declare module "raylib" {
export const PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
/** 32*4 bpp (4 channels - float) */
export const PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
+ /** 16 bpp (1 channel - half float) */
+ export const PIXELFORMAT_UNCOMPRESSED_R16 = 11
+ /** 16*3 bpp (3 channels - half float) */
+ export const PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12
+ /** 16*4 bpp (4 channels - half float) */
+ export const PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13
/** 4 bpp (no alpha) */
- export const PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
+ export const PIXELFORMAT_COMPRESSED_DXT1_RGB = 14
/** 4 bpp (1 bit alpha) */
- export const PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
+ export const PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15
/** 8 bpp */
- export const PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
+ export const PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16
/** 8 bpp */
- export const PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
+ export const PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17
/** 4 bpp */
- export const PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
+ export const PIXELFORMAT_COMPRESSED_ETC1_RGB = 18
/** 4 bpp */
- export const PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
+ export const PIXELFORMAT_COMPRESSED_ETC2_RGB = 19
/** 8 bpp */
- export const PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
+ export const PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20
/** 4 bpp */
- export const PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
+ export const PIXELFORMAT_COMPRESSED_PVRT_RGB = 21
/** 4 bpp */
- export const PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
+ export const PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22
/** 8 bpp */
- export const PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
+ export const PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23
/** 2 bpp */
- export const PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21
+ export const PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24
/** No filter, just pixel approximation */
export const TEXTURE_FILTER_POINT = 0
/** Linear filtering */
@@ -3562,660 +3545,6 @@ declare module "raylib" {
export const NPATCH_THREE_PATCH_VERTICAL = 1
/** Npatch layout: 3x1 tiles */
export const NPATCH_THREE_PATCH_HORIZONTAL = 2
- /** */
- export const STATE_NORMAL = 0
- /** */
- export const STATE_FOCUSED = 1
- /** */
- export const STATE_PRESSED = 2
- /** */
- export const STATE_DISABLED = 3
- /** */
- export const TEXT_ALIGN_LEFT = 0
- /** */
- export const TEXT_ALIGN_CENTER = 1
- /** */
- export const TEXT_ALIGN_RIGHT = 2
- /** */
- export const DEFAULT = 0
- /** Used also for: LABELBUTTON */
- export const LABEL = 1
- /** */
- export const BUTTON = 2
- /** Used also for: TOGGLEGROUP */
- export const TOGGLE = 3
- /** Used also for: SLIDERBAR */
- export const SLIDER = 4
- /** */
- export const PROGRESSBAR = 5
- /** */
- export const CHECKBOX = 6
- /** */
- export const COMBOBOX = 7
- /** */
- export const DROPDOWNBOX = 8
- /** Used also for: TEXTBOXMULTI */
- export const TEXTBOX = 9
- /** */
- export const VALUEBOX = 10
- /** Uses: BUTTON, VALUEBOX */
- export const SPINNER = 11
- /** */
- export const LISTVIEW = 12
- /** */
- export const COLORPICKER = 13
- /** */
- export const SCROLLBAR = 14
- /** */
- export const STATUSBAR = 15
- /** */
- export const BORDER_COLOR_NORMAL = 0
- /** */
- export const BASE_COLOR_NORMAL = 1
- /** */
- export const TEXT_COLOR_NORMAL = 2
- /** */
- export const BORDER_COLOR_FOCUSED = 3
- /** */
- export const BASE_COLOR_FOCUSED = 4
- /** */
- export const TEXT_COLOR_FOCUSED = 5
- /** */
- export const BORDER_COLOR_PRESSED = 6
- /** */
- export const BASE_COLOR_PRESSED = 7
- /** */
- export const TEXT_COLOR_PRESSED = 8
- /** */
- export const BORDER_COLOR_DISABLED = 9
- /** */
- export const BASE_COLOR_DISABLED = 10
- /** */
- export const TEXT_COLOR_DISABLED = 11
- /** */
- export const BORDER_WIDTH = 12
- /** */
- export const TEXT_PADDING = 13
- /** */
- export const TEXT_ALIGNMENT = 14
- /** */
- export const RESERVED = 15
- /** Text size (glyphs max height) */
- export const TEXT_SIZE = 16
- /** Text spacing between glyphs */
- export const TEXT_SPACING = 17
- /** Line control color */
- export const LINE_COLOR = 18
- /** Background color */
- export const BACKGROUND_COLOR = 19
- /** ToggleGroup separation between toggles */
- export const GROUP_PADDING = 16
- /** Slider size of internal bar */
- export const SLIDER_WIDTH = 16
- /** Slider/SliderBar internal bar padding */
- export const SLIDER_PADDING = 17
- /** ProgressBar internal padding */
- export const PROGRESS_PADDING = 16
- /** */
- export const ARROWS_SIZE = 16
- /** */
- export const ARROWS_VISIBLE = 17
- /** (SLIDERBAR, SLIDER_PADDING) */
- export const SCROLL_SLIDER_PADDING = 18
- /** */
- export const SCROLL_SLIDER_SIZE = 19
- /** */
- export const SCROLL_PADDING = 20
- /** */
- export const SCROLL_SPEED = 21
- /** CheckBox internal check padding */
- export const CHECK_PADDING = 16
- /** ComboBox right button width */
- export const COMBO_BUTTON_WIDTH = 16
- /** ComboBox button separation */
- export const COMBO_BUTTON_SPACING = 17
- /** DropdownBox arrow separation from border and items */
- export const ARROW_PADDING = 16
- /** DropdownBox items separation */
- export const DROPDOWN_ITEMS_SPACING = 17
- /** TextBox/TextBoxMulti/ValueBox/Spinner inner text padding */
- export const TEXT_INNER_PADDING = 16
- /** TextBoxMulti lines separation */
- export const TEXT_LINES_SPACING = 17
- /** Spinner left/right buttons width */
- export const SPIN_BUTTON_WIDTH = 16
- /** Spinner buttons separation */
- export const SPIN_BUTTON_SPACING = 17
- /** ListView items height */
- export const LIST_ITEMS_HEIGHT = 16
- /** ListView items separation */
- export const LIST_ITEMS_SPACING = 17
- /** ListView scrollbar size (usually width) */
- export const SCROLLBAR_WIDTH = 18
- /** ListView scrollbar side (0-left, 1-right) */
- export const SCROLLBAR_SIDE = 19
- /** */
- export const COLOR_SELECTOR_SIZE = 16
- /** ColorPicker right hue bar width */
- export const HUEBAR_WIDTH = 17
- /** ColorPicker right hue bar separation from panel */
- export const HUEBAR_PADDING = 18
- /** ColorPicker right hue bar selector height */
- export const HUEBAR_SELECTOR_HEIGHT = 19
- /** ColorPicker right hue bar selector overflow */
- export const HUEBAR_SELECTOR_OVERFLOW = 20
- /** */
- export const ICON_NONE = 0
- /** */
- export const ICON_FOLDER_FILE_OPEN = 1
- /** */
- export const ICON_FILE_SAVE_CLASSIC = 2
- /** */
- export const ICON_FOLDER_OPEN = 3
- /** */
- export const ICON_FOLDER_SAVE = 4
- /** */
- export const ICON_FILE_OPEN = 5
- /** */
- export const ICON_FILE_SAVE = 6
- /** */
- export const ICON_FILE_EXPORT = 7
- /** */
- export const ICON_FILE_ADD = 8
- /** */
- export const ICON_FILE_DELETE = 9
- /** */
- export const ICON_FILETYPE_TEXT = 10
- /** */
- export const ICON_FILETYPE_AUDIO = 11
- /** */
- export const ICON_FILETYPE_IMAGE = 12
- /** */
- export const ICON_FILETYPE_PLAY = 13
- /** */
- export const ICON_FILETYPE_VIDEO = 14
- /** */
- export const ICON_FILETYPE_INFO = 15
- /** */
- export const ICON_FILE_COPY = 16
- /** */
- export const ICON_FILE_CUT = 17
- /** */
- export const ICON_FILE_PASTE = 18
- /** */
- export const ICON_CURSOR_HAND = 19
- /** */
- export const ICON_CURSOR_POINTER = 20
- /** */
- export const ICON_CURSOR_CLASSIC = 21
- /** */
- export const ICON_PENCIL = 22
- /** */
- export const ICON_PENCIL_BIG = 23
- /** */
- export const ICON_BRUSH_CLASSIC = 24
- /** */
- export const ICON_BRUSH_PAINTER = 25
- /** */
- export const ICON_WATER_DROP = 26
- /** */
- export const ICON_COLOR_PICKER = 27
- /** */
- export const ICON_RUBBER = 28
- /** */
- export const ICON_COLOR_BUCKET = 29
- /** */
- export const ICON_TEXT_T = 30
- /** */
- export const ICON_TEXT_A = 31
- /** */
- export const ICON_SCALE = 32
- /** */
- export const ICON_RESIZE = 33
- /** */
- export const ICON_FILTER_POINT = 34
- /** */
- export const ICON_FILTER_BILINEAR = 35
- /** */
- export const ICON_CROP = 36
- /** */
- export const ICON_CROP_ALPHA = 37
- /** */
- export const ICON_SQUARE_TOGGLE = 38
- /** */
- export const ICON_SYMMETRY = 39
- /** */
- export const ICON_SYMMETRY_HORIZONTAL = 40
- /** */
- export const ICON_SYMMETRY_VERTICAL = 41
- /** */
- export const ICON_LENS = 42
- /** */
- export const ICON_LENS_BIG = 43
- /** */
- export const ICON_EYE_ON = 44
- /** */
- export const ICON_EYE_OFF = 45
- /** */
- export const ICON_FILTER_TOP = 46
- /** */
- export const ICON_FILTER = 47
- /** */
- export const ICON_TARGET_POINT = 48
- /** */
- export const ICON_TARGET_SMALL = 49
- /** */
- export const ICON_TARGET_BIG = 50
- /** */
- export const ICON_TARGET_MOVE = 51
- /** */
- export const ICON_CURSOR_MOVE = 52
- /** */
- export const ICON_CURSOR_SCALE = 53
- /** */
- export const ICON_CURSOR_SCALE_RIGHT = 54
- /** */
- export const ICON_CURSOR_SCALE_LEFT = 55
- /** */
- export const ICON_UNDO = 56
- /** */
- export const ICON_REDO = 57
- /** */
- export const ICON_REREDO = 58
- /** */
- export const ICON_MUTATE = 59
- /** */
- export const ICON_ROTATE = 60
- /** */
- export const ICON_REPEAT = 61
- /** */
- export const ICON_SHUFFLE = 62
- /** */
- export const ICON_EMPTYBOX = 63
- /** */
- export const ICON_TARGET = 64
- /** */
- export const ICON_TARGET_SMALL_FILL = 65
- /** */
- export const ICON_TARGET_BIG_FILL = 66
- /** */
- export const ICON_TARGET_MOVE_FILL = 67
- /** */
- export const ICON_CURSOR_MOVE_FILL = 68
- /** */
- export const ICON_CURSOR_SCALE_FILL = 69
- /** */
- export const ICON_CURSOR_SCALE_RIGHT_FILL = 70
- /** */
- export const ICON_CURSOR_SCALE_LEFT_FILL = 71
- /** */
- export const ICON_UNDO_FILL = 72
- /** */
- export const ICON_REDO_FILL = 73
- /** */
- export const ICON_REREDO_FILL = 74
- /** */
- export const ICON_MUTATE_FILL = 75
- /** */
- export const ICON_ROTATE_FILL = 76
- /** */
- export const ICON_REPEAT_FILL = 77
- /** */
- export const ICON_SHUFFLE_FILL = 78
- /** */
- export const ICON_EMPTYBOX_SMALL = 79
- /** */
- export const ICON_BOX = 80
- /** */
- export const ICON_BOX_TOP = 81
- /** */
- export const ICON_BOX_TOP_RIGHT = 82
- /** */
- export const ICON_BOX_RIGHT = 83
- /** */
- export const ICON_BOX_BOTTOM_RIGHT = 84
- /** */
- export const ICON_BOX_BOTTOM = 85
- /** */
- export const ICON_BOX_BOTTOM_LEFT = 86
- /** */
- export const ICON_BOX_LEFT = 87
- /** */
- export const ICON_BOX_TOP_LEFT = 88
- /** */
- export const ICON_BOX_CENTER = 89
- /** */
- export const ICON_BOX_CIRCLE_MASK = 90
- /** */
- export const ICON_POT = 91
- /** */
- export const ICON_ALPHA_MULTIPLY = 92
- /** */
- export const ICON_ALPHA_CLEAR = 93
- /** */
- export const ICON_DITHERING = 94
- /** */
- export const ICON_MIPMAPS = 95
- /** */
- export const ICON_BOX_GRID = 96
- /** */
- export const ICON_GRID = 97
- /** */
- export const ICON_BOX_CORNERS_SMALL = 98
- /** */
- export const ICON_BOX_CORNERS_BIG = 99
- /** */
- export const ICON_FOUR_BOXES = 100
- /** */
- export const ICON_GRID_FILL = 101
- /** */
- export const ICON_BOX_MULTISIZE = 102
- /** */
- export const ICON_ZOOM_SMALL = 103
- /** */
- export const ICON_ZOOM_MEDIUM = 104
- /** */
- export const ICON_ZOOM_BIG = 105
- /** */
- export const ICON_ZOOM_ALL = 106
- /** */
- export const ICON_ZOOM_CENTER = 107
- /** */
- export const ICON_BOX_DOTS_SMALL = 108
- /** */
- export const ICON_BOX_DOTS_BIG = 109
- /** */
- export const ICON_BOX_CONCENTRIC = 110
- /** */
- export const ICON_BOX_GRID_BIG = 111
- /** */
- export const ICON_OK_TICK = 112
- /** */
- export const ICON_CROSS = 113
- /** */
- export const ICON_ARROW_LEFT = 114
- /** */
- export const ICON_ARROW_RIGHT = 115
- /** */
- export const ICON_ARROW_DOWN = 116
- /** */
- export const ICON_ARROW_UP = 117
- /** */
- export const ICON_ARROW_LEFT_FILL = 118
- /** */
- export const ICON_ARROW_RIGHT_FILL = 119
- /** */
- export const ICON_ARROW_DOWN_FILL = 120
- /** */
- export const ICON_ARROW_UP_FILL = 121
- /** */
- export const ICON_AUDIO = 122
- /** */
- export const ICON_FX = 123
- /** */
- export const ICON_WAVE = 124
- /** */
- export const ICON_WAVE_SINUS = 125
- /** */
- export const ICON_WAVE_SQUARE = 126
- /** */
- export const ICON_WAVE_TRIANGULAR = 127
- /** */
- export const ICON_CROSS_SMALL = 128
- /** */
- export const ICON_PLAYER_PREVIOUS = 129
- /** */
- export const ICON_PLAYER_PLAY_BACK = 130
- /** */
- export const ICON_PLAYER_PLAY = 131
- /** */
- export const ICON_PLAYER_PAUSE = 132
- /** */
- export const ICON_PLAYER_STOP = 133
- /** */
- export const ICON_PLAYER_NEXT = 134
- /** */
- export const ICON_PLAYER_RECORD = 135
- /** */
- export const ICON_MAGNET = 136
- /** */
- export const ICON_LOCK_CLOSE = 137
- /** */
- export const ICON_LOCK_OPEN = 138
- /** */
- export const ICON_CLOCK = 139
- /** */
- export const ICON_TOOLS = 140
- /** */
- export const ICON_GEAR = 141
- /** */
- export const ICON_GEAR_BIG = 142
- /** */
- export const ICON_BIN = 143
- /** */
- export const ICON_HAND_POINTER = 144
- /** */
- export const ICON_LASER = 145
- /** */
- export const ICON_COIN = 146
- /** */
- export const ICON_EXPLOSION = 147
- /** */
- export const ICON_1UP = 148
- /** */
- export const ICON_PLAYER = 149
- /** */
- export const ICON_PLAYER_JUMP = 150
- /** */
- export const ICON_KEY = 151
- /** */
- export const ICON_DEMON = 152
- /** */
- export const ICON_TEXT_POPUP = 153
- /** */
- export const ICON_GEAR_EX = 154
- /** */
- export const ICON_CRACK = 155
- /** */
- export const ICON_CRACK_POINTS = 156
- /** */
- export const ICON_STAR = 157
- /** */
- export const ICON_DOOR = 158
- /** */
- export const ICON_EXIT = 159
- /** */
- export const ICON_MODE_2D = 160
- /** */
- export const ICON_MODE_3D = 161
- /** */
- export const ICON_CUBE = 162
- /** */
- export const ICON_CUBE_FACE_TOP = 163
- /** */
- export const ICON_CUBE_FACE_LEFT = 164
- /** */
- export const ICON_CUBE_FACE_FRONT = 165
- /** */
- export const ICON_CUBE_FACE_BOTTOM = 166
- /** */
- export const ICON_CUBE_FACE_RIGHT = 167
- /** */
- export const ICON_CUBE_FACE_BACK = 168
- /** */
- export const ICON_CAMERA = 169
- /** */
- export const ICON_SPECIAL = 170
- /** */
- export const ICON_LINK_NET = 171
- /** */
- export const ICON_LINK_BOXES = 172
- /** */
- export const ICON_LINK_MULTI = 173
- /** */
- export const ICON_LINK = 174
- /** */
- export const ICON_LINK_BROKE = 175
- /** */
- export const ICON_TEXT_NOTES = 176
- /** */
- export const ICON_NOTEBOOK = 177
- /** */
- export const ICON_SUITCASE = 178
- /** */
- export const ICON_SUITCASE_ZIP = 179
- /** */
- export const ICON_MAILBOX = 180
- /** */
- export const ICON_MONITOR = 181
- /** */
- export const ICON_PRINTER = 182
- /** */
- export const ICON_PHOTO_CAMERA = 183
- /** */
- export const ICON_PHOTO_CAMERA_FLASH = 184
- /** */
- export const ICON_HOUSE = 185
- /** */
- export const ICON_HEART = 186
- /** */
- export const ICON_CORNER = 187
- /** */
- export const ICON_VERTICAL_BARS = 188
- /** */
- export const ICON_VERTICAL_BARS_FILL = 189
- /** */
- export const ICON_LIFE_BARS = 190
- /** */
- export const ICON_INFO = 191
- /** */
- export const ICON_CROSSLINE = 192
- /** */
- export const ICON_HELP = 193
- /** */
- export const ICON_FILETYPE_ALPHA = 194
- /** */
- export const ICON_FILETYPE_HOME = 195
- /** */
- export const ICON_LAYERS_VISIBLE = 196
- /** */
- export const ICON_LAYERS = 197
- /** */
- export const ICON_WINDOW = 198
- /** */
- export const ICON_HIDPI = 199
- /** */
- export const ICON_FILETYPE_BINARY = 200
- /** */
- export const ICON_HEX = 201
- /** */
- export const ICON_SHIELD = 202
- /** */
- export const ICON_FILE_NEW = 203
- /** */
- export const ICON_FOLDER_ADD = 204
- /** */
- export const ICON_ALARM = 205
- /** */
- export const ICON_CPU = 206
- /** */
- export const ICON_ROM = 207
- /** */
- export const ICON_STEP_OVER = 208
- /** */
- export const ICON_STEP_INTO = 209
- /** */
- export const ICON_STEP_OUT = 210
- /** */
- export const ICON_RESTART = 211
- /** */
- export const ICON_BREAKPOINT_ON = 212
- /** */
- export const ICON_BREAKPOINT_OFF = 213
- /** */
- export const ICON_BURGER_MENU = 214
- /** */
- export const ICON_CASE_SENSITIVE = 215
- /** */
- export const ICON_REG_EXP = 216
- /** */
- export const ICON_FOLDER = 217
- /** */
- export const ICON_FILE = 218
- /** */
- export const ICON_219 = 219
- /** */
- export const ICON_220 = 220
- /** */
- export const ICON_221 = 221
- /** */
- export const ICON_222 = 222
- /** */
- export const ICON_223 = 223
- /** */
- export const ICON_224 = 224
- /** */
- export const ICON_225 = 225
- /** */
- export const ICON_226 = 226
- /** */
- export const ICON_227 = 227
- /** */
- export const ICON_228 = 228
- /** */
- export const ICON_229 = 229
- /** */
- export const ICON_230 = 230
- /** */
- export const ICON_231 = 231
- /** */
- export const ICON_232 = 232
- /** */
- export const ICON_233 = 233
- /** */
- export const ICON_234 = 234
- /** */
- export const ICON_235 = 235
- /** */
- export const ICON_236 = 236
- /** */
- export const ICON_237 = 237
- /** */
- export const ICON_238 = 238
- /** */
- export const ICON_239 = 239
- /** */
- export const ICON_240 = 240
- /** */
- export const ICON_241 = 241
- /** */
- export const ICON_242 = 242
- /** */
- export const ICON_243 = 243
- /** */
- export const ICON_244 = 244
- /** */
- export const ICON_245 = 245
- /** */
- export const ICON_246 = 246
- /** */
- export const ICON_247 = 247
- /** */
- export const ICON_248 = 248
- /** */
- export const ICON_249 = 249
- /** */
- export const ICON_250 = 250
- /** */
- export const ICON_251 = 251
- /** */
- export const ICON_252 = 252
- /** */
- export const ICON_253 = 253
- /** */
- export const ICON_254 = 254
- /** */
- export const ICON_255 = 255
/** OpenGL 1.1 */
export const RL_OPENGL_11 = 1
/** OpenGL 2.1 (GLSL 120) */
@@ -4226,6 +3555,8 @@ declare module "raylib" {
export const RL_OPENGL_43 = 4
/** OpenGL ES 2.0 (GLSL 100) */
export const RL_OPENGL_ES_20 = 5
+ /** OpenGL ES 3.0 (GLSL 300 es) */
+ export const RL_OPENGL_ES_30 = 6
/** Display all logs */
export const RL_LOG_ALL = 0
/** Trace logging, intended for internal use only */
@@ -4262,28 +3593,34 @@ declare module "raylib" {
export const RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
/** 32*4 bpp (4 channels - float) */
export const RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
+ /** 16 bpp (1 channel - half float) */
+ export const RL_PIXELFORMAT_UNCOMPRESSED_R16 = 11
+ /** 16*3 bpp (3 channels - half float) */
+ export const RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12
+ /** 16*4 bpp (4 channels - half float) */
+ export const RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13
/** 4 bpp (no alpha) */
- export const RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
+ export const RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 14
/** 4 bpp (1 bit alpha) */
- export const RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
+ export const RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15
/** 8 bpp */
- export const RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
+ export const RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16
/** 8 bpp */
- export const RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
+ export const RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17
/** 4 bpp */
- export const RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
+ export const RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 18
/** 4 bpp */
- export const RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
+ export const RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 19
/** 8 bpp */
- export const RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
+ export const RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20
/** 4 bpp */
- export const RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
+ export const RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 21
/** 4 bpp */
- export const RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
+ export const RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22
/** 8 bpp */
- export const RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
+ export const RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23
/** 2 bpp */
- export const RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21
+ export const RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24
/** No filter, just pixel approximation */
export const RL_TEXTURE_FILTER_POINT = 0
/** Linear filtering */
diff --git a/src/generated/node-raylib.js b/src/generated/node-raylib.js
index 7b793ae..ff8efd3 100644
--- a/src/generated/node-raylib.js
+++ b/src/generated/node-raylib.js
@@ -20,7 +20,7 @@ const raylib = {}
*
* @return {undefined}
*/
-function InitWindow (width, height, title) {
+function InitWindow(width, height, title) {
return r.BindInitWindow(
width,
height,
@@ -30,31 +30,31 @@ function InitWindow (width, height, title) {
raylib.InitWindow = InitWindow
/**
- * Check if KEY_ESCAPE pressed or Close icon pressed
+ * Close window and unload OpenGL context
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function WindowShouldClose () {
- return r.BindWindowShouldClose()
+function CloseWindow() {
+ return r.BindCloseWindow()
}
-raylib.WindowShouldClose = WindowShouldClose
+raylib.CloseWindow = CloseWindow
/**
- * Close window and unload OpenGL context
+ * Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function CloseWindow () {
- return r.BindCloseWindow()
+function WindowShouldClose() {
+ return r.BindWindowShouldClose()
}
-raylib.CloseWindow = CloseWindow
+raylib.WindowShouldClose = WindowShouldClose
/**
* Check if window has been initialized successfully
*
* @return {boolean} The resulting bool.
*/
-function IsWindowReady () {
+function IsWindowReady() {
return r.BindIsWindowReady()
}
raylib.IsWindowReady = IsWindowReady
@@ -64,7 +64,7 @@ raylib.IsWindowReady = IsWindowReady
*
* @return {boolean} The resulting bool.
*/
-function IsWindowFullscreen () {
+function IsWindowFullscreen() {
return r.BindIsWindowFullscreen()
}
raylib.IsWindowFullscreen = IsWindowFullscreen
@@ -74,7 +74,7 @@ raylib.IsWindowFullscreen = IsWindowFullscreen
*
* @return {boolean} The resulting bool.
*/
-function IsWindowHidden () {
+function IsWindowHidden() {
return r.BindIsWindowHidden()
}
raylib.IsWindowHidden = IsWindowHidden
@@ -84,7 +84,7 @@ raylib.IsWindowHidden = IsWindowHidden
*
* @return {boolean} The resulting bool.
*/
-function IsWindowMinimized () {
+function IsWindowMinimized() {
return r.BindIsWindowMinimized()
}
raylib.IsWindowMinimized = IsWindowMinimized
@@ -94,7 +94,7 @@ raylib.IsWindowMinimized = IsWindowMinimized
*
* @return {boolean} The resulting bool.
*/
-function IsWindowMaximized () {
+function IsWindowMaximized() {
return r.BindIsWindowMaximized()
}
raylib.IsWindowMaximized = IsWindowMaximized
@@ -104,7 +104,7 @@ raylib.IsWindowMaximized = IsWindowMaximized
*
* @return {boolean} The resulting bool.
*/
-function IsWindowFocused () {
+function IsWindowFocused() {
return r.BindIsWindowFocused()
}
raylib.IsWindowFocused = IsWindowFocused
@@ -114,7 +114,7 @@ raylib.IsWindowFocused = IsWindowFocused
*
* @return {boolean} The resulting bool.
*/
-function IsWindowResized () {
+function IsWindowResized() {
return r.BindIsWindowResized()
}
raylib.IsWindowResized = IsWindowResized
@@ -126,7 +126,7 @@ raylib.IsWindowResized = IsWindowResized
*
* @return {boolean} The resulting bool.
*/
-function IsWindowState (flag) {
+function IsWindowState(flag) {
return r.BindIsWindowState(
flag
)
@@ -140,7 +140,7 @@ raylib.IsWindowState = IsWindowState
*
* @return {undefined}
*/
-function SetWindowState (flags) {
+function SetWindowState(flags) {
return r.BindSetWindowState(
flags
)
@@ -154,7 +154,7 @@ raylib.SetWindowState = SetWindowState
*
* @return {undefined}
*/
-function ClearWindowState (flags) {
+function ClearWindowState(flags) {
return r.BindClearWindowState(
flags
)
@@ -166,17 +166,27 @@ raylib.ClearWindowState = ClearWindowState
*
* @return {undefined}
*/
-function ToggleFullscreen () {
+function ToggleFullscreen() {
return r.BindToggleFullscreen()
}
raylib.ToggleFullscreen = ToggleFullscreen
+/**
+ * Toggle window state: borderless windowed (only PLATFORM_DESKTOP)
+ *
+ * @return {undefined}
+ */
+function ToggleBorderlessWindowed() {
+ return r.BindToggleBorderlessWindowed()
+}
+raylib.ToggleBorderlessWindowed = ToggleBorderlessWindowed
+
/**
* Set window state: maximized, if resizable (only PLATFORM_DESKTOP)
*
* @return {undefined}
*/
-function MaximizeWindow () {
+function MaximizeWindow() {
return r.BindMaximizeWindow()
}
raylib.MaximizeWindow = MaximizeWindow
@@ -186,7 +196,7 @@ raylib.MaximizeWindow = MaximizeWindow
*
* @return {undefined}
*/
-function MinimizeWindow () {
+function MinimizeWindow() {
return r.BindMinimizeWindow()
}
raylib.MinimizeWindow = MinimizeWindow
@@ -196,7 +206,7 @@ raylib.MinimizeWindow = MinimizeWindow
*
* @return {undefined}
*/
-function RestoreWindow () {
+function RestoreWindow() {
return r.BindRestoreWindow()
}
raylib.RestoreWindow = RestoreWindow
@@ -208,7 +218,7 @@ raylib.RestoreWindow = RestoreWindow
*
* @return {undefined}
*/
-function SetWindowIcon (image) {
+function SetWindowIcon(image) {
return r.BindSetWindowIcon(
image.data,
image.width,
@@ -227,7 +237,7 @@ raylib.SetWindowIcon = SetWindowIcon
*
* @return {undefined}
*/
-function SetWindowIcons (images, count) {
+function SetWindowIcons(images, count) {
return r.BindSetWindowIcons(
images,
count
@@ -236,13 +246,13 @@ function SetWindowIcons (images, count) {
raylib.SetWindowIcons = SetWindowIcons
/**
- * Set title for window (only PLATFORM_DESKTOP)
+ * Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB)
*
* @param {string} title
*
* @return {undefined}
*/
-function SetWindowTitle (title) {
+function SetWindowTitle(title) {
return r.BindSetWindowTitle(
title
)
@@ -257,7 +267,7 @@ raylib.SetWindowTitle = SetWindowTitle
*
* @return {undefined}
*/
-function SetWindowPosition (x, y) {
+function SetWindowPosition(x, y) {
return r.BindSetWindowPosition(
x,
y
@@ -266,13 +276,13 @@ function SetWindowPosition (x, y) {
raylib.SetWindowPosition = SetWindowPosition
/**
- * Set monitor for the current window (fullscreen mode)
+ * Set monitor for the current window
*
* @param {number} monitor
*
* @return {undefined}
*/
-function SetWindowMonitor (monitor) {
+function SetWindowMonitor(monitor) {
return r.BindSetWindowMonitor(
monitor
)
@@ -287,7 +297,7 @@ raylib.SetWindowMonitor = SetWindowMonitor
*
* @return {undefined}
*/
-function SetWindowMinSize (width, height) {
+function SetWindowMinSize(width, height) {
return r.BindSetWindowMinSize(
width,
height
@@ -295,6 +305,22 @@ function SetWindowMinSize (width, height) {
}
raylib.SetWindowMinSize = SetWindowMinSize
+/**
+ * Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE)
+ *
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {undefined}
+ */
+function SetWindowMaxSize(width, height) {
+ return r.BindSetWindowMaxSize(
+ width,
+ height
+ )
+}
+raylib.SetWindowMaxSize = SetWindowMaxSize
+
/**
* Set window dimensions
*
@@ -303,7 +329,7 @@ raylib.SetWindowMinSize = SetWindowMinSize
*
* @return {undefined}
*/
-function SetWindowSize (width, height) {
+function SetWindowSize(width, height) {
return r.BindSetWindowSize(
width,
height
@@ -318,19 +344,29 @@ raylib.SetWindowSize = SetWindowSize
*
* @return {undefined}
*/
-function SetWindowOpacity (opacity) {
+function SetWindowOpacity(opacity) {
return r.BindSetWindowOpacity(
opacity
)
}
raylib.SetWindowOpacity = SetWindowOpacity
+/**
+ * Set window focused (only PLATFORM_DESKTOP)
+ *
+ * @return {undefined}
+ */
+function SetWindowFocused() {
+ return r.BindSetWindowFocused()
+}
+raylib.SetWindowFocused = SetWindowFocused
+
/**
* Get native window handle
*
* @return {number} The resulting void *.
*/
-function GetWindowHandle () {
+function GetWindowHandle() {
return r.BindGetWindowHandle()
}
raylib.GetWindowHandle = GetWindowHandle
@@ -340,7 +376,7 @@ raylib.GetWindowHandle = GetWindowHandle
*
* @return {number} The resulting int.
*/
-function GetScreenWidth () {
+function GetScreenWidth() {
return r.BindGetScreenWidth()
}
raylib.GetScreenWidth = GetScreenWidth
@@ -350,7 +386,7 @@ raylib.GetScreenWidth = GetScreenWidth
*
* @return {number} The resulting int.
*/
-function GetScreenHeight () {
+function GetScreenHeight() {
return r.BindGetScreenHeight()
}
raylib.GetScreenHeight = GetScreenHeight
@@ -360,7 +396,7 @@ raylib.GetScreenHeight = GetScreenHeight
*
* @return {number} The resulting int.
*/
-function GetRenderWidth () {
+function GetRenderWidth() {
return r.BindGetRenderWidth()
}
raylib.GetRenderWidth = GetRenderWidth
@@ -370,7 +406,7 @@ raylib.GetRenderWidth = GetRenderWidth
*
* @return {number} The resulting int.
*/
-function GetRenderHeight () {
+function GetRenderHeight() {
return r.BindGetRenderHeight()
}
raylib.GetRenderHeight = GetRenderHeight
@@ -380,7 +416,7 @@ raylib.GetRenderHeight = GetRenderHeight
*
* @return {number} The resulting int.
*/
-function GetMonitorCount () {
+function GetMonitorCount() {
return r.BindGetMonitorCount()
}
raylib.GetMonitorCount = GetMonitorCount
@@ -390,7 +426,7 @@ raylib.GetMonitorCount = GetMonitorCount
*
* @return {number} The resulting int.
*/
-function GetCurrentMonitor () {
+function GetCurrentMonitor() {
return r.BindGetCurrentMonitor()
}
raylib.GetCurrentMonitor = GetCurrentMonitor
@@ -402,7 +438,7 @@ raylib.GetCurrentMonitor = GetCurrentMonitor
*
* @return {Vector2} The resulting Vector2.
*/
-function GetMonitorPosition (monitor) {
+function GetMonitorPosition(monitor) {
return r.BindGetMonitorPosition(
monitor
)
@@ -416,7 +452,7 @@ raylib.GetMonitorPosition = GetMonitorPosition
*
* @return {number} The resulting int.
*/
-function GetMonitorWidth (monitor) {
+function GetMonitorWidth(monitor) {
return r.BindGetMonitorWidth(
monitor
)
@@ -430,7 +466,7 @@ raylib.GetMonitorWidth = GetMonitorWidth
*
* @return {number} The resulting int.
*/
-function GetMonitorHeight (monitor) {
+function GetMonitorHeight(monitor) {
return r.BindGetMonitorHeight(
monitor
)
@@ -444,7 +480,7 @@ raylib.GetMonitorHeight = GetMonitorHeight
*
* @return {number} The resulting int.
*/
-function GetMonitorPhysicalWidth (monitor) {
+function GetMonitorPhysicalWidth(monitor) {
return r.BindGetMonitorPhysicalWidth(
monitor
)
@@ -458,7 +494,7 @@ raylib.GetMonitorPhysicalWidth = GetMonitorPhysicalWidth
*
* @return {number} The resulting int.
*/
-function GetMonitorPhysicalHeight (monitor) {
+function GetMonitorPhysicalHeight(monitor) {
return r.BindGetMonitorPhysicalHeight(
monitor
)
@@ -472,7 +508,7 @@ raylib.GetMonitorPhysicalHeight = GetMonitorPhysicalHeight
*
* @return {number} The resulting int.
*/
-function GetMonitorRefreshRate (monitor) {
+function GetMonitorRefreshRate(monitor) {
return r.BindGetMonitorRefreshRate(
monitor
)
@@ -484,7 +520,7 @@ raylib.GetMonitorRefreshRate = GetMonitorRefreshRate
*
* @return {Vector2} The resulting Vector2.
*/
-function GetWindowPosition () {
+function GetWindowPosition() {
return r.BindGetWindowPosition()
}
raylib.GetWindowPosition = GetWindowPosition
@@ -494,19 +530,19 @@ raylib.GetWindowPosition = GetWindowPosition
*
* @return {Vector2} The resulting Vector2.
*/
-function GetWindowScaleDPI () {
+function GetWindowScaleDPI() {
return r.BindGetWindowScaleDPI()
}
raylib.GetWindowScaleDPI = GetWindowScaleDPI
/**
- * Get the human-readable, UTF-8 encoded name of the primary monitor
+ * Get the human-readable, UTF-8 encoded name of the specified monitor
*
* @param {number} monitor
*
* @return {string} The resulting const char *.
*/
-function GetMonitorName (monitor) {
+function GetMonitorName(monitor) {
return r.BindGetMonitorName(
monitor
)
@@ -520,7 +556,7 @@ raylib.GetMonitorName = GetMonitorName
*
* @return {undefined}
*/
-function SetClipboardText (text) {
+function SetClipboardText(text) {
return r.BindSetClipboardText(
text
)
@@ -532,7 +568,7 @@ raylib.SetClipboardText = SetClipboardText
*
* @return {string} The resulting const char *.
*/
-function GetClipboardText () {
+function GetClipboardText() {
return r.BindGetClipboardText()
}
raylib.GetClipboardText = GetClipboardText
@@ -542,7 +578,7 @@ raylib.GetClipboardText = GetClipboardText
*
* @return {undefined}
*/
-function EnableEventWaiting () {
+function EnableEventWaiting() {
return r.BindEnableEventWaiting()
}
raylib.EnableEventWaiting = EnableEventWaiting
@@ -552,51 +588,17 @@ raylib.EnableEventWaiting = EnableEventWaiting
*
* @return {undefined}
*/
-function DisableEventWaiting () {
+function DisableEventWaiting() {
return r.BindDisableEventWaiting()
}
raylib.DisableEventWaiting = DisableEventWaiting
-/**
- * Swap back buffer with front buffer (screen drawing)
- *
- * @return {undefined}
- */
-function SwapScreenBuffer () {
- return r.BindSwapScreenBuffer()
-}
-raylib.SwapScreenBuffer = SwapScreenBuffer
-
-/**
- * Register all input events
- *
- * @return {undefined}
- */
-function PollInputEvents () {
- return r.BindPollInputEvents()
-}
-raylib.PollInputEvents = PollInputEvents
-
-/**
- * Wait for some time (halt program execution)
- *
- * @param {number} seconds
- *
- * @return {undefined}
- */
-function WaitTime (seconds) {
- return r.BindWaitTime(
- seconds
- )
-}
-raylib.WaitTime = WaitTime
-
/**
* Shows cursor
*
* @return {undefined}
*/
-function ShowCursor () {
+function ShowCursor() {
return r.BindShowCursor()
}
raylib.ShowCursor = ShowCursor
@@ -606,7 +608,7 @@ raylib.ShowCursor = ShowCursor
*
* @return {undefined}
*/
-function HideCursor () {
+function HideCursor() {
return r.BindHideCursor()
}
raylib.HideCursor = HideCursor
@@ -616,7 +618,7 @@ raylib.HideCursor = HideCursor
*
* @return {boolean} The resulting bool.
*/
-function IsCursorHidden () {
+function IsCursorHidden() {
return r.BindIsCursorHidden()
}
raylib.IsCursorHidden = IsCursorHidden
@@ -626,7 +628,7 @@ raylib.IsCursorHidden = IsCursorHidden
*
* @return {undefined}
*/
-function EnableCursor () {
+function EnableCursor() {
return r.BindEnableCursor()
}
raylib.EnableCursor = EnableCursor
@@ -636,7 +638,7 @@ raylib.EnableCursor = EnableCursor
*
* @return {undefined}
*/
-function DisableCursor () {
+function DisableCursor() {
return r.BindDisableCursor()
}
raylib.DisableCursor = DisableCursor
@@ -646,7 +648,7 @@ raylib.DisableCursor = DisableCursor
*
* @return {boolean} The resulting bool.
*/
-function IsCursorOnScreen () {
+function IsCursorOnScreen() {
return r.BindIsCursorOnScreen()
}
raylib.IsCursorOnScreen = IsCursorOnScreen
@@ -658,7 +660,7 @@ raylib.IsCursorOnScreen = IsCursorOnScreen
*
* @return {undefined}
*/
-function ClearBackground (color) {
+function ClearBackground(color) {
return r.BindClearBackground(
color.r,
color.g,
@@ -673,7 +675,7 @@ raylib.ClearBackground = ClearBackground
*
* @return {undefined}
*/
-function BeginDrawing () {
+function BeginDrawing() {
return r.BindBeginDrawing()
}
raylib.BeginDrawing = BeginDrawing
@@ -683,7 +685,7 @@ raylib.BeginDrawing = BeginDrawing
*
* @return {undefined}
*/
-function EndDrawing () {
+function EndDrawing() {
return r.BindEndDrawing()
}
raylib.EndDrawing = EndDrawing
@@ -695,7 +697,7 @@ raylib.EndDrawing = EndDrawing
*
* @return {undefined}
*/
-function BeginMode2D (camera) {
+function BeginMode2D(camera) {
return r.BindBeginMode2D(
camera.offset.x,
camera.offset.y,
@@ -712,7 +714,7 @@ raylib.BeginMode2D = BeginMode2D
*
* @return {undefined}
*/
-function EndMode2D () {
+function EndMode2D() {
return r.BindEndMode2D()
}
raylib.EndMode2D = EndMode2D
@@ -724,7 +726,7 @@ raylib.EndMode2D = EndMode2D
*
* @return {undefined}
*/
-function BeginMode3D (camera) {
+function BeginMode3D(camera) {
return r.BindBeginMode3D(
camera.position.x,
camera.position.y,
@@ -746,7 +748,7 @@ raylib.BeginMode3D = BeginMode3D
*
* @return {undefined}
*/
-function EndMode3D () {
+function EndMode3D() {
return r.BindEndMode3D()
}
raylib.EndMode3D = EndMode3D
@@ -758,7 +760,7 @@ raylib.EndMode3D = EndMode3D
*
* @return {undefined}
*/
-function BeginTextureMode (target) {
+function BeginTextureMode(target) {
return r.BindBeginTextureMode(
target.id,
target.texture.id,
@@ -780,7 +782,7 @@ raylib.BeginTextureMode = BeginTextureMode
*
* @return {undefined}
*/
-function EndTextureMode () {
+function EndTextureMode() {
return r.BindEndTextureMode()
}
raylib.EndTextureMode = EndTextureMode
@@ -792,7 +794,7 @@ raylib.EndTextureMode = EndTextureMode
*
* @return {undefined}
*/
-function BeginShaderMode (shader) {
+function BeginShaderMode(shader) {
return r.BindBeginShaderMode(
shader.id,
shader.locs
@@ -805,7 +807,7 @@ raylib.BeginShaderMode = BeginShaderMode
*
* @return {undefined}
*/
-function EndShaderMode () {
+function EndShaderMode() {
return r.BindEndShaderMode()
}
raylib.EndShaderMode = EndShaderMode
@@ -817,7 +819,7 @@ raylib.EndShaderMode = EndShaderMode
*
* @return {undefined}
*/
-function BeginBlendMode (mode) {
+function BeginBlendMode(mode) {
return r.BindBeginBlendMode(
mode
)
@@ -829,7 +831,7 @@ raylib.BeginBlendMode = BeginBlendMode
*
* @return {undefined}
*/
-function EndBlendMode () {
+function EndBlendMode() {
return r.BindEndBlendMode()
}
raylib.EndBlendMode = EndBlendMode
@@ -844,7 +846,7 @@ raylib.EndBlendMode = EndBlendMode
*
* @return {undefined}
*/
-function BeginScissorMode (x, y, width, height) {
+function BeginScissorMode(x, y, width, height) {
return r.BindBeginScissorMode(
x,
y,
@@ -859,7 +861,7 @@ raylib.BeginScissorMode = BeginScissorMode
*
* @return {undefined}
*/
-function EndScissorMode () {
+function EndScissorMode() {
return r.BindEndScissorMode()
}
raylib.EndScissorMode = EndScissorMode
@@ -869,7 +871,7 @@ raylib.EndScissorMode = EndScissorMode
*
* @return {undefined}
*/
-function EndVrStereoMode () {
+function EndVrStereoMode() {
return r.BindEndVrStereoMode()
}
raylib.EndVrStereoMode = EndVrStereoMode
@@ -882,7 +884,7 @@ raylib.EndVrStereoMode = EndVrStereoMode
*
* @return {Shader} The resulting Shader.
*/
-function LoadShader (vsFileName, fsFileName) {
+function LoadShader(vsFileName, fsFileName) {
return r.BindLoadShader(
vsFileName,
fsFileName
@@ -898,7 +900,7 @@ raylib.LoadShader = LoadShader
*
* @return {Shader} The resulting Shader.
*/
-function LoadShaderFromMemory (vsCode, fsCode) {
+function LoadShaderFromMemory(vsCode, fsCode) {
return r.BindLoadShaderFromMemory(
vsCode,
fsCode
@@ -913,7 +915,7 @@ raylib.LoadShaderFromMemory = LoadShaderFromMemory
*
* @return {boolean} The resulting bool.
*/
-function IsShaderReady (shader) {
+function IsShaderReady(shader) {
return r.BindIsShaderReady(
shader.id,
shader.locs
@@ -929,7 +931,7 @@ raylib.IsShaderReady = IsShaderReady
*
* @return {number} The resulting int.
*/
-function GetShaderLocation (shader, uniformName) {
+function GetShaderLocation(shader, uniformName) {
return r.BindGetShaderLocation(
shader.id,
shader.locs,
@@ -946,7 +948,7 @@ raylib.GetShaderLocation = GetShaderLocation
*
* @return {number} The resulting int.
*/
-function GetShaderLocationAttrib (shader, attribName) {
+function GetShaderLocationAttrib(shader, attribName) {
return r.BindGetShaderLocationAttrib(
shader.id,
shader.locs,
@@ -964,7 +966,7 @@ raylib.GetShaderLocationAttrib = GetShaderLocationAttrib
*
* @return {undefined}
*/
-function SetShaderValueMatrix (shader, locIndex, mat) {
+function SetShaderValueMatrix(shader, locIndex, mat) {
return r.BindSetShaderValueMatrix(
shader.id,
shader.locs,
@@ -998,7 +1000,7 @@ raylib.SetShaderValueMatrix = SetShaderValueMatrix
*
* @return {undefined}
*/
-function SetShaderValueTexture (shader, locIndex, texture) {
+function SetShaderValueTexture(shader, locIndex, texture) {
return r.BindSetShaderValueTexture(
shader.id,
shader.locs,
@@ -1019,7 +1021,7 @@ raylib.SetShaderValueTexture = SetShaderValueTexture
*
* @return {undefined}
*/
-function UnloadShader (shader) {
+function UnloadShader(shader) {
return r.BindUnloadShader(
shader.id,
shader.locs
@@ -1035,7 +1037,7 @@ raylib.UnloadShader = UnloadShader
*
* @return {Ray} The resulting Ray.
*/
-function GetMouseRay (mousePosition, camera) {
+function GetMouseRay(mousePosition, camera) {
return r.BindGetMouseRay(
mousePosition.x,
mousePosition.y,
@@ -1061,7 +1063,7 @@ raylib.GetMouseRay = GetMouseRay
*
* @return {Matrix} The resulting Matrix.
*/
-function GetCameraMatrix (camera) {
+function GetCameraMatrix(camera) {
return r.BindGetCameraMatrix(
camera.position.x,
camera.position.y,
@@ -1085,7 +1087,7 @@ raylib.GetCameraMatrix = GetCameraMatrix
*
* @return {Matrix} The resulting Matrix.
*/
-function GetCameraMatrix2D (camera) {
+function GetCameraMatrix2D(camera) {
return r.BindGetCameraMatrix2D(
camera.offset.x,
camera.offset.y,
@@ -1105,7 +1107,7 @@ raylib.GetCameraMatrix2D = GetCameraMatrix2D
*
* @return {Vector2} The resulting Vector2.
*/
-function GetWorldToScreen (position, camera) {
+function GetWorldToScreen(position, camera) {
return r.BindGetWorldToScreen(
position.x,
position.y,
@@ -1133,7 +1135,7 @@ raylib.GetWorldToScreen = GetWorldToScreen
*
* @return {Vector2} The resulting Vector2.
*/
-function GetScreenToWorld2D (position, camera) {
+function GetScreenToWorld2D(position, camera) {
return r.BindGetScreenToWorld2D(
position.x,
position.y,
@@ -1157,7 +1159,7 @@ raylib.GetScreenToWorld2D = GetScreenToWorld2D
*
* @return {Vector2} The resulting Vector2.
*/
-function GetWorldToScreenEx (position, camera, width, height) {
+function GetWorldToScreenEx(position, camera, width, height) {
return r.BindGetWorldToScreenEx(
position.x,
position.y,
@@ -1187,7 +1189,7 @@ raylib.GetWorldToScreenEx = GetWorldToScreenEx
*
* @return {Vector2} The resulting Vector2.
*/
-function GetWorldToScreen2D (position, camera) {
+function GetWorldToScreen2D(position, camera) {
return r.BindGetWorldToScreen2D(
position.x,
position.y,
@@ -1208,42 +1210,90 @@ raylib.GetWorldToScreen2D = GetWorldToScreen2D
*
* @return {undefined}
*/
-function SetTargetFPS (fps) {
+function SetTargetFPS(fps) {
return r.BindSetTargetFPS(
fps
)
}
raylib.SetTargetFPS = SetTargetFPS
+/**
+ * Get time in seconds for last frame drawn (delta time)
+ *
+ * @return {number} The resulting float.
+ */
+function GetFrameTime() {
+ return r.BindGetFrameTime()
+}
+raylib.GetFrameTime = GetFrameTime
+
+/**
+ * Get elapsed time in seconds since InitWindow()
+ *
+ * @return {number} The resulting double.
+ */
+function GetTime() {
+ return r.BindGetTime()
+}
+raylib.GetTime = GetTime
+
/**
* Get current FPS
*
* @return {number} The resulting int.
*/
-function GetFPS () {
+function GetFPS() {
return r.BindGetFPS()
}
raylib.GetFPS = GetFPS
/**
- * Get time in seconds for last frame drawn (delta time)
+ * Swap back buffer with front buffer (screen drawing)
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function GetFrameTime () {
- return r.BindGetFrameTime()
+function SwapScreenBuffer() {
+ return r.BindSwapScreenBuffer()
}
-raylib.GetFrameTime = GetFrameTime
+raylib.SwapScreenBuffer = SwapScreenBuffer
/**
- * Get elapsed time in seconds since InitWindow()
+ * Register all input events
*
- * @return {number} The resulting double.
+ * @return {undefined}
*/
-function GetTime () {
- return r.BindGetTime()
+function PollInputEvents() {
+ return r.BindPollInputEvents()
}
-raylib.GetTime = GetTime
+raylib.PollInputEvents = PollInputEvents
+
+/**
+ * Wait for some time (halt program execution)
+ *
+ * @param {number} seconds
+ *
+ * @return {undefined}
+ */
+function WaitTime(seconds) {
+ return r.BindWaitTime(
+ seconds
+ )
+}
+raylib.WaitTime = WaitTime
+
+/**
+ * Set the seed for the random number generator
+ *
+ * @param {number} seed
+ *
+ * @return {undefined}
+ */
+function SetRandomSeed(seed) {
+ return r.BindSetRandomSeed(
+ seed
+ )
+}
+raylib.SetRandomSeed = SetRandomSeed
/**
* Get a random value between min and max (both included)
@@ -1253,7 +1303,7 @@ raylib.GetTime = GetTime
*
* @return {number} The resulting int.
*/
-function GetRandomValue (min, max) {
+function GetRandomValue(min, max) {
return r.BindGetRandomValue(
min,
max
@@ -1262,18 +1312,36 @@ function GetRandomValue (min, max) {
raylib.GetRandomValue = GetRandomValue
/**
- * Set the seed for the random number generator
+ * Load random values sequence, no values repeated
*
- * @param {number} seed
+ * @param {number} count
+ * @param {number} min
+ * @param {number} max
+ *
+ * @return {number} The resulting int *.
+ */
+function LoadRandomSequence(count, min, max) {
+ return r.BindLoadRandomSequence(
+ count,
+ min,
+ max
+ )
+}
+raylib.LoadRandomSequence = LoadRandomSequence
+
+/**
+ * Unload random values sequence
+ *
+ * @param {number} sequence
*
* @return {undefined}
*/
-function SetRandomSeed (seed) {
- return r.BindSetRandomSeed(
- seed
+function UnloadRandomSequence(sequence) {
+ return r.BindUnloadRandomSequence(
+ sequence
)
}
-raylib.SetRandomSeed = SetRandomSeed
+raylib.UnloadRandomSequence = UnloadRandomSequence
/**
* Takes a screenshot of current screen (filename extension defines format)
@@ -1282,7 +1350,7 @@ raylib.SetRandomSeed = SetRandomSeed
*
* @return {undefined}
*/
-function TakeScreenshot (fileName) {
+function TakeScreenshot(fileName) {
return r.BindTakeScreenshot(
fileName
)
@@ -1296,13 +1364,27 @@ raylib.TakeScreenshot = TakeScreenshot
*
* @return {undefined}
*/
-function SetConfigFlags (flags) {
+function SetConfigFlags(flags) {
return r.BindSetConfigFlags(
flags
)
}
raylib.SetConfigFlags = SetConfigFlags
+/**
+ * Open URL with default system browser (if available)
+ *
+ * @param {string} url
+ *
+ * @return {undefined}
+ */
+function OpenURL(url) {
+ return r.BindOpenURL(
+ url
+ )
+}
+raylib.OpenURL = OpenURL
+
/**
* Set the current threshold (minimum) log level
*
@@ -1310,7 +1392,7 @@ raylib.SetConfigFlags = SetConfigFlags
*
* @return {undefined}
*/
-function SetTraceLogLevel (logLevel) {
+function SetTraceLogLevel(logLevel) {
return r.BindSetTraceLogLevel(
logLevel
)
@@ -1324,7 +1406,7 @@ raylib.SetTraceLogLevel = SetTraceLogLevel
*
* @return {number} The resulting void *.
*/
-function MemAlloc (size) {
+function MemAlloc(size) {
return r.BindMemAlloc(
size
)
@@ -1339,7 +1421,7 @@ raylib.MemAlloc = MemAlloc
*
* @return {number} The resulting void *.
*/
-function MemRealloc (ptr, size) {
+function MemRealloc(ptr, size) {
return r.BindMemRealloc(
ptr,
size
@@ -1354,39 +1436,25 @@ raylib.MemRealloc = MemRealloc
*
* @return {undefined}
*/
-function MemFree (ptr) {
+function MemFree(ptr) {
return r.BindMemFree(
ptr
)
}
raylib.MemFree = MemFree
-/**
- * Open URL with default system browser (if available)
- *
- * @param {string} url
- *
- * @return {undefined}
- */
-function OpenURL (url) {
- return r.BindOpenURL(
- url
- )
-}
-raylib.OpenURL = OpenURL
-
/**
* Load file data as byte array (read)
*
* @param {string} fileName
- * @param {number} bytesRead
+ * @param {number} dataSize
*
* @return {Buffer} The resulting unsigned char *.
*/
-function LoadFileData (fileName, bytesRead) {
+function LoadFileData(fileName, dataSize) {
return r.BindLoadFileData(
fileName,
- bytesRead
+ dataSize
)
}
raylib.LoadFileData = LoadFileData
@@ -1398,7 +1466,7 @@ raylib.LoadFileData = LoadFileData
*
* @return {undefined}
*/
-function UnloadFileData (data) {
+function UnloadFileData(data) {
return r.BindUnloadFileData(
data
)
@@ -1410,15 +1478,15 @@ raylib.UnloadFileData = UnloadFileData
*
* @param {string} fileName
* @param {number} data
- * @param {number} bytesToWrite
+ * @param {number} dataSize
*
* @return {boolean} The resulting bool.
*/
-function SaveFileData (fileName, data, bytesToWrite) {
+function SaveFileData(fileName, data, dataSize) {
return r.BindSaveFileData(
fileName,
data,
- bytesToWrite
+ dataSize
)
}
raylib.SaveFileData = SaveFileData
@@ -1427,15 +1495,15 @@ raylib.SaveFileData = SaveFileData
* Export data to code (.h), returns true on success
*
* @param {Buffer} data
- * @param {number} size
+ * @param {number} dataSize
* @param {string} fileName
*
* @return {boolean} The resulting bool.
*/
-function ExportDataAsCode (data, size, fileName) {
+function ExportDataAsCode(data, dataSize, fileName) {
return r.BindExportDataAsCode(
data,
- size,
+ dataSize,
fileName
)
}
@@ -1448,7 +1516,7 @@ raylib.ExportDataAsCode = ExportDataAsCode
*
* @return {string} The resulting char *.
*/
-function LoadFileText (fileName) {
+function LoadFileText(fileName) {
return r.BindLoadFileText(
fileName
)
@@ -1462,7 +1530,7 @@ raylib.LoadFileText = LoadFileText
*
* @return {undefined}
*/
-function UnloadFileText (text) {
+function UnloadFileText(text) {
return r.BindUnloadFileText(
text
)
@@ -1477,7 +1545,7 @@ raylib.UnloadFileText = UnloadFileText
*
* @return {boolean} The resulting bool.
*/
-function SaveFileText (fileName, text) {
+function SaveFileText(fileName, text) {
return r.BindSaveFileText(
fileName,
text
@@ -1492,7 +1560,7 @@ raylib.SaveFileText = SaveFileText
*
* @return {boolean} The resulting bool.
*/
-function FileExists (fileName) {
+function FileExists(fileName) {
return r.BindFileExists(
fileName
)
@@ -1506,7 +1574,7 @@ raylib.FileExists = FileExists
*
* @return {boolean} The resulting bool.
*/
-function DirectoryExists (dirPath) {
+function DirectoryExists(dirPath) {
return r.BindDirectoryExists(
dirPath
)
@@ -1521,7 +1589,7 @@ raylib.DirectoryExists = DirectoryExists
*
* @return {boolean} The resulting bool.
*/
-function IsFileExtension (fileName, ext) {
+function IsFileExtension(fileName, ext) {
return r.BindIsFileExtension(
fileName,
ext
@@ -1536,7 +1604,7 @@ raylib.IsFileExtension = IsFileExtension
*
* @return {number} The resulting int.
*/
-function GetFileLength (fileName) {
+function GetFileLength(fileName) {
return r.BindGetFileLength(
fileName
)
@@ -1550,7 +1618,7 @@ raylib.GetFileLength = GetFileLength
*
* @return {string} The resulting const char *.
*/
-function GetFileExtension (fileName) {
+function GetFileExtension(fileName) {
return r.BindGetFileExtension(
fileName
)
@@ -1564,7 +1632,7 @@ raylib.GetFileExtension = GetFileExtension
*
* @return {string} The resulting const char *.
*/
-function GetFileName (filePath) {
+function GetFileName(filePath) {
return r.BindGetFileName(
filePath
)
@@ -1578,7 +1646,7 @@ raylib.GetFileName = GetFileName
*
* @return {string} The resulting const char *.
*/
-function GetFileNameWithoutExt (filePath) {
+function GetFileNameWithoutExt(filePath) {
return r.BindGetFileNameWithoutExt(
filePath
)
@@ -1592,7 +1660,7 @@ raylib.GetFileNameWithoutExt = GetFileNameWithoutExt
*
* @return {string} The resulting const char *.
*/
-function GetDirectoryPath (filePath) {
+function GetDirectoryPath(filePath) {
return r.BindGetDirectoryPath(
filePath
)
@@ -1606,7 +1674,7 @@ raylib.GetDirectoryPath = GetDirectoryPath
*
* @return {string} The resulting const char *.
*/
-function GetPrevDirectoryPath (dirPath) {
+function GetPrevDirectoryPath(dirPath) {
return r.BindGetPrevDirectoryPath(
dirPath
)
@@ -1618,17 +1686,17 @@ raylib.GetPrevDirectoryPath = GetPrevDirectoryPath
*
* @return {string} The resulting const char *.
*/
-function GetWorkingDirectory () {
+function GetWorkingDirectory() {
return r.BindGetWorkingDirectory()
}
raylib.GetWorkingDirectory = GetWorkingDirectory
/**
- * Get the directory if the running application (uses static string)
+ * Get the directory of the running application (uses static string)
*
* @return {string} The resulting const char *.
*/
-function GetApplicationDirectory () {
+function GetApplicationDirectory() {
return r.BindGetApplicationDirectory()
}
raylib.GetApplicationDirectory = GetApplicationDirectory
@@ -1640,7 +1708,7 @@ raylib.GetApplicationDirectory = GetApplicationDirectory
*
* @return {boolean} The resulting bool.
*/
-function ChangeDirectory (dir) {
+function ChangeDirectory(dir) {
return r.BindChangeDirectory(
dir
)
@@ -1654,7 +1722,7 @@ raylib.ChangeDirectory = ChangeDirectory
*
* @return {boolean} The resulting bool.
*/
-function IsPathFile (path) {
+function IsPathFile(path) {
return r.BindIsPathFile(
path
)
@@ -1668,7 +1736,7 @@ raylib.IsPathFile = IsPathFile
*
* @return {FilePathList} The resulting FilePathList.
*/
-function LoadDirectoryFiles (dirPath) {
+function LoadDirectoryFiles(dirPath) {
return r.BindLoadDirectoryFiles(
dirPath
)
@@ -1684,7 +1752,7 @@ raylib.LoadDirectoryFiles = LoadDirectoryFiles
*
* @return {FilePathList} The resulting FilePathList.
*/
-function LoadDirectoryFilesEx (basePath, filter, scanSubdirs) {
+function LoadDirectoryFilesEx(basePath, filter, scanSubdirs) {
return r.BindLoadDirectoryFilesEx(
basePath,
filter,
@@ -1700,7 +1768,7 @@ raylib.LoadDirectoryFilesEx = LoadDirectoryFilesEx
*
* @return {undefined}
*/
-function UnloadDirectoryFiles (files) {
+function UnloadDirectoryFiles(files) {
return r.BindUnloadDirectoryFiles(
files.capacity,
files.count,
@@ -1714,7 +1782,7 @@ raylib.UnloadDirectoryFiles = UnloadDirectoryFiles
*
* @return {boolean} The resulting bool.
*/
-function IsFileDropped () {
+function IsFileDropped() {
return r.BindIsFileDropped()
}
raylib.IsFileDropped = IsFileDropped
@@ -1724,7 +1792,7 @@ raylib.IsFileDropped = IsFileDropped
*
* @return {FilePathList} The resulting FilePathList.
*/
-function LoadDroppedFiles () {
+function LoadDroppedFiles() {
return r.BindLoadDroppedFiles()
}
raylib.LoadDroppedFiles = LoadDroppedFiles
@@ -1736,7 +1804,7 @@ raylib.LoadDroppedFiles = LoadDroppedFiles
*
* @return {undefined}
*/
-function UnloadDroppedFiles (files) {
+function UnloadDroppedFiles(files) {
return r.BindUnloadDroppedFiles(
files.capacity,
files.count,
@@ -1752,7 +1820,7 @@ raylib.UnloadDroppedFiles = UnloadDroppedFiles
*
* @return {number} The resulting long.
*/
-function GetFileModTime (fileName) {
+function GetFileModTime(fileName) {
return r.BindGetFileModTime(
fileName
)
@@ -1768,7 +1836,7 @@ raylib.GetFileModTime = GetFileModTime
*
* @return {Buffer} The resulting unsigned char *.
*/
-function CompressData (data, dataSize, compDataSize) {
+function CompressData(data, dataSize, compDataSize) {
return r.BindCompressData(
data,
dataSize,
@@ -1786,7 +1854,7 @@ raylib.CompressData = CompressData
*
* @return {Buffer} The resulting unsigned char *.
*/
-function DecompressData (compData, compDataSize, dataSize) {
+function DecompressData(compData, compDataSize, dataSize) {
return r.BindDecompressData(
compData,
compDataSize,
@@ -1804,7 +1872,7 @@ raylib.DecompressData = DecompressData
*
* @return {string} The resulting char *.
*/
-function EncodeDataBase64 (data, dataSize, outputSize) {
+function EncodeDataBase64(data, dataSize, outputSize) {
return r.BindEncodeDataBase64(
data,
dataSize,
@@ -1821,7 +1889,7 @@ raylib.EncodeDataBase64 = EncodeDataBase64
*
* @return {Buffer} The resulting unsigned char *.
*/
-function DecodeDataBase64 (data, outputSize) {
+function DecodeDataBase64(data, outputSize) {
return r.BindDecodeDataBase64(
data,
outputSize
@@ -1830,138 +1898,262 @@ function DecodeDataBase64 (data, outputSize) {
raylib.DecodeDataBase64 = DecodeDataBase64
/**
- * Check if a key has been pressed once
+ * Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS
*
- * @param {number} key
+ * @param {string} fileName
*
- * @return {boolean} The resulting bool.
+ * @return {AutomationEventList} The resulting AutomationEventList.
*/
-function IsKeyPressed (key) {
- return r.BindIsKeyPressed(
- key
+function LoadAutomationEventList(fileName) {
+ return r.BindLoadAutomationEventList(
+ fileName
)
}
-raylib.IsKeyPressed = IsKeyPressed
+raylib.LoadAutomationEventList = LoadAutomationEventList
/**
- * Check if a key is being pressed
+ * Unload automation events list from file
*
- * @param {number} key
+ * @param {number} list
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsKeyDown (key) {
- return r.BindIsKeyDown(
- key
+function UnloadAutomationEventList(list) {
+ return r.BindUnloadAutomationEventList(
+ list
)
}
-raylib.IsKeyDown = IsKeyDown
+raylib.UnloadAutomationEventList = UnloadAutomationEventList
/**
- * Check if a key has been released once
+ * Export automation events list as text file
*
- * @param {number} key
+ * @param {AutomationEventList} list
+ * @param {string} fileName
*
* @return {boolean} The resulting bool.
*/
-function IsKeyReleased (key) {
- return r.BindIsKeyReleased(
- key
+function ExportAutomationEventList(list, fileName) {
+ return r.BindExportAutomationEventList(
+ list.capacity,
+ list.count,
+ list.events,
+ fileName
)
}
-raylib.IsKeyReleased = IsKeyReleased
+raylib.ExportAutomationEventList = ExportAutomationEventList
/**
- * Check if a key is NOT being pressed
+ * Set automation event list to record to
*
- * @param {number} key
+ * @param {number} list
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsKeyUp (key) {
- return r.BindIsKeyUp(
- key
+function SetAutomationEventList(list) {
+ return r.BindSetAutomationEventList(
+ list
)
}
-raylib.IsKeyUp = IsKeyUp
+raylib.SetAutomationEventList = SetAutomationEventList
/**
- * Set a custom key to exit program (default is ESC)
+ * Set automation event internal base frame to start recording
*
- * @param {number} key
+ * @param {number} frame
*
* @return {undefined}
*/
-function SetExitKey (key) {
- return r.BindSetExitKey(
- key
+function SetAutomationEventBaseFrame(frame) {
+ return r.BindSetAutomationEventBaseFrame(
+ frame
)
}
-raylib.SetExitKey = SetExitKey
+raylib.SetAutomationEventBaseFrame = SetAutomationEventBaseFrame
/**
- * Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty
+ * Start recording automation events (AutomationEventList must be set)
*
- * @return {number} The resulting int.
+ * @return {undefined}
*/
-function GetKeyPressed () {
- return r.BindGetKeyPressed()
+function StartAutomationEventRecording() {
+ return r.BindStartAutomationEventRecording()
}
-raylib.GetKeyPressed = GetKeyPressed
+raylib.StartAutomationEventRecording = StartAutomationEventRecording
/**
- * Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty
+ * Stop recording automation events
*
- * @return {number} The resulting int.
+ * @return {undefined}
*/
-function GetCharPressed () {
- return r.BindGetCharPressed()
+function StopAutomationEventRecording() {
+ return r.BindStopAutomationEventRecording()
}
-raylib.GetCharPressed = GetCharPressed
+raylib.StopAutomationEventRecording = StopAutomationEventRecording
/**
- * Check if a gamepad is available
+ * Play a recorded automation event
*
- * @param {number} gamepad
+ * @param {AutomationEvent} event
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsGamepadAvailable (gamepad) {
- return r.BindIsGamepadAvailable(
- gamepad
+function PlayAutomationEvent(event) {
+ return r.BindPlayAutomationEvent(
+ event.frame,
+ event.type,
+ event.params
)
}
-raylib.IsGamepadAvailable = IsGamepadAvailable
+raylib.PlayAutomationEvent = PlayAutomationEvent
/**
- * Get gamepad internal name id
+ * Check if a key has been pressed once
*
- * @param {number} gamepad
+ * @param {number} key
*
- * @return {string} The resulting const char *.
+ * @return {boolean} The resulting bool.
*/
-function GetGamepadName (gamepad) {
- return r.BindGetGamepadName(
- gamepad
+function IsKeyPressed(key) {
+ return r.BindIsKeyPressed(
+ key
)
}
-raylib.GetGamepadName = GetGamepadName
+raylib.IsKeyPressed = IsKeyPressed
/**
- * Check if a gamepad button has been pressed once
+ * Check if a key has been pressed again (Only PLATFORM_DESKTOP)
*
- * @param {number} gamepad
- * @param {number} button
+ * @param {number} key
*
* @return {boolean} The resulting bool.
*/
-function IsGamepadButtonPressed (gamepad, button) {
- return r.BindIsGamepadButtonPressed(
- gamepad,
- button
+function IsKeyPressedRepeat(key) {
+ return r.BindIsKeyPressedRepeat(
+ key
)
}
-raylib.IsGamepadButtonPressed = IsGamepadButtonPressed
+raylib.IsKeyPressedRepeat = IsKeyPressedRepeat
+
+/**
+ * Check if a key is being pressed
+ *
+ * @param {number} key
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsKeyDown(key) {
+ return r.BindIsKeyDown(
+ key
+ )
+}
+raylib.IsKeyDown = IsKeyDown
+
+/**
+ * Check if a key has been released once
+ *
+ * @param {number} key
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsKeyReleased(key) {
+ return r.BindIsKeyReleased(
+ key
+ )
+}
+raylib.IsKeyReleased = IsKeyReleased
+
+/**
+ * Check if a key is NOT being pressed
+ *
+ * @param {number} key
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsKeyUp(key) {
+ return r.BindIsKeyUp(
+ key
+ )
+}
+raylib.IsKeyUp = IsKeyUp
+
+/**
+ * Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty
+ *
+ * @return {number} The resulting int.
+ */
+function GetKeyPressed() {
+ return r.BindGetKeyPressed()
+}
+raylib.GetKeyPressed = GetKeyPressed
+
+/**
+ * Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty
+ *
+ * @return {number} The resulting int.
+ */
+function GetCharPressed() {
+ return r.BindGetCharPressed()
+}
+raylib.GetCharPressed = GetCharPressed
+
+/**
+ * Set a custom key to exit program (default is ESC)
+ *
+ * @param {number} key
+ *
+ * @return {undefined}
+ */
+function SetExitKey(key) {
+ return r.BindSetExitKey(
+ key
+ )
+}
+raylib.SetExitKey = SetExitKey
+
+/**
+ * Check if a gamepad is available
+ *
+ * @param {number} gamepad
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsGamepadAvailable(gamepad) {
+ return r.BindIsGamepadAvailable(
+ gamepad
+ )
+}
+raylib.IsGamepadAvailable = IsGamepadAvailable
+
+/**
+ * Get gamepad internal name id
+ *
+ * @param {number} gamepad
+ *
+ * @return {string} The resulting const char *.
+ */
+function GetGamepadName(gamepad) {
+ return r.BindGetGamepadName(
+ gamepad
+ )
+}
+raylib.GetGamepadName = GetGamepadName
+
+/**
+ * Check if a gamepad button has been pressed once
+ *
+ * @param {number} gamepad
+ * @param {number} button
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsGamepadButtonPressed(gamepad, button) {
+ return r.BindIsGamepadButtonPressed(
+ gamepad,
+ button
+ )
+}
+raylib.IsGamepadButtonPressed = IsGamepadButtonPressed
/**
* Check if a gamepad button is being pressed
@@ -1971,7 +2163,7 @@ raylib.IsGamepadButtonPressed = IsGamepadButtonPressed
*
* @return {boolean} The resulting bool.
*/
-function IsGamepadButtonDown (gamepad, button) {
+function IsGamepadButtonDown(gamepad, button) {
return r.BindIsGamepadButtonDown(
gamepad,
button
@@ -1987,7 +2179,7 @@ raylib.IsGamepadButtonDown = IsGamepadButtonDown
*
* @return {boolean} The resulting bool.
*/
-function IsGamepadButtonReleased (gamepad, button) {
+function IsGamepadButtonReleased(gamepad, button) {
return r.BindIsGamepadButtonReleased(
gamepad,
button
@@ -2003,7 +2195,7 @@ raylib.IsGamepadButtonReleased = IsGamepadButtonReleased
*
* @return {boolean} The resulting bool.
*/
-function IsGamepadButtonUp (gamepad, button) {
+function IsGamepadButtonUp(gamepad, button) {
return r.BindIsGamepadButtonUp(
gamepad,
button
@@ -2016,7 +2208,7 @@ raylib.IsGamepadButtonUp = IsGamepadButtonUp
*
* @return {number} The resulting int.
*/
-function GetGamepadButtonPressed () {
+function GetGamepadButtonPressed() {
return r.BindGetGamepadButtonPressed()
}
raylib.GetGamepadButtonPressed = GetGamepadButtonPressed
@@ -2028,7 +2220,7 @@ raylib.GetGamepadButtonPressed = GetGamepadButtonPressed
*
* @return {number} The resulting int.
*/
-function GetGamepadAxisCount (gamepad) {
+function GetGamepadAxisCount(gamepad) {
return r.BindGetGamepadAxisCount(
gamepad
)
@@ -2043,7 +2235,7 @@ raylib.GetGamepadAxisCount = GetGamepadAxisCount
*
* @return {number} The resulting float.
*/
-function GetGamepadAxisMovement (gamepad, axis) {
+function GetGamepadAxisMovement(gamepad, axis) {
return r.BindGetGamepadAxisMovement(
gamepad,
axis
@@ -2058,7 +2250,7 @@ raylib.GetGamepadAxisMovement = GetGamepadAxisMovement
*
* @return {number} The resulting int.
*/
-function SetGamepadMappings (mappings) {
+function SetGamepadMappings(mappings) {
return r.BindSetGamepadMappings(
mappings
)
@@ -2072,7 +2264,7 @@ raylib.SetGamepadMappings = SetGamepadMappings
*
* @return {boolean} The resulting bool.
*/
-function IsMouseButtonPressed (button) {
+function IsMouseButtonPressed(button) {
return r.BindIsMouseButtonPressed(
button
)
@@ -2086,7 +2278,7 @@ raylib.IsMouseButtonPressed = IsMouseButtonPressed
*
* @return {boolean} The resulting bool.
*/
-function IsMouseButtonDown (button) {
+function IsMouseButtonDown(button) {
return r.BindIsMouseButtonDown(
button
)
@@ -2100,7 +2292,7 @@ raylib.IsMouseButtonDown = IsMouseButtonDown
*
* @return {boolean} The resulting bool.
*/
-function IsMouseButtonReleased (button) {
+function IsMouseButtonReleased(button) {
return r.BindIsMouseButtonReleased(
button
)
@@ -2114,7 +2306,7 @@ raylib.IsMouseButtonReleased = IsMouseButtonReleased
*
* @return {boolean} The resulting bool.
*/
-function IsMouseButtonUp (button) {
+function IsMouseButtonUp(button) {
return r.BindIsMouseButtonUp(
button
)
@@ -2126,7 +2318,7 @@ raylib.IsMouseButtonUp = IsMouseButtonUp
*
* @return {number} The resulting int.
*/
-function GetMouseX () {
+function GetMouseX() {
return r.BindGetMouseX()
}
raylib.GetMouseX = GetMouseX
@@ -2136,7 +2328,7 @@ raylib.GetMouseX = GetMouseX
*
* @return {number} The resulting int.
*/
-function GetMouseY () {
+function GetMouseY() {
return r.BindGetMouseY()
}
raylib.GetMouseY = GetMouseY
@@ -2146,7 +2338,7 @@ raylib.GetMouseY = GetMouseY
*
* @return {Vector2} The resulting Vector2.
*/
-function GetMousePosition () {
+function GetMousePosition() {
return r.BindGetMousePosition()
}
raylib.GetMousePosition = GetMousePosition
@@ -2156,7 +2348,7 @@ raylib.GetMousePosition = GetMousePosition
*
* @return {Vector2} The resulting Vector2.
*/
-function GetMouseDelta () {
+function GetMouseDelta() {
return r.BindGetMouseDelta()
}
raylib.GetMouseDelta = GetMouseDelta
@@ -2169,7 +2361,7 @@ raylib.GetMouseDelta = GetMouseDelta
*
* @return {undefined}
*/
-function SetMousePosition (x, y) {
+function SetMousePosition(x, y) {
return r.BindSetMousePosition(
x,
y
@@ -2185,7 +2377,7 @@ raylib.SetMousePosition = SetMousePosition
*
* @return {undefined}
*/
-function SetMouseOffset (offsetX, offsetY) {
+function SetMouseOffset(offsetX, offsetY) {
return r.BindSetMouseOffset(
offsetX,
offsetY
@@ -2201,7 +2393,7 @@ raylib.SetMouseOffset = SetMouseOffset
*
* @return {undefined}
*/
-function SetMouseScale (scaleX, scaleY) {
+function SetMouseScale(scaleX, scaleY) {
return r.BindSetMouseScale(
scaleX,
scaleY
@@ -2214,7 +2406,7 @@ raylib.SetMouseScale = SetMouseScale
*
* @return {number} The resulting float.
*/
-function GetMouseWheelMove () {
+function GetMouseWheelMove() {
return r.BindGetMouseWheelMove()
}
raylib.GetMouseWheelMove = GetMouseWheelMove
@@ -2224,7 +2416,7 @@ raylib.GetMouseWheelMove = GetMouseWheelMove
*
* @return {Vector2} The resulting Vector2.
*/
-function GetMouseWheelMoveV () {
+function GetMouseWheelMoveV() {
return r.BindGetMouseWheelMoveV()
}
raylib.GetMouseWheelMoveV = GetMouseWheelMoveV
@@ -2236,7 +2428,7 @@ raylib.GetMouseWheelMoveV = GetMouseWheelMoveV
*
* @return {undefined}
*/
-function SetMouseCursor (cursor) {
+function SetMouseCursor(cursor) {
return r.BindSetMouseCursor(
cursor
)
@@ -2248,7 +2440,7 @@ raylib.SetMouseCursor = SetMouseCursor
*
* @return {number} The resulting int.
*/
-function GetTouchX () {
+function GetTouchX() {
return r.BindGetTouchX()
}
raylib.GetTouchX = GetTouchX
@@ -2258,7 +2450,7 @@ raylib.GetTouchX = GetTouchX
*
* @return {number} The resulting int.
*/
-function GetTouchY () {
+function GetTouchY() {
return r.BindGetTouchY()
}
raylib.GetTouchY = GetTouchY
@@ -2270,7 +2462,7 @@ raylib.GetTouchY = GetTouchY
*
* @return {Vector2} The resulting Vector2.
*/
-function GetTouchPosition (index) {
+function GetTouchPosition(index) {
return r.BindGetTouchPosition(
index
)
@@ -2284,7 +2476,7 @@ raylib.GetTouchPosition = GetTouchPosition
*
* @return {number} The resulting int.
*/
-function GetTouchPointId (index) {
+function GetTouchPointId(index) {
return r.BindGetTouchPointId(
index
)
@@ -2296,7 +2488,7 @@ raylib.GetTouchPointId = GetTouchPointId
*
* @return {number} The resulting int.
*/
-function GetTouchPointCount () {
+function GetTouchPointCount() {
return r.BindGetTouchPointCount()
}
raylib.GetTouchPointCount = GetTouchPointCount
@@ -2308,7 +2500,7 @@ raylib.GetTouchPointCount = GetTouchPointCount
*
* @return {undefined}
*/
-function SetGesturesEnabled (flags) {
+function SetGesturesEnabled(flags) {
return r.BindSetGesturesEnabled(
flags
)
@@ -2322,7 +2514,7 @@ raylib.SetGesturesEnabled = SetGesturesEnabled
*
* @return {boolean} The resulting bool.
*/
-function IsGestureDetected (gesture) {
+function IsGestureDetected(gesture) {
return r.BindIsGestureDetected(
gesture
)
@@ -2334,7 +2526,7 @@ raylib.IsGestureDetected = IsGestureDetected
*
* @return {number} The resulting int.
*/
-function GetGestureDetected () {
+function GetGestureDetected() {
return r.BindGetGestureDetected()
}
raylib.GetGestureDetected = GetGestureDetected
@@ -2344,7 +2536,7 @@ raylib.GetGestureDetected = GetGestureDetected
*
* @return {number} The resulting float.
*/
-function GetGestureHoldDuration () {
+function GetGestureHoldDuration() {
return r.BindGetGestureHoldDuration()
}
raylib.GetGestureHoldDuration = GetGestureHoldDuration
@@ -2354,7 +2546,7 @@ raylib.GetGestureHoldDuration = GetGestureHoldDuration
*
* @return {Vector2} The resulting Vector2.
*/
-function GetGestureDragVector () {
+function GetGestureDragVector() {
return r.BindGetGestureDragVector()
}
raylib.GetGestureDragVector = GetGestureDragVector
@@ -2364,7 +2556,7 @@ raylib.GetGestureDragVector = GetGestureDragVector
*
* @return {number} The resulting float.
*/
-function GetGestureDragAngle () {
+function GetGestureDragAngle() {
return r.BindGetGestureDragAngle()
}
raylib.GetGestureDragAngle = GetGestureDragAngle
@@ -2374,7 +2566,7 @@ raylib.GetGestureDragAngle = GetGestureDragAngle
*
* @return {Vector2} The resulting Vector2.
*/
-function GetGesturePinchVector () {
+function GetGesturePinchVector() {
return r.BindGetGesturePinchVector()
}
raylib.GetGesturePinchVector = GetGesturePinchVector
@@ -2384,7 +2576,7 @@ raylib.GetGesturePinchVector = GetGesturePinchVector
*
* @return {number} The resulting float.
*/
-function GetGesturePinchAngle () {
+function GetGesturePinchAngle() {
return r.BindGetGesturePinchAngle()
}
raylib.GetGesturePinchAngle = GetGesturePinchAngle
@@ -2399,7 +2591,7 @@ raylib.GetGesturePinchAngle = GetGesturePinchAngle
*
* @return {undefined}
*/
-function UpdateCameraPro (camera, movement, rotation, zoom) {
+function UpdateCameraPro(camera, movement, rotation, zoom) {
return r.BindUpdateCameraPro(
camera,
movement.x,
@@ -2421,7 +2613,7 @@ raylib.UpdateCameraPro = UpdateCameraPro
*
* @return {undefined}
*/
-function SetShapesTexture (texture, source) {
+function SetShapesTexture(texture, source) {
return r.BindSetShapesTexture(
texture.id,
texture.width,
@@ -2445,7 +2637,7 @@ raylib.SetShapesTexture = SetShapesTexture
*
* @return {undefined}
*/
-function DrawPixel (posX, posY, color) {
+function DrawPixel(posX, posY, color) {
return r.BindDrawPixel(
posX,
posY,
@@ -2465,7 +2657,7 @@ raylib.DrawPixel = DrawPixel
*
* @return {undefined}
*/
-function DrawPixelV (position, color) {
+function DrawPixelV(position, color) {
return r.BindDrawPixelV(
position.x,
position.y,
@@ -2488,7 +2680,7 @@ raylib.DrawPixelV = DrawPixelV
*
* @return {undefined}
*/
-function DrawLine (startPosX, startPosY, endPosX, endPosY, color) {
+function DrawLine(startPosX, startPosY, endPosX, endPosY, color) {
return r.BindDrawLine(
startPosX,
startPosY,
@@ -2503,7 +2695,7 @@ function DrawLine (startPosX, startPosY, endPosX, endPosY, color) {
raylib.DrawLine = DrawLine
/**
- * Draw a line (Vector version)
+ * Draw a line (using gl lines)
*
* @param {Vector2} startPos
* @param {Vector2} endPos
@@ -2511,7 +2703,7 @@ raylib.DrawLine = DrawLine
*
* @return {undefined}
*/
-function DrawLineV (startPos, endPos, color) {
+function DrawLineV(startPos, endPos, color) {
return r.BindDrawLineV(
startPos.x,
startPos.y,
@@ -2526,7 +2718,7 @@ function DrawLineV (startPos, endPos, color) {
raylib.DrawLineV = DrawLineV
/**
- * Draw a line defining thickness
+ * Draw a line (using triangles/quads)
*
* @param {Vector2} startPos
* @param {Vector2} endPos
@@ -2535,7 +2727,7 @@ raylib.DrawLineV = DrawLineV
*
* @return {undefined}
*/
-function DrawLineEx (startPos, endPos, thick, color) {
+function DrawLineEx(startPos, endPos, thick, color) {
return r.BindDrawLineEx(
startPos.x,
startPos.y,
@@ -2551,80 +2743,42 @@ function DrawLineEx (startPos, endPos, thick, color) {
raylib.DrawLineEx = DrawLineEx
/**
- * Draw a line using cubic-bezier curves in-out
- *
- * @param {Vector2} startPos
- * @param {Vector2} endPos
- * @param {number} thick
- * @param {Color} color
- *
- * @return {undefined}
- */
-function DrawLineBezier (startPos, endPos, thick, color) {
- return r.BindDrawLineBezier(
- startPos.x,
- startPos.y,
- endPos.x,
- endPos.y,
- thick,
- color.r,
- color.g,
- color.b,
- color.a
- )
-}
-raylib.DrawLineBezier = DrawLineBezier
-
-/**
- * Draw line using quadratic bezier curves with a control point
+ * Draw lines sequence (using gl lines)
*
- * @param {Vector2} startPos
- * @param {Vector2} endPos
- * @param {Vector2} controlPos
- * @param {number} thick
+ * @param {number} points
+ * @param {number} pointCount
* @param {Color} color
*
* @return {undefined}
*/
-function DrawLineBezierQuad (startPos, endPos, controlPos, thick, color) {
- return r.BindDrawLineBezierQuad(
- startPos.x,
- startPos.y,
- endPos.x,
- endPos.y,
- controlPos.x,
- controlPos.y,
- thick,
+function DrawLineStrip(points, pointCount, color) {
+ return r.BindDrawLineStrip(
+ points,
+ pointCount,
color.r,
color.g,
color.b,
color.a
)
}
-raylib.DrawLineBezierQuad = DrawLineBezierQuad
+raylib.DrawLineStrip = DrawLineStrip
/**
- * Draw line using cubic bezier curves with 2 control points
+ * Draw line segment cubic-bezier in-out interpolation
*
* @param {Vector2} startPos
* @param {Vector2} endPos
- * @param {Vector2} startControlPos
- * @param {Vector2} endControlPos
* @param {number} thick
* @param {Color} color
*
* @return {undefined}
*/
-function DrawLineBezierCubic (startPos, endPos, startControlPos, endControlPos, thick, color) {
- return r.BindDrawLineBezierCubic(
+function DrawLineBezier(startPos, endPos, thick, color) {
+ return r.BindDrawLineBezier(
startPos.x,
startPos.y,
endPos.x,
endPos.y,
- startControlPos.x,
- startControlPos.y,
- endControlPos.x,
- endControlPos.y,
thick,
color.r,
color.g,
@@ -2632,28 +2786,7 @@ function DrawLineBezierCubic (startPos, endPos, startControlPos, endControlPos,
color.a
)
}
-raylib.DrawLineBezierCubic = DrawLineBezierCubic
-
-/**
- * Draw lines sequence
- *
- * @param {number} points
- * @param {number} pointCount
- * @param {Color} color
- *
- * @return {undefined}
- */
-function DrawLineStrip (points, pointCount, color) {
- return r.BindDrawLineStrip(
- points,
- pointCount,
- color.r,
- color.g,
- color.b,
- color.a
- )
-}
-raylib.DrawLineStrip = DrawLineStrip
+raylib.DrawLineBezier = DrawLineBezier
/**
* Draw a color-filled circle
@@ -2665,7 +2798,7 @@ raylib.DrawLineStrip = DrawLineStrip
*
* @return {undefined}
*/
-function DrawCircle (centerX, centerY, radius, color) {
+function DrawCircle(centerX, centerY, radius, color) {
return r.BindDrawCircle(
centerX,
centerY,
@@ -2690,7 +2823,7 @@ raylib.DrawCircle = DrawCircle
*
* @return {undefined}
*/
-function DrawCircleSector (center, radius, startAngle, endAngle, segments, color) {
+function DrawCircleSector(center, radius, startAngle, endAngle, segments, color) {
return r.BindDrawCircleSector(
center.x,
center.y,
@@ -2718,7 +2851,7 @@ raylib.DrawCircleSector = DrawCircleSector
*
* @return {undefined}
*/
-function DrawCircleSectorLines (center, radius, startAngle, endAngle, segments, color) {
+function DrawCircleSectorLines(center, radius, startAngle, endAngle, segments, color) {
return r.BindDrawCircleSectorLines(
center.x,
center.y,
@@ -2745,7 +2878,7 @@ raylib.DrawCircleSectorLines = DrawCircleSectorLines
*
* @return {undefined}
*/
-function DrawCircleGradient (centerX, centerY, radius, color1, color2) {
+function DrawCircleGradient(centerX, centerY, radius, color1, color2) {
return r.BindDrawCircleGradient(
centerX,
centerY,
@@ -2771,7 +2904,7 @@ raylib.DrawCircleGradient = DrawCircleGradient
*
* @return {undefined}
*/
-function DrawCircleV (center, radius, color) {
+function DrawCircleV(center, radius, color) {
return r.BindDrawCircleV(
center.x,
center.y,
@@ -2794,7 +2927,7 @@ raylib.DrawCircleV = DrawCircleV
*
* @return {undefined}
*/
-function DrawCircleLines (centerX, centerY, radius, color) {
+function DrawCircleLines(centerX, centerY, radius, color) {
return r.BindDrawCircleLines(
centerX,
centerY,
@@ -2807,6 +2940,28 @@ function DrawCircleLines (centerX, centerY, radius, color) {
}
raylib.DrawCircleLines = DrawCircleLines
+/**
+ * Draw circle outline (Vector version)
+ *
+ * @param {Vector2} center
+ * @param {number} radius
+ * @param {Color} color
+ *
+ * @return {undefined}
+ */
+function DrawCircleLinesV(center, radius, color) {
+ return r.BindDrawCircleLinesV(
+ center.x,
+ center.y,
+ radius,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+}
+raylib.DrawCircleLinesV = DrawCircleLinesV
+
/**
* Draw ellipse
*
@@ -2818,7 +2973,7 @@ raylib.DrawCircleLines = DrawCircleLines
*
* @return {undefined}
*/
-function DrawEllipse (centerX, centerY, radiusH, radiusV, color) {
+function DrawEllipse(centerX, centerY, radiusH, radiusV, color) {
return r.BindDrawEllipse(
centerX,
centerY,
@@ -2843,7 +2998,7 @@ raylib.DrawEllipse = DrawEllipse
*
* @return {undefined}
*/
-function DrawEllipseLines (centerX, centerY, radiusH, radiusV, color) {
+function DrawEllipseLines(centerX, centerY, radiusH, radiusV, color) {
return r.BindDrawEllipseLines(
centerX,
centerY,
@@ -2870,7 +3025,7 @@ raylib.DrawEllipseLines = DrawEllipseLines
*
* @return {undefined}
*/
-function DrawRing (center, innerRadius, outerRadius, startAngle, endAngle, segments, color) {
+function DrawRing(center, innerRadius, outerRadius, startAngle, endAngle, segments, color) {
return r.BindDrawRing(
center.x,
center.y,
@@ -2900,7 +3055,7 @@ raylib.DrawRing = DrawRing
*
* @return {undefined}
*/
-function DrawRingLines (center, innerRadius, outerRadius, startAngle, endAngle, segments, color) {
+function DrawRingLines(center, innerRadius, outerRadius, startAngle, endAngle, segments, color) {
return r.BindDrawRingLines(
center.x,
center.y,
@@ -2928,7 +3083,7 @@ raylib.DrawRingLines = DrawRingLines
*
* @return {undefined}
*/
-function DrawRectangle (posX, posY, width, height, color) {
+function DrawRectangle(posX, posY, width, height, color) {
return r.BindDrawRectangle(
posX,
posY,
@@ -2951,7 +3106,7 @@ raylib.DrawRectangle = DrawRectangle
*
* @return {undefined}
*/
-function DrawRectangleV (position, size, color) {
+function DrawRectangleV(position, size, color) {
return r.BindDrawRectangleV(
position.x,
position.y,
@@ -2973,7 +3128,7 @@ raylib.DrawRectangleV = DrawRectangleV
*
* @return {undefined}
*/
-function DrawRectangleRec (rec, color) {
+function DrawRectangleRec(rec, color) {
return r.BindDrawRectangleRec(
rec.x,
rec.y,
@@ -2997,7 +3152,7 @@ raylib.DrawRectangleRec = DrawRectangleRec
*
* @return {undefined}
*/
-function DrawRectanglePro (rec, origin, rotation, color) {
+function DrawRectanglePro(rec, origin, rotation, color) {
return r.BindDrawRectanglePro(
rec.x,
rec.y,
@@ -3026,7 +3181,7 @@ raylib.DrawRectanglePro = DrawRectanglePro
*
* @return {undefined}
*/
-function DrawRectangleGradientV (posX, posY, width, height, color1, color2) {
+function DrawRectangleGradientV(posX, posY, width, height, color1, color2) {
return r.BindDrawRectangleGradientV(
posX,
posY,
@@ -3056,7 +3211,7 @@ raylib.DrawRectangleGradientV = DrawRectangleGradientV
*
* @return {undefined}
*/
-function DrawRectangleGradientH (posX, posY, width, height, color1, color2) {
+function DrawRectangleGradientH(posX, posY, width, height, color1, color2) {
return r.BindDrawRectangleGradientH(
posX,
posY,
@@ -3085,7 +3240,7 @@ raylib.DrawRectangleGradientH = DrawRectangleGradientH
*
* @return {undefined}
*/
-function DrawRectangleGradientEx (rec, col1, col2, col3, col4) {
+function DrawRectangleGradientEx(rec, col1, col2, col3, col4) {
return r.BindDrawRectangleGradientEx(
rec.x,
rec.y,
@@ -3122,7 +3277,7 @@ raylib.DrawRectangleGradientEx = DrawRectangleGradientEx
*
* @return {undefined}
*/
-function DrawRectangleLines (posX, posY, width, height, color) {
+function DrawRectangleLines(posX, posY, width, height, color) {
return r.BindDrawRectangleLines(
posX,
posY,
@@ -3145,7 +3300,7 @@ raylib.DrawRectangleLines = DrawRectangleLines
*
* @return {undefined}
*/
-function DrawRectangleLinesEx (rec, lineThick, color) {
+function DrawRectangleLinesEx(rec, lineThick, color) {
return r.BindDrawRectangleLinesEx(
rec.x,
rec.y,
@@ -3170,7 +3325,7 @@ raylib.DrawRectangleLinesEx = DrawRectangleLinesEx
*
* @return {undefined}
*/
-function DrawRectangleRounded (rec, roundness, segments, color) {
+function DrawRectangleRounded(rec, roundness, segments, color) {
return r.BindDrawRectangleRounded(
rec.x,
rec.y,
@@ -3197,7 +3352,7 @@ raylib.DrawRectangleRounded = DrawRectangleRounded
*
* @return {undefined}
*/
-function DrawRectangleRoundedLines (rec, roundness, segments, lineThick, color) {
+function DrawRectangleRoundedLines(rec, roundness, segments, lineThick, color) {
return r.BindDrawRectangleRoundedLines(
rec.x,
rec.y,
@@ -3224,7 +3379,7 @@ raylib.DrawRectangleRoundedLines = DrawRectangleRoundedLines
*
* @return {undefined}
*/
-function DrawTriangle (v1, v2, v3, color) {
+function DrawTriangle(v1, v2, v3, color) {
return r.BindDrawTriangle(
v1.x,
v1.y,
@@ -3250,7 +3405,7 @@ raylib.DrawTriangle = DrawTriangle
*
* @return {undefined}
*/
-function DrawTriangleLines (v1, v2, v3, color) {
+function DrawTriangleLines(v1, v2, v3, color) {
return r.BindDrawTriangleLines(
v1.x,
v1.y,
@@ -3275,7 +3430,7 @@ raylib.DrawTriangleLines = DrawTriangleLines
*
* @return {undefined}
*/
-function DrawTriangleFan (points, pointCount, color) {
+function DrawTriangleFan(points, pointCount, color) {
return r.BindDrawTriangleFan(
points,
pointCount,
@@ -3296,7 +3451,7 @@ raylib.DrawTriangleFan = DrawTriangleFan
*
* @return {undefined}
*/
-function DrawTriangleStrip (points, pointCount, color) {
+function DrawTriangleStrip(points, pointCount, color) {
return r.BindDrawTriangleStrip(
points,
pointCount,
@@ -3319,7 +3474,7 @@ raylib.DrawTriangleStrip = DrawTriangleStrip
*
* @return {undefined}
*/
-function DrawPoly (center, sides, radius, rotation, color) {
+function DrawPoly(center, sides, radius, rotation, color) {
return r.BindDrawPoly(
center.x,
center.y,
@@ -3345,7 +3500,7 @@ raylib.DrawPoly = DrawPoly
*
* @return {undefined}
*/
-function DrawPolyLines (center, sides, radius, rotation, color) {
+function DrawPolyLines(center, sides, radius, rotation, color) {
return r.BindDrawPolyLines(
center.x,
center.y,
@@ -3372,7 +3527,7 @@ raylib.DrawPolyLines = DrawPolyLines
*
* @return {undefined}
*/
-function DrawPolyLinesEx (center, sides, radius, rotation, lineThick, color) {
+function DrawPolyLinesEx(center, sides, radius, rotation, lineThick, color) {
return r.BindDrawPolyLinesEx(
center.x,
center.y,
@@ -3389,3679 +3544,3526 @@ function DrawPolyLinesEx (center, sides, radius, rotation, lineThick, color) {
raylib.DrawPolyLinesEx = DrawPolyLinesEx
/**
- * Check collision between two rectangles
+ * Draw spline: Linear, minimum 2 points
*
- * @param {Rectangle} rec1
- * @param {Rectangle} rec2
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionRecs (rec1, rec2) {
- return r.BindCheckCollisionRecs(
- rec1.x,
- rec1.y,
- rec1.width,
- rec1.height,
- rec2.x,
- rec2.y,
- rec2.width,
- rec2.height
+function DrawSplineLinear(points, pointCount, thick, color) {
+ return r.BindDrawSplineLinear(
+ points,
+ pointCount,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionRecs = CheckCollisionRecs
+raylib.DrawSplineLinear = DrawSplineLinear
/**
- * Check collision between two circles
+ * Draw spline: B-Spline, minimum 4 points
*
- * @param {Vector2} center1
- * @param {number} radius1
- * @param {Vector2} center2
- * @param {number} radius2
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionCircles (center1, radius1, center2, radius2) {
- return r.BindCheckCollisionCircles(
- center1.x,
- center1.y,
- radius1,
- center2.x,
- center2.y,
- radius2
+function DrawSplineBasis(points, pointCount, thick, color) {
+ return r.BindDrawSplineBasis(
+ points,
+ pointCount,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionCircles = CheckCollisionCircles
+raylib.DrawSplineBasis = DrawSplineBasis
/**
- * Check collision between circle and rectangle
+ * Draw spline: Catmull-Rom, minimum 4 points
*
- * @param {Vector2} center
- * @param {number} radius
- * @param {Rectangle} rec
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionCircleRec (center, radius, rec) {
- return r.BindCheckCollisionCircleRec(
- center.x,
- center.y,
- radius,
- rec.x,
- rec.y,
- rec.width,
- rec.height
+function DrawSplineCatmullRom(points, pointCount, thick, color) {
+ return r.BindDrawSplineCatmullRom(
+ points,
+ pointCount,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionCircleRec = CheckCollisionCircleRec
+raylib.DrawSplineCatmullRom = DrawSplineCatmullRom
/**
- * Check if point is inside rectangle
+ * Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]
*
- * @param {Vector2} point
- * @param {Rectangle} rec
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionPointRec (point, rec) {
- return r.BindCheckCollisionPointRec(
- point.x,
- point.y,
- rec.x,
- rec.y,
- rec.width,
- rec.height
+function DrawSplineBezierQuadratic(points, pointCount, thick, color) {
+ return r.BindDrawSplineBezierQuadratic(
+ points,
+ pointCount,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionPointRec = CheckCollisionPointRec
+raylib.DrawSplineBezierQuadratic = DrawSplineBezierQuadratic
/**
- * Check if point is inside circle
+ * Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]
*
- * @param {Vector2} point
- * @param {Vector2} center
- * @param {number} radius
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionPointCircle (point, center, radius) {
- return r.BindCheckCollisionPointCircle(
- point.x,
- point.y,
- center.x,
- center.y,
- radius
+function DrawSplineBezierCubic(points, pointCount, thick, color) {
+ return r.BindDrawSplineBezierCubic(
+ points,
+ pointCount,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionPointCircle = CheckCollisionPointCircle
+raylib.DrawSplineBezierCubic = DrawSplineBezierCubic
/**
- * Check if point is inside a triangle
+ * Draw spline segment: Linear, 2 points
*
- * @param {Vector2} point
* @param {Vector2} p1
* @param {Vector2} p2
- * @param {Vector2} p3
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionPointTriangle (point, p1, p2, p3) {
- return r.BindCheckCollisionPointTriangle(
- point.x,
- point.y,
+function DrawSplineSegmentLinear(p1, p2, thick, color) {
+ return r.BindDrawSplineSegmentLinear(
p1.x,
p1.y,
p2.x,
p2.y,
- p3.x,
- p3.y
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionPointTriangle = CheckCollisionPointTriangle
+raylib.DrawSplineSegmentLinear = DrawSplineSegmentLinear
/**
- * Check if point is within a polygon described by array of vertices
+ * Draw spline segment: B-Spline, 4 points
*
- * @param {Vector2} point
- * @param {number} points
- * @param {number} pointCount
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {Vector2} p3
+ * @param {Vector2} p4
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionPointPoly (point, points, pointCount) {
- return r.BindCheckCollisionPointPoly(
- point.x,
- point.y,
- points,
- pointCount
+function DrawSplineSegmentBasis(p1, p2, p3, p4, thick, color) {
+ return r.BindDrawSplineSegmentBasis(
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ p3.x,
+ p3.y,
+ p4.x,
+ p4.y,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionPointPoly = CheckCollisionPointPoly
+raylib.DrawSplineSegmentBasis = DrawSplineSegmentBasis
/**
- * Check the collision between two lines defined by two points each, returns collision point by reference
+ * Draw spline segment: Catmull-Rom, 4 points
*
- * @param {Vector2} startPos1
- * @param {Vector2} endPos1
- * @param {Vector2} startPos2
- * @param {Vector2} endPos2
- * @param {number} collisionPoint
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {Vector2} p3
+ * @param {Vector2} p4
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionLines (startPos1, endPos1, startPos2, endPos2, collisionPoint) {
- return r.BindCheckCollisionLines(
- startPos1.x,
- startPos1.y,
- endPos1.x,
- endPos1.y,
- startPos2.x,
- startPos2.y,
- endPos2.x,
- endPos2.y,
- collisionPoint
+function DrawSplineSegmentCatmullRom(p1, p2, p3, p4, thick, color) {
+ return r.BindDrawSplineSegmentCatmullRom(
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ p3.x,
+ p3.y,
+ p4.x,
+ p4.y,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionLines = CheckCollisionLines
+raylib.DrawSplineSegmentCatmullRom = DrawSplineSegmentCatmullRom
/**
- * Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]
+ * Draw spline segment: Quadratic Bezier, 2 points, 1 control point
*
- * @param {Vector2} point
* @param {Vector2} p1
- * @param {Vector2} p2
- * @param {number} threshold
+ * @param {Vector2} c2
+ * @param {Vector2} p3
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionPointLine (point, p1, p2, threshold) {
- return r.BindCheckCollisionPointLine(
- point.x,
- point.y,
+function DrawSplineSegmentBezierQuadratic(p1, c2, p3, thick, color) {
+ return r.BindDrawSplineSegmentBezierQuadratic(
p1.x,
p1.y,
- p2.x,
- p2.y,
- threshold
+ c2.x,
+ c2.y,
+ p3.x,
+ p3.y,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.CheckCollisionPointLine = CheckCollisionPointLine
+raylib.DrawSplineSegmentBezierQuadratic = DrawSplineSegmentBezierQuadratic
/**
- * Get collision rectangle for two rectangles collision
+ * Draw spline segment: Cubic Bezier, 2 points, 2 control points
*
- * @param {Rectangle} rec1
- * @param {Rectangle} rec2
+ * @param {Vector2} p1
+ * @param {Vector2} c2
+ * @param {Vector2} c3
+ * @param {Vector2} p4
+ * @param {number} thick
+ * @param {Color} color
*
- * @return {Rectangle} The resulting Rectangle.
+ * @return {undefined}
*/
-function GetCollisionRec (rec1, rec2) {
- return r.BindGetCollisionRec(
- rec1.x,
- rec1.y,
- rec1.width,
- rec1.height,
- rec2.x,
- rec2.y,
- rec2.width,
- rec2.height
+function DrawSplineSegmentBezierCubic(p1, c2, c3, p4, thick, color) {
+ return r.BindDrawSplineSegmentBezierCubic(
+ p1.x,
+ p1.y,
+ c2.x,
+ c2.y,
+ c3.x,
+ c3.y,
+ p4.x,
+ p4.y,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.GetCollisionRec = GetCollisionRec
+raylib.DrawSplineSegmentBezierCubic = DrawSplineSegmentBezierCubic
/**
- * Load image from file into CPU memory (RAM)
+ * Get (evaluate) spline point: Linear
*
- * @param {string} fileName
+ * @param {Vector2} startPos
+ * @param {Vector2} endPos
+ * @param {number} t
*
- * @return {Image} The resulting Image.
+ * @return {Vector2} The resulting Vector2.
*/
-function LoadImage (fileName) {
- return r.BindLoadImage(
- fileName
+function GetSplinePointLinear(startPos, endPos, t) {
+ return r.BindGetSplinePointLinear(
+ startPos.x,
+ startPos.y,
+ endPos.x,
+ endPos.y,
+ t
)
}
-raylib.LoadImage = LoadImage
+raylib.GetSplinePointLinear = GetSplinePointLinear
/**
- * Load image from RAW file data
+ * Get (evaluate) spline point: B-Spline
*
- * @param {string} fileName
- * @param {number} width
- * @param {number} height
- * @param {number} format
- * @param {number} headerSize
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {Vector2} p3
+ * @param {Vector2} p4
+ * @param {number} t
*
- * @return {Image} The resulting Image.
+ * @return {Vector2} The resulting Vector2.
*/
-function LoadImageRaw (fileName, width, height, format, headerSize) {
- return r.BindLoadImageRaw(
- fileName,
- width,
- height,
- format,
- headerSize
+function GetSplinePointBasis(p1, p2, p3, p4, t) {
+ return r.BindGetSplinePointBasis(
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ p3.x,
+ p3.y,
+ p4.x,
+ p4.y,
+ t
)
}
-raylib.LoadImageRaw = LoadImageRaw
+raylib.GetSplinePointBasis = GetSplinePointBasis
/**
- * Load image sequence from file (frames appended to image.data)
+ * Get (evaluate) spline point: Catmull-Rom
*
- * @param {string} fileName
- * @param {number} frames
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {Vector2} p3
+ * @param {Vector2} p4
+ * @param {number} t
*
- * @return {Image} The resulting Image.
+ * @return {Vector2} The resulting Vector2.
*/
-function LoadImageAnim (fileName, frames) {
- return r.BindLoadImageAnim(
- fileName,
- frames
+function GetSplinePointCatmullRom(p1, p2, p3, p4, t) {
+ return r.BindGetSplinePointCatmullRom(
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ p3.x,
+ p3.y,
+ p4.x,
+ p4.y,
+ t
)
}
-raylib.LoadImageAnim = LoadImageAnim
+raylib.GetSplinePointCatmullRom = GetSplinePointCatmullRom
/**
- * Load image from memory buffer, fileType refers to extension: i.e. '.png'
+ * Get (evaluate) spline point: Quadratic Bezier
*
- * @param {string} fileType
- * @param {Buffer} fileData
- * @param {number} dataSize
+ * @param {Vector2} p1
+ * @param {Vector2} c2
+ * @param {Vector2} p3
+ * @param {number} t
*
- * @return {Image} The resulting Image.
+ * @return {Vector2} The resulting Vector2.
*/
-function LoadImageFromMemory (fileType, fileData, dataSize) {
- return r.BindLoadImageFromMemory(
- fileType,
- fileData,
- dataSize
+function GetSplinePointBezierQuad(p1, c2, p3, t) {
+ return r.BindGetSplinePointBezierQuad(
+ p1.x,
+ p1.y,
+ c2.x,
+ c2.y,
+ p3.x,
+ p3.y,
+ t
)
}
-raylib.LoadImageFromMemory = LoadImageFromMemory
+raylib.GetSplinePointBezierQuad = GetSplinePointBezierQuad
/**
- * Load image from GPU texture data
+ * Get (evaluate) spline point: Cubic Bezier
*
- * @param {Texture} texture
+ * @param {Vector2} p1
+ * @param {Vector2} c2
+ * @param {Vector2} c3
+ * @param {Vector2} p4
+ * @param {number} t
*
- * @return {Image} The resulting Image.
+ * @return {Vector2} The resulting Vector2.
*/
-function LoadImageFromTexture (texture) {
- return r.BindLoadImageFromTexture(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format
+function GetSplinePointBezierCubic(p1, c2, c3, p4, t) {
+ return r.BindGetSplinePointBezierCubic(
+ p1.x,
+ p1.y,
+ c2.x,
+ c2.y,
+ c3.x,
+ c3.y,
+ p4.x,
+ p4.y,
+ t
)
}
-raylib.LoadImageFromTexture = LoadImageFromTexture
+raylib.GetSplinePointBezierCubic = GetSplinePointBezierCubic
/**
- * Load image from screen buffer and (screenshot)
+ * Check collision between two rectangles
*
- * @return {Image} The resulting Image.
+ * @param {Rectangle} rec1
+ * @param {Rectangle} rec2
+ *
+ * @return {boolean} The resulting bool.
*/
-function LoadImageFromScreen () {
- return r.BindLoadImageFromScreen()
+function CheckCollisionRecs(rec1, rec2) {
+ return r.BindCheckCollisionRecs(
+ rec1.x,
+ rec1.y,
+ rec1.width,
+ rec1.height,
+ rec2.x,
+ rec2.y,
+ rec2.width,
+ rec2.height
+ )
}
-raylib.LoadImageFromScreen = LoadImageFromScreen
+raylib.CheckCollisionRecs = CheckCollisionRecs
/**
- * Check if an image is ready
+ * Check collision between two circles
*
- * @param {Image} image
+ * @param {Vector2} center1
+ * @param {number} radius1
+ * @param {Vector2} center2
+ * @param {number} radius2
*
* @return {boolean} The resulting bool.
*/
-function IsImageReady (image) {
- return r.BindIsImageReady(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
+function CheckCollisionCircles(center1, radius1, center2, radius2) {
+ return r.BindCheckCollisionCircles(
+ center1.x,
+ center1.y,
+ radius1,
+ center2.x,
+ center2.y,
+ radius2
)
}
-raylib.IsImageReady = IsImageReady
+raylib.CheckCollisionCircles = CheckCollisionCircles
/**
- * Unload image from CPU memory (RAM)
+ * Check collision between circle and rectangle
*
- * @param {Image} image
+ * @param {Vector2} center
+ * @param {number} radius
+ * @param {Rectangle} rec
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function UnloadImage (image) {
- return r.BindUnloadImage(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
+function CheckCollisionCircleRec(center, radius, rec) {
+ return r.BindCheckCollisionCircleRec(
+ center.x,
+ center.y,
+ radius,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height
)
}
-raylib.UnloadImage = UnloadImage
+raylib.CheckCollisionCircleRec = CheckCollisionCircleRec
/**
- * Export image data to file, returns true on success
+ * Check if point is inside rectangle
*
- * @param {Image} image
- * @param {string} fileName
+ * @param {Vector2} point
+ * @param {Rectangle} rec
*
* @return {boolean} The resulting bool.
*/
-function ExportImage (image, fileName) {
- return r.BindExportImage(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- fileName
+function CheckCollisionPointRec(point, rec) {
+ return r.BindCheckCollisionPointRec(
+ point.x,
+ point.y,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height
)
}
-raylib.ExportImage = ExportImage
+raylib.CheckCollisionPointRec = CheckCollisionPointRec
/**
- * Export image as code file defining an array of bytes, returns true on success
+ * Check if point is inside circle
*
- * @param {Image} image
- * @param {string} fileName
+ * @param {Vector2} point
+ * @param {Vector2} center
+ * @param {number} radius
*
* @return {boolean} The resulting bool.
*/
-function ExportImageAsCode (image, fileName) {
- return r.BindExportImageAsCode(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- fileName
+function CheckCollisionPointCircle(point, center, radius) {
+ return r.BindCheckCollisionPointCircle(
+ point.x,
+ point.y,
+ center.x,
+ center.y,
+ radius
)
}
-raylib.ExportImageAsCode = ExportImageAsCode
+raylib.CheckCollisionPointCircle = CheckCollisionPointCircle
/**
- * Generate image: plain color
+ * Check if point is inside a triangle
*
- * @param {number} width
- * @param {number} height
- * @param {Color} color
+ * @param {Vector2} point
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {Vector2} p3
*
- * @return {Image} The resulting Image.
+ * @return {boolean} The resulting bool.
*/
-function GenImageColor (width, height, color) {
- return r.BindGenImageColor(
- width,
- height,
- color.r,
- color.g,
- color.b,
- color.a
+function CheckCollisionPointTriangle(point, p1, p2, p3) {
+ return r.BindCheckCollisionPointTriangle(
+ point.x,
+ point.y,
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ p3.x,
+ p3.y
)
}
-raylib.GenImageColor = GenImageColor
+raylib.CheckCollisionPointTriangle = CheckCollisionPointTriangle
/**
- * Generate image: vertical gradient
+ * Check if point is within a polygon described by array of vertices
*
- * @param {number} width
- * @param {number} height
- * @param {Color} top
- * @param {Color} bottom
+ * @param {Vector2} point
+ * @param {number} points
+ * @param {number} pointCount
*
- * @return {Image} The resulting Image.
+ * @return {boolean} The resulting bool.
*/
-function GenImageGradientV (width, height, top, bottom) {
- return r.BindGenImageGradientV(
- width,
- height,
- top.r,
- top.g,
- top.b,
- top.a,
- bottom.r,
- bottom.g,
- bottom.b,
- bottom.a
+function CheckCollisionPointPoly(point, points, pointCount) {
+ return r.BindCheckCollisionPointPoly(
+ point.x,
+ point.y,
+ points,
+ pointCount
)
}
-raylib.GenImageGradientV = GenImageGradientV
+raylib.CheckCollisionPointPoly = CheckCollisionPointPoly
/**
- * Generate image: horizontal gradient
+ * Check the collision between two lines defined by two points each, returns collision point by reference
*
- * @param {number} width
- * @param {number} height
- * @param {Color} left
- * @param {Color} right
+ * @param {Vector2} startPos1
+ * @param {Vector2} endPos1
+ * @param {Vector2} startPos2
+ * @param {Vector2} endPos2
+ * @param {number} collisionPoint
*
- * @return {Image} The resulting Image.
+ * @return {boolean} The resulting bool.
*/
-function GenImageGradientH (width, height, left, right) {
- return r.BindGenImageGradientH(
- width,
- height,
- left.r,
- left.g,
- left.b,
- left.a,
- right.r,
- right.g,
- right.b,
- right.a
+function CheckCollisionLines(startPos1, endPos1, startPos2, endPos2, collisionPoint) {
+ return r.BindCheckCollisionLines(
+ startPos1.x,
+ startPos1.y,
+ endPos1.x,
+ endPos1.y,
+ startPos2.x,
+ startPos2.y,
+ endPos2.x,
+ endPos2.y,
+ collisionPoint
)
}
-raylib.GenImageGradientH = GenImageGradientH
+raylib.CheckCollisionLines = CheckCollisionLines
/**
- * Generate image: radial gradient
+ * Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]
*
- * @param {number} width
- * @param {number} height
- * @param {number} density
- * @param {Color} inner
- * @param {Color} outer
+ * @param {Vector2} point
+ * @param {Vector2} p1
+ * @param {Vector2} p2
+ * @param {number} threshold
*
- * @return {Image} The resulting Image.
+ * @return {boolean} The resulting bool.
*/
-function GenImageGradientRadial (width, height, density, inner, outer) {
- return r.BindGenImageGradientRadial(
- width,
- height,
- density,
- inner.r,
- inner.g,
- inner.b,
- inner.a,
- outer.r,
- outer.g,
- outer.b,
- outer.a
+function CheckCollisionPointLine(point, p1, p2, threshold) {
+ return r.BindCheckCollisionPointLine(
+ point.x,
+ point.y,
+ p1.x,
+ p1.y,
+ p2.x,
+ p2.y,
+ threshold
)
}
-raylib.GenImageGradientRadial = GenImageGradientRadial
+raylib.CheckCollisionPointLine = CheckCollisionPointLine
/**
- * Generate image: checked
+ * Get collision rectangle for two rectangles collision
*
- * @param {number} width
- * @param {number} height
- * @param {number} checksX
- * @param {number} checksY
- * @param {Color} col1
- * @param {Color} col2
+ * @param {Rectangle} rec1
+ * @param {Rectangle} rec2
*
- * @return {Image} The resulting Image.
+ * @return {Rectangle} The resulting Rectangle.
*/
-function GenImageChecked (width, height, checksX, checksY, col1, col2) {
- return r.BindGenImageChecked(
- width,
- height,
- checksX,
- checksY,
- col1.r,
- col1.g,
- col1.b,
- col1.a,
- col2.r,
- col2.g,
- col2.b,
- col2.a
+function GetCollisionRec(rec1, rec2) {
+ return r.BindGetCollisionRec(
+ rec1.x,
+ rec1.y,
+ rec1.width,
+ rec1.height,
+ rec2.x,
+ rec2.y,
+ rec2.width,
+ rec2.height
)
}
-raylib.GenImageChecked = GenImageChecked
+raylib.GetCollisionRec = GetCollisionRec
/**
- * Generate image: white noise
+ * Load image from file into CPU memory (RAM)
*
- * @param {number} width
- * @param {number} height
- * @param {number} factor
+ * @param {string} fileName
*
* @return {Image} The resulting Image.
*/
-function GenImageWhiteNoise (width, height, factor) {
- return r.BindGenImageWhiteNoise(
- width,
- height,
- factor
+function LoadImage(fileName) {
+ return r.BindLoadImage(
+ fileName
)
}
-raylib.GenImageWhiteNoise = GenImageWhiteNoise
+raylib.LoadImage = LoadImage
/**
- * Generate image: perlin noise
+ * Load image from RAW file data
*
+ * @param {string} fileName
* @param {number} width
* @param {number} height
- * @param {number} offsetX
- * @param {number} offsetY
- * @param {number} scale
+ * @param {number} format
+ * @param {number} headerSize
*
* @return {Image} The resulting Image.
*/
-function GenImagePerlinNoise (width, height, offsetX, offsetY, scale) {
- return r.BindGenImagePerlinNoise(
+function LoadImageRaw(fileName, width, height, format, headerSize) {
+ return r.BindLoadImageRaw(
+ fileName,
width,
height,
- offsetX,
- offsetY,
- scale
+ format,
+ headerSize
)
}
-raylib.GenImagePerlinNoise = GenImagePerlinNoise
+raylib.LoadImageRaw = LoadImageRaw
/**
- * Generate image: cellular algorithm, bigger tileSize means bigger cells
+ * Load image from SVG file data or string with specified size
*
+ * @param {string} fileNameOrString
* @param {number} width
* @param {number} height
- * @param {number} tileSize
*
* @return {Image} The resulting Image.
*/
-function GenImageCellular (width, height, tileSize) {
- return r.BindGenImageCellular(
+function LoadImageSvg(fileNameOrString, width, height) {
+ return r.BindLoadImageSvg(
+ fileNameOrString,
width,
- height,
- tileSize
+ height
)
}
-raylib.GenImageCellular = GenImageCellular
+raylib.LoadImageSvg = LoadImageSvg
/**
- * Generate image: grayscale image from text data
+ * Load image sequence from file (frames appended to image.data)
*
- * @param {number} width
- * @param {number} height
- * @param {string} text
+ * @param {string} fileName
+ * @param {number} frames
*
* @return {Image} The resulting Image.
*/
-function GenImageText (width, height, text) {
- return r.BindGenImageText(
- width,
- height,
- text
+function LoadImageAnim(fileName, frames) {
+ return r.BindLoadImageAnim(
+ fileName,
+ frames
)
}
-raylib.GenImageText = GenImageText
+raylib.LoadImageAnim = LoadImageAnim
/**
- * Create an image duplicate (useful for transformations)
+ * Load image from memory buffer, fileType refers to extension: i.e. '.png'
*
- * @param {Image} image
+ * @param {string} fileType
+ * @param {Buffer} fileData
+ * @param {number} dataSize
*
* @return {Image} The resulting Image.
*/
-function ImageCopy (image) {
- return r.BindImageCopy(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
+function LoadImageFromMemory(fileType, fileData, dataSize) {
+ return r.BindLoadImageFromMemory(
+ fileType,
+ fileData,
+ dataSize
)
}
-raylib.ImageCopy = ImageCopy
+raylib.LoadImageFromMemory = LoadImageFromMemory
/**
- * Create an image from another image piece
+ * Load image from GPU texture data
*
- * @param {Image} image
- * @param {Rectangle} rec
+ * @param {Texture} texture
*
* @return {Image} The resulting Image.
*/
-function ImageFromImage (image, rec) {
- return r.BindImageFromImage(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- rec.x,
- rec.y,
- rec.width,
- rec.height
+function LoadImageFromTexture(texture) {
+ return r.BindLoadImageFromTexture(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format
)
}
-raylib.ImageFromImage = ImageFromImage
+raylib.LoadImageFromTexture = LoadImageFromTexture
/**
- * Create an image from text (default font)
- *
- * @param {string} text
- * @param {number} fontSize
- * @param {Color} color
+ * Load image from screen buffer and (screenshot)
*
* @return {Image} The resulting Image.
*/
-function ImageText (text, fontSize, color) {
- return r.BindImageText(
- text,
- fontSize,
- color.r,
- color.g,
- color.b,
- color.a
- )
+function LoadImageFromScreen() {
+ return r.BindLoadImageFromScreen()
}
-raylib.ImageText = ImageText
+raylib.LoadImageFromScreen = LoadImageFromScreen
/**
- * Create an image from text (custom sprite font)
+ * Check if an image is ready
*
- * @param {Font} font
- * @param {string} text
- * @param {number} fontSize
- * @param {number} spacing
- * @param {Color} tint
+ * @param {Image} image
*
- * @return {Image} The resulting Image.
+ * @return {boolean} The resulting bool.
*/
-function ImageTextEx (font, text, fontSize, spacing, tint) {
- return r.BindImageTextEx(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- text,
- fontSize,
- spacing,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function IsImageReady(image) {
+ return r.BindIsImageReady(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
)
}
-raylib.ImageTextEx = ImageTextEx
+raylib.IsImageReady = IsImageReady
/**
- * Apply Gaussian blur using a box blur approximation
+ * Unload image from CPU memory (RAM)
*
- * @param {number} image
- * @param {number} blurSize
+ * @param {Image} image
*
* @return {undefined}
*/
-function ImageBlurGaussian (image, blurSize) {
- return r.BindImageBlurGaussian(
- image,
- blurSize
+function UnloadImage(image) {
+ return r.BindUnloadImage(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
)
}
-raylib.ImageBlurGaussian = ImageBlurGaussian
+raylib.UnloadImage = UnloadImage
/**
- * Load color data from image as a Color array (RGBA - 32bit)
+ * Export image data to file, returns true on success
*
* @param {Image} image
+ * @param {string} fileName
*
- * @return {number} The resulting Color *.
+ * @return {boolean} The resulting bool.
*/
-function LoadImageColors (image) {
- return r.BindLoadImageColors(
+function ExportImage(image, fileName) {
+ return r.BindExportImage(
image.data,
image.width,
image.height,
image.mipmaps,
- image.format
+ image.format,
+ fileName
)
}
-raylib.LoadImageColors = LoadImageColors
+raylib.ExportImage = ExportImage
/**
- * Load colors palette from image as a Color array (RGBA - 32bit)
+ * Export image to memory buffer
*
* @param {Image} image
- * @param {number} maxPaletteSize
- * @param {number} colorCount
+ * @param {string} fileType
+ * @param {number} fileSize
*
- * @return {number} The resulting Color *.
+ * @return {Buffer} The resulting unsigned char *.
*/
-function LoadImagePalette (image, maxPaletteSize, colorCount) {
- return r.BindLoadImagePalette(
+function ExportImageToMemory(image, fileType, fileSize) {
+ return r.BindExportImageToMemory(
image.data,
image.width,
image.height,
image.mipmaps,
image.format,
- maxPaletteSize,
- colorCount
+ fileType,
+ fileSize
)
}
-raylib.LoadImagePalette = LoadImagePalette
+raylib.ExportImageToMemory = ExportImageToMemory
/**
- * Unload color data loaded with LoadImageColors()
+ * Export image as code file defining an array of bytes, returns true on success
*
- * @param {number} colors
+ * @param {Image} image
+ * @param {string} fileName
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function UnloadImageColors (colors) {
- return r.BindUnloadImageColors(
- colors
+function ExportImageAsCode(image, fileName) {
+ return r.BindExportImageAsCode(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ fileName
)
}
-raylib.UnloadImageColors = UnloadImageColors
+raylib.ExportImageAsCode = ExportImageAsCode
/**
- * Unload colors palette loaded with LoadImagePalette()
+ * Generate image: plain color
*
- * @param {number} colors
+ * @param {number} width
+ * @param {number} height
+ * @param {Color} color
*
- * @return {undefined}
+ * @return {Image} The resulting Image.
*/
-function UnloadImagePalette (colors) {
- return r.BindUnloadImagePalette(
- colors
+function GenImageColor(width, height, color) {
+ return r.BindGenImageColor(
+ width,
+ height,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.UnloadImagePalette = UnloadImagePalette
+raylib.GenImageColor = GenImageColor
/**
- * Get image alpha border rectangle
+ * Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient
*
- * @param {Image} image
- * @param {number} threshold
+ * @param {number} width
+ * @param {number} height
+ * @param {number} direction
+ * @param {Color} start
+ * @param {Color} end
*
- * @return {Rectangle} The resulting Rectangle.
+ * @return {Image} The resulting Image.
*/
-function GetImageAlphaBorder (image, threshold) {
- return r.BindGetImageAlphaBorder(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- threshold
+function GenImageGradientLinear(width, height, direction, start, end) {
+ return r.BindGenImageGradientLinear(
+ width,
+ height,
+ direction,
+ start.r,
+ start.g,
+ start.b,
+ start.a,
+ end.r,
+ end.g,
+ end.b,
+ end.a
)
}
-raylib.GetImageAlphaBorder = GetImageAlphaBorder
+raylib.GenImageGradientLinear = GenImageGradientLinear
/**
- * Get image pixel color at (x, y) position
+ * Generate image: radial gradient
*
- * @param {Image} image
- * @param {number} x
- * @param {number} y
+ * @param {number} width
+ * @param {number} height
+ * @param {number} density
+ * @param {Color} inner
+ * @param {Color} outer
*
- * @return {Color} The resulting Color.
+ * @return {Image} The resulting Image.
*/
-function GetImageColor (image, x, y) {
- return r.BindGetImageColor(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- x,
- y
+function GenImageGradientRadial(width, height, density, inner, outer) {
+ return r.BindGenImageGradientRadial(
+ width,
+ height,
+ density,
+ inner.r,
+ inner.g,
+ inner.b,
+ inner.a,
+ outer.r,
+ outer.g,
+ outer.b,
+ outer.a
)
}
-raylib.GetImageColor = GetImageColor
+raylib.GenImageGradientRadial = GenImageGradientRadial
/**
- * Draw circle outline within an image
+ * Generate image: square gradient
*
- * @param {number} dst
- * @param {number} centerX
- * @param {number} centerY
- * @param {number} radius
- * @param {Color} color
+ * @param {number} width
+ * @param {number} height
+ * @param {number} density
+ * @param {Color} inner
+ * @param {Color} outer
*
- * @return {undefined}
+ * @return {Image} The resulting Image.
*/
-function ImageDrawCircleLines (dst, centerX, centerY, radius, color) {
- return r.BindImageDrawCircleLines(
- dst,
- centerX,
- centerY,
- radius,
- color.r,
- color.g,
- color.b,
- color.a
+function GenImageGradientSquare(width, height, density, inner, outer) {
+ return r.BindGenImageGradientSquare(
+ width,
+ height,
+ density,
+ inner.r,
+ inner.g,
+ inner.b,
+ inner.a,
+ outer.r,
+ outer.g,
+ outer.b,
+ outer.a
)
}
-raylib.ImageDrawCircleLines = ImageDrawCircleLines
+raylib.GenImageGradientSquare = GenImageGradientSquare
/**
- * Draw circle outline within an image (Vector version)
+ * Generate image: checked
*
- * @param {number} dst
- * @param {Vector2} center
- * @param {number} radius
- * @param {Color} color
+ * @param {number} width
+ * @param {number} height
+ * @param {number} checksX
+ * @param {number} checksY
+ * @param {Color} col1
+ * @param {Color} col2
*
- * @return {undefined}
+ * @return {Image} The resulting Image.
*/
-function ImageDrawCircleLinesV (dst, center, radius, color) {
- return r.BindImageDrawCircleLinesV(
- dst,
- center.x,
- center.y,
- radius,
- color.r,
- color.g,
- color.b,
- color.a
+function GenImageChecked(width, height, checksX, checksY, col1, col2) {
+ return r.BindGenImageChecked(
+ width,
+ height,
+ checksX,
+ checksY,
+ col1.r,
+ col1.g,
+ col1.b,
+ col1.a,
+ col2.r,
+ col2.g,
+ col2.b,
+ col2.a
)
}
-raylib.ImageDrawCircleLinesV = ImageDrawCircleLinesV
+raylib.GenImageChecked = GenImageChecked
/**
- * Load texture from file into GPU memory (VRAM)
+ * Generate image: white noise
*
- * @param {string} fileName
+ * @param {number} width
+ * @param {number} height
+ * @param {number} factor
*
- * @return {Texture2D} The resulting Texture2D.
+ * @return {Image} The resulting Image.
*/
-function LoadTexture (fileName) {
- return r.BindLoadTexture(
- fileName
+function GenImageWhiteNoise(width, height, factor) {
+ return r.BindGenImageWhiteNoise(
+ width,
+ height,
+ factor
)
}
-raylib.LoadTexture = LoadTexture
+raylib.GenImageWhiteNoise = GenImageWhiteNoise
/**
- * Load texture from image data
+ * Generate image: perlin noise
*
- * @param {Image} image
+ * @param {number} width
+ * @param {number} height
+ * @param {number} offsetX
+ * @param {number} offsetY
+ * @param {number} scale
*
- * @return {Texture2D} The resulting Texture2D.
+ * @return {Image} The resulting Image.
*/
-function LoadTextureFromImage (image) {
- return r.BindLoadTextureFromImage(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
+function GenImagePerlinNoise(width, height, offsetX, offsetY, scale) {
+ return r.BindGenImagePerlinNoise(
+ width,
+ height,
+ offsetX,
+ offsetY,
+ scale
)
}
-raylib.LoadTextureFromImage = LoadTextureFromImage
+raylib.GenImagePerlinNoise = GenImagePerlinNoise
/**
- * Load cubemap from image, multiple image cubemap layouts supported
+ * Generate image: cellular algorithm, bigger tileSize means bigger cells
*
- * @param {Image} image
- * @param {number} layout
+ * @param {number} width
+ * @param {number} height
+ * @param {number} tileSize
*
- * @return {TextureCubemap} The resulting TextureCubemap.
+ * @return {Image} The resulting Image.
*/
-function LoadTextureCubemap (image, layout) {
- return r.BindLoadTextureCubemap(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- layout
+function GenImageCellular(width, height, tileSize) {
+ return r.BindGenImageCellular(
+ width,
+ height,
+ tileSize
)
}
-raylib.LoadTextureCubemap = LoadTextureCubemap
+raylib.GenImageCellular = GenImageCellular
/**
- * Load texture for rendering (framebuffer)
+ * Generate image: grayscale image from text data
*
* @param {number} width
* @param {number} height
+ * @param {string} text
*
- * @return {RenderTexture2D} The resulting RenderTexture2D.
+ * @return {Image} The resulting Image.
*/
-function LoadRenderTexture (width, height) {
- return r.BindLoadRenderTexture(
+function GenImageText(width, height, text) {
+ return r.BindGenImageText(
width,
- height
+ height,
+ text
)
}
-raylib.LoadRenderTexture = LoadRenderTexture
+raylib.GenImageText = GenImageText
/**
- * Check if a texture is ready
+ * Create an image duplicate (useful for transformations)
*
- * @param {Texture} texture
+ * @param {Image} image
*
- * @return {boolean} The resulting bool.
+ * @return {Image} The resulting Image.
*/
-function IsTextureReady (texture) {
- return r.BindIsTextureReady(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format
+function ImageCopy(image) {
+ return r.BindImageCopy(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
)
}
-raylib.IsTextureReady = IsTextureReady
+raylib.ImageCopy = ImageCopy
/**
- * Unload texture from GPU memory (VRAM)
+ * Create an image from another image piece
*
- * @param {Texture} texture
+ * @param {Image} image
+ * @param {Rectangle} rec
*
- * @return {undefined}
+ * @return {Image} The resulting Image.
*/
-function UnloadTexture (texture) {
- return r.BindUnloadTexture(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format
+function ImageFromImage(image, rec) {
+ return r.BindImageFromImage(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height
)
}
-raylib.UnloadTexture = UnloadTexture
+raylib.ImageFromImage = ImageFromImage
/**
- * Check if a render texture is ready
+ * Create an image from text (default font)
*
- * @param {RenderTexture} target
+ * @param {string} text
+ * @param {number} fontSize
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {Image} The resulting Image.
*/
-function IsRenderTextureReady (target) {
- return r.BindIsRenderTextureReady(
- target.id,
- target.texture.id,
- target.texture.width,
- target.texture.height,
- target.texture.mipmaps,
- target.texture.format,
- target.depth.id,
- target.depth.width,
- target.depth.height,
- target.depth.mipmaps,
- target.depth.format
+function ImageText(text, fontSize, color) {
+ return r.BindImageText(
+ text,
+ fontSize,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.IsRenderTextureReady = IsRenderTextureReady
+raylib.ImageText = ImageText
/**
- * Unload render texture from GPU memory (VRAM)
+ * Create an image from text (custom sprite font)
*
- * @param {RenderTexture} target
+ * @param {Font} font
+ * @param {string} text
+ * @param {number} fontSize
+ * @param {number} spacing
+ * @param {Color} tint
*
- * @return {undefined}
+ * @return {Image} The resulting Image.
*/
-function UnloadRenderTexture (target) {
- return r.BindUnloadRenderTexture(
- target.id,
- target.texture.id,
- target.texture.width,
- target.texture.height,
- target.texture.mipmaps,
- target.texture.format,
- target.depth.id,
- target.depth.width,
- target.depth.height,
- target.depth.mipmaps,
- target.depth.format
+function ImageTextEx(font, text, fontSize, spacing, tint) {
+ return r.BindImageTextEx(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ text,
+ fontSize,
+ spacing,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.UnloadRenderTexture = UnloadRenderTexture
+raylib.ImageTextEx = ImageTextEx
/**
- * Update GPU texture with new data
+ * Apply Gaussian blur using a box blur approximation
*
- * @param {Texture} texture
- * @param {number} pixels
+ * @param {number} image
+ * @param {number} blurSize
*
* @return {undefined}
*/
-function UpdateTexture (texture, pixels) {
- return r.BindUpdateTexture(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- pixels
+function ImageBlurGaussian(image, blurSize) {
+ return r.BindImageBlurGaussian(
+ image,
+ blurSize
)
}
-raylib.UpdateTexture = UpdateTexture
+raylib.ImageBlurGaussian = ImageBlurGaussian
/**
- * Update GPU texture rectangle with new data
+ * Rotate image by input angle in degrees (-359 to 359)
*
- * @param {Texture} texture
- * @param {Rectangle} rec
- * @param {number} pixels
+ * @param {number} image
+ * @param {number} degrees
*
* @return {undefined}
*/
-function UpdateTextureRec (texture, rec, pixels) {
- return r.BindUpdateTextureRec(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- rec.x,
- rec.y,
- rec.width,
- rec.height,
- pixels
+function ImageRotate(image, degrees) {
+ return r.BindImageRotate(
+ image,
+ degrees
)
}
-raylib.UpdateTextureRec = UpdateTextureRec
+raylib.ImageRotate = ImageRotate
/**
- * Set texture scaling filter mode
+ * Load color data from image as a Color array (RGBA - 32bit)
*
- * @param {Texture} texture
- * @param {number} filter
+ * @param {Image} image
*
- * @return {undefined}
+ * @return {number} The resulting Color *.
*/
-function SetTextureFilter (texture, filter) {
- return r.BindSetTextureFilter(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- filter
+function LoadImageColors(image) {
+ return r.BindLoadImageColors(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
)
}
-raylib.SetTextureFilter = SetTextureFilter
+raylib.LoadImageColors = LoadImageColors
/**
- * Set texture wrapping mode
+ * Load colors palette from image as a Color array (RGBA - 32bit)
*
- * @param {Texture} texture
- * @param {number} wrap
+ * @param {Image} image
+ * @param {number} maxPaletteSize
+ * @param {number} colorCount
*
- * @return {undefined}
+ * @return {number} The resulting Color *.
*/
-function SetTextureWrap (texture, wrap) {
- return r.BindSetTextureWrap(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- wrap
+function LoadImagePalette(image, maxPaletteSize, colorCount) {
+ return r.BindLoadImagePalette(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ maxPaletteSize,
+ colorCount
)
}
-raylib.SetTextureWrap = SetTextureWrap
+raylib.LoadImagePalette = LoadImagePalette
/**
- * Draw a Texture2D
+ * Unload color data loaded with LoadImageColors()
*
- * @param {Texture} texture
- * @param {number} posX
- * @param {number} posY
- * @param {Color} tint
+ * @param {number} colors
*
* @return {undefined}
*/
-function DrawTexture (texture, posX, posY, tint) {
- return r.BindDrawTexture(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- posX,
- posY,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function UnloadImageColors(colors) {
+ return r.BindUnloadImageColors(
+ colors
)
}
-raylib.DrawTexture = DrawTexture
+raylib.UnloadImageColors = UnloadImageColors
/**
- * Draw a Texture2D with position defined as Vector2
+ * Unload colors palette loaded with LoadImagePalette()
*
- * @param {Texture} texture
- * @param {Vector2} position
- * @param {Color} tint
+ * @param {number} colors
*
* @return {undefined}
*/
-function DrawTextureV (texture, position, tint) {
- return r.BindDrawTextureV(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- position.x,
- position.y,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function UnloadImagePalette(colors) {
+ return r.BindUnloadImagePalette(
+ colors
)
}
-raylib.DrawTextureV = DrawTextureV
+raylib.UnloadImagePalette = UnloadImagePalette
/**
- * Draw a Texture2D with extended parameters
+ * Get image alpha border rectangle
*
- * @param {Texture} texture
- * @param {Vector2} position
- * @param {number} rotation
- * @param {number} scale
- * @param {Color} tint
+ * @param {Image} image
+ * @param {number} threshold
*
- * @return {undefined}
+ * @return {Rectangle} The resulting Rectangle.
*/
-function DrawTextureEx (texture, position, rotation, scale, tint) {
- return r.BindDrawTextureEx(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- position.x,
- position.y,
- rotation,
- scale,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function GetImageAlphaBorder(image, threshold) {
+ return r.BindGetImageAlphaBorder(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ threshold
)
}
-raylib.DrawTextureEx = DrawTextureEx
+raylib.GetImageAlphaBorder = GetImageAlphaBorder
/**
- * Draw a part of a texture defined by a rectangle
+ * Get image pixel color at (x, y) position
*
- * @param {Texture} texture
- * @param {Rectangle} source
- * @param {Vector2} position
- * @param {Color} tint
+ * @param {Image} image
+ * @param {number} x
+ * @param {number} y
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawTextureRec (texture, source, position, tint) {
- return r.BindDrawTextureRec(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- source.x,
- source.y,
- source.width,
- source.height,
- position.x,
- position.y,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function GetImageColor(image, x, y) {
+ return r.BindGetImageColor(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ x,
+ y
)
}
-raylib.DrawTextureRec = DrawTextureRec
+raylib.GetImageColor = GetImageColor
/**
- * Draw a part of a texture defined by a rectangle with 'pro' parameters
- *
- * @param {Texture} texture
- * @param {Rectangle} source
- * @param {Rectangle} dest
- * @param {Vector2} origin
- * @param {number} rotation
- * @param {Color} tint
- *
- * @return {undefined}
- */
-function DrawTexturePro (texture, source, dest, origin, rotation, tint) {
- return r.BindDrawTexturePro(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- source.x,
- source.y,
- source.width,
- source.height,
- dest.x,
- dest.y,
- dest.width,
- dest.height,
- origin.x,
- origin.y,
- rotation,
- tint.r,
- tint.g,
- tint.b,
- tint.a
- )
-}
-raylib.DrawTexturePro = DrawTexturePro
-
-/**
- * Draws a texture (or part of it) that stretches or shrinks nicely
- *
- * @param {Texture} texture
- * @param {NPatchInfo} nPatchInfo
- * @param {Rectangle} dest
- * @param {Vector2} origin
- * @param {number} rotation
- * @param {Color} tint
- *
- * @return {undefined}
- */
-function DrawTextureNPatch (texture, nPatchInfo, dest, origin, rotation, tint) {
- return r.BindDrawTextureNPatch(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- nPatchInfo.source.x,
- nPatchInfo.source.y,
- nPatchInfo.source.width,
- nPatchInfo.source.height,
- nPatchInfo.left,
- nPatchInfo.top,
- nPatchInfo.right,
- nPatchInfo.bottom,
- nPatchInfo.layout,
- dest.x,
- dest.y,
- dest.width,
- dest.height,
- origin.x,
- origin.y,
- rotation,
- tint.r,
- tint.g,
- tint.b,
- tint.a
- )
-}
-raylib.DrawTextureNPatch = DrawTextureNPatch
-
-/**
- * Get color with alpha applied, alpha goes from 0.0f to 1.0f
+ * Draw circle outline within an image
*
+ * @param {number} dst
+ * @param {number} centerX
+ * @param {number} centerY
+ * @param {number} radius
* @param {Color} color
- * @param {number} alpha
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function Fade (color, alpha) {
- return r.BindFade(
+function ImageDrawCircleLines(dst, centerX, centerY, radius, color) {
+ return r.BindImageDrawCircleLines(
+ dst,
+ centerX,
+ centerY,
+ radius,
color.r,
color.g,
color.b,
- color.a,
- alpha
+ color.a
)
}
-raylib.Fade = Fade
+raylib.ImageDrawCircleLines = ImageDrawCircleLines
/**
- * Get hexadecimal value for a Color
+ * Draw circle outline within an image (Vector version)
*
+ * @param {number} dst
+ * @param {Vector2} center
+ * @param {number} radius
* @param {Color} color
*
- * @return {number} The resulting int.
+ * @return {undefined}
*/
-function ColorToInt (color) {
- return r.BindColorToInt(
+function ImageDrawCircleLinesV(dst, center, radius, color) {
+ return r.BindImageDrawCircleLinesV(
+ dst,
+ center.x,
+ center.y,
+ radius,
color.r,
color.g,
color.b,
color.a
)
}
-raylib.ColorToInt = ColorToInt
+raylib.ImageDrawCircleLinesV = ImageDrawCircleLinesV
/**
- * Get Color normalized as float [0..1]
+ * Load texture from file into GPU memory (VRAM)
*
- * @param {Color} color
+ * @param {string} fileName
*
- * @return {Vector4} The resulting Vector4.
+ * @return {Texture2D} The resulting Texture2D.
*/
-function ColorNormalize (color) {
- return r.BindColorNormalize(
- color.r,
- color.g,
- color.b,
- color.a
+function LoadTexture(fileName) {
+ return r.BindLoadTexture(
+ fileName
)
}
-raylib.ColorNormalize = ColorNormalize
+raylib.LoadTexture = LoadTexture
/**
- * Get Color from normalized values [0..1]
+ * Load texture from image data
*
- * @param {Vector4} normalized
+ * @param {Image} image
*
- * @return {Color} The resulting Color.
+ * @return {Texture2D} The resulting Texture2D.
*/
-function ColorFromNormalized (normalized) {
- return r.BindColorFromNormalized(
- normalized.x,
- normalized.y,
- normalized.z,
- normalized.w
+function LoadTextureFromImage(image) {
+ return r.BindLoadTextureFromImage(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
)
}
-raylib.ColorFromNormalized = ColorFromNormalized
+raylib.LoadTextureFromImage = LoadTextureFromImage
/**
- * Get HSV values for a Color, hue [0..360], saturation/value [0..1]
+ * Load cubemap from image, multiple image cubemap layouts supported
*
- * @param {Color} color
+ * @param {Image} image
+ * @param {number} layout
*
- * @return {Vector3} The resulting Vector3.
+ * @return {TextureCubemap} The resulting TextureCubemap.
*/
-function ColorToHSV (color) {
- return r.BindColorToHSV(
- color.r,
- color.g,
- color.b,
- color.a
+function LoadTextureCubemap(image, layout) {
+ return r.BindLoadTextureCubemap(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ layout
)
}
-raylib.ColorToHSV = ColorToHSV
+raylib.LoadTextureCubemap = LoadTextureCubemap
/**
- * Get a Color from HSV values, hue [0..360], saturation/value [0..1]
+ * Load texture for rendering (framebuffer)
*
- * @param {number} hue
- * @param {number} saturation
- * @param {number} value
+ * @param {number} width
+ * @param {number} height
*
- * @return {Color} The resulting Color.
+ * @return {RenderTexture2D} The resulting RenderTexture2D.
*/
-function ColorFromHSV (hue, saturation, value) {
- return r.BindColorFromHSV(
- hue,
- saturation,
- value
+function LoadRenderTexture(width, height) {
+ return r.BindLoadRenderTexture(
+ width,
+ height
)
}
-raylib.ColorFromHSV = ColorFromHSV
+raylib.LoadRenderTexture = LoadRenderTexture
/**
- * Get color multiplied with another color
+ * Check if a texture is ready
*
- * @param {Color} color
- * @param {Color} tint
+ * @param {Texture} texture
*
- * @return {Color} The resulting Color.
+ * @return {boolean} The resulting bool.
*/
-function ColorTint (color, tint) {
- return r.BindColorTint(
- color.r,
- color.g,
- color.b,
- color.a,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function IsTextureReady(texture) {
+ return r.BindIsTextureReady(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format
)
}
-raylib.ColorTint = ColorTint
+raylib.IsTextureReady = IsTextureReady
/**
- * Get color with brightness correction, brightness factor goes from -1.0f to 1.0f
+ * Unload texture from GPU memory (VRAM)
*
- * @param {Color} color
- * @param {number} factor
+ * @param {Texture} texture
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function ColorBrightness (color, factor) {
- return r.BindColorBrightness(
- color.r,
- color.g,
- color.b,
- color.a,
- factor
+function UnloadTexture(texture) {
+ return r.BindUnloadTexture(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format
)
}
-raylib.ColorBrightness = ColorBrightness
+raylib.UnloadTexture = UnloadTexture
/**
- * Get color with contrast correction, contrast values between -1.0f and 1.0f
+ * Check if a render texture is ready
*
- * @param {Color} color
- * @param {number} contrast
+ * @param {RenderTexture} target
*
- * @return {Color} The resulting Color.
+ * @return {boolean} The resulting bool.
*/
-function ColorContrast (color, contrast) {
- return r.BindColorContrast(
- color.r,
- color.g,
- color.b,
- color.a,
- contrast
+function IsRenderTextureReady(target) {
+ return r.BindIsRenderTextureReady(
+ target.id,
+ target.texture.id,
+ target.texture.width,
+ target.texture.height,
+ target.texture.mipmaps,
+ target.texture.format,
+ target.depth.id,
+ target.depth.width,
+ target.depth.height,
+ target.depth.mipmaps,
+ target.depth.format
)
}
-raylib.ColorContrast = ColorContrast
+raylib.IsRenderTextureReady = IsRenderTextureReady
/**
- * Get color with alpha applied, alpha goes from 0.0f to 1.0f
+ * Unload render texture from GPU memory (VRAM)
*
- * @param {Color} color
- * @param {number} alpha
+ * @param {RenderTexture} target
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function ColorAlpha (color, alpha) {
- return r.BindColorAlpha(
- color.r,
- color.g,
- color.b,
- color.a,
- alpha
+function UnloadRenderTexture(target) {
+ return r.BindUnloadRenderTexture(
+ target.id,
+ target.texture.id,
+ target.texture.width,
+ target.texture.height,
+ target.texture.mipmaps,
+ target.texture.format,
+ target.depth.id,
+ target.depth.width,
+ target.depth.height,
+ target.depth.mipmaps,
+ target.depth.format
)
}
-raylib.ColorAlpha = ColorAlpha
+raylib.UnloadRenderTexture = UnloadRenderTexture
/**
- * Get src alpha-blended into dst color with tint
+ * Update GPU texture with new data
*
- * @param {Color} dst
- * @param {Color} src
- * @param {Color} tint
+ * @param {Texture} texture
+ * @param {number} pixels
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function ColorAlphaBlend (dst, src, tint) {
- return r.BindColorAlphaBlend(
- dst.r,
- dst.g,
- dst.b,
- dst.a,
- src.r,
- src.g,
- src.b,
- src.a,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function UpdateTexture(texture, pixels) {
+ return r.BindUpdateTexture(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ pixels
)
}
-raylib.ColorAlphaBlend = ColorAlphaBlend
+raylib.UpdateTexture = UpdateTexture
/**
- * Get Color structure from hexadecimal value
+ * Update GPU texture rectangle with new data
*
- * @param {number} hexValue
+ * @param {Texture} texture
+ * @param {Rectangle} rec
+ * @param {number} pixels
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function GetColor (hexValue) {
- return r.BindGetColor(
- hexValue
+function UpdateTextureRec(texture, rec, pixels) {
+ return r.BindUpdateTextureRec(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height,
+ pixels
)
}
-raylib.GetColor = GetColor
+raylib.UpdateTextureRec = UpdateTextureRec
/**
- * Get Color from a source pixel pointer of certain format
+ * Set texture scaling filter mode
*
- * @param {number} srcPtr
- * @param {number} format
+ * @param {Texture} texture
+ * @param {number} filter
*
- * @return {Color} The resulting Color.
+ * @return {undefined}
*/
-function GetPixelColor (srcPtr, format) {
- return r.BindGetPixelColor(
- srcPtr,
- format
+function SetTextureFilter(texture, filter) {
+ return r.BindSetTextureFilter(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ filter
)
}
-raylib.GetPixelColor = GetPixelColor
+raylib.SetTextureFilter = SetTextureFilter
/**
- * Set color formatted into destination pixel pointer
+ * Set texture wrapping mode
*
- * @param {number} dstPtr
- * @param {Color} color
- * @param {number} format
+ * @param {Texture} texture
+ * @param {number} wrap
*
* @return {undefined}
*/
-function SetPixelColor (dstPtr, color, format) {
- return r.BindSetPixelColor(
- dstPtr,
- color.r,
- color.g,
- color.b,
- color.a,
- format
+function SetTextureWrap(texture, wrap) {
+ return r.BindSetTextureWrap(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ wrap
)
}
-raylib.SetPixelColor = SetPixelColor
+raylib.SetTextureWrap = SetTextureWrap
/**
- * Get pixel data size in bytes for certain format
+ * Draw a Texture2D
*
- * @param {number} width
- * @param {number} height
- * @param {number} format
+ * @param {Texture} texture
+ * @param {number} posX
+ * @param {number} posY
+ * @param {Color} tint
*
- * @return {number} The resulting int.
+ * @return {undefined}
*/
-function GetPixelDataSize (width, height, format) {
- return r.BindGetPixelDataSize(
- width,
- height,
- format
+function DrawTexture(texture, posX, posY, tint) {
+ return r.BindDrawTexture(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ posX,
+ posY,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.GetPixelDataSize = GetPixelDataSize
+raylib.DrawTexture = DrawTexture
/**
- * Get the default Font
+ * Draw a Texture2D with position defined as Vector2
*
- * @return {Font} The resulting Font.
+ * @param {Texture} texture
+ * @param {Vector2} position
+ * @param {Color} tint
+ *
+ * @return {undefined}
*/
-function GetFontDefault () {
- return r.BindGetFontDefault()
+function DrawTextureV(texture, position, tint) {
+ return r.BindDrawTextureV(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ position.x,
+ position.y,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
+ )
}
-raylib.GetFontDefault = GetFontDefault
+raylib.DrawTextureV = DrawTextureV
/**
- * Load font from file into GPU memory (VRAM)
+ * Draw a Texture2D with extended parameters
*
- * @param {string} fileName
+ * @param {Texture} texture
+ * @param {Vector2} position
+ * @param {number} rotation
+ * @param {number} scale
+ * @param {Color} tint
*
- * @return {Font} The resulting Font.
+ * @return {undefined}
*/
-function LoadFont (fileName) {
- return r.BindLoadFont(
- fileName
+function DrawTextureEx(texture, position, rotation, scale, tint) {
+ return r.BindDrawTextureEx(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ position.x,
+ position.y,
+ rotation,
+ scale,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.LoadFont = LoadFont
+raylib.DrawTextureEx = DrawTextureEx
/**
- * Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set
+ * Draw a part of a texture defined by a rectangle
*
- * @param {string} fileName
- * @param {number} fontSize
- * @param {number} fontChars
- * @param {number} glyphCount
+ * @param {Texture} texture
+ * @param {Rectangle} source
+ * @param {Vector2} position
+ * @param {Color} tint
*
- * @return {Font} The resulting Font.
+ * @return {undefined}
*/
-function LoadFontEx (fileName, fontSize, fontChars, glyphCount) {
- return r.BindLoadFontEx(
- fileName,
- fontSize,
- fontChars,
- glyphCount
+function DrawTextureRec(texture, source, position, tint) {
+ return r.BindDrawTextureRec(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ source.x,
+ source.y,
+ source.width,
+ source.height,
+ position.x,
+ position.y,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.LoadFontEx = LoadFontEx
+raylib.DrawTextureRec = DrawTextureRec
/**
- * Load font from Image (XNA style)
+ * Draw a part of a texture defined by a rectangle with 'pro' parameters
*
- * @param {Image} image
- * @param {Color} key
- * @param {number} firstChar
+ * @param {Texture} texture
+ * @param {Rectangle} source
+ * @param {Rectangle} dest
+ * @param {Vector2} origin
+ * @param {number} rotation
+ * @param {Color} tint
*
- * @return {Font} The resulting Font.
+ * @return {undefined}
*/
-function LoadFontFromImage (image, key, firstChar) {
- return r.BindLoadFontFromImage(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- key.r,
- key.g,
- key.b,
- key.a,
- firstChar
+function DrawTexturePro(texture, source, dest, origin, rotation, tint) {
+ return r.BindDrawTexturePro(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ source.x,
+ source.y,
+ source.width,
+ source.height,
+ dest.x,
+ dest.y,
+ dest.width,
+ dest.height,
+ origin.x,
+ origin.y,
+ rotation,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.LoadFontFromImage = LoadFontFromImage
+raylib.DrawTexturePro = DrawTexturePro
/**
- * Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
+ * Draws a texture (or part of it) that stretches or shrinks nicely
*
- * @param {string} fileType
- * @param {Buffer} fileData
- * @param {number} dataSize
- * @param {number} fontSize
- * @param {number} fontChars
- * @param {number} glyphCount
+ * @param {Texture} texture
+ * @param {NPatchInfo} nPatchInfo
+ * @param {Rectangle} dest
+ * @param {Vector2} origin
+ * @param {number} rotation
+ * @param {Color} tint
*
- * @return {Font} The resulting Font.
+ * @return {undefined}
*/
-function LoadFontFromMemory (fileType, fileData, dataSize, fontSize, fontChars, glyphCount) {
- return r.BindLoadFontFromMemory(
- fileType,
- fileData,
- dataSize,
- fontSize,
- fontChars,
- glyphCount
+function DrawTextureNPatch(texture, nPatchInfo, dest, origin, rotation, tint) {
+ return r.BindDrawTextureNPatch(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ nPatchInfo.source.x,
+ nPatchInfo.source.y,
+ nPatchInfo.source.width,
+ nPatchInfo.source.height,
+ nPatchInfo.left,
+ nPatchInfo.top,
+ nPatchInfo.right,
+ nPatchInfo.bottom,
+ nPatchInfo.layout,
+ dest.x,
+ dest.y,
+ dest.width,
+ dest.height,
+ origin.x,
+ origin.y,
+ rotation,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.LoadFontFromMemory = LoadFontFromMemory
+raylib.DrawTextureNPatch = DrawTextureNPatch
/**
- * Check if a font is ready
+ * Get color with alpha applied, alpha goes from 0.0f to 1.0f
*
- * @param {Font} font
+ * @param {Color} color
+ * @param {number} alpha
*
- * @return {boolean} The resulting bool.
+ * @return {Color} The resulting Color.
*/
-function IsFontReady (font) {
- return r.BindIsFontReady(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs
+function Fade(color, alpha) {
+ return r.BindFade(
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ alpha
)
}
-raylib.IsFontReady = IsFontReady
+raylib.Fade = Fade
/**
- * Load font data for further use
+ * Get hexadecimal value for a Color
*
- * @param {Buffer} fileData
- * @param {number} dataSize
- * @param {number} fontSize
- * @param {number} fontChars
- * @param {number} glyphCount
- * @param {number} type
+ * @param {Color} color
*
- * @return {number} The resulting GlyphInfo *.
+ * @return {number} The resulting int.
*/
-function LoadFontData (fileData, dataSize, fontSize, fontChars, glyphCount, type) {
- return r.BindLoadFontData(
- fileData,
- dataSize,
- fontSize,
- fontChars,
- glyphCount,
- type
+function ColorToInt(color) {
+ return r.BindColorToInt(
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.LoadFontData = LoadFontData
+raylib.ColorToInt = ColorToInt
/**
- * Generate image font atlas using chars info
+ * Get Color normalized as float [0..1]
*
- * @param {number} chars
- * @param {number} recs
- * @param {number} glyphCount
- * @param {number} fontSize
- * @param {number} padding
- * @param {number} packMethod
+ * @param {Color} color
*
- * @return {Image} The resulting Image.
+ * @return {Vector4} The resulting Vector4.
*/
-function GenImageFontAtlas (chars, recs, glyphCount, fontSize, padding, packMethod) {
- return r.BindGenImageFontAtlas(
- chars,
- recs,
- glyphCount,
- fontSize,
- padding,
- packMethod
+function ColorNormalize(color) {
+ return r.BindColorNormalize(
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.GenImageFontAtlas = GenImageFontAtlas
+raylib.ColorNormalize = ColorNormalize
/**
- * Unload font chars info data (RAM)
+ * Get Color from normalized values [0..1]
*
- * @param {number} chars
- * @param {number} glyphCount
+ * @param {Vector4} normalized
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function UnloadFontData (chars, glyphCount) {
- return r.BindUnloadFontData(
- chars,
- glyphCount
+function ColorFromNormalized(normalized) {
+ return r.BindColorFromNormalized(
+ normalized.x,
+ normalized.y,
+ normalized.z,
+ normalized.w
)
}
-raylib.UnloadFontData = UnloadFontData
+raylib.ColorFromNormalized = ColorFromNormalized
/**
- * Unload font from GPU memory (VRAM)
+ * Get HSV values for a Color, hue [0..360], saturation/value [0..1]
*
- * @param {Font} font
+ * @param {Color} color
*
- * @return {undefined}
+ * @return {Vector3} The resulting Vector3.
*/
-function UnloadFont (font) {
- return r.BindUnloadFont(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs
+function ColorToHSV(color) {
+ return r.BindColorToHSV(
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.UnloadFont = UnloadFont
+raylib.ColorToHSV = ColorToHSV
/**
- * Export font as code file, returns true on success
+ * Get a Color from HSV values, hue [0..360], saturation/value [0..1]
*
- * @param {Font} font
- * @param {string} fileName
+ * @param {number} hue
+ * @param {number} saturation
+ * @param {number} value
*
- * @return {boolean} The resulting bool.
+ * @return {Color} The resulting Color.
*/
-function ExportFontAsCode (font, fileName) {
- return r.BindExportFontAsCode(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- fileName
+function ColorFromHSV(hue, saturation, value) {
+ return r.BindColorFromHSV(
+ hue,
+ saturation,
+ value
)
}
-raylib.ExportFontAsCode = ExportFontAsCode
+raylib.ColorFromHSV = ColorFromHSV
/**
- * Draw current FPS
+ * Get color multiplied with another color
*
- * @param {number} posX
- * @param {number} posY
+ * @param {Color} color
+ * @param {Color} tint
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawFPS (posX, posY) {
- return r.BindDrawFPS(
- posX,
- posY
+function ColorTint(color, tint) {
+ return r.BindColorTint(
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.DrawFPS = DrawFPS
+raylib.ColorTint = ColorTint
/**
- * Draw text (using default font)
+ * Get color with brightness correction, brightness factor goes from -1.0f to 1.0f
*
- * @param {string} text
- * @param {number} posX
- * @param {number} posY
- * @param {number} fontSize
* @param {Color} color
+ * @param {number} factor
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawText (text, posX, posY, fontSize, color) {
- return r.BindDrawText(
- text,
- posX,
- posY,
- fontSize,
+function ColorBrightness(color, factor) {
+ return r.BindColorBrightness(
color.r,
color.g,
color.b,
- color.a
+ color.a,
+ factor
)
}
-raylib.DrawText = DrawText
+raylib.ColorBrightness = ColorBrightness
/**
- * Draw text using font and additional parameters
+ * Get color with contrast correction, contrast values between -1.0f and 1.0f
*
- * @param {Font} font
- * @param {string} text
- * @param {Vector2} position
- * @param {number} fontSize
- * @param {number} spacing
- * @param {Color} tint
+ * @param {Color} color
+ * @param {number} contrast
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawTextEx (font, text, position, fontSize, spacing, tint) {
- return r.BindDrawTextEx(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- text,
- position.x,
- position.y,
- fontSize,
- spacing,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function ColorContrast(color, contrast) {
+ return r.BindColorContrast(
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ contrast
)
}
-raylib.DrawTextEx = DrawTextEx
+raylib.ColorContrast = ColorContrast
/**
- * Draw text using Font and pro parameters (rotation)
+ * Get color with alpha applied, alpha goes from 0.0f to 1.0f
*
- * @param {Font} font
- * @param {string} text
- * @param {Vector2} position
- * @param {Vector2} origin
- * @param {number} rotation
- * @param {number} fontSize
- * @param {number} spacing
- * @param {Color} tint
+ * @param {Color} color
+ * @param {number} alpha
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawTextPro (font, text, position, origin, rotation, fontSize, spacing, tint) {
- return r.BindDrawTextPro(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- text,
- position.x,
- position.y,
- origin.x,
- origin.y,
- rotation,
- fontSize,
- spacing,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function ColorAlpha(color, alpha) {
+ return r.BindColorAlpha(
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ alpha
)
}
-raylib.DrawTextPro = DrawTextPro
+raylib.ColorAlpha = ColorAlpha
/**
- * Draw one character (codepoint)
+ * Get src alpha-blended into dst color with tint
*
- * @param {Font} font
- * @param {number} codepoint
- * @param {Vector2} position
- * @param {number} fontSize
+ * @param {Color} dst
+ * @param {Color} src
* @param {Color} tint
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawTextCodepoint (font, codepoint, position, fontSize, tint) {
- return r.BindDrawTextCodepoint(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- codepoint,
- position.x,
- position.y,
- fontSize,
+function ColorAlphaBlend(dst, src, tint) {
+ return r.BindColorAlphaBlend(
+ dst.r,
+ dst.g,
+ dst.b,
+ dst.a,
+ src.r,
+ src.g,
+ src.b,
+ src.a,
tint.r,
tint.g,
tint.b,
tint.a
)
}
-raylib.DrawTextCodepoint = DrawTextCodepoint
+raylib.ColorAlphaBlend = ColorAlphaBlend
/**
- * Draw multiple character (codepoint)
+ * Get Color structure from hexadecimal value
*
- * @param {Font} font
- * @param {number} codepoints
- * @param {number} count
- * @param {Vector2} position
- * @param {number} fontSize
- * @param {number} spacing
- * @param {Color} tint
+ * @param {number} hexValue
*
- * @return {undefined}
+ * @return {Color} The resulting Color.
*/
-function DrawTextCodepoints (font, codepoints, count, position, fontSize, spacing, tint) {
- return r.BindDrawTextCodepoints(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- codepoints,
- count,
- position.x,
- position.y,
- fontSize,
- spacing,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function GetColor(hexValue) {
+ return r.BindGetColor(
+ hexValue
)
}
-raylib.DrawTextCodepoints = DrawTextCodepoints
+raylib.GetColor = GetColor
/**
- * Measure string width for default font
+ * Get Color from a source pixel pointer of certain format
*
- * @param {string} text
- * @param {number} fontSize
+ * @param {number} srcPtr
+ * @param {number} format
*
- * @return {number} The resulting int.
+ * @return {Color} The resulting Color.
*/
-function MeasureText (text, fontSize) {
- return r.BindMeasureText(
- text,
- fontSize
+function GetPixelColor(srcPtr, format) {
+ return r.BindGetPixelColor(
+ srcPtr,
+ format
)
}
-raylib.MeasureText = MeasureText
+raylib.GetPixelColor = GetPixelColor
/**
- * Measure string size for Font
+ * Set color formatted into destination pixel pointer
*
- * @param {Font} font
- * @param {string} text
- * @param {number} fontSize
- * @param {number} spacing
+ * @param {number} dstPtr
+ * @param {Color} color
+ * @param {number} format
*
- * @return {Vector2} The resulting Vector2.
+ * @return {undefined}
*/
-function MeasureTextEx (font, text, fontSize, spacing) {
- return r.BindMeasureTextEx(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- text,
- fontSize,
- spacing
+function SetPixelColor(dstPtr, color, format) {
+ return r.BindSetPixelColor(
+ dstPtr,
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ format
)
}
-raylib.MeasureTextEx = MeasureTextEx
+raylib.SetPixelColor = SetPixelColor
/**
- * Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found
+ * Get pixel data size in bytes for certain format
*
- * @param {Font} font
- * @param {number} codepoint
+ * @param {number} width
+ * @param {number} height
+ * @param {number} format
*
* @return {number} The resulting int.
*/
-function GetGlyphIndex (font, codepoint) {
- return r.BindGetGlyphIndex(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- codepoint
+function GetPixelDataSize(width, height, format) {
+ return r.BindGetPixelDataSize(
+ width,
+ height,
+ format
)
}
-raylib.GetGlyphIndex = GetGlyphIndex
+raylib.GetPixelDataSize = GetPixelDataSize
/**
- * Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found
- *
- * @param {Font} font
- * @param {number} codepoint
+ * Get the default Font
*
- * @return {GlyphInfo} The resulting GlyphInfo.
+ * @return {Font} The resulting Font.
*/
-function GetGlyphInfo (font, codepoint) {
- return r.BindGetGlyphInfo(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- codepoint
- )
+function GetFontDefault() {
+ return r.BindGetFontDefault()
}
-raylib.GetGlyphInfo = GetGlyphInfo
+raylib.GetFontDefault = GetFontDefault
/**
- * Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found
+ * Load font from file into GPU memory (VRAM)
*
- * @param {Font} font
- * @param {number} codepoint
+ * @param {string} fileName
*
- * @return {Rectangle} The resulting Rectangle.
+ * @return {Font} The resulting Font.
*/
-function GetGlyphAtlasRec (font, codepoint) {
- return r.BindGetGlyphAtlasRec(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- codepoint
+function LoadFont(fileName) {
+ return r.BindLoadFont(
+ fileName
)
}
-raylib.GetGlyphAtlasRec = GetGlyphAtlasRec
+raylib.LoadFont = LoadFont
/**
- * Load UTF-8 text encoded from codepoints array
+ * Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set
*
+ * @param {string} fileName
+ * @param {number} fontSize
* @param {number} codepoints
- * @param {number} length
+ * @param {number} codepointCount
*
- * @return {string} The resulting char *.
+ * @return {Font} The resulting Font.
*/
-function LoadUTF8 (codepoints, length) {
- return r.BindLoadUTF8(
+function LoadFontEx(fileName, fontSize, codepoints, codepointCount) {
+ return r.BindLoadFontEx(
+ fileName,
+ fontSize,
codepoints,
- length
+ codepointCount
)
}
-raylib.LoadUTF8 = LoadUTF8
-
-/**
- * Unload UTF-8 text encoded from codepoints array
- *
- * @param {string} text
- *
- * @return {undefined}
- */
-function UnloadUTF8 (text) {
- return r.BindUnloadUTF8(
- text
- )
-}
-raylib.UnloadUTF8 = UnloadUTF8
+raylib.LoadFontEx = LoadFontEx
/**
- * Load all codepoints from a UTF-8 text string, codepoints count returned by parameter
+ * Load font from Image (XNA style)
*
- * @param {string} text
- * @param {number} count
+ * @param {Image} image
+ * @param {Color} key
+ * @param {number} firstChar
*
- * @return {number} The resulting int *.
+ * @return {Font} The resulting Font.
*/
-function LoadCodepoints (text, count) {
- return r.BindLoadCodepoints(
- text,
- count
+function LoadFontFromImage(image, key, firstChar) {
+ return r.BindLoadFontFromImage(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ key.r,
+ key.g,
+ key.b,
+ key.a,
+ firstChar
)
}
-raylib.LoadCodepoints = LoadCodepoints
+raylib.LoadFontFromImage = LoadFontFromImage
/**
- * Unload codepoints data from memory
+ * Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
*
+ * @param {string} fileType
+ * @param {Buffer} fileData
+ * @param {number} dataSize
+ * @param {number} fontSize
* @param {number} codepoints
+ * @param {number} codepointCount
*
- * @return {undefined}
+ * @return {Font} The resulting Font.
*/
-function UnloadCodepoints (codepoints) {
- return r.BindUnloadCodepoints(
- codepoints
+function LoadFontFromMemory(fileType, fileData, dataSize, fontSize, codepoints, codepointCount) {
+ return r.BindLoadFontFromMemory(
+ fileType,
+ fileData,
+ dataSize,
+ fontSize,
+ codepoints,
+ codepointCount
)
}
-raylib.UnloadCodepoints = UnloadCodepoints
+raylib.LoadFontFromMemory = LoadFontFromMemory
/**
- * Get total number of codepoints in a UTF-8 encoded string
+ * Check if a font is ready
*
- * @param {string} text
+ * @param {Font} font
*
- * @return {number} The resulting int.
+ * @return {boolean} The resulting bool.
*/
-function GetCodepointCount (text) {
- return r.BindGetCodepointCount(
- text
+function IsFontReady(font) {
+ return r.BindIsFontReady(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs
)
}
-raylib.GetCodepointCount = GetCodepointCount
+raylib.IsFontReady = IsFontReady
/**
- * Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
+ * Load font data for further use
*
- * @param {string} text
- * @param {number} codepointSize
+ * @param {Buffer} fileData
+ * @param {number} dataSize
+ * @param {number} fontSize
+ * @param {number} codepoints
+ * @param {number} codepointCount
+ * @param {number} type
*
- * @return {number} The resulting int.
+ * @return {number} The resulting GlyphInfo *.
*/
-function GetCodepoint (text, codepointSize) {
- return r.BindGetCodepoint(
- text,
- codepointSize
+function LoadFontData(fileData, dataSize, fontSize, codepoints, codepointCount, type) {
+ return r.BindLoadFontData(
+ fileData,
+ dataSize,
+ fontSize,
+ codepoints,
+ codepointCount,
+ type
)
}
-raylib.GetCodepoint = GetCodepoint
+raylib.LoadFontData = LoadFontData
/**
- * Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
+ * Generate image font atlas using chars info
*
- * @param {string} text
- * @param {number} codepointSize
+ * @param {number} glyphs
+ * @param {number} glyphRecs
+ * @param {number} glyphCount
+ * @param {number} fontSize
+ * @param {number} padding
+ * @param {number} packMethod
*
- * @return {number} The resulting int.
+ * @return {Image} The resulting Image.
*/
-function GetCodepointNext (text, codepointSize) {
- return r.BindGetCodepointNext(
- text,
- codepointSize
+function GenImageFontAtlas(glyphs, glyphRecs, glyphCount, fontSize, padding, packMethod) {
+ return r.BindGenImageFontAtlas(
+ glyphs,
+ glyphRecs,
+ glyphCount,
+ fontSize,
+ padding,
+ packMethod
)
}
-raylib.GetCodepointNext = GetCodepointNext
+raylib.GenImageFontAtlas = GenImageFontAtlas
/**
- * Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
+ * Unload font chars info data (RAM)
*
- * @param {string} text
- * @param {number} codepointSize
+ * @param {number} glyphs
+ * @param {number} glyphCount
*
- * @return {number} The resulting int.
+ * @return {undefined}
*/
-function GetCodepointPrevious (text, codepointSize) {
- return r.BindGetCodepointPrevious(
- text,
- codepointSize
+function UnloadFontData(glyphs, glyphCount) {
+ return r.BindUnloadFontData(
+ glyphs,
+ glyphCount
)
}
-raylib.GetCodepointPrevious = GetCodepointPrevious
+raylib.UnloadFontData = UnloadFontData
/**
- * Encode one codepoint into UTF-8 byte array (array length returned as parameter)
+ * Unload font from GPU memory (VRAM)
*
- * @param {number} codepoint
- * @param {number} utf8Size
+ * @param {Font} font
*
- * @return {string} The resulting const char *.
+ * @return {undefined}
*/
-function CodepointToUTF8 (codepoint, utf8Size) {
- return r.BindCodepointToUTF8(
- codepoint,
- utf8Size
+function UnloadFont(font) {
+ return r.BindUnloadFont(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs
)
}
-raylib.CodepointToUTF8 = CodepointToUTF8
+raylib.UnloadFont = UnloadFont
/**
- * Copy one string to another, returns bytes copied
+ * Export font as code file, returns true on success
*
- * @param {string} dst
- * @param {string} src
+ * @param {Font} font
+ * @param {string} fileName
*
- * @return {number} The resulting int.
+ * @return {boolean} The resulting bool.
*/
-function TextCopy (dst, src) {
- return r.BindTextCopy(
- dst,
- src
+function ExportFontAsCode(font, fileName) {
+ return r.BindExportFontAsCode(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ fileName
)
}
-raylib.TextCopy = TextCopy
+raylib.ExportFontAsCode = ExportFontAsCode
/**
- * Check if two text string are equal
+ * Draw current FPS
*
- * @param {string} text1
- * @param {string} text2
+ * @param {number} posX
+ * @param {number} posY
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function TextIsEqual (text1, text2) {
- return r.BindTextIsEqual(
- text1,
- text2
+function DrawFPS(posX, posY) {
+ return r.BindDrawFPS(
+ posX,
+ posY
)
}
-raylib.TextIsEqual = TextIsEqual
+raylib.DrawFPS = DrawFPS
/**
- * Get text length, checks for '\0' ending
+ * Draw text (using default font)
*
* @param {string} text
+ * @param {number} posX
+ * @param {number} posY
+ * @param {number} fontSize
+ * @param {Color} color
*
- * @return {number} The resulting unsigned int.
+ * @return {undefined}
*/
-function TextLength (text) {
- return r.BindTextLength(
- text
+function DrawText(text, posX, posY, fontSize, color) {
+ return r.BindDrawText(
+ text,
+ posX,
+ posY,
+ fontSize,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.TextLength = TextLength
+raylib.DrawText = DrawText
/**
- * Get a piece of a text string
+ * Draw text using font and additional parameters
*
+ * @param {Font} font
* @param {string} text
- * @param {number} position
- * @param {number} length
+ * @param {Vector2} position
+ * @param {number} fontSize
+ * @param {number} spacing
+ * @param {Color} tint
*
- * @return {string} The resulting const char *.
+ * @return {undefined}
*/
-function TextSubtext (text, position, length) {
- return r.BindTextSubtext(
+function DrawTextEx(font, text, position, fontSize, spacing, tint) {
+ return r.BindDrawTextEx(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
text,
- position,
- length
+ position.x,
+ position.y,
+ fontSize,
+ spacing,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.TextSubtext = TextSubtext
+raylib.DrawTextEx = DrawTextEx
/**
- * Replace text string (WARNING: memory must be freed!)
+ * Draw text using Font and pro parameters (rotation)
*
+ * @param {Font} font
* @param {string} text
- * @param {string} replace
- * @param {string} by
+ * @param {Vector2} position
+ * @param {Vector2} origin
+ * @param {number} rotation
+ * @param {number} fontSize
+ * @param {number} spacing
+ * @param {Color} tint
*
- * @return {string} The resulting char *.
+ * @return {undefined}
*/
-function TextReplace (text, replace, by) {
- return r.BindTextReplace(
+function DrawTextPro(font, text, position, origin, rotation, fontSize, spacing, tint) {
+ return r.BindDrawTextPro(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
text,
- replace,
- by
+ position.x,
+ position.y,
+ origin.x,
+ origin.y,
+ rotation,
+ fontSize,
+ spacing,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.TextReplace = TextReplace
+raylib.DrawTextPro = DrawTextPro
/**
- * Insert text in a position (WARNING: memory must be freed!)
+ * Draw one character (codepoint)
*
- * @param {string} text
- * @param {string} insert
- * @param {number} position
+ * @param {Font} font
+ * @param {number} codepoint
+ * @param {Vector2} position
+ * @param {number} fontSize
+ * @param {Color} tint
*
- * @return {string} The resulting char *.
+ * @return {undefined}
*/
-function TextInsert (text, insert, position) {
- return r.BindTextInsert(
- text,
- insert,
- position
+function DrawTextCodepoint(font, codepoint, position, fontSize, tint) {
+ return r.BindDrawTextCodepoint(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ codepoint,
+ position.x,
+ position.y,
+ fontSize,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.TextInsert = TextInsert
+raylib.DrawTextCodepoint = DrawTextCodepoint
/**
- * Join text strings with delimiter
+ * Draw multiple character (codepoint)
*
- * @param {number} textList
- * @param {number} count
- * @param {string} delimiter
+ * @param {Font} font
+ * @param {number} codepoints
+ * @param {number} codepointCount
+ * @param {Vector2} position
+ * @param {number} fontSize
+ * @param {number} spacing
+ * @param {Color} tint
*
- * @return {string} The resulting const char *.
+ * @return {undefined}
*/
-function TextJoin (textList, count, delimiter) {
- return r.BindTextJoin(
- textList,
- count,
- delimiter
+function DrawTextCodepoints(font, codepoints, codepointCount, position, fontSize, spacing, tint) {
+ return r.BindDrawTextCodepoints(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ codepoints,
+ codepointCount,
+ position.x,
+ position.y,
+ fontSize,
+ spacing,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.TextJoin = TextJoin
+raylib.DrawTextCodepoints = DrawTextCodepoints
/**
- * Split text into multiple strings
+ * Set vertical line spacing when drawing with line-breaks
*
- * @param {string} text
- * @param {string} delimiter
- * @param {number} count
+ * @param {number} spacing
*
- * @return {number} The resulting const char **.
+ * @return {undefined}
*/
-function TextSplit (text, delimiter, count) {
- return r.BindTextSplit(
- text,
- delimiter,
- count
+function SetTextLineSpacing(spacing) {
+ return r.BindSetTextLineSpacing(
+ spacing
)
}
-raylib.TextSplit = TextSplit
+raylib.SetTextLineSpacing = SetTextLineSpacing
/**
- * Append text at specific position and move cursor!
+ * Measure string width for default font
*
* @param {string} text
- * @param {string} append
- * @param {number} position
+ * @param {number} fontSize
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function TextAppend (text, append, position) {
- return r.BindTextAppend(
+function MeasureText(text, fontSize) {
+ return r.BindMeasureText(
text,
- append,
- position
+ fontSize
)
}
-raylib.TextAppend = TextAppend
+raylib.MeasureText = MeasureText
/**
- * Find first text occurrence within a string
+ * Measure string size for Font
*
+ * @param {Font} font
* @param {string} text
- * @param {string} find
+ * @param {number} fontSize
+ * @param {number} spacing
*
- * @return {number} The resulting int.
+ * @return {Vector2} The resulting Vector2.
*/
-function TextFindIndex (text, find) {
- return r.BindTextFindIndex(
+function MeasureTextEx(font, text, fontSize, spacing) {
+ return r.BindMeasureTextEx(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
text,
- find
+ fontSize,
+ spacing
)
}
-raylib.TextFindIndex = TextFindIndex
+raylib.MeasureTextEx = MeasureTextEx
/**
- * Get upper case version of provided string
+ * Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found
*
- * @param {string} text
+ * @param {Font} font
+ * @param {number} codepoint
*
- * @return {string} The resulting const char *.
+ * @return {number} The resulting int.
*/
-function TextToUpper (text) {
- return r.BindTextToUpper(
- text
+function GetGlyphIndex(font, codepoint) {
+ return r.BindGetGlyphIndex(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ codepoint
)
}
-raylib.TextToUpper = TextToUpper
+raylib.GetGlyphIndex = GetGlyphIndex
/**
- * Get lower case version of provided string
+ * Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found
*
- * @param {string} text
+ * @param {Font} font
+ * @param {number} codepoint
*
- * @return {string} The resulting const char *.
+ * @return {GlyphInfo} The resulting GlyphInfo.
*/
-function TextToLower (text) {
- return r.BindTextToLower(
- text
+function GetGlyphInfo(font, codepoint) {
+ return r.BindGetGlyphInfo(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ codepoint
)
}
-raylib.TextToLower = TextToLower
+raylib.GetGlyphInfo = GetGlyphInfo
/**
- * Get Pascal case notation version of provided string
+ * Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found
*
- * @param {string} text
+ * @param {Font} font
+ * @param {number} codepoint
*
- * @return {string} The resulting const char *.
+ * @return {Rectangle} The resulting Rectangle.
*/
-function TextToPascal (text) {
- return r.BindTextToPascal(
- text
- )
-}
-raylib.TextToPascal = TextToPascal
+function GetGlyphAtlasRec(font, codepoint) {
+ return r.BindGetGlyphAtlasRec(
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ codepoint
+ )
+}
+raylib.GetGlyphAtlasRec = GetGlyphAtlasRec
/**
- * Get integer value from text (negative values not supported)
+ * Load UTF-8 text encoded from codepoints array
*
- * @param {string} text
+ * @param {number} codepoints
+ * @param {number} length
*
- * @return {number} The resulting int.
+ * @return {string} The resulting char *.
*/
-function TextToInteger (text) {
- return r.BindTextToInteger(
- text
+function LoadUTF8(codepoints, length) {
+ return r.BindLoadUTF8(
+ codepoints,
+ length
)
}
-raylib.TextToInteger = TextToInteger
+raylib.LoadUTF8 = LoadUTF8
/**
- * Draw a line in 3D world space
+ * Unload UTF-8 text encoded from codepoints array
*
- * @param {Vector3} startPos
- * @param {Vector3} endPos
- * @param {Color} color
+ * @param {string} text
*
* @return {undefined}
*/
-function DrawLine3D (startPos, endPos, color) {
- return r.BindDrawLine3D(
- startPos.x,
- startPos.y,
- startPos.z,
- endPos.x,
- endPos.y,
- endPos.z,
- color.r,
- color.g,
- color.b,
- color.a
+function UnloadUTF8(text) {
+ return r.BindUnloadUTF8(
+ text
)
}
-raylib.DrawLine3D = DrawLine3D
+raylib.UnloadUTF8 = UnloadUTF8
/**
- * Draw a point in 3D space, actually a small line
+ * Load all codepoints from a UTF-8 text string, codepoints count returned by parameter
*
- * @param {Vector3} position
- * @param {Color} color
+ * @param {string} text
+ * @param {number} count
*
- * @return {undefined}
+ * @return {number} The resulting int *.
*/
-function DrawPoint3D (position, color) {
- return r.BindDrawPoint3D(
- position.x,
- position.y,
- position.z,
- color.r,
- color.g,
- color.b,
- color.a
+function LoadCodepoints(text, count) {
+ return r.BindLoadCodepoints(
+ text,
+ count
)
}
-raylib.DrawPoint3D = DrawPoint3D
+raylib.LoadCodepoints = LoadCodepoints
/**
- * Draw a circle in 3D world space
+ * Unload codepoints data from memory
*
- * @param {Vector3} center
- * @param {number} radius
- * @param {Vector3} rotationAxis
- * @param {number} rotationAngle
- * @param {Color} color
+ * @param {number} codepoints
*
* @return {undefined}
*/
-function DrawCircle3D (center, radius, rotationAxis, rotationAngle, color) {
- return r.BindDrawCircle3D(
- center.x,
- center.y,
- center.z,
- radius,
- rotationAxis.x,
- rotationAxis.y,
- rotationAxis.z,
- rotationAngle,
- color.r,
- color.g,
- color.b,
- color.a
+function UnloadCodepoints(codepoints) {
+ return r.BindUnloadCodepoints(
+ codepoints
)
}
-raylib.DrawCircle3D = DrawCircle3D
+raylib.UnloadCodepoints = UnloadCodepoints
/**
- * Draw a color-filled triangle (vertex in counter-clockwise order!)
+ * Get total number of codepoints in a UTF-8 encoded string
*
- * @param {Vector3} v1
- * @param {Vector3} v2
- * @param {Vector3} v3
- * @param {Color} color
+ * @param {string} text
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawTriangle3D (v1, v2, v3, color) {
- return r.BindDrawTriangle3D(
- v1.x,
- v1.y,
- v1.z,
- v2.x,
- v2.y,
- v2.z,
- v3.x,
- v3.y,
- v3.z,
- color.r,
- color.g,
- color.b,
- color.a
+function GetCodepointCount(text) {
+ return r.BindGetCodepointCount(
+ text
)
}
-raylib.DrawTriangle3D = DrawTriangle3D
+raylib.GetCodepointCount = GetCodepointCount
/**
- * Draw a triangle strip defined by points
+ * Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
*
- * @param {number} points
- * @param {number} pointCount
- * @param {Color} color
+ * @param {string} text
+ * @param {number} codepointSize
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawTriangleStrip3D (points, pointCount, color) {
- return r.BindDrawTriangleStrip3D(
- points,
- pointCount,
- color.r,
- color.g,
- color.b,
- color.a
+function GetCodepoint(text, codepointSize) {
+ return r.BindGetCodepoint(
+ text,
+ codepointSize
)
}
-raylib.DrawTriangleStrip3D = DrawTriangleStrip3D
+raylib.GetCodepoint = GetCodepoint
/**
- * Draw cube
+ * Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
*
- * @param {Vector3} position
- * @param {number} width
- * @param {number} height
- * @param {number} length
- * @param {Color} color
+ * @param {string} text
+ * @param {number} codepointSize
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawCube (position, width, height, length, color) {
- return r.BindDrawCube(
- position.x,
- position.y,
- position.z,
- width,
- height,
- length,
- color.r,
- color.g,
- color.b,
- color.a
+function GetCodepointNext(text, codepointSize) {
+ return r.BindGetCodepointNext(
+ text,
+ codepointSize
)
}
-raylib.DrawCube = DrawCube
+raylib.GetCodepointNext = GetCodepointNext
/**
- * Draw cube (Vector version)
+ * Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
*
- * @param {Vector3} position
- * @param {Vector3} size
- * @param {Color} color
+ * @param {string} text
+ * @param {number} codepointSize
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawCubeV (position, size, color) {
- return r.BindDrawCubeV(
- position.x,
- position.y,
- position.z,
- size.x,
- size.y,
- size.z,
- color.r,
- color.g,
- color.b,
- color.a
+function GetCodepointPrevious(text, codepointSize) {
+ return r.BindGetCodepointPrevious(
+ text,
+ codepointSize
)
}
-raylib.DrawCubeV = DrawCubeV
+raylib.GetCodepointPrevious = GetCodepointPrevious
/**
- * Draw cube wires
+ * Encode one codepoint into UTF-8 byte array (array length returned as parameter)
*
- * @param {Vector3} position
- * @param {number} width
- * @param {number} height
- * @param {number} length
- * @param {Color} color
+ * @param {number} codepoint
+ * @param {number} utf8Size
*
- * @return {undefined}
+ * @return {string} The resulting const char *.
*/
-function DrawCubeWires (position, width, height, length, color) {
- return r.BindDrawCubeWires(
- position.x,
- position.y,
- position.z,
- width,
- height,
- length,
- color.r,
- color.g,
- color.b,
- color.a
+function CodepointToUTF8(codepoint, utf8Size) {
+ return r.BindCodepointToUTF8(
+ codepoint,
+ utf8Size
)
}
-raylib.DrawCubeWires = DrawCubeWires
+raylib.CodepointToUTF8 = CodepointToUTF8
/**
- * Draw cube wires (Vector version)
+ * Copy one string to another, returns bytes copied
*
- * @param {Vector3} position
- * @param {Vector3} size
- * @param {Color} color
+ * @param {string} dst
+ * @param {string} src
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawCubeWiresV (position, size, color) {
- return r.BindDrawCubeWiresV(
- position.x,
- position.y,
- position.z,
- size.x,
- size.y,
- size.z,
- color.r,
- color.g,
- color.b,
- color.a
+function TextCopy(dst, src) {
+ return r.BindTextCopy(
+ dst,
+ src
)
}
-raylib.DrawCubeWiresV = DrawCubeWiresV
+raylib.TextCopy = TextCopy
/**
- * Draw sphere
+ * Check if two text string are equal
*
- * @param {Vector3} centerPos
- * @param {number} radius
- * @param {Color} color
+ * @param {string} text1
+ * @param {string} text2
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function DrawSphere (centerPos, radius, color) {
- return r.BindDrawSphere(
- centerPos.x,
- centerPos.y,
- centerPos.z,
- radius,
- color.r,
- color.g,
- color.b,
- color.a
+function TextIsEqual(text1, text2) {
+ return r.BindTextIsEqual(
+ text1,
+ text2
)
}
-raylib.DrawSphere = DrawSphere
+raylib.TextIsEqual = TextIsEqual
/**
- * Draw sphere with extended parameters
+ * Get text length, checks for '\0' ending
*
- * @param {Vector3} centerPos
- * @param {number} radius
- * @param {number} rings
- * @param {number} slices
- * @param {Color} color
+ * @param {string} text
*
- * @return {undefined}
+ * @return {number} The resulting unsigned int.
*/
-function DrawSphereEx (centerPos, radius, rings, slices, color) {
- return r.BindDrawSphereEx(
- centerPos.x,
- centerPos.y,
- centerPos.z,
- radius,
- rings,
- slices,
- color.r,
- color.g,
- color.b,
- color.a
+function TextLength(text) {
+ return r.BindTextLength(
+ text
)
}
-raylib.DrawSphereEx = DrawSphereEx
+raylib.TextLength = TextLength
/**
- * Draw sphere wires
+ * Get a piece of a text string
*
- * @param {Vector3} centerPos
- * @param {number} radius
- * @param {number} rings
- * @param {number} slices
- * @param {Color} color
+ * @param {string} text
+ * @param {number} position
+ * @param {number} length
*
- * @return {undefined}
+ * @return {string} The resulting const char *.
*/
-function DrawSphereWires (centerPos, radius, rings, slices, color) {
- return r.BindDrawSphereWires(
- centerPos.x,
- centerPos.y,
- centerPos.z,
- radius,
- rings,
- slices,
- color.r,
- color.g,
- color.b,
- color.a
+function TextSubtext(text, position, length) {
+ return r.BindTextSubtext(
+ text,
+ position,
+ length
)
}
-raylib.DrawSphereWires = DrawSphereWires
+raylib.TextSubtext = TextSubtext
/**
- * Draw a cylinder/cone
+ * Replace text string (WARNING: memory must be freed!)
*
- * @param {Vector3} position
- * @param {number} radiusTop
- * @param {number} radiusBottom
- * @param {number} height
- * @param {number} slices
- * @param {Color} color
+ * @param {string} text
+ * @param {string} replace
+ * @param {string} by
*
- * @return {undefined}
+ * @return {string} The resulting char *.
*/
-function DrawCylinder (position, radiusTop, radiusBottom, height, slices, color) {
- return r.BindDrawCylinder(
- position.x,
- position.y,
- position.z,
- radiusTop,
- radiusBottom,
- height,
- slices,
- color.r,
- color.g,
- color.b,
- color.a
+function TextReplace(text, replace, by) {
+ return r.BindTextReplace(
+ text,
+ replace,
+ by
)
}
-raylib.DrawCylinder = DrawCylinder
+raylib.TextReplace = TextReplace
/**
- * Draw a cylinder with base at startPos and top at endPos
+ * Insert text in a position (WARNING: memory must be freed!)
*
- * @param {Vector3} startPos
- * @param {Vector3} endPos
- * @param {number} startRadius
- * @param {number} endRadius
- * @param {number} sides
- * @param {Color} color
+ * @param {string} text
+ * @param {string} insert
+ * @param {number} position
*
- * @return {undefined}
+ * @return {string} The resulting char *.
*/
-function DrawCylinderEx (startPos, endPos, startRadius, endRadius, sides, color) {
- return r.BindDrawCylinderEx(
- startPos.x,
- startPos.y,
- startPos.z,
- endPos.x,
- endPos.y,
- endPos.z,
- startRadius,
- endRadius,
- sides,
- color.r,
- color.g,
- color.b,
- color.a
+function TextInsert(text, insert, position) {
+ return r.BindTextInsert(
+ text,
+ insert,
+ position
)
}
-raylib.DrawCylinderEx = DrawCylinderEx
+raylib.TextInsert = TextInsert
/**
- * Draw a cylinder/cone wires
+ * Join text strings with delimiter
*
- * @param {Vector3} position
- * @param {number} radiusTop
- * @param {number} radiusBottom
- * @param {number} height
- * @param {number} slices
- * @param {Color} color
+ * @param {number} textList
+ * @param {number} count
+ * @param {string} delimiter
*
- * @return {undefined}
+ * @return {string} The resulting const char *.
*/
-function DrawCylinderWires (position, radiusTop, radiusBottom, height, slices, color) {
- return r.BindDrawCylinderWires(
- position.x,
- position.y,
- position.z,
- radiusTop,
- radiusBottom,
- height,
- slices,
- color.r,
- color.g,
- color.b,
- color.a
+function TextJoin(textList, count, delimiter) {
+ return r.BindTextJoin(
+ textList,
+ count,
+ delimiter
)
}
-raylib.DrawCylinderWires = DrawCylinderWires
+raylib.TextJoin = TextJoin
/**
- * Draw a cylinder wires with base at startPos and top at endPos
+ * Split text into multiple strings
*
- * @param {Vector3} startPos
- * @param {Vector3} endPos
- * @param {number} startRadius
- * @param {number} endRadius
- * @param {number} sides
- * @param {Color} color
+ * @param {string} text
+ * @param {string} delimiter
+ * @param {number} count
*
- * @return {undefined}
+ * @return {number} The resulting const char **.
*/
-function DrawCylinderWiresEx (startPos, endPos, startRadius, endRadius, sides, color) {
- return r.BindDrawCylinderWiresEx(
- startPos.x,
- startPos.y,
- startPos.z,
- endPos.x,
- endPos.y,
- endPos.z,
- startRadius,
- endRadius,
- sides,
- color.r,
- color.g,
- color.b,
- color.a
+function TextSplit(text, delimiter, count) {
+ return r.BindTextSplit(
+ text,
+ delimiter,
+ count
)
}
-raylib.DrawCylinderWiresEx = DrawCylinderWiresEx
+raylib.TextSplit = TextSplit
/**
- * Draw a capsule with the center of its sphere caps at startPos and endPos
+ * Append text at specific position and move cursor!
*
- * @param {Vector3} startPos
- * @param {Vector3} endPos
- * @param {number} radius
- * @param {number} slices
- * @param {number} rings
- * @param {Color} color
+ * @param {string} text
+ * @param {string} append
+ * @param {number} position
*
* @return {undefined}
*/
-function DrawCapsule (startPos, endPos, radius, slices, rings, color) {
- return r.BindDrawCapsule(
- startPos.x,
- startPos.y,
- startPos.z,
- endPos.x,
- endPos.y,
- endPos.z,
- radius,
- slices,
- rings,
- color.r,
- color.g,
- color.b,
- color.a
+function TextAppend(text, append, position) {
+ return r.BindTextAppend(
+ text,
+ append,
+ position
)
}
-raylib.DrawCapsule = DrawCapsule
+raylib.TextAppend = TextAppend
/**
- * Draw capsule wireframe with the center of its sphere caps at startPos and endPos
+ * Find first text occurrence within a string
*
- * @param {Vector3} startPos
- * @param {Vector3} endPos
- * @param {number} radius
- * @param {number} slices
- * @param {number} rings
- * @param {Color} color
+ * @param {string} text
+ * @param {string} find
*
- * @return {undefined}
+ * @return {number} The resulting int.
*/
-function DrawCapsuleWires (startPos, endPos, radius, slices, rings, color) {
- return r.BindDrawCapsuleWires(
- startPos.x,
- startPos.y,
- startPos.z,
- endPos.x,
- endPos.y,
- endPos.z,
- radius,
- slices,
- rings,
- color.r,
- color.g,
- color.b,
- color.a
- )
+function TextFindIndex(text, find) {
+ return r.BindTextFindIndex(
+ text,
+ find
+ )
}
-raylib.DrawCapsuleWires = DrawCapsuleWires
+raylib.TextFindIndex = TextFindIndex
/**
- * Draw a plane XZ
+ * Get upper case version of provided string
*
- * @param {Vector3} centerPos
- * @param {Vector2} size
+ * @param {string} text
+ *
+ * @return {string} The resulting const char *.
+ */
+function TextToUpper(text) {
+ return r.BindTextToUpper(
+ text
+ )
+}
+raylib.TextToUpper = TextToUpper
+
+/**
+ * Get lower case version of provided string
+ *
+ * @param {string} text
+ *
+ * @return {string} The resulting const char *.
+ */
+function TextToLower(text) {
+ return r.BindTextToLower(
+ text
+ )
+}
+raylib.TextToLower = TextToLower
+
+/**
+ * Get Pascal case notation version of provided string
+ *
+ * @param {string} text
+ *
+ * @return {string} The resulting const char *.
+ */
+function TextToPascal(text) {
+ return r.BindTextToPascal(
+ text
+ )
+}
+raylib.TextToPascal = TextToPascal
+
+/**
+ * Get integer value from text (negative values not supported)
+ *
+ * @param {string} text
+ *
+ * @return {number} The resulting int.
+ */
+function TextToInteger(text) {
+ return r.BindTextToInteger(
+ text
+ )
+}
+raylib.TextToInteger = TextToInteger
+
+/**
+ * Draw a line in 3D world space
+ *
+ * @param {Vector3} startPos
+ * @param {Vector3} endPos
* @param {Color} color
*
* @return {undefined}
*/
-function DrawPlane (centerPos, size, color) {
- return r.BindDrawPlane(
- centerPos.x,
- centerPos.y,
- centerPos.z,
- size.x,
- size.y,
+function DrawLine3D(startPos, endPos, color) {
+ return r.BindDrawLine3D(
+ startPos.x,
+ startPos.y,
+ startPos.z,
+ endPos.x,
+ endPos.y,
+ endPos.z,
color.r,
color.g,
color.b,
color.a
)
}
-raylib.DrawPlane = DrawPlane
+raylib.DrawLine3D = DrawLine3D
/**
- * Draw a ray line
+ * Draw a point in 3D space, actually a small line
*
- * @param {Ray} ray
+ * @param {Vector3} position
* @param {Color} color
*
* @return {undefined}
*/
-function DrawRay (ray, color) {
- return r.BindDrawRay(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
+function DrawPoint3D(position, color) {
+ return r.BindDrawPoint3D(
+ position.x,
+ position.y,
+ position.z,
color.r,
color.g,
color.b,
color.a
)
}
-raylib.DrawRay = DrawRay
+raylib.DrawPoint3D = DrawPoint3D
/**
- * Draw a grid (centered at (0, 0, 0))
+ * Draw a circle in 3D world space
*
- * @param {number} slices
- * @param {number} spacing
+ * @param {Vector3} center
+ * @param {number} radius
+ * @param {Vector3} rotationAxis
+ * @param {number} rotationAngle
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawGrid (slices, spacing) {
- return r.BindDrawGrid(
- slices,
- spacing
+function DrawCircle3D(center, radius, rotationAxis, rotationAngle, color) {
+ return r.BindDrawCircle3D(
+ center.x,
+ center.y,
+ center.z,
+ radius,
+ rotationAxis.x,
+ rotationAxis.y,
+ rotationAxis.z,
+ rotationAngle,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawGrid = DrawGrid
+raylib.DrawCircle3D = DrawCircle3D
/**
- * Load model from files (meshes and materials)
+ * Draw a color-filled triangle (vertex in counter-clockwise order!)
*
- * @param {string} fileName
+ * @param {Vector3} v1
+ * @param {Vector3} v2
+ * @param {Vector3} v3
+ * @param {Color} color
*
- * @return {Model} The resulting Model.
+ * @return {undefined}
*/
-function LoadModel (fileName) {
- return r.BindLoadModel(
- fileName
+function DrawTriangle3D(v1, v2, v3, color) {
+ return r.BindDrawTriangle3D(
+ v1.x,
+ v1.y,
+ v1.z,
+ v2.x,
+ v2.y,
+ v2.z,
+ v3.x,
+ v3.y,
+ v3.z,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.LoadModel = LoadModel
+raylib.DrawTriangle3D = DrawTriangle3D
/**
- * Load model from generated mesh (default material)
+ * Draw a triangle strip defined by points
*
- * @param {Mesh} mesh
+ * @param {number} points
+ * @param {number} pointCount
+ * @param {Color} color
*
- * @return {Model} The resulting Model.
+ * @return {undefined}
*/
-function LoadModelFromMesh (mesh) {
- return r.BindLoadModelFromMesh(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId
+function DrawTriangleStrip3D(points, pointCount, color) {
+ return r.BindDrawTriangleStrip3D(
+ points,
+ pointCount,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.LoadModelFromMesh = LoadModelFromMesh
+raylib.DrawTriangleStrip3D = DrawTriangleStrip3D
/**
- * Check if a model is ready
+ * Draw cube
*
- * @param {Model} model
+ * @param {Vector3} position
+ * @param {number} width
+ * @param {number} height
+ * @param {number} length
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsModelReady (model) {
- return r.BindIsModelReady(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose
+function DrawCube(position, width, height, length, color) {
+ return r.BindDrawCube(
+ position.x,
+ position.y,
+ position.z,
+ width,
+ height,
+ length,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.IsModelReady = IsModelReady
+raylib.DrawCube = DrawCube
/**
- * Unload model (including meshes) from memory (RAM and/or VRAM)
+ * Draw cube (Vector version)
*
- * @param {Model} model
+ * @param {Vector3} position
+ * @param {Vector3} size
+ * @param {Color} color
*
* @return {undefined}
*/
-function UnloadModel (model) {
- return r.BindUnloadModel(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose
+function DrawCubeV(position, size, color) {
+ return r.BindDrawCubeV(
+ position.x,
+ position.y,
+ position.z,
+ size.x,
+ size.y,
+ size.z,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.UnloadModel = UnloadModel
+raylib.DrawCubeV = DrawCubeV
/**
- * Compute model bounding box limits (considers all meshes)
+ * Draw cube wires
*
- * @param {Model} model
+ * @param {Vector3} position
+ * @param {number} width
+ * @param {number} height
+ * @param {number} length
+ * @param {Color} color
*
- * @return {BoundingBox} The resulting BoundingBox.
+ * @return {undefined}
*/
-function GetModelBoundingBox (model) {
- return r.BindGetModelBoundingBox(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose
+function DrawCubeWires(position, width, height, length, color) {
+ return r.BindDrawCubeWires(
+ position.x,
+ position.y,
+ position.z,
+ width,
+ height,
+ length,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.GetModelBoundingBox = GetModelBoundingBox
+raylib.DrawCubeWires = DrawCubeWires
/**
- * Draw a model (with texture if set)
+ * Draw cube wires (Vector version)
*
- * @param {Model} model
* @param {Vector3} position
- * @param {number} scale
- * @param {Color} tint
+ * @param {Vector3} size
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawModel (model, position, scale, tint) {
- return r.BindDrawModel(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose,
+function DrawCubeWiresV(position, size, color) {
+ return r.BindDrawCubeWiresV(
position.x,
position.y,
position.z,
- scale,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+ size.x,
+ size.y,
+ size.z,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawModel = DrawModel
+raylib.DrawCubeWiresV = DrawCubeWiresV
/**
- * Draw a model with extended parameters
+ * Draw sphere
*
- * @param {Model} model
- * @param {Vector3} position
- * @param {Vector3} rotationAxis
- * @param {number} rotationAngle
- * @param {Vector3} scale
- * @param {Color} tint
+ * @param {Vector3} centerPos
+ * @param {number} radius
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawModelEx (model, position, rotationAxis, rotationAngle, scale, tint) {
- return r.BindDrawModelEx(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose,
- position.x,
- position.y,
- position.z,
- rotationAxis.x,
- rotationAxis.y,
- rotationAxis.z,
- rotationAngle,
- scale.x,
- scale.y,
- scale.z,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function DrawSphere(centerPos, radius, color) {
+ return r.BindDrawSphere(
+ centerPos.x,
+ centerPos.y,
+ centerPos.z,
+ radius,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawModelEx = DrawModelEx
+raylib.DrawSphere = DrawSphere
/**
- * Draw a model wires (with texture if set)
+ * Draw sphere with extended parameters
*
- * @param {Model} model
- * @param {Vector3} position
- * @param {number} scale
- * @param {Color} tint
+ * @param {Vector3} centerPos
+ * @param {number} radius
+ * @param {number} rings
+ * @param {number} slices
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawModelWires (model, position, scale, tint) {
- return r.BindDrawModelWires(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose,
- position.x,
- position.y,
- position.z,
- scale,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function DrawSphereEx(centerPos, radius, rings, slices, color) {
+ return r.BindDrawSphereEx(
+ centerPos.x,
+ centerPos.y,
+ centerPos.z,
+ radius,
+ rings,
+ slices,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawModelWires = DrawModelWires
+raylib.DrawSphereEx = DrawSphereEx
/**
- * Draw a model wires (with texture if set) with extended parameters
+ * Draw sphere wires
*
- * @param {Model} model
- * @param {Vector3} position
- * @param {Vector3} rotationAxis
- * @param {number} rotationAngle
- * @param {Vector3} scale
- * @param {Color} tint
+ * @param {Vector3} centerPos
+ * @param {number} radius
+ * @param {number} rings
+ * @param {number} slices
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawModelWiresEx (model, position, rotationAxis, rotationAngle, scale, tint) {
- return r.BindDrawModelWiresEx(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose,
- position.x,
- position.y,
- position.z,
- rotationAxis.x,
- rotationAxis.y,
- rotationAxis.z,
- rotationAngle,
- scale.x,
- scale.y,
- scale.z,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function DrawSphereWires(centerPos, radius, rings, slices, color) {
+ return r.BindDrawSphereWires(
+ centerPos.x,
+ centerPos.y,
+ centerPos.z,
+ radius,
+ rings,
+ slices,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawModelWiresEx = DrawModelWiresEx
+raylib.DrawSphereWires = DrawSphereWires
/**
- * Draw bounding box (wires)
+ * Draw a cylinder/cone
*
- * @param {BoundingBox} box
+ * @param {Vector3} position
+ * @param {number} radiusTop
+ * @param {number} radiusBottom
+ * @param {number} height
+ * @param {number} slices
* @param {Color} color
*
* @return {undefined}
*/
-function DrawBoundingBox (box, color) {
- return r.BindDrawBoundingBox(
- box.min.x,
- box.min.y,
- box.min.z,
- box.max.x,
- box.max.y,
- box.max.z,
+function DrawCylinder(position, radiusTop, radiusBottom, height, slices, color) {
+ return r.BindDrawCylinder(
+ position.x,
+ position.y,
+ position.z,
+ radiusTop,
+ radiusBottom,
+ height,
+ slices,
color.r,
color.g,
color.b,
color.a
)
}
-raylib.DrawBoundingBox = DrawBoundingBox
+raylib.DrawCylinder = DrawCylinder
/**
- * Draw a billboard texture
+ * Draw a cylinder with base at startPos and top at endPos
*
- * @param {Camera3D} camera
- * @param {Texture} texture
- * @param {Vector3} position
- * @param {number} size
- * @param {Color} tint
+ * @param {Vector3} startPos
+ * @param {Vector3} endPos
+ * @param {number} startRadius
+ * @param {number} endRadius
+ * @param {number} sides
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawBillboard (camera, texture, position, size, tint) {
- return r.BindDrawBillboard(
- camera.position.x,
- camera.position.y,
- camera.position.z,
- camera.target.x,
- camera.target.y,
- camera.target.z,
- camera.up.x,
- camera.up.y,
- camera.up.z,
- camera.fovy,
- camera.projection,
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- position.x,
- position.y,
- position.z,
- size,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function DrawCylinderEx(startPos, endPos, startRadius, endRadius, sides, color) {
+ return r.BindDrawCylinderEx(
+ startPos.x,
+ startPos.y,
+ startPos.z,
+ endPos.x,
+ endPos.y,
+ endPos.z,
+ startRadius,
+ endRadius,
+ sides,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawBillboard = DrawBillboard
+raylib.DrawCylinderEx = DrawCylinderEx
/**
- * Draw a billboard texture defined by source
+ * Draw a cylinder/cone wires
*
- * @param {Camera3D} camera
- * @param {Texture} texture
- * @param {Rectangle} source
* @param {Vector3} position
- * @param {Vector2} size
- * @param {Color} tint
+ * @param {number} radiusTop
+ * @param {number} radiusBottom
+ * @param {number} height
+ * @param {number} slices
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawBillboardRec (camera, texture, source, position, size, tint) {
- return r.BindDrawBillboardRec(
- camera.position.x,
- camera.position.y,
- camera.position.z,
- camera.target.x,
- camera.target.y,
- camera.target.z,
- camera.up.x,
- camera.up.y,
- camera.up.z,
- camera.fovy,
- camera.projection,
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- source.x,
- source.y,
- source.width,
- source.height,
+function DrawCylinderWires(position, radiusTop, radiusBottom, height, slices, color) {
+ return r.BindDrawCylinderWires(
position.x,
position.y,
position.z,
- size.x,
- size.y,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+ radiusTop,
+ radiusBottom,
+ height,
+ slices,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawBillboardRec = DrawBillboardRec
+raylib.DrawCylinderWires = DrawCylinderWires
/**
- * Draw a billboard texture defined by source and rotation
+ * Draw a cylinder wires with base at startPos and top at endPos
*
- * @param {Camera3D} camera
- * @param {Texture} texture
- * @param {Rectangle} source
- * @param {Vector3} position
- * @param {Vector3} up
- * @param {Vector2} size
- * @param {Vector2} origin
- * @param {number} rotation
- * @param {Color} tint
+ * @param {Vector3} startPos
+ * @param {Vector3} endPos
+ * @param {number} startRadius
+ * @param {number} endRadius
+ * @param {number} sides
+ * @param {Color} color
*
* @return {undefined}
*/
-function DrawBillboardPro (camera, texture, source, position, up, size, origin, rotation, tint) {
- return r.BindDrawBillboardPro(
- camera.position.x,
- camera.position.y,
- camera.position.z,
- camera.target.x,
- camera.target.y,
- camera.target.z,
- camera.up.x,
- camera.up.y,
- camera.up.z,
- camera.fovy,
- camera.projection,
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format,
- source.x,
- source.y,
- source.width,
- source.height,
- position.x,
- position.y,
- position.z,
- up.x,
- up.y,
- up.z,
- size.x,
- size.y,
- origin.x,
- origin.y,
- rotation,
- tint.r,
- tint.g,
- tint.b,
- tint.a
+function DrawCylinderWiresEx(startPos, endPos, startRadius, endRadius, sides, color) {
+ return r.BindDrawCylinderWiresEx(
+ startPos.x,
+ startPos.y,
+ startPos.z,
+ endPos.x,
+ endPos.y,
+ endPos.z,
+ startRadius,
+ endRadius,
+ sides,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.DrawBillboardPro = DrawBillboardPro
+raylib.DrawCylinderWiresEx = DrawCylinderWiresEx
/**
- * Update mesh vertex data in GPU for a specific buffer index
+ * Draw a capsule with the center of its sphere caps at startPos and endPos
*
- * @param {Mesh} mesh
- * @param {number} index
- * @param {number} data
- * @param {number} dataSize
- * @param {number} offset
+ * @param {Vector3} startPos
+ * @param {Vector3} endPos
+ * @param {number} radius
+ * @param {number} slices
+ * @param {number} rings
+ * @param {Color} color
*
* @return {undefined}
*/
-function UpdateMeshBuffer (mesh, index, data, dataSize, offset) {
- return r.BindUpdateMeshBuffer(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId,
- index,
- data,
- dataSize,
- offset
+function DrawCapsule(startPos, endPos, radius, slices, rings, color) {
+ return r.BindDrawCapsule(
+ startPos.x,
+ startPos.y,
+ startPos.z,
+ endPos.x,
+ endPos.y,
+ endPos.z,
+ radius,
+ slices,
+ rings,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.UpdateMeshBuffer = UpdateMeshBuffer
+raylib.DrawCapsule = DrawCapsule
/**
- * Unload mesh data from CPU and GPU
+ * Draw capsule wireframe with the center of its sphere caps at startPos and endPos
*
- * @param {Mesh} mesh
+ * @param {Vector3} startPos
+ * @param {Vector3} endPos
+ * @param {number} radius
+ * @param {number} slices
+ * @param {number} rings
+ * @param {Color} color
*
* @return {undefined}
*/
-function UnloadMesh (mesh) {
- return r.BindUnloadMesh(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId
+function DrawCapsuleWires(startPos, endPos, radius, slices, rings, color) {
+ return r.BindDrawCapsuleWires(
+ startPos.x,
+ startPos.y,
+ startPos.z,
+ endPos.x,
+ endPos.y,
+ endPos.z,
+ radius,
+ slices,
+ rings,
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.UnloadMesh = UnloadMesh
+raylib.DrawCapsuleWires = DrawCapsuleWires
/**
- * Export mesh data to file, returns true on success
+ * Draw a plane XZ
+ *
+ * @param {Vector3} centerPos
+ * @param {Vector2} size
+ * @param {Color} color
+ *
+ * @return {undefined}
+ */
+function DrawPlane(centerPos, size, color) {
+ return r.BindDrawPlane(
+ centerPos.x,
+ centerPos.y,
+ centerPos.z,
+ size.x,
+ size.y,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+}
+raylib.DrawPlane = DrawPlane
+
+/**
+ * Draw a ray line
+ *
+ * @param {Ray} ray
+ * @param {Color} color
+ *
+ * @return {undefined}
+ */
+function DrawRay(ray, color) {
+ return r.BindDrawRay(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+}
+raylib.DrawRay = DrawRay
+
+/**
+ * Draw a grid (centered at (0, 0, 0))
+ *
+ * @param {number} slices
+ * @param {number} spacing
+ *
+ * @return {undefined}
+ */
+function DrawGrid(slices, spacing) {
+ return r.BindDrawGrid(
+ slices,
+ spacing
+ )
+}
+raylib.DrawGrid = DrawGrid
+
+/**
+ * Load model from files (meshes and materials)
*
- * @param {Mesh} mesh
* @param {string} fileName
*
- * @return {boolean} The resulting bool.
+ * @return {Model} The resulting Model.
*/
-function ExportMesh (mesh, fileName) {
- return r.BindExportMesh(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId,
+function LoadModel(fileName) {
+ return r.BindLoadModel(
fileName
)
}
-raylib.ExportMesh = ExportMesh
+raylib.LoadModel = LoadModel
/**
- * Compute mesh bounding box limits
+ * Load model from generated mesh (default material)
*
* @param {Mesh} mesh
*
- * @return {BoundingBox} The resulting BoundingBox.
+ * @return {Model} The resulting Model.
*/
-function GetMeshBoundingBox (mesh) {
- return r.BindGetMeshBoundingBox(
+function LoadModelFromMesh(mesh) {
+ return r.BindLoadModelFromMesh(
mesh.vertexCount,
mesh.triangleCount,
mesh.vertices,
@@ -7079,245 +7081,131 @@ function GetMeshBoundingBox (mesh) {
mesh.vboId
)
}
-raylib.GetMeshBoundingBox = GetMeshBoundingBox
+raylib.LoadModelFromMesh = LoadModelFromMesh
/**
- * Generate polygonal mesh
+ * Check if a model is ready
*
- * @param {number} sides
- * @param {number} radius
+ * @param {Model} model
*
- * @return {Mesh} The resulting Mesh.
+ * @return {boolean} The resulting bool.
*/
-function GenMeshPoly (sides, radius) {
- return r.BindGenMeshPoly(
- sides,
- radius
+function IsModelReady(model) {
+ return r.BindIsModelReady(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose
)
}
-raylib.GenMeshPoly = GenMeshPoly
+raylib.IsModelReady = IsModelReady
/**
- * Generate plane mesh (with subdivisions)
+ * Unload model (including meshes) from memory (RAM and/or VRAM)
*
- * @param {number} width
- * @param {number} length
- * @param {number} resX
- * @param {number} resZ
+ * @param {Model} model
*
- * @return {Mesh} The resulting Mesh.
+ * @return {undefined}
*/
-function GenMeshPlane (width, length, resX, resZ) {
- return r.BindGenMeshPlane(
- width,
- length,
- resX,
- resZ
+function UnloadModel(model) {
+ return r.BindUnloadModel(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose
)
}
-raylib.GenMeshPlane = GenMeshPlane
+raylib.UnloadModel = UnloadModel
/**
- * Generate cuboid mesh
+ * Compute model bounding box limits (considers all meshes)
*
- * @param {number} width
- * @param {number} height
- * @param {number} length
+ * @param {Model} model
*
- * @return {Mesh} The resulting Mesh.
+ * @return {BoundingBox} The resulting BoundingBox.
*/
-function GenMeshCube (width, height, length) {
- return r.BindGenMeshCube(
- width,
- height,
- length
- )
-}
-raylib.GenMeshCube = GenMeshCube
-
-/**
- * Generate sphere mesh (standard sphere)
- *
- * @param {number} radius
- * @param {number} rings
- * @param {number} slices
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshSphere (radius, rings, slices) {
- return r.BindGenMeshSphere(
- radius,
- rings,
- slices
- )
-}
-raylib.GenMeshSphere = GenMeshSphere
-
-/**
- * Generate half-sphere mesh (no bottom cap)
- *
- * @param {number} radius
- * @param {number} rings
- * @param {number} slices
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshHemiSphere (radius, rings, slices) {
- return r.BindGenMeshHemiSphere(
- radius,
- rings,
- slices
- )
-}
-raylib.GenMeshHemiSphere = GenMeshHemiSphere
-
-/**
- * Generate cylinder mesh
- *
- * @param {number} radius
- * @param {number} height
- * @param {number} slices
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshCylinder (radius, height, slices) {
- return r.BindGenMeshCylinder(
- radius,
- height,
- slices
- )
-}
-raylib.GenMeshCylinder = GenMeshCylinder
-
-/**
- * Generate cone/pyramid mesh
- *
- * @param {number} radius
- * @param {number} height
- * @param {number} slices
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshCone (radius, height, slices) {
- return r.BindGenMeshCone(
- radius,
- height,
- slices
- )
-}
-raylib.GenMeshCone = GenMeshCone
-
-/**
- * Generate torus mesh
- *
- * @param {number} radius
- * @param {number} size
- * @param {number} radSeg
- * @param {number} sides
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshTorus (radius, size, radSeg, sides) {
- return r.BindGenMeshTorus(
- radius,
- size,
- radSeg,
- sides
- )
-}
-raylib.GenMeshTorus = GenMeshTorus
-
-/**
- * Generate trefoil knot mesh
- *
- * @param {number} radius
- * @param {number} size
- * @param {number} radSeg
- * @param {number} sides
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshKnot (radius, size, radSeg, sides) {
- return r.BindGenMeshKnot(
- radius,
- size,
- radSeg,
- sides
- )
-}
-raylib.GenMeshKnot = GenMeshKnot
-
-/**
- * Generate heightmap mesh from image data
- *
- * @param {Image} heightmap
- * @param {Vector3} size
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshHeightmap (heightmap, size) {
- return r.BindGenMeshHeightmap(
- heightmap.data,
- heightmap.width,
- heightmap.height,
- heightmap.mipmaps,
- heightmap.format,
- size.x,
- size.y,
- size.z
- )
-}
-raylib.GenMeshHeightmap = GenMeshHeightmap
-
-/**
- * Generate cubes-based map mesh from image data
- *
- * @param {Image} cubicmap
- * @param {Vector3} cubeSize
- *
- * @return {Mesh} The resulting Mesh.
- */
-function GenMeshCubicmap (cubicmap, cubeSize) {
- return r.BindGenMeshCubicmap(
- cubicmap.data,
- cubicmap.width,
- cubicmap.height,
- cubicmap.mipmaps,
- cubicmap.format,
- cubeSize.x,
- cubeSize.y,
- cubeSize.z
- )
-}
-raylib.GenMeshCubicmap = GenMeshCubicmap
-
-/**
- * Load model animations from file
- *
- * @param {string} fileName
- * @param {number} animCount
- *
- * @return {number} The resulting ModelAnimation *.
- */
-function LoadModelAnimations (fileName, animCount) {
- return r.BindLoadModelAnimations(
- fileName,
- animCount
+function GetModelBoundingBox(model) {
+ return r.BindGetModelBoundingBox(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose
)
}
-raylib.LoadModelAnimations = LoadModelAnimations
+raylib.GetModelBoundingBox = GetModelBoundingBox
/**
- * Update model animation pose
+ * Draw a model (with texture if set)
*
* @param {Model} model
- * @param {ModelAnimation} anim
- * @param {number} frame
+ * @param {Vector3} position
+ * @param {number} scale
+ * @param {Color} tint
*
* @return {undefined}
*/
-function UpdateModelAnimation (model, anim, frame) {
- return r.BindUpdateModelAnimation(
+function DrawModel(model, position, scale, tint) {
+ return r.BindDrawModel(
model.transform.m0,
model.transform.m4,
model.transform.m8,
@@ -7342,58 +7230,32 @@ function UpdateModelAnimation (model, anim, frame) {
model.boneCount,
model.bones,
model.bindPose,
- anim.boneCount,
- anim.frameCount,
- anim.bones,
- anim.framePoses,
- frame
- )
-}
-raylib.UpdateModelAnimation = UpdateModelAnimation
-
-/**
- * Unload animation data
- *
- * @param {ModelAnimation} anim
- *
- * @return {undefined}
- */
-function UnloadModelAnimation (anim) {
- return r.BindUnloadModelAnimation(
- anim.boneCount,
- anim.frameCount,
- anim.bones,
- anim.framePoses
- )
-}
-raylib.UnloadModelAnimation = UnloadModelAnimation
-
-/**
- * Unload animation array data
- *
- * @param {number} animations
- * @param {number} count
- *
- * @return {undefined}
- */
-function UnloadModelAnimations (animations, count) {
- return r.BindUnloadModelAnimations(
- animations,
- count
+ position.x,
+ position.y,
+ position.z,
+ scale,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.UnloadModelAnimations = UnloadModelAnimations
+raylib.DrawModel = DrawModel
/**
- * Check model animation skeleton match
+ * Draw a model with extended parameters
*
* @param {Model} model
- * @param {ModelAnimation} anim
+ * @param {Vector3} position
+ * @param {Vector3} rotationAxis
+ * @param {number} rotationAngle
+ * @param {Vector3} scale
+ * @param {Color} tint
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsModelAnimationValid (model, anim) {
- return r.BindIsModelAnimationValid(
+function DrawModelEx(model, position, rotationAxis, rotationAngle, scale, tint) {
+ return r.BindDrawModelEx(
model.transform.m0,
model.transform.m4,
model.transform.m8,
@@ -7418,158 +7280,310 @@ function IsModelAnimationValid (model, anim) {
model.boneCount,
model.bones,
model.bindPose,
- anim.boneCount,
- anim.frameCount,
- anim.bones,
- anim.framePoses
+ position.x,
+ position.y,
+ position.z,
+ rotationAxis.x,
+ rotationAxis.y,
+ rotationAxis.z,
+ rotationAngle,
+ scale.x,
+ scale.y,
+ scale.z,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.IsModelAnimationValid = IsModelAnimationValid
+raylib.DrawModelEx = DrawModelEx
/**
- * Check collision between two spheres
+ * Draw a model wires (with texture if set)
*
- * @param {Vector3} center1
- * @param {number} radius1
- * @param {Vector3} center2
- * @param {number} radius2
+ * @param {Model} model
+ * @param {Vector3} position
+ * @param {number} scale
+ * @param {Color} tint
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionSpheres (center1, radius1, center2, radius2) {
- return r.BindCheckCollisionSpheres(
- center1.x,
- center1.y,
- center1.z,
- radius1,
- center2.x,
- center2.y,
- center2.z,
- radius2
+function DrawModelWires(model, position, scale, tint) {
+ return r.BindDrawModelWires(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose,
+ position.x,
+ position.y,
+ position.z,
+ scale,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.CheckCollisionSpheres = CheckCollisionSpheres
+raylib.DrawModelWires = DrawModelWires
/**
- * Check collision between two bounding boxes
+ * Draw a model wires (with texture if set) with extended parameters
*
- * @param {BoundingBox} box1
- * @param {BoundingBox} box2
+ * @param {Model} model
+ * @param {Vector3} position
+ * @param {Vector3} rotationAxis
+ * @param {number} rotationAngle
+ * @param {Vector3} scale
+ * @param {Color} tint
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionBoxes (box1, box2) {
- return r.BindCheckCollisionBoxes(
- box1.min.x,
- box1.min.y,
- box1.min.z,
- box1.max.x,
- box1.max.y,
- box1.max.z,
- box2.min.x,
- box2.min.y,
- box2.min.z,
- box2.max.x,
- box2.max.y,
- box2.max.z
+function DrawModelWiresEx(model, position, rotationAxis, rotationAngle, scale, tint) {
+ return r.BindDrawModelWiresEx(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose,
+ position.x,
+ position.y,
+ position.z,
+ rotationAxis.x,
+ rotationAxis.y,
+ rotationAxis.z,
+ rotationAngle,
+ scale.x,
+ scale.y,
+ scale.z,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.CheckCollisionBoxes = CheckCollisionBoxes
+raylib.DrawModelWiresEx = DrawModelWiresEx
/**
- * Check collision between box and sphere
+ * Draw bounding box (wires)
*
* @param {BoundingBox} box
- * @param {Vector3} center
- * @param {number} radius
+ * @param {Color} color
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function CheckCollisionBoxSphere (box, center, radius) {
- return r.BindCheckCollisionBoxSphere(
+function DrawBoundingBox(box, color) {
+ return r.BindDrawBoundingBox(
box.min.x,
box.min.y,
box.min.z,
box.max.x,
box.max.y,
box.max.z,
- center.x,
- center.y,
- center.z,
- radius
- )
-}
-raylib.CheckCollisionBoxSphere = CheckCollisionBoxSphere
-
-/**
- * Get collision info between ray and sphere
- *
- * @param {Ray} ray
- * @param {Vector3} center
- * @param {number} radius
- *
- * @return {RayCollision} The resulting RayCollision.
- */
-function GetRayCollisionSphere (ray, center, radius) {
- return r.BindGetRayCollisionSphere(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
- center.x,
- center.y,
- center.z,
- radius
+ color.r,
+ color.g,
+ color.b,
+ color.a
)
}
-raylib.GetRayCollisionSphere = GetRayCollisionSphere
+raylib.DrawBoundingBox = DrawBoundingBox
/**
- * Get collision info between ray and box
+ * Draw a billboard texture
*
- * @param {Ray} ray
- * @param {BoundingBox} box
+ * @param {Camera3D} camera
+ * @param {Texture} texture
+ * @param {Vector3} position
+ * @param {number} size
+ * @param {Color} tint
*
- * @return {RayCollision} The resulting RayCollision.
+ * @return {undefined}
*/
-function GetRayCollisionBox (ray, box) {
- return r.BindGetRayCollisionBox(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
- box.min.x,
- box.min.y,
- box.min.z,
- box.max.x,
- box.max.y,
- box.max.z
+function DrawBillboard(camera, texture, position, size, tint) {
+ return r.BindDrawBillboard(
+ camera.position.x,
+ camera.position.y,
+ camera.position.z,
+ camera.target.x,
+ camera.target.y,
+ camera.target.z,
+ camera.up.x,
+ camera.up.y,
+ camera.up.z,
+ camera.fovy,
+ camera.projection,
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ position.x,
+ position.y,
+ position.z,
+ size,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
)
}
-raylib.GetRayCollisionBox = GetRayCollisionBox
+raylib.DrawBillboard = DrawBillboard
/**
- * Get collision info between ray and mesh
+ * Draw a billboard texture defined by source
*
- * @param {Ray} ray
- * @param {Mesh} mesh
- * @param {Matrix} transform
+ * @param {Camera3D} camera
+ * @param {Texture} texture
+ * @param {Rectangle} source
+ * @param {Vector3} position
+ * @param {Vector2} size
+ * @param {Color} tint
*
- * @return {RayCollision} The resulting RayCollision.
+ * @return {undefined}
*/
-function GetRayCollisionMesh (ray, mesh, transform) {
- return r.BindGetRayCollisionMesh(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
- mesh.vertexCount,
+function DrawBillboardRec(camera, texture, source, position, size, tint) {
+ return r.BindDrawBillboardRec(
+ camera.position.x,
+ camera.position.y,
+ camera.position.z,
+ camera.target.x,
+ camera.target.y,
+ camera.target.z,
+ camera.up.x,
+ camera.up.y,
+ camera.up.z,
+ camera.fovy,
+ camera.projection,
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ source.x,
+ source.y,
+ source.width,
+ source.height,
+ position.x,
+ position.y,
+ position.z,
+ size.x,
+ size.y,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
+ )
+}
+raylib.DrawBillboardRec = DrawBillboardRec
+
+/**
+ * Draw a billboard texture defined by source and rotation
+ *
+ * @param {Camera3D} camera
+ * @param {Texture} texture
+ * @param {Rectangle} source
+ * @param {Vector3} position
+ * @param {Vector3} up
+ * @param {Vector2} size
+ * @param {Vector2} origin
+ * @param {number} rotation
+ * @param {Color} tint
+ *
+ * @return {undefined}
+ */
+function DrawBillboardPro(camera, texture, source, position, up, size, origin, rotation, tint) {
+ return r.BindDrawBillboardPro(
+ camera.position.x,
+ camera.position.y,
+ camera.position.z,
+ camera.target.x,
+ camera.target.y,
+ camera.target.z,
+ camera.up.x,
+ camera.up.y,
+ camera.up.z,
+ camera.fovy,
+ camera.projection,
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format,
+ source.x,
+ source.y,
+ source.width,
+ source.height,
+ position.x,
+ position.y,
+ position.z,
+ up.x,
+ up.y,
+ up.z,
+ size.x,
+ size.y,
+ origin.x,
+ origin.y,
+ rotation,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
+ )
+}
+raylib.DrawBillboardPro = DrawBillboardPro
+
+/**
+ * Update mesh vertex data in GPU for a specific buffer index
+ *
+ * @param {Mesh} mesh
+ * @param {number} index
+ * @param {number} data
+ * @param {number} dataSize
+ * @param {number} offset
+ *
+ * @return {undefined}
+ */
+function UpdateMeshBuffer(mesh, index, data, dataSize, offset) {
+ return r.BindUpdateMeshBuffer(
+ mesh.vertexCount,
mesh.triangleCount,
mesh.vertices,
mesh.texcoords,
@@ -7584,1593 +7598,1801 @@ function GetRayCollisionMesh (ray, mesh, transform) {
mesh.boneWeights,
mesh.vaoId,
mesh.vboId,
- transform.m0,
- transform.m4,
- transform.m8,
- transform.m12,
- transform.m1,
- transform.m5,
- transform.m9,
- transform.m13,
- transform.m2,
- transform.m6,
- transform.m10,
- transform.m14,
- transform.m3,
- transform.m7,
- transform.m11,
- transform.m15
+ index,
+ data,
+ dataSize,
+ offset
)
}
-raylib.GetRayCollisionMesh = GetRayCollisionMesh
+raylib.UpdateMeshBuffer = UpdateMeshBuffer
/**
- * Get collision info between ray and triangle
+ * Unload mesh data from CPU and GPU
*
- * @param {Ray} ray
- * @param {Vector3} p1
- * @param {Vector3} p2
- * @param {Vector3} p3
+ * @param {Mesh} mesh
*
- * @return {RayCollision} The resulting RayCollision.
+ * @return {undefined}
*/
-function GetRayCollisionTriangle (ray, p1, p2, p3) {
- return r.BindGetRayCollisionTriangle(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
- p1.x,
- p1.y,
- p1.z,
- p2.x,
- p2.y,
- p2.z,
- p3.x,
- p3.y,
- p3.z
+function UnloadMesh(mesh) {
+ return r.BindUnloadMesh(
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId
)
}
-raylib.GetRayCollisionTriangle = GetRayCollisionTriangle
+raylib.UnloadMesh = UnloadMesh
/**
- * Get collision info between ray and quad
+ * Export mesh data to file, returns true on success
*
- * @param {Ray} ray
- * @param {Vector3} p1
- * @param {Vector3} p2
- * @param {Vector3} p3
- * @param {Vector3} p4
+ * @param {Mesh} mesh
+ * @param {string} fileName
*
- * @return {RayCollision} The resulting RayCollision.
+ * @return {boolean} The resulting bool.
*/
-function GetRayCollisionQuad (ray, p1, p2, p3, p4) {
- return r.BindGetRayCollisionQuad(
- ray.position.x,
- ray.position.y,
- ray.position.z,
- ray.direction.x,
- ray.direction.y,
- ray.direction.z,
- p1.x,
- p1.y,
- p1.z,
- p2.x,
- p2.y,
- p2.z,
- p3.x,
- p3.y,
- p3.z,
- p4.x,
- p4.y,
- p4.z
+function ExportMesh(mesh, fileName) {
+ return r.BindExportMesh(
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId,
+ fileName
)
}
-raylib.GetRayCollisionQuad = GetRayCollisionQuad
+raylib.ExportMesh = ExportMesh
/**
- * Initialize audio device and context
+ * Compute mesh bounding box limits
*
- * @return {undefined}
+ * @param {Mesh} mesh
+ *
+ * @return {BoundingBox} The resulting BoundingBox.
*/
-function InitAudioDevice () {
- return r.BindInitAudioDevice()
+function GetMeshBoundingBox(mesh) {
+ return r.BindGetMeshBoundingBox(
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId
+ )
}
-raylib.InitAudioDevice = InitAudioDevice
+raylib.GetMeshBoundingBox = GetMeshBoundingBox
/**
- * Close the audio device and context
+ * Generate polygonal mesh
*
- * @return {undefined}
+ * @param {number} sides
+ * @param {number} radius
+ *
+ * @return {Mesh} The resulting Mesh.
*/
-function CloseAudioDevice () {
- return r.BindCloseAudioDevice()
+function GenMeshPoly(sides, radius) {
+ return r.BindGenMeshPoly(
+ sides,
+ radius
+ )
}
-raylib.CloseAudioDevice = CloseAudioDevice
+raylib.GenMeshPoly = GenMeshPoly
/**
- * Check if audio device has been initialized successfully
- *
- * @return {boolean} The resulting bool.
- */
-function IsAudioDeviceReady () {
- return r.BindIsAudioDeviceReady()
-}
-raylib.IsAudioDeviceReady = IsAudioDeviceReady
-
-/**
- * Set master volume (listener)
+ * Generate plane mesh (with subdivisions)
*
- * @param {number} volume
+ * @param {number} width
+ * @param {number} length
+ * @param {number} resX
+ * @param {number} resZ
*
- * @return {undefined}
+ * @return {Mesh} The resulting Mesh.
*/
-function SetMasterVolume (volume) {
- return r.BindSetMasterVolume(
- volume
+function GenMeshPlane(width, length, resX, resZ) {
+ return r.BindGenMeshPlane(
+ width,
+ length,
+ resX,
+ resZ
)
}
-raylib.SetMasterVolume = SetMasterVolume
+raylib.GenMeshPlane = GenMeshPlane
/**
- * Load wave data from file
+ * Generate cuboid mesh
*
- * @param {string} fileName
+ * @param {number} width
+ * @param {number} height
+ * @param {number} length
*
- * @return {Wave} The resulting Wave.
+ * @return {Mesh} The resulting Mesh.
*/
-function LoadWave (fileName) {
- return r.BindLoadWave(
- fileName
+function GenMeshCube(width, height, length) {
+ return r.BindGenMeshCube(
+ width,
+ height,
+ length
)
}
-raylib.LoadWave = LoadWave
+raylib.GenMeshCube = GenMeshCube
/**
- * Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
+ * Generate sphere mesh (standard sphere)
*
- * @param {string} fileType
- * @param {Buffer} fileData
- * @param {number} dataSize
+ * @param {number} radius
+ * @param {number} rings
+ * @param {number} slices
*
- * @return {Wave} The resulting Wave.
+ * @return {Mesh} The resulting Mesh.
*/
-function LoadWaveFromMemory (fileType, fileData, dataSize) {
- return r.BindLoadWaveFromMemory(
- fileType,
- fileData,
- dataSize
+function GenMeshSphere(radius, rings, slices) {
+ return r.BindGenMeshSphere(
+ radius,
+ rings,
+ slices
)
}
-raylib.LoadWaveFromMemory = LoadWaveFromMemory
+raylib.GenMeshSphere = GenMeshSphere
/**
- * Checks if wave data is ready
+ * Generate half-sphere mesh (no bottom cap)
*
- * @param {Wave} wave
+ * @param {number} radius
+ * @param {number} rings
+ * @param {number} slices
*
- * @return {boolean} The resulting bool.
+ * @return {Mesh} The resulting Mesh.
*/
-function IsWaveReady (wave) {
- return r.BindIsWaveReady(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data
+function GenMeshHemiSphere(radius, rings, slices) {
+ return r.BindGenMeshHemiSphere(
+ radius,
+ rings,
+ slices
)
}
-raylib.IsWaveReady = IsWaveReady
+raylib.GenMeshHemiSphere = GenMeshHemiSphere
/**
- * Load sound from file
+ * Generate cylinder mesh
*
- * @param {string} fileName
+ * @param {number} radius
+ * @param {number} height
+ * @param {number} slices
*
- * @return {Sound} The resulting Sound.
+ * @return {Mesh} The resulting Mesh.
*/
-function LoadSound (fileName) {
- return r.BindLoadSound(
- fileName
+function GenMeshCylinder(radius, height, slices) {
+ return r.BindGenMeshCylinder(
+ radius,
+ height,
+ slices
)
}
-raylib.LoadSound = LoadSound
+raylib.GenMeshCylinder = GenMeshCylinder
/**
- * Load sound from wave data
+ * Generate cone/pyramid mesh
*
- * @param {Wave} wave
+ * @param {number} radius
+ * @param {number} height
+ * @param {number} slices
*
- * @return {Sound} The resulting Sound.
+ * @return {Mesh} The resulting Mesh.
*/
-function LoadSoundFromWave (wave) {
- return r.BindLoadSoundFromWave(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data
+function GenMeshCone(radius, height, slices) {
+ return r.BindGenMeshCone(
+ radius,
+ height,
+ slices
)
}
-raylib.LoadSoundFromWave = LoadSoundFromWave
+raylib.GenMeshCone = GenMeshCone
/**
- * Checks if a sound is ready
+ * Generate torus mesh
*
- * @param {Sound} sound
+ * @param {number} radius
+ * @param {number} size
+ * @param {number} radSeg
+ * @param {number} sides
*
- * @return {boolean} The resulting bool.
+ * @return {Mesh} The resulting Mesh.
*/
-function IsSoundReady (sound) {
- return r.BindIsSoundReady(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function GenMeshTorus(radius, size, radSeg, sides) {
+ return r.BindGenMeshTorus(
+ radius,
+ size,
+ radSeg,
+ sides
)
}
-raylib.IsSoundReady = IsSoundReady
+raylib.GenMeshTorus = GenMeshTorus
/**
- * Update sound buffer with new data
+ * Generate trefoil knot mesh
*
- * @param {Sound} sound
- * @param {number} data
- * @param {number} sampleCount
+ * @param {number} radius
+ * @param {number} size
+ * @param {number} radSeg
+ * @param {number} sides
*
- * @return {undefined}
+ * @return {Mesh} The resulting Mesh.
*/
-function UpdateSound (sound, data, sampleCount) {
- return r.BindUpdateSound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount,
- data,
- sampleCount
+function GenMeshKnot(radius, size, radSeg, sides) {
+ return r.BindGenMeshKnot(
+ radius,
+ size,
+ radSeg,
+ sides
)
}
-raylib.UpdateSound = UpdateSound
+raylib.GenMeshKnot = GenMeshKnot
/**
- * Unload wave data
+ * Generate heightmap mesh from image data
*
- * @param {Wave} wave
+ * @param {Image} heightmap
+ * @param {Vector3} size
*
- * @return {undefined}
+ * @return {Mesh} The resulting Mesh.
*/
-function UnloadWave (wave) {
- return r.BindUnloadWave(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data
+function GenMeshHeightmap(heightmap, size) {
+ return r.BindGenMeshHeightmap(
+ heightmap.data,
+ heightmap.width,
+ heightmap.height,
+ heightmap.mipmaps,
+ heightmap.format,
+ size.x,
+ size.y,
+ size.z
)
}
-raylib.UnloadWave = UnloadWave
+raylib.GenMeshHeightmap = GenMeshHeightmap
/**
- * Unload sound
+ * Generate cubes-based map mesh from image data
*
- * @param {Sound} sound
+ * @param {Image} cubicmap
+ * @param {Vector3} cubeSize
*
- * @return {undefined}
+ * @return {Mesh} The resulting Mesh.
*/
-function UnloadSound (sound) {
- return r.BindUnloadSound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function GenMeshCubicmap(cubicmap, cubeSize) {
+ return r.BindGenMeshCubicmap(
+ cubicmap.data,
+ cubicmap.width,
+ cubicmap.height,
+ cubicmap.mipmaps,
+ cubicmap.format,
+ cubeSize.x,
+ cubeSize.y,
+ cubeSize.z
)
}
-raylib.UnloadSound = UnloadSound
+raylib.GenMeshCubicmap = GenMeshCubicmap
/**
- * Export wave data to file, returns true on success
+ * Load model animations from file
*
- * @param {Wave} wave
* @param {string} fileName
+ * @param {number} animCount
*
- * @return {boolean} The resulting bool.
+ * @return {number} The resulting ModelAnimation *.
*/
-function ExportWave (wave, fileName) {
- return r.BindExportWave(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data,
- fileName
+function LoadModelAnimations(fileName, animCount) {
+ return r.BindLoadModelAnimations(
+ fileName,
+ animCount
)
}
-raylib.ExportWave = ExportWave
+raylib.LoadModelAnimations = LoadModelAnimations
/**
- * Export wave sample data to code (.h), returns true on success
+ * Update model animation pose
*
- * @param {Wave} wave
- * @param {string} fileName
+ * @param {Model} model
+ * @param {ModelAnimation} anim
+ * @param {number} frame
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function ExportWaveAsCode (wave, fileName) {
- return r.BindExportWaveAsCode(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data,
- fileName
- )
-}
-raylib.ExportWaveAsCode = ExportWaveAsCode
-
-/**
- * Play a sound
- *
- * @param {Sound} sound
- *
- * @return {undefined}
- */
-function PlaySound (sound) {
- return r.BindPlaySound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function UpdateModelAnimation(model, anim, frame) {
+ return r.BindUpdateModelAnimation(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose,
+ anim.boneCount,
+ anim.frameCount,
+ anim.bones,
+ anim.framePoses,
+ anim.name,
+ frame
)
}
-raylib.PlaySound = PlaySound
+raylib.UpdateModelAnimation = UpdateModelAnimation
/**
- * Stop playing a sound
+ * Unload animation data
*
- * @param {Sound} sound
+ * @param {ModelAnimation} anim
*
* @return {undefined}
*/
-function StopSound (sound) {
- return r.BindStopSound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function UnloadModelAnimation(anim) {
+ return r.BindUnloadModelAnimation(
+ anim.boneCount,
+ anim.frameCount,
+ anim.bones,
+ anim.framePoses,
+ anim.name
)
}
-raylib.StopSound = StopSound
+raylib.UnloadModelAnimation = UnloadModelAnimation
/**
- * Pause a sound
+ * Unload animation array data
*
- * @param {Sound} sound
+ * @param {number} animations
+ * @param {number} animCount
*
* @return {undefined}
*/
-function PauseSound (sound) {
- return r.BindPauseSound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function UnloadModelAnimations(animations, animCount) {
+ return r.BindUnloadModelAnimations(
+ animations,
+ animCount
)
}
-raylib.PauseSound = PauseSound
+raylib.UnloadModelAnimations = UnloadModelAnimations
/**
- * Resume a paused sound
+ * Check model animation skeleton match
*
- * @param {Sound} sound
+ * @param {Model} model
+ * @param {ModelAnimation} anim
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function ResumeSound (sound) {
- return r.BindResumeSound(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function IsModelAnimationValid(model, anim) {
+ return r.BindIsModelAnimationValid(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose,
+ anim.boneCount,
+ anim.frameCount,
+ anim.bones,
+ anim.framePoses,
+ anim.name
)
}
-raylib.ResumeSound = ResumeSound
+raylib.IsModelAnimationValid = IsModelAnimationValid
/**
- * Check if a sound is currently playing
+ * Check collision between two spheres
*
- * @param {Sound} sound
+ * @param {Vector3} center1
+ * @param {number} radius1
+ * @param {Vector3} center2
+ * @param {number} radius2
*
* @return {boolean} The resulting bool.
*/
-function IsSoundPlaying (sound) {
- return r.BindIsSoundPlaying(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount
+function CheckCollisionSpheres(center1, radius1, center2, radius2) {
+ return r.BindCheckCollisionSpheres(
+ center1.x,
+ center1.y,
+ center1.z,
+ radius1,
+ center2.x,
+ center2.y,
+ center2.z,
+ radius2
)
}
-raylib.IsSoundPlaying = IsSoundPlaying
+raylib.CheckCollisionSpheres = CheckCollisionSpheres
/**
- * Set volume for a sound (1.0 is max level)
+ * Check collision between two bounding boxes
*
- * @param {Sound} sound
- * @param {number} volume
+ * @param {BoundingBox} box1
+ * @param {BoundingBox} box2
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function SetSoundVolume (sound, volume) {
- return r.BindSetSoundVolume(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount,
- volume
+function CheckCollisionBoxes(box1, box2) {
+ return r.BindCheckCollisionBoxes(
+ box1.min.x,
+ box1.min.y,
+ box1.min.z,
+ box1.max.x,
+ box1.max.y,
+ box1.max.z,
+ box2.min.x,
+ box2.min.y,
+ box2.min.z,
+ box2.max.x,
+ box2.max.y,
+ box2.max.z
)
}
-raylib.SetSoundVolume = SetSoundVolume
+raylib.CheckCollisionBoxes = CheckCollisionBoxes
/**
- * Set pitch for a sound (1.0 is base level)
+ * Check collision between box and sphere
*
- * @param {Sound} sound
- * @param {number} pitch
+ * @param {BoundingBox} box
+ * @param {Vector3} center
+ * @param {number} radius
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function SetSoundPitch (sound, pitch) {
- return r.BindSetSoundPitch(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount,
- pitch
+function CheckCollisionBoxSphere(box, center, radius) {
+ return r.BindCheckCollisionBoxSphere(
+ box.min.x,
+ box.min.y,
+ box.min.z,
+ box.max.x,
+ box.max.y,
+ box.max.z,
+ center.x,
+ center.y,
+ center.z,
+ radius
)
}
-raylib.SetSoundPitch = SetSoundPitch
+raylib.CheckCollisionBoxSphere = CheckCollisionBoxSphere
/**
- * Set pan for a sound (0.5 is center)
+ * Get collision info between ray and sphere
*
- * @param {Sound} sound
- * @param {number} pan
+ * @param {Ray} ray
+ * @param {Vector3} center
+ * @param {number} radius
*
- * @return {undefined}
+ * @return {RayCollision} The resulting RayCollision.
*/
-function SetSoundPan (sound, pan) {
- return r.BindSetSoundPan(
- sound.stream.buffer,
- sound.stream.processor,
- sound.stream.sampleRate,
- sound.stream.sampleSize,
- sound.stream.channels,
- sound.frameCount,
- pan
+function GetRayCollisionSphere(ray, center, radius) {
+ return r.BindGetRayCollisionSphere(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ center.x,
+ center.y,
+ center.z,
+ radius
)
}
-raylib.SetSoundPan = SetSoundPan
+raylib.GetRayCollisionSphere = GetRayCollisionSphere
/**
- * Copy a wave to a new wave
+ * Get collision info between ray and box
*
- * @param {Wave} wave
+ * @param {Ray} ray
+ * @param {BoundingBox} box
*
- * @return {Wave} The resulting Wave.
+ * @return {RayCollision} The resulting RayCollision.
*/
-function WaveCopy (wave) {
- return r.BindWaveCopy(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data
- )
+function GetRayCollisionBox(ray, box) {
+ return r.BindGetRayCollisionBox(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ box.min.x,
+ box.min.y,
+ box.min.z,
+ box.max.x,
+ box.max.y,
+ box.max.z
+ )
}
-raylib.WaveCopy = WaveCopy
+raylib.GetRayCollisionBox = GetRayCollisionBox
/**
- * Load samples data from wave as a 32bit float data array
+ * Get collision info between ray and mesh
*
- * @param {Wave} wave
+ * @param {Ray} ray
+ * @param {Mesh} mesh
+ * @param {Matrix} transform
*
- * @return {number} The resulting float *.
+ * @return {RayCollision} The resulting RayCollision.
*/
-function LoadWaveSamples (wave) {
- return r.BindLoadWaveSamples(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data
+function GetRayCollisionMesh(ray, mesh, transform) {
+ return r.BindGetRayCollisionMesh(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId,
+ transform.m0,
+ transform.m4,
+ transform.m8,
+ transform.m12,
+ transform.m1,
+ transform.m5,
+ transform.m9,
+ transform.m13,
+ transform.m2,
+ transform.m6,
+ transform.m10,
+ transform.m14,
+ transform.m3,
+ transform.m7,
+ transform.m11,
+ transform.m15
)
}
-raylib.LoadWaveSamples = LoadWaveSamples
+raylib.GetRayCollisionMesh = GetRayCollisionMesh
/**
- * Unload samples data loaded with LoadWaveSamples()
+ * Get collision info between ray and triangle
*
- * @param {number} samples
+ * @param {Ray} ray
+ * @param {Vector3} p1
+ * @param {Vector3} p2
+ * @param {Vector3} p3
*
- * @return {undefined}
+ * @return {RayCollision} The resulting RayCollision.
*/
-function UnloadWaveSamples (samples) {
- return r.BindUnloadWaveSamples(
- samples
+function GetRayCollisionTriangle(ray, p1, p2, p3) {
+ return r.BindGetRayCollisionTriangle(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ p1.x,
+ p1.y,
+ p1.z,
+ p2.x,
+ p2.y,
+ p2.z,
+ p3.x,
+ p3.y,
+ p3.z
)
}
-raylib.UnloadWaveSamples = UnloadWaveSamples
+raylib.GetRayCollisionTriangle = GetRayCollisionTriangle
/**
- * Load music stream from file
+ * Get collision info between ray and quad
*
- * @param {string} fileName
+ * @param {Ray} ray
+ * @param {Vector3} p1
+ * @param {Vector3} p2
+ * @param {Vector3} p3
+ * @param {Vector3} p4
*
- * @return {Music} The resulting Music.
+ * @return {RayCollision} The resulting RayCollision.
*/
-function LoadMusicStream (fileName) {
- return r.BindLoadMusicStream(
- fileName
+function GetRayCollisionQuad(ray, p1, p2, p3, p4) {
+ return r.BindGetRayCollisionQuad(
+ ray.position.x,
+ ray.position.y,
+ ray.position.z,
+ ray.direction.x,
+ ray.direction.y,
+ ray.direction.z,
+ p1.x,
+ p1.y,
+ p1.z,
+ p2.x,
+ p2.y,
+ p2.z,
+ p3.x,
+ p3.y,
+ p3.z,
+ p4.x,
+ p4.y,
+ p4.z
)
}
-raylib.LoadMusicStream = LoadMusicStream
+raylib.GetRayCollisionQuad = GetRayCollisionQuad
/**
- * Load music stream from data
- *
- * @param {string} fileType
- * @param {Buffer} data
- * @param {number} dataSize
+ * Initialize audio device and context
*
- * @return {Music} The resulting Music.
+ * @return {undefined}
*/
-function LoadMusicStreamFromMemory (fileType, data, dataSize) {
- return r.BindLoadMusicStreamFromMemory(
- fileType,
- data,
- dataSize
- )
+function InitAudioDevice() {
+ return r.BindInitAudioDevice()
}
-raylib.LoadMusicStreamFromMemory = LoadMusicStreamFromMemory
+raylib.InitAudioDevice = InitAudioDevice
/**
- * Checks if a music stream is ready
+ * Close the audio device and context
*
- * @param {Music} music
+ * @return {undefined}
+ */
+function CloseAudioDevice() {
+ return r.BindCloseAudioDevice()
+}
+raylib.CloseAudioDevice = CloseAudioDevice
+
+/**
+ * Check if audio device has been initialized successfully
*
* @return {boolean} The resulting bool.
*/
-function IsMusicReady (music) {
- return r.BindIsMusicReady(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
- )
+function IsAudioDeviceReady() {
+ return r.BindIsAudioDeviceReady()
}
-raylib.IsMusicReady = IsMusicReady
+raylib.IsAudioDeviceReady = IsAudioDeviceReady
/**
- * Unload music stream
+ * Set master volume (listener)
*
- * @param {Music} music
+ * @param {number} volume
*
* @return {undefined}
*/
-function UnloadMusicStream (music) {
- return r.BindUnloadMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function SetMasterVolume(volume) {
+ return r.BindSetMasterVolume(
+ volume
)
}
-raylib.UnloadMusicStream = UnloadMusicStream
+raylib.SetMasterVolume = SetMasterVolume
/**
- * Start music playing
+ * Get master volume (listener)
*
- * @param {Music} music
- *
- * @return {undefined}
+ * @return {number} The resulting float.
*/
-function PlayMusicStream (music) {
- return r.BindPlayMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
- )
+function GetMasterVolume() {
+ return r.BindGetMasterVolume()
}
-raylib.PlayMusicStream = PlayMusicStream
+raylib.GetMasterVolume = GetMasterVolume
/**
- * Check if music is playing
+ * Load wave data from file
*
- * @param {Music} music
+ * @param {string} fileName
*
- * @return {boolean} The resulting bool.
+ * @return {Wave} The resulting Wave.
*/
-function IsMusicStreamPlaying (music) {
- return r.BindIsMusicStreamPlaying(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function LoadWave(fileName) {
+ return r.BindLoadWave(
+ fileName
)
}
-raylib.IsMusicStreamPlaying = IsMusicStreamPlaying
+raylib.LoadWave = LoadWave
/**
- * Updates buffers for music streaming
+ * Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
*
- * @param {Music} music
+ * @param {string} fileType
+ * @param {Buffer} fileData
+ * @param {number} dataSize
*
- * @return {undefined}
+ * @return {Wave} The resulting Wave.
*/
-function UpdateMusicStream (music) {
- return r.BindUpdateMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function LoadWaveFromMemory(fileType, fileData, dataSize) {
+ return r.BindLoadWaveFromMemory(
+ fileType,
+ fileData,
+ dataSize
)
}
-raylib.UpdateMusicStream = UpdateMusicStream
+raylib.LoadWaveFromMemory = LoadWaveFromMemory
/**
- * Stop music playing
+ * Checks if wave data is ready
*
- * @param {Music} music
+ * @param {Wave} wave
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function StopMusicStream (music) {
- return r.BindStopMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function IsWaveReady(wave) {
+ return r.BindIsWaveReady(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data
)
}
-raylib.StopMusicStream = StopMusicStream
+raylib.IsWaveReady = IsWaveReady
/**
- * Pause music playing
+ * Load sound from file
*
- * @param {Music} music
+ * @param {string} fileName
*
- * @return {undefined}
+ * @return {Sound} The resulting Sound.
*/
-function PauseMusicStream (music) {
- return r.BindPauseMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function LoadSound(fileName) {
+ return r.BindLoadSound(
+ fileName
)
}
-raylib.PauseMusicStream = PauseMusicStream
+raylib.LoadSound = LoadSound
/**
- * Resume playing paused music
+ * Load sound from wave data
*
- * @param {Music} music
+ * @param {Wave} wave
*
- * @return {undefined}
+ * @return {Sound} The resulting Sound.
*/
-function ResumeMusicStream (music) {
- return r.BindResumeMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function LoadSoundFromWave(wave) {
+ return r.BindLoadSoundFromWave(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data
)
}
-raylib.ResumeMusicStream = ResumeMusicStream
+raylib.LoadSoundFromWave = LoadSoundFromWave
/**
- * Seek music to a position (in seconds)
+ * Create a new sound that shares the same sample data as the source sound, does not own the sound data
*
- * @param {Music} music
- * @param {number} position
+ * @param {Sound} source
*
- * @return {undefined}
+ * @return {Sound} The resulting Sound.
*/
-function SeekMusicStream (music, position) {
- return r.BindSeekMusicStream(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData,
- position
+function LoadSoundAlias(source) {
+ return r.BindLoadSoundAlias(
+ source.stream.buffer,
+ source.stream.processor,
+ source.stream.sampleRate,
+ source.stream.sampleSize,
+ source.stream.channels,
+ source.frameCount
)
}
-raylib.SeekMusicStream = SeekMusicStream
+raylib.LoadSoundAlias = LoadSoundAlias
/**
- * Set volume for music (1.0 is max level)
+ * Checks if a sound is ready
*
- * @param {Music} music
- * @param {number} volume
+ * @param {Sound} sound
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function SetMusicVolume (music, volume) {
- return r.BindSetMusicVolume(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData,
- volume
+function IsSoundReady(sound) {
+ return r.BindIsSoundReady(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.SetMusicVolume = SetMusicVolume
+raylib.IsSoundReady = IsSoundReady
/**
- * Set pitch for a music (1.0 is base level)
+ * Update sound buffer with new data
*
- * @param {Music} music
- * @param {number} pitch
+ * @param {Sound} sound
+ * @param {number} data
+ * @param {number} sampleCount
*
* @return {undefined}
*/
-function SetMusicPitch (music, pitch) {
- return r.BindSetMusicPitch(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData,
- pitch
+function UpdateSound(sound, data, sampleCount) {
+ return r.BindUpdateSound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount,
+ data,
+ sampleCount
)
}
-raylib.SetMusicPitch = SetMusicPitch
+raylib.UpdateSound = UpdateSound
/**
- * Set pan for a music (0.5 is center)
+ * Unload wave data
*
- * @param {Music} music
- * @param {number} pan
+ * @param {Wave} wave
*
* @return {undefined}
*/
-function SetMusicPan (music, pan) {
- return r.BindSetMusicPan(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData,
- pan
+function UnloadWave(wave) {
+ return r.BindUnloadWave(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data
)
}
-raylib.SetMusicPan = SetMusicPan
+raylib.UnloadWave = UnloadWave
/**
- * Get music time length (in seconds)
+ * Unload sound
*
- * @param {Music} music
+ * @param {Sound} sound
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function GetMusicTimeLength (music) {
- return r.BindGetMusicTimeLength(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function UnloadSound(sound) {
+ return r.BindUnloadSound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.GetMusicTimeLength = GetMusicTimeLength
+raylib.UnloadSound = UnloadSound
/**
- * Get current music time played (in seconds)
+ * Unload a sound alias (does not deallocate sample data)
*
- * @param {Music} music
+ * @param {Sound} alias
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function GetMusicTimePlayed (music) {
- return r.BindGetMusicTimePlayed(
- music.stream.buffer,
- music.stream.processor,
- music.stream.sampleRate,
- music.stream.sampleSize,
- music.stream.channels,
- music.frameCount,
- music.looping,
- music.ctxType,
- music.ctxData
+function UnloadSoundAlias(alias) {
+ return r.BindUnloadSoundAlias(
+ alias.stream.buffer,
+ alias.stream.processor,
+ alias.stream.sampleRate,
+ alias.stream.sampleSize,
+ alias.stream.channels,
+ alias.frameCount
)
}
-raylib.GetMusicTimePlayed = GetMusicTimePlayed
+raylib.UnloadSoundAlias = UnloadSoundAlias
/**
- * Load audio stream (to stream raw audio pcm data)
+ * Export wave data to file, returns true on success
*
- * @param {number} sampleRate
- * @param {number} sampleSize
- * @param {number} channels
+ * @param {Wave} wave
+ * @param {string} fileName
*
- * @return {AudioStream} The resulting AudioStream.
+ * @return {boolean} The resulting bool.
*/
-function LoadAudioStream (sampleRate, sampleSize, channels) {
- return r.BindLoadAudioStream(
- sampleRate,
- sampleSize,
- channels
+function ExportWave(wave, fileName) {
+ return r.BindExportWave(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data,
+ fileName
)
}
-raylib.LoadAudioStream = LoadAudioStream
+raylib.ExportWave = ExportWave
/**
- * Checks if an audio stream is ready
+ * Export wave sample data to code (.h), returns true on success
*
- * @param {AudioStream} stream
+ * @param {Wave} wave
+ * @param {string} fileName
*
* @return {boolean} The resulting bool.
*/
-function IsAudioStreamReady (stream) {
- return r.BindIsAudioStreamReady(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function ExportWaveAsCode(wave, fileName) {
+ return r.BindExportWaveAsCode(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data,
+ fileName
)
}
-raylib.IsAudioStreamReady = IsAudioStreamReady
+raylib.ExportWaveAsCode = ExportWaveAsCode
/**
- * Unload audio stream and free memory
+ * Play a sound
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
*
* @return {undefined}
*/
-function UnloadAudioStream (stream) {
- return r.BindUnloadAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
- )
-}
-raylib.UnloadAudioStream = UnloadAudioStream
+function PlaySound(sound) {
+ return r.BindPlaySound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
+ )
+}
+raylib.PlaySound = PlaySound
/**
- * Update audio stream buffers with data
+ * Stop playing a sound
*
- * @param {AudioStream} stream
- * @param {number} data
- * @param {number} frameCount
+ * @param {Sound} sound
*
* @return {undefined}
*/
-function UpdateAudioStream (stream, data, frameCount) {
- return r.BindUpdateAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels,
- data,
- frameCount
+function StopSound(sound) {
+ return r.BindStopSound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.UpdateAudioStream = UpdateAudioStream
+raylib.StopSound = StopSound
/**
- * Check if any audio stream buffers requires refill
+ * Pause a sound
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsAudioStreamProcessed (stream) {
- return r.BindIsAudioStreamProcessed(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function PauseSound(sound) {
+ return r.BindPauseSound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.IsAudioStreamProcessed = IsAudioStreamProcessed
+raylib.PauseSound = PauseSound
/**
- * Play audio stream
+ * Resume a paused sound
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
*
* @return {undefined}
*/
-function PlayAudioStream (stream) {
- return r.BindPlayAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function ResumeSound(sound) {
+ return r.BindResumeSound(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.PlayAudioStream = PlayAudioStream
+raylib.ResumeSound = ResumeSound
/**
- * Pause audio stream
+ * Check if a sound is currently playing
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
*
- * @return {undefined}
+ * @return {boolean} The resulting bool.
*/
-function PauseAudioStream (stream) {
- return r.BindPauseAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function IsSoundPlaying(sound) {
+ return r.BindIsSoundPlaying(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount
)
}
-raylib.PauseAudioStream = PauseAudioStream
+raylib.IsSoundPlaying = IsSoundPlaying
/**
- * Resume audio stream
+ * Set volume for a sound (1.0 is max level)
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
+ * @param {number} volume
*
* @return {undefined}
*/
-function ResumeAudioStream (stream) {
- return r.BindResumeAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function SetSoundVolume(sound, volume) {
+ return r.BindSetSoundVolume(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount,
+ volume
)
}
-raylib.ResumeAudioStream = ResumeAudioStream
+raylib.SetSoundVolume = SetSoundVolume
/**
- * Check if audio stream is playing
+ * Set pitch for a sound (1.0 is base level)
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
+ * @param {number} pitch
*
- * @return {boolean} The resulting bool.
+ * @return {undefined}
*/
-function IsAudioStreamPlaying (stream) {
- return r.BindIsAudioStreamPlaying(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function SetSoundPitch(sound, pitch) {
+ return r.BindSetSoundPitch(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount,
+ pitch
)
}
-raylib.IsAudioStreamPlaying = IsAudioStreamPlaying
+raylib.SetSoundPitch = SetSoundPitch
/**
- * Stop audio stream
+ * Set pan for a sound (0.5 is center)
*
- * @param {AudioStream} stream
+ * @param {Sound} sound
+ * @param {number} pan
*
* @return {undefined}
*/
-function StopAudioStream (stream) {
- return r.BindStopAudioStream(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels
+function SetSoundPan(sound, pan) {
+ return r.BindSetSoundPan(
+ sound.stream.buffer,
+ sound.stream.processor,
+ sound.stream.sampleRate,
+ sound.stream.sampleSize,
+ sound.stream.channels,
+ sound.frameCount,
+ pan
)
}
-raylib.StopAudioStream = StopAudioStream
+raylib.SetSoundPan = SetSoundPan
/**
- * Set volume for audio stream (1.0 is max level)
+ * Copy a wave to a new wave
*
- * @param {AudioStream} stream
- * @param {number} volume
+ * @param {Wave} wave
*
- * @return {undefined}
+ * @return {Wave} The resulting Wave.
*/
-function SetAudioStreamVolume (stream, volume) {
- return r.BindSetAudioStreamVolume(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels,
- volume
+function WaveCopy(wave) {
+ return r.BindWaveCopy(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data
)
}
-raylib.SetAudioStreamVolume = SetAudioStreamVolume
+raylib.WaveCopy = WaveCopy
/**
- * Set pitch for audio stream (1.0 is base level)
+ * Load samples data from wave as a 32bit float data array
*
- * @param {AudioStream} stream
- * @param {number} pitch
+ * @param {Wave} wave
*
- * @return {undefined}
+ * @return {number} The resulting float *.
*/
-function SetAudioStreamPitch (stream, pitch) {
- return r.BindSetAudioStreamPitch(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels,
- pitch
+function LoadWaveSamples(wave) {
+ return r.BindLoadWaveSamples(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data
)
}
-raylib.SetAudioStreamPitch = SetAudioStreamPitch
+raylib.LoadWaveSamples = LoadWaveSamples
/**
- * Set pan for audio stream (0.5 is centered)
+ * Unload samples data loaded with LoadWaveSamples()
*
- * @param {AudioStream} stream
- * @param {number} pan
+ * @param {number} samples
*
* @return {undefined}
*/
-function SetAudioStreamPan (stream, pan) {
- return r.BindSetAudioStreamPan(
- stream.buffer,
- stream.processor,
- stream.sampleRate,
- stream.sampleSize,
- stream.channels,
- pan
+function UnloadWaveSamples(samples) {
+ return r.BindUnloadWaveSamples(
+ samples
)
}
-raylib.SetAudioStreamPan = SetAudioStreamPan
+raylib.UnloadWaveSamples = UnloadWaveSamples
/**
- * Default size for new audio streams
+ * Load music stream from file
*
- * @param {number} size
+ * @param {string} fileName
*
- * @return {undefined}
+ * @return {Music} The resulting Music.
*/
-function SetAudioStreamBufferSizeDefault (size) {
- return r.BindSetAudioStreamBufferSizeDefault(
- size
+function LoadMusicStream(fileName) {
+ return r.BindLoadMusicStream(
+ fileName
)
}
-raylib.SetAudioStreamBufferSizeDefault = SetAudioStreamBufferSizeDefault
+raylib.LoadMusicStream = LoadMusicStream
/**
- * Ease: Linear
+ * Load music stream from data
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {string} fileType
+ * @param {Buffer} data
+ * @param {number} dataSize
*
- * @return {number} The resulting float.
+ * @return {Music} The resulting Music.
*/
-function EaseLinearNone (t, b, c, d) {
- return r.BindEaseLinearNone(
- t,
- b,
- c,
- d
+function LoadMusicStreamFromMemory(fileType, data, dataSize) {
+ return r.BindLoadMusicStreamFromMemory(
+ fileType,
+ data,
+ dataSize
)
}
-raylib.EaseLinearNone = EaseLinearNone
+raylib.LoadMusicStreamFromMemory = LoadMusicStreamFromMemory
/**
- * Ease: Linear In
+ * Checks if a music stream is ready
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {boolean} The resulting bool.
*/
-function EaseLinearIn (t, b, c, d) {
- return r.BindEaseLinearIn(
- t,
- b,
- c,
- d
+function IsMusicReady(music) {
+ return r.BindIsMusicReady(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseLinearIn = EaseLinearIn
+raylib.IsMusicReady = IsMusicReady
/**
- * Ease: Linear Out
+ * Unload music stream
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseLinearOut (t, b, c, d) {
- return r.BindEaseLinearOut(
- t,
- b,
- c,
- d
+function UnloadMusicStream(music) {
+ return r.BindUnloadMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseLinearOut = EaseLinearOut
+raylib.UnloadMusicStream = UnloadMusicStream
/**
- * Ease: Linear In Out
+ * Start music playing
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseLinearInOut (t, b, c, d) {
- return r.BindEaseLinearInOut(
- t,
- b,
- c,
- d
+function PlayMusicStream(music) {
+ return r.BindPlayMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseLinearInOut = EaseLinearInOut
+raylib.PlayMusicStream = PlayMusicStream
/**
- * Ease: Sine In
+ * Check if music is playing
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {boolean} The resulting bool.
*/
-function EaseSineIn (t, b, c, d) {
- return r.BindEaseSineIn(
- t,
- b,
- c,
- d
+function IsMusicStreamPlaying(music) {
+ return r.BindIsMusicStreamPlaying(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseSineIn = EaseSineIn
+raylib.IsMusicStreamPlaying = IsMusicStreamPlaying
/**
- * Ease: Sine Out
+ * Updates buffers for music streaming
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseSineOut (t, b, c, d) {
- return r.BindEaseSineOut(
- t,
- b,
- c,
- d
+function UpdateMusicStream(music) {
+ return r.BindUpdateMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseSineOut = EaseSineOut
+raylib.UpdateMusicStream = UpdateMusicStream
/**
- * Ease: Sine Out
+ * Stop music playing
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseSineInOut (t, b, c, d) {
- return r.BindEaseSineInOut(
- t,
- b,
- c,
- d
+function StopMusicStream(music) {
+ return r.BindStopMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseSineInOut = EaseSineInOut
+raylib.StopMusicStream = StopMusicStream
/**
- * Ease: Circular In
+ * Pause music playing
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseCircIn (t, b, c, d) {
- return r.BindEaseCircIn(
- t,
- b,
- c,
- d
+function PauseMusicStream(music) {
+ return r.BindPauseMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseCircIn = EaseCircIn
+raylib.PauseMusicStream = PauseMusicStream
/**
- * Ease: Circular Out
+ * Resume playing paused music
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseCircOut (t, b, c, d) {
- return r.BindEaseCircOut(
- t,
- b,
- c,
- d
+function ResumeMusicStream(music) {
+ return r.BindResumeMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseCircOut = EaseCircOut
+raylib.ResumeMusicStream = ResumeMusicStream
/**
- * Ease: Circular In Out
+ * Seek music to a position (in seconds)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
+ * @param {number} position
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseCircInOut (t, b, c, d) {
- return r.BindEaseCircInOut(
- t,
- b,
- c,
- d
+function SeekMusicStream(music, position) {
+ return r.BindSeekMusicStream(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData,
+ position
)
}
-raylib.EaseCircInOut = EaseCircInOut
+raylib.SeekMusicStream = SeekMusicStream
/**
- * Ease: Cubic In
+ * Set volume for music (1.0 is max level)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
+ * @param {number} volume
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseCubicIn (t, b, c, d) {
- return r.BindEaseCubicIn(
- t,
- b,
- c,
- d
- )
-}
-raylib.EaseCubicIn = EaseCubicIn
-
-/**
- * Ease: Cubic Out
- *
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
- *
- * @return {number} The resulting float.
- */
-function EaseCubicOut (t, b, c, d) {
- return r.BindEaseCubicOut(
- t,
- b,
- c,
- d
+function SetMusicVolume(music, volume) {
+ return r.BindSetMusicVolume(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData,
+ volume
)
}
-raylib.EaseCubicOut = EaseCubicOut
+raylib.SetMusicVolume = SetMusicVolume
/**
- * Ease: Cubic In Out
+ * Set pitch for a music (1.0 is base level)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
+ * @param {number} pitch
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseCubicInOut (t, b, c, d) {
- return r.BindEaseCubicInOut(
- t,
- b,
- c,
- d
+function SetMusicPitch(music, pitch) {
+ return r.BindSetMusicPitch(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData,
+ pitch
)
}
-raylib.EaseCubicInOut = EaseCubicInOut
+raylib.SetMusicPitch = SetMusicPitch
/**
- * Ease: Quadratic In
+ * Set pan for a music (0.5 is center)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
+ * @param {number} pan
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseQuadIn (t, b, c, d) {
- return r.BindEaseQuadIn(
- t,
- b,
- c,
- d
+function SetMusicPan(music, pan) {
+ return r.BindSetMusicPan(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData,
+ pan
)
}
-raylib.EaseQuadIn = EaseQuadIn
+raylib.SetMusicPan = SetMusicPan
/**
- * Ease: Quadratic Out
+ * Get music time length (in seconds)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
* @return {number} The resulting float.
*/
-function EaseQuadOut (t, b, c, d) {
- return r.BindEaseQuadOut(
- t,
- b,
- c,
- d
+function GetMusicTimeLength(music) {
+ return r.BindGetMusicTimeLength(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseQuadOut = EaseQuadOut
+raylib.GetMusicTimeLength = GetMusicTimeLength
/**
- * Ease: Quadratic In Out
+ * Get current music time played (in seconds)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {Music} music
*
* @return {number} The resulting float.
*/
-function EaseQuadInOut (t, b, c, d) {
- return r.BindEaseQuadInOut(
- t,
- b,
- c,
- d
+function GetMusicTimePlayed(music) {
+ return r.BindGetMusicTimePlayed(
+ music.stream.buffer,
+ music.stream.processor,
+ music.stream.sampleRate,
+ music.stream.sampleSize,
+ music.stream.channels,
+ music.frameCount,
+ music.looping,
+ music.ctxType,
+ music.ctxData
)
}
-raylib.EaseQuadInOut = EaseQuadInOut
+raylib.GetMusicTimePlayed = GetMusicTimePlayed
/**
- * Ease: Exponential In
+ * Load audio stream (to stream raw audio pcm data)
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {number} sampleRate
+ * @param {number} sampleSize
+ * @param {number} channels
*
- * @return {number} The resulting float.
+ * @return {AudioStream} The resulting AudioStream.
*/
-function EaseExpoIn (t, b, c, d) {
- return r.BindEaseExpoIn(
- t,
- b,
- c,
- d
+function LoadAudioStream(sampleRate, sampleSize, channels) {
+ return r.BindLoadAudioStream(
+ sampleRate,
+ sampleSize,
+ channels
)
}
-raylib.EaseExpoIn = EaseExpoIn
+raylib.LoadAudioStream = LoadAudioStream
/**
- * Ease: Exponential Out
+ * Checks if an audio stream is ready
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {AudioStream} stream
*
- * @return {number} The resulting float.
+ * @return {boolean} The resulting bool.
*/
-function EaseExpoOut (t, b, c, d) {
- return r.BindEaseExpoOut(
- t,
- b,
- c,
- d
+function IsAudioStreamReady(stream) {
+ return r.BindIsAudioStreamReady(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
)
}
-raylib.EaseExpoOut = EaseExpoOut
+raylib.IsAudioStreamReady = IsAudioStreamReady
/**
- * Ease: Exponential In Out
+ * Unload audio stream and free memory
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {AudioStream} stream
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseExpoInOut (t, b, c, d) {
- return r.BindEaseExpoInOut(
- t,
- b,
- c,
- d
+function UnloadAudioStream(stream) {
+ return r.BindUnloadAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
)
}
-raylib.EaseExpoInOut = EaseExpoInOut
+raylib.UnloadAudioStream = UnloadAudioStream
/**
- * Ease: Back In
+ * Update audio stream buffers with data
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {AudioStream} stream
+ * @param {number} data
+ * @param {number} frameCount
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseBackIn (t, b, c, d) {
- return r.BindEaseBackIn(
- t,
- b,
- c,
- d
+function UpdateAudioStream(stream, data, frameCount) {
+ return r.BindUpdateAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels,
+ data,
+ frameCount
)
}
-raylib.EaseBackIn = EaseBackIn
+raylib.UpdateAudioStream = UpdateAudioStream
/**
- * Ease: Back Out
+ * Check if any audio stream buffers requires refill
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {AudioStream} stream
*
- * @return {number} The resulting float.
+ * @return {boolean} The resulting bool.
*/
-function EaseBackOut (t, b, c, d) {
- return r.BindEaseBackOut(
- t,
- b,
- c,
- d
+function IsAudioStreamProcessed(stream) {
+ return r.BindIsAudioStreamProcessed(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
)
}
-raylib.EaseBackOut = EaseBackOut
+raylib.IsAudioStreamProcessed = IsAudioStreamProcessed
/**
- * Ease: Back In Out
+ * Play audio stream
*
- * @param {number} t
- * @param {number} b
- * @param {number} c
- * @param {number} d
+ * @param {AudioStream} stream
*
- * @return {number} The resulting float.
+ * @return {undefined}
*/
-function EaseBackInOut (t, b, c, d) {
- return r.BindEaseBackInOut(
- t,
- b,
- c,
- d
+function PlayAudioStream(stream) {
+ return r.BindPlayAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
)
}
-raylib.EaseBackInOut = EaseBackInOut
+raylib.PlayAudioStream = PlayAudioStream
/**
- * Ease: Bounce Out
+ * Pause audio stream
+ *
+ * @param {AudioStream} stream
+ *
+ * @return {undefined}
+ */
+function PauseAudioStream(stream) {
+ return r.BindPauseAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
+ )
+}
+raylib.PauseAudioStream = PauseAudioStream
+
+/**
+ * Resume audio stream
+ *
+ * @param {AudioStream} stream
+ *
+ * @return {undefined}
+ */
+function ResumeAudioStream(stream) {
+ return r.BindResumeAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
+ )
+}
+raylib.ResumeAudioStream = ResumeAudioStream
+
+/**
+ * Check if audio stream is playing
+ *
+ * @param {AudioStream} stream
+ *
+ * @return {boolean} The resulting bool.
+ */
+function IsAudioStreamPlaying(stream) {
+ return r.BindIsAudioStreamPlaying(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
+ )
+}
+raylib.IsAudioStreamPlaying = IsAudioStreamPlaying
+
+/**
+ * Stop audio stream
+ *
+ * @param {AudioStream} stream
+ *
+ * @return {undefined}
+ */
+function StopAudioStream(stream) {
+ return r.BindStopAudioStream(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels
+ )
+}
+raylib.StopAudioStream = StopAudioStream
+
+/**
+ * Set volume for audio stream (1.0 is max level)
+ *
+ * @param {AudioStream} stream
+ * @param {number} volume
+ *
+ * @return {undefined}
+ */
+function SetAudioStreamVolume(stream, volume) {
+ return r.BindSetAudioStreamVolume(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels,
+ volume
+ )
+}
+raylib.SetAudioStreamVolume = SetAudioStreamVolume
+
+/**
+ * Set pitch for audio stream (1.0 is base level)
+ *
+ * @param {AudioStream} stream
+ * @param {number} pitch
+ *
+ * @return {undefined}
+ */
+function SetAudioStreamPitch(stream, pitch) {
+ return r.BindSetAudioStreamPitch(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels,
+ pitch
+ )
+}
+raylib.SetAudioStreamPitch = SetAudioStreamPitch
+
+/**
+ * Set pan for audio stream (0.5 is centered)
+ *
+ * @param {AudioStream} stream
+ * @param {number} pan
+ *
+ * @return {undefined}
+ */
+function SetAudioStreamPan(stream, pan) {
+ return r.BindSetAudioStreamPan(
+ stream.buffer,
+ stream.processor,
+ stream.sampleRate,
+ stream.sampleSize,
+ stream.channels,
+ pan
+ )
+}
+raylib.SetAudioStreamPan = SetAudioStreamPan
+
+/**
+ * Default size for new audio streams
+ *
+ * @param {number} size
+ *
+ * @return {undefined}
+ */
+function SetAudioStreamBufferSizeDefault(size) {
+ return r.BindSetAudioStreamBufferSizeDefault(
+ size
+ )
+}
+raylib.SetAudioStreamBufferSizeDefault = SetAudioStreamBufferSizeDefault
+
+/**
+ * Ease: Linear
*
* @param {number} t
* @param {number} b
@@ -9179,18 +9401,18 @@ raylib.EaseBackInOut = EaseBackInOut
*
* @return {number} The resulting float.
*/
-function EaseBounceOut (t, b, c, d) {
- return r.BindEaseBounceOut(
+function EaseLinearNone(t, b, c, d) {
+ return r.BindEaseLinearNone(
t,
b,
c,
d
)
}
-raylib.EaseBounceOut = EaseBounceOut
+raylib.EaseLinearNone = EaseLinearNone
/**
- * Ease: Bounce In
+ * Ease: Linear In
*
* @param {number} t
* @param {number} b
@@ -9199,18 +9421,18 @@ raylib.EaseBounceOut = EaseBounceOut
*
* @return {number} The resulting float.
*/
-function EaseBounceIn (t, b, c, d) {
- return r.BindEaseBounceIn(
+function EaseLinearIn(t, b, c, d) {
+ return r.BindEaseLinearIn(
t,
b,
c,
d
)
}
-raylib.EaseBounceIn = EaseBounceIn
+raylib.EaseLinearIn = EaseLinearIn
/**
- * Ease: Bounce In Out
+ * Ease: Linear Out
*
* @param {number} t
* @param {number} b
@@ -9219,18 +9441,18 @@ raylib.EaseBounceIn = EaseBounceIn
*
* @return {number} The resulting float.
*/
-function EaseBounceInOut (t, b, c, d) {
- return r.BindEaseBounceInOut(
+function EaseLinearOut(t, b, c, d) {
+ return r.BindEaseLinearOut(
t,
b,
c,
d
)
}
-raylib.EaseBounceInOut = EaseBounceInOut
+raylib.EaseLinearOut = EaseLinearOut
/**
- * Ease: Elastic In
+ * Ease: Linear In Out
*
* @param {number} t
* @param {number} b
@@ -9239,18 +9461,18 @@ raylib.EaseBounceInOut = EaseBounceInOut
*
* @return {number} The resulting float.
*/
-function EaseElasticIn (t, b, c, d) {
- return r.BindEaseElasticIn(
+function EaseLinearInOut(t, b, c, d) {
+ return r.BindEaseLinearInOut(
t,
b,
c,
d
)
}
-raylib.EaseElasticIn = EaseElasticIn
+raylib.EaseLinearInOut = EaseLinearInOut
/**
- * Ease: Elastic Out
+ * Ease: Sine In
*
* @param {number} t
* @param {number} b
@@ -9259,18 +9481,18 @@ raylib.EaseElasticIn = EaseElasticIn
*
* @return {number} The resulting float.
*/
-function EaseElasticOut (t, b, c, d) {
- return r.BindEaseElasticOut(
+function EaseSineIn(t, b, c, d) {
+ return r.BindEaseSineIn(
t,
b,
c,
d
)
}
-raylib.EaseElasticOut = EaseElasticOut
+raylib.EaseSineIn = EaseSineIn
/**
- * Ease: Elastic In Out
+ * Ease: Sine Out
*
* @param {number} t
* @param {number} b
@@ -9279,327 +9501,767 @@ raylib.EaseElasticOut = EaseElasticOut
*
* @return {number} The resulting float.
*/
-function EaseElasticInOut (t, b, c, d) {
- return r.BindEaseElasticInOut(
+function EaseSineOut(t, b, c, d) {
+ return r.BindEaseSineOut(
t,
b,
c,
d
)
}
-raylib.EaseElasticInOut = EaseElasticInOut
-
-function Clamp (value, min, max) {
- return r.BindClamp(
- value,
- min,
- max
- )
-}
-raylib.Clamp = Clamp
+raylib.EaseSineOut = EaseSineOut
-function Lerp (start, end, amount) {
- return r.BindLerp(
- start,
- end,
- amount
+/**
+ * Ease: Sine Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseSineInOut(t, b, c, d) {
+ return r.BindEaseSineInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Lerp = Lerp
+raylib.EaseSineInOut = EaseSineInOut
-function Normalize (value, start, end) {
- return r.BindNormalize(
- value,
- start,
- end
+/**
+ * Ease: Circular In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCircIn(t, b, c, d) {
+ return r.BindEaseCircIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Normalize = Normalize
+raylib.EaseCircIn = EaseCircIn
-function Remap (value, inputStart, inputEnd, outputStart, outputEnd) {
- return r.BindRemap(
- value,
- inputStart,
- inputEnd,
- outputStart,
- outputEnd
+/**
+ * Ease: Circular Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCircOut(t, b, c, d) {
+ return r.BindEaseCircOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Remap = Remap
+raylib.EaseCircOut = EaseCircOut
-function Wrap (value, min, max) {
- return r.BindWrap(
- value,
- min,
- max
+/**
+ * Ease: Circular In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCircInOut(t, b, c, d) {
+ return r.BindEaseCircInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Wrap = Wrap
+raylib.EaseCircInOut = EaseCircInOut
-function FloatEquals (x, y) {
- return r.BindFloatEquals(
- x,
- y
+/**
+ * Ease: Cubic In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCubicIn(t, b, c, d) {
+ return r.BindEaseCubicIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.FloatEquals = FloatEquals
-
-function Vector2Zero () {
- return r.BindVector2Zero()
-}
-raylib.Vector2Zero = Vector2Zero
+raylib.EaseCubicIn = EaseCubicIn
-function Vector2One () {
- return r.BindVector2One()
+/**
+ * Ease: Cubic Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCubicOut(t, b, c, d) {
+ return r.BindEaseCubicOut(
+ t,
+ b,
+ c,
+ d
+ )
}
-raylib.Vector2One = Vector2One
+raylib.EaseCubicOut = EaseCubicOut
-function Vector2Add (v1, v2) {
- return r.BindVector2Add(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Cubic In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseCubicInOut(t, b, c, d) {
+ return r.BindEaseCubicInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Add = Vector2Add
+raylib.EaseCubicInOut = EaseCubicInOut
-function Vector2AddValue (v, add) {
- return r.BindVector2AddValue(
- v.x,
- v.y,
- add
+/**
+ * Ease: Quadratic In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseQuadIn(t, b, c, d) {
+ return r.BindEaseQuadIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2AddValue = Vector2AddValue
+raylib.EaseQuadIn = EaseQuadIn
-function Vector2Subtract (v1, v2) {
- return r.BindVector2Subtract(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Quadratic Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseQuadOut(t, b, c, d) {
+ return r.BindEaseQuadOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Subtract = Vector2Subtract
+raylib.EaseQuadOut = EaseQuadOut
-function Vector2SubtractValue (v, sub) {
- return r.BindVector2SubtractValue(
- v.x,
- v.y,
- sub
+/**
+ * Ease: Quadratic In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseQuadInOut(t, b, c, d) {
+ return r.BindEaseQuadInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2SubtractValue = Vector2SubtractValue
+raylib.EaseQuadInOut = EaseQuadInOut
-function Vector2Length (v) {
- return r.BindVector2Length(
- v.x,
- v.y
+/**
+ * Ease: Exponential In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseExpoIn(t, b, c, d) {
+ return r.BindEaseExpoIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Length = Vector2Length
+raylib.EaseExpoIn = EaseExpoIn
-function Vector2LengthSqr (v) {
- return r.BindVector2LengthSqr(
- v.x,
- v.y
+/**
+ * Ease: Exponential Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseExpoOut(t, b, c, d) {
+ return r.BindEaseExpoOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2LengthSqr = Vector2LengthSqr
+raylib.EaseExpoOut = EaseExpoOut
-function Vector2DotProduct (v1, v2) {
- return r.BindVector2DotProduct(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Exponential In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseExpoInOut(t, b, c, d) {
+ return r.BindEaseExpoInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2DotProduct = Vector2DotProduct
+raylib.EaseExpoInOut = EaseExpoInOut
-function Vector2Distance (v1, v2) {
- return r.BindVector2Distance(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Back In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBackIn(t, b, c, d) {
+ return r.BindEaseBackIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Distance = Vector2Distance
+raylib.EaseBackIn = EaseBackIn
-function Vector2DistanceSqr (v1, v2) {
- return r.BindVector2DistanceSqr(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Back Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBackOut(t, b, c, d) {
+ return r.BindEaseBackOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2DistanceSqr = Vector2DistanceSqr
+raylib.EaseBackOut = EaseBackOut
-function Vector2Angle (v1, v2) {
- return r.BindVector2Angle(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Back In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBackInOut(t, b, c, d) {
+ return r.BindEaseBackInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Angle = Vector2Angle
+raylib.EaseBackInOut = EaseBackInOut
-function Vector2LineAngle (start, end) {
- return r.BindVector2LineAngle(
- start.x,
- start.y,
- end.x,
- end.y
+/**
+ * Ease: Bounce Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBounceOut(t, b, c, d) {
+ return r.BindEaseBounceOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2LineAngle = Vector2LineAngle
+raylib.EaseBounceOut = EaseBounceOut
-function Vector2Scale (v, scale) {
- return r.BindVector2Scale(
- v.x,
- v.y,
- scale
+/**
+ * Ease: Bounce In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBounceIn(t, b, c, d) {
+ return r.BindEaseBounceIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Scale = Vector2Scale
+raylib.EaseBounceIn = EaseBounceIn
-function Vector2Multiply (v1, v2) {
- return r.BindVector2Multiply(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Bounce In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseBounceInOut(t, b, c, d) {
+ return r.BindEaseBounceInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Multiply = Vector2Multiply
+raylib.EaseBounceInOut = EaseBounceInOut
-function Vector2Negate (v) {
- return r.BindVector2Negate(
- v.x,
- v.y
+/**
+ * Ease: Elastic In
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseElasticIn(t, b, c, d) {
+ return r.BindEaseElasticIn(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Negate = Vector2Negate
+raylib.EaseElasticIn = EaseElasticIn
-function Vector2Divide (v1, v2) {
- return r.BindVector2Divide(
- v1.x,
- v1.y,
- v2.x,
- v2.y
+/**
+ * Ease: Elastic Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseElasticOut(t, b, c, d) {
+ return r.BindEaseElasticOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Divide = Vector2Divide
+raylib.EaseElasticOut = EaseElasticOut
-function Vector2Normalize (v) {
- return r.BindVector2Normalize(
- v.x,
- v.y
+/**
+ * Ease: Elastic In Out
+ *
+ * @param {number} t
+ * @param {number} b
+ * @param {number} c
+ * @param {number} d
+ *
+ * @return {number} The resulting float.
+ */
+function EaseElasticInOut(t, b, c, d) {
+ return r.BindEaseElasticInOut(
+ t,
+ b,
+ c,
+ d
)
}
-raylib.Vector2Normalize = Vector2Normalize
+raylib.EaseElasticInOut = EaseElasticInOut
-function Vector2Transform (v, mat) {
- return r.BindVector2Transform(
- v.x,
- v.y,
- mat.m0,
- mat.m4,
- mat.m8,
- mat.m12,
- mat.m1,
- mat.m5,
- mat.m9,
- mat.m13,
- mat.m2,
- mat.m6,
- mat.m10,
- mat.m14,
- mat.m3,
- mat.m7,
- mat.m11,
- mat.m15
+function Clamp(value, min, max) {
+ return r.BindClamp(
+ value,
+ min,
+ max
)
}
-raylib.Vector2Transform = Vector2Transform
+raylib.Clamp = Clamp
-function Vector2Lerp (v1, v2, amount) {
- return r.BindVector2Lerp(
- v1.x,
- v1.y,
- v2.x,
- v2.y,
+function Lerp(start, end, amount) {
+ return r.BindLerp(
+ start,
+ end,
amount
)
}
-raylib.Vector2Lerp = Vector2Lerp
+raylib.Lerp = Lerp
-function Vector2Reflect (v, normal) {
- return r.BindVector2Reflect(
- v.x,
- v.y,
- normal.x,
- normal.y
+function Normalize(value, start, end) {
+ return r.BindNormalize(
+ value,
+ start,
+ end
)
}
-raylib.Vector2Reflect = Vector2Reflect
+raylib.Normalize = Normalize
-function Vector2Rotate (v, angle) {
- return r.BindVector2Rotate(
- v.x,
- v.y,
- angle
+function Remap(value, inputStart, inputEnd, outputStart, outputEnd) {
+ return r.BindRemap(
+ value,
+ inputStart,
+ inputEnd,
+ outputStart,
+ outputEnd
)
}
-raylib.Vector2Rotate = Vector2Rotate
+raylib.Remap = Remap
-function Vector2MoveTowards (v, target, maxDistance) {
- return r.BindVector2MoveTowards(
- v.x,
- v.y,
- target.x,
- target.y,
- maxDistance
+function Wrap(value, min, max) {
+ return r.BindWrap(
+ value,
+ min,
+ max
)
}
-raylib.Vector2MoveTowards = Vector2MoveTowards
+raylib.Wrap = Wrap
-function Vector2Invert (v) {
- return r.BindVector2Invert(
- v.x,
- v.y
+function FloatEquals(x, y) {
+ return r.BindFloatEquals(
+ x,
+ y
)
}
-raylib.Vector2Invert = Vector2Invert
+raylib.FloatEquals = FloatEquals
-function Vector2Clamp (v, min, max) {
- return r.BindVector2Clamp(
- v.x,
- v.y,
- min.x,
- min.y,
- max.x,
- max.y
+function Vector2Zero() {
+ return r.BindVector2Zero()
+}
+raylib.Vector2Zero = Vector2Zero
+
+function Vector2One() {
+ return r.BindVector2One()
+}
+raylib.Vector2One = Vector2One
+
+function Vector2Add(v1, v2) {
+ return r.BindVector2Add(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
)
}
-raylib.Vector2Clamp = Vector2Clamp
+raylib.Vector2Add = Vector2Add
-function Vector2ClampValue (v, min, max) {
- return r.BindVector2ClampValue(
+function Vector2AddValue(v, add) {
+ return r.BindVector2AddValue(
v.x,
v.y,
- min,
- max
+ add
)
}
-raylib.Vector2ClampValue = Vector2ClampValue
+raylib.Vector2AddValue = Vector2AddValue
-function Vector2Equals (p, q) {
- return r.BindVector2Equals(
+function Vector2Subtract(v1, v2) {
+ return r.BindVector2Subtract(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2Subtract = Vector2Subtract
+
+function Vector2SubtractValue(v, sub) {
+ return r.BindVector2SubtractValue(
+ v.x,
+ v.y,
+ sub
+ )
+}
+raylib.Vector2SubtractValue = Vector2SubtractValue
+
+function Vector2Length(v) {
+ return r.BindVector2Length(
+ v.x,
+ v.y
+ )
+}
+raylib.Vector2Length = Vector2Length
+
+function Vector2LengthSqr(v) {
+ return r.BindVector2LengthSqr(
+ v.x,
+ v.y
+ )
+}
+raylib.Vector2LengthSqr = Vector2LengthSqr
+
+function Vector2DotProduct(v1, v2) {
+ return r.BindVector2DotProduct(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2DotProduct = Vector2DotProduct
+
+function Vector2Distance(v1, v2) {
+ return r.BindVector2Distance(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2Distance = Vector2Distance
+
+function Vector2DistanceSqr(v1, v2) {
+ return r.BindVector2DistanceSqr(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2DistanceSqr = Vector2DistanceSqr
+
+function Vector2Angle(v1, v2) {
+ return r.BindVector2Angle(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2Angle = Vector2Angle
+
+function Vector2LineAngle(start, end) {
+ return r.BindVector2LineAngle(
+ start.x,
+ start.y,
+ end.x,
+ end.y
+ )
+}
+raylib.Vector2LineAngle = Vector2LineAngle
+
+function Vector2Scale(v, scale) {
+ return r.BindVector2Scale(
+ v.x,
+ v.y,
+ scale
+ )
+}
+raylib.Vector2Scale = Vector2Scale
+
+function Vector2Multiply(v1, v2) {
+ return r.BindVector2Multiply(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2Multiply = Vector2Multiply
+
+function Vector2Negate(v) {
+ return r.BindVector2Negate(
+ v.x,
+ v.y
+ )
+}
+raylib.Vector2Negate = Vector2Negate
+
+function Vector2Divide(v1, v2) {
+ return r.BindVector2Divide(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y
+ )
+}
+raylib.Vector2Divide = Vector2Divide
+
+function Vector2Normalize(v) {
+ return r.BindVector2Normalize(
+ v.x,
+ v.y
+ )
+}
+raylib.Vector2Normalize = Vector2Normalize
+
+function Vector2Transform(v, mat) {
+ return r.BindVector2Transform(
+ v.x,
+ v.y,
+ mat.m0,
+ mat.m4,
+ mat.m8,
+ mat.m12,
+ mat.m1,
+ mat.m5,
+ mat.m9,
+ mat.m13,
+ mat.m2,
+ mat.m6,
+ mat.m10,
+ mat.m14,
+ mat.m3,
+ mat.m7,
+ mat.m11,
+ mat.m15
+ )
+}
+raylib.Vector2Transform = Vector2Transform
+
+function Vector2Lerp(v1, v2, amount) {
+ return r.BindVector2Lerp(
+ v1.x,
+ v1.y,
+ v2.x,
+ v2.y,
+ amount
+ )
+}
+raylib.Vector2Lerp = Vector2Lerp
+
+function Vector2Reflect(v, normal) {
+ return r.BindVector2Reflect(
+ v.x,
+ v.y,
+ normal.x,
+ normal.y
+ )
+}
+raylib.Vector2Reflect = Vector2Reflect
+
+function Vector2Rotate(v, angle) {
+ return r.BindVector2Rotate(
+ v.x,
+ v.y,
+ angle
+ )
+}
+raylib.Vector2Rotate = Vector2Rotate
+
+function Vector2MoveTowards(v, target, maxDistance) {
+ return r.BindVector2MoveTowards(
+ v.x,
+ v.y,
+ target.x,
+ target.y,
+ maxDistance
+ )
+}
+raylib.Vector2MoveTowards = Vector2MoveTowards
+
+function Vector2Invert(v) {
+ return r.BindVector2Invert(
+ v.x,
+ v.y
+ )
+}
+raylib.Vector2Invert = Vector2Invert
+
+function Vector2Clamp(v, min, max) {
+ return r.BindVector2Clamp(
+ v.x,
+ v.y,
+ min.x,
+ min.y,
+ max.x,
+ max.y
+ )
+}
+raylib.Vector2Clamp = Vector2Clamp
+
+function Vector2ClampValue(v, min, max) {
+ return r.BindVector2ClampValue(
+ v.x,
+ v.y,
+ min,
+ max
+ )
+}
+raylib.Vector2ClampValue = Vector2ClampValue
+
+function Vector2Equals(p, q) {
+ return r.BindVector2Equals(
p.x,
p.y,
q.x,
@@ -9608,17 +10270,17 @@ function Vector2Equals (p, q) {
}
raylib.Vector2Equals = Vector2Equals
-function Vector3Zero () {
+function Vector3Zero() {
return r.BindVector3Zero()
}
raylib.Vector3Zero = Vector3Zero
-function Vector3One () {
+function Vector3One() {
return r.BindVector3One()
}
raylib.Vector3One = Vector3One
-function Vector3Add (v1, v2) {
+function Vector3Add(v1, v2) {
return r.BindVector3Add(
v1.x,
v1.y,
@@ -9630,7 +10292,7 @@ function Vector3Add (v1, v2) {
}
raylib.Vector3Add = Vector3Add
-function Vector3AddValue (v, add) {
+function Vector3AddValue(v, add) {
return r.BindVector3AddValue(
v.x,
v.y,
@@ -9640,7 +10302,7 @@ function Vector3AddValue (v, add) {
}
raylib.Vector3AddValue = Vector3AddValue
-function Vector3Subtract (v1, v2) {
+function Vector3Subtract(v1, v2) {
return r.BindVector3Subtract(
v1.x,
v1.y,
@@ -9652,7 +10314,7 @@ function Vector3Subtract (v1, v2) {
}
raylib.Vector3Subtract = Vector3Subtract
-function Vector3SubtractValue (v, sub) {
+function Vector3SubtractValue(v, sub) {
return r.BindVector3SubtractValue(
v.x,
v.y,
@@ -9662,7 +10324,7 @@ function Vector3SubtractValue (v, sub) {
}
raylib.Vector3SubtractValue = Vector3SubtractValue
-function Vector3Scale (v, scalar) {
+function Vector3Scale(v, scalar) {
return r.BindVector3Scale(
v.x,
v.y,
@@ -9672,7 +10334,7 @@ function Vector3Scale (v, scalar) {
}
raylib.Vector3Scale = Vector3Scale
-function Vector3Multiply (v1, v2) {
+function Vector3Multiply(v1, v2) {
return r.BindVector3Multiply(
v1.x,
v1.y,
@@ -9684,7 +10346,7 @@ function Vector3Multiply (v1, v2) {
}
raylib.Vector3Multiply = Vector3Multiply
-function Vector3CrossProduct (v1, v2) {
+function Vector3CrossProduct(v1, v2) {
return r.BindVector3CrossProduct(
v1.x,
v1.y,
@@ -9696,7 +10358,7 @@ function Vector3CrossProduct (v1, v2) {
}
raylib.Vector3CrossProduct = Vector3CrossProduct
-function Vector3Perpendicular (v) {
+function Vector3Perpendicular(v) {
return r.BindVector3Perpendicular(
v.x,
v.y,
@@ -9705,21 +10367,21 @@ function Vector3Perpendicular (v) {
}
raylib.Vector3Perpendicular = Vector3Perpendicular
-function Vector3Length (v) {
+function Vector3Length(v) {
return r.BindVector3Length(
v
)
}
raylib.Vector3Length = Vector3Length
-function Vector3LengthSqr (v) {
+function Vector3LengthSqr(v) {
return r.BindVector3LengthSqr(
v
)
}
raylib.Vector3LengthSqr = Vector3LengthSqr
-function Vector3DotProduct (v1, v2) {
+function Vector3DotProduct(v1, v2) {
return r.BindVector3DotProduct(
v1.x,
v1.y,
@@ -9731,7 +10393,7 @@ function Vector3DotProduct (v1, v2) {
}
raylib.Vector3DotProduct = Vector3DotProduct
-function Vector3Distance (v1, v2) {
+function Vector3Distance(v1, v2) {
return r.BindVector3Distance(
v1.x,
v1.y,
@@ -9743,7 +10405,7 @@ function Vector3Distance (v1, v2) {
}
raylib.Vector3Distance = Vector3Distance
-function Vector3DistanceSqr (v1, v2) {
+function Vector3DistanceSqr(v1, v2) {
return r.BindVector3DistanceSqr(
v1.x,
v1.y,
@@ -9755,7 +10417,7 @@ function Vector3DistanceSqr (v1, v2) {
}
raylib.Vector3DistanceSqr = Vector3DistanceSqr
-function Vector3Angle (v1, v2) {
+function Vector3Angle(v1, v2) {
return r.BindVector3Angle(
v1.x,
v1.y,
@@ -9767,7 +10429,7 @@ function Vector3Angle (v1, v2) {
}
raylib.Vector3Angle = Vector3Angle
-function Vector3Negate (v) {
+function Vector3Negate(v) {
return r.BindVector3Negate(
v.x,
v.y,
@@ -9776,7 +10438,7 @@ function Vector3Negate (v) {
}
raylib.Vector3Negate = Vector3Negate
-function Vector3Divide (v1, v2) {
+function Vector3Divide(v1, v2) {
return r.BindVector3Divide(
v1.x,
v1.y,
@@ -9788,7 +10450,7 @@ function Vector3Divide (v1, v2) {
}
raylib.Vector3Divide = Vector3Divide
-function Vector3Normalize (v) {
+function Vector3Normalize(v) {
return r.BindVector3Normalize(
v.x,
v.y,
@@ -9797,7 +10459,31 @@ function Vector3Normalize (v) {
}
raylib.Vector3Normalize = Vector3Normalize
-function Vector3OrthoNormalize (v1, v2) {
+function Vector3Project(v1, v2) {
+ return r.BindVector3Project(
+ v1.x,
+ v1.y,
+ v1.z,
+ v2.x,
+ v2.y,
+ v2.z
+ )
+}
+raylib.Vector3Project = Vector3Project
+
+function Vector3Reject(v1, v2) {
+ return r.BindVector3Reject(
+ v1.x,
+ v1.y,
+ v1.z,
+ v2.x,
+ v2.y,
+ v2.z
+ )
+}
+raylib.Vector3Reject = Vector3Reject
+
+function Vector3OrthoNormalize(v1, v2) {
return r.BindVector3OrthoNormalize(
v1,
v2
@@ -9805,7 +10491,7 @@ function Vector3OrthoNormalize (v1, v2) {
}
raylib.Vector3OrthoNormalize = Vector3OrthoNormalize
-function Vector3Transform (v, mat) {
+function Vector3Transform(v, mat) {
return r.BindVector3Transform(
v.x,
v.y,
@@ -9830,7 +10516,7 @@ function Vector3Transform (v, mat) {
}
raylib.Vector3Transform = Vector3Transform
-function Vector3RotateByQuaternion (v, q) {
+function Vector3RotateByQuaternion(v, q) {
return r.BindVector3RotateByQuaternion(
v.x,
v.y,
@@ -9840,7 +10526,7 @@ function Vector3RotateByQuaternion (v, q) {
}
raylib.Vector3RotateByQuaternion = Vector3RotateByQuaternion
-function Vector3RotateByAxisAngle (v, axis, angle) {
+function Vector3RotateByAxisAngle(v, axis, angle) {
return r.BindVector3RotateByAxisAngle(
v.x,
v.y,
@@ -9853,7 +10539,7 @@ function Vector3RotateByAxisAngle (v, axis, angle) {
}
raylib.Vector3RotateByAxisAngle = Vector3RotateByAxisAngle
-function Vector3Lerp (v1, v2, amount) {
+function Vector3Lerp(v1, v2, amount) {
return r.BindVector3Lerp(
v1.x,
v1.y,
@@ -9866,7 +10552,7 @@ function Vector3Lerp (v1, v2, amount) {
}
raylib.Vector3Lerp = Vector3Lerp
-function Vector3Reflect (v, normal) {
+function Vector3Reflect(v, normal) {
return r.BindVector3Reflect(
v.x,
v.y,
@@ -9878,7 +10564,7 @@ function Vector3Reflect (v, normal) {
}
raylib.Vector3Reflect = Vector3Reflect
-function Vector3Min (v1, v2) {
+function Vector3Min(v1, v2) {
return r.BindVector3Min(
v1.x,
v1.y,
@@ -9890,7 +10576,7 @@ function Vector3Min (v1, v2) {
}
raylib.Vector3Min = Vector3Min
-function Vector3Max (v1, v2) {
+function Vector3Max(v1, v2) {
return r.BindVector3Max(
v1.x,
v1.y,
@@ -9902,7 +10588,7 @@ function Vector3Max (v1, v2) {
}
raylib.Vector3Max = Vector3Max
-function Vector3Barycenter (p, a, b, c) {
+function Vector3Barycenter(p, a, b, c) {
return r.BindVector3Barycenter(
p.x,
p.y,
@@ -9920,7 +10606,7 @@ function Vector3Barycenter (p, a, b, c) {
}
raylib.Vector3Barycenter = Vector3Barycenter
-function Vector3Unproject (source, projection, view) {
+function Vector3Unproject(source, projection, view) {
return r.BindVector3Unproject(
source.x,
source.y,
@@ -9961,7 +10647,7 @@ function Vector3Unproject (source, projection, view) {
}
raylib.Vector3Unproject = Vector3Unproject
-function Vector3Invert (v) {
+function Vector3Invert(v) {
return r.BindVector3Invert(
v.x,
v.y,
@@ -9970,7 +10656,7 @@ function Vector3Invert (v) {
}
raylib.Vector3Invert = Vector3Invert
-function Vector3Clamp (v, min, max) {
+function Vector3Clamp(v, min, max) {
return r.BindVector3Clamp(
v.x,
v.y,
@@ -9985,7 +10671,7 @@ function Vector3Clamp (v, min, max) {
}
raylib.Vector3Clamp = Vector3Clamp
-function Vector3ClampValue (v, min, max) {
+function Vector3ClampValue(v, min, max) {
return r.BindVector3ClampValue(
v.x,
v.y,
@@ -9996,7 +10682,7 @@ function Vector3ClampValue (v, min, max) {
}
raylib.Vector3ClampValue = Vector3ClampValue
-function Vector3Equals (p, q) {
+function Vector3Equals(p, q) {
return r.BindVector3Equals(
p.x,
p.y,
@@ -10008,7 +10694,7 @@ function Vector3Equals (p, q) {
}
raylib.Vector3Equals = Vector3Equals
-function Vector3Refract (v, n, r) {
+function Vector3Refract(v, n, r) {
return r.BindVector3Refract(
v.x,
v.y,
@@ -10021,7 +10707,7 @@ function Vector3Refract (v, n, r) {
}
raylib.Vector3Refract = Vector3Refract
-function MatrixDeterminant (mat) {
+function MatrixDeterminant(mat) {
return r.BindMatrixDeterminant(
mat.m0,
mat.m4,
@@ -10043,7 +10729,7 @@ function MatrixDeterminant (mat) {
}
raylib.MatrixDeterminant = MatrixDeterminant
-function MatrixTrace (mat) {
+function MatrixTrace(mat) {
return r.BindMatrixTrace(
mat.m0,
mat.m4,
@@ -10065,7 +10751,7 @@ function MatrixTrace (mat) {
}
raylib.MatrixTrace = MatrixTrace
-function MatrixTranspose (mat) {
+function MatrixTranspose(mat) {
return r.BindMatrixTranspose(
mat.m0,
mat.m4,
@@ -10087,7 +10773,7 @@ function MatrixTranspose (mat) {
}
raylib.MatrixTranspose = MatrixTranspose
-function MatrixInvert (mat) {
+function MatrixInvert(mat) {
return r.BindMatrixInvert(
mat.m0,
mat.m4,
@@ -10109,12 +10795,12 @@ function MatrixInvert (mat) {
}
raylib.MatrixInvert = MatrixInvert
-function MatrixIdentity () {
+function MatrixIdentity() {
return r.BindMatrixIdentity()
}
raylib.MatrixIdentity = MatrixIdentity
-function MatrixAdd (left, right) {
+function MatrixAdd(left, right) {
return r.BindMatrixAdd(
left.m0,
left.m4,
@@ -10152,7 +10838,7 @@ function MatrixAdd (left, right) {
}
raylib.MatrixAdd = MatrixAdd
-function MatrixSubtract (left, right) {
+function MatrixSubtract(left, right) {
return r.BindMatrixSubtract(
left.m0,
left.m4,
@@ -10190,7 +10876,7 @@ function MatrixSubtract (left, right) {
}
raylib.MatrixSubtract = MatrixSubtract
-function MatrixMultiply (left, right) {
+function MatrixMultiply(left, right) {
return r.BindMatrixMultiply(
left.m0,
left.m4,
@@ -10228,7 +10914,7 @@ function MatrixMultiply (left, right) {
}
raylib.MatrixMultiply = MatrixMultiply
-function MatrixTranslate (x, y, z) {
+function MatrixTranslate(x, y, z) {
return r.BindMatrixTranslate(
x,
y,
@@ -10237,7 +10923,7 @@ function MatrixTranslate (x, y, z) {
}
raylib.MatrixTranslate = MatrixTranslate
-function MatrixRotate (axis, angle) {
+function MatrixRotate(axis, angle) {
return r.BindMatrixRotate(
axis.x,
axis.y,
@@ -10247,28 +10933,28 @@ function MatrixRotate (axis, angle) {
}
raylib.MatrixRotate = MatrixRotate
-function MatrixRotateX (angle) {
+function MatrixRotateX(angle) {
return r.BindMatrixRotateX(
angle
)
}
raylib.MatrixRotateX = MatrixRotateX
-function MatrixRotateY (angle) {
+function MatrixRotateY(angle) {
return r.BindMatrixRotateY(
angle
)
}
raylib.MatrixRotateY = MatrixRotateY
-function MatrixRotateZ (angle) {
+function MatrixRotateZ(angle) {
return r.BindMatrixRotateZ(
angle
)
}
raylib.MatrixRotateZ = MatrixRotateZ
-function MatrixRotateXYZ (angle) {
+function MatrixRotateXYZ(angle) {
return r.BindMatrixRotateXYZ(
angle.x,
angle.y,
@@ -10277,7 +10963,7 @@ function MatrixRotateXYZ (angle) {
}
raylib.MatrixRotateXYZ = MatrixRotateXYZ
-function MatrixRotateZYX (angle) {
+function MatrixRotateZYX(angle) {
return r.BindMatrixRotateZYX(
angle.x,
angle.y,
@@ -10286,7 +10972,7 @@ function MatrixRotateZYX (angle) {
}
raylib.MatrixRotateZYX = MatrixRotateZYX
-function MatrixScale (x, y, z) {
+function MatrixScale(x, y, z) {
return r.BindMatrixScale(
x,
y,
@@ -10295,7 +10981,7 @@ function MatrixScale (x, y, z) {
}
raylib.MatrixScale = MatrixScale
-function MatrixFrustum (left, right, bottom, top, near, far) {
+function MatrixFrustum(left, right, bottom, top, near, far) {
return r.BindMatrixFrustum(
left,
right,
@@ -10307,29 +10993,29 @@ function MatrixFrustum (left, right, bottom, top, near, far) {
}
raylib.MatrixFrustum = MatrixFrustum
-function MatrixPerspective (fovy, aspect, near, far) {
+function MatrixPerspective(fovY, aspect, nearPlane, farPlane) {
return r.BindMatrixPerspective(
- fovy,
+ fovY,
aspect,
- near,
- far
+ nearPlane,
+ farPlane
)
}
raylib.MatrixPerspective = MatrixPerspective
-function MatrixOrtho (left, right, bottom, top, near, far) {
+function MatrixOrtho(left, right, bottom, top, nearPlane, farPlane) {
return r.BindMatrixOrtho(
left,
right,
bottom,
top,
- near,
- far
+ nearPlane,
+ farPlane
)
}
raylib.MatrixOrtho = MatrixOrtho
-function MatrixLookAt (eye, target, up) {
+function MatrixLookAt(eye, target, up) {
return r.BindMatrixLookAt(
eye.x,
eye.y,
@@ -10344,7 +11030,7 @@ function MatrixLookAt (eye, target, up) {
}
raylib.MatrixLookAt = MatrixLookAt
-function QuaternionAdd (q1, q2) {
+function QuaternionAdd(q1, q2) {
return r.BindQuaternionAdd(
q1,
q2
@@ -10352,7 +11038,7 @@ function QuaternionAdd (q1, q2) {
}
raylib.QuaternionAdd = QuaternionAdd
-function QuaternionAddValue (q, add) {
+function QuaternionAddValue(q, add) {
return r.BindQuaternionAddValue(
q,
add
@@ -10360,7 +11046,7 @@ function QuaternionAddValue (q, add) {
}
raylib.QuaternionAddValue = QuaternionAddValue
-function QuaternionSubtract (q1, q2) {
+function QuaternionSubtract(q1, q2) {
return r.BindQuaternionSubtract(
q1,
q2
@@ -10368,7 +11054,7 @@ function QuaternionSubtract (q1, q2) {
}
raylib.QuaternionSubtract = QuaternionSubtract
-function QuaternionSubtractValue (q, sub) {
+function QuaternionSubtractValue(q, sub) {
return r.BindQuaternionSubtractValue(
q,
sub
@@ -10376,33 +11062,33 @@ function QuaternionSubtractValue (q, sub) {
}
raylib.QuaternionSubtractValue = QuaternionSubtractValue
-function QuaternionIdentity () {
+function QuaternionIdentity() {
return r.BindQuaternionIdentity()
}
raylib.QuaternionIdentity = QuaternionIdentity
-function QuaternionLength (q) {
+function QuaternionLength(q) {
return r.BindQuaternionLength(
q
)
}
raylib.QuaternionLength = QuaternionLength
-function QuaternionNormalize (q) {
+function QuaternionNormalize(q) {
return r.BindQuaternionNormalize(
q
)
}
raylib.QuaternionNormalize = QuaternionNormalize
-function QuaternionInvert (q) {
+function QuaternionInvert(q) {
return r.BindQuaternionInvert(
q
)
}
raylib.QuaternionInvert = QuaternionInvert
-function QuaternionMultiply (q1, q2) {
+function QuaternionMultiply(q1, q2) {
return r.BindQuaternionMultiply(
q1,
q2
@@ -10410,7 +11096,7 @@ function QuaternionMultiply (q1, q2) {
}
raylib.QuaternionMultiply = QuaternionMultiply
-function QuaternionScale (q, mul) {
+function QuaternionScale(q, mul) {
return r.BindQuaternionScale(
q,
mul
@@ -10418,7 +11104,7 @@ function QuaternionScale (q, mul) {
}
raylib.QuaternionScale = QuaternionScale
-function QuaternionDivide (q1, q2) {
+function QuaternionDivide(q1, q2) {
return r.BindQuaternionDivide(
q1,
q2
@@ -10426,7 +11112,7 @@ function QuaternionDivide (q1, q2) {
}
raylib.QuaternionDivide = QuaternionDivide
-function QuaternionLerp (q1, q2, amount) {
+function QuaternionLerp(q1, q2, amount) {
return r.BindQuaternionLerp(
q1,
q2,
@@ -10435,7 +11121,7 @@ function QuaternionLerp (q1, q2, amount) {
}
raylib.QuaternionLerp = QuaternionLerp
-function QuaternionNlerp (q1, q2, amount) {
+function QuaternionNlerp(q1, q2, amount) {
return r.BindQuaternionNlerp(
q1,
q2,
@@ -10444,7 +11130,7 @@ function QuaternionNlerp (q1, q2, amount) {
}
raylib.QuaternionNlerp = QuaternionNlerp
-function QuaternionSlerp (q1, q2, amount) {
+function QuaternionSlerp(q1, q2, amount) {
return r.BindQuaternionSlerp(
q1,
q2,
@@ -10453,7 +11139,7 @@ function QuaternionSlerp (q1, q2, amount) {
}
raylib.QuaternionSlerp = QuaternionSlerp
-function QuaternionFromVector3ToVector3 (from, to) {
+function QuaternionFromVector3ToVector3(from, to) {
return r.BindQuaternionFromVector3ToVector3(
from.x,
from.y,
@@ -10465,7 +11151,7 @@ function QuaternionFromVector3ToVector3 (from, to) {
}
raylib.QuaternionFromVector3ToVector3 = QuaternionFromVector3ToVector3
-function QuaternionFromMatrix (mat) {
+function QuaternionFromMatrix(mat) {
return r.BindQuaternionFromMatrix(
mat.m0,
mat.m4,
@@ -10487,14 +11173,14 @@ function QuaternionFromMatrix (mat) {
}
raylib.QuaternionFromMatrix = QuaternionFromMatrix
-function QuaternionToMatrix (q) {
+function QuaternionToMatrix(q) {
return r.BindQuaternionToMatrix(
q
)
}
raylib.QuaternionToMatrix = QuaternionToMatrix
-function QuaternionFromAxisAngle (axis, angle) {
+function QuaternionFromAxisAngle(axis, angle) {
return r.BindQuaternionFromAxisAngle(
axis.x,
axis.y,
@@ -10504,7 +11190,7 @@ function QuaternionFromAxisAngle (axis, angle) {
}
raylib.QuaternionFromAxisAngle = QuaternionFromAxisAngle
-function QuaternionToAxisAngle (q, outAxis, outAngle) {
+function QuaternionToAxisAngle(q, outAxis, outAngle) {
return r.BindQuaternionToAxisAngle(
q,
outAxis,
@@ -10513,7 +11199,7 @@ function QuaternionToAxisAngle (q, outAxis, outAngle) {
}
raylib.QuaternionToAxisAngle = QuaternionToAxisAngle
-function QuaternionFromEuler (pitch, yaw, roll) {
+function QuaternionFromEuler(pitch, yaw, roll) {
return r.BindQuaternionFromEuler(
pitch,
yaw,
@@ -10522,14 +11208,14 @@ function QuaternionFromEuler (pitch, yaw, roll) {
}
raylib.QuaternionFromEuler = QuaternionFromEuler
-function QuaternionToEuler (q) {
+function QuaternionToEuler(q) {
return r.BindQuaternionToEuler(
q
)
}
raylib.QuaternionToEuler = QuaternionToEuler
-function QuaternionTransform (q, mat) {
+function QuaternionTransform(q, mat) {
return r.BindQuaternionTransform(
q,
mat.m0,
@@ -10552,9643 +11238,6093 @@ function QuaternionTransform (q, mat) {
}
raylib.QuaternionTransform = QuaternionTransform
-function QuaternionEquals (p, q) {
+function QuaternionEquals(p, q) {
return r.BindQuaternionEquals(
p,
q
- )
-}
-raylib.QuaternionEquals = QuaternionEquals
-
-/**
- * Enable gui controls (global state)
- *
- * @return {undefined}
- */
-function GuiEnable () {
- return r.BindGuiEnable()
-}
-raylib.GuiEnable = GuiEnable
-
-/**
- * Disable gui controls (global state)
- *
- * @return {undefined}
- */
-function GuiDisable () {
- return r.BindGuiDisable()
-}
-raylib.GuiDisable = GuiDisable
-
-/**
- * Lock gui controls (global state)
- *
- * @return {undefined}
- */
-function GuiLock () {
- return r.BindGuiLock()
-}
-raylib.GuiLock = GuiLock
-
-/**
- * Unlock gui controls (global state)
- *
- * @return {undefined}
- */
-function GuiUnlock () {
- return r.BindGuiUnlock()
-}
-raylib.GuiUnlock = GuiUnlock
-
-/**
- * Check if gui is locked (global state)
- *
- * @return {boolean} The resulting bool.
- */
-function GuiIsLocked () {
- return r.BindGuiIsLocked()
-}
-raylib.GuiIsLocked = GuiIsLocked
-
-/**
- * Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
- *
- * @param {number} alpha
- *
- * @return {undefined}
- */
-function GuiFade (alpha) {
- return r.BindGuiFade(
- alpha
- )
-}
-raylib.GuiFade = GuiFade
-
-/**
- * Set gui state (global state)
- *
- * @param {number} state
- *
- * @return {undefined}
- */
-function GuiSetState (state) {
- return r.BindGuiSetState(
- state
- )
-}
-raylib.GuiSetState = GuiSetState
-
-/**
- * Get gui state (global state)
- *
- * @return {number} The resulting int.
- */
-function GuiGetState () {
- return r.BindGuiGetState()
-}
-raylib.GuiGetState = GuiGetState
-
-/**
- * Set gui custom font (global state)
- *
- * @param {Font} font
- *
- * @return {undefined}
- */
-function GuiSetFont (font) {
- return r.BindGuiSetFont(
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs
- )
-}
-raylib.GuiSetFont = GuiSetFont
-
-/**
- * Get gui custom font (global state)
- *
- * @return {Font} The resulting Font.
- */
-function GuiGetFont () {
- return r.BindGuiGetFont()
-}
-raylib.GuiGetFont = GuiGetFont
-
-/**
- * Set one style property
- *
- * @param {number} control
- * @param {number} property
- * @param {number} value
- *
- * @return {undefined}
- */
-function GuiSetStyle (control, property, value) {
- return r.BindGuiSetStyle(
- control,
- property,
- value
- )
-}
-raylib.GuiSetStyle = GuiSetStyle
-
-/**
- * Get one style property
- *
- * @param {number} control
- * @param {number} property
- *
- * @return {number} The resulting int.
- */
-function GuiGetStyle (control, property) {
- return r.BindGuiGetStyle(
- control,
- property
- )
-}
-raylib.GuiGetStyle = GuiGetStyle
-
-/**
- * Window Box control, shows a window that can be closed
- *
- * @param {Rectangle} bounds
- * @param {string} title
- *
- * @return {boolean} The resulting bool.
- */
-function GuiWindowBox (bounds, title) {
- return r.BindGuiWindowBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- title
- )
-}
-raylib.GuiWindowBox = GuiWindowBox
-
-/**
- * Group Box control with text name
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiGroupBox (bounds, text) {
- return r.BindGuiGroupBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiGroupBox = GuiGroupBox
-
-/**
- * Line separator control, could contain text
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiLine (bounds, text) {
- return r.BindGuiLine(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiLine = GuiLine
-
-/**
- * Panel control, useful to group controls
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiPanel (bounds, text) {
- return r.BindGuiPanel(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiPanel = GuiPanel
-
-/**
- * Tab Bar control, returns TAB to be closed or -1
- *
- * @param {Rectangle} bounds
- * @param {number} text
- * @param {number} count
- * @param {number} active
- *
- * @return {number} The resulting int.
- */
-function GuiTabBar (bounds, text, count, active) {
- return r.BindGuiTabBar(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- count,
- active
- )
-}
-raylib.GuiTabBar = GuiTabBar
-
-/**
- * Scroll Panel control
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {Rectangle} content
- * @param {number} scroll
- *
- * @return {Rectangle} The resulting Rectangle.
- */
-function GuiScrollPanel (bounds, text, content, scroll) {
- return r.BindGuiScrollPanel(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- content.x,
- content.y,
- content.width,
- content.height,
- scroll
- )
-}
-raylib.GuiScrollPanel = GuiScrollPanel
-
-/**
- * Label control, shows text
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiLabel (bounds, text) {
- return r.BindGuiLabel(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiLabel = GuiLabel
-
-/**
- * Button control, returns true when clicked
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {boolean} The resulting bool.
- */
-function GuiButton (bounds, text) {
- return r.BindGuiButton(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiButton = GuiButton
-
-/**
- * Label button control, show true when clicked
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {boolean} The resulting bool.
- */
-function GuiLabelButton (bounds, text) {
- return r.BindGuiLabelButton(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiLabelButton = GuiLabelButton
-
-/**
- * Toggle Button control, returns true when active
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {boolean} active
- *
- * @return {boolean} The resulting bool.
- */
-function GuiToggle (bounds, text, active) {
- return r.BindGuiToggle(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- active
- )
-}
-raylib.GuiToggle = GuiToggle
-
-/**
- * Toggle Group control, returns active toggle index
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} active
- *
- * @return {number} The resulting int.
- */
-function GuiToggleGroup (bounds, text, active) {
- return r.BindGuiToggleGroup(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- active
- )
-}
-raylib.GuiToggleGroup = GuiToggleGroup
-
-/**
- * Check Box control, returns true when active
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {boolean} checked
- *
- * @return {boolean} The resulting bool.
- */
-function GuiCheckBox (bounds, text, checked) {
- return r.BindGuiCheckBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- checked
- )
-}
-raylib.GuiCheckBox = GuiCheckBox
-
-/**
- * Combo Box control, returns selected item index
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} active
- *
- * @return {number} The resulting int.
- */
-function GuiComboBox (bounds, text, active) {
- return r.BindGuiComboBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- active
- )
-}
-raylib.GuiComboBox = GuiComboBox
-
-/**
- * Dropdown Box control, returns selected item
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} active
- * @param {boolean} editMode
- *
- * @return {boolean} The resulting bool.
- */
-function GuiDropdownBox (bounds, text, active, editMode) {
- return r.BindGuiDropdownBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- active,
- editMode
- )
-}
-raylib.GuiDropdownBox = GuiDropdownBox
-
-/**
- * Spinner control, returns selected value
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} value
- * @param {number} minValue
- * @param {number} maxValue
- * @param {boolean} editMode
- *
- * @return {boolean} The resulting bool.
- */
-function GuiSpinner (bounds, text, value, minValue, maxValue, editMode) {
- return r.BindGuiSpinner(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- value,
- minValue,
- maxValue,
- editMode
- )
-}
-raylib.GuiSpinner = GuiSpinner
-
-/**
- * Value Box control, updates input text with numbers
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} value
- * @param {number} minValue
- * @param {number} maxValue
- * @param {boolean} editMode
- *
- * @return {boolean} The resulting bool.
- */
-function GuiValueBox (bounds, text, value, minValue, maxValue, editMode) {
- return r.BindGuiValueBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- value,
- minValue,
- maxValue,
- editMode
- )
-}
-raylib.GuiValueBox = GuiValueBox
-
-/**
- * Text Box control, updates input text
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} textSize
- * @param {boolean} editMode
- *
- * @return {boolean} The resulting bool.
- */
-function GuiTextBox (bounds, text, textSize, editMode) {
- return r.BindGuiTextBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- textSize,
- editMode
- )
-}
-raylib.GuiTextBox = GuiTextBox
-
-/**
- * Text Box control with multiple lines
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} textSize
- * @param {boolean} editMode
- *
- * @return {boolean} The resulting bool.
- */
-function GuiTextBoxMulti (bounds, text, textSize, editMode) {
- return r.BindGuiTextBoxMulti(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- textSize,
- editMode
- )
-}
-raylib.GuiTextBoxMulti = GuiTextBoxMulti
-
-/**
- * Slider control, returns selected value
- *
- * @param {Rectangle} bounds
- * @param {string} textLeft
- * @param {string} textRight
- * @param {number} value
- * @param {number} minValue
- * @param {number} maxValue
- *
- * @return {number} The resulting float.
- */
-function GuiSlider (bounds, textLeft, textRight, value, minValue, maxValue) {
- return r.BindGuiSlider(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- textLeft,
- textRight,
- value,
- minValue,
- maxValue
- )
-}
-raylib.GuiSlider = GuiSlider
-
-/**
- * Slider Bar control, returns selected value
- *
- * @param {Rectangle} bounds
- * @param {string} textLeft
- * @param {string} textRight
- * @param {number} value
- * @param {number} minValue
- * @param {number} maxValue
- *
- * @return {number} The resulting float.
- */
-function GuiSliderBar (bounds, textLeft, textRight, value, minValue, maxValue) {
- return r.BindGuiSliderBar(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- textLeft,
- textRight,
- value,
- minValue,
- maxValue
- )
-}
-raylib.GuiSliderBar = GuiSliderBar
-
-/**
- * Progress Bar control, shows current progress value
- *
- * @param {Rectangle} bounds
- * @param {string} textLeft
- * @param {string} textRight
- * @param {number} value
- * @param {number} minValue
- * @param {number} maxValue
- *
- * @return {number} The resulting float.
- */
-function GuiProgressBar (bounds, textLeft, textRight, value, minValue, maxValue) {
- return r.BindGuiProgressBar(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- textLeft,
- textRight,
- value,
- minValue,
- maxValue
- )
-}
-raylib.GuiProgressBar = GuiProgressBar
-
-/**
- * Status Bar control, shows info text
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiStatusBar (bounds, text) {
- return r.BindGuiStatusBar(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiStatusBar = GuiStatusBar
-
-/**
- * Dummy control for placeholders
- *
- * @param {Rectangle} bounds
- * @param {string} text
- *
- * @return {undefined}
- */
-function GuiDummyRec (bounds, text) {
- return r.BindGuiDummyRec(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text
- )
-}
-raylib.GuiDummyRec = GuiDummyRec
-
-/**
- * Grid control, returns mouse cell position
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} spacing
- * @param {number} subdivs
- *
- * @return {Vector2} The resulting Vector2.
- */
-function GuiGrid (bounds, text, spacing, subdivs) {
- return r.BindGuiGrid(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- spacing,
- subdivs
- )
-}
-raylib.GuiGrid = GuiGrid
-
-/**
- * List View control, returns selected list item index
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} scrollIndex
- * @param {number} active
- *
- * @return {number} The resulting int.
- */
-function GuiListView (bounds, text, scrollIndex, active) {
- return r.BindGuiListView(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- scrollIndex,
- active
- )
-}
-raylib.GuiListView = GuiListView
-
-/**
- * List View with extended parameters
- *
- * @param {Rectangle} bounds
- * @param {number} text
- * @param {number} count
- * @param {number} focus
- * @param {number} scrollIndex
- * @param {number} active
- *
- * @return {number} The resulting int.
- */
-function GuiListViewEx (bounds, text, count, focus, scrollIndex, active) {
- return r.BindGuiListViewEx(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- count,
- focus,
- scrollIndex,
- active
- )
-}
-raylib.GuiListViewEx = GuiListViewEx
-
-/**
- * Message Box control, displays a message
- *
- * @param {Rectangle} bounds
- * @param {string} title
- * @param {string} message
- * @param {string} buttons
- *
- * @return {number} The resulting int.
- */
-function GuiMessageBox (bounds, title, message, buttons) {
- return r.BindGuiMessageBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- title,
- message,
- buttons
- )
-}
-raylib.GuiMessageBox = GuiMessageBox
-
-/**
- * Text Input Box control, ask for text, supports secret
- *
- * @param {Rectangle} bounds
- * @param {string} title
- * @param {string} message
- * @param {string} buttons
- * @param {string} text
- * @param {number} textMaxSize
- * @param {number} secretViewActive
- *
- * @return {number} The resulting int.
- */
-function GuiTextInputBox (bounds, title, message, buttons, text, textMaxSize, secretViewActive) {
- return r.BindGuiTextInputBox(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- title,
- message,
- buttons,
- text,
- textMaxSize,
- secretViewActive
- )
-}
-raylib.GuiTextInputBox = GuiTextInputBox
-
-/**
- * Color Picker control (multiple color controls)
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {Color} color
- *
- * @return {Color} The resulting Color.
- */
-function GuiColorPicker (bounds, text, color) {
- return r.BindGuiColorPicker(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- color.r,
- color.g,
- color.b,
- color.a
- )
-}
-raylib.GuiColorPicker = GuiColorPicker
-
-/**
- * Color Panel control
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {Color} color
- *
- * @return {Color} The resulting Color.
- */
-function GuiColorPanel (bounds, text, color) {
- return r.BindGuiColorPanel(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- color.r,
- color.g,
- color.b,
- color.a
- )
-}
-raylib.GuiColorPanel = GuiColorPanel
-
-/**
- * Color Bar Alpha control
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} alpha
- *
- * @return {number} The resulting float.
- */
-function GuiColorBarAlpha (bounds, text, alpha) {
- return r.BindGuiColorBarAlpha(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- alpha
- )
-}
-raylib.GuiColorBarAlpha = GuiColorBarAlpha
-
-/**
- * Color Bar Hue control
- *
- * @param {Rectangle} bounds
- * @param {string} text
- * @param {number} value
- *
- * @return {number} The resulting float.
- */
-function GuiColorBarHue (bounds, text, value) {
- return r.BindGuiColorBarHue(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height,
- text,
- value
- )
-}
-raylib.GuiColorBarHue = GuiColorBarHue
-
-/**
- * Load style file over global style variable (.rgs)
- *
- * @param {string} fileName
- *
- * @return {undefined}
- */
-function GuiLoadStyle (fileName) {
- return r.BindGuiLoadStyle(
- fileName
- )
-}
-raylib.GuiLoadStyle = GuiLoadStyle
-
-/**
- * Load style default over global style
- *
- * @return {undefined}
- */
-function GuiLoadStyleDefault () {
- return r.BindGuiLoadStyleDefault()
-}
-raylib.GuiLoadStyleDefault = GuiLoadStyleDefault
-
-/**
- * Enable gui tooltips (global state)
- *
- * @return {undefined}
- */
-function GuiEnableTooltip () {
- return r.BindGuiEnableTooltip()
-}
-raylib.GuiEnableTooltip = GuiEnableTooltip
-
-/**
- * Disable gui tooltips (global state)
- *
- * @return {undefined}
- */
-function GuiDisableTooltip () {
- return r.BindGuiDisableTooltip()
-}
-raylib.GuiDisableTooltip = GuiDisableTooltip
-
-/**
- * Set tooltip string
- *
- * @param {string} tooltip
- *
- * @return {undefined}
- */
-function GuiSetTooltip (tooltip) {
- return r.BindGuiSetTooltip(
- tooltip
- )
-}
-raylib.GuiSetTooltip = GuiSetTooltip
-
-/**
- * Get text with icon id prepended (if supported)
- *
- * @param {number} iconId
- * @param {string} text
- *
- * @return {string} The resulting const char *.
- */
-function GuiIconText (iconId, text) {
- return r.BindGuiIconText(
- iconId,
- text
- )
-}
-raylib.GuiIconText = GuiIconText
-
-/**
- * Get raygui icons data pointer
- *
- * @return {number} The resulting unsigned int *.
- */
-function GuiGetIcons () {
- return r.BindGuiGetIcons()
-}
-raylib.GuiGetIcons = GuiGetIcons
-
-/**
- * Load raygui icons file (.rgi) into internal icons data
- *
- * @param {string} fileName
- * @param {boolean} loadIconsName
- *
- * @return {number} The resulting char **.
- */
-function GuiLoadIcons (fileName, loadIconsName) {
- return r.BindGuiLoadIcons(
- fileName,
- loadIconsName
- )
-}
-raylib.GuiLoadIcons = GuiLoadIcons
-
-function GuiDrawIcon (iconId, posX, posY, pixelSize, color) {
- return r.BindGuiDrawIcon(
- iconId,
- posX,
- posY,
- pixelSize,
- color.r,
- color.g,
- color.b,
- color.a
- )
-}
-raylib.GuiDrawIcon = GuiDrawIcon
-
-/**
- * Set icon drawing size
- *
- * @param {number} scale
- *
- * @return {undefined}
- */
-function GuiSetIconScale (scale) {
- return r.BindGuiSetIconScale(
- scale
- )
-}
-raylib.GuiSetIconScale = GuiSetIconScale
-
-/**
- * Choose the current matrix to be transformed
- *
- * @param {number} mode
- *
- * @return {undefined}
- */
-function rlMatrixMode (mode) {
- return r.BindrlMatrixMode(
- mode
- )
-}
-raylib.rlMatrixMode = rlMatrixMode
-
-/**
- * Push the current matrix to stack
- *
- * @return {undefined}
- */
-function rlPushMatrix () {
- return r.BindrlPushMatrix()
-}
-raylib.rlPushMatrix = rlPushMatrix
-
-/**
- * Pop latest inserted matrix from stack
- *
- * @return {undefined}
- */
-function rlPopMatrix () {
- return r.BindrlPopMatrix()
-}
-raylib.rlPopMatrix = rlPopMatrix
-
-/**
- * Reset current matrix to identity matrix
- *
- * @return {undefined}
- */
-function rlLoadIdentity () {
- return r.BindrlLoadIdentity()
-}
-raylib.rlLoadIdentity = rlLoadIdentity
-
-/**
- * Multiply the current matrix by a translation matrix
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlTranslatef (x, y, z) {
- return r.BindrlTranslatef(
- x,
- y,
- z
- )
-}
-raylib.rlTranslatef = rlTranslatef
-
-/**
- * Multiply the current matrix by a rotation matrix
- *
- * @param {number} angle
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlRotatef (angle, x, y, z) {
- return r.BindrlRotatef(
- angle,
- x,
- y,
- z
- )
-}
-raylib.rlRotatef = rlRotatef
-
-/**
- * Multiply the current matrix by a scaling matrix
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlScalef (x, y, z) {
- return r.BindrlScalef(
- x,
- y,
- z
- )
-}
-raylib.rlScalef = rlScalef
-
-/**
- * Multiply the current matrix by another matrix
- *
- * @param {number} matf
- *
- * @return {undefined}
- */
-function rlMultMatrixf (matf) {
- return r.BindrlMultMatrixf(
- matf
- )
-}
-raylib.rlMultMatrixf = rlMultMatrixf
-
-function rlFrustum (left, right, bottom, top, znear, zfar) {
- return r.BindrlFrustum(
- left,
- right,
- bottom,
- top,
- znear,
- zfar
- )
-}
-raylib.rlFrustum = rlFrustum
-
-function rlOrtho (left, right, bottom, top, znear, zfar) {
- return r.BindrlOrtho(
- left,
- right,
- bottom,
- top,
- znear,
- zfar
- )
-}
-raylib.rlOrtho = rlOrtho
-
-/**
- * Set the viewport area
- *
- * @param {number} x
- * @param {number} y
- * @param {number} width
- * @param {number} height
- *
- * @return {undefined}
- */
-function rlViewport (x, y, width, height) {
- return r.BindrlViewport(
- x,
- y,
- width,
- height
- )
-}
-raylib.rlViewport = rlViewport
-
-/**
- * Initialize drawing mode (how to organize vertex)
- *
- * @param {number} mode
- *
- * @return {undefined}
- */
-function rlBegin (mode) {
- return r.BindrlBegin(
- mode
- )
-}
-raylib.rlBegin = rlBegin
-
-/**
- * Finish vertex providing
- *
- * @return {undefined}
- */
-function rlEnd () {
- return r.BindrlEnd()
-}
-raylib.rlEnd = rlEnd
-
-/**
- * Define one vertex (position) - 2 int
- *
- * @param {number} x
- * @param {number} y
- *
- * @return {undefined}
- */
-function rlVertex2i (x, y) {
- return r.BindrlVertex2i(
- x,
- y
- )
-}
-raylib.rlVertex2i = rlVertex2i
-
-/**
- * Define one vertex (position) - 2 float
- *
- * @param {number} x
- * @param {number} y
- *
- * @return {undefined}
- */
-function rlVertex2f (x, y) {
- return r.BindrlVertex2f(
- x,
- y
- )
-}
-raylib.rlVertex2f = rlVertex2f
-
-/**
- * Define one vertex (position) - 3 float
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlVertex3f (x, y, z) {
- return r.BindrlVertex3f(
- x,
- y,
- z
- )
-}
-raylib.rlVertex3f = rlVertex3f
-
-/**
- * Define one vertex (texture coordinate) - 2 float
- *
- * @param {number} x
- * @param {number} y
- *
- * @return {undefined}
- */
-function rlTexCoord2f (x, y) {
- return r.BindrlTexCoord2f(
- x,
- y
- )
-}
-raylib.rlTexCoord2f = rlTexCoord2f
-
-/**
- * Define one vertex (normal) - 3 float
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlNormal3f (x, y, z) {
- return r.BindrlNormal3f(
- x,
- y,
- z
- )
-}
-raylib.rlNormal3f = rlNormal3f
-
-/**
- * Define one vertex (color) - 4 byte
- *
- * @param {number} r
- * @param {number} g
- * @param {number} b
- * @param {number} a
- *
- * @return {undefined}
- */
-function rlColor4ub (r, g, b, a) {
- return r.BindrlColor4ub(
- r,
- g,
- b,
- a
- )
-}
-raylib.rlColor4ub = rlColor4ub
-
-/**
- * Define one vertex (color) - 3 float
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- *
- * @return {undefined}
- */
-function rlColor3f (x, y, z) {
- return r.BindrlColor3f(
- x,
- y,
- z
- )
-}
-raylib.rlColor3f = rlColor3f
-
-/**
- * Define one vertex (color) - 4 float
- *
- * @param {number} x
- * @param {number} y
- * @param {number} z
- * @param {number} w
- *
- * @return {undefined}
- */
-function rlColor4f (x, y, z, w) {
- return r.BindrlColor4f(
- x,
- y,
- z,
- w
- )
-}
-raylib.rlColor4f = rlColor4f
-
-/**
- * Enable vertex array (VAO, if supported)
- *
- * @param {number} vaoId
- *
- * @return {boolean} The resulting bool.
- */
-function rlEnableVertexArray (vaoId) {
- return r.BindrlEnableVertexArray(
- vaoId
- )
-}
-raylib.rlEnableVertexArray = rlEnableVertexArray
-
-/**
- * Disable vertex array (VAO, if supported)
- *
- * @return {undefined}
- */
-function rlDisableVertexArray () {
- return r.BindrlDisableVertexArray()
-}
-raylib.rlDisableVertexArray = rlDisableVertexArray
-
-/**
- * Enable vertex buffer (VBO)
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableVertexBuffer (id) {
- return r.BindrlEnableVertexBuffer(
- id
- )
-}
-raylib.rlEnableVertexBuffer = rlEnableVertexBuffer
-
-/**
- * Disable vertex buffer (VBO)
- *
- * @return {undefined}
- */
-function rlDisableVertexBuffer () {
- return r.BindrlDisableVertexBuffer()
-}
-raylib.rlDisableVertexBuffer = rlDisableVertexBuffer
-
-/**
- * Enable vertex buffer element (VBO element)
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableVertexBufferElement (id) {
- return r.BindrlEnableVertexBufferElement(
- id
- )
-}
-raylib.rlEnableVertexBufferElement = rlEnableVertexBufferElement
-
-/**
- * Disable vertex buffer element (VBO element)
- *
- * @return {undefined}
- */
-function rlDisableVertexBufferElement () {
- return r.BindrlDisableVertexBufferElement()
-}
-raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement
-
-/**
- * Enable vertex attribute index
- *
- * @param {number} index
- *
- * @return {undefined}
- */
-function rlEnableVertexAttribute (index) {
- return r.BindrlEnableVertexAttribute(
- index
- )
-}
-raylib.rlEnableVertexAttribute = rlEnableVertexAttribute
-
-/**
- * Disable vertex attribute index
- *
- * @param {number} index
- *
- * @return {undefined}
- */
-function rlDisableVertexAttribute (index) {
- return r.BindrlDisableVertexAttribute(
- index
- )
-}
-raylib.rlDisableVertexAttribute = rlDisableVertexAttribute
-
-/**
- * Select and active a texture slot
- *
- * @param {number} slot
- *
- * @return {undefined}
- */
-function rlActiveTextureSlot (slot) {
- return r.BindrlActiveTextureSlot(
- slot
- )
-}
-raylib.rlActiveTextureSlot = rlActiveTextureSlot
-
-/**
- * Enable texture
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableTexture (id) {
- return r.BindrlEnableTexture(
- id
- )
-}
-raylib.rlEnableTexture = rlEnableTexture
-
-/**
- * Disable texture
- *
- * @return {undefined}
- */
-function rlDisableTexture () {
- return r.BindrlDisableTexture()
-}
-raylib.rlDisableTexture = rlDisableTexture
-
-/**
- * Enable texture cubemap
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableTextureCubemap (id) {
- return r.BindrlEnableTextureCubemap(
- id
- )
-}
-raylib.rlEnableTextureCubemap = rlEnableTextureCubemap
-
-/**
- * Disable texture cubemap
- *
- * @return {undefined}
- */
-function rlDisableTextureCubemap () {
- return r.BindrlDisableTextureCubemap()
-}
-raylib.rlDisableTextureCubemap = rlDisableTextureCubemap
-
-/**
- * Set texture parameters (filter, wrap)
- *
- * @param {number} id
- * @param {number} param
- * @param {number} value
- *
- * @return {undefined}
- */
-function rlTextureParameters (id, param, value) {
- return r.BindrlTextureParameters(
- id,
- param,
- value
- )
-}
-raylib.rlTextureParameters = rlTextureParameters
-
-/**
- * Set cubemap parameters (filter, wrap)
- *
- * @param {number} id
- * @param {number} param
- * @param {number} value
- *
- * @return {undefined}
- */
-function rlCubemapParameters (id, param, value) {
- return r.BindrlCubemapParameters(
- id,
- param,
- value
- )
-}
-raylib.rlCubemapParameters = rlCubemapParameters
-
-/**
- * Enable shader program
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableShader (id) {
- return r.BindrlEnableShader(
- id
- )
-}
-raylib.rlEnableShader = rlEnableShader
-
-/**
- * Disable shader program
- *
- * @return {undefined}
- */
-function rlDisableShader () {
- return r.BindrlDisableShader()
-}
-raylib.rlDisableShader = rlDisableShader
-
-/**
- * Enable render texture (fbo)
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlEnableFramebuffer (id) {
- return r.BindrlEnableFramebuffer(
- id
- )
-}
-raylib.rlEnableFramebuffer = rlEnableFramebuffer
-
-/**
- * Disable render texture (fbo), return to default framebuffer
- *
- * @return {undefined}
- */
-function rlDisableFramebuffer () {
- return r.BindrlDisableFramebuffer()
-}
-raylib.rlDisableFramebuffer = rlDisableFramebuffer
-
-/**
- * Activate multiple draw color buffers
- *
- * @param {number} count
- *
- * @return {undefined}
- */
-function rlActiveDrawBuffers (count) {
- return r.BindrlActiveDrawBuffers(
- count
- )
-}
-raylib.rlActiveDrawBuffers = rlActiveDrawBuffers
-
-/**
- * Enable color blending
- *
- * @return {undefined}
- */
-function rlEnableColorBlend () {
- return r.BindrlEnableColorBlend()
-}
-raylib.rlEnableColorBlend = rlEnableColorBlend
-
-/**
- * Disable color blending
- *
- * @return {undefined}
- */
-function rlDisableColorBlend () {
- return r.BindrlDisableColorBlend()
-}
-raylib.rlDisableColorBlend = rlDisableColorBlend
-
-/**
- * Enable depth test
- *
- * @return {undefined}
- */
-function rlEnableDepthTest () {
- return r.BindrlEnableDepthTest()
-}
-raylib.rlEnableDepthTest = rlEnableDepthTest
-
-/**
- * Disable depth test
- *
- * @return {undefined}
- */
-function rlDisableDepthTest () {
- return r.BindrlDisableDepthTest()
-}
-raylib.rlDisableDepthTest = rlDisableDepthTest
-
-/**
- * Enable depth write
- *
- * @return {undefined}
- */
-function rlEnableDepthMask () {
- return r.BindrlEnableDepthMask()
-}
-raylib.rlEnableDepthMask = rlEnableDepthMask
-
-/**
- * Disable depth write
- *
- * @return {undefined}
- */
-function rlDisableDepthMask () {
- return r.BindrlDisableDepthMask()
-}
-raylib.rlDisableDepthMask = rlDisableDepthMask
-
-/**
- * Enable backface culling
- *
- * @return {undefined}
- */
-function rlEnableBackfaceCulling () {
- return r.BindrlEnableBackfaceCulling()
-}
-raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling
-
-/**
- * Disable backface culling
- *
- * @return {undefined}
- */
-function rlDisableBackfaceCulling () {
- return r.BindrlDisableBackfaceCulling()
-}
-raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling
-
-/**
- * Set face culling mode
- *
- * @param {number} mode
- *
- * @return {undefined}
- */
-function rlSetCullFace (mode) {
- return r.BindrlSetCullFace(
- mode
- )
-}
-raylib.rlSetCullFace = rlSetCullFace
-
-/**
- * Enable scissor test
- *
- * @return {undefined}
- */
-function rlEnableScissorTest () {
- return r.BindrlEnableScissorTest()
-}
-raylib.rlEnableScissorTest = rlEnableScissorTest
-
-/**
- * Disable scissor test
- *
- * @return {undefined}
- */
-function rlDisableScissorTest () {
- return r.BindrlDisableScissorTest()
-}
-raylib.rlDisableScissorTest = rlDisableScissorTest
-
-/**
- * Scissor test
- *
- * @param {number} x
- * @param {number} y
- * @param {number} width
- * @param {number} height
- *
- * @return {undefined}
- */
-function rlScissor (x, y, width, height) {
- return r.BindrlScissor(
- x,
- y,
- width,
- height
- )
-}
-raylib.rlScissor = rlScissor
-
-/**
- * Enable wire mode
- *
- * @return {undefined}
- */
-function rlEnableWireMode () {
- return r.BindrlEnableWireMode()
-}
-raylib.rlEnableWireMode = rlEnableWireMode
-
-/**
- * Disable wire mode
- *
- * @return {undefined}
- */
-function rlDisableWireMode () {
- return r.BindrlDisableWireMode()
-}
-raylib.rlDisableWireMode = rlDisableWireMode
-
-/**
- * Set the line drawing width
- *
- * @param {number} width
- *
- * @return {undefined}
- */
-function rlSetLineWidth (width) {
- return r.BindrlSetLineWidth(
- width
- )
-}
-raylib.rlSetLineWidth = rlSetLineWidth
-
-/**
- * Get the line drawing width
- *
- * @return {number} The resulting float.
- */
-function rlGetLineWidth () {
- return r.BindrlGetLineWidth()
-}
-raylib.rlGetLineWidth = rlGetLineWidth
-
-/**
- * Enable line aliasing
- *
- * @return {undefined}
- */
-function rlEnableSmoothLines () {
- return r.BindrlEnableSmoothLines()
-}
-raylib.rlEnableSmoothLines = rlEnableSmoothLines
-
-/**
- * Disable line aliasing
- *
- * @return {undefined}
- */
-function rlDisableSmoothLines () {
- return r.BindrlDisableSmoothLines()
-}
-raylib.rlDisableSmoothLines = rlDisableSmoothLines
-
-/**
- * Enable stereo rendering
- *
- * @return {undefined}
- */
-function rlEnableStereoRender () {
- return r.BindrlEnableStereoRender()
-}
-raylib.rlEnableStereoRender = rlEnableStereoRender
-
-/**
- * Disable stereo rendering
- *
- * @return {undefined}
- */
-function rlDisableStereoRender () {
- return r.BindrlDisableStereoRender()
-}
-raylib.rlDisableStereoRender = rlDisableStereoRender
-
-/**
- * Check if stereo render is enabled
- *
- * @return {boolean} The resulting bool.
- */
-function rlIsStereoRenderEnabled () {
- return r.BindrlIsStereoRenderEnabled()
-}
-raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled
-
-/**
- * Clear color buffer with color
- *
- * @param {number} r
- * @param {number} g
- * @param {number} b
- * @param {number} a
- *
- * @return {undefined}
- */
-function rlClearColor (r, g, b, a) {
- return r.BindrlClearColor(
- r,
- g,
- b,
- a
- )
-}
-raylib.rlClearColor = rlClearColor
-
-/**
- * Clear used screen buffers (color and depth)
- *
- * @return {undefined}
- */
-function rlClearScreenBuffers () {
- return r.BindrlClearScreenBuffers()
-}
-raylib.rlClearScreenBuffers = rlClearScreenBuffers
-
-/**
- * Check and log OpenGL error codes
- *
- * @return {undefined}
- */
-function rlCheckErrors () {
- return r.BindrlCheckErrors()
-}
-raylib.rlCheckErrors = rlCheckErrors
-
-/**
- * Set blending mode
- *
- * @param {number} mode
- *
- * @return {undefined}
- */
-function rlSetBlendMode (mode) {
- return r.BindrlSetBlendMode(
- mode
- )
-}
-raylib.rlSetBlendMode = rlSetBlendMode
-
-/**
- * Set blending mode factor and equation (using OpenGL factors)
- *
- * @param {number} glSrcFactor
- * @param {number} glDstFactor
- * @param {number} glEquation
- *
- * @return {undefined}
- */
-function rlSetBlendFactors (glSrcFactor, glDstFactor, glEquation) {
- return r.BindrlSetBlendFactors(
- glSrcFactor,
- glDstFactor,
- glEquation
- )
-}
-raylib.rlSetBlendFactors = rlSetBlendFactors
-
-/**
- * Set blending mode factors and equations separately (using OpenGL factors)
- *
- * @param {number} glSrcRGB
- * @param {number} glDstRGB
- * @param {number} glSrcAlpha
- * @param {number} glDstAlpha
- * @param {number} glEqRGB
- * @param {number} glEqAlpha
- *
- * @return {undefined}
- */
-function rlSetBlendFactorsSeparate (glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) {
- return r.BindrlSetBlendFactorsSeparate(
- glSrcRGB,
- glDstRGB,
- glSrcAlpha,
- glDstAlpha,
- glEqRGB,
- glEqAlpha
- )
-}
-raylib.rlSetBlendFactorsSeparate = rlSetBlendFactorsSeparate
-
-/**
- * Initialize rlgl (buffers, shaders, textures, states)
- *
- * @param {number} width
- * @param {number} height
- *
- * @return {undefined}
- */
-function rlglInit (width, height) {
- return r.BindrlglInit(
- width,
- height
- )
-}
-raylib.rlglInit = rlglInit
-
-/**
- * De-initialize rlgl (buffers, shaders, textures)
- *
- * @return {undefined}
- */
-function rlglClose () {
- return r.BindrlglClose()
-}
-raylib.rlglClose = rlglClose
-
-/**
- * Load OpenGL extensions (loader function required)
- *
- * @param {number} loader
- *
- * @return {undefined}
- */
-function rlLoadExtensions (loader) {
- return r.BindrlLoadExtensions(
- loader
- )
-}
-raylib.rlLoadExtensions = rlLoadExtensions
-
-/**
- * Get current OpenGL version
- *
- * @return {number} The resulting int.
- */
-function rlGetVersion () {
- return r.BindrlGetVersion()
-}
-raylib.rlGetVersion = rlGetVersion
-
-/**
- * Set current framebuffer width
- *
- * @param {number} width
- *
- * @return {undefined}
- */
-function rlSetFramebufferWidth (width) {
- return r.BindrlSetFramebufferWidth(
- width
- )
-}
-raylib.rlSetFramebufferWidth = rlSetFramebufferWidth
-
-/**
- * Get default framebuffer width
- *
- * @return {number} The resulting int.
- */
-function rlGetFramebufferWidth () {
- return r.BindrlGetFramebufferWidth()
-}
-raylib.rlGetFramebufferWidth = rlGetFramebufferWidth
-
-/**
- * Set current framebuffer height
- *
- * @param {number} height
- *
- * @return {undefined}
- */
-function rlSetFramebufferHeight (height) {
- return r.BindrlSetFramebufferHeight(
- height
- )
-}
-raylib.rlSetFramebufferHeight = rlSetFramebufferHeight
-
-/**
- * Get default framebuffer height
- *
- * @return {number} The resulting int.
- */
-function rlGetFramebufferHeight () {
- return r.BindrlGetFramebufferHeight()
-}
-raylib.rlGetFramebufferHeight = rlGetFramebufferHeight
-
-/**
- * Get default texture id
- *
- * @return {number} The resulting unsigned int.
- */
-function rlGetTextureIdDefault () {
- return r.BindrlGetTextureIdDefault()
-}
-raylib.rlGetTextureIdDefault = rlGetTextureIdDefault
-
-/**
- * Get default shader id
- *
- * @return {number} The resulting unsigned int.
- */
-function rlGetShaderIdDefault () {
- return r.BindrlGetShaderIdDefault()
-}
-raylib.rlGetShaderIdDefault = rlGetShaderIdDefault
-
-/**
- * Get default shader locations
- *
- * @return {number} The resulting int *.
- */
-function rlGetShaderLocsDefault () {
- return r.BindrlGetShaderLocsDefault()
-}
-raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault
-
-/**
- * Load a render batch system
- *
- * @param {number} numBuffers
- * @param {number} bufferElements
- *
- * @return {rlRenderBatch} The resulting rlRenderBatch.
- */
-function rlLoadRenderBatch (numBuffers, bufferElements) {
- return r.BindrlLoadRenderBatch(
- numBuffers,
- bufferElements
- )
-}
-raylib.rlLoadRenderBatch = rlLoadRenderBatch
-
-/**
- * Unload render batch system
- *
- * @param {rlRenderBatch} batch
- *
- * @return {undefined}
- */
-function rlUnloadRenderBatch (batch) {
- return r.BindrlUnloadRenderBatch(
- batch.bufferCount,
- batch.currentBuffer,
- batch.vertexBuffer,
- batch.draws,
- batch.drawCounter,
- batch.currentDepth
- )
-}
-raylib.rlUnloadRenderBatch = rlUnloadRenderBatch
-
-/**
- * Draw render batch data (Update->Draw->Reset)
- *
- * @param {number} batch
- *
- * @return {undefined}
- */
-function rlDrawRenderBatch (batch) {
- return r.BindrlDrawRenderBatch(
- batch
- )
-}
-raylib.rlDrawRenderBatch = rlDrawRenderBatch
-
-/**
- * Set the active render batch for rlgl (NULL for default internal)
- *
- * @param {number} batch
- *
- * @return {undefined}
- */
-function rlSetRenderBatchActive (batch) {
- return r.BindrlSetRenderBatchActive(
- batch
- )
-}
-raylib.rlSetRenderBatchActive = rlSetRenderBatchActive
-
-/**
- * Update and draw internal render batch
- *
- * @return {undefined}
- */
-function rlDrawRenderBatchActive () {
- return r.BindrlDrawRenderBatchActive()
-}
-raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive
-
-/**
- * Check internal buffer overflow for a given number of vertex
- *
- * @param {number} vCount
- *
- * @return {boolean} The resulting bool.
- */
-function rlCheckRenderBatchLimit (vCount) {
- return r.BindrlCheckRenderBatchLimit(
- vCount
- )
-}
-raylib.rlCheckRenderBatchLimit = rlCheckRenderBatchLimit
-
-/**
- * Set current texture for render batch and check buffers limits
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlSetTexture (id) {
- return r.BindrlSetTexture(
- id
- )
-}
-raylib.rlSetTexture = rlSetTexture
-
-/**
- * Load vertex array (vao) if supported
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadVertexArray () {
- return r.BindrlLoadVertexArray()
-}
-raylib.rlLoadVertexArray = rlLoadVertexArray
-
-/**
- * Load a vertex buffer attribute
- *
- * @param {number} buffer
- * @param {number} size
- * @param {boolean} dynamic
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadVertexBuffer (buffer, size, dynamic) {
- return r.BindrlLoadVertexBuffer(
- buffer,
- size,
- dynamic
- )
-}
-raylib.rlLoadVertexBuffer = rlLoadVertexBuffer
-
-/**
- * Load a new attributes element buffer
- *
- * @param {number} buffer
- * @param {number} size
- * @param {boolean} dynamic
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadVertexBufferElement (buffer, size, dynamic) {
- return r.BindrlLoadVertexBufferElement(
- buffer,
- size,
- dynamic
- )
-}
-raylib.rlLoadVertexBufferElement = rlLoadVertexBufferElement
-
-/**
- * Update GPU buffer with new data
- *
- * @param {number} bufferId
- * @param {number} data
- * @param {number} dataSize
- * @param {number} offset
- *
- * @return {undefined}
- */
-function rlUpdateVertexBuffer (bufferId, data, dataSize, offset) {
- return r.BindrlUpdateVertexBuffer(
- bufferId,
- data,
- dataSize,
- offset
- )
-}
-raylib.rlUpdateVertexBuffer = rlUpdateVertexBuffer
-
-/**
- * Update vertex buffer elements with new data
- *
- * @param {number} id
- * @param {number} data
- * @param {number} dataSize
- * @param {number} offset
- *
- * @return {undefined}
- */
-function rlUpdateVertexBufferElements (id, data, dataSize, offset) {
- return r.BindrlUpdateVertexBufferElements(
- id,
- data,
- dataSize,
- offset
- )
-}
-raylib.rlUpdateVertexBufferElements = rlUpdateVertexBufferElements
-
-function rlUnloadVertexArray (vaoId) {
- return r.BindrlUnloadVertexArray(
- vaoId
- )
-}
-raylib.rlUnloadVertexArray = rlUnloadVertexArray
-
-function rlUnloadVertexBuffer (vboId) {
- return r.BindrlUnloadVertexBuffer(
- vboId
- )
-}
-raylib.rlUnloadVertexBuffer = rlUnloadVertexBuffer
-
-function rlSetVertexAttribute (index, compSize, type, normalized, stride, pointer) {
- return r.BindrlSetVertexAttribute(
- index,
- compSize,
- type,
- normalized,
- stride,
- pointer
- )
-}
-raylib.rlSetVertexAttribute = rlSetVertexAttribute
-
-function rlSetVertexAttributeDivisor (index, divisor) {
- return r.BindrlSetVertexAttributeDivisor(
- index,
- divisor
- )
-}
-raylib.rlSetVertexAttributeDivisor = rlSetVertexAttributeDivisor
-
-/**
- * Set vertex attribute default value
- *
- * @param {number} locIndex
- * @param {number} value
- * @param {number} attribType
- * @param {number} count
- *
- * @return {undefined}
- */
-function rlSetVertexAttributeDefault (locIndex, value, attribType, count) {
- return r.BindrlSetVertexAttributeDefault(
- locIndex,
- value,
- attribType,
- count
- )
-}
-raylib.rlSetVertexAttributeDefault = rlSetVertexAttributeDefault
-
-function rlDrawVertexArray (offset, count) {
- return r.BindrlDrawVertexArray(
- offset,
- count
- )
-}
-raylib.rlDrawVertexArray = rlDrawVertexArray
-
-function rlDrawVertexArrayElements (offset, count, buffer) {
- return r.BindrlDrawVertexArrayElements(
- offset,
- count,
- buffer
- )
-}
-raylib.rlDrawVertexArrayElements = rlDrawVertexArrayElements
-
-function rlDrawVertexArrayInstanced (offset, count, instances) {
- return r.BindrlDrawVertexArrayInstanced(
- offset,
- count,
- instances
- )
-}
-raylib.rlDrawVertexArrayInstanced = rlDrawVertexArrayInstanced
-
-function rlDrawVertexArrayElementsInstanced (offset, count, buffer, instances) {
- return r.BindrlDrawVertexArrayElementsInstanced(
- offset,
- count,
- buffer,
- instances
- )
-}
-raylib.rlDrawVertexArrayElementsInstanced = rlDrawVertexArrayElementsInstanced
-
-/**
- * Load texture in GPU
- *
- * @param {number} data
- * @param {number} width
- * @param {number} height
- * @param {number} format
- * @param {number} mipmapCount
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadTexture (data, width, height, format, mipmapCount) {
- return r.BindrlLoadTexture(
- data,
- width,
- height,
- format,
- mipmapCount
- )
-}
-raylib.rlLoadTexture = rlLoadTexture
-
-/**
- * Load depth texture/renderbuffer (to be attached to fbo)
- *
- * @param {number} width
- * @param {number} height
- * @param {boolean} useRenderBuffer
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadTextureDepth (width, height, useRenderBuffer) {
- return r.BindrlLoadTextureDepth(
- width,
- height,
- useRenderBuffer
- )
-}
-raylib.rlLoadTextureDepth = rlLoadTextureDepth
-
-/**
- * Load texture cubemap
- *
- * @param {number} data
- * @param {number} size
- * @param {number} format
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadTextureCubemap (data, size, format) {
- return r.BindrlLoadTextureCubemap(
- data,
- size,
- format
- )
-}
-raylib.rlLoadTextureCubemap = rlLoadTextureCubemap
-
-/**
- * Update GPU texture with new data
- *
- * @param {number} id
- * @param {number} offsetX
- * @param {number} offsetY
- * @param {number} width
- * @param {number} height
- * @param {number} format
- * @param {number} data
- *
- * @return {undefined}
- */
-function rlUpdateTexture (id, offsetX, offsetY, width, height, format, data) {
- return r.BindrlUpdateTexture(
- id,
- offsetX,
- offsetY,
- width,
- height,
- format,
- data
- )
-}
-raylib.rlUpdateTexture = rlUpdateTexture
-
-/**
- * Get OpenGL internal formats
- *
- * @param {number} format
- * @param {number} glInternalFormat
- * @param {number} glFormat
- * @param {number} glType
- *
- * @return {undefined}
- */
-function rlGetGlTextureFormats (format, glInternalFormat, glFormat, glType) {
- return r.BindrlGetGlTextureFormats(
- format,
- glInternalFormat,
- glFormat,
- glType
- )
-}
-raylib.rlGetGlTextureFormats = rlGetGlTextureFormats
-
-/**
- * Get name string for pixel format
- *
- * @param {number} format
- *
- * @return {string} The resulting const char *.
- */
-function rlGetPixelFormatName (format) {
- return r.BindrlGetPixelFormatName(
- format
- )
-}
-raylib.rlGetPixelFormatName = rlGetPixelFormatName
-
-/**
- * Unload texture from GPU memory
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlUnloadTexture (id) {
- return r.BindrlUnloadTexture(
- id
- )
-}
-raylib.rlUnloadTexture = rlUnloadTexture
-
-/**
- * Generate mipmap data for selected texture
- *
- * @param {number} id
- * @param {number} width
- * @param {number} height
- * @param {number} format
- * @param {number} mipmaps
- *
- * @return {undefined}
- */
-function rlGenTextureMipmaps (id, width, height, format, mipmaps) {
- return r.BindrlGenTextureMipmaps(
- id,
- width,
- height,
- format,
- mipmaps
- )
-}
-raylib.rlGenTextureMipmaps = rlGenTextureMipmaps
-
-/**
- * Read texture pixel data
- *
- * @param {number} id
- * @param {number} width
- * @param {number} height
- * @param {number} format
- *
- * @return {number} The resulting void *.
- */
-function rlReadTexturePixels (id, width, height, format) {
- return r.BindrlReadTexturePixels(
- id,
- width,
- height,
- format
- )
-}
-raylib.rlReadTexturePixels = rlReadTexturePixels
-
-/**
- * Read screen pixel data (color buffer)
- *
- * @param {number} width
- * @param {number} height
- *
- * @return {Buffer} The resulting unsigned char *.
- */
-function rlReadScreenPixels (width, height) {
- return r.BindrlReadScreenPixels(
- width,
- height
- )
-}
-raylib.rlReadScreenPixels = rlReadScreenPixels
-
-/**
- * Load an empty framebuffer
- *
- * @param {number} width
- * @param {number} height
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadFramebuffer (width, height) {
- return r.BindrlLoadFramebuffer(
- width,
- height
- )
-}
-raylib.rlLoadFramebuffer = rlLoadFramebuffer
-
-/**
- * Attach texture/renderbuffer to a framebuffer
- *
- * @param {number} fboId
- * @param {number} texId
- * @param {number} attachType
- * @param {number} texType
- * @param {number} mipLevel
- *
- * @return {undefined}
- */
-function rlFramebufferAttach (fboId, texId, attachType, texType, mipLevel) {
- return r.BindrlFramebufferAttach(
- fboId,
- texId,
- attachType,
- texType,
- mipLevel
- )
-}
-raylib.rlFramebufferAttach = rlFramebufferAttach
-
-/**
- * Verify framebuffer is complete
- *
- * @param {number} id
- *
- * @return {boolean} The resulting bool.
- */
-function rlFramebufferComplete (id) {
- return r.BindrlFramebufferComplete(
- id
- )
-}
-raylib.rlFramebufferComplete = rlFramebufferComplete
-
-/**
- * Delete framebuffer from GPU
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlUnloadFramebuffer (id) {
- return r.BindrlUnloadFramebuffer(
- id
- )
-}
-raylib.rlUnloadFramebuffer = rlUnloadFramebuffer
-
-/**
- * Load shader from code strings
- *
- * @param {string} vsCode
- * @param {string} fsCode
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadShaderCode (vsCode, fsCode) {
- return r.BindrlLoadShaderCode(
- vsCode,
- fsCode
- )
-}
-raylib.rlLoadShaderCode = rlLoadShaderCode
-
-/**
- * Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)
- *
- * @param {string} shaderCode
- * @param {number} type
- *
- * @return {number} The resulting unsigned int.
- */
-function rlCompileShader (shaderCode, type) {
- return r.BindrlCompileShader(
- shaderCode,
- type
- )
-}
-raylib.rlCompileShader = rlCompileShader
-
-/**
- * Load custom shader program
- *
- * @param {number} vShaderId
- * @param {number} fShaderId
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadShaderProgram (vShaderId, fShaderId) {
- return r.BindrlLoadShaderProgram(
- vShaderId,
- fShaderId
- )
-}
-raylib.rlLoadShaderProgram = rlLoadShaderProgram
-
-/**
- * Unload shader program
- *
- * @param {number} id
- *
- * @return {undefined}
- */
-function rlUnloadShaderProgram (id) {
- return r.BindrlUnloadShaderProgram(
- id
- )
-}
-raylib.rlUnloadShaderProgram = rlUnloadShaderProgram
-
-/**
- * Get shader location uniform
- *
- * @param {number} shaderId
- * @param {string} uniformName
- *
- * @return {number} The resulting int.
- */
-function rlGetLocationUniform (shaderId, uniformName) {
- return r.BindrlGetLocationUniform(
- shaderId,
- uniformName
- )
-}
-raylib.rlGetLocationUniform = rlGetLocationUniform
-
-/**
- * Get shader location attribute
- *
- * @param {number} shaderId
- * @param {string} attribName
- *
- * @return {number} The resulting int.
- */
-function rlGetLocationAttrib (shaderId, attribName) {
- return r.BindrlGetLocationAttrib(
- shaderId,
- attribName
- )
-}
-raylib.rlGetLocationAttrib = rlGetLocationAttrib
-
-/**
- * Set shader value uniform
- *
- * @param {number} locIndex
- * @param {number} value
- * @param {number} uniformType
- * @param {number} count
- *
- * @return {undefined}
- */
-function rlSetUniform (locIndex, value, uniformType, count) {
- return r.BindrlSetUniform(
- locIndex,
- value,
- uniformType,
- count
- )
-}
-raylib.rlSetUniform = rlSetUniform
-
-/**
- * Set shader value matrix
- *
- * @param {number} locIndex
- * @param {Matrix} mat
- *
- * @return {undefined}
- */
-function rlSetUniformMatrix (locIndex, mat) {
- return r.BindrlSetUniformMatrix(
- locIndex,
- mat.m0,
- mat.m4,
- mat.m8,
- mat.m12,
- mat.m1,
- mat.m5,
- mat.m9,
- mat.m13,
- mat.m2,
- mat.m6,
- mat.m10,
- mat.m14,
- mat.m3,
- mat.m7,
- mat.m11,
- mat.m15
- )
-}
-raylib.rlSetUniformMatrix = rlSetUniformMatrix
-
-/**
- * Set shader value sampler
- *
- * @param {number} locIndex
- * @param {number} textureId
- *
- * @return {undefined}
- */
-function rlSetUniformSampler (locIndex, textureId) {
- return r.BindrlSetUniformSampler(
- locIndex,
- textureId
- )
-}
-raylib.rlSetUniformSampler = rlSetUniformSampler
-
-/**
- * Set shader currently active (id and locations)
- *
- * @param {number} id
- * @param {number} locs
- *
- * @return {undefined}
- */
-function rlSetShader (id, locs) {
- return r.BindrlSetShader(
- id,
- locs
- )
-}
-raylib.rlSetShader = rlSetShader
-
-/**
- * Load compute shader program
- *
- * @param {number} shaderId
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadComputeShaderProgram (shaderId) {
- return r.BindrlLoadComputeShaderProgram(
- shaderId
- )
-}
-raylib.rlLoadComputeShaderProgram = rlLoadComputeShaderProgram
-
-/**
- * Dispatch compute shader (equivalent to *draw* for graphics pipeline)
- *
- * @param {number} groupX
- * @param {number} groupY
- * @param {number} groupZ
- *
- * @return {undefined}
- */
-function rlComputeShaderDispatch (groupX, groupY, groupZ) {
- return r.BindrlComputeShaderDispatch(
- groupX,
- groupY,
- groupZ
- )
-}
-raylib.rlComputeShaderDispatch = rlComputeShaderDispatch
-
-/**
- * Load shader storage buffer object (SSBO)
- *
- * @param {number} size
- * @param {number} data
- * @param {number} usageHint
- *
- * @return {number} The resulting unsigned int.
- */
-function rlLoadShaderBuffer (size, data, usageHint) {
- return r.BindrlLoadShaderBuffer(
- size,
- data,
- usageHint
- )
-}
-raylib.rlLoadShaderBuffer = rlLoadShaderBuffer
-
-/**
- * Unload shader storage buffer object (SSBO)
- *
- * @param {number} ssboId
- *
- * @return {undefined}
- */
-function rlUnloadShaderBuffer (ssboId) {
- return r.BindrlUnloadShaderBuffer(
- ssboId
- )
-}
-raylib.rlUnloadShaderBuffer = rlUnloadShaderBuffer
-
-/**
- * Update SSBO buffer data
- *
- * @param {number} id
- * @param {number} data
- * @param {number} dataSize
- * @param {number} offset
- *
- * @return {undefined}
- */
-function rlUpdateShaderBuffer (id, data, dataSize, offset) {
- return r.BindrlUpdateShaderBuffer(
- id,
- data,
- dataSize,
- offset
- )
-}
-raylib.rlUpdateShaderBuffer = rlUpdateShaderBuffer
-
-/**
- * Bind SSBO buffer
- *
- * @param {number} id
- * @param {number} index
- *
- * @return {undefined}
- */
-function rlBindShaderBuffer (id, index) {
- return r.BindrlBindShaderBuffer(
- id,
- index
- )
-}
-raylib.rlBindShaderBuffer = rlBindShaderBuffer
-
-/**
- * Read SSBO buffer data (GPU->CPU)
- *
- * @param {number} id
- * @param {number} dest
- * @param {number} count
- * @param {number} offset
- *
- * @return {undefined}
- */
-function rlReadShaderBuffer (id, dest, count, offset) {
- return r.BindrlReadShaderBuffer(
- id,
- dest,
- count,
- offset
- )
-}
-raylib.rlReadShaderBuffer = rlReadShaderBuffer
-
-/**
- * Copy SSBO data between buffers
- *
- * @param {number} destId
- * @param {number} srcId
- * @param {number} destOffset
- * @param {number} srcOffset
- * @param {number} count
- *
- * @return {undefined}
- */
-function rlCopyShaderBuffer (destId, srcId, destOffset, srcOffset, count) {
- return r.BindrlCopyShaderBuffer(
- destId,
- srcId,
- destOffset,
- srcOffset,
- count
- )
-}
-raylib.rlCopyShaderBuffer = rlCopyShaderBuffer
-
-/**
- * Get SSBO buffer size
- *
- * @param {number} id
- *
- * @return {number} The resulting unsigned int.
- */
-function rlGetShaderBufferSize (id) {
- return r.BindrlGetShaderBufferSize(
- id
- )
-}
-raylib.rlGetShaderBufferSize = rlGetShaderBufferSize
-
-/**
- * Bind image texture
- *
- * @param {number} id
- * @param {number} index
- * @param {number} format
- * @param {boolean} readonly
- *
- * @return {undefined}
- */
-function rlBindImageTexture (id, index, format, readonly) {
- return r.BindrlBindImageTexture(
- id,
- index,
- format,
- readonly
- )
-}
-raylib.rlBindImageTexture = rlBindImageTexture
-
-/**
- * Get internal modelview matrix
- *
- * @return {Matrix} The resulting Matrix.
- */
-function rlGetMatrixModelview () {
- return r.BindrlGetMatrixModelview()
-}
-raylib.rlGetMatrixModelview = rlGetMatrixModelview
-
-/**
- * Get internal projection matrix
- *
- * @return {Matrix} The resulting Matrix.
- */
-function rlGetMatrixProjection () {
- return r.BindrlGetMatrixProjection()
-}
-raylib.rlGetMatrixProjection = rlGetMatrixProjection
-
-/**
- * Get internal accumulated transform matrix
- *
- * @return {Matrix} The resulting Matrix.
- */
-function rlGetMatrixTransform () {
- return r.BindrlGetMatrixTransform()
-}
-raylib.rlGetMatrixTransform = rlGetMatrixTransform
-
-/**
- * Get internal projection matrix for stereo render (selected eye)
- *
- * @param {number} eye
- *
- * @return {Matrix} The resulting Matrix.
- */
-function rlGetMatrixProjectionStereo (eye) {
- return r.BindrlGetMatrixProjectionStereo(
- eye
- )
-}
-raylib.rlGetMatrixProjectionStereo = rlGetMatrixProjectionStereo
-
-/**
- * Get internal view offset matrix for stereo render (selected eye)
- *
- * @param {number} eye
- *
- * @return {Matrix} The resulting Matrix.
- */
-function rlGetMatrixViewOffsetStereo (eye) {
- return r.BindrlGetMatrixViewOffsetStereo(
- eye
- )
-}
-raylib.rlGetMatrixViewOffsetStereo = rlGetMatrixViewOffsetStereo
-
-/**
- * Set a custom projection matrix (replaces internal projection matrix)
- *
- * @param {Matrix} proj
- *
- * @return {undefined}
- */
-function rlSetMatrixProjection (proj) {
- return r.BindrlSetMatrixProjection(
- proj.m0,
- proj.m4,
- proj.m8,
- proj.m12,
- proj.m1,
- proj.m5,
- proj.m9,
- proj.m13,
- proj.m2,
- proj.m6,
- proj.m10,
- proj.m14,
- proj.m3,
- proj.m7,
- proj.m11,
- proj.m15
- )
-}
-raylib.rlSetMatrixProjection = rlSetMatrixProjection
-
-/**
- * Set a custom modelview matrix (replaces internal modelview matrix)
- *
- * @param {Matrix} view
- *
- * @return {undefined}
- */
-function rlSetMatrixModelview (view) {
- return r.BindrlSetMatrixModelview(
- view.m0,
- view.m4,
- view.m8,
- view.m12,
- view.m1,
- view.m5,
- view.m9,
- view.m13,
- view.m2,
- view.m6,
- view.m10,
- view.m14,
- view.m3,
- view.m7,
- view.m11,
- view.m15
- )
-}
-raylib.rlSetMatrixModelview = rlSetMatrixModelview
-
-/**
- * Set eyes projection matrices for stereo rendering
- *
- * @param {Matrix} right
- * @param {Matrix} left
- *
- * @return {undefined}
- */
-function rlSetMatrixProjectionStereo (right, left) {
- return r.BindrlSetMatrixProjectionStereo(
- right.m0,
- right.m4,
- right.m8,
- right.m12,
- right.m1,
- right.m5,
- right.m9,
- right.m13,
- right.m2,
- right.m6,
- right.m10,
- right.m14,
- right.m3,
- right.m7,
- right.m11,
- right.m15,
- left.m0,
- left.m4,
- left.m8,
- left.m12,
- left.m1,
- left.m5,
- left.m9,
- left.m13,
- left.m2,
- left.m6,
- left.m10,
- left.m14,
- left.m3,
- left.m7,
- left.m11,
- left.m15
- )
-}
-raylib.rlSetMatrixProjectionStereo = rlSetMatrixProjectionStereo
-
-/**
- * Set eyes view offsets matrices for stereo rendering
- *
- * @param {Matrix} right
- * @param {Matrix} left
- *
- * @return {undefined}
- */
-function rlSetMatrixViewOffsetStereo (right, left) {
- return r.BindrlSetMatrixViewOffsetStereo(
- right.m0,
- right.m4,
- right.m8,
- right.m12,
- right.m1,
- right.m5,
- right.m9,
- right.m13,
- right.m2,
- right.m6,
- right.m10,
- right.m14,
- right.m3,
- right.m7,
- right.m11,
- right.m15,
- left.m0,
- left.m4,
- left.m8,
- left.m12,
- left.m1,
- left.m5,
- left.m9,
- left.m13,
- left.m2,
- left.m6,
- left.m10,
- left.m14,
- left.m3,
- left.m7,
- left.m11,
- left.m15
- )
-}
-raylib.rlSetMatrixViewOffsetStereo = rlSetMatrixViewOffsetStereo
-
-/**
- * Load and draw a cube
- *
- * @return {undefined}
- */
-function rlLoadDrawCube () {
- return r.BindrlLoadDrawCube()
-}
-raylib.rlLoadDrawCube = rlLoadDrawCube
-
-/**
- * Load and draw a quad
- *
- * @return {undefined}
- */
-function rlLoadDrawQuad () {
- return r.BindrlLoadDrawQuad()
-}
-raylib.rlLoadDrawQuad = rlLoadDrawQuad
-
-/**
- * Update camera position for selected mode
- *
- * @param {Camera3D} camera
- * @param {number} mode
- *
- * @return {undefined}
- */
-function UpdateCamera (camera, mode) {
- const obj = r.BindUpdateCamera(
- camera.position.x,
- camera.position.y,
- camera.position.z,
- camera.target.x,
- camera.target.y,
- camera.target.z,
- camera.up.x,
- camera.up.y,
- camera.up.z,
- camera.fovy,
- camera.projection,
- mode
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- camera[key] = obj[key]
- }
- }
-}
-raylib.UpdateCamera = UpdateCamera
-
-/**
- * Convert image data to desired format
- *
- * @param {Image} image
- * @param {number} newFormat
- *
- * @return {undefined}
- */
-function ImageFormat (image, newFormat) {
- const obj = r.BindImageFormat(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- newFormat
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageFormat = ImageFormat
-
-/**
- * Convert image to POT (power-of-two)
- *
- * @param {Image} image
- * @param {Color} fill
- *
- * @return {undefined}
- */
-function ImageToPOT (image, fill) {
- const obj = r.BindImageToPOT(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- fill.r,
- fill.g,
- fill.b,
- fill.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageToPOT = ImageToPOT
-
-/**
- * Crop an image to a defined rectangle
- *
- * @param {Image} image
- * @param {Rectangle} crop
- *
- * @return {undefined}
- */
-function ImageCrop (image, crop) {
- const obj = r.BindImageCrop(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- crop.x,
- crop.y,
- crop.width,
- crop.height
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageCrop = ImageCrop
-
-/**
- * Crop image depending on alpha value
- *
- * @param {Image} image
- * @param {number} threshold
- *
- * @return {undefined}
- */
-function ImageAlphaCrop (image, threshold) {
- const obj = r.BindImageAlphaCrop(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- threshold
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageAlphaCrop = ImageAlphaCrop
-
-/**
- * Clear alpha channel to desired color
- *
- * @param {Image} image
- * @param {Color} color
- * @param {number} threshold
- *
- * @return {undefined}
- */
-function ImageAlphaClear (image, color, threshold) {
- const obj = r.BindImageAlphaClear(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- color.r,
- color.g,
- color.b,
- color.a,
- threshold
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageAlphaClear = ImageAlphaClear
-
-/**
- * Apply alpha mask to image
- *
- * @param {Image} image
- * @param {Image} alphaMask
- *
- * @return {undefined}
- */
-function ImageAlphaMask (image, alphaMask) {
- const obj = r.BindImageAlphaMask(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- alphaMask.data,
- alphaMask.width,
- alphaMask.height,
- alphaMask.mipmaps,
- alphaMask.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageAlphaMask = ImageAlphaMask
-
-/**
- * Premultiply alpha channel
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageAlphaPremultiply (image) {
- const obj = r.BindImageAlphaPremultiply(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageAlphaPremultiply = ImageAlphaPremultiply
-
-/**
- * Resize image (Bicubic scaling algorithm)
- *
- * @param {Image} image
- * @param {number} newWidth
- * @param {number} newHeight
- *
- * @return {undefined}
- */
-function ImageResize (image, newWidth, newHeight) {
- const obj = r.BindImageResize(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- newWidth,
- newHeight
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageResize = ImageResize
-
-/**
- * Resize image (Nearest-Neighbor scaling algorithm)
- *
- * @param {Image} image
- * @param {number} newWidth
- * @param {number} newHeight
- *
- * @return {undefined}
- */
-function ImageResizeNN (image, newWidth, newHeight) {
- const obj = r.BindImageResizeNN(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- newWidth,
- newHeight
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageResizeNN = ImageResizeNN
-
-/**
- * Resize canvas and fill with color
- *
- * @param {Image} image
- * @param {number} newWidth
- * @param {number} newHeight
- * @param {number} offsetX
- * @param {number} offsetY
- * @param {Color} fill
- *
- * @return {undefined}
- */
-function ImageResizeCanvas (image, newWidth, newHeight, offsetX, offsetY, fill) {
- const obj = r.BindImageResizeCanvas(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- newWidth,
- newHeight,
- offsetX,
- offsetY,
- fill.r,
- fill.g,
- fill.b,
- fill.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageResizeCanvas = ImageResizeCanvas
-
-/**
- * Compute all mipmap levels for a provided image
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageMipmaps (image) {
- const obj = r.BindImageMipmaps(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageMipmaps = ImageMipmaps
-
-/**
- * Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
- *
- * @param {Image} image
- * @param {number} rBpp
- * @param {number} gBpp
- * @param {number} bBpp
- * @param {number} aBpp
- *
- * @return {undefined}
- */
-function ImageDither (image, rBpp, gBpp, bBpp, aBpp) {
- const obj = r.BindImageDither(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- rBpp,
- gBpp,
- bBpp,
- aBpp
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageDither = ImageDither
-
-/**
- * Flip image vertically
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageFlipVertical (image) {
- const obj = r.BindImageFlipVertical(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageFlipVertical = ImageFlipVertical
-
-/**
- * Flip image horizontally
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageFlipHorizontal (image) {
- const obj = r.BindImageFlipHorizontal(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageFlipHorizontal = ImageFlipHorizontal
-
-/**
- * Rotate image clockwise 90deg
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageRotateCW (image) {
- const obj = r.BindImageRotateCW(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageRotateCW = ImageRotateCW
-
-/**
- * Rotate image counter-clockwise 90deg
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageRotateCCW (image) {
- const obj = r.BindImageRotateCCW(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageRotateCCW = ImageRotateCCW
-
-/**
- * Modify image color: tint
- *
- * @param {Image} image
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageColorTint (image, color) {
- const obj = r.BindImageColorTint(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorTint = ImageColorTint
-
-/**
- * Modify image color: invert
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageColorInvert (image) {
- const obj = r.BindImageColorInvert(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorInvert = ImageColorInvert
-
-/**
- * Modify image color: grayscale
- *
- * @param {Image} image
- *
- * @return {undefined}
- */
-function ImageColorGrayscale (image) {
- const obj = r.BindImageColorGrayscale(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorGrayscale = ImageColorGrayscale
-
-/**
- * Modify image color: contrast (-100 to 100)
- *
- * @param {Image} image
- * @param {number} contrast
- *
- * @return {undefined}
- */
-function ImageColorContrast (image, contrast) {
- const obj = r.BindImageColorContrast(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- contrast
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorContrast = ImageColorContrast
-
-/**
- * Modify image color: brightness (-255 to 255)
- *
- * @param {Image} image
- * @param {number} brightness
- *
- * @return {undefined}
- */
-function ImageColorBrightness (image, brightness) {
- const obj = r.BindImageColorBrightness(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- brightness
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorBrightness = ImageColorBrightness
-
-/**
- * Modify image color: replace color
- *
- * @param {Image} image
- * @param {Color} color
- * @param {Color} replace
- *
- * @return {undefined}
- */
-function ImageColorReplace (image, color, replace) {
- const obj = r.BindImageColorReplace(
- image.data,
- image.width,
- image.height,
- image.mipmaps,
- image.format,
- color.r,
- color.g,
- color.b,
- color.a,
- replace.r,
- replace.g,
- replace.b,
- replace.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- image[key] = obj[key]
- }
- }
-}
-raylib.ImageColorReplace = ImageColorReplace
-
-/**
- * Clear image background with given color
- *
- * @param {Image} dst
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageClearBackground (dst, color) {
- const obj = r.BindImageClearBackground(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageClearBackground = ImageClearBackground
-
-/**
- * Draw pixel within an image
- *
- * @param {Image} dst
- * @param {number} posX
- * @param {number} posY
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawPixel (dst, posX, posY, color) {
- const obj = r.BindImageDrawPixel(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- posX,
- posY,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawPixel = ImageDrawPixel
-
-/**
- * Draw pixel within an image (Vector version)
- *
- * @param {Image} dst
- * @param {Vector2} position
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawPixelV (dst, position, color) {
- const obj = r.BindImageDrawPixelV(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- position.x,
- position.y,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawPixelV = ImageDrawPixelV
-
-/**
- * Draw line within an image
- *
- * @param {Image} dst
- * @param {number} startPosX
- * @param {number} startPosY
- * @param {number} endPosX
- * @param {number} endPosY
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawLine (dst, startPosX, startPosY, endPosX, endPosY, color) {
- const obj = r.BindImageDrawLine(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- startPosX,
- startPosY,
- endPosX,
- endPosY,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawLine = ImageDrawLine
-
-/**
- * Draw line within an image (Vector version)
- *
- * @param {Image} dst
- * @param {Vector2} start
- * @param {Vector2} end
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawLineV (dst, start, end, color) {
- const obj = r.BindImageDrawLineV(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- start.x,
- start.y,
- end.x,
- end.y,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawLineV = ImageDrawLineV
-
-/**
- * Draw a filled circle within an image
- *
- * @param {Image} dst
- * @param {number} centerX
- * @param {number} centerY
- * @param {number} radius
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawCircle (dst, centerX, centerY, radius, color) {
- const obj = r.BindImageDrawCircle(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- centerX,
- centerY,
- radius,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawCircle = ImageDrawCircle
-
-/**
- * Draw a filled circle within an image (Vector version)
- *
- * @param {Image} dst
- * @param {Vector2} center
- * @param {number} radius
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawCircleV (dst, center, radius, color) {
- const obj = r.BindImageDrawCircleV(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- center.x,
- center.y,
- radius,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawCircleV = ImageDrawCircleV
-
-/**
- * Draw rectangle within an image
- *
- * @param {Image} dst
- * @param {number} posX
- * @param {number} posY
- * @param {number} width
- * @param {number} height
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawRectangle (dst, posX, posY, width, height, color) {
- const obj = r.BindImageDrawRectangle(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- posX,
- posY,
- width,
- height,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawRectangle = ImageDrawRectangle
-
-/**
- * Draw rectangle within an image (Vector version)
- *
- * @param {Image} dst
- * @param {Vector2} position
- * @param {Vector2} size
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawRectangleV (dst, position, size, color) {
- const obj = r.BindImageDrawRectangleV(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- position.x,
- position.y,
- size.x,
- size.y,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawRectangleV = ImageDrawRectangleV
-
-/**
- * Draw rectangle within an image
- *
- * @param {Image} dst
- * @param {Rectangle} rec
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawRectangleRec (dst, rec, color) {
- const obj = r.BindImageDrawRectangleRec(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- rec.x,
- rec.y,
- rec.width,
- rec.height,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawRectangleRec = ImageDrawRectangleRec
-
-/**
- * Draw rectangle lines within an image
- *
- * @param {Image} dst
- * @param {Rectangle} rec
- * @param {number} thick
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawRectangleLines (dst, rec, thick, color) {
- const obj = r.BindImageDrawRectangleLines(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- rec.x,
- rec.y,
- rec.width,
- rec.height,
- thick,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawRectangleLines = ImageDrawRectangleLines
-
-/**
- * Draw a source image within a destination image (tint applied to source)
- *
- * @param {Image} dst
- * @param {Image} src
- * @param {Rectangle} srcRec
- * @param {Rectangle} dstRec
- * @param {Color} tint
- *
- * @return {undefined}
- */
-function ImageDraw (dst, src, srcRec, dstRec, tint) {
- const obj = r.BindImageDraw(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- src.data,
- src.width,
- src.height,
- src.mipmaps,
- src.format,
- srcRec.x,
- srcRec.y,
- srcRec.width,
- srcRec.height,
- dstRec.x,
- dstRec.y,
- dstRec.width,
- dstRec.height,
- tint.r,
- tint.g,
- tint.b,
- tint.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDraw = ImageDraw
-
-/**
- * Draw text (using default font) within an image (destination)
- *
- * @param {Image} dst
- * @param {string} text
- * @param {number} posX
- * @param {number} posY
- * @param {number} fontSize
- * @param {Color} color
- *
- * @return {undefined}
- */
-function ImageDrawText (dst, text, posX, posY, fontSize, color) {
- const obj = r.BindImageDrawText(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- text,
- posX,
- posY,
- fontSize,
- color.r,
- color.g,
- color.b,
- color.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawText = ImageDrawText
-
-/**
- * Draw text (custom sprite font) within an image (destination)
- *
- * @param {Image} dst
- * @param {Font} font
- * @param {string} text
- * @param {Vector2} position
- * @param {number} fontSize
- * @param {number} spacing
- * @param {Color} tint
- *
- * @return {undefined}
- */
-function ImageDrawTextEx (dst, font, text, position, fontSize, spacing, tint) {
- const obj = r.BindImageDrawTextEx(
- dst.data,
- dst.width,
- dst.height,
- dst.mipmaps,
- dst.format,
- font.baseSize,
- font.glyphCount,
- font.glyphPadding,
- font.texture.id,
- font.texture.width,
- font.texture.height,
- font.texture.mipmaps,
- font.texture.format,
- font.recs,
- font.glyphs,
- text,
- position.x,
- position.y,
- fontSize,
- spacing,
- tint.r,
- tint.g,
- tint.b,
- tint.a
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- dst[key] = obj[key]
- }
- }
-}
-raylib.ImageDrawTextEx = ImageDrawTextEx
-
-/**
- * Generate GPU mipmaps for a texture
- *
- * @param {Texture} texture
- *
- * @return {undefined}
- */
-function GenTextureMipmaps (texture) {
- const obj = r.BindGenTextureMipmaps(
- texture.id,
- texture.width,
- texture.height,
- texture.mipmaps,
- texture.format
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- texture[key] = obj[key]
- }
- }
-}
-raylib.GenTextureMipmaps = GenTextureMipmaps
-
-/**
- * Upload mesh vertex data in GPU and provide VAO/VBO ids
- *
- * @param {Mesh} mesh
- * @param {boolean} dynamic
- *
- * @return {undefined}
- */
-function UploadMesh (mesh, dynamic) {
- const obj = r.BindUploadMesh(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId,
- dynamic
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- mesh[key] = obj[key]
- }
- }
-}
-raylib.UploadMesh = UploadMesh
-
-/**
- * Compute mesh tangents
- *
- * @param {Mesh} mesh
- *
- * @return {undefined}
- */
-function GenMeshTangents (mesh) {
- const obj = r.BindGenMeshTangents(
- mesh.vertexCount,
- mesh.triangleCount,
- mesh.vertices,
- mesh.texcoords,
- mesh.texcoords2,
- mesh.normals,
- mesh.tangents,
- mesh.colors,
- mesh.indices,
- mesh.animVertices,
- mesh.animNormals,
- mesh.boneIds,
- mesh.boneWeights,
- mesh.vaoId,
- mesh.vboId
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- mesh[key] = obj[key]
- }
- }
-}
-raylib.GenMeshTangents = GenMeshTangents
-
-/**
- * Set material for a mesh
- *
- * @param {Model} model
- * @param {number} meshId
- * @param {number} materialId
- *
- * @return {undefined}
- */
-function SetModelMeshMaterial (model, meshId, materialId) {
- const obj = r.BindSetModelMeshMaterial(
- model.transform.m0,
- model.transform.m4,
- model.transform.m8,
- model.transform.m12,
- model.transform.m1,
- model.transform.m5,
- model.transform.m9,
- model.transform.m13,
- model.transform.m2,
- model.transform.m6,
- model.transform.m10,
- model.transform.m14,
- model.transform.m3,
- model.transform.m7,
- model.transform.m11,
- model.transform.m15,
- model.meshCount,
- model.materialCount,
- model.meshes,
- model.materials,
- model.meshMaterial,
- model.boneCount,
- model.bones,
- model.bindPose,
- meshId,
- materialId
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- model[key] = obj[key]
- }
- }
-}
-raylib.SetModelMeshMaterial = SetModelMeshMaterial
-
-/**
- * Crop a wave to defined samples range
- *
- * @param {Wave} wave
- * @param {number} initSample
- * @param {number} finalSample
- *
- * @return {undefined}
- */
-function WaveCrop (wave, initSample, finalSample) {
- const obj = r.BindWaveCrop(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data,
- initSample,
- finalSample
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- wave[key] = obj[key]
- }
- }
-}
-raylib.WaveCrop = WaveCrop
-
-/**
- * Convert wave data to desired format
- *
- * @param {Wave} wave
- * @param {number} sampleRate
- * @param {number} sampleSize
- * @param {number} channels
- *
- * @return {undefined}
- */
-function WaveFormat (wave, sampleRate, sampleSize, channels) {
- const obj = r.BindWaveFormat(
- wave.frameCount,
- wave.sampleRate,
- wave.sampleSize,
- wave.channels,
- wave.data,
- sampleRate,
- sampleSize,
- channels
- )
- if (typeof obj !== 'undefined') {
- for (const key in obj) {
- wave[key] = obj[key]
- }
- }
-}
-raylib.WaveFormat = WaveFormat
-
-/**
- * Color, 4 components, R8G8B8A8 (32bit)
- *
- * @param {number} r - Color red value
- * @param {number} g - Color green value
- * @param {number} b - Color blue value
- * @param {number} a - Color alpha value
- *
- * @return {Color} The new Color.
- */
-function Color (r, g, b, a) {
- return { r, g, b, a }
-}
-raylib.Color = Color
-
-/**
- * Vector2, 2 components
- *
- * @param {number} x - Vector x component
- * @param {number} y - Vector y component
- *
- * @return {Vector2} The new Vector2.
- */
-function Vector2 (x, y) {
- return { x, y }
-}
-raylib.Vector2 = Vector2
-
-/**
- * Vector3, 3 components
- *
- * @param {number} x - Vector x component
- * @param {number} y - Vector y component
- * @param {number} z - Vector z component
- *
- * @return {Vector3} The new Vector3.
- */
-function Vector3 (x, y, z) {
- return { x, y, z }
-}
-raylib.Vector3 = Vector3
-
-/**
- * Vector4, 4 components
- *
- * @param {number} x - Vector x component
- * @param {number} y - Vector y component
- * @param {number} z - Vector z component
- * @param {number} w - Vector w component
- *
- * @return {Vector4} The new Vector4.
- */
-function Vector4 (x, y, z, w) {
- return { x, y, z, w }
-}
-raylib.Vector4 = Vector4
-
-/**
- * Rectangle, 4 components
- *
- * @param {number} x - Rectangle top-left corner position x
- * @param {number} y - Rectangle top-left corner position y
- * @param {number} width - Rectangle width
- * @param {number} height - Rectangle height
- *
- * @return {Rectangle} The new Rectangle.
- */
-function Rectangle (x, y, width, height) {
- return { x, y, width, height }
-}
-raylib.Rectangle = Rectangle
-
-/**
- * Camera2D, defines position/orientation in 2d space
- *
- * @param {Vector2} offset - Camera offset (displacement from target)
- * @param {Vector2} target - Camera target (rotation and zoom origin)
- * @param {number} rotation - Camera rotation in degrees
- * @param {number} zoom - Camera zoom (scaling), should be 1.0f by default
- *
- * @return {Camera2D} The new Camera2D.
- */
-function Camera2D (offset, target, rotation, zoom) {
- return { offset, target, rotation, zoom }
-}
-raylib.Camera2D = Camera2D
-
-/**
- * Camera, defines position/orientation in 3d space
- *
- * @param {Vector3} position - Camera position
- * @param {Vector3} target - Camera target it looks-at
- * @param {Vector3} up - Camera up vector (rotation over its axis)
- * @param {number} fovy - Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic
- * @param {number} projection - Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
- *
- * @return {Camera3D} The new Camera3D.
- */
-function Camera3D (position, target, up, fovy, projection) {
- return { position, target, up, fovy, projection }
-}
-raylib.Camera3D = Camera3D
-raylib.Camera = raylib.Camera3D
-
-// WRAPPED TYPED SHADER FUNCTIONS
-
-/**
- * Set shader uniform value float
- *
- * @param {Shader} shader
- * @param {number} locIndex
- * @param {number} value
- *
- * @returns {undefined}
- */
-function SetShaderFloat (shader, locIndex, value) {
- return r.BindSetShaderFloat(
- shader.id,
- shader.locs,
- locIndex,
- value
- )
-}
-raylib.SetShaderFloat = SetShaderFloat
-
-/**
- * Set shader uniform value float
- *
- * @param {Shader} shader
- * @param {number} locIndex
- * @param {number} value
- *
- * @returns {undefined}
- */
-function SetShaderInt (shader, locIndex, value) {
- return r.BindSetShaderInt(
- shader.id,
- shader.locs,
- locIndex,
- value
- )
-}
-raylib.SetShaderInt = SetShaderInt
-
-/**
- * Set shader uniform value vector2
- *
- * @param {Shader} shader
- * @param {number} locIndex
- * @param {Vector2} value
- *
- * @returns {undefined}
- */
-function SetShaderVec2 (shader, locIndex, value) {
- return r.BindSetShaderVec2(
- shader.id,
- shader.locs,
- locIndex,
- value.x,
- value.y
- )
-}
-raylib.SetShaderVec2 = SetShaderVec2
-
-/**
- * Set shader uniform value vector3
- *
- * @param {Shader} shader
- * @param {number} locIndex
- * @param {Vector3} value
- *
- * @returns {undefined}
- */
-function SetShaderVec3 (shader, locIndex, value) {
- return r.BindSetShaderVec3(
- shader.id,
- shader.locs,
- locIndex,
- value.x,
- value.y,
- value.z
- )
-}
-raylib.SetShaderVec3 = SetShaderVec3
-
-/**
- * Set shader uniform value vector4
- *
- * @param {Shader} shader
- * @param {number} locIndex
- * @param {Vector4} value
- *
- * @returns {undefined}
- */
-function SetShaderVec4 (shader, locIndex, value) {
- return r.BindSetShaderVec4(
- shader.id,
- shader.locs,
- locIndex,
- value.x,
- value.y,
- value.z,
- value.w
- )
-}
-raylib.SetShaderVec4 = SetShaderVec4
-
-/**
- * Set to try enabling V-Sync on GPU
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_VSYNC_HINT = 64
-
-/**
- * Set to run program in fullscreen
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_FULLSCREEN_MODE = 2
-
-/**
- * Set to allow resizable window
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_RESIZABLE = 4
-
-/**
- * Set to disable window decoration (frame and buttons)
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_UNDECORATED = 8
-
-/**
- * Set to hide window
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_HIDDEN = 128
-
-/**
- * Set to minimize window (iconify)
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_MINIMIZED = 512
-
-/**
- * Set to maximize window (expanded to monitor)
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_MAXIMIZED = 1024
-
-/**
- * Set to window non focused
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_UNFOCUSED = 2048
-
-/**
- * Set to window always on top
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_TOPMOST = 4096
-
-/**
- * Set to allow windows running while minimized
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_ALWAYS_RUN = 256
-
-/**
- * Set to allow transparent framebuffer
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_TRANSPARENT = 16
-
-/**
- * Set to support HighDPI
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_HIGHDPI = 8192
-
-/**
- * Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384
-
-/**
- * Set to try enabling MSAA 4X
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_MSAA_4X_HINT = 32
-
-/**
- * Set to try enabling interlaced video format (for V3D)
- *
- * @type {number}
- * @constant
- */
-raylib.FLAG_INTERLACED_HINT = 65536
-
-/**
- * Display all logs
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_ALL = 0
-
-/**
- * Trace logging, intended for internal use only
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_TRACE = 1
-
-/**
- * Debug logging, used for internal debugging, it should be disabled on release builds
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_DEBUG = 2
-
-/**
- * Info logging, used for program execution info
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_INFO = 3
-
-/**
- * Warning logging, used on recoverable failures
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_WARNING = 4
-
-/**
- * Error logging, used on unrecoverable failures
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_ERROR = 5
-
-/**
- * Fatal logging, used to abort program: exit(EXIT_FAILURE)
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_FATAL = 6
-
-/**
- * Disable logging
- *
- * @type {number}
- * @constant
- */
-raylib.LOG_NONE = 7
-
-/**
- * Key: NULL, used for no key pressed
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_NULL = 0
-
-/**
- * Key: '
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_APOSTROPHE = 39
-
-/**
- * Key: ,
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_COMMA = 44
-
-/**
- * Key: -
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_MINUS = 45
-
-/**
- * Key: .
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_PERIOD = 46
-
-/**
- * Key: /
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SLASH = 47
-
-/**
- * Key: 0
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_ZERO = 48
-
-/**
- * Key: 1
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_ONE = 49
-
-/**
- * Key: 2
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_TWO = 50
-
-/**
- * Key: 3
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_THREE = 51
-
-/**
- * Key: 4
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_FOUR = 52
-
-/**
- * Key: 5
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_FIVE = 53
-
-/**
- * Key: 6
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SIX = 54
-
-/**
- * Key: 7
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SEVEN = 55
-
-/**
- * Key: 8
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_EIGHT = 56
-
-/**
- * Key: 9
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_NINE = 57
-
-/**
- * Key: ;
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SEMICOLON = 59
-
-/**
- * Key: =
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_EQUAL = 61
-
-/**
- * Key: A | a
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_A = 65
-
-/**
- * Key: B | b
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_B = 66
-
-/**
- * Key: C | c
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_C = 67
-
-/**
- * Key: D | d
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_D = 68
-
-/**
- * Key: E | e
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_E = 69
-
-/**
- * Key: F | f
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F = 70
-
-/**
- * Key: G | g
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_G = 71
-
-/**
- * Key: H | h
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_H = 72
-
-/**
- * Key: I | i
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_I = 73
-
-/**
- * Key: J | j
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_J = 74
-
-/**
- * Key: K | k
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_K = 75
-
-/**
- * Key: L | l
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_L = 76
-
-/**
- * Key: M | m
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_M = 77
-
-/**
- * Key: N | n
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_N = 78
-
-/**
- * Key: O | o
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_O = 79
-
-/**
- * Key: P | p
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_P = 80
-
-/**
- * Key: Q | q
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_Q = 81
-
-/**
- * Key: R | r
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_R = 82
-
-/**
- * Key: S | s
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_S = 83
-
-/**
- * Key: T | t
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_T = 84
-
-/**
- * Key: U | u
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_U = 85
-
-/**
- * Key: V | v
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_V = 86
-
-/**
- * Key: W | w
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_W = 87
-
-/**
- * Key: X | x
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_X = 88
-
-/**
- * Key: Y | y
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_Y = 89
-
-/**
- * Key: Z | z
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_Z = 90
-
-/**
- * Key: [
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT_BRACKET = 91
-
-/**
- * Key: '\'
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_BACKSLASH = 92
-
-/**
- * Key: ]
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT_BRACKET = 93
-
-/**
- * Key: `
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_GRAVE = 96
-
-/**
- * Key: Space
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SPACE = 32
-
-/**
- * Key: Esc
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_ESCAPE = 256
-
-/**
- * Key: Enter
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_ENTER = 257
-
-/**
- * Key: Tab
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_TAB = 258
-
-/**
- * Key: Backspace
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_BACKSPACE = 259
-
-/**
- * Key: Ins
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_INSERT = 260
-
-/**
- * Key: Del
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_DELETE = 261
-
-/**
- * Key: Cursor right
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT = 262
-
-/**
- * Key: Cursor left
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT = 263
-
-/**
- * Key: Cursor down
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_DOWN = 264
-
-/**
- * Key: Cursor up
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_UP = 265
-
-/**
- * Key: Page up
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_PAGE_UP = 266
-
-/**
- * Key: Page down
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_PAGE_DOWN = 267
-
-/**
- * Key: Home
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_HOME = 268
-
-/**
- * Key: End
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_END = 269
-
-/**
- * Key: Caps lock
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_CAPS_LOCK = 280
-
-/**
- * Key: Scroll down
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_SCROLL_LOCK = 281
-
-/**
- * Key: Num lock
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_NUM_LOCK = 282
-
-/**
- * Key: Print screen
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_PRINT_SCREEN = 283
-
-/**
- * Key: Pause
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_PAUSE = 284
-
-/**
- * Key: F1
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F1 = 290
-
-/**
- * Key: F2
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F2 = 291
-
-/**
- * Key: F3
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F3 = 292
-
-/**
- * Key: F4
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F4 = 293
-
-/**
- * Key: F5
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F5 = 294
-
-/**
- * Key: F6
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F6 = 295
-
-/**
- * Key: F7
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F7 = 296
-
-/**
- * Key: F8
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F8 = 297
-
-/**
- * Key: F9
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F9 = 298
-
-/**
- * Key: F10
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F10 = 299
-
-/**
- * Key: F11
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F11 = 300
-
-/**
- * Key: F12
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_F12 = 301
-
-/**
- * Key: Shift left
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT_SHIFT = 340
-
-/**
- * Key: Control left
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT_CONTROL = 341
-
-/**
- * Key: Alt left
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT_ALT = 342
-
-/**
- * Key: Super left
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_LEFT_SUPER = 343
-
-/**
- * Key: Shift right
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT_SHIFT = 344
-
-/**
- * Key: Control right
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT_CONTROL = 345
-
-/**
- * Key: Alt right
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT_ALT = 346
-
-/**
- * Key: Super right
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_RIGHT_SUPER = 347
-
-/**
- * Key: KB menu
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_KB_MENU = 348
-
-/**
- * Key: Keypad 0
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_0 = 320
-
-/**
- * Key: Keypad 1
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_1 = 321
-
-/**
- * Key: Keypad 2
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_2 = 322
-
-/**
- * Key: Keypad 3
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_3 = 323
+ )
+}
+raylib.QuaternionEquals = QuaternionEquals
/**
- * Key: Keypad 4
+ * Choose the current matrix to be transformed
*
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_4 = 324
-
-/**
- * Key: Keypad 5
+ * @param {number} mode
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_5 = 325
+function rlMatrixMode(mode) {
+ return r.BindrlMatrixMode(
+ mode
+ )
+}
+raylib.rlMatrixMode = rlMatrixMode
/**
- * Key: Keypad 6
+ * Push the current matrix to stack
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_6 = 326
+function rlPushMatrix() {
+ return r.BindrlPushMatrix()
+}
+raylib.rlPushMatrix = rlPushMatrix
/**
- * Key: Keypad 7
+ * Pop latest inserted matrix from stack
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_7 = 327
+function rlPopMatrix() {
+ return r.BindrlPopMatrix()
+}
+raylib.rlPopMatrix = rlPopMatrix
/**
- * Key: Keypad 8
+ * Reset current matrix to identity matrix
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_8 = 328
+function rlLoadIdentity() {
+ return r.BindrlLoadIdentity()
+}
+raylib.rlLoadIdentity = rlLoadIdentity
/**
- * Key: Keypad 9
+ * Multiply the current matrix by a translation matrix
*
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_9 = 329
-
-/**
- * Key: Keypad .
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_DECIMAL = 330
+function rlTranslatef(x, y, z) {
+ return r.BindrlTranslatef(
+ x,
+ y,
+ z
+ )
+}
+raylib.rlTranslatef = rlTranslatef
/**
- * Key: Keypad /
+ * Multiply the current matrix by a rotation matrix
*
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_DIVIDE = 331
-
-/**
- * Key: Keypad *
+ * @param {number} angle
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_MULTIPLY = 332
+function rlRotatef(angle, x, y, z) {
+ return r.BindrlRotatef(
+ angle,
+ x,
+ y,
+ z
+ )
+}
+raylib.rlRotatef = rlRotatef
/**
- * Key: Keypad -
+ * Multiply the current matrix by a scaling matrix
*
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_SUBTRACT = 333
-
-/**
- * Key: Keypad +
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_ADD = 334
+function rlScalef(x, y, z) {
+ return r.BindrlScalef(
+ x,
+ y,
+ z
+ )
+}
+raylib.rlScalef = rlScalef
/**
- * Key: Keypad Enter
+ * Multiply the current matrix by another matrix
*
- * @type {number}
- * @constant
- */
-raylib.KEY_KP_ENTER = 335
-
-/**
- * Key: Keypad =
+ * @param {number} matf
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.KEY_KP_EQUAL = 336
+function rlMultMatrixf(matf) {
+ return r.BindrlMultMatrixf(
+ matf
+ )
+}
+raylib.rlMultMatrixf = rlMultMatrixf
-/**
- * Key: Android back button
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_BACK = 4
+function rlFrustum(left, right, bottom, top, znear, zfar) {
+ return r.BindrlFrustum(
+ left,
+ right,
+ bottom,
+ top,
+ znear,
+ zfar
+ )
+}
+raylib.rlFrustum = rlFrustum
-/**
- * Key: Android menu button
- *
- * @type {number}
- * @constant
- */
-raylib.KEY_MENU = 82
+function rlOrtho(left, right, bottom, top, znear, zfar) {
+ return r.BindrlOrtho(
+ left,
+ right,
+ bottom,
+ top,
+ znear,
+ zfar
+ )
+}
+raylib.rlOrtho = rlOrtho
/**
- * Key: Android volume up button
+ * Set the viewport area
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {undefined}
*/
-raylib.KEY_VOLUME_UP = 24
+function rlViewport(x, y, width, height) {
+ return r.BindrlViewport(
+ x,
+ y,
+ width,
+ height
+ )
+}
+raylib.rlViewport = rlViewport
/**
- * Key: Android volume down button
+ * Initialize drawing mode (how to organize vertex)
*
- * @type {number}
- * @constant
+ * @param {number} mode
+ *
+ * @return {undefined}
*/
-raylib.KEY_VOLUME_DOWN = 25
+function rlBegin(mode) {
+ return r.BindrlBegin(
+ mode
+ )
+}
+raylib.rlBegin = rlBegin
/**
- * Mouse button left
+ * Finish vertex providing
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_LEFT = 0
+function rlEnd() {
+ return r.BindrlEnd()
+}
+raylib.rlEnd = rlEnd
/**
- * Mouse button right
+ * Define one vertex (position) - 2 int
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_RIGHT = 1
+function rlVertex2i(x, y) {
+ return r.BindrlVertex2i(
+ x,
+ y
+ )
+}
+raylib.rlVertex2i = rlVertex2i
/**
- * Mouse button middle (pressed wheel)
+ * Define one vertex (position) - 2 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_MIDDLE = 2
+function rlVertex2f(x, y) {
+ return r.BindrlVertex2f(
+ x,
+ y
+ )
+}
+raylib.rlVertex2f = rlVertex2f
/**
- * Mouse button side (advanced mouse device)
+ * Define one vertex (position) - 3 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_SIDE = 3
+function rlVertex3f(x, y, z) {
+ return r.BindrlVertex3f(
+ x,
+ y,
+ z
+ )
+}
+raylib.rlVertex3f = rlVertex3f
/**
- * Mouse button extra (advanced mouse device)
+ * Define one vertex (texture coordinate) - 2 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_EXTRA = 4
+function rlTexCoord2f(x, y) {
+ return r.BindrlTexCoord2f(
+ x,
+ y
+ )
+}
+raylib.rlTexCoord2f = rlTexCoord2f
/**
- * Mouse button forward (advanced mouse device)
+ * Define one vertex (normal) - 3 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_FORWARD = 5
+function rlNormal3f(x, y, z) {
+ return r.BindrlNormal3f(
+ x,
+ y,
+ z
+ )
+}
+raylib.rlNormal3f = rlNormal3f
/**
- * Mouse button back (advanced mouse device)
+ * Define one vertex (color) - 4 byte
*
- * @type {number}
- * @constant
+ * @param {number} r
+ * @param {number} g
+ * @param {number} b
+ * @param {number} a
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_BUTTON_BACK = 6
+function rlColor4ub(r, g, b, a) {
+ return r.BindrlColor4ub(
+ r,
+ g,
+ b,
+ a
+ )
+}
+raylib.rlColor4ub = rlColor4ub
/**
- * Default pointer shape
+ * Define one vertex (color) - 3 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_DEFAULT = 0
+function rlColor3f(x, y, z) {
+ return r.BindrlColor3f(
+ x,
+ y,
+ z
+ )
+}
+raylib.rlColor3f = rlColor3f
/**
- * Arrow shape
+ * Define one vertex (color) - 4 float
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} z
+ * @param {number} w
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_ARROW = 1
+function rlColor4f(x, y, z, w) {
+ return r.BindrlColor4f(
+ x,
+ y,
+ z,
+ w
+ )
+}
+raylib.rlColor4f = rlColor4f
/**
- * Text writing cursor shape
+ * Enable vertex array (VAO, if supported)
*
- * @type {number}
- * @constant
+ * @param {number} vaoId
+ *
+ * @return {boolean} The resulting bool.
*/
-raylib.MOUSE_CURSOR_IBEAM = 2
+function rlEnableVertexArray(vaoId) {
+ return r.BindrlEnableVertexArray(
+ vaoId
+ )
+}
+raylib.rlEnableVertexArray = rlEnableVertexArray
/**
- * Cross shape
+ * Disable vertex array (VAO, if supported)
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_CROSSHAIR = 3
+function rlDisableVertexArray() {
+ return r.BindrlDisableVertexArray()
+}
+raylib.rlDisableVertexArray = rlDisableVertexArray
/**
- * Pointing hand cursor
+ * Enable vertex buffer (VBO)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_POINTING_HAND = 4
+function rlEnableVertexBuffer(id) {
+ return r.BindrlEnableVertexBuffer(
+ id
+ )
+}
+raylib.rlEnableVertexBuffer = rlEnableVertexBuffer
/**
- * Horizontal resize/move arrow shape
+ * Disable vertex buffer (VBO)
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_RESIZE_EW = 5
+function rlDisableVertexBuffer() {
+ return r.BindrlDisableVertexBuffer()
+}
+raylib.rlDisableVertexBuffer = rlDisableVertexBuffer
/**
- * Vertical resize/move arrow shape
+ * Enable vertex buffer element (VBO element)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_RESIZE_NS = 6
+function rlEnableVertexBufferElement(id) {
+ return r.BindrlEnableVertexBufferElement(
+ id
+ )
+}
+raylib.rlEnableVertexBufferElement = rlEnableVertexBufferElement
/**
- * Top-left to bottom-right diagonal resize/move arrow shape
+ * Disable vertex buffer element (VBO element)
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_RESIZE_NWSE = 7
+function rlDisableVertexBufferElement() {
+ return r.BindrlDisableVertexBufferElement()
+}
+raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement
/**
- * The top-right to bottom-left diagonal resize/move arrow shape
+ * Enable vertex attribute index
*
- * @type {number}
- * @constant
+ * @param {number} index
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_RESIZE_NESW = 8
+function rlEnableVertexAttribute(index) {
+ return r.BindrlEnableVertexAttribute(
+ index
+ )
+}
+raylib.rlEnableVertexAttribute = rlEnableVertexAttribute
/**
- * The omnidirectional resize/move cursor shape
+ * Disable vertex attribute index
*
- * @type {number}
- * @constant
+ * @param {number} index
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_RESIZE_ALL = 9
+function rlDisableVertexAttribute(index) {
+ return r.BindrlDisableVertexAttribute(
+ index
+ )
+}
+raylib.rlDisableVertexAttribute = rlDisableVertexAttribute
/**
- * The operation-not-allowed shape
+ * Select and active a texture slot
*
- * @type {number}
- * @constant
+ * @param {number} slot
+ *
+ * @return {undefined}
*/
-raylib.MOUSE_CURSOR_NOT_ALLOWED = 10
+function rlActiveTextureSlot(slot) {
+ return r.BindrlActiveTextureSlot(
+ slot
+ )
+}
+raylib.rlActiveTextureSlot = rlActiveTextureSlot
/**
- * Unknown button, just for error checking
+ * Enable texture
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_UNKNOWN = 0
+function rlEnableTexture(id) {
+ return r.BindrlEnableTexture(
+ id
+ )
+}
+raylib.rlEnableTexture = rlEnableTexture
/**
- * Gamepad left DPAD up button
+ * Disable texture
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_FACE_UP = 1
+function rlDisableTexture() {
+ return r.BindrlDisableTexture()
+}
+raylib.rlDisableTexture = rlDisableTexture
/**
- * Gamepad left DPAD right button
+ * Enable texture cubemap
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2
+function rlEnableTextureCubemap(id) {
+ return r.BindrlEnableTextureCubemap(
+ id
+ )
+}
+raylib.rlEnableTextureCubemap = rlEnableTextureCubemap
/**
- * Gamepad left DPAD down button
+ * Disable texture cubemap
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3
+function rlDisableTextureCubemap() {
+ return r.BindrlDisableTextureCubemap()
+}
+raylib.rlDisableTextureCubemap = rlDisableTextureCubemap
/**
- * Gamepad left DPAD left button
+ * Set texture parameters (filter, wrap)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} param
+ * @param {number} value
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4
+function rlTextureParameters(id, param, value) {
+ return r.BindrlTextureParameters(
+ id,
+ param,
+ value
+ )
+}
+raylib.rlTextureParameters = rlTextureParameters
/**
- * Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)
+ * Set cubemap parameters (filter, wrap)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} param
+ * @param {number} value
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_FACE_UP = 5
+function rlCubemapParameters(id, param, value) {
+ return r.BindrlCubemapParameters(
+ id,
+ param,
+ value
+ )
+}
+raylib.rlCubemapParameters = rlCubemapParameters
/**
- * Gamepad right button right (i.e. PS3: Square, Xbox: X)
+ * Enable shader program
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6
+function rlEnableShader(id) {
+ return r.BindrlEnableShader(
+ id
+ )
+}
+raylib.rlEnableShader = rlEnableShader
/**
- * Gamepad right button down (i.e. PS3: Cross, Xbox: A)
+ * Disable shader program
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7
+function rlDisableShader() {
+ return r.BindrlDisableShader()
+}
+raylib.rlDisableShader = rlDisableShader
/**
- * Gamepad right button left (i.e. PS3: Circle, Xbox: B)
+ * Enable render texture (fbo)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8
+function rlEnableFramebuffer(id) {
+ return r.BindrlEnableFramebuffer(
+ id
+ )
+}
+raylib.rlEnableFramebuffer = rlEnableFramebuffer
/**
- * Gamepad top/back trigger left (first), it could be a trailing button
+ * Disable render texture (fbo), return to default framebuffer
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9
+function rlDisableFramebuffer() {
+ return r.BindrlDisableFramebuffer()
+}
+raylib.rlDisableFramebuffer = rlDisableFramebuffer
/**
- * Gamepad top/back trigger left (second), it could be a trailing button
+ * Activate multiple draw color buffers
*
- * @type {number}
- * @constant
+ * @param {number} count
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10
+function rlActiveDrawBuffers(count) {
+ return r.BindrlActiveDrawBuffers(
+ count
+ )
+}
+raylib.rlActiveDrawBuffers = rlActiveDrawBuffers
/**
- * Gamepad top/back trigger right (one), it could be a trailing button
+ * Blit active framebuffer to main framebuffer
*
- * @type {number}
- * @constant
+ * @param {number} srcX
+ * @param {number} srcY
+ * @param {number} srcWidth
+ * @param {number} srcHeight
+ * @param {number} dstX
+ * @param {number} dstY
+ * @param {number} dstWidth
+ * @param {number} dstHeight
+ * @param {number} bufferMask
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11
+function rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) {
+ return r.BindrlBlitFramebuffer(
+ srcX,
+ srcY,
+ srcWidth,
+ srcHeight,
+ dstX,
+ dstY,
+ dstWidth,
+ dstHeight,
+ bufferMask
+ )
+}
+raylib.rlBlitFramebuffer = rlBlitFramebuffer
/**
- * Gamepad top/back trigger right (second), it could be a trailing button
+ * Enable color blending
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12
+function rlEnableColorBlend() {
+ return r.BindrlEnableColorBlend()
+}
+raylib.rlEnableColorBlend = rlEnableColorBlend
/**
- * Gamepad center buttons, left one (i.e. PS3: Select)
+ * Disable color blending
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_MIDDLE_LEFT = 13
+function rlDisableColorBlend() {
+ return r.BindrlDisableColorBlend()
+}
+raylib.rlDisableColorBlend = rlDisableColorBlend
/**
- * Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)
+ * Enable depth test
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_MIDDLE = 14
+function rlEnableDepthTest() {
+ return r.BindrlEnableDepthTest()
+}
+raylib.rlEnableDepthTest = rlEnableDepthTest
/**
- * Gamepad center buttons, right one (i.e. PS3: Start)
+ * Disable depth test
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_MIDDLE_RIGHT = 15
+function rlDisableDepthTest() {
+ return r.BindrlDisableDepthTest()
+}
+raylib.rlDisableDepthTest = rlDisableDepthTest
/**
- * Gamepad joystick pressed button left
+ * Enable depth write
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_LEFT_THUMB = 16
+function rlEnableDepthMask() {
+ return r.BindrlEnableDepthMask()
+}
+raylib.rlEnableDepthMask = rlEnableDepthMask
/**
- * Gamepad joystick pressed button right
+ * Disable depth write
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_BUTTON_RIGHT_THUMB = 17
+function rlDisableDepthMask() {
+ return r.BindrlDisableDepthMask()
+}
+raylib.rlDisableDepthMask = rlDisableDepthMask
/**
- * Gamepad left stick X axis
+ * Enable backface culling
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_LEFT_X = 0
+function rlEnableBackfaceCulling() {
+ return r.BindrlEnableBackfaceCulling()
+}
+raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling
/**
- * Gamepad left stick Y axis
+ * Disable backface culling
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_LEFT_Y = 1
+function rlDisableBackfaceCulling() {
+ return r.BindrlDisableBackfaceCulling()
+}
+raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling
/**
- * Gamepad right stick X axis
+ * Set face culling mode
*
- * @type {number}
- * @constant
+ * @param {number} mode
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_RIGHT_X = 2
+function rlSetCullFace(mode) {
+ return r.BindrlSetCullFace(
+ mode
+ )
+}
+raylib.rlSetCullFace = rlSetCullFace
/**
- * Gamepad right stick Y axis
+ * Enable scissor test
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_RIGHT_Y = 3
+function rlEnableScissorTest() {
+ return r.BindrlEnableScissorTest()
+}
+raylib.rlEnableScissorTest = rlEnableScissorTest
/**
- * Gamepad back trigger left, pressure level: [1..-1]
+ * Disable scissor test
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_LEFT_TRIGGER = 4
+function rlDisableScissorTest() {
+ return r.BindrlDisableScissorTest()
+}
+raylib.rlDisableScissorTest = rlDisableScissorTest
/**
- * Gamepad back trigger right, pressure level: [1..-1]
+ * Scissor test
*
- * @type {number}
- * @constant
+ * @param {number} x
+ * @param {number} y
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {undefined}
*/
-raylib.GAMEPAD_AXIS_RIGHT_TRIGGER = 5
+function rlScissor(x, y, width, height) {
+ return r.BindrlScissor(
+ x,
+ y,
+ width,
+ height
+ )
+}
+raylib.rlScissor = rlScissor
/**
- * Albedo material (same as: MATERIAL_MAP_DIFFUSE)
+ * Enable wire mode
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_ALBEDO = 0
+function rlEnableWireMode() {
+ return r.BindrlEnableWireMode()
+}
+raylib.rlEnableWireMode = rlEnableWireMode
/**
- * Metalness material (same as: MATERIAL_MAP_SPECULAR)
+ * Enable point mode
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_METALNESS = 1
+function rlEnablePointMode() {
+ return r.BindrlEnablePointMode()
+}
+raylib.rlEnablePointMode = rlEnablePointMode
/**
- * Normal material
+ * Disable wire mode ( and point ) maybe rename
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_NORMAL = 2
+function rlDisableWireMode() {
+ return r.BindrlDisableWireMode()
+}
+raylib.rlDisableWireMode = rlDisableWireMode
/**
- * Roughness material
+ * Set the line drawing width
*
- * @type {number}
- * @constant
+ * @param {number} width
+ *
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_ROUGHNESS = 3
+function rlSetLineWidth(width) {
+ return r.BindrlSetLineWidth(
+ width
+ )
+}
+raylib.rlSetLineWidth = rlSetLineWidth
/**
- * Ambient occlusion material
+ * Get the line drawing width
*
- * @type {number}
- * @constant
+ * @return {number} The resulting float.
*/
-raylib.MATERIAL_MAP_OCCLUSION = 4
+function rlGetLineWidth() {
+ return r.BindrlGetLineWidth()
+}
+raylib.rlGetLineWidth = rlGetLineWidth
/**
- * Emission material
- *
- * @type {number}
- * @constant
+ * Enable line aliasing
+ *
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_EMISSION = 5
+function rlEnableSmoothLines() {
+ return r.BindrlEnableSmoothLines()
+}
+raylib.rlEnableSmoothLines = rlEnableSmoothLines
/**
- * Heightmap material
+ * Disable line aliasing
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_HEIGHT = 6
+function rlDisableSmoothLines() {
+ return r.BindrlDisableSmoothLines()
+}
+raylib.rlDisableSmoothLines = rlDisableSmoothLines
/**
- * Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+ * Enable stereo rendering
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_CUBEMAP = 7
+function rlEnableStereoRender() {
+ return r.BindrlEnableStereoRender()
+}
+raylib.rlEnableStereoRender = rlEnableStereoRender
/**
- * Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+ * Disable stereo rendering
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_IRRADIANCE = 8
+function rlDisableStereoRender() {
+ return r.BindrlDisableStereoRender()
+}
+raylib.rlDisableStereoRender = rlDisableStereoRender
/**
- * Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+ * Check if stereo render is enabled
*
- * @type {number}
- * @constant
+ * @return {boolean} The resulting bool.
*/
-raylib.MATERIAL_MAP_PREFILTER = 9
+function rlIsStereoRenderEnabled() {
+ return r.BindrlIsStereoRenderEnabled()
+}
+raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled
/**
- * Brdf material
+ * Clear color buffer with color
*
- * @type {number}
- * @constant
+ * @param {number} r
+ * @param {number} g
+ * @param {number} b
+ * @param {number} a
+ *
+ * @return {undefined}
*/
-raylib.MATERIAL_MAP_BRDF = 10
+function rlClearColor(r, g, b, a) {
+ return r.BindrlClearColor(
+ r,
+ g,
+ b,
+ a
+ )
+}
+raylib.rlClearColor = rlClearColor
/**
- * Shader location: vertex attribute: position
+ * Clear used screen buffers (color and depth)
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_POSITION = 0
+function rlClearScreenBuffers() {
+ return r.BindrlClearScreenBuffers()
+}
+raylib.rlClearScreenBuffers = rlClearScreenBuffers
/**
- * Shader location: vertex attribute: texcoord01
+ * Check and log OpenGL error codes
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_TEXCOORD01 = 1
+function rlCheckErrors() {
+ return r.BindrlCheckErrors()
+}
+raylib.rlCheckErrors = rlCheckErrors
/**
- * Shader location: vertex attribute: texcoord02
+ * Set blending mode
*
- * @type {number}
- * @constant
+ * @param {number} mode
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_TEXCOORD02 = 2
+function rlSetBlendMode(mode) {
+ return r.BindrlSetBlendMode(
+ mode
+ )
+}
+raylib.rlSetBlendMode = rlSetBlendMode
/**
- * Shader location: vertex attribute: normal
+ * Set blending mode factor and equation (using OpenGL factors)
*
- * @type {number}
- * @constant
+ * @param {number} glSrcFactor
+ * @param {number} glDstFactor
+ * @param {number} glEquation
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_NORMAL = 3
+function rlSetBlendFactors(glSrcFactor, glDstFactor, glEquation) {
+ return r.BindrlSetBlendFactors(
+ glSrcFactor,
+ glDstFactor,
+ glEquation
+ )
+}
+raylib.rlSetBlendFactors = rlSetBlendFactors
/**
- * Shader location: vertex attribute: tangent
+ * Set blending mode factors and equations separately (using OpenGL factors)
*
- * @type {number}
- * @constant
+ * @param {number} glSrcRGB
+ * @param {number} glDstRGB
+ * @param {number} glSrcAlpha
+ * @param {number} glDstAlpha
+ * @param {number} glEqRGB
+ * @param {number} glEqAlpha
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_TANGENT = 4
+function rlSetBlendFactorsSeparate(glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) {
+ return r.BindrlSetBlendFactorsSeparate(
+ glSrcRGB,
+ glDstRGB,
+ glSrcAlpha,
+ glDstAlpha,
+ glEqRGB,
+ glEqAlpha
+ )
+}
+raylib.rlSetBlendFactorsSeparate = rlSetBlendFactorsSeparate
/**
- * Shader location: vertex attribute: color
+ * Initialize rlgl (buffers, shaders, textures, states)
*
- * @type {number}
- * @constant
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VERTEX_COLOR = 5
+function rlglInit(width, height) {
+ return r.BindrlglInit(
+ width,
+ height
+ )
+}
+raylib.rlglInit = rlglInit
/**
- * Shader location: matrix uniform: model-view-projection
+ * De-initialize rlgl (buffers, shaders, textures)
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MATRIX_MVP = 6
+function rlglClose() {
+ return r.BindrlglClose()
+}
+raylib.rlglClose = rlglClose
/**
- * Shader location: matrix uniform: view (camera transform)
+ * Load OpenGL extensions (loader function required)
*
- * @type {number}
- * @constant
+ * @param {number} loader
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MATRIX_VIEW = 7
+function rlLoadExtensions(loader) {
+ return r.BindrlLoadExtensions(
+ loader
+ )
+}
+raylib.rlLoadExtensions = rlLoadExtensions
/**
- * Shader location: matrix uniform: projection
+ * Get current OpenGL version
*
- * @type {number}
- * @constant
+ * @return {number} The resulting int.
*/
-raylib.SHADER_LOC_MATRIX_PROJECTION = 8
+function rlGetVersion() {
+ return r.BindrlGetVersion()
+}
+raylib.rlGetVersion = rlGetVersion
/**
- * Shader location: matrix uniform: model (transform)
+ * Set current framebuffer width
*
- * @type {number}
- * @constant
+ * @param {number} width
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MATRIX_MODEL = 9
+function rlSetFramebufferWidth(width) {
+ return r.BindrlSetFramebufferWidth(
+ width
+ )
+}
+raylib.rlSetFramebufferWidth = rlSetFramebufferWidth
/**
- * Shader location: matrix uniform: normal
+ * Get default framebuffer width
*
- * @type {number}
- * @constant
+ * @return {number} The resulting int.
*/
-raylib.SHADER_LOC_MATRIX_NORMAL = 10
+function rlGetFramebufferWidth() {
+ return r.BindrlGetFramebufferWidth()
+}
+raylib.rlGetFramebufferWidth = rlGetFramebufferWidth
/**
- * Shader location: vector uniform: view
+ * Set current framebuffer height
*
- * @type {number}
- * @constant
+ * @param {number} height
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_VECTOR_VIEW = 11
+function rlSetFramebufferHeight(height) {
+ return r.BindrlSetFramebufferHeight(
+ height
+ )
+}
+raylib.rlSetFramebufferHeight = rlSetFramebufferHeight
/**
- * Shader location: vector uniform: diffuse color
+ * Get default framebuffer height
*
- * @type {number}
- * @constant
+ * @return {number} The resulting int.
*/
-raylib.SHADER_LOC_COLOR_DIFFUSE = 12
+function rlGetFramebufferHeight() {
+ return r.BindrlGetFramebufferHeight()
+}
+raylib.rlGetFramebufferHeight = rlGetFramebufferHeight
/**
- * Shader location: vector uniform: specular color
+ * Get default texture id
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_LOC_COLOR_SPECULAR = 13
+function rlGetTextureIdDefault() {
+ return r.BindrlGetTextureIdDefault()
+}
+raylib.rlGetTextureIdDefault = rlGetTextureIdDefault
/**
- * Shader location: vector uniform: ambient color
+ * Get default shader id
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_LOC_COLOR_AMBIENT = 14
+function rlGetShaderIdDefault() {
+ return r.BindrlGetShaderIdDefault()
+}
+raylib.rlGetShaderIdDefault = rlGetShaderIdDefault
/**
- * Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)
+ * Get default shader locations
*
- * @type {number}
- * @constant
+ * @return {number} The resulting int *.
*/
-raylib.SHADER_LOC_MAP_ALBEDO = 15
+function rlGetShaderLocsDefault() {
+ return r.BindrlGetShaderLocsDefault()
+}
+raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault
/**
- * Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)
+ * Load a render batch system
*
- * @type {number}
- * @constant
+ * @param {number} numBuffers
+ * @param {number} bufferElements
+ *
+ * @return {rlRenderBatch} The resulting rlRenderBatch.
*/
-raylib.SHADER_LOC_MAP_METALNESS = 16
+function rlLoadRenderBatch(numBuffers, bufferElements) {
+ return r.BindrlLoadRenderBatch(
+ numBuffers,
+ bufferElements
+ )
+}
+raylib.rlLoadRenderBatch = rlLoadRenderBatch
/**
- * Shader location: sampler2d texture: normal
+ * Unload render batch system
*
- * @type {number}
- * @constant
+ * @param {rlRenderBatch} batch
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MAP_NORMAL = 17
+function rlUnloadRenderBatch(batch) {
+ return r.BindrlUnloadRenderBatch(
+ batch.bufferCount,
+ batch.currentBuffer,
+ batch.vertexBuffer,
+ batch.draws,
+ batch.drawCounter,
+ batch.currentDepth
+ )
+}
+raylib.rlUnloadRenderBatch = rlUnloadRenderBatch
/**
- * Shader location: sampler2d texture: roughness
+ * Draw render batch data (Update->Draw->Reset)
*
- * @type {number}
- * @constant
+ * @param {number} batch
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MAP_ROUGHNESS = 18
+function rlDrawRenderBatch(batch) {
+ return r.BindrlDrawRenderBatch(
+ batch
+ )
+}
+raylib.rlDrawRenderBatch = rlDrawRenderBatch
/**
- * Shader location: sampler2d texture: occlusion
+ * Set the active render batch for rlgl (NULL for default internal)
*
- * @type {number}
- * @constant
+ * @param {number} batch
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MAP_OCCLUSION = 19
+function rlSetRenderBatchActive(batch) {
+ return r.BindrlSetRenderBatchActive(
+ batch
+ )
+}
+raylib.rlSetRenderBatchActive = rlSetRenderBatchActive
/**
- * Shader location: sampler2d texture: emission
+ * Update and draw internal render batch
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MAP_EMISSION = 20
+function rlDrawRenderBatchActive() {
+ return r.BindrlDrawRenderBatchActive()
+}
+raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive
/**
- * Shader location: sampler2d texture: height
+ * Check internal buffer overflow for a given number of vertex
*
- * @type {number}
- * @constant
+ * @param {number} vCount
+ *
+ * @return {boolean} The resulting bool.
*/
-raylib.SHADER_LOC_MAP_HEIGHT = 21
+function rlCheckRenderBatchLimit(vCount) {
+ return r.BindrlCheckRenderBatchLimit(
+ vCount
+ )
+}
+raylib.rlCheckRenderBatchLimit = rlCheckRenderBatchLimit
/**
- * Shader location: samplerCube texture: cubemap
+ * Set current texture for render batch and check buffers limits
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.SHADER_LOC_MAP_CUBEMAP = 22
+function rlSetTexture(id) {
+ return r.BindrlSetTexture(
+ id
+ )
+}
+raylib.rlSetTexture = rlSetTexture
/**
- * Shader location: samplerCube texture: irradiance
+ * Load vertex array (vao) if supported
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_LOC_MAP_IRRADIANCE = 23
+function rlLoadVertexArray() {
+ return r.BindrlLoadVertexArray()
+}
+raylib.rlLoadVertexArray = rlLoadVertexArray
/**
- * Shader location: samplerCube texture: prefilter
+ * Load a vertex buffer attribute
*
- * @type {number}
- * @constant
+ * @param {number} buffer
+ * @param {number} size
+ * @param {boolean} dynamic
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_LOC_MAP_PREFILTER = 24
+function rlLoadVertexBuffer(buffer, size, dynamic) {
+ return r.BindrlLoadVertexBuffer(
+ buffer,
+ size,
+ dynamic
+ )
+}
+raylib.rlLoadVertexBuffer = rlLoadVertexBuffer
/**
- * Shader location: sampler2d texture: brdf
+ * Load a new attributes element buffer
*
- * @type {number}
- * @constant
+ * @param {number} buffer
+ * @param {number} size
+ * @param {boolean} dynamic
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_LOC_MAP_BRDF = 25
+function rlLoadVertexBufferElement(buffer, size, dynamic) {
+ return r.BindrlLoadVertexBufferElement(
+ buffer,
+ size,
+ dynamic
+ )
+}
+raylib.rlLoadVertexBufferElement = rlLoadVertexBufferElement
/**
- * Shader uniform type: float
+ * Update GPU buffer with new data
*
- * @type {number}
- * @constant
+ * @param {number} bufferId
+ * @param {number} data
+ * @param {number} dataSize
+ * @param {number} offset
+ *
+ * @return {undefined}
*/
-raylib.SHADER_UNIFORM_FLOAT = 0
+function rlUpdateVertexBuffer(bufferId, data, dataSize, offset) {
+ return r.BindrlUpdateVertexBuffer(
+ bufferId,
+ data,
+ dataSize,
+ offset
+ )
+}
+raylib.rlUpdateVertexBuffer = rlUpdateVertexBuffer
/**
- * Shader uniform type: vec2 (2 float)
+ * Update vertex buffer elements with new data
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} data
+ * @param {number} dataSize
+ * @param {number} offset
+ *
+ * @return {undefined}
*/
-raylib.SHADER_UNIFORM_VEC2 = 1
+function rlUpdateVertexBufferElements(id, data, dataSize, offset) {
+ return r.BindrlUpdateVertexBufferElements(
+ id,
+ data,
+ dataSize,
+ offset
+ )
+}
+raylib.rlUpdateVertexBufferElements = rlUpdateVertexBufferElements
+
+function rlUnloadVertexArray(vaoId) {
+ return r.BindrlUnloadVertexArray(
+ vaoId
+ )
+}
+raylib.rlUnloadVertexArray = rlUnloadVertexArray
+
+function rlUnloadVertexBuffer(vboId) {
+ return r.BindrlUnloadVertexBuffer(
+ vboId
+ )
+}
+raylib.rlUnloadVertexBuffer = rlUnloadVertexBuffer
+
+function rlSetVertexAttribute(index, compSize, type, normalized, stride, pointer) {
+ return r.BindrlSetVertexAttribute(
+ index,
+ compSize,
+ type,
+ normalized,
+ stride,
+ pointer
+ )
+}
+raylib.rlSetVertexAttribute = rlSetVertexAttribute
+
+function rlSetVertexAttributeDivisor(index, divisor) {
+ return r.BindrlSetVertexAttributeDivisor(
+ index,
+ divisor
+ )
+}
+raylib.rlSetVertexAttributeDivisor = rlSetVertexAttributeDivisor
/**
- * Shader uniform type: vec3 (3 float)
+ * Set vertex attribute default value
*
- * @type {number}
- * @constant
+ * @param {number} locIndex
+ * @param {number} value
+ * @param {number} attribType
+ * @param {number} count
+ *
+ * @return {undefined}
*/
-raylib.SHADER_UNIFORM_VEC3 = 2
+function rlSetVertexAttributeDefault(locIndex, value, attribType, count) {
+ return r.BindrlSetVertexAttributeDefault(
+ locIndex,
+ value,
+ attribType,
+ count
+ )
+}
+raylib.rlSetVertexAttributeDefault = rlSetVertexAttributeDefault
+
+function rlDrawVertexArray(offset, count) {
+ return r.BindrlDrawVertexArray(
+ offset,
+ count
+ )
+}
+raylib.rlDrawVertexArray = rlDrawVertexArray
+
+function rlDrawVertexArrayElements(offset, count, buffer) {
+ return r.BindrlDrawVertexArrayElements(
+ offset,
+ count,
+ buffer
+ )
+}
+raylib.rlDrawVertexArrayElements = rlDrawVertexArrayElements
+
+function rlDrawVertexArrayInstanced(offset, count, instances) {
+ return r.BindrlDrawVertexArrayInstanced(
+ offset,
+ count,
+ instances
+ )
+}
+raylib.rlDrawVertexArrayInstanced = rlDrawVertexArrayInstanced
+
+function rlDrawVertexArrayElementsInstanced(offset, count, buffer, instances) {
+ return r.BindrlDrawVertexArrayElementsInstanced(
+ offset,
+ count,
+ buffer,
+ instances
+ )
+}
+raylib.rlDrawVertexArrayElementsInstanced = rlDrawVertexArrayElementsInstanced
/**
- * Shader uniform type: vec4 (4 float)
+ * Load texture in GPU
+ *
+ * @param {number} data
+ * @param {number} width
+ * @param {number} height
+ * @param {number} format
+ * @param {number} mipmapCount
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_UNIFORM_VEC4 = 3
+function rlLoadTexture(data, width, height, format, mipmapCount) {
+ return r.BindrlLoadTexture(
+ data,
+ width,
+ height,
+ format,
+ mipmapCount
+ )
+}
+raylib.rlLoadTexture = rlLoadTexture
/**
- * Shader uniform type: int
+ * Load depth texture/renderbuffer (to be attached to fbo)
*
- * @type {number}
- * @constant
- */
-raylib.SHADER_UNIFORM_INT = 4
-
-/**
- * Shader uniform type: ivec2 (2 int)
+ * @param {number} width
+ * @param {number} height
+ * @param {boolean} useRenderBuffer
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_UNIFORM_IVEC2 = 5
+function rlLoadTextureDepth(width, height, useRenderBuffer) {
+ return r.BindrlLoadTextureDepth(
+ width,
+ height,
+ useRenderBuffer
+ )
+}
+raylib.rlLoadTextureDepth = rlLoadTextureDepth
/**
- * Shader uniform type: ivec3 (3 int)
+ * Load texture cubemap
*
- * @type {number}
- * @constant
+ * @param {number} data
+ * @param {number} size
+ * @param {number} format
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.SHADER_UNIFORM_IVEC3 = 6
+function rlLoadTextureCubemap(data, size, format) {
+ return r.BindrlLoadTextureCubemap(
+ data,
+ size,
+ format
+ )
+}
+raylib.rlLoadTextureCubemap = rlLoadTextureCubemap
/**
- * Shader uniform type: ivec4 (4 int)
+ * Update GPU texture with new data
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} offsetX
+ * @param {number} offsetY
+ * @param {number} width
+ * @param {number} height
+ * @param {number} format
+ * @param {number} data
+ *
+ * @return {undefined}
*/
-raylib.SHADER_UNIFORM_IVEC4 = 7
+function rlUpdateTexture(id, offsetX, offsetY, width, height, format, data) {
+ return r.BindrlUpdateTexture(
+ id,
+ offsetX,
+ offsetY,
+ width,
+ height,
+ format,
+ data
+ )
+}
+raylib.rlUpdateTexture = rlUpdateTexture
/**
- * Shader uniform type: sampler2d
+ * Get OpenGL internal formats
*
- * @type {number}
- * @constant
+ * @param {number} format
+ * @param {number} glInternalFormat
+ * @param {number} glFormat
+ * @param {number} glType
+ *
+ * @return {undefined}
*/
-raylib.SHADER_UNIFORM_SAMPLER2D = 8
+function rlGetGlTextureFormats(format, glInternalFormat, glFormat, glType) {
+ return r.BindrlGetGlTextureFormats(
+ format,
+ glInternalFormat,
+ glFormat,
+ glType
+ )
+}
+raylib.rlGetGlTextureFormats = rlGetGlTextureFormats
/**
- * Shader attribute type: float
+ * Get name string for pixel format
*
- * @type {number}
- * @constant
+ * @param {number} format
+ *
+ * @return {string} The resulting const char *.
*/
-raylib.SHADER_ATTRIB_FLOAT = 0
+function rlGetPixelFormatName(format) {
+ return r.BindrlGetPixelFormatName(
+ format
+ )
+}
+raylib.rlGetPixelFormatName = rlGetPixelFormatName
/**
- * Shader attribute type: vec2 (2 float)
+ * Unload texture from GPU memory
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.SHADER_ATTRIB_VEC2 = 1
+function rlUnloadTexture(id) {
+ return r.BindrlUnloadTexture(
+ id
+ )
+}
+raylib.rlUnloadTexture = rlUnloadTexture
/**
- * Shader attribute type: vec3 (3 float)
+ * Generate mipmap data for selected texture
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} width
+ * @param {number} height
+ * @param {number} format
+ * @param {number} mipmaps
+ *
+ * @return {undefined}
*/
-raylib.SHADER_ATTRIB_VEC3 = 2
+function rlGenTextureMipmaps(id, width, height, format, mipmaps) {
+ return r.BindrlGenTextureMipmaps(
+ id,
+ width,
+ height,
+ format,
+ mipmaps
+ )
+}
+raylib.rlGenTextureMipmaps = rlGenTextureMipmaps
/**
- * Shader attribute type: vec4 (4 float)
+ * Read texture pixel data
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} width
+ * @param {number} height
+ * @param {number} format
+ *
+ * @return {number} The resulting void *.
*/
-raylib.SHADER_ATTRIB_VEC4 = 3
+function rlReadTexturePixels(id, width, height, format) {
+ return r.BindrlReadTexturePixels(
+ id,
+ width,
+ height,
+ format
+ )
+}
+raylib.rlReadTexturePixels = rlReadTexturePixels
/**
- * 8 bit per pixel (no alpha)
+ * Read screen pixel data (color buffer)
*
- * @type {number}
- * @constant
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {Buffer} The resulting unsigned char *.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1
+function rlReadScreenPixels(width, height) {
+ return r.BindrlReadScreenPixels(
+ width,
+ height
+ )
+}
+raylib.rlReadScreenPixels = rlReadScreenPixels
/**
- * 8*2 bpp (2 channels)
+ * Load an empty framebuffer
*
- * @type {number}
- * @constant
+ * @param {number} width
+ * @param {number} height
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2
+function rlLoadFramebuffer(width, height) {
+ return r.BindrlLoadFramebuffer(
+ width,
+ height
+ )
+}
+raylib.rlLoadFramebuffer = rlLoadFramebuffer
/**
- * 16 bpp
+ * Attach texture/renderbuffer to a framebuffer
*
- * @type {number}
- * @constant
+ * @param {number} fboId
+ * @param {number} texId
+ * @param {number} attachType
+ * @param {number} texType
+ * @param {number} mipLevel
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3
+function rlFramebufferAttach(fboId, texId, attachType, texType, mipLevel) {
+ return r.BindrlFramebufferAttach(
+ fboId,
+ texId,
+ attachType,
+ texType,
+ mipLevel
+ )
+}
+raylib.rlFramebufferAttach = rlFramebufferAttach
/**
- * 24 bpp
+ * Verify framebuffer is complete
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {boolean} The resulting bool.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4
+function rlFramebufferComplete(id) {
+ return r.BindrlFramebufferComplete(
+ id
+ )
+}
+raylib.rlFramebufferComplete = rlFramebufferComplete
/**
- * 16 bpp (1 bit alpha)
+ * Delete framebuffer from GPU
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5
+function rlUnloadFramebuffer(id) {
+ return r.BindrlUnloadFramebuffer(
+ id
+ )
+}
+raylib.rlUnloadFramebuffer = rlUnloadFramebuffer
/**
- * 16 bpp (4 bit alpha)
+ * Load shader from code strings
*
- * @type {number}
- * @constant
+ * @param {string} vsCode
+ * @param {string} fsCode
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6
+function rlLoadShaderCode(vsCode, fsCode) {
+ return r.BindrlLoadShaderCode(
+ vsCode,
+ fsCode
+ )
+}
+raylib.rlLoadShaderCode = rlLoadShaderCode
/**
- * 32 bpp
+ * Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)
*
- * @type {number}
- * @constant
- */
-raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7
-
-/**
- * 32 bpp (1 channel - float)
+ * @param {string} shaderCode
+ * @param {number} type
*
- * @type {number}
- * @constant
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R32 = 8
+function rlCompileShader(shaderCode, type) {
+ return r.BindrlCompileShader(
+ shaderCode,
+ type
+ )
+}
+raylib.rlCompileShader = rlCompileShader
/**
- * 32*3 bpp (3 channels - float)
+ * Load custom shader program
*
- * @type {number}
- * @constant
+ * @param {number} vShaderId
+ * @param {number} fShaderId
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
+function rlLoadShaderProgram(vShaderId, fShaderId) {
+ return r.BindrlLoadShaderProgram(
+ vShaderId,
+ fShaderId
+ )
+}
+raylib.rlLoadShaderProgram = rlLoadShaderProgram
/**
- * 32*4 bpp (4 channels - float)
+ * Unload shader program
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
+function rlUnloadShaderProgram(id) {
+ return r.BindrlUnloadShaderProgram(
+ id
+ )
+}
+raylib.rlUnloadShaderProgram = rlUnloadShaderProgram
/**
- * 4 bpp (no alpha)
+ * Get shader location uniform
*
- * @type {number}
- * @constant
+ * @param {number} shaderId
+ * @param {string} uniformName
+ *
+ * @return {number} The resulting int.
*/
-raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
+function rlGetLocationUniform(shaderId, uniformName) {
+ return r.BindrlGetLocationUniform(
+ shaderId,
+ uniformName
+ )
+}
+raylib.rlGetLocationUniform = rlGetLocationUniform
/**
- * 4 bpp (1 bit alpha)
+ * Get shader location attribute
*
- * @type {number}
- * @constant
+ * @param {number} shaderId
+ * @param {string} attribName
+ *
+ * @return {number} The resulting int.
*/
-raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
+function rlGetLocationAttrib(shaderId, attribName) {
+ return r.BindrlGetLocationAttrib(
+ shaderId,
+ attribName
+ )
+}
+raylib.rlGetLocationAttrib = rlGetLocationAttrib
/**
- * 8 bpp
+ * Set shader value uniform
*
- * @type {number}
- * @constant
+ * @param {number} locIndex
+ * @param {number} value
+ * @param {number} uniformType
+ * @param {number} count
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
+function rlSetUniform(locIndex, value, uniformType, count) {
+ return r.BindrlSetUniform(
+ locIndex,
+ value,
+ uniformType,
+ count
+ )
+}
+raylib.rlSetUniform = rlSetUniform
/**
- * 8 bpp
+ * Set shader value matrix
*
- * @type {number}
- * @constant
+ * @param {number} locIndex
+ * @param {Matrix} mat
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
+function rlSetUniformMatrix(locIndex, mat) {
+ return r.BindrlSetUniformMatrix(
+ locIndex,
+ mat.m0,
+ mat.m4,
+ mat.m8,
+ mat.m12,
+ mat.m1,
+ mat.m5,
+ mat.m9,
+ mat.m13,
+ mat.m2,
+ mat.m6,
+ mat.m10,
+ mat.m14,
+ mat.m3,
+ mat.m7,
+ mat.m11,
+ mat.m15
+ )
+}
+raylib.rlSetUniformMatrix = rlSetUniformMatrix
/**
- * 4 bpp
+ * Set shader value sampler
*
- * @type {number}
- * @constant
+ * @param {number} locIndex
+ * @param {number} textureId
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
+function rlSetUniformSampler(locIndex, textureId) {
+ return r.BindrlSetUniformSampler(
+ locIndex,
+ textureId
+ )
+}
+raylib.rlSetUniformSampler = rlSetUniformSampler
/**
- * 4 bpp
+ * Set shader currently active (id and locations)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} locs
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
+function rlSetShader(id, locs) {
+ return r.BindrlSetShader(
+ id,
+ locs
+ )
+}
+raylib.rlSetShader = rlSetShader
/**
- * 8 bpp
+ * Load compute shader program
*
- * @type {number}
- * @constant
+ * @param {number} shaderId
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
+function rlLoadComputeShaderProgram(shaderId) {
+ return r.BindrlLoadComputeShaderProgram(
+ shaderId
+ )
+}
+raylib.rlLoadComputeShaderProgram = rlLoadComputeShaderProgram
/**
- * 4 bpp
+ * Dispatch compute shader (equivalent to *draw* for graphics pipeline)
*
- * @type {number}
- * @constant
+ * @param {number} groupX
+ * @param {number} groupY
+ * @param {number} groupZ
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
+function rlComputeShaderDispatch(groupX, groupY, groupZ) {
+ return r.BindrlComputeShaderDispatch(
+ groupX,
+ groupY,
+ groupZ
+ )
+}
+raylib.rlComputeShaderDispatch = rlComputeShaderDispatch
/**
- * 4 bpp
+ * Load shader storage buffer object (SSBO)
*
- * @type {number}
- * @constant
+ * @param {number} size
+ * @param {number} data
+ * @param {number} usageHint
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
+function rlLoadShaderBuffer(size, data, usageHint) {
+ return r.BindrlLoadShaderBuffer(
+ size,
+ data,
+ usageHint
+ )
+}
+raylib.rlLoadShaderBuffer = rlLoadShaderBuffer
/**
- * 8 bpp
+ * Unload shader storage buffer object (SSBO)
*
- * @type {number}
- * @constant
+ * @param {number} ssboId
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
+function rlUnloadShaderBuffer(ssboId) {
+ return r.BindrlUnloadShaderBuffer(
+ ssboId
+ )
+}
+raylib.rlUnloadShaderBuffer = rlUnloadShaderBuffer
/**
- * 2 bpp
+ * Update SSBO buffer data
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} data
+ * @param {number} dataSize
+ * @param {number} offset
+ *
+ * @return {undefined}
*/
-raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21
+function rlUpdateShaderBuffer(id, data, dataSize, offset) {
+ return r.BindrlUpdateShaderBuffer(
+ id,
+ data,
+ dataSize,
+ offset
+ )
+}
+raylib.rlUpdateShaderBuffer = rlUpdateShaderBuffer
/**
- * No filter, just pixel approximation
+ * Bind SSBO buffer
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} index
+ *
+ * @return {undefined}
*/
-raylib.TEXTURE_FILTER_POINT = 0
+function rlBindShaderBuffer(id, index) {
+ return r.BindrlBindShaderBuffer(
+ id,
+ index
+ )
+}
+raylib.rlBindShaderBuffer = rlBindShaderBuffer
/**
- * Linear filtering
+ * Read SSBO buffer data (GPU->CPU)
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} dest
+ * @param {number} count
+ * @param {number} offset
+ *
+ * @return {undefined}
*/
-raylib.TEXTURE_FILTER_BILINEAR = 1
+function rlReadShaderBuffer(id, dest, count, offset) {
+ return r.BindrlReadShaderBuffer(
+ id,
+ dest,
+ count,
+ offset
+ )
+}
+raylib.rlReadShaderBuffer = rlReadShaderBuffer
/**
- * Trilinear filtering (linear with mipmaps)
+ * Copy SSBO data between buffers
*
- * @type {number}
- * @constant
+ * @param {number} destId
+ * @param {number} srcId
+ * @param {number} destOffset
+ * @param {number} srcOffset
+ * @param {number} count
+ *
+ * @return {undefined}
*/
-raylib.TEXTURE_FILTER_TRILINEAR = 2
+function rlCopyShaderBuffer(destId, srcId, destOffset, srcOffset, count) {
+ return r.BindrlCopyShaderBuffer(
+ destId,
+ srcId,
+ destOffset,
+ srcOffset,
+ count
+ )
+}
+raylib.rlCopyShaderBuffer = rlCopyShaderBuffer
/**
- * Anisotropic filtering 4x
+ * Get SSBO buffer size
*
- * @type {number}
- * @constant
+ * @param {number} id
+ *
+ * @return {number} The resulting unsigned int.
*/
-raylib.TEXTURE_FILTER_ANISOTROPIC_4X = 3
+function rlGetShaderBufferSize(id) {
+ return r.BindrlGetShaderBufferSize(
+ id
+ )
+}
+raylib.rlGetShaderBufferSize = rlGetShaderBufferSize
/**
- * Anisotropic filtering 8x
+ * Bind image texture
*
- * @type {number}
- * @constant
+ * @param {number} id
+ * @param {number} index
+ * @param {number} format
+ * @param {boolean} readonly
+ *
+ * @return {undefined}
*/
-raylib.TEXTURE_FILTER_ANISOTROPIC_8X = 4
+function rlBindImageTexture(id, index, format, readonly) {
+ return r.BindrlBindImageTexture(
+ id,
+ index,
+ format,
+ readonly
+ )
+}
+raylib.rlBindImageTexture = rlBindImageTexture
/**
- * Anisotropic filtering 16x
+ * Get internal modelview matrix
*
- * @type {number}
- * @constant
+ * @return {Matrix} The resulting Matrix.
*/
-raylib.TEXTURE_FILTER_ANISOTROPIC_16X = 5
+function rlGetMatrixModelview() {
+ return r.BindrlGetMatrixModelview()
+}
+raylib.rlGetMatrixModelview = rlGetMatrixModelview
/**
- * Repeats texture in tiled mode
+ * Get internal projection matrix
*
- * @type {number}
- * @constant
+ * @return {Matrix} The resulting Matrix.
*/
-raylib.TEXTURE_WRAP_REPEAT = 0
+function rlGetMatrixProjection() {
+ return r.BindrlGetMatrixProjection()
+}
+raylib.rlGetMatrixProjection = rlGetMatrixProjection
/**
- * Clamps texture to edge pixel in tiled mode
+ * Get internal accumulated transform matrix
*
- * @type {number}
- * @constant
+ * @return {Matrix} The resulting Matrix.
*/
-raylib.TEXTURE_WRAP_CLAMP = 1
+function rlGetMatrixTransform() {
+ return r.BindrlGetMatrixTransform()
+}
+raylib.rlGetMatrixTransform = rlGetMatrixTransform
/**
- * Mirrors and repeats the texture in tiled mode
+ * Get internal projection matrix for stereo render (selected eye)
*
- * @type {number}
- * @constant
+ * @param {number} eye
+ *
+ * @return {Matrix} The resulting Matrix.
*/
-raylib.TEXTURE_WRAP_MIRROR_REPEAT = 2
+function rlGetMatrixProjectionStereo(eye) {
+ return r.BindrlGetMatrixProjectionStereo(
+ eye
+ )
+}
+raylib.rlGetMatrixProjectionStereo = rlGetMatrixProjectionStereo
/**
- * Mirrors and clamps to border the texture in tiled mode
+ * Get internal view offset matrix for stereo render (selected eye)
*
- * @type {number}
- * @constant
+ * @param {number} eye
+ *
+ * @return {Matrix} The resulting Matrix.
*/
-raylib.TEXTURE_WRAP_MIRROR_CLAMP = 3
+function rlGetMatrixViewOffsetStereo(eye) {
+ return r.BindrlGetMatrixViewOffsetStereo(
+ eye
+ )
+}
+raylib.rlGetMatrixViewOffsetStereo = rlGetMatrixViewOffsetStereo
/**
- * Automatically detect layout type
+ * Set a custom projection matrix (replaces internal projection matrix)
*
- * @type {number}
- * @constant
+ * @param {Matrix} proj
+ *
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_AUTO_DETECT = 0
+function rlSetMatrixProjection(proj) {
+ return r.BindrlSetMatrixProjection(
+ proj.m0,
+ proj.m4,
+ proj.m8,
+ proj.m12,
+ proj.m1,
+ proj.m5,
+ proj.m9,
+ proj.m13,
+ proj.m2,
+ proj.m6,
+ proj.m10,
+ proj.m14,
+ proj.m3,
+ proj.m7,
+ proj.m11,
+ proj.m15
+ )
+}
+raylib.rlSetMatrixProjection = rlSetMatrixProjection
/**
- * Layout is defined by a vertical line with faces
+ * Set a custom modelview matrix (replaces internal modelview matrix)
*
- * @type {number}
- * @constant
+ * @param {Matrix} view
+ *
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_LINE_VERTICAL = 1
+function rlSetMatrixModelview(view) {
+ return r.BindrlSetMatrixModelview(
+ view.m0,
+ view.m4,
+ view.m8,
+ view.m12,
+ view.m1,
+ view.m5,
+ view.m9,
+ view.m13,
+ view.m2,
+ view.m6,
+ view.m10,
+ view.m14,
+ view.m3,
+ view.m7,
+ view.m11,
+ view.m15
+ )
+}
+raylib.rlSetMatrixModelview = rlSetMatrixModelview
/**
- * Layout is defined by a horizontal line with faces
+ * Set eyes projection matrices for stereo rendering
*
- * @type {number}
- * @constant
+ * @param {Matrix} right
+ * @param {Matrix} left
+ *
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2
+function rlSetMatrixProjectionStereo(right, left) {
+ return r.BindrlSetMatrixProjectionStereo(
+ right.m0,
+ right.m4,
+ right.m8,
+ right.m12,
+ right.m1,
+ right.m5,
+ right.m9,
+ right.m13,
+ right.m2,
+ right.m6,
+ right.m10,
+ right.m14,
+ right.m3,
+ right.m7,
+ right.m11,
+ right.m15,
+ left.m0,
+ left.m4,
+ left.m8,
+ left.m12,
+ left.m1,
+ left.m5,
+ left.m9,
+ left.m13,
+ left.m2,
+ left.m6,
+ left.m10,
+ left.m14,
+ left.m3,
+ left.m7,
+ left.m11,
+ left.m15
+ )
+}
+raylib.rlSetMatrixProjectionStereo = rlSetMatrixProjectionStereo
/**
- * Layout is defined by a 3x4 cross with cubemap faces
+ * Set eyes view offsets matrices for stereo rendering
*
- * @type {number}
- * @constant
+ * @param {Matrix} right
+ * @param {Matrix} left
+ *
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3
+function rlSetMatrixViewOffsetStereo(right, left) {
+ return r.BindrlSetMatrixViewOffsetStereo(
+ right.m0,
+ right.m4,
+ right.m8,
+ right.m12,
+ right.m1,
+ right.m5,
+ right.m9,
+ right.m13,
+ right.m2,
+ right.m6,
+ right.m10,
+ right.m14,
+ right.m3,
+ right.m7,
+ right.m11,
+ right.m15,
+ left.m0,
+ left.m4,
+ left.m8,
+ left.m12,
+ left.m1,
+ left.m5,
+ left.m9,
+ left.m13,
+ left.m2,
+ left.m6,
+ left.m10,
+ left.m14,
+ left.m3,
+ left.m7,
+ left.m11,
+ left.m15
+ )
+}
+raylib.rlSetMatrixViewOffsetStereo = rlSetMatrixViewOffsetStereo
/**
- * Layout is defined by a 4x3 cross with cubemap faces
+ * Load and draw a cube
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4
+function rlLoadDrawCube() {
+ return r.BindrlLoadDrawCube()
+}
+raylib.rlLoadDrawCube = rlLoadDrawCube
/**
- * Layout is defined by a panorama image (equirrectangular map)
+ * Load and draw a quad
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.CUBEMAP_LAYOUT_PANORAMA = 5
+function rlLoadDrawQuad() {
+ return r.BindrlLoadDrawQuad()
+}
+raylib.rlLoadDrawQuad = rlLoadDrawQuad
/**
- * Default font generation, anti-aliased
+ * Update camera position for selected mode
*
- * @type {number}
- * @constant
- */
-raylib.FONT_DEFAULT = 0
-
-/**
- * Bitmap font generation, no anti-aliasing
+ * @param {Camera3D} camera
+ * @param {number} mode
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.FONT_BITMAP = 1
+function UpdateCamera(camera, mode) {
+ const obj = r.BindUpdateCamera(
+ camera.position.x,
+ camera.position.y,
+ camera.position.z,
+ camera.target.x,
+ camera.target.y,
+ camera.target.z,
+ camera.up.x,
+ camera.up.y,
+ camera.up.z,
+ camera.fovy,
+ camera.projection,
+ mode
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ camera[key] = obj[key]
+ }
+ }
+}
+raylib.UpdateCamera = UpdateCamera
/**
- * SDF font generation, requires external shader
+ * Convert image data to desired format
*
- * @type {number}
- * @constant
- */
-raylib.FONT_SDF = 2
-
-/**
- * Blend textures considering alpha (default)
+ * @param {Image} image
+ * @param {number} newFormat
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.BLEND_ALPHA = 0
+function ImageFormat(image, newFormat) {
+ const obj = r.BindImageFormat(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ newFormat
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageFormat = ImageFormat
/**
- * Blend textures adding colors
+ * Convert image to POT (power-of-two)
*
- * @type {number}
- * @constant
- */
-raylib.BLEND_ADDITIVE = 1
-
-/**
- * Blend textures multiplying colors
+ * @param {Image} image
+ * @param {Color} fill
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.BLEND_MULTIPLIED = 2
+function ImageToPOT(image, fill) {
+ const obj = r.BindImageToPOT(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ fill.r,
+ fill.g,
+ fill.b,
+ fill.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageToPOT = ImageToPOT
/**
- * Blend textures adding colors (alternative)
+ * Crop an image to a defined rectangle
*
- * @type {number}
- * @constant
- */
-raylib.BLEND_ADD_COLORS = 3
-
-/**
- * Blend textures subtracting colors (alternative)
+ * @param {Image} image
+ * @param {Rectangle} crop
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.BLEND_SUBTRACT_COLORS = 4
+function ImageCrop(image, crop) {
+ const obj = r.BindImageCrop(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ crop.x,
+ crop.y,
+ crop.width,
+ crop.height
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageCrop = ImageCrop
/**
- * Blend premultiplied textures considering alpha
+ * Crop image depending on alpha value
*
- * @type {number}
- * @constant
- */
-raylib.BLEND_ALPHA_PREMULTIPLY = 5
-
-/**
- * Blend textures using custom src/dst factors (use rlSetBlendFactors())
+ * @param {Image} image
+ * @param {number} threshold
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.BLEND_CUSTOM = 6
+function ImageAlphaCrop(image, threshold) {
+ const obj = r.BindImageAlphaCrop(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ threshold
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageAlphaCrop = ImageAlphaCrop
/**
- * Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())
+ * Clear alpha channel to desired color
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {Color} color
+ * @param {number} threshold
+ *
+ * @return {undefined}
*/
-raylib.BLEND_CUSTOM_SEPARATE = 7
+function ImageAlphaClear(image, color, threshold) {
+ const obj = r.BindImageAlphaClear(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ threshold
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageAlphaClear = ImageAlphaClear
/**
- * No gesture
+ * Apply alpha mask to image
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {Image} alphaMask
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_NONE = 0
+function ImageAlphaMask(image, alphaMask) {
+ const obj = r.BindImageAlphaMask(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ alphaMask.data,
+ alphaMask.width,
+ alphaMask.height,
+ alphaMask.mipmaps,
+ alphaMask.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageAlphaMask = ImageAlphaMask
/**
- * Tap gesture
+ * Premultiply alpha channel
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_TAP = 1
+function ImageAlphaPremultiply(image) {
+ const obj = r.BindImageAlphaPremultiply(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageAlphaPremultiply = ImageAlphaPremultiply
/**
- * Double tap gesture
+ * Resize image (Bicubic scaling algorithm)
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} newWidth
+ * @param {number} newHeight
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_DOUBLETAP = 2
+function ImageResize(image, newWidth, newHeight) {
+ const obj = r.BindImageResize(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ newWidth,
+ newHeight
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageResize = ImageResize
/**
- * Hold gesture
+ * Resize image (Nearest-Neighbor scaling algorithm)
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} newWidth
+ * @param {number} newHeight
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_HOLD = 4
+function ImageResizeNN(image, newWidth, newHeight) {
+ const obj = r.BindImageResizeNN(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ newWidth,
+ newHeight
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageResizeNN = ImageResizeNN
/**
- * Drag gesture
+ * Resize canvas and fill with color
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} newWidth
+ * @param {number} newHeight
+ * @param {number} offsetX
+ * @param {number} offsetY
+ * @param {Color} fill
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_DRAG = 8
+function ImageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, fill) {
+ const obj = r.BindImageResizeCanvas(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ newWidth,
+ newHeight,
+ offsetX,
+ offsetY,
+ fill.r,
+ fill.g,
+ fill.b,
+ fill.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageResizeCanvas = ImageResizeCanvas
/**
- * Swipe right gesture
+ * Compute all mipmap levels for a provided image
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_SWIPE_RIGHT = 16
+function ImageMipmaps(image) {
+ const obj = r.BindImageMipmaps(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageMipmaps = ImageMipmaps
/**
- * Swipe left gesture
+ * Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} rBpp
+ * @param {number} gBpp
+ * @param {number} bBpp
+ * @param {number} aBpp
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_SWIPE_LEFT = 32
+function ImageDither(image, rBpp, gBpp, bBpp, aBpp) {
+ const obj = r.BindImageDither(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ rBpp,
+ gBpp,
+ bBpp,
+ aBpp
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDither = ImageDither
/**
- * Swipe up gesture
+ * Flip image vertically
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_SWIPE_UP = 64
+function ImageFlipVertical(image) {
+ const obj = r.BindImageFlipVertical(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageFlipVertical = ImageFlipVertical
/**
- * Swipe down gesture
+ * Flip image horizontally
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_SWIPE_DOWN = 128
+function ImageFlipHorizontal(image) {
+ const obj = r.BindImageFlipHorizontal(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageFlipHorizontal = ImageFlipHorizontal
/**
- * Pinch in gesture
+ * Rotate image clockwise 90deg
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_PINCH_IN = 256
+function ImageRotateCW(image) {
+ const obj = r.BindImageRotateCW(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageRotateCW = ImageRotateCW
/**
- * Pinch out gesture
+ * Rotate image counter-clockwise 90deg
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.GESTURE_PINCH_OUT = 512
+function ImageRotateCCW(image) {
+ const obj = r.BindImageRotateCCW(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageRotateCCW = ImageRotateCCW
/**
- * Custom camera
+ * Modify image color: tint
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_CUSTOM = 0
+function ImageColorTint(image, color) {
+ const obj = r.BindImageColorTint(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorTint = ImageColorTint
/**
- * Free camera
+ * Modify image color: invert
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_FREE = 1
+function ImageColorInvert(image) {
+ const obj = r.BindImageColorInvert(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorInvert = ImageColorInvert
/**
- * Orbital camera
+ * Modify image color: grayscale
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_ORBITAL = 2
+function ImageColorGrayscale(image) {
+ const obj = r.BindImageColorGrayscale(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorGrayscale = ImageColorGrayscale
/**
- * First person camera
+ * Modify image color: contrast (-100 to 100)
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} contrast
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_FIRST_PERSON = 3
+function ImageColorContrast(image, contrast) {
+ const obj = r.BindImageColorContrast(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ contrast
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorContrast = ImageColorContrast
/**
- * Third person camera
+ * Modify image color: brightness (-255 to 255)
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {number} brightness
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_THIRD_PERSON = 4
+function ImageColorBrightness(image, brightness) {
+ const obj = r.BindImageColorBrightness(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ brightness
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorBrightness = ImageColorBrightness
/**
- * Perspective projection
+ * Modify image color: replace color
*
- * @type {number}
- * @constant
+ * @param {Image} image
+ * @param {Color} color
+ * @param {Color} replace
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_PERSPECTIVE = 0
+function ImageColorReplace(image, color, replace) {
+ const obj = r.BindImageColorReplace(
+ image.data,
+ image.width,
+ image.height,
+ image.mipmaps,
+ image.format,
+ color.r,
+ color.g,
+ color.b,
+ color.a,
+ replace.r,
+ replace.g,
+ replace.b,
+ replace.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ image[key] = obj[key]
+ }
+ }
+}
+raylib.ImageColorReplace = ImageColorReplace
/**
- * Orthographic projection
+ * Clear image background with given color
*
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.CAMERA_ORTHOGRAPHIC = 1
+function ImageClearBackground(dst, color) {
+ const obj = r.BindImageClearBackground(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageClearBackground = ImageClearBackground
/**
- * Npatch layout: 3x3 tiles
+ * Draw pixel within an image
*
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {number} posX
+ * @param {number} posY
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.NPATCH_NINE_PATCH = 0
+function ImageDrawPixel(dst, posX, posY, color) {
+ const obj = r.BindImageDrawPixel(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ posX,
+ posY,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawPixel = ImageDrawPixel
/**
- * Npatch layout: 1x3 tiles
+ * Draw pixel within an image (Vector version)
*
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {Vector2} position
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.NPATCH_THREE_PATCH_VERTICAL = 1
+function ImageDrawPixelV(dst, position, color) {
+ const obj = r.BindImageDrawPixelV(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ position.x,
+ position.y,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawPixelV = ImageDrawPixelV
/**
- * Npatch layout: 3x1 tiles
+ * Draw line within an image
*
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {number} startPosX
+ * @param {number} startPosY
+ * @param {number} endPosX
+ * @param {number} endPosY
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2
+function ImageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, color) {
+ const obj = r.BindImageDrawLine(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ startPosX,
+ startPosY,
+ endPosX,
+ endPosY,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawLine = ImageDrawLine
/**
+ * Draw line within an image (Vector version)
*
- *
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {Vector2} start
+ * @param {Vector2} end
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.STATE_NORMAL = 0
+function ImageDrawLineV(dst, start, end, color) {
+ const obj = r.BindImageDrawLineV(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ start.x,
+ start.y,
+ end.x,
+ end.y,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawLineV = ImageDrawLineV
/**
+ * Draw a filled circle within an image
*
+ * @param {Image} dst
+ * @param {number} centerX
+ * @param {number} centerY
+ * @param {number} radius
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.STATE_FOCUSED = 1
+function ImageDrawCircle(dst, centerX, centerY, radius, color) {
+ const obj = r.BindImageDrawCircle(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ centerX,
+ centerY,
+ radius,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawCircle = ImageDrawCircle
/**
+ * Draw a filled circle within an image (Vector version)
*
+ * @param {Image} dst
+ * @param {Vector2} center
+ * @param {number} radius
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.STATE_PRESSED = 2
+function ImageDrawCircleV(dst, center, radius, color) {
+ const obj = r.BindImageDrawCircleV(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ center.x,
+ center.y,
+ radius,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawCircleV = ImageDrawCircleV
/**
+ * Draw rectangle within an image
*
+ * @param {Image} dst
+ * @param {number} posX
+ * @param {number} posY
+ * @param {number} width
+ * @param {number} height
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.STATE_DISABLED = 3
+function ImageDrawRectangle(dst, posX, posY, width, height, color) {
+ const obj = r.BindImageDrawRectangle(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ posX,
+ posY,
+ width,
+ height,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawRectangle = ImageDrawRectangle
/**
+ * Draw rectangle within an image (Vector version)
*
+ * @param {Image} dst
+ * @param {Vector2} position
+ * @param {Vector2} size
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.TEXT_ALIGN_LEFT = 0
+function ImageDrawRectangleV(dst, position, size, color) {
+ const obj = r.BindImageDrawRectangleV(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ position.x,
+ position.y,
+ size.x,
+ size.y,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawRectangleV = ImageDrawRectangleV
/**
+ * Draw rectangle within an image
*
+ * @param {Image} dst
+ * @param {Rectangle} rec
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.TEXT_ALIGN_CENTER = 1
+function ImageDrawRectangleRec(dst, rec, color) {
+ const obj = r.BindImageDrawRectangleRec(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawRectangleRec = ImageDrawRectangleRec
/**
+ * Draw rectangle lines within an image
*
+ * @param {Image} dst
+ * @param {Rectangle} rec
+ * @param {number} thick
+ * @param {Color} color
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.TEXT_ALIGN_RIGHT = 2
+function ImageDrawRectangleLines(dst, rec, thick, color) {
+ const obj = r.BindImageDrawRectangleLines(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ rec.x,
+ rec.y,
+ rec.width,
+ rec.height,
+ thick,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawRectangleLines = ImageDrawRectangleLines
/**
+ * Draw a source image within a destination image (tint applied to source)
*
+ * @param {Image} dst
+ * @param {Image} src
+ * @param {Rectangle} srcRec
+ * @param {Rectangle} dstRec
+ * @param {Color} tint
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.DEFAULT = 0
+function ImageDraw(dst, src, srcRec, dstRec, tint) {
+ const obj = r.BindImageDraw(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ src.data,
+ src.width,
+ src.height,
+ src.mipmaps,
+ src.format,
+ srcRec.x,
+ srcRec.y,
+ srcRec.width,
+ srcRec.height,
+ dstRec.x,
+ dstRec.y,
+ dstRec.width,
+ dstRec.height,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDraw = ImageDraw
/**
- * Used also for: LABELBUTTON
+ * Draw text (using default font) within an image (destination)
*
- * @type {number}
- * @constant
+ * @param {Image} dst
+ * @param {string} text
+ * @param {number} posX
+ * @param {number} posY
+ * @param {number} fontSize
+ * @param {Color} color
+ *
+ * @return {undefined}
*/
-raylib.LABEL = 1
+function ImageDrawText(dst, text, posX, posY, fontSize, color) {
+ const obj = r.BindImageDrawText(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ text,
+ posX,
+ posY,
+ fontSize,
+ color.r,
+ color.g,
+ color.b,
+ color.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawText = ImageDrawText
/**
+ * Draw text (custom sprite font) within an image (destination)
*
+ * @param {Image} dst
+ * @param {Font} font
+ * @param {string} text
+ * @param {Vector2} position
+ * @param {number} fontSize
+ * @param {number} spacing
+ * @param {Color} tint
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.BUTTON = 2
+function ImageDrawTextEx(dst, font, text, position, fontSize, spacing, tint) {
+ const obj = r.BindImageDrawTextEx(
+ dst.data,
+ dst.width,
+ dst.height,
+ dst.mipmaps,
+ dst.format,
+ font.baseSize,
+ font.glyphCount,
+ font.glyphPadding,
+ font.texture.id,
+ font.texture.width,
+ font.texture.height,
+ font.texture.mipmaps,
+ font.texture.format,
+ font.recs,
+ font.glyphs,
+ text,
+ position.x,
+ position.y,
+ fontSize,
+ spacing,
+ tint.r,
+ tint.g,
+ tint.b,
+ tint.a
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ dst[key] = obj[key]
+ }
+ }
+}
+raylib.ImageDrawTextEx = ImageDrawTextEx
/**
- * Used also for: TOGGLEGROUP
+ * Generate GPU mipmaps for a texture
*
- * @type {number}
- * @constant
- */
-raylib.TOGGLE = 3
-
-/**
- * Used also for: SLIDERBAR
+ * @param {Texture} texture
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.SLIDER = 4
+function GenTextureMipmaps(texture) {
+ const obj = r.BindGenTextureMipmaps(
+ texture.id,
+ texture.width,
+ texture.height,
+ texture.mipmaps,
+ texture.format
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ texture[key] = obj[key]
+ }
+ }
+}
+raylib.GenTextureMipmaps = GenTextureMipmaps
/**
+ * Upload mesh vertex data in GPU and provide VAO/VBO ids
*
+ * @param {Mesh} mesh
+ * @param {boolean} dynamic
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.PROGRESSBAR = 5
+function UploadMesh(mesh, dynamic) {
+ const obj = r.BindUploadMesh(
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId,
+ dynamic
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ mesh[key] = obj[key]
+ }
+ }
+}
+raylib.UploadMesh = UploadMesh
/**
+ * Compute mesh tangents
*
+ * @param {Mesh} mesh
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.CHECKBOX = 6
+function GenMeshTangents(mesh) {
+ const obj = r.BindGenMeshTangents(
+ mesh.vertexCount,
+ mesh.triangleCount,
+ mesh.vertices,
+ mesh.texcoords,
+ mesh.texcoords2,
+ mesh.normals,
+ mesh.tangents,
+ mesh.colors,
+ mesh.indices,
+ mesh.animVertices,
+ mesh.animNormals,
+ mesh.boneIds,
+ mesh.boneWeights,
+ mesh.vaoId,
+ mesh.vboId
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ mesh[key] = obj[key]
+ }
+ }
+}
+raylib.GenMeshTangents = GenMeshTangents
/**
+ * Set material for a mesh
*
+ * @param {Model} model
+ * @param {number} meshId
+ * @param {number} materialId
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.COMBOBOX = 7
+function SetModelMeshMaterial(model, meshId, materialId) {
+ const obj = r.BindSetModelMeshMaterial(
+ model.transform.m0,
+ model.transform.m4,
+ model.transform.m8,
+ model.transform.m12,
+ model.transform.m1,
+ model.transform.m5,
+ model.transform.m9,
+ model.transform.m13,
+ model.transform.m2,
+ model.transform.m6,
+ model.transform.m10,
+ model.transform.m14,
+ model.transform.m3,
+ model.transform.m7,
+ model.transform.m11,
+ model.transform.m15,
+ model.meshCount,
+ model.materialCount,
+ model.meshes,
+ model.materials,
+ model.meshMaterial,
+ model.boneCount,
+ model.bones,
+ model.bindPose,
+ meshId,
+ materialId
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ model[key] = obj[key]
+ }
+ }
+}
+raylib.SetModelMeshMaterial = SetModelMeshMaterial
/**
+ * Crop a wave to defined samples range
*
+ * @param {Wave} wave
+ * @param {number} initSample
+ * @param {number} finalSample
*
- * @type {number}
- * @constant
+ * @return {undefined}
*/
-raylib.DROPDOWNBOX = 8
+function WaveCrop(wave, initSample, finalSample) {
+ const obj = r.BindWaveCrop(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data,
+ initSample,
+ finalSample
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ wave[key] = obj[key]
+ }
+ }
+}
+raylib.WaveCrop = WaveCrop
/**
- * Used also for: TEXTBOXMULTI
+ * Convert wave data to desired format
*
- * @type {number}
- * @constant
+ * @param {Wave} wave
+ * @param {number} sampleRate
+ * @param {number} sampleSize
+ * @param {number} channels
+ *
+ * @return {undefined}
*/
-raylib.TEXTBOX = 9
+function WaveFormat(wave, sampleRate, sampleSize, channels) {
+ const obj = r.BindWaveFormat(
+ wave.frameCount,
+ wave.sampleRate,
+ wave.sampleSize,
+ wave.channels,
+ wave.data,
+ sampleRate,
+ sampleSize,
+ channels
+ )
+ if (typeof obj !== 'undefined') {
+ for (const key in obj) {
+ wave[key] = obj[key]
+ }
+ }
+}
+raylib.WaveFormat = WaveFormat
/**
+ * Color, 4 components, R8G8B8A8 (32bit)
*
+ * @param {number} r - Color red value
+ * @param {number} g - Color green value
+ * @param {number} b - Color blue value
+ * @param {number} a - Color alpha value
*
- * @type {number}
- * @constant
+ * @return {Color} The new Color.
*/
-raylib.VALUEBOX = 10
+function Color(r,g,b,a) {
+ return {r,g,b,a}
+}
+raylib.Color = Color
/**
- * Uses: BUTTON, VALUEBOX
+ * Vector2, 2 components
*
- * @type {number}
- * @constant
+ * @param {number} x - Vector x component
+ * @param {number} y - Vector y component
+ *
+ * @return {Vector2} The new Vector2.
*/
-raylib.SPINNER = 11
+function Vector2(x,y) {
+ return {x,y}
+}
+raylib.Vector2 = Vector2
/**
+ * Vector3, 3 components
*
+ * @param {number} x - Vector x component
+ * @param {number} y - Vector y component
+ * @param {number} z - Vector z component
*
- * @type {number}
- * @constant
+ * @return {Vector3} The new Vector3.
*/
-raylib.LISTVIEW = 12
+function Vector3(x,y,z) {
+ return {x,y,z}
+}
+raylib.Vector3 = Vector3
/**
+ * Vector4, 4 components
*
+ * @param {number} x - Vector x component
+ * @param {number} y - Vector y component
+ * @param {number} z - Vector z component
+ * @param {number} w - Vector w component
*
- * @type {number}
- * @constant
+ * @return {Vector4} The new Vector4.
*/
-raylib.COLORPICKER = 13
+function Vector4(x,y,z,w) {
+ return {x,y,z,w}
+}
+raylib.Vector4 = Vector4
/**
+ * Rectangle, 4 components
*
+ * @param {number} x - Rectangle top-left corner position x
+ * @param {number} y - Rectangle top-left corner position y
+ * @param {number} width - Rectangle width
+ * @param {number} height - Rectangle height
*
- * @type {number}
- * @constant
+ * @return {Rectangle} The new Rectangle.
*/
-raylib.SCROLLBAR = 14
+function Rectangle(x,y,width,height) {
+ return {x,y,width,height}
+}
+raylib.Rectangle = Rectangle
/**
+ * Camera2D, defines position/orientation in 2d space
*
+ * @param {Vector2} offset - Camera offset (displacement from target)
+ * @param {Vector2} target - Camera target (rotation and zoom origin)
+ * @param {number} rotation - Camera rotation in degrees
+ * @param {number} zoom - Camera zoom (scaling), should be 1.0f by default
*
- * @type {number}
- * @constant
+ * @return {Camera2D} The new Camera2D.
*/
-raylib.STATUSBAR = 15
+function Camera2D(offset,target,rotation,zoom) {
+ return {offset,target,rotation,zoom}
+}
+raylib.Camera2D = Camera2D
/**
+ * Camera, defines position/orientation in 3d space
*
+ * @param {Vector3} position - Camera position
+ * @param {Vector3} target - Camera target it looks-at
+ * @param {Vector3} up - Camera up vector (rotation over its axis)
+ * @param {number} fovy - Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic
+ * @param {number} projection - Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
*
- * @type {number}
- * @constant
+ * @return {Camera3D} The new Camera3D.
*/
-raylib.BORDER_COLOR_NORMAL = 0
+function Camera3D(position,target,up,fovy,projection) {
+ return {position,target,up,fovy,projection}
+}
+raylib.Camera3D = Camera3D
+raylib.Camera = raylib.Camera3D
+
+// WRAPPED TYPED SHADER FUNCTIONS
/**
- *
- *
- * @type {number}
- * @constant
+ * Set shader uniform value float
+ *
+ * @param {Shader} shader
+ * @param {number} locIndex
+ * @param {number} value
+ *
+ * @returns {undefined}
*/
-raylib.BASE_COLOR_NORMAL = 1
+function SetShaderFloat(shader, locIndex, value) {
+ return r.BindSetShaderFloat(
+ shader.id,
+ shader.locs,
+ locIndex,
+ value
+ )
+}
+raylib.SetShaderFloat = SetShaderFloat
/**
- *
- *
- * @type {number}
- * @constant
+ * Set shader uniform value float
+ *
+ * @param {Shader} shader
+ * @param {number} locIndex
+ * @param {number} value
+ *
+ * @returns {undefined}
*/
-raylib.TEXT_COLOR_NORMAL = 2
+function SetShaderInt(shader, locIndex, value) {
+ return r.BindSetShaderInt(
+ shader.id,
+ shader.locs,
+ locIndex,
+ value
+ )
+}
+raylib.SetShaderInt = SetShaderInt
/**
- *
- *
- * @type {number}
- * @constant
+ * Set shader uniform value vector2
+ *
+ * @param {Shader} shader
+ * @param {number} locIndex
+ * @param {Vector2} value
+ *
+ * @returns {undefined}
*/
-raylib.BORDER_COLOR_FOCUSED = 3
+function SetShaderVec2(shader, locIndex, value) {
+ return r.BindSetShaderVec2(
+ shader.id,
+ shader.locs,
+ locIndex,
+ value.x,
+ value.y
+ )
+}
+raylib.SetShaderVec2 = SetShaderVec2
/**
- *
- *
- * @type {number}
- * @constant
+ * Set shader uniform value vector3
+ *
+ * @param {Shader} shader
+ * @param {number} locIndex
+ * @param {Vector3} value
+ *
+ * @returns {undefined}
*/
-raylib.BASE_COLOR_FOCUSED = 4
+function SetShaderVec3(shader, locIndex, value) {
+ return r.BindSetShaderVec3(
+ shader.id,
+ shader.locs,
+ locIndex,
+ value.x,
+ value.y,
+ value.z
+ )
+}
+raylib.SetShaderVec3 = SetShaderVec3
/**
- *
- *
- * @type {number}
- * @constant
+ * Set shader uniform value vector4
+ *
+ * @param {Shader} shader
+ * @param {number} locIndex
+ * @param {Vector4} value
+ *
+ * @returns {undefined}
*/
-raylib.TEXT_COLOR_FOCUSED = 5
+function SetShaderVec4(shader, locIndex, value) {
+ return r.BindSetShaderVec4(
+ shader.id,
+ shader.locs,
+ locIndex,
+ value.x,
+ value.y,
+ value.z,
+ value.w
+ )
+}
+raylib.SetShaderVec4 = SetShaderVec4
/**
- *
+ * Set to try enabling V-Sync on GPU
*
* @type {number}
* @constant
*/
-raylib.BORDER_COLOR_PRESSED = 6
+raylib.FLAG_VSYNC_HINT = 64
/**
- *
+ * Set to run program in fullscreen
*
* @type {number}
* @constant
*/
-raylib.BASE_COLOR_PRESSED = 7
+raylib.FLAG_FULLSCREEN_MODE = 2
/**
- *
+ * Set to allow resizable window
*
* @type {number}
* @constant
*/
-raylib.TEXT_COLOR_PRESSED = 8
+raylib.FLAG_WINDOW_RESIZABLE = 4
/**
- *
+ * Set to disable window decoration (frame and buttons)
*
* @type {number}
* @constant
*/
-raylib.BORDER_COLOR_DISABLED = 9
+raylib.FLAG_WINDOW_UNDECORATED = 8
/**
- *
+ * Set to hide window
*
* @type {number}
* @constant
*/
-raylib.BASE_COLOR_DISABLED = 10
+raylib.FLAG_WINDOW_HIDDEN = 128
/**
- *
+ * Set to minimize window (iconify)
*
* @type {number}
* @constant
*/
-raylib.TEXT_COLOR_DISABLED = 11
+raylib.FLAG_WINDOW_MINIMIZED = 512
/**
- *
+ * Set to maximize window (expanded to monitor)
*
* @type {number}
* @constant
*/
-raylib.BORDER_WIDTH = 12
+raylib.FLAG_WINDOW_MAXIMIZED = 1024
/**
- *
+ * Set to window non focused
*
* @type {number}
* @constant
*/
-raylib.TEXT_PADDING = 13
+raylib.FLAG_WINDOW_UNFOCUSED = 2048
/**
- *
+ * Set to window always on top
*
* @type {number}
* @constant
*/
-raylib.TEXT_ALIGNMENT = 14
+raylib.FLAG_WINDOW_TOPMOST = 4096
/**
- *
+ * Set to allow windows running while minimized
*
* @type {number}
* @constant
*/
-raylib.RESERVED = 15
+raylib.FLAG_WINDOW_ALWAYS_RUN = 256
/**
- * Text size (glyphs max height)
+ * Set to allow transparent framebuffer
*
* @type {number}
* @constant
*/
-raylib.TEXT_SIZE = 16
+raylib.FLAG_WINDOW_TRANSPARENT = 16
/**
- * Text spacing between glyphs
+ * Set to support HighDPI
*
* @type {number}
* @constant
*/
-raylib.TEXT_SPACING = 17
+raylib.FLAG_WINDOW_HIGHDPI = 8192
/**
- * Line control color
+ * Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED
*
* @type {number}
* @constant
*/
-raylib.LINE_COLOR = 18
+raylib.FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384
/**
- * Background color
+ * Set to run program in borderless windowed mode
*
* @type {number}
* @constant
*/
-raylib.BACKGROUND_COLOR = 19
+raylib.FLAG_BORDERLESS_WINDOWED_MODE = 32768
/**
- * ToggleGroup separation between toggles
+ * Set to try enabling MSAA 4X
*
* @type {number}
* @constant
*/
-raylib.GROUP_PADDING = 16
+raylib.FLAG_MSAA_4X_HINT = 32
/**
- * Slider size of internal bar
+ * Set to try enabling interlaced video format (for V3D)
*
* @type {number}
* @constant
*/
-raylib.SLIDER_WIDTH = 16
+raylib.FLAG_INTERLACED_HINT = 65536
/**
- * Slider/SliderBar internal bar padding
+ * Display all logs
*
* @type {number}
* @constant
*/
-raylib.SLIDER_PADDING = 17
+raylib.LOG_ALL = 0
/**
- * ProgressBar internal padding
+ * Trace logging, intended for internal use only
*
* @type {number}
* @constant
*/
-raylib.PROGRESS_PADDING = 16
+raylib.LOG_TRACE = 1
/**
- *
+ * Debug logging, used for internal debugging, it should be disabled on release builds
*
* @type {number}
* @constant
*/
-raylib.ARROWS_SIZE = 16
+raylib.LOG_DEBUG = 2
/**
- *
+ * Info logging, used for program execution info
*
* @type {number}
* @constant
*/
-raylib.ARROWS_VISIBLE = 17
+raylib.LOG_INFO = 3
/**
- * (SLIDERBAR, SLIDER_PADDING)
+ * Warning logging, used on recoverable failures
*
* @type {number}
* @constant
*/
-raylib.SCROLL_SLIDER_PADDING = 18
+raylib.LOG_WARNING = 4
/**
- *
+ * Error logging, used on unrecoverable failures
*
* @type {number}
* @constant
*/
-raylib.SCROLL_SLIDER_SIZE = 19
+raylib.LOG_ERROR = 5
/**
- *
+ * Fatal logging, used to abort program: exit(EXIT_FAILURE)
*
* @type {number}
* @constant
*/
-raylib.SCROLL_PADDING = 20
+raylib.LOG_FATAL = 6
/**
- *
+ * Disable logging
*
* @type {number}
* @constant
*/
-raylib.SCROLL_SPEED = 21
+raylib.LOG_NONE = 7
/**
- * CheckBox internal check padding
+ * Key: NULL, used for no key pressed
*
* @type {number}
* @constant
*/
-raylib.CHECK_PADDING = 16
+raylib.KEY_NULL = 0
/**
- * ComboBox right button width
+ * Key: '
*
* @type {number}
* @constant
*/
-raylib.COMBO_BUTTON_WIDTH = 16
+raylib.KEY_APOSTROPHE = 39
/**
- * ComboBox button separation
+ * Key: ,
*
* @type {number}
* @constant
*/
-raylib.COMBO_BUTTON_SPACING = 17
+raylib.KEY_COMMA = 44
/**
- * DropdownBox arrow separation from border and items
+ * Key: -
*
* @type {number}
* @constant
*/
-raylib.ARROW_PADDING = 16
+raylib.KEY_MINUS = 45
/**
- * DropdownBox items separation
+ * Key: .
*
* @type {number}
* @constant
*/
-raylib.DROPDOWN_ITEMS_SPACING = 17
+raylib.KEY_PERIOD = 46
/**
- * TextBox/TextBoxMulti/ValueBox/Spinner inner text padding
+ * Key: /
*
* @type {number}
* @constant
*/
-raylib.TEXT_INNER_PADDING = 16
+raylib.KEY_SLASH = 47
/**
- * TextBoxMulti lines separation
+ * Key: 0
*
* @type {number}
* @constant
*/
-raylib.TEXT_LINES_SPACING = 17
+raylib.KEY_ZERO = 48
/**
- * Spinner left/right buttons width
+ * Key: 1
*
* @type {number}
* @constant
*/
-raylib.SPIN_BUTTON_WIDTH = 16
+raylib.KEY_ONE = 49
/**
- * Spinner buttons separation
+ * Key: 2
*
* @type {number}
* @constant
*/
-raylib.SPIN_BUTTON_SPACING = 17
+raylib.KEY_TWO = 50
/**
- * ListView items height
+ * Key: 3
*
* @type {number}
* @constant
*/
-raylib.LIST_ITEMS_HEIGHT = 16
+raylib.KEY_THREE = 51
/**
- * ListView items separation
+ * Key: 4
*
* @type {number}
* @constant
*/
-raylib.LIST_ITEMS_SPACING = 17
+raylib.KEY_FOUR = 52
/**
- * ListView scrollbar size (usually width)
+ * Key: 5
*
* @type {number}
* @constant
*/
-raylib.SCROLLBAR_WIDTH = 18
+raylib.KEY_FIVE = 53
/**
- * ListView scrollbar side (0-left, 1-right)
+ * Key: 6
*
* @type {number}
* @constant
*/
-raylib.SCROLLBAR_SIDE = 19
+raylib.KEY_SIX = 54
/**
- *
+ * Key: 7
*
* @type {number}
* @constant
*/
-raylib.COLOR_SELECTOR_SIZE = 16
+raylib.KEY_SEVEN = 55
/**
- * ColorPicker right hue bar width
+ * Key: 8
*
* @type {number}
* @constant
*/
-raylib.HUEBAR_WIDTH = 17
+raylib.KEY_EIGHT = 56
/**
- * ColorPicker right hue bar separation from panel
+ * Key: 9
*
* @type {number}
* @constant
*/
-raylib.HUEBAR_PADDING = 18
+raylib.KEY_NINE = 57
/**
- * ColorPicker right hue bar selector height
+ * Key: ;
*
* @type {number}
* @constant
*/
-raylib.HUEBAR_SELECTOR_HEIGHT = 19
+raylib.KEY_SEMICOLON = 59
/**
- * ColorPicker right hue bar selector overflow
+ * Key: =
*
* @type {number}
* @constant
*/
-raylib.HUEBAR_SELECTOR_OVERFLOW = 20
+raylib.KEY_EQUAL = 61
/**
- *
+ * Key: A | a
*
* @type {number}
* @constant
*/
-raylib.ICON_NONE = 0
+raylib.KEY_A = 65
/**
- *
+ * Key: B | b
*
* @type {number}
* @constant
*/
-raylib.ICON_FOLDER_FILE_OPEN = 1
+raylib.KEY_B = 66
/**
- *
+ * Key: C | c
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_SAVE_CLASSIC = 2
+raylib.KEY_C = 67
/**
- *
+ * Key: D | d
*
* @type {number}
* @constant
*/
-raylib.ICON_FOLDER_OPEN = 3
+raylib.KEY_D = 68
/**
- *
+ * Key: E | e
*
* @type {number}
* @constant
*/
-raylib.ICON_FOLDER_SAVE = 4
+raylib.KEY_E = 69
/**
- *
+ * Key: F | f
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_OPEN = 5
+raylib.KEY_F = 70
/**
- *
+ * Key: G | g
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_SAVE = 6
+raylib.KEY_G = 71
/**
- *
+ * Key: H | h
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_EXPORT = 7
+raylib.KEY_H = 72
/**
- *
+ * Key: I | i
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_ADD = 8
+raylib.KEY_I = 73
/**
- *
+ * Key: J | j
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_DELETE = 9
+raylib.KEY_J = 74
/**
- *
+ * Key: K | k
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_TEXT = 10
+raylib.KEY_K = 75
/**
- *
+ * Key: L | l
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_AUDIO = 11
+raylib.KEY_L = 76
/**
- *
+ * Key: M | m
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_IMAGE = 12
+raylib.KEY_M = 77
/**
- *
+ * Key: N | n
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_PLAY = 13
+raylib.KEY_N = 78
/**
- *
+ * Key: O | o
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_VIDEO = 14
+raylib.KEY_O = 79
/**
- *
+ * Key: P | p
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_INFO = 15
+raylib.KEY_P = 80
/**
- *
+ * Key: Q | q
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_COPY = 16
+raylib.KEY_Q = 81
/**
- *
+ * Key: R | r
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_CUT = 17
+raylib.KEY_R = 82
/**
- *
+ * Key: S | s
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_PASTE = 18
+raylib.KEY_S = 83
/**
- *
+ * Key: T | t
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_HAND = 19
+raylib.KEY_T = 84
/**
- *
+ * Key: U | u
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_POINTER = 20
+raylib.KEY_U = 85
/**
- *
+ * Key: V | v
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_CLASSIC = 21
+raylib.KEY_V = 86
/**
- *
+ * Key: W | w
*
* @type {number}
* @constant
*/
-raylib.ICON_PENCIL = 22
+raylib.KEY_W = 87
/**
- *
+ * Key: X | x
*
* @type {number}
* @constant
*/
-raylib.ICON_PENCIL_BIG = 23
+raylib.KEY_X = 88
/**
- *
+ * Key: Y | y
*
* @type {number}
* @constant
*/
-raylib.ICON_BRUSH_CLASSIC = 24
+raylib.KEY_Y = 89
/**
- *
+ * Key: Z | z
*
* @type {number}
* @constant
*/
-raylib.ICON_BRUSH_PAINTER = 25
+raylib.KEY_Z = 90
/**
- *
+ * Key: [
*
* @type {number}
* @constant
*/
-raylib.ICON_WATER_DROP = 26
+raylib.KEY_LEFT_BRACKET = 91
/**
- *
+ * Key: '\'
*
* @type {number}
* @constant
*/
-raylib.ICON_COLOR_PICKER = 27
+raylib.KEY_BACKSLASH = 92
/**
- *
+ * Key: ]
*
* @type {number}
* @constant
*/
-raylib.ICON_RUBBER = 28
+raylib.KEY_RIGHT_BRACKET = 93
/**
- *
+ * Key: `
*
* @type {number}
* @constant
*/
-raylib.ICON_COLOR_BUCKET = 29
+raylib.KEY_GRAVE = 96
/**
- *
+ * Key: Space
*
* @type {number}
* @constant
*/
-raylib.ICON_TEXT_T = 30
+raylib.KEY_SPACE = 32
/**
- *
+ * Key: Esc
*
* @type {number}
* @constant
*/
-raylib.ICON_TEXT_A = 31
+raylib.KEY_ESCAPE = 256
/**
- *
+ * Key: Enter
*
* @type {number}
* @constant
*/
-raylib.ICON_SCALE = 32
+raylib.KEY_ENTER = 257
/**
- *
+ * Key: Tab
*
* @type {number}
* @constant
*/
-raylib.ICON_RESIZE = 33
+raylib.KEY_TAB = 258
/**
- *
+ * Key: Backspace
*
* @type {number}
* @constant
*/
-raylib.ICON_FILTER_POINT = 34
+raylib.KEY_BACKSPACE = 259
/**
- *
+ * Key: Ins
*
* @type {number}
* @constant
*/
-raylib.ICON_FILTER_BILINEAR = 35
+raylib.KEY_INSERT = 260
/**
- *
+ * Key: Del
*
* @type {number}
* @constant
*/
-raylib.ICON_CROP = 36
+raylib.KEY_DELETE = 261
/**
- *
+ * Key: Cursor right
*
* @type {number}
* @constant
*/
-raylib.ICON_CROP_ALPHA = 37
+raylib.KEY_RIGHT = 262
/**
- *
+ * Key: Cursor left
*
* @type {number}
* @constant
*/
-raylib.ICON_SQUARE_TOGGLE = 38
+raylib.KEY_LEFT = 263
/**
- *
+ * Key: Cursor down
*
* @type {number}
* @constant
*/
-raylib.ICON_SYMMETRY = 39
+raylib.KEY_DOWN = 264
/**
- *
+ * Key: Cursor up
*
* @type {number}
* @constant
*/
-raylib.ICON_SYMMETRY_HORIZONTAL = 40
+raylib.KEY_UP = 265
/**
- *
+ * Key: Page up
*
* @type {number}
* @constant
*/
-raylib.ICON_SYMMETRY_VERTICAL = 41
+raylib.KEY_PAGE_UP = 266
/**
- *
+ * Key: Page down
*
* @type {number}
* @constant
*/
-raylib.ICON_LENS = 42
+raylib.KEY_PAGE_DOWN = 267
/**
- *
+ * Key: Home
*
* @type {number}
* @constant
*/
-raylib.ICON_LENS_BIG = 43
+raylib.KEY_HOME = 268
/**
- *
+ * Key: End
*
* @type {number}
* @constant
*/
-raylib.ICON_EYE_ON = 44
+raylib.KEY_END = 269
/**
- *
+ * Key: Caps lock
*
* @type {number}
* @constant
*/
-raylib.ICON_EYE_OFF = 45
+raylib.KEY_CAPS_LOCK = 280
/**
- *
+ * Key: Scroll down
*
* @type {number}
* @constant
*/
-raylib.ICON_FILTER_TOP = 46
+raylib.KEY_SCROLL_LOCK = 281
/**
- *
+ * Key: Num lock
*
* @type {number}
* @constant
*/
-raylib.ICON_FILTER = 47
+raylib.KEY_NUM_LOCK = 282
/**
- *
+ * Key: Print screen
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_POINT = 48
+raylib.KEY_PRINT_SCREEN = 283
/**
- *
+ * Key: Pause
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_SMALL = 49
+raylib.KEY_PAUSE = 284
/**
- *
+ * Key: F1
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_BIG = 50
+raylib.KEY_F1 = 290
/**
- *
+ * Key: F2
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_MOVE = 51
+raylib.KEY_F2 = 291
/**
- *
+ * Key: F3
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_MOVE = 52
+raylib.KEY_F3 = 292
/**
- *
+ * Key: F4
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE = 53
+raylib.KEY_F4 = 293
/**
- *
+ * Key: F5
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE_RIGHT = 54
+raylib.KEY_F5 = 294
/**
- *
+ * Key: F6
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE_LEFT = 55
+raylib.KEY_F6 = 295
/**
- *
+ * Key: F7
*
* @type {number}
* @constant
*/
-raylib.ICON_UNDO = 56
+raylib.KEY_F7 = 296
/**
- *
+ * Key: F8
*
* @type {number}
* @constant
*/
-raylib.ICON_REDO = 57
+raylib.KEY_F8 = 297
/**
- *
+ * Key: F9
*
* @type {number}
* @constant
*/
-raylib.ICON_REREDO = 58
+raylib.KEY_F9 = 298
/**
- *
+ * Key: F10
*
* @type {number}
* @constant
*/
-raylib.ICON_MUTATE = 59
+raylib.KEY_F10 = 299
/**
- *
+ * Key: F11
*
* @type {number}
* @constant
*/
-raylib.ICON_ROTATE = 60
+raylib.KEY_F11 = 300
/**
- *
+ * Key: F12
*
* @type {number}
* @constant
*/
-raylib.ICON_REPEAT = 61
+raylib.KEY_F12 = 301
/**
- *
+ * Key: Shift left
*
* @type {number}
* @constant
*/
-raylib.ICON_SHUFFLE = 62
+raylib.KEY_LEFT_SHIFT = 340
/**
- *
+ * Key: Control left
*
* @type {number}
* @constant
*/
-raylib.ICON_EMPTYBOX = 63
+raylib.KEY_LEFT_CONTROL = 341
/**
- *
+ * Key: Alt left
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET = 64
+raylib.KEY_LEFT_ALT = 342
/**
- *
+ * Key: Super left
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_SMALL_FILL = 65
+raylib.KEY_LEFT_SUPER = 343
/**
- *
+ * Key: Shift right
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_BIG_FILL = 66
+raylib.KEY_RIGHT_SHIFT = 344
/**
- *
+ * Key: Control right
*
* @type {number}
* @constant
*/
-raylib.ICON_TARGET_MOVE_FILL = 67
+raylib.KEY_RIGHT_CONTROL = 345
/**
- *
+ * Key: Alt right
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_MOVE_FILL = 68
+raylib.KEY_RIGHT_ALT = 346
/**
- *
+ * Key: Super right
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE_FILL = 69
+raylib.KEY_RIGHT_SUPER = 347
/**
- *
+ * Key: KB menu
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE_RIGHT_FILL = 70
+raylib.KEY_KB_MENU = 348
/**
- *
+ * Key: Keypad 0
*
* @type {number}
* @constant
*/
-raylib.ICON_CURSOR_SCALE_LEFT_FILL = 71
+raylib.KEY_KP_0 = 320
/**
- *
+ * Key: Keypad 1
*
* @type {number}
* @constant
*/
-raylib.ICON_UNDO_FILL = 72
+raylib.KEY_KP_1 = 321
/**
- *
+ * Key: Keypad 2
*
* @type {number}
* @constant
*/
-raylib.ICON_REDO_FILL = 73
+raylib.KEY_KP_2 = 322
/**
- *
+ * Key: Keypad 3
*
* @type {number}
* @constant
*/
-raylib.ICON_REREDO_FILL = 74
+raylib.KEY_KP_3 = 323
/**
- *
+ * Key: Keypad 4
*
* @type {number}
* @constant
*/
-raylib.ICON_MUTATE_FILL = 75
+raylib.KEY_KP_4 = 324
/**
- *
+ * Key: Keypad 5
*
* @type {number}
* @constant
*/
-raylib.ICON_ROTATE_FILL = 76
+raylib.KEY_KP_5 = 325
/**
- *
+ * Key: Keypad 6
*
* @type {number}
* @constant
*/
-raylib.ICON_REPEAT_FILL = 77
+raylib.KEY_KP_6 = 326
/**
- *
+ * Key: Keypad 7
*
* @type {number}
* @constant
*/
-raylib.ICON_SHUFFLE_FILL = 78
+raylib.KEY_KP_7 = 327
/**
- *
+ * Key: Keypad 8
*
* @type {number}
* @constant
*/
-raylib.ICON_EMPTYBOX_SMALL = 79
+raylib.KEY_KP_8 = 328
/**
- *
+ * Key: Keypad 9
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX = 80
+raylib.KEY_KP_9 = 329
/**
- *
+ * Key: Keypad .
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_TOP = 81
+raylib.KEY_KP_DECIMAL = 330
/**
- *
+ * Key: Keypad /
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_TOP_RIGHT = 82
+raylib.KEY_KP_DIVIDE = 331
/**
- *
+ * Key: Keypad *
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_RIGHT = 83
+raylib.KEY_KP_MULTIPLY = 332
/**
- *
+ * Key: Keypad -
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_BOTTOM_RIGHT = 84
+raylib.KEY_KP_SUBTRACT = 333
/**
- *
+ * Key: Keypad +
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_BOTTOM = 85
+raylib.KEY_KP_ADD = 334
/**
- *
+ * Key: Keypad Enter
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_BOTTOM_LEFT = 86
+raylib.KEY_KP_ENTER = 335
/**
- *
+ * Key: Keypad =
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_LEFT = 87
+raylib.KEY_KP_EQUAL = 336
/**
- *
+ * Key: Android back button
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_TOP_LEFT = 88
+raylib.KEY_BACK = 4
/**
- *
+ * Key: Android menu button
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_CENTER = 89
+raylib.KEY_MENU = 82
/**
- *
+ * Key: Android volume up button
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_CIRCLE_MASK = 90
+raylib.KEY_VOLUME_UP = 24
/**
- *
+ * Key: Android volume down button
*
* @type {number}
* @constant
*/
-raylib.ICON_POT = 91
+raylib.KEY_VOLUME_DOWN = 25
/**
- *
+ * Mouse button left
*
* @type {number}
* @constant
*/
-raylib.ICON_ALPHA_MULTIPLY = 92
+raylib.MOUSE_BUTTON_LEFT = 0
/**
- *
+ * Mouse button right
*
* @type {number}
* @constant
*/
-raylib.ICON_ALPHA_CLEAR = 93
+raylib.MOUSE_BUTTON_RIGHT = 1
/**
- *
+ * Mouse button middle (pressed wheel)
*
* @type {number}
* @constant
*/
-raylib.ICON_DITHERING = 94
+raylib.MOUSE_BUTTON_MIDDLE = 2
/**
- *
+ * Mouse button side (advanced mouse device)
*
* @type {number}
* @constant
*/
-raylib.ICON_MIPMAPS = 95
+raylib.MOUSE_BUTTON_SIDE = 3
/**
- *
+ * Mouse button extra (advanced mouse device)
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_GRID = 96
+raylib.MOUSE_BUTTON_EXTRA = 4
/**
- *
+ * Mouse button forward (advanced mouse device)
*
* @type {number}
* @constant
*/
-raylib.ICON_GRID = 97
+raylib.MOUSE_BUTTON_FORWARD = 5
/**
- *
+ * Mouse button back (advanced mouse device)
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_CORNERS_SMALL = 98
+raylib.MOUSE_BUTTON_BACK = 6
/**
- *
+ * Default pointer shape
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_CORNERS_BIG = 99
+raylib.MOUSE_CURSOR_DEFAULT = 0
/**
- *
+ * Arrow shape
*
* @type {number}
* @constant
*/
-raylib.ICON_FOUR_BOXES = 100
+raylib.MOUSE_CURSOR_ARROW = 1
/**
- *
+ * Text writing cursor shape
*
* @type {number}
* @constant
*/
-raylib.ICON_GRID_FILL = 101
+raylib.MOUSE_CURSOR_IBEAM = 2
/**
- *
+ * Cross shape
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_MULTISIZE = 102
+raylib.MOUSE_CURSOR_CROSSHAIR = 3
/**
- *
+ * Pointing hand cursor
*
* @type {number}
* @constant
*/
-raylib.ICON_ZOOM_SMALL = 103
+raylib.MOUSE_CURSOR_POINTING_HAND = 4
/**
- *
+ * Horizontal resize/move arrow shape
*
* @type {number}
* @constant
*/
-raylib.ICON_ZOOM_MEDIUM = 104
+raylib.MOUSE_CURSOR_RESIZE_EW = 5
/**
- *
+ * Vertical resize/move arrow shape
*
* @type {number}
* @constant
*/
-raylib.ICON_ZOOM_BIG = 105
+raylib.MOUSE_CURSOR_RESIZE_NS = 6
/**
- *
+ * Top-left to bottom-right diagonal resize/move arrow shape
*
* @type {number}
* @constant
*/
-raylib.ICON_ZOOM_ALL = 106
+raylib.MOUSE_CURSOR_RESIZE_NWSE = 7
/**
- *
+ * The top-right to bottom-left diagonal resize/move arrow shape
*
* @type {number}
* @constant
*/
-raylib.ICON_ZOOM_CENTER = 107
+raylib.MOUSE_CURSOR_RESIZE_NESW = 8
/**
- *
+ * The omnidirectional resize/move cursor shape
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_DOTS_SMALL = 108
+raylib.MOUSE_CURSOR_RESIZE_ALL = 9
/**
- *
+ * The operation-not-allowed shape
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_DOTS_BIG = 109
+raylib.MOUSE_CURSOR_NOT_ALLOWED = 10
/**
- *
+ * Unknown button, just for error checking
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_CONCENTRIC = 110
+raylib.GAMEPAD_BUTTON_UNKNOWN = 0
/**
- *
+ * Gamepad left DPAD up button
*
* @type {number}
* @constant
*/
-raylib.ICON_BOX_GRID_BIG = 111
+raylib.GAMEPAD_BUTTON_LEFT_FACE_UP = 1
/**
- *
+ * Gamepad left DPAD right button
*
* @type {number}
* @constant
*/
-raylib.ICON_OK_TICK = 112
+raylib.GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2
/**
- *
+ * Gamepad left DPAD down button
*
* @type {number}
* @constant
*/
-raylib.ICON_CROSS = 113
+raylib.GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3
/**
- *
+ * Gamepad left DPAD left button
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_LEFT = 114
+raylib.GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4
/**
- *
+ * Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_RIGHT = 115
+raylib.GAMEPAD_BUTTON_RIGHT_FACE_UP = 5
/**
- *
+ * Gamepad right button right (i.e. PS3: Square, Xbox: X)
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_DOWN = 116
+raylib.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6
/**
- *
+ * Gamepad right button down (i.e. PS3: Cross, Xbox: A)
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_UP = 117
+raylib.GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7
/**
- *
+ * Gamepad right button left (i.e. PS3: Circle, Xbox: B)
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_LEFT_FILL = 118
+raylib.GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8
/**
- *
+ * Gamepad top/back trigger left (first), it could be a trailing button
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_RIGHT_FILL = 119
+raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9
/**
- *
+ * Gamepad top/back trigger left (second), it could be a trailing button
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_DOWN_FILL = 120
+raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10
/**
- *
+ * Gamepad top/back trigger right (one), it could be a trailing button
*
* @type {number}
* @constant
*/
-raylib.ICON_ARROW_UP_FILL = 121
+raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11
/**
- *
+ * Gamepad top/back trigger right (second), it could be a trailing button
*
* @type {number}
* @constant
*/
-raylib.ICON_AUDIO = 122
+raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12
/**
- *
+ * Gamepad center buttons, left one (i.e. PS3: Select)
*
* @type {number}
* @constant
*/
-raylib.ICON_FX = 123
+raylib.GAMEPAD_BUTTON_MIDDLE_LEFT = 13
/**
- *
+ * Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)
*
* @type {number}
* @constant
*/
-raylib.ICON_WAVE = 124
+raylib.GAMEPAD_BUTTON_MIDDLE = 14
/**
- *
+ * Gamepad center buttons, right one (i.e. PS3: Start)
*
* @type {number}
* @constant
*/
-raylib.ICON_WAVE_SINUS = 125
+raylib.GAMEPAD_BUTTON_MIDDLE_RIGHT = 15
/**
- *
+ * Gamepad joystick pressed button left
*
* @type {number}
* @constant
*/
-raylib.ICON_WAVE_SQUARE = 126
+raylib.GAMEPAD_BUTTON_LEFT_THUMB = 16
/**
- *
+ * Gamepad joystick pressed button right
*
* @type {number}
* @constant
*/
-raylib.ICON_WAVE_TRIANGULAR = 127
+raylib.GAMEPAD_BUTTON_RIGHT_THUMB = 17
/**
- *
+ * Gamepad left stick X axis
*
* @type {number}
* @constant
*/
-raylib.ICON_CROSS_SMALL = 128
+raylib.GAMEPAD_AXIS_LEFT_X = 0
/**
- *
+ * Gamepad left stick Y axis
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_PREVIOUS = 129
+raylib.GAMEPAD_AXIS_LEFT_Y = 1
/**
- *
+ * Gamepad right stick X axis
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_PLAY_BACK = 130
+raylib.GAMEPAD_AXIS_RIGHT_X = 2
/**
- *
+ * Gamepad right stick Y axis
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_PLAY = 131
+raylib.GAMEPAD_AXIS_RIGHT_Y = 3
/**
- *
+ * Gamepad back trigger left, pressure level: [1..-1]
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_PAUSE = 132
+raylib.GAMEPAD_AXIS_LEFT_TRIGGER = 4
/**
- *
+ * Gamepad back trigger right, pressure level: [1..-1]
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_STOP = 133
+raylib.GAMEPAD_AXIS_RIGHT_TRIGGER = 5
/**
- *
+ * Albedo material (same as: MATERIAL_MAP_DIFFUSE)
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_NEXT = 134
+raylib.MATERIAL_MAP_ALBEDO = 0
/**
- *
+ * Metalness material (same as: MATERIAL_MAP_SPECULAR)
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_RECORD = 135
+raylib.MATERIAL_MAP_METALNESS = 1
/**
- *
+ * Normal material
*
* @type {number}
* @constant
*/
-raylib.ICON_MAGNET = 136
+raylib.MATERIAL_MAP_NORMAL = 2
/**
- *
+ * Roughness material
*
* @type {number}
* @constant
*/
-raylib.ICON_LOCK_CLOSE = 137
+raylib.MATERIAL_MAP_ROUGHNESS = 3
/**
- *
+ * Ambient occlusion material
*
* @type {number}
* @constant
*/
-raylib.ICON_LOCK_OPEN = 138
+raylib.MATERIAL_MAP_OCCLUSION = 4
/**
- *
+ * Emission material
*
* @type {number}
* @constant
*/
-raylib.ICON_CLOCK = 139
+raylib.MATERIAL_MAP_EMISSION = 5
/**
- *
+ * Heightmap material
*
* @type {number}
* @constant
*/
-raylib.ICON_TOOLS = 140
+raylib.MATERIAL_MAP_HEIGHT = 6
/**
- *
+ * Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
*
* @type {number}
* @constant
*/
-raylib.ICON_GEAR = 141
+raylib.MATERIAL_MAP_CUBEMAP = 7
/**
- *
+ * Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
*
* @type {number}
* @constant
*/
-raylib.ICON_GEAR_BIG = 142
+raylib.MATERIAL_MAP_IRRADIANCE = 8
/**
- *
+ * Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
*
* @type {number}
* @constant
*/
-raylib.ICON_BIN = 143
+raylib.MATERIAL_MAP_PREFILTER = 9
/**
- *
+ * Brdf material
*
* @type {number}
* @constant
*/
-raylib.ICON_HAND_POINTER = 144
+raylib.MATERIAL_MAP_BRDF = 10
/**
- *
+ * Shader location: vertex attribute: position
*
* @type {number}
* @constant
*/
-raylib.ICON_LASER = 145
+raylib.SHADER_LOC_VERTEX_POSITION = 0
/**
- *
+ * Shader location: vertex attribute: texcoord01
*
* @type {number}
* @constant
*/
-raylib.ICON_COIN = 146
+raylib.SHADER_LOC_VERTEX_TEXCOORD01 = 1
/**
- *
+ * Shader location: vertex attribute: texcoord02
*
* @type {number}
* @constant
*/
-raylib.ICON_EXPLOSION = 147
+raylib.SHADER_LOC_VERTEX_TEXCOORD02 = 2
/**
- *
+ * Shader location: vertex attribute: normal
*
* @type {number}
* @constant
*/
-raylib.ICON_1UP = 148
+raylib.SHADER_LOC_VERTEX_NORMAL = 3
/**
- *
+ * Shader location: vertex attribute: tangent
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER = 149
+raylib.SHADER_LOC_VERTEX_TANGENT = 4
/**
- *
+ * Shader location: vertex attribute: color
*
* @type {number}
* @constant
*/
-raylib.ICON_PLAYER_JUMP = 150
+raylib.SHADER_LOC_VERTEX_COLOR = 5
/**
- *
+ * Shader location: matrix uniform: model-view-projection
*
* @type {number}
* @constant
*/
-raylib.ICON_KEY = 151
+raylib.SHADER_LOC_MATRIX_MVP = 6
/**
- *
+ * Shader location: matrix uniform: view (camera transform)
*
* @type {number}
* @constant
*/
-raylib.ICON_DEMON = 152
+raylib.SHADER_LOC_MATRIX_VIEW = 7
/**
- *
+ * Shader location: matrix uniform: projection
*
* @type {number}
* @constant
*/
-raylib.ICON_TEXT_POPUP = 153
+raylib.SHADER_LOC_MATRIX_PROJECTION = 8
/**
- *
+ * Shader location: matrix uniform: model (transform)
*
* @type {number}
* @constant
*/
-raylib.ICON_GEAR_EX = 154
+raylib.SHADER_LOC_MATRIX_MODEL = 9
/**
- *
+ * Shader location: matrix uniform: normal
*
* @type {number}
* @constant
*/
-raylib.ICON_CRACK = 155
+raylib.SHADER_LOC_MATRIX_NORMAL = 10
/**
- *
+ * Shader location: vector uniform: view
*
* @type {number}
* @constant
*/
-raylib.ICON_CRACK_POINTS = 156
+raylib.SHADER_LOC_VECTOR_VIEW = 11
/**
- *
+ * Shader location: vector uniform: diffuse color
*
* @type {number}
* @constant
*/
-raylib.ICON_STAR = 157
+raylib.SHADER_LOC_COLOR_DIFFUSE = 12
/**
- *
+ * Shader location: vector uniform: specular color
*
* @type {number}
* @constant
*/
-raylib.ICON_DOOR = 158
+raylib.SHADER_LOC_COLOR_SPECULAR = 13
/**
- *
+ * Shader location: vector uniform: ambient color
*
* @type {number}
* @constant
*/
-raylib.ICON_EXIT = 159
+raylib.SHADER_LOC_COLOR_AMBIENT = 14
/**
- *
+ * Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)
*
* @type {number}
* @constant
*/
-raylib.ICON_MODE_2D = 160
+raylib.SHADER_LOC_MAP_ALBEDO = 15
/**
- *
+ * Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)
*
* @type {number}
* @constant
*/
-raylib.ICON_MODE_3D = 161
+raylib.SHADER_LOC_MAP_METALNESS = 16
/**
- *
+ * Shader location: sampler2d texture: normal
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE = 162
+raylib.SHADER_LOC_MAP_NORMAL = 17
/**
- *
+ * Shader location: sampler2d texture: roughness
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_TOP = 163
+raylib.SHADER_LOC_MAP_ROUGHNESS = 18
/**
- *
+ * Shader location: sampler2d texture: occlusion
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_LEFT = 164
+raylib.SHADER_LOC_MAP_OCCLUSION = 19
/**
- *
+ * Shader location: sampler2d texture: emission
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_FRONT = 165
+raylib.SHADER_LOC_MAP_EMISSION = 20
/**
- *
+ * Shader location: sampler2d texture: height
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_BOTTOM = 166
+raylib.SHADER_LOC_MAP_HEIGHT = 21
/**
- *
+ * Shader location: samplerCube texture: cubemap
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_RIGHT = 167
+raylib.SHADER_LOC_MAP_CUBEMAP = 22
/**
- *
+ * Shader location: samplerCube texture: irradiance
*
* @type {number}
* @constant
*/
-raylib.ICON_CUBE_FACE_BACK = 168
+raylib.SHADER_LOC_MAP_IRRADIANCE = 23
/**
- *
+ * Shader location: samplerCube texture: prefilter
*
* @type {number}
* @constant
*/
-raylib.ICON_CAMERA = 169
+raylib.SHADER_LOC_MAP_PREFILTER = 24
/**
- *
+ * Shader location: sampler2d texture: brdf
*
* @type {number}
* @constant
*/
-raylib.ICON_SPECIAL = 170
+raylib.SHADER_LOC_MAP_BRDF = 25
/**
- *
+ * Shader uniform type: float
*
* @type {number}
* @constant
*/
-raylib.ICON_LINK_NET = 171
+raylib.SHADER_UNIFORM_FLOAT = 0
/**
- *
+ * Shader uniform type: vec2 (2 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_LINK_BOXES = 172
+raylib.SHADER_UNIFORM_VEC2 = 1
/**
- *
+ * Shader uniform type: vec3 (3 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_LINK_MULTI = 173
+raylib.SHADER_UNIFORM_VEC3 = 2
/**
- *
+ * Shader uniform type: vec4 (4 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_LINK = 174
+raylib.SHADER_UNIFORM_VEC4 = 3
/**
- *
+ * Shader uniform type: int
*
* @type {number}
* @constant
*/
-raylib.ICON_LINK_BROKE = 175
+raylib.SHADER_UNIFORM_INT = 4
/**
- *
+ * Shader uniform type: ivec2 (2 int)
*
* @type {number}
* @constant
*/
-raylib.ICON_TEXT_NOTES = 176
+raylib.SHADER_UNIFORM_IVEC2 = 5
/**
- *
+ * Shader uniform type: ivec3 (3 int)
*
* @type {number}
* @constant
*/
-raylib.ICON_NOTEBOOK = 177
+raylib.SHADER_UNIFORM_IVEC3 = 6
/**
- *
+ * Shader uniform type: ivec4 (4 int)
*
* @type {number}
* @constant
*/
-raylib.ICON_SUITCASE = 178
+raylib.SHADER_UNIFORM_IVEC4 = 7
/**
- *
+ * Shader uniform type: sampler2d
*
* @type {number}
* @constant
*/
-raylib.ICON_SUITCASE_ZIP = 179
+raylib.SHADER_UNIFORM_SAMPLER2D = 8
/**
- *
+ * Shader attribute type: float
*
* @type {number}
* @constant
*/
-raylib.ICON_MAILBOX = 180
+raylib.SHADER_ATTRIB_FLOAT = 0
/**
- *
+ * Shader attribute type: vec2 (2 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_MONITOR = 181
+raylib.SHADER_ATTRIB_VEC2 = 1
/**
- *
+ * Shader attribute type: vec3 (3 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_PRINTER = 182
+raylib.SHADER_ATTRIB_VEC3 = 2
/**
- *
+ * Shader attribute type: vec4 (4 float)
*
* @type {number}
* @constant
*/
-raylib.ICON_PHOTO_CAMERA = 183
+raylib.SHADER_ATTRIB_VEC4 = 3
/**
- *
+ * 8 bit per pixel (no alpha)
*
* @type {number}
* @constant
*/
-raylib.ICON_PHOTO_CAMERA_FLASH = 184
+raylib.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1
/**
- *
+ * 8*2 bpp (2 channels)
*
* @type {number}
* @constant
*/
-raylib.ICON_HOUSE = 185
+raylib.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2
/**
- *
+ * 16 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_HEART = 186
+raylib.PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3
/**
- *
+ * 24 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_CORNER = 187
+raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4
/**
- *
+ * 16 bpp (1 bit alpha)
*
* @type {number}
* @constant
*/
-raylib.ICON_VERTICAL_BARS = 188
+raylib.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5
/**
- *
+ * 16 bpp (4 bit alpha)
*
* @type {number}
* @constant
*/
-raylib.ICON_VERTICAL_BARS_FILL = 189
+raylib.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6
/**
- *
+ * 32 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_LIFE_BARS = 190
+raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7
/**
- *
+ * 32 bpp (1 channel - float)
*
* @type {number}
* @constant
*/
-raylib.ICON_INFO = 191
+raylib.PIXELFORMAT_UNCOMPRESSED_R32 = 8
/**
- *
+ * 32*3 bpp (3 channels - float)
*
* @type {number}
* @constant
*/
-raylib.ICON_CROSSLINE = 192
+raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
/**
- *
+ * 32*4 bpp (4 channels - float)
*
* @type {number}
* @constant
*/
-raylib.ICON_HELP = 193
+raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
/**
- *
+ * 16 bpp (1 channel - half float)
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_ALPHA = 194
+raylib.PIXELFORMAT_UNCOMPRESSED_R16 = 11
/**
- *
+ * 16*3 bpp (3 channels - half float)
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_HOME = 195
+raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12
/**
- *
+ * 16*4 bpp (4 channels - half float)
*
* @type {number}
* @constant
*/
-raylib.ICON_LAYERS_VISIBLE = 196
+raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13
/**
- *
+ * 4 bpp (no alpha)
*
* @type {number}
* @constant
*/
-raylib.ICON_LAYERS = 197
+raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 14
/**
- *
+ * 4 bpp (1 bit alpha)
*
* @type {number}
* @constant
*/
-raylib.ICON_WINDOW = 198
+raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15
/**
- *
+ * 8 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_HIDPI = 199
+raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16
/**
- *
+ * 8 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_FILETYPE_BINARY = 200
+raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17
/**
- *
+ * 4 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_HEX = 201
+raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 18
/**
- *
+ * 4 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_SHIELD = 202
+raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 19
/**
- *
+ * 8 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE_NEW = 203
+raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20
/**
- *
+ * 4 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_FOLDER_ADD = 204
+raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 21
/**
- *
+ * 4 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_ALARM = 205
+raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22
/**
- *
+ * 8 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_CPU = 206
+raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23
/**
- *
+ * 2 bpp
*
* @type {number}
* @constant
*/
-raylib.ICON_ROM = 207
+raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24
/**
- *
+ * No filter, just pixel approximation
*
* @type {number}
* @constant
*/
-raylib.ICON_STEP_OVER = 208
+raylib.TEXTURE_FILTER_POINT = 0
/**
- *
+ * Linear filtering
*
* @type {number}
* @constant
*/
-raylib.ICON_STEP_INTO = 209
+raylib.TEXTURE_FILTER_BILINEAR = 1
/**
- *
+ * Trilinear filtering (linear with mipmaps)
*
* @type {number}
* @constant
*/
-raylib.ICON_STEP_OUT = 210
+raylib.TEXTURE_FILTER_TRILINEAR = 2
/**
- *
+ * Anisotropic filtering 4x
*
* @type {number}
* @constant
*/
-raylib.ICON_RESTART = 211
+raylib.TEXTURE_FILTER_ANISOTROPIC_4X = 3
/**
- *
+ * Anisotropic filtering 8x
*
* @type {number}
* @constant
*/
-raylib.ICON_BREAKPOINT_ON = 212
+raylib.TEXTURE_FILTER_ANISOTROPIC_8X = 4
/**
- *
+ * Anisotropic filtering 16x
*
* @type {number}
* @constant
*/
-raylib.ICON_BREAKPOINT_OFF = 213
+raylib.TEXTURE_FILTER_ANISOTROPIC_16X = 5
/**
- *
+ * Repeats texture in tiled mode
*
* @type {number}
* @constant
*/
-raylib.ICON_BURGER_MENU = 214
+raylib.TEXTURE_WRAP_REPEAT = 0
/**
- *
+ * Clamps texture to edge pixel in tiled mode
*
* @type {number}
* @constant
*/
-raylib.ICON_CASE_SENSITIVE = 215
+raylib.TEXTURE_WRAP_CLAMP = 1
/**
- *
+ * Mirrors and repeats the texture in tiled mode
*
* @type {number}
* @constant
*/
-raylib.ICON_REG_EXP = 216
+raylib.TEXTURE_WRAP_MIRROR_REPEAT = 2
/**
- *
+ * Mirrors and clamps to border the texture in tiled mode
*
* @type {number}
* @constant
*/
-raylib.ICON_FOLDER = 217
+raylib.TEXTURE_WRAP_MIRROR_CLAMP = 3
/**
- *
+ * Automatically detect layout type
*
* @type {number}
* @constant
*/
-raylib.ICON_FILE = 218
+raylib.CUBEMAP_LAYOUT_AUTO_DETECT = 0
/**
- *
+ * Layout is defined by a vertical line with faces
*
* @type {number}
* @constant
*/
-raylib.ICON_219 = 219
+raylib.CUBEMAP_LAYOUT_LINE_VERTICAL = 1
/**
- *
+ * Layout is defined by a horizontal line with faces
*
* @type {number}
* @constant
*/
-raylib.ICON_220 = 220
+raylib.CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2
/**
- *
+ * Layout is defined by a 3x4 cross with cubemap faces
*
* @type {number}
* @constant
*/
-raylib.ICON_221 = 221
+raylib.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3
/**
- *
+ * Layout is defined by a 4x3 cross with cubemap faces
*
* @type {number}
* @constant
*/
-raylib.ICON_222 = 222
+raylib.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4
/**
- *
+ * Layout is defined by a panorama image (equirrectangular map)
*
* @type {number}
* @constant
*/
-raylib.ICON_223 = 223
+raylib.CUBEMAP_LAYOUT_PANORAMA = 5
/**
- *
+ * Default font generation, anti-aliased
*
* @type {number}
* @constant
*/
-raylib.ICON_224 = 224
+raylib.FONT_DEFAULT = 0
/**
- *
+ * Bitmap font generation, no anti-aliasing
*
* @type {number}
* @constant
*/
-raylib.ICON_225 = 225
+raylib.FONT_BITMAP = 1
/**
- *
+ * SDF font generation, requires external shader
*
* @type {number}
* @constant
*/
-raylib.ICON_226 = 226
+raylib.FONT_SDF = 2
/**
- *
+ * Blend textures considering alpha (default)
*
* @type {number}
* @constant
*/
-raylib.ICON_227 = 227
+raylib.BLEND_ALPHA = 0
/**
- *
+ * Blend textures adding colors
*
* @type {number}
* @constant
*/
-raylib.ICON_228 = 228
+raylib.BLEND_ADDITIVE = 1
/**
- *
+ * Blend textures multiplying colors
*
* @type {number}
* @constant
*/
-raylib.ICON_229 = 229
+raylib.BLEND_MULTIPLIED = 2
/**
- *
+ * Blend textures adding colors (alternative)
*
* @type {number}
* @constant
*/
-raylib.ICON_230 = 230
+raylib.BLEND_ADD_COLORS = 3
/**
- *
+ * Blend textures subtracting colors (alternative)
*
* @type {number}
* @constant
*/
-raylib.ICON_231 = 231
+raylib.BLEND_SUBTRACT_COLORS = 4
/**
- *
+ * Blend premultiplied textures considering alpha
*
* @type {number}
* @constant
*/
-raylib.ICON_232 = 232
+raylib.BLEND_ALPHA_PREMULTIPLY = 5
/**
- *
+ * Blend textures using custom src/dst factors (use rlSetBlendFactors())
*
* @type {number}
* @constant
*/
-raylib.ICON_233 = 233
+raylib.BLEND_CUSTOM = 6
/**
- *
+ * Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())
*
* @type {number}
* @constant
*/
-raylib.ICON_234 = 234
+raylib.BLEND_CUSTOM_SEPARATE = 7
/**
- *
+ * No gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_235 = 235
+raylib.GESTURE_NONE = 0
/**
- *
+ * Tap gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_236 = 236
+raylib.GESTURE_TAP = 1
/**
- *
+ * Double tap gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_237 = 237
+raylib.GESTURE_DOUBLETAP = 2
/**
- *
+ * Hold gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_238 = 238
+raylib.GESTURE_HOLD = 4
/**
- *
+ * Drag gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_239 = 239
+raylib.GESTURE_DRAG = 8
/**
- *
+ * Swipe right gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_240 = 240
+raylib.GESTURE_SWIPE_RIGHT = 16
/**
- *
+ * Swipe left gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_241 = 241
+raylib.GESTURE_SWIPE_LEFT = 32
/**
- *
+ * Swipe up gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_242 = 242
+raylib.GESTURE_SWIPE_UP = 64
/**
- *
+ * Swipe down gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_243 = 243
+raylib.GESTURE_SWIPE_DOWN = 128
/**
- *
+ * Pinch in gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_244 = 244
+raylib.GESTURE_PINCH_IN = 256
/**
- *
+ * Pinch out gesture
*
* @type {number}
* @constant
*/
-raylib.ICON_245 = 245
+raylib.GESTURE_PINCH_OUT = 512
/**
- *
+ * Custom camera
*
* @type {number}
* @constant
*/
-raylib.ICON_246 = 246
+raylib.CAMERA_CUSTOM = 0
/**
- *
+ * Free camera
*
* @type {number}
* @constant
*/
-raylib.ICON_247 = 247
+raylib.CAMERA_FREE = 1
/**
- *
+ * Orbital camera
*
* @type {number}
* @constant
*/
-raylib.ICON_248 = 248
+raylib.CAMERA_ORBITAL = 2
/**
- *
+ * First person camera
*
* @type {number}
* @constant
*/
-raylib.ICON_249 = 249
+raylib.CAMERA_FIRST_PERSON = 3
/**
- *
+ * Third person camera
*
* @type {number}
* @constant
*/
-raylib.ICON_250 = 250
+raylib.CAMERA_THIRD_PERSON = 4
/**
- *
+ * Perspective projection
*
* @type {number}
* @constant
*/
-raylib.ICON_251 = 251
+raylib.CAMERA_PERSPECTIVE = 0
/**
- *
+ * Orthographic projection
*
* @type {number}
* @constant
*/
-raylib.ICON_252 = 252
+raylib.CAMERA_ORTHOGRAPHIC = 1
/**
- *
+ * Npatch layout: 3x3 tiles
*
* @type {number}
* @constant
*/
-raylib.ICON_253 = 253
+raylib.NPATCH_NINE_PATCH = 0
/**
- *
+ * Npatch layout: 1x3 tiles
*
* @type {number}
* @constant
*/
-raylib.ICON_254 = 254
+raylib.NPATCH_THREE_PATCH_VERTICAL = 1
/**
- *
+ * Npatch layout: 3x1 tiles
*
* @type {number}
* @constant
*/
-raylib.ICON_255 = 255
+raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2
/**
* OpenGL 1.1
@@ -20230,6 +17366,14 @@ raylib.RL_OPENGL_43 = 4
*/
raylib.RL_OPENGL_ES_20 = 5
+/**
+ * OpenGL ES 3.0 (GLSL 300 es)
+ *
+ * @type {number}
+ * @constant
+ */
+raylib.RL_OPENGL_ES_30 = 6
+
/**
* Display all logs
*
@@ -20374,13 +17518,37 @@ raylib.RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9
*/
raylib.RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10
+/**
+ * 16 bpp (1 channel - half float)
+ *
+ * @type {number}
+ * @constant
+ */
+raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16 = 11
+
+/**
+ * 16*3 bpp (3 channels - half float)
+ *
+ * @type {number}
+ * @constant
+ */
+raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12
+
+/**
+ * 16*4 bpp (4 channels - half float)
+ *
+ * @type {number}
+ * @constant
+ */
+raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13
+
/**
* 4 bpp (no alpha)
*
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
+raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 14
/**
* 4 bpp (1 bit alpha)
@@ -20388,7 +17556,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
+raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15
/**
* 8 bpp
@@ -20396,7 +17564,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
+raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16
/**
* 8 bpp
@@ -20404,7 +17572,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
+raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17
/**
* 4 bpp
@@ -20412,7 +17580,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
+raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 18
/**
* 4 bpp
@@ -20420,7 +17588,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
+raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 19
/**
* 8 bpp
@@ -20428,7 +17596,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
+raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20
/**
* 4 bpp
@@ -20436,7 +17604,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
+raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 21
/**
* 4 bpp
@@ -20444,7 +17612,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
+raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22
/**
* 8 bpp
@@ -20452,7 +17620,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
+raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23
/**
* 2 bpp
@@ -20460,7 +17628,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20
* @type {number}
* @constant
*/
-raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21
+raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24
/**
* No filter, just pixel approximation
@@ -21031,7 +18199,7 @@ raylib.RL_ATTACHMENT_TEXTURE2D = 100
raylib.RL_ATTACHMENT_RENDERBUFFER = 200
/**
- *
+ *
*
* @type {number}
* @constant
@@ -21039,7 +18207,7 @@ raylib.RL_ATTACHMENT_RENDERBUFFER = 200
raylib.RL_CULL_FACE_FRONT = 0
/**
- *
+ *
*
* @type {number}
* @constant
@@ -21047,7 +18215,7 @@ raylib.RL_CULL_FACE_FRONT = 0
raylib.RL_CULL_FACE_BACK = 1
/**
- *
+ *
*
* @type {number}
* @constant
diff --git a/test/node-raylib.test.js b/test/node-raylib.test.js
index 38298df..23dc306 100644
--- a/test/node-raylib.test.js
+++ b/test/node-raylib.test.js
@@ -44,7 +44,7 @@ describe('raylib', () => {
expect(r.KEY_A).toBe(65)
})
it('PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA', () => {
- expect(r.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA).toBe(20)
+ expect(r.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA).toBe(23)
})
})
diff --git a/tools/generate.js b/tools/generate.js
index a27a691..17d7bb6 100644
--- a/tools/generate.js
+++ b/tools/generate.js
@@ -196,9 +196,10 @@ function getDefs () {
functions.push(...raymath.functions)
// Add Raygui
- const raygui = raylibApi.raygui
- functions.push(...raygui.functions)
- enums.push(...raygui.enums)
+ // TODO: Fix raygui
+ // const raygui = raylibApi.raygui
+ // functions.push(...raygui.functions)
+ // enums.push(...raygui.enums)
const rlgl = raylibApi.rlgl
functions.push(...rlgl.functions)
diff --git a/tools/generate_templates/node-raylib-bindings.js b/tools/generate_templates/node-raylib-bindings.js
index 68f90c9..1e92364 100644
--- a/tools/generate_templates/node-raylib-bindings.js
+++ b/tools/generate_templates/node-raylib-bindings.js
@@ -20,6 +20,9 @@ const SanitizeTypeName = name => {
if (name === 'unsigned int[4]') {
return '(unsigned int) pointer'
}
+ if (name === 'int[4]') {
+ return 'pointer'
+ }
if (name === 'Matrix[2]') {
return 'pointer'
}