raylib
Version:
Node.js bindings for raylib.
1,275 lines (1,003 loc) • 171 kB
TypeScript
// GENERATED CODE: DO NOT MODIFY
declare module "raylib" {
/** Vector2, 2 components */
export interface Vector2 {
/** Vector x component. (float) */
x: number
/** Vector y component. (float) */
y: number
}
/** Vector3, 3 components */
export interface Vector3 {
/** Vector x component. (float) */
x: number
/** Vector y component. (float) */
y: number
/** Vector z component. (float) */
z: number
}
/** Vector4, 4 components */
export interface Vector4 {
/** Vector x component. (float) */
x: number
/** Vector y component. (float) */
y: number
/** Vector z component. (float) */
z: number
/** Vector w component. (float) */
w: number
}
/** Matrix, 4x4 components, column major, OpenGL style, right-handed */
export interface Matrix {
/** Matrix first row (4 components). (float) */
m0: number
/** Matrix first row (4 components). (float) */
m4: number
/** Matrix first row (4 components). (float) */
m8: number
/** Matrix first row (4 components). (float) */
m12: number
/** Matrix second row (4 components). (float) */
m1: number
/** Matrix second row (4 components). (float) */
m5: number
/** Matrix second row (4 components). (float) */
m9: number
/** Matrix second row (4 components). (float) */
m13: number
/** Matrix third row (4 components). (float) */
m2: number
/** Matrix third row (4 components). (float) */
m6: number
/** Matrix third row (4 components). (float) */
m10: number
/** Matrix third row (4 components). (float) */
m14: number
/** Matrix fourth row (4 components). (float) */
m3: number
/** Matrix fourth row (4 components). (float) */
m7: number
/** Matrix fourth row (4 components). (float) */
m11: number
/** Matrix fourth row (4 components). (float) */
m15: number
}
/** Color, 4 components, R8G8B8A8 (32bit) */
export interface Color {
/** Color red value. (unsigned char) */
r: number
/** Color green value. (unsigned char) */
g: number
/** Color blue value. (unsigned char) */
b: number
/** Color alpha value. (unsigned char) */
a: number
}
/** Rectangle, 4 components */
export interface Rectangle {
/** Rectangle top-left corner position x. (float) */
x: number
/** Rectangle top-left corner position y. (float) */
y: number
/** Rectangle width. (float) */
width: number
/** Rectangle height. (float) */
height: number
}
/** Image, pixel data stored in CPU memory (RAM) */
export interface Image {
/** Image raw data. (void *) */
data: number
/** Image base width. (int) */
width: number
/** Image base height. (int) */
height: number
/** Mipmap levels, 1 by default. (int) */
mipmaps: number
/** Data format (PixelFormat type). (int) */
format: number
}
/** Texture, tex data stored in GPU memory (VRAM) */
export interface Texture {
/** OpenGL texture id. (unsigned int) */
id: number
/** Texture base width. (int) */
width: number
/** Texture base height. (int) */
height: number
/** Mipmap levels, 1 by default. (int) */
mipmaps: number
/** Data format (PixelFormat type). (int) */
format: number
}
/** RenderTexture, fbo for texture rendering */
export interface RenderTexture {
/** OpenGL framebuffer object id. (unsigned int) */
id: number
/** Color buffer attachment texture. (Texture) */
texture: Texture
/** Depth buffer attachment texture. (Texture) */
depth: Texture
}
/** NPatchInfo, n-patch layout info */
export interface NPatchInfo {
/** Texture source rectangle. (Rectangle) */
source: Rectangle
/** Left border offset. (int) */
left: number
/** Top border offset. (int) */
top: number
/** Right border offset. (int) */
right: number
/** Bottom border offset. (int) */
bottom: number
/** Layout of the n-patch: 3x3, 1x3 or 3x1. (int) */
layout: number
}
/** GlyphInfo, font characters glyphs info */
export interface GlyphInfo {
/** Character value (Unicode). (int) */
value: number
/** Character offset X when drawing. (int) */
offsetX: number
/** Character offset Y when drawing. (int) */
offsetY: number
/** Character advance position X. (int) */
advanceX: number
/** Character image data. (Image) */
image: Image
}
/** Font, font texture and GlyphInfo array data */
export interface Font {
/** Base size (default chars height). (int) */
baseSize: number
/** Number of glyph characters. (int) */
glyphCount: number
/** Padding around the glyph characters. (int) */
glyphPadding: number
/** Texture atlas containing the glyphs. (Texture) */
texture: Texture
/** Rectangles in texture for the glyphs. (Rectangle *) */
recs: number
/** Glyphs info data. (GlyphInfo *) */
glyphs: number
}
/** Camera, defines position/orientation in 3d space */
export interface Camera3D {
/** Camera position. (Vector3) */
position: Vector3
/** Camera target it looks-at. (Vector3) */
target: Vector3
/** Camera up vector (rotation over its axis). (Vector3) */
up: Vector3
/** Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic. (float) */
fovy: number
/** Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC. (int) */
projection: number
}
/** Camera2D, defines position/orientation in 2d space */
export interface Camera2D {
/** Camera offset (displacement from target). (Vector2) */
offset: Vector2
/** Camera target (rotation and zoom origin). (Vector2) */
target: Vector2
/** Camera rotation in degrees. (float) */
rotation: number
/** Camera zoom (scaling), should be 1.0f by default. (float) */
zoom: number
}
/** Mesh, vertex data and vao/vbo */
export interface Mesh {
/** Number of vertices stored in arrays. (int) */
vertexCount: number
/** Number of triangles stored (indexed or not). (int) */
triangleCount: number
/** Vertex position (XYZ - 3 components per vertex) (shader-location = 0). (float *) */
vertices: number
/** Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1). (float *) */
texcoords: number
/** Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5). (float *) */
texcoords2: number
/** Vertex normals (XYZ - 3 components per vertex) (shader-location = 2). (float *) */
normals: number
/** Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4). (float *) */
tangents: number
/** Vertex colors (RGBA - 4 components per vertex) (shader-location = 3). (unsigned char *) */
colors: Buffer
/** Vertex indices (in case vertex data comes indexed). (unsigned short *) */
indices: number
/** Animated vertex positions (after bones transformations). (float *) */
animVertices: number
/** Animated normals (after bones transformations). (float *) */
animNormals: number
/** Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning). (unsigned char *) */
boneIds: Buffer
/** Vertex bone weight, up to 4 bones influence by vertex (skinning). (float *) */
boneWeights: number
/** OpenGL Vertex Array Object id. (unsigned int) */
vaoId: number
/** OpenGL Vertex Buffer Objects id (default vertex data). (unsigned int *) */
vboId: number
}
/** Shader */
export interface Shader {
/** Shader program id. (unsigned int) */
id: number
/** Shader locations array (RL_MAX_SHADER_LOCATIONS). (int *) */
locs: number
}
/** MaterialMap */
export interface MaterialMap {
/** Material map texture. (Texture) */
texture: Texture
/** Material map color. (Color) */
color: Color
/** Material map value. (float) */
value: number
}
/** Material, includes shader and maps */
export interface Material {
/** Material shader. (Shader) */
shader: Shader
/** Material maps array (MAX_MATERIAL_MAPS). (MaterialMap *) */
maps: number
/** Material generic parameters (if required). (float[4]) */
params: number
}
/** Transform, vertex transformation data */
export interface Transform {
/** Translation. (Vector3) */
translation: Vector3
/** Rotation. (Vector4) */
rotation: Vector4
/** Scale. (Vector3) */
scale: Vector3
}
/** Bone, skeletal animation bone */
export interface BoneInfo {
/** Bone name. (char) */
name: string
/** Bone parent. (char) */
parent: string
}
/** Model, meshes, materials and animation data */
export interface Model {
/** Local transform matrix. (Matrix) */
transform: Matrix
/** Number of meshes. (int) */
meshCount: number
/** Number of materials. (int) */
materialCount: number
/** Meshes array. (Mesh *) */
meshes: number
/** Materials array. (Material *) */
materials: number
/** Mesh material number. (int *) */
meshMaterial: number
/** Number of bones. (int) */
boneCount: number
/** Bones information (skeleton). (BoneInfo *) */
bones: number
/** Bones base transformation (pose). (Transform *) */
bindPose: number
}
/** ModelAnimation */
export interface ModelAnimation {
/** Number of bones. (int) */
boneCount: number
/** Number of animation frames. (int) */
frameCount: number
/** Bones information (skeleton). (BoneInfo *) */
bones: number
/** Poses array by frame. (Transform **) */
framePoses: number
}
/** Ray, ray for raycasting */
export interface Ray {
/** Ray position (origin). (Vector3) */
position: Vector3
/** Ray direction. (Vector3) */
direction: Vector3
}
/** RayCollision, ray hit information */
export interface RayCollision {
/** Did the ray hit something?. (bool) */
hit: boolean
/** Distance to the nearest hit. (float) */
distance: number
/** Point of the nearest hit. (Vector3) */
point: Vector3
/** Surface normal of hit. (Vector3) */
normal: Vector3
}
/** BoundingBox */
export interface BoundingBox {
/** Minimum vertex box-corner. (Vector3) */
min: Vector3
/** Maximum vertex box-corner. (Vector3) */
max: Vector3
}
/** Wave, audio wave data */
export interface Wave {
/** Total number of frames (considering channels). (unsigned int) */
frameCount: number
/** Frequency (samples per second). (unsigned int) */
sampleRate: number
/** Bit depth (bits per sample): 8, 16, 32 (24 not supported). (unsigned int) */
sampleSize: number
/** Number of channels (1-mono, 2-stereo, ...). (unsigned int) */
channels: number
/** Buffer data pointer. (void *) */
data: number
}
/** AudioStream, custom audio stream */
export interface AudioStream {
/** Pointer to internal data used by the audio system. (rAudioBuffer *) */
buffer: number
/** Pointer to internal data processor, useful for audio effects. (rAudioProcessor *) */
processor: number
/** Frequency (samples per second). (unsigned int) */
sampleRate: number
/** Bit depth (bits per sample): 8, 16, 32 (24 not supported). (unsigned int) */
sampleSize: number
/** Number of channels (1-mono, 2-stereo, ...). (unsigned int) */
channels: number
}
/** Sound */
export interface Sound {
/** Audio stream. (AudioStream) */
stream: AudioStream
/** Total number of frames (considering channels). (unsigned int) */
frameCount: number
}
/** Music, audio stream, anything longer than ~10 seconds should be streamed */
export interface Music {
/** Audio stream. (AudioStream) */
stream: AudioStream
/** Total number of frames (considering channels). (unsigned int) */
frameCount: number
/** Music looping enable. (bool) */
looping: boolean
/** Type of music context (audio filetype). (int) */
ctxType: number
/** Audio context data, depends on type. (void *) */
ctxData: number
}
/** VrDeviceInfo, Head-Mounted-Display device parameters */
export interface VrDeviceInfo {
/** Horizontal resolution in pixels. (int) */
hResolution: number
/** Vertical resolution in pixels. (int) */
vResolution: number
/** Horizontal size in meters. (float) */
hScreenSize: number
/** Vertical size in meters. (float) */
vScreenSize: number
/** Screen center in meters. (float) */
vScreenCenter: number
/** Distance between eye and display in meters. (float) */
eyeToScreenDistance: number
/** Lens separation distance in meters. (float) */
lensSeparationDistance: number
/** IPD (distance between pupils) in meters. (float) */
interpupillaryDistance: number
/** Lens distortion constant parameters. (float[4]) */
lensDistortionValues: number
/** Chromatic aberration correction parameters. (float[4]) */
chromaAbCorrection: number
}
/** VrStereoConfig, VR stereo rendering configuration for simulator */
export interface VrStereoConfig {
/** VR projection matrices (per eye). (Matrix[2]) */
projection: number
/** VR view offset matrices (per eye). (Matrix[2]) */
viewOffset: number
/** VR left lens center. (float[2]) */
leftLensCenter: number
/** VR right lens center. (float[2]) */
rightLensCenter: number
/** VR left screen center. (float[2]) */
leftScreenCenter: number
/** VR right screen center. (float[2]) */
rightScreenCenter: number
/** VR distortion scale. (float[2]) */
scale: number
/** VR distortion scale in. (float[2]) */
scaleIn: number
}
/** File path list */
export interface FilePathList {
/** Filepaths max entries. (unsigned int) */
capacity: number
/** Filepaths entries count. (unsigned int) */
count: number
/** Filepaths entries. (char **) */
paths: number
}
/** Dynamic vertex buffers (position + texcoords + colors + indices arrays) */
export interface rlVertexBuffer {
/** Number of elements in the buffer (QUADS). (int) */
elementCount: number
/** Vertex position (XYZ - 3 components per vertex) (shader-location = 0). (float *) */
vertices: number
/** Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1). (float *) */
texcoords: number
/** Vertex colors (RGBA - 4 components per vertex) (shader-location = 3). (unsigned char *) */
colors: Buffer
/** Vertex indices (in case vertex data comes indexed) (6 indices per quad). (unsigned int *) */
indices: number
/** OpenGL Vertex Array Object id. (unsigned int) */
vaoId: number
/** OpenGL Vertex Buffer Objects id (4 types of vertex data). (unsigned int[4]) */
vboId: number
}
/** of those state-change happens (this is done in core module) */
export interface rlDrawCall {
/** Drawing mode: LINES, TRIANGLES, QUADS. (int) */
mode: number
/** Number of vertex of the draw. (int) */
vertexCount: number
/** Number of vertex required for index alignment (LINES, TRIANGLES). (int) */
vertexAlignment: number
/** Texture id to be used on the draw -> Use to create new draw call if changes. (unsigned int) */
textureId: number
}
/** rlRenderBatch type */
export interface rlRenderBatch {
/** Number of vertex buffers (multi-buffering support). (int) */
bufferCount: number
/** Current buffer tracking in case of multi-buffering. (int) */
currentBuffer: number
/** Dynamic buffer(s) for vertex data. (rlVertexBuffer *) */
vertexBuffer: number
/** Draw calls array, depends on textureId. (rlDrawCall *) */
draws: number
/** Draw calls counter. (int) */
drawCounter: number
/** Current depth value for next draw. (float) */
currentDepth: number
}
/** RenderTexture, fbo for texture rendering */
export type RenderTexture2D = RenderTexture
/** Texture, tex data stored in GPU memory (VRAM) */
export type Texture2D = Texture
/** Texture, tex data stored in GPU memory (VRAM) */
export type TextureCubemap = Texture
/** Camera, defines position/orientation in 3d space */
export type Camera = Camera3D | Camera2D
/** Quaternion, same as Vector4 */
export type Quaternion = Vector4
/** 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 window has been initialized successfully */
export function IsWindowReady(): boolean
/** Check if window is currently fullscreen */
export function IsWindowFullscreen(): boolean
/** Check if window is currently hidden (only PLATFORM_DESKTOP) */
export function IsWindowHidden(): boolean
/** Check if window is currently minimized (only PLATFORM_DESKTOP) */
export function IsWindowMinimized(): boolean
/** Check if window is currently maximized (only PLATFORM_DESKTOP) */
export function IsWindowMaximized(): boolean
/** Check if window is currently focused (only PLATFORM_DESKTOP) */
export function IsWindowFocused(): boolean
/** Check if window has been resized last frame */
export function IsWindowResized(): boolean
/** Check if one specific window flag is enabled */
export function IsWindowState(flag: number): boolean
/** Set window configuration state using flags (only PLATFORM_DESKTOP) */
export function SetWindowState(flags: number): void
/** Clear window configuration state flags */
export function ClearWindowState(flags: number): void
/** Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP) */
export function ToggleFullscreen(): void
/** Set window state: maximized, if resizable (only PLATFORM_DESKTOP) */
export function MaximizeWindow(): void
/** Set window state: minimized, if resizable (only PLATFORM_DESKTOP) */
export function MinimizeWindow(): void
/** Set window state: not minimized/maximized (only PLATFORM_DESKTOP) */
export function RestoreWindow(): void
/** Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP) */
export function SetWindowIcon(image: Image): void
/** 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) */
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) */
export function SetWindowMonitor(monitor: number): void
/** Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) */
export function SetWindowMinSize(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
/** Get native window handle */
export function GetWindowHandle(): number
/** Get current screen width */
export function GetScreenWidth(): number
/** Get current screen height */
export function GetScreenHeight(): number
/** Get current render width (it considers HiDPI) */
export function GetRenderWidth(): number
/** Get current render height (it considers HiDPI) */
export function GetRenderHeight(): number
/** Get number of connected monitors */
export function GetMonitorCount(): number
/** Get current connected monitor */
export function GetCurrentMonitor(): number
/** Get specified monitor position */
export function GetMonitorPosition(monitor: number): Vector2
/** Get specified monitor width (current video mode used by monitor) */
export function GetMonitorWidth(monitor: number): number
/** Get specified monitor height (current video mode used by monitor) */
export function GetMonitorHeight(monitor: number): number
/** Get specified monitor physical width in millimetres */
export function GetMonitorPhysicalWidth(monitor: number): number
/** Get specified monitor physical height in millimetres */
export function GetMonitorPhysicalHeight(monitor: number): number
/** Get specified monitor refresh rate */
export function GetMonitorRefreshRate(monitor: number): number
/** Get window position XY on monitor */
export function GetWindowPosition(): Vector2
/** Get window scale DPI factor */
export function GetWindowScaleDPI(): Vector2
/** Get the human-readable, UTF-8 encoded name of the primary monitor */
export function GetMonitorName(monitor: number): string
/** Set clipboard text content */
export function SetClipboardText(text: string): void
/** Get clipboard text content */
export function GetClipboardText(): string
/** Enable waiting for events on EndDrawing(), no automatic event polling */
export function EnableEventWaiting(): void
/** 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
/** Hides cursor */
export function HideCursor(): void
/** Check if cursor is not visible */
export function IsCursorHidden(): boolean
/** Enables cursor (unlock cursor) */
export function EnableCursor(): void
/** Disables cursor (lock cursor) */
export function DisableCursor(): void
/** Check if cursor is on the screen */
export function IsCursorOnScreen(): boolean
/** Set background color (framebuffer clear color) */
export function ClearBackground(color: Color): void
/** Setup canvas (framebuffer) to start drawing */
export function BeginDrawing(): void
/** End canvas drawing and swap buffers (double buffering) */
export function EndDrawing(): void
/** Begin 2D mode with custom camera (2D) */
export function BeginMode2D(camera: Camera2D): void
/** Ends 2D mode with custom camera */
export function EndMode2D(): void
/** Begin 3D mode with custom camera (3D) */
export function BeginMode3D(camera: Camera3D): void
/** Ends 3D mode and returns to default 2D orthographic mode */
export function EndMode3D(): void
/** Begin drawing to render texture */
export function BeginTextureMode(target: RenderTexture): void
/** Ends drawing to render texture */
export function EndTextureMode(): void
/** Begin custom shader drawing */
export function BeginShaderMode(shader: Shader): void
/** End custom shader drawing (use default shader) */
export function EndShaderMode(): void
/** Begin blending mode (alpha, additive, multiplied, subtract, custom) */
export function BeginBlendMode(mode: number): void
/** End blending mode (reset to default: alpha blending) */
export function EndBlendMode(): void
/** Begin scissor mode (define screen area for following drawing) */
export function BeginScissorMode(x: number, y: number, width: number, height: number): void
/** End scissor mode */
export function EndScissorMode(): void
/** End stereo rendering (requires VR simulator) */
export function EndVrStereoMode(): void
/** Load shader from files and bind default locations */
export function LoadShader(vsFileName: string, fsFileName: string): Shader
/** Load shader from code strings and bind default locations */
export function LoadShaderFromMemory(vsCode: string, fsCode: string): Shader
/** Check if a shader is ready */
export function IsShaderReady(shader: Shader): boolean
/** Get shader uniform location */
export function GetShaderLocation(shader: Shader, uniformName: string): number
/** Get shader attribute location */
export function GetShaderLocationAttrib(shader: Shader, attribName: string): number
/** Set shader uniform value (matrix 4x4) */
export function SetShaderValueMatrix(shader: Shader, locIndex: number, mat: Matrix): void
/** Set shader uniform value for texture (sampler2d) */
export function SetShaderValueTexture(shader: Shader, locIndex: number, texture: Texture): void
/** Unload shader from GPU memory (VRAM) */
export function UnloadShader(shader: Shader): void
/** Get a ray trace from mouse position */
export function GetMouseRay(mousePosition: Vector2, camera: Camera3D): Ray
/** Get camera transform matrix (view matrix) */
export function GetCameraMatrix(camera: Camera3D): Matrix
/** Get camera 2d transform matrix */
export function GetCameraMatrix2D(camera: Camera2D): Matrix
/** Get the screen space position for a 3d world space position */
export function GetWorldToScreen(position: Vector3, camera: Camera3D): Vector2
/** Get the world space position for a 2d camera screen space position */
export function GetScreenToWorld2D(position: Vector2, camera: Camera2D): Vector2
/** Get size position for a 3d world space position */
export function GetWorldToScreenEx(position: Vector3, camera: Camera3D, width: number, height: number): Vector2
/** Get the screen space position for a 2d camera world space position */
export function GetWorldToScreen2D(position: Vector2, camera: Camera2D): Vector2
/** 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
/** Set the seed for the random number generator */
export function SetRandomSeed(seed: 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
/** Set the current threshold (minimum) log level */
export function SetTraceLogLevel(logLevel: number): void
/** Internal memory allocator */
export function MemAlloc(size: number): number
/** Internal memory reallocator */
export function MemRealloc(ptr: number, size: number): number
/** 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
/** 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 data to code (.h), returns true on success */
export function ExportDataAsCode(data: Buffer, size: number, fileName: string): boolean
/** Load text data from file (read), returns a '\0' terminated string */
export function LoadFileText(fileName: string): string
/** Unload file text data allocated by LoadFileText() */
export function UnloadFileText(text: string): void
/** Save text data to file (write), string must be '\0' terminated, returns true on success */
export function SaveFileText(fileName: string, text: string): boolean
/** Check if file exists */
export function FileExists(fileName: string): boolean
/** Check if a directory path exists */
export function DirectoryExists(dirPath: string): boolean
/** Check file extension (including point: .png, .wav) */
export function IsFileExtension(fileName: string, ext: string): boolean
/** Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) */
export function GetFileLength(fileName: string): number
/** Get pointer to extension for a filename string (includes dot: '.png') */
export function GetFileExtension(fileName: string): string
/** Get pointer to filename for a path string */
export function GetFileName(filePath: string): string
/** Get filename string without extension (uses static string) */
export function GetFileNameWithoutExt(filePath: string): string
/** Get full path for a given fileName with path (uses static string) */
export function GetDirectoryPath(filePath: string): string
/** Get previous directory path for a given path (uses static string) */
export function GetPrevDirectoryPath(dirPath: string): string
/** Get current working directory (uses static string) */
export function GetWorkingDirectory(): string
/** Get the directory if the running application (uses static string) */
export function GetApplicationDirectory(): string
/** Change working directory, return true on success */
export function ChangeDirectory(dir: string): boolean
/** Check if a given path is a file or a directory */
export function IsPathFile(path: string): boolean
/** Load directory filepaths */
export function LoadDirectoryFiles(dirPath: string): FilePathList
/** Load directory filepaths with extension filtering and recursive directory scan */
export function LoadDirectoryFilesEx(basePath: string, filter: string, scanSubdirs: boolean): FilePathList
/** Unload filepaths */
export function UnloadDirectoryFiles(files: FilePathList): void
/** Check if a file has been dropped into window */
export function IsFileDropped(): boolean
/** Load dropped filepaths */
export function LoadDroppedFiles(): FilePathList
/** Unload dropped filepaths */
export function UnloadDroppedFiles(files: FilePathList): void
/** Get file modification time (last write time) */
export function GetFileModTime(fileName: string): number
/** Compress data (DEFLATE algorithm), memory must be MemFree() */
export function CompressData(data: Buffer, dataSize: number, compDataSize: number): Buffer
/** Decompress data (DEFLATE algorithm), memory must be MemFree() */
export function DecompressData(compData: Buffer, compDataSize: number, dataSize: number): Buffer
/** Encode data to Base64 string, memory must be MemFree() */
export function EncodeDataBase64(data: Buffer, dataSize: number, outputSize: number): string
/** Decode Base64 string data, memory must be MemFree() */
export function DecodeDataBase64(data: Buffer, outputSize: number): Buffer
/** Check if a key has been pressed once */
export function IsKeyPressed(key: number): boolean
/** Check if a key is being pressed */
export function IsKeyDown(key: number): boolean
/** Check if a key has been released once */
export function IsKeyReleased(key: number): boolean
/** 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
/** Check if a gamepad is available */
export function IsGamepadAvailable(gamepad: number): boolean
/** Get gamepad internal name id */
export function GetGamepadName(gamepad: number): string
/** Check if a gamepad button has been pressed once */
export function IsGamepadButtonPressed(gamepad: number, button: number): boolean
/** Check if a gamepad button is being pressed */
export function IsGamepadButtonDown(gamepad: number, button: number): boolean
/** Check if a gamepad button has been released once */
export function IsGamepadButtonReleased(gamepad: number, button: number): boolean
/** Check if a gamepad button is NOT being pressed */
export function IsGamepadButtonUp(gamepad: number, button: number): boolean
/** Get the last gamepad button pressed */
export function GetGamepadButtonPressed(): number
/** Get gamepad axis count for a gamepad */
export function GetGamepadAxisCount(gamepad: number): number
/** Get axis movement value for a gamepad axis */
export function GetGamepadAxisMovement(gamepad: number, axis: number): number
/** Set internal gamepad mappings (SDL_GameControllerDB) */
export function SetGamepadMappings(mappings: string): number
/** Check if a mouse button has been pressed once */
export function IsMouseButtonPressed(button: number): boolean
/** Check if a mouse button is being pressed */
export function IsMouseButtonDown(button: number): boolean
/** Check if a mouse button has been released once */
export function IsMouseButtonReleased(button: number): boolean
/** Check if a mouse button is NOT being pressed */
export function IsMouseButtonUp(button: number): boolean
/** Get mouse position X */
export function GetMouseX(): number
/** Get mouse position Y */
export function GetMouseY(): number
/** Get mouse position XY */
export function GetMousePosition(): Vector2
/** Get mouse delta between frames */
export function GetMouseDelta(): Vector2
/** Set mouse position XY */
export function SetMousePosition(x: number, y: number): void
/** Set mouse offset */
export function SetMouseOffset(offsetX: number, offsetY: number): void
/** Set mouse scaling */
export function SetMouseScale(scaleX: number, scaleY: number): void
/** Get mouse wheel movement for X or Y, whichever is larger */
export function GetMouseWheelMove(): number
/** Get mouse wheel movement for both X and Y */
export function GetMouseWheelMoveV(): Vector2
/** Set mouse cursor */
export function SetMouseCursor(cursor: number): void
/** Get touch position X for touch point 0 (relative to screen size) */
export function GetTouchX(): number
/** Get touch position Y for touch point 0 (relative to screen size) */
export function GetTouchY(): number
/** Get touch position XY for a touch point index (relative to screen size) */
export function GetTouchPosition(index: number): Vector2
/** Get touch point identifier for given index */
export function GetTouchPointId(index: number): number
/** Get number of touch points */
export function GetTouchPointCount(): number
/** Enable a set of gestures using flags */
export function SetGesturesEnabled(flags: number): void
/** Check if a gesture have been detected */
export function IsGestureDetected(gesture: number): boolean
/** Get latest detected gesture */
export function GetGestureDetected(): number
/** Get gesture hold time in milliseconds */
export function GetGestureHoldDuration(): number
/** Get gesture drag vector */
export function GetGestureDragVector(): Vector2
/** Get gesture drag angle */
export function GetGestureDragAngle(): number
/** Get gesture pinch delta */
export function GetGesturePinchVector(): Vector2
/** Get gesture pinch angle */
export function GetGesturePinchAngle(): number
/** Update camera position for selected mode */
export function UpdateCamera(camera: Camera3D, mode: number): void
/** Update camera movement/rotation */
export function UpdateCameraPro(camera: number, movement: Vector3, rotation: Vector3, zoom: number): void
/** Set texture and rectangle to be used on shapes drawing */
export function SetShapesTexture(texture: Texture, source: Rectangle): void
/** Draw a pixel */
export function DrawPixel(posX: number, posY: number, color: Color): void
/** Draw a pixel (Vector version) */
export function DrawPixelV(position: Vector2, color: Color): void
/** Draw a line */
export function DrawLine(startPosX: number, startPosY: number, endPosX: number, endPosY: number, color: Color): void
/** Draw a line (Vector version) */
export function DrawLineV(startPos: Vector2, endPos: Vector2, color: Color): void
/** Draw a line defining thickness */
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 */
export function DrawLineStrip(points: number, pointCount: number, color: Color): void
/** Draw a color-filled circle */
export function DrawCircle(centerX: number, centerY: number, radius: number, color: Color): void
/** Draw a piece of a circle */
export function DrawCircleSector(center: Vector2, radius: number, startAngle: number, endAngle: number, segments: number, color: Color): void
/** Draw circle sector outline */
export function DrawCircleSectorLines(center: Vector2, radius: number, startAngle: number, endAngle: number, segments: number, color: Color): void
/** Draw a gradient-filled circle */
export function DrawCircleGradient(centerX: number, centerY: number, radius: number, color1: Color, color2: Color): void
/** Draw a color-filled circle (Vector version) */
export function DrawCircleV(center: Vector2, radius: number, color: Color): void
/** Draw circle outline */
export function DrawCircleLines(centerX: number, centerY: number, radius: number, color: Color): void
/** Draw ellipse */
export function DrawEllipse(centerX: number, centerY: number, radiusH: number, radiusV: number, color: Color): void
/** Draw ellipse outline */
export function DrawEllipseLines(centerX: number, centerY: number, radiusH: number, radiusV: number, color: Color): void
/** Draw ring */
export function DrawRing(center: Vector2, innerRadius: number, outerRadius: number, startAngle: number, endAngle: number, segments: number, color: Color): void
/** Draw ring outline */
export function DrawRingLines(center: Vector2, innerRadius: number, outerRadius: number, startAngle: number, endAngle: number, segments: number, color: Color): void
/** Draw a color-filled rectangle */
export function DrawRectangle(posX: number, posY: number, width: number, height: number, color: Color): void
/** Draw a color-filled rectangle (Vector version) */
export function DrawRectangleV(position: Vector2, size: Vector2, color: Color): void
/** Draw a color-filled rectangle */
export function DrawRectangleRec(rec: Rectangle, color: Color): void
/** Draw a color-filled rectangle with pro parameters */
export function DrawRectanglePro(rec: Rectangle, origin: Vector2, rotation: number, color: Color): void
/** Draw a vertical-gradient-filled rectangle */
export function DrawRectangleGradientV(posX: number, posY: number, width: number, height: number, color1: Color, color2: Color): void
/** Draw a horizontal-gradient-filled rectangle */
export function DrawRectangleGradientH(posX: number, posY: number, width: number, height: number, color1: Color, color2: Color): void
/** Draw a gradient-filled rectangle with custom vertex colors */
export function DrawRectangleGradientEx(rec: Rectangle, col1: Color, col2: Color, col3: Color, col4: Color): void
/** Draw rectangle outline */
export function DrawRectangleLines(posX: number, posY: number, width: number, height: number, color: Color): void
/** Draw rectangle outline with extended parameters */
export function DrawRectangleLinesEx(rec: Rectangle, lineThick: number, color: Color): void
/** Draw rectangle with rounded edges */
export function DrawRectangleRounded(rec: Rectangle, roundness: number, segments: number, color: Color): void
/** Draw rectangle with rounded edges outline */
export function DrawRectangleRoundedLines(rec: Rectangle, roundness: number, segments: number, lineThick: number, color: Color): void
/** Draw a color-filled triangle (vertex in counter-clockwise order!) */
export function DrawTriangle(v1: Vector2, v2: Vector2, v3: Vector2, color: Color): void
/** Draw triangle outline (vertex in counter-clockwise order!) */
export function DrawTriangleLines(v1: Vector2, v2: Vector2, v3: Vector2, color: Color): void
/** Draw a triangle fan defined by points (first vertex is the center) */
export function DrawTriangleFan(points: number, pointCount: number, color: Color): void
/** Draw a triangle strip defined by points */
export function DrawTriangleStrip(points: number, pointCount: number, color: Color): void
/** Draw a regular polygon (Vector version) */
export function DrawPoly(center: Vector2, sides: number, radius: number, rotation: number, color: Color): void
/** Draw a polygon outline of n sides */
export function DrawPolyLines(center: Vector2, sides: number, radius: number, rotation: number, color: Color): void
/** 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
/** Check collision between two rectangles */
export function CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle): boolean
/** Check collision between two circles */
export function CheckCollisionCircles(center1: Vector2, radius1: number, center2: Vector2, radius2: number): boolean
/** Check collision between circle and rectangle */
export function CheckCollisionCircleRec(center: Vector2, radius: number, rec: Rectangle): boolean
/** Check if point is inside rectangle */
export function CheckCollisionPointRec(point: Vector2, rec: Rectangle): boolean
/** Check if point is inside circle */
export function CheckCollisionPointCircle(point: Vector2, center: Vector2, radius: number): boolean
/** Check if point is inside a triangle */
export function CheckCollisionPointTriangle(point: Vector2, p1: Vector2, p2: Vector2, p3: Vector2): boolean
/** Check if point is within a polygon described by array of vertices */
export function CheckCollisionPointPoly(point: Vector2, points: number, pointCount: number): boolean
/** Check the collision between two lines defined by two points each, returns collision point by reference */
export function CheckCollisionLines(startPos1: Vector2, endPos1: Vector2, startPos2: Vector2, endPos2: Vector2, collisionPoint: number): boolean
/** Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] */
export function CheckCollisionPointLine(point: Vector2, p1: Vector2, p2: Vector2, threshold: number): boolean
/** Get collision rectangle for two rectangles collision */
export function GetCollisionRec(rec1: Rectangle, rec2: Rectangle): Rectangle
/** Load image from file into CPU memory (RAM) */
export function LoadImage(fileName: string): Image
/** Load image from RAW file data */
export function LoadImageRaw(fileName: string, width: number, height: number, format: number, headerSize: number): Image
/** Load image sequence from file (frames appended to image.data) */
export function LoadImageAnim(fileName: string, frames: number): Image
/** Load image from memory buffer, fileType refers to extension: i.e. '.png' */
export function LoadImageFromMemory(fileType: string, fileData: Buffer, dataSize: number): Image
/** Load image from GPU texture data */
export function LoadImageFromTexture(texture: Texture): Image
/** Load image from screen buffer and (screenshot) */
export function LoadImageFromScreen(): Image
/** Check if an image is ready */
export function IsImageReady(image: Image): boolean
/** Unload image from CPU memory (RAM) */
export function UnloadImage(image: Image): void
/** Export image data to file, returns true on success */
export function ExportImage(image: Image, fileName: string): boolean
/** 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: radial gradient */
export function GenImageGradientRadial(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
/** Generate image: white noise */
export function GenImageWhiteNoise(width: number, height: number, factor: number): Image
/** Generate image: perlin noise */
export function GenImagePerlinNoise(width: number, height: number, offsetX: number, offsetY: number, scale: number): Image
/** Generate image: cellular algorithm, bigger tileSize means bigger cells */
export function GenImageCellular(width: number, height: number, tileSize: number): Image
/** Generate image: grayscale image from text data */
export function GenImageText(width: number, height: number, text: string): Image
/** Create an image duplicate (useful for transformations) */
export function ImageCopy(image: Image): Image
/** Create an image from another image piece */
export function ImageFromImage(image: Image, rec: Rectangle): Image
/** Create an image from text (default font) */
export function ImageText(text: string, fontSize: number, color: Color): Image
/** Create an image from text (custom sprite font) */
export function ImageTextEx(font: Font, text: string, fontSize: number, spacing: number, tint: Color): Image
/** Convert image data to desired format */
export function ImageFormat(image: Image, newFormat: number): void
/** Convert image to POT (power-of-two) */
export function ImageToPOT(image: Image, fill: Color): void
/** Crop an image to a defined rectangle */
export function ImageCrop(image: Image, crop: Rectangle): void
/** Crop image depending on alpha value */
export function ImageAlphaCrop(image: Image, threshold: number): void
/** Clear alpha channel to desired color */
export function ImageAlphaClear(image: Image, color: Color, threshold: number): void
/** Apply alpha mask to image */
export function ImageAlphaMask(image: Image, alphaMask: Image): void
/** Premultiply alpha channel */
export function ImageAlphaPremultiply(image: Image): void
/** Apply Gaussian blur using a box blur approximation */
export function ImageBlurGaussian(image: number, blurSize: number): void
/** Resize image (Bicubic scaling algorithm) */
export function ImageResize(image: Image, newWidth: number, newHeight: number): void
/** Resize image (Nearest-Neighbor scaling algorithm) */
export function ImageResizeNN(image: Image, newWidth: number, newHeight: number): void
/** Resize canvas and fill with color */
export function ImageResizeCanvas(image: Image, newWidth: number, newHeight: number, offsetX: number, offsetY: number, fill: Color): void
/** Compute all mipmap levels for a provided image */
export function ImageMipmaps(image: Image): void
/** Dither image data to 16bpp or lower (Floyd-Steinberg dithering) */
export function ImageDither(image: Image, rBpp: number, gBpp: number, bBpp: number, aBpp: number): void
/** Flip image vertically */
export function ImageFlipVertical(image: Image): void
/** Flip image horizontally */
export function ImageFlipHorizontal(image: Image): void
/** Rotate image clockwise 90deg */
export function ImageRotateCW(image: Image): void
/** Rotate image counter-clockwise 90deg */
export function ImageRotateCCW(image: Image): void
/** Modify image color: tint */
export function ImageColorTint(image: Image, color: Color): void
/** Modify image color: invert */
export function ImageColorInvert(image: Image): void
/** Modify image color: grayscale */
export function ImageColorGrayscale(image: Image): void
/** Modify image color: contrast (-100 to 100) */
export function ImageColorContrast(image: Image, contrast: number): void