diff --git a/tools/rlparser/output/raylib_api.js b/tools/rlparser/output/raylib_api.js new file mode 100644 index 000000000..90008764f --- /dev/null +++ b/tools/rlparser/output/raylib_api.js @@ -0,0 +1,8525 @@ +export default { + defines: [ + { + name: "RAYLIB_H", + type: "GUARD", + value: "", + description: "" + }, + { + name: "RAYLIB_VERSION_MAJOR", + type: "INT", + value: 6, + description: "" + }, + { + name: "RAYLIB_VERSION_MINOR", + type: "INT", + value: 1, + description: "" + }, + { + name: "RAYLIB_VERSION_PATCH", + type: "INT", + value: 0, + description: "" + }, + { + name: "RAYLIB_VERSION", + type: "STRING", + value: "6.1-dev", + description: "" + }, + { + name: "__declspec(x)", + type: "MACRO", + value: "__attribute__((x))", + description: "" + }, + { + name: "RLAPI", + type: "UNKNOWN", + value: "__declspec(dllexport)", + description: "Building the library as a Win32 shared library (.dll)" + }, + { + name: "PI", + type: "FLOAT", + value: 3.14159265358979323846, + description: "" + }, + { + name: "DEG2RAD", + type: "FLOAT_MATH", + value: "(PI/180.0f)", + description: "" + }, + { + name: "RAD2DEG", + type: "FLOAT_MATH", + value: "(180.0f/PI)", + description: "" + }, + { + name: "RL_MALLOC(sz)", + type: "MACRO", + value: "malloc(sz)", + description: "" + }, + { + name: "RL_CALLOC(n,sz)", + type: "MACRO", + value: "calloc(n,sz)", + description: "" + }, + { + name: "RL_REALLOC(ptr,sz)", + type: "MACRO", + value: "realloc(ptr,sz)", + description: "" + }, + { + name: "RL_FREE(ptr)", + type: "MACRO", + value: "free(ptr)", + description: "" + }, + { + name: "CLITERAL(type)", + type: "MACRO", + value: "type", + description: "" + }, + { + name: "RL_COLOR_TYPE", + type: "GUARD", + value: "", + description: "" + }, + { + name: "RL_RECTANGLE_TYPE", + type: "GUARD", + value: "", + description: "" + }, + { + name: "RL_VECTOR2_TYPE", + type: "GUARD", + value: "", + description: "" + }, + { + name: "RL_VECTOR3_TYPE", + type: "GUARD", + value: "", + description: "" + }, + { + name: "RL_VECTOR4_TYPE", + type: "GUARD", + value: "", + description: "" + }, + { + name: "RL_QUATERNION_TYPE", + type: "GUARD", + value: "", + description: "" + }, + { + name: "RL_MATRIX_TYPE", + type: "GUARD", + value: "", + description: "" + }, + { + name: "LIGHTGRAY", + type: "COLOR", + value: "CLITERAL(Color){ 200, 200, 200, 255 }", + description: "Light Gray" + }, + { + name: "GRAY", + type: "COLOR", + value: "CLITERAL(Color){ 130, 130, 130, 255 }", + description: "Gray" + }, + { + name: "DARKGRAY", + type: "COLOR", + value: "CLITERAL(Color){ 80, 80, 80, 255 }", + description: "Dark Gray" + }, + { + name: "YELLOW", + type: "COLOR", + value: "CLITERAL(Color){ 253, 249, 0, 255 }", + description: "Yellow" + }, + { + name: "GOLD", + type: "COLOR", + value: "CLITERAL(Color){ 255, 203, 0, 255 }", + description: "Gold" + }, + { + name: "ORANGE", + type: "COLOR", + value: "CLITERAL(Color){ 255, 161, 0, 255 }", + description: "Orange" + }, + { + name: "PINK", + type: "COLOR", + value: "CLITERAL(Color){ 255, 109, 194, 255 }", + description: "Pink" + }, + { + name: "RED", + type: "COLOR", + value: "CLITERAL(Color){ 230, 41, 55, 255 }", + description: "Red" + }, + { + name: "MAROON", + type: "COLOR", + value: "CLITERAL(Color){ 190, 33, 55, 255 }", + description: "Maroon" + }, + { + name: "GREEN", + type: "COLOR", + value: "CLITERAL(Color){ 0, 228, 48, 255 }", + description: "Green" + }, + { + name: "LIME", + type: "COLOR", + value: "CLITERAL(Color){ 0, 158, 47, 255 }", + description: "Lime" + }, + { + name: "DARKGREEN", + type: "COLOR", + value: "CLITERAL(Color){ 0, 117, 44, 255 }", + description: "Dark Green" + }, + { + name: "SKYBLUE", + type: "COLOR", + value: "CLITERAL(Color){ 102, 191, 255, 255 }", + description: "Sky Blue" + }, + { + name: "BLUE", + type: "COLOR", + value: "CLITERAL(Color){ 0, 121, 241, 255 }", + description: "Blue" + }, + { + name: "DARKBLUE", + type: "COLOR", + value: "CLITERAL(Color){ 0, 82, 172, 255 }", + description: "Dark Blue" + }, + { + name: "PURPLE", + type: "COLOR", + value: "CLITERAL(Color){ 200, 122, 255, 255 }", + description: "Purple" + }, + { + name: "VIOLET", + type: "COLOR", + value: "CLITERAL(Color){ 135, 60, 190, 255 }", + description: "Violet" + }, + { + name: "DARKPURPLE", + type: "COLOR", + value: "CLITERAL(Color){ 112, 31, 126, 255 }", + description: "Dark Purple" + }, + { + name: "BEIGE", + type: "COLOR", + value: "CLITERAL(Color){ 211, 176, 131, 255 }", + description: "Beige" + }, + { + name: "BROWN", + type: "COLOR", + value: "CLITERAL(Color){ 127, 106, 79, 255 }", + description: "Brown" + }, + { + name: "DARKBROWN", + type: "COLOR", + value: "CLITERAL(Color){ 76, 63, 47, 255 }", + description: "Dark Brown" + }, + { + name: "WHITE", + type: "COLOR", + value: "CLITERAL(Color){ 255, 255, 255, 255 }", + description: "White" + }, + { + name: "BLACK", + type: "COLOR", + value: "CLITERAL(Color){ 0, 0, 0, 255 }", + description: "Black" + }, + { + name: "BLANK", + type: "COLOR", + value: "CLITERAL(Color){ 0, 0, 0, 0 }", + description: "Blank (Transparent)" + }, + { + name: "MAGENTA", + type: "COLOR", + value: "CLITERAL(Color){ 255, 0, 255, 255 }", + description: "Magenta" + }, + { + name: "RAYWHITE", + type: "COLOR", + value: "CLITERAL(Color){ 245, 245, 245, 255 }", + description: "My own White (raylib logo)" + }, + { + name: "RL_BOOL_TYPE", + type: "GUARD", + value: "", + description: "" + }, + { + name: "MOUSE_LEFT_BUTTON", + type: "UNKNOWN", + value: "MOUSE_BUTTON_LEFT", + description: "" + }, + { + name: "MOUSE_RIGHT_BUTTON", + type: "UNKNOWN", + value: "MOUSE_BUTTON_RIGHT", + description: "" + }, + { + name: "MOUSE_MIDDLE_BUTTON", + type: "UNKNOWN", + value: "MOUSE_BUTTON_MIDDLE", + description: "" + }, + { + name: "MATERIAL_MAP_DIFFUSE", + type: "UNKNOWN", + value: "MATERIAL_MAP_ALBEDO", + description: "" + }, + { + name: "MATERIAL_MAP_SPECULAR", + type: "UNKNOWN", + value: "MATERIAL_MAP_METALNESS", + description: "" + }, + { + name: "SHADER_LOC_MAP_DIFFUSE", + type: "UNKNOWN", + value: "SHADER_LOC_MAP_ALBEDO", + description: "" + }, + { + name: "SHADER_LOC_MAP_SPECULAR", + type: "UNKNOWN", + value: "SHADER_LOC_MAP_METALNESS", + description: "" + }, + { + name: "GetMouseRay", + type: "UNKNOWN", + value: "GetScreenToWorldRay", + description: "Compatibility hack for previous raylib versions" + } + ], + structs: [ + { + name: "Vector2", + description: "Vector2, 2 components", + fields: [ + { + type: "float", + name: "x", + description: "Vector x component" + }, + { + type: "float", + name: "y", + description: "Vector y component" + } + ] + }, + { + name: "Vector3", + description: "Vector3, 3 components", + fields: [ + { + type: "float", + name: "x", + description: "Vector x component" + }, + { + type: "float", + name: "y", + description: "Vector y component" + }, + { + type: "float", + name: "z", + description: "Vector z component" + } + ] + }, + { + name: "Vector4", + description: "Vector4, 4 components", + fields: [ + { + type: "float", + name: "x", + description: "Vector x component" + }, + { + type: "float", + name: "y", + description: "Vector y component" + }, + { + type: "float", + name: "z", + description: "Vector z component" + }, + { + type: "float", + name: "w", + description: "Vector w component" + } + ] + }, + { + name: "Matrix", + description: "Matrix, 4x4 components, column major, OpenGL style, right-handed", + fields: [ + { + type: "float", + name: "m0", + description: "Matrix first row (4 components)" + }, + { + type: "float", + name: "m4", + description: "Matrix first row (4 components)" + }, + { + type: "float", + name: "m8", + description: "Matrix first row (4 components)" + }, + { + type: "float", + name: "m12", + description: "Matrix first row (4 components)" + }, + { + type: "float", + name: "m1", + description: "Matrix second row (4 components)" + }, + { + type: "float", + name: "m5", + description: "Matrix second row (4 components)" + }, + { + type: "float", + name: "m9", + description: "Matrix second row (4 components)" + }, + { + type: "float", + name: "m13", + description: "Matrix second row (4 components)" + }, + { + type: "float", + name: "m2", + description: "Matrix third row (4 components)" + }, + { + type: "float", + name: "m6", + description: "Matrix third row (4 components)" + }, + { + type: "float", + name: "m10", + description: "Matrix third row (4 components)" + }, + { + type: "float", + name: "m14", + description: "Matrix third row (4 components)" + }, + { + type: "float", + name: "m3", + description: "Matrix fourth row (4 components)" + }, + { + type: "float", + name: "m7", + description: "Matrix fourth row (4 components)" + }, + { + type: "float", + name: "m11", + description: "Matrix fourth row (4 components)" + }, + { + type: "float", + name: "m15", + description: "Matrix fourth row (4 components)" + } + ] + }, + { + name: "Color", + description: "Color, 4 components, R8G8B8A8 (32bit)", + fields: [ + { + type: "unsigned char", + name: "r", + description: "Color red value" + }, + { + type: "unsigned char", + name: "g", + description: "Color green value" + }, + { + type: "unsigned char", + name: "b", + description: "Color blue value" + }, + { + type: "unsigned char", + name: "a", + description: "Color alpha value" + } + ] + }, + { + name: "Rectangle", + description: "Rectangle, 4 components", + fields: [ + { + type: "float", + name: "x", + description: "Rectangle top-left corner position x" + }, + { + type: "float", + name: "y", + description: "Rectangle top-left corner position y" + }, + { + type: "float", + name: "width", + description: "Rectangle width" + }, + { + type: "float", + name: "height", + description: "Rectangle height" + } + ] + }, + { + name: "Image", + description: "Image, pixel data stored in CPU memory (RAM)", + fields: [ + { + type: "void *", + name: "data", + description: "Image raw data" + }, + { + type: "int", + name: "width", + description: "Image base width" + }, + { + type: "int", + name: "height", + description: "Image base height" + }, + { + type: "int", + name: "mipmaps", + description: "Mipmap levels, 1 by default" + }, + { + type: "int", + name: "format", + description: "Data format (PixelFormat type)" + } + ] + }, + { + name: "Texture", + description: "Texture, tex data stored in GPU memory (VRAM)", + fields: [ + { + type: "unsigned int", + name: "id", + description: "OpenGL texture id" + }, + { + type: "int", + name: "width", + description: "Texture base width" + }, + { + type: "int", + name: "height", + description: "Texture base height" + }, + { + type: "int", + name: "mipmaps", + description: "Mipmap levels, 1 by default" + }, + { + type: "int", + name: "format", + description: "Data format (PixelFormat type)" + } + ] + }, + { + name: "RenderTexture", + description: "RenderTexture, fbo for texture rendering", + fields: [ + { + type: "unsigned int", + name: "id", + description: "OpenGL framebuffer object id" + }, + { + type: "Texture", + name: "texture", + description: "Color buffer attachment texture" + }, + { + type: "Texture", + name: "depth", + description: "Depth buffer attachment texture" + } + ] + }, + { + name: "NPatchInfo", + description: "NPatchInfo, n-patch layout info", + fields: [ + { + type: "Rectangle", + name: "source", + description: "Texture source rectangle" + }, + { + type: "int", + name: "left", + description: "Left border offset" + }, + { + type: "int", + name: "top", + description: "Top border offset" + }, + { + type: "int", + name: "right", + description: "Right border offset" + }, + { + type: "int", + name: "bottom", + description: "Bottom border offset" + }, + { + type: "int", + name: "layout", + description: "Layout of the n-patch: 3x3, 1x3 or 3x1" + } + ] + }, + { + name: "GlyphInfo", + description: "GlyphInfo, font characters glyphs info", + fields: [ + { + type: "int", + name: "value", + description: "Character value (Unicode)" + }, + { + type: "int", + name: "offsetX", + description: "Character offset X when drawing" + }, + { + type: "int", + name: "offsetY", + description: "Character offset Y when drawing" + }, + { + type: "int", + name: "advanceX", + description: "Character advance position X" + }, + { + type: "Image", + name: "image", + description: "Character image data" + } + ] + }, + { + name: "Font", + description: "Font, font texture and GlyphInfo array data", + fields: [ + { + type: "int", + name: "baseSize", + description: "Base size (default chars height)" + }, + { + type: "int", + name: "glyphCount", + description: "Number of glyph characters" + }, + { + type: "int", + name: "glyphPadding", + description: "Padding around the glyph characters" + }, + { + type: "Texture2D", + name: "texture", + description: "Texture atlas containing the glyphs" + }, + { + type: "Rectangle *", + name: "recs", + description: "Rectangles in texture for the glyphs" + }, + { + type: "GlyphInfo *", + name: "glyphs", + description: "Glyphs info data" + } + ] + }, + { + name: "Camera3D", + description: "Camera, defines position/orientation in 3d space", + fields: [ + { + type: "Vector3", + name: "position", + description: "Camera position" + }, + { + type: "Vector3", + name: "target", + description: "Camera target it looks-at" + }, + { + type: "Vector3", + name: "up", + description: "Camera up vector (rotation over its axis)" + }, + { + type: "float", + name: "fovy", + description: "Camera field-of-view aperture in Y (degrees) in perspective, used as near plane height in world units in orthographic" + }, + { + type: "int", + name: "projection", + description: "Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC" + } + ] + }, + { + name: "Camera2D", + description: "Camera2D, defines position/orientation in 2d space", + fields: [ + { + type: "Vector2", + name: "offset", + description: "Camera offset (screen space offset from window origin)" + }, + { + type: "Vector2", + name: "target", + description: "Camera target (world space target point that is mapped to screen space offset)" + }, + { + type: "float", + name: "rotation", + description: "Camera rotation in degrees (pivots around target)" + }, + { + type: "float", + name: "zoom", + description: "Camera zoom (scaling around target), must not be set to 0, set to 1.0f for no scale" + } + ] + }, + { + name: "Mesh", + description: "Mesh, vertex data and vao/vbo", + fields: [ + { + type: "int", + name: "vertexCount", + description: "Number of vertices stored in arrays" + }, + { + type: "int", + name: "triangleCount", + description: "Number of triangles stored (indexed or not)" + }, + { + type: "float *", + name: "vertices", + description: "Vertex position (XYZ - 3 components per vertex) (shader-location = 0)" + }, + { + type: "float *", + name: "texcoords", + description: "Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)" + }, + { + type: "float *", + name: "texcoords2", + description: "Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5)" + }, + { + type: "float *", + name: "normals", + description: "Vertex normals (XYZ - 3 components per vertex) (shader-location = 2)" + }, + { + type: "float *", + name: "tangents", + description: "Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4)" + }, + { + type: "unsigned char *", + name: "colors", + description: "Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)" + }, + { + type: "unsigned short *", + name: "indices", + description: "Vertex indices (in case vertex data comes indexed)" + }, + { + type: "int", + name: "boneCount", + description: "Number of bones (MAX: 256 bones)" + }, + { + type: "unsigned char *", + name: "boneIndices", + description: "Vertex bone indices, up to 4 bones influence by vertex (skinning) (shader-location = 6)" + }, + { + type: "float *", + name: "boneWeights", + description: "Vertex bone weight, up to 4 bones influence by vertex (skinning) (shader-location = 7)" + }, + { + type: "float *", + name: "animVertices", + description: "Animated vertex positions (after bones transformations)" + }, + { + type: "float *", + name: "animNormals", + description: "Animated normals (after bones transformations)" + }, + { + type: "unsigned int", + name: "vaoId", + description: "OpenGL Vertex Array Object id" + }, + { + type: "unsigned int *", + name: "vboId", + description: "OpenGL Vertex Buffer Objects id (default vertex data)" + } + ] + }, + { + name: "Shader", + description: "Shader", + fields: [ + { + type: "unsigned int", + name: "id", + description: "Shader program id" + }, + { + type: "int *", + name: "locs", + description: "Shader locations array (RL_MAX_SHADER_LOCATIONS)" + } + ] + }, + { + name: "MaterialMap", + description: "MaterialMap", + fields: [ + { + type: "Texture2D", + name: "texture", + description: "Material map texture" + }, + { + type: "Color", + name: "color", + description: "Material map color" + }, + { + type: "float", + name: "value", + description: "Material map value" + } + ] + }, + { + name: "Material", + description: "Material, includes shader and maps", + fields: [ + { + type: "Shader", + name: "shader", + description: "Material shader" + }, + { + type: "MaterialMap *", + name: "maps", + description: "Material maps array (MAX_MATERIAL_MAPS)" + }, + { + type: "float[4]", + name: "params", + description: "Material generic parameters (if required)" + } + ] + }, + { + name: "Transform", + description: "Transform, vertex transformation data", + fields: [ + { + type: "Vector3", + name: "translation", + description: "Translation" + }, + { + type: "Quaternion", + name: "rotation", + description: "Rotation" + }, + { + type: "Vector3", + name: "scale", + description: "Scale" + } + ] + }, + { + name: "BoneInfo", + description: "Bone, skeletal animation bone", + fields: [ + { + type: "char[32]", + name: "name", + description: "Bone name" + }, + { + type: "int", + name: "parent", + description: "Bone parent" + } + ] + }, + { + name: "ModelSkeleton", + description: "Skeleton, animation bones hierarchy", + fields: [ + { + type: "int", + name: "boneCount", + description: "Number of bones" + }, + { + type: "BoneInfo *", + name: "bones", + description: "Bones information (skeleton)" + }, + { + type: "ModelAnimPose", + name: "bindPose", + description: "Bones base transformation (Transform[])" + } + ] + }, + { + name: "Model", + description: "Model, meshes, materials and animation data", + fields: [ + { + type: "Matrix", + name: "transform", + description: "Local transform matrix" + }, + { + type: "int", + name: "meshCount", + description: "Number of meshes" + }, + { + type: "int", + name: "materialCount", + description: "Number of materials" + }, + { + type: "Mesh *", + name: "meshes", + description: "Meshes array" + }, + { + type: "Material *", + name: "materials", + description: "Materials array" + }, + { + type: "int *", + name: "meshMaterial", + description: "Mesh material number" + }, + { + type: "ModelSkeleton", + name: "skeleton", + description: "Skeleton for animation" + }, + { + type: "ModelAnimPose", + name: "currentPose", + description: "Current animation pose (Transform[])" + }, + { + type: "Matrix *", + name: "boneMatrices", + description: "Bones animated transformation matrices" + } + ] + }, + { + name: "ModelAnimation", + description: "ModelAnimation, contains a full animation sequence", + fields: [ + { + type: "char[32]", + name: "name", + description: "Animation name" + }, + { + type: "int", + name: "boneCount", + description: "Number of bones (per pose)" + }, + { + type: "int", + name: "keyframeCount", + description: "Number of animation key frames" + }, + { + type: "ModelAnimPose *", + name: "keyframePoses", + description: "Animation sequence keyframe poses [keyframe][pose]" + } + ] + }, + { + name: "Ray", + description: "Ray, ray for raycasting", + fields: [ + { + type: "Vector3", + name: "position", + description: "Ray position (origin)" + }, + { + type: "Vector3", + name: "direction", + description: "Ray direction (normalized)" + } + ] + }, + { + name: "RayCollision", + description: "RayCollision, ray hit information", + fields: [ + { + type: "bool", + name: "hit", + description: "Did the ray hit something?" + }, + { + type: "float", + name: "distance", + description: "Distance to the nearest hit" + }, + { + type: "Vector3", + name: "point", + description: "Point of the nearest hit" + }, + { + type: "Vector3", + name: "normal", + description: "Surface normal of hit" + } + ] + }, + { + name: "BoundingBox", + description: "BoundingBox", + fields: [ + { + type: "Vector3", + name: "min", + description: "Minimum vertex box-corner" + }, + { + type: "Vector3", + name: "max", + description: "Maximum vertex box-corner" + } + ] + }, + { + name: "Wave", + description: "Wave, audio wave data", + fields: [ + { + type: "unsigned int", + name: "frameCount", + description: "Total number of frames (considering channels)" + }, + { + type: "unsigned int", + name: "sampleRate", + description: "Frequency (samples per second)" + }, + { + type: "unsigned int", + name: "sampleSize", + description: "Bit depth (bits per sample): 8, 16, 32 (24 not supported)" + }, + { + type: "unsigned int", + name: "channels", + description: "Number of channels (1-mono, 2-stereo, ...)" + }, + { + type: "void *", + name: "data", + description: "Buffer data pointer" + } + ] + }, + { + name: "AudioStream", + description: "AudioStream, custom audio stream", + fields: [ + { + type: "rAudioBuffer *", + name: "buffer", + description: "Pointer to internal data used by the audio system" + }, + { + type: "rAudioProcessor *", + name: "processor", + description: "Pointer to internal data processor, useful for audio effects" + }, + { + type: "unsigned int", + name: "sampleRate", + description: "Frequency (samples per second)" + }, + { + type: "unsigned int", + name: "sampleSize", + description: "Bit depth (bits per sample): 8, 16, 32 (24 not supported)" + }, + { + type: "unsigned int", + name: "channels", + description: "Number of channels (1-mono, 2-stereo, ...)" + } + ] + }, + { + name: "Sound", + description: "Sound", + fields: [ + { + type: "AudioStream", + name: "stream", + description: "Audio stream" + }, + { + type: "unsigned int", + name: "frameCount", + description: "Total number of frames (considering channels)" + } + ] + }, + { + name: "Music", + description: "Music, audio stream, anything longer than ~10 seconds should be streamed", + fields: [ + { + type: "AudioStream", + name: "stream", + description: "Audio stream" + }, + { + type: "unsigned int", + name: "frameCount", + description: "Total number of frames (considering channels)" + }, + { + type: "bool", + name: "looping", + description: "Music looping enable" + }, + { + type: "int", + name: "ctxType", + description: "Type of music context (audio filetype)" + }, + { + type: "void *", + name: "ctxData", + description: "Audio context data, depends on type" + } + ] + }, + { + name: "VrDeviceInfo", + description: "VrDeviceInfo, Head-Mounted-Display device parameters", + fields: [ + { + type: "int", + name: "hResolution", + description: "Horizontal resolution in pixels" + }, + { + type: "int", + name: "vResolution", + description: "Vertical resolution in pixels" + }, + { + type: "float", + name: "hScreenSize", + description: "Horizontal size in meters" + }, + { + type: "float", + name: "vScreenSize", + description: "Vertical size in meters" + }, + { + type: "float", + name: "eyeToScreenDistance", + description: "Distance between eye and display in meters" + }, + { + type: "float", + name: "lensSeparationDistance", + description: "Lens separation distance in meters" + }, + { + type: "float", + name: "interpupillaryDistance", + description: "IPD (distance between pupils) in meters" + }, + { + type: "float[4]", + name: "lensDistortionValues", + description: "Lens distortion constant parameters" + }, + { + type: "float[4]", + name: "chromaAbCorrection", + description: "Chromatic aberration correction parameters" + } + ] + }, + { + name: "VrStereoConfig", + description: "VrStereoConfig, VR stereo rendering configuration for simulator", + fields: [ + { + type: "Matrix[2]", + name: "projection", + description: "VR projection matrices (per eye)" + }, + { + type: "Matrix[2]", + name: "viewOffset", + description: "VR view offset matrices (per eye)" + }, + { + type: "float[2]", + name: "leftLensCenter", + description: "VR left lens center" + }, + { + type: "float[2]", + name: "rightLensCenter", + description: "VR right lens center" + }, + { + type: "float[2]", + name: "leftScreenCenter", + description: "VR left screen center" + }, + { + type: "float[2]", + name: "rightScreenCenter", + description: "VR right screen center" + }, + { + type: "float[2]", + name: "scale", + description: "VR distortion scale" + }, + { + type: "float[2]", + name: "scaleIn", + description: "VR distortion scale in" + } + ] + }, + { + name: "FilePathList", + description: "File path list", + fields: [ + { + type: "unsigned int", + name: "count", + description: "Filepaths entries count" + }, + { + type: "char **", + name: "paths", + description: "Filepaths entries" + } + ] + }, + { + name: "AutomationEvent", + description: "Automation event", + fields: [ + { + type: "unsigned int", + name: "frame", + description: "Event frame" + }, + { + type: "unsigned int", + name: "type", + description: "Event type (AutomationEventType)" + }, + { + type: "int[4]", + name: "params", + description: "Event parameters (if required)" + } + ] + }, + { + name: "AutomationEventList", + description: "Automation event list", + fields: [ + { + type: "unsigned int", + name: "capacity", + description: "Events max entries (MAX_AUTOMATION_EVENTS)" + }, + { + type: "unsigned int", + name: "count", + description: "Events entries count" + }, + { + type: "AutomationEvent *", + name: "events", + description: "Events entries" + } + ] + } + ], + aliases: [ + { + type: "Vector4", + name: "Quaternion", + description: "Quaternion, 4 components (Vector4 alias)" + }, + { + type: "Texture", + name: "Texture2D", + description: "Texture2D, same as Texture" + }, + { + type: "Texture", + name: "TextureCubemap", + description: "TextureCubemap, same as Texture" + }, + { + type: "RenderTexture", + name: "RenderTexture2D", + description: "RenderTexture2D, same as RenderTexture" + }, + { + type: "Camera3D", + name: "Camera", + description: "Camera type fallback, defaults to Camera3D" + }, + { + type: "Transform", + name: "*ModelAnimPose", + description: "Anim pose, an array of Transform[]" + } + ], + enums: [ + { + name: "ConfigFlags", + description: "System/Window config flags", + values: [ + { + name: "FLAG_VSYNC_HINT", + value: 64, + description: "Set to try enabling V-Sync on GPU" + }, + { + name: "FLAG_FULLSCREEN_MODE", + value: 2, + description: "Set to run program in fullscreen" + }, + { + name: "FLAG_WINDOW_RESIZABLE", + value: 4, + description: "Set to allow resizable window" + }, + { + name: "FLAG_WINDOW_UNDECORATED", + value: 8, + description: "Set to disable window decoration (frame and buttons)" + }, + { + name: "FLAG_WINDOW_HIDDEN", + value: 128, + description: "Set to hide window" + }, + { + name: "FLAG_WINDOW_MINIMIZED", + value: 512, + description: "Set to minimize window (iconify)" + }, + { + name: "FLAG_WINDOW_MAXIMIZED", + value: 1024, + description: "Set to maximize window (expanded to monitor)" + }, + { + name: "FLAG_WINDOW_UNFOCUSED", + value: 2048, + description: "Set to window non focused" + }, + { + name: "FLAG_WINDOW_TOPMOST", + value: 4096, + description: "Set to window always on top" + }, + { + name: "FLAG_WINDOW_ALWAYS_RUN", + value: 256, + description: "Set to allow windows running while minimized" + }, + { + name: "FLAG_WINDOW_TRANSPARENT", + value: 16, + description: "Set to allow transparent framebuffer" + }, + { + name: "FLAG_WINDOW_HIGHDPI", + value: 8192, + description: "Set to support HighDPI" + }, + { + name: "FLAG_WINDOW_MOUSE_PASSTHROUGH", + value: 16384, + description: "Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED" + }, + { + name: "FLAG_BORDERLESS_WINDOWED_MODE", + value: 32768, + description: "Set to run program in borderless windowed mode" + }, + { + name: "FLAG_MSAA_4X_HINT", + value: 32, + description: "Set to try enabling MSAA 4X" + }, + { + name: "FLAG_INTERLACED_HINT", + value: 65536, + description: "Set to try enabling interlaced video format (for V3D)" + } + ] + }, + { + name: "TraceLogLevel", + description: "Trace log level", + values: [ + { + name: "LOG_ALL", + value: 0, + description: "Display all logs" + }, + { + name: "LOG_TRACE", + value: 1, + description: "Trace logging, intended for internal use only" + }, + { + name: "LOG_DEBUG", + value: 2, + description: "Debug logging, used for internal debugging, it should be disabled on release builds" + }, + { + name: "LOG_INFO", + value: 3, + description: "Info logging, used for program execution info" + }, + { + name: "LOG_WARNING", + value: 4, + description: "Warning logging, used on recoverable failures" + }, + { + name: "LOG_ERROR", + value: 5, + description: "Error logging, used on unrecoverable failures" + }, + { + name: "LOG_FATAL", + value: 6, + description: "Fatal logging, used to abort program: exit(EXIT_FAILURE)" + }, + { + name: "LOG_NONE", + value: 7, + description: "Disable logging" + } + ] + }, + { + name: "KeyboardKey", + description: "Keyboard keys (US keyboard layout)", + values: [ + { + name: "KEY_NULL", + value: 0, + description: "Key: NULL, used for no key pressed" + }, + { + name: "KEY_APOSTROPHE", + value: 39, + description: "Key: '" + }, + { + name: "KEY_COMMA", + value: 44, + description: "Key: ," + }, + { + name: "KEY_MINUS", + value: 45, + description: "Key: -" + }, + { + name: "KEY_PERIOD", + value: 46, + description: "Key: ." + }, + { + name: "KEY_SLASH", + value: 47, + description: "Key: /" + }, + { + name: "KEY_ZERO", + value: 48, + description: "Key: 0" + }, + { + name: "KEY_ONE", + value: 49, + description: "Key: 1" + }, + { + name: "KEY_TWO", + value: 50, + description: "Key: 2" + }, + { + name: "KEY_THREE", + value: 51, + description: "Key: 3" + }, + { + name: "KEY_FOUR", + value: 52, + description: "Key: 4" + }, + { + name: "KEY_FIVE", + value: 53, + description: "Key: 5" + }, + { + name: "KEY_SIX", + value: 54, + description: "Key: 6" + }, + { + name: "KEY_SEVEN", + value: 55, + description: "Key: 7" + }, + { + name: "KEY_EIGHT", + value: 56, + description: "Key: 8" + }, + { + name: "KEY_NINE", + value: 57, + description: "Key: 9" + }, + { + name: "KEY_SEMICOLON", + value: 59, + description: "Key: ;" + }, + { + name: "KEY_EQUAL", + value: 61, + description: "Key: =" + }, + { + name: "KEY_A", + value: 65, + description: "Key: A | a" + }, + { + name: "KEY_B", + value: 66, + description: "Key: B | b" + }, + { + name: "KEY_C", + value: 67, + description: "Key: C | c" + }, + { + name: "KEY_D", + value: 68, + description: "Key: D | d" + }, + { + name: "KEY_E", + value: 69, + description: "Key: E | e" + }, + { + name: "KEY_F", + value: 70, + description: "Key: F | f" + }, + { + name: "KEY_G", + value: 71, + description: "Key: G | g" + }, + { + name: "KEY_H", + value: 72, + description: "Key: H | h" + }, + { + name: "KEY_I", + value: 73, + description: "Key: I | i" + }, + { + name: "KEY_J", + value: 74, + description: "Key: J | j" + }, + { + name: "KEY_K", + value: 75, + description: "Key: K | k" + }, + { + name: "KEY_L", + value: 76, + description: "Key: L | l" + }, + { + name: "KEY_M", + value: 77, + description: "Key: M | m" + }, + { + name: "KEY_N", + value: 78, + description: "Key: N | n" + }, + { + name: "KEY_O", + value: 79, + description: "Key: O | o" + }, + { + name: "KEY_P", + value: 80, + description: "Key: P | p" + }, + { + name: "KEY_Q", + value: 81, + description: "Key: Q | q" + }, + { + name: "KEY_R", + value: 82, + description: "Key: R | r" + }, + { + name: "KEY_S", + value: 83, + description: "Key: S | s" + }, + { + name: "KEY_T", + value: 84, + description: "Key: T | t" + }, + { + name: "KEY_U", + value: 85, + description: "Key: U | u" + }, + { + name: "KEY_V", + value: 86, + description: "Key: V | v" + }, + { + name: "KEY_W", + value: 87, + description: "Key: W | w" + }, + { + name: "KEY_X", + value: 88, + description: "Key: X | x" + }, + { + name: "KEY_Y", + value: 89, + description: "Key: Y | y" + }, + { + name: "KEY_Z", + value: 90, + description: "Key: Z | z" + }, + { + name: "KEY_LEFT_BRACKET", + value: 91, + description: "Key: [" + }, + { + name: "KEY_BACKSLASH", + value: 92, + description: "Key: '\\'" + }, + { + name: "KEY_RIGHT_BRACKET", + value: 93, + description: "Key: ]" + }, + { + name: "KEY_GRAVE", + value: 96, + description: "Key: `" + }, + { + name: "KEY_SPACE", + value: 32, + description: "Key: Space" + }, + { + name: "KEY_ESCAPE", + value: 256, + description: "Key: Esc" + }, + { + name: "KEY_ENTER", + value: 257, + description: "Key: Enter" + }, + { + name: "KEY_TAB", + value: 258, + description: "Key: Tab" + }, + { + name: "KEY_BACKSPACE", + value: 259, + description: "Key: Backspace" + }, + { + name: "KEY_INSERT", + value: 260, + description: "Key: Ins" + }, + { + name: "KEY_DELETE", + value: 261, + description: "Key: Del" + }, + { + name: "KEY_RIGHT", + value: 262, + description: "Key: Cursor right" + }, + { + name: "KEY_LEFT", + value: 263, + description: "Key: Cursor left" + }, + { + name: "KEY_DOWN", + value: 264, + description: "Key: Cursor down" + }, + { + name: "KEY_UP", + value: 265, + description: "Key: Cursor up" + }, + { + name: "KEY_PAGE_UP", + value: 266, + description: "Key: Page up" + }, + { + name: "KEY_PAGE_DOWN", + value: 267, + description: "Key: Page down" + }, + { + name: "KEY_HOME", + value: 268, + description: "Key: Home" + }, + { + name: "KEY_END", + value: 269, + description: "Key: End" + }, + { + name: "KEY_CAPS_LOCK", + value: 280, + description: "Key: Caps lock" + }, + { + name: "KEY_SCROLL_LOCK", + value: 281, + description: "Key: Scroll down" + }, + { + name: "KEY_NUM_LOCK", + value: 282, + description: "Key: Num lock" + }, + { + name: "KEY_PRINT_SCREEN", + value: 283, + description: "Key: Print screen" + }, + { + name: "KEY_PAUSE", + value: 284, + description: "Key: Pause" + }, + { + name: "KEY_F1", + value: 290, + description: "Key: F1" + }, + { + name: "KEY_F2", + value: 291, + description: "Key: F2" + }, + { + name: "KEY_F3", + value: 292, + description: "Key: F3" + }, + { + name: "KEY_F4", + value: 293, + description: "Key: F4" + }, + { + name: "KEY_F5", + value: 294, + description: "Key: F5" + }, + { + name: "KEY_F6", + value: 295, + description: "Key: F6" + }, + { + name: "KEY_F7", + value: 296, + description: "Key: F7" + }, + { + name: "KEY_F8", + value: 297, + description: "Key: F8" + }, + { + name: "KEY_F9", + value: 298, + description: "Key: F9" + }, + { + name: "KEY_F10", + value: 299, + description: "Key: F10" + }, + { + name: "KEY_F11", + value: 300, + description: "Key: F11" + }, + { + name: "KEY_F12", + value: 301, + description: "Key: F12" + }, + { + name: "KEY_LEFT_SHIFT", + value: 340, + description: "Key: Shift left" + }, + { + name: "KEY_LEFT_CONTROL", + value: 341, + description: "Key: Control left" + }, + { + name: "KEY_LEFT_ALT", + value: 342, + description: "Key: Alt left" + }, + { + name: "KEY_LEFT_SUPER", + value: 343, + description: "Key: Super left" + }, + { + name: "KEY_RIGHT_SHIFT", + value: 344, + description: "Key: Shift right" + }, + { + name: "KEY_RIGHT_CONTROL", + value: 345, + description: "Key: Control right" + }, + { + name: "KEY_RIGHT_ALT", + value: 346, + description: "Key: Alt right" + }, + { + name: "KEY_RIGHT_SUPER", + value: 347, + description: "Key: Super right" + }, + { + name: "KEY_KB_MENU", + value: 348, + description: "Key: KB menu" + }, + { + name: "KEY_KP_0", + value: 320, + description: "Key: Keypad 0" + }, + { + name: "KEY_KP_1", + value: 321, + description: "Key: Keypad 1" + }, + { + name: "KEY_KP_2", + value: 322, + description: "Key: Keypad 2" + }, + { + name: "KEY_KP_3", + value: 323, + description: "Key: Keypad 3" + }, + { + name: "KEY_KP_4", + value: 324, + description: "Key: Keypad 4" + }, + { + name: "KEY_KP_5", + value: 325, + description: "Key: Keypad 5" + }, + { + name: "KEY_KP_6", + value: 326, + description: "Key: Keypad 6" + }, + { + name: "KEY_KP_7", + value: 327, + description: "Key: Keypad 7" + }, + { + name: "KEY_KP_8", + value: 328, + description: "Key: Keypad 8" + }, + { + name: "KEY_KP_9", + value: 329, + description: "Key: Keypad 9" + }, + { + name: "KEY_KP_DECIMAL", + value: 330, + description: "Key: Keypad ." + }, + { + name: "KEY_KP_DIVIDE", + value: 331, + description: "Key: Keypad /" + }, + { + name: "KEY_KP_MULTIPLY", + value: 332, + description: "Key: Keypad *" + }, + { + name: "KEY_KP_SUBTRACT", + value: 333, + description: "Key: Keypad -" + }, + { + name: "KEY_KP_ADD", + value: 334, + description: "Key: Keypad +" + }, + { + name: "KEY_KP_ENTER", + value: 335, + description: "Key: Keypad Enter" + }, + { + name: "KEY_KP_EQUAL", + value: 336, + description: "Key: Keypad =" + }, + { + name: "KEY_BACK", + value: 4, + description: "Key: Android back button" + }, + { + name: "KEY_MENU", + value: 5, + description: "Key: Android menu button" + }, + { + name: "KEY_VOLUME_UP", + value: 24, + description: "Key: Android volume up button" + }, + { + name: "KEY_VOLUME_DOWN", + value: 25, + description: "Key: Android volume down button" + } + ] + }, + { + name: "MouseButton", + description: "Mouse buttons", + values: [ + { + name: "MOUSE_BUTTON_LEFT", + value: 0, + description: "Mouse button left" + }, + { + name: "MOUSE_BUTTON_RIGHT", + value: 1, + description: "Mouse button right" + }, + { + name: "MOUSE_BUTTON_MIDDLE", + value: 2, + description: "Mouse button middle (pressed wheel)" + }, + { + name: "MOUSE_BUTTON_SIDE", + value: 3, + description: "Mouse button side (advanced mouse device)" + }, + { + name: "MOUSE_BUTTON_EXTRA", + value: 4, + description: "Mouse button extra (advanced mouse device)" + }, + { + name: "MOUSE_BUTTON_FORWARD", + value: 5, + description: "Mouse button forward (advanced mouse device)" + }, + { + name: "MOUSE_BUTTON_BACK", + value: 6, + description: "Mouse button back (advanced mouse device)" + } + ] + }, + { + name: "MouseCursor", + description: "Mouse cursor", + values: [ + { + name: "MOUSE_CURSOR_DEFAULT", + value: 0, + description: "Default pointer shape" + }, + { + name: "MOUSE_CURSOR_ARROW", + value: 1, + description: "Arrow shape" + }, + { + name: "MOUSE_CURSOR_IBEAM", + value: 2, + description: "Text writing cursor shape" + }, + { + name: "MOUSE_CURSOR_CROSSHAIR", + value: 3, + description: "Cross shape" + }, + { + name: "MOUSE_CURSOR_POINTING_HAND", + value: 4, + description: "Pointing hand cursor" + }, + { + name: "MOUSE_CURSOR_RESIZE_EW", + value: 5, + description: "Horizontal resize/move arrow shape" + }, + { + name: "MOUSE_CURSOR_RESIZE_NS", + value: 6, + description: "Vertical resize/move arrow shape" + }, + { + name: "MOUSE_CURSOR_RESIZE_NWSE", + value: 7, + description: "Top-left to bottom-right diagonal resize/move arrow shape" + }, + { + name: "MOUSE_CURSOR_RESIZE_NESW", + value: 8, + description: "The top-right to bottom-left diagonal resize/move arrow shape" + }, + { + name: "MOUSE_CURSOR_RESIZE_ALL", + value: 9, + description: "The omnidirectional resize/move cursor shape" + }, + { + name: "MOUSE_CURSOR_NOT_ALLOWED", + value: 10, + description: "The operation-not-allowed shape" + } + ] + }, + { + name: "GamepadButton", + description: "Gamepad buttons", + values: [ + { + name: "GAMEPAD_BUTTON_UNKNOWN", + value: 0, + description: "Unknown button, for error checking" + }, + { + name: "GAMEPAD_BUTTON_LEFT_FACE_UP", + value: 1, + description: "Gamepad left DPAD up button" + }, + { + name: "GAMEPAD_BUTTON_LEFT_FACE_RIGHT", + value: 2, + description: "Gamepad left DPAD right button" + }, + { + name: "GAMEPAD_BUTTON_LEFT_FACE_DOWN", + value: 3, + description: "Gamepad left DPAD down button" + }, + { + name: "GAMEPAD_BUTTON_LEFT_FACE_LEFT", + value: 4, + description: "Gamepad left DPAD left button" + }, + { + name: "GAMEPAD_BUTTON_RIGHT_FACE_UP", + value: 5, + description: "Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)" + }, + { + name: "GAMEPAD_BUTTON_RIGHT_FACE_RIGHT", + value: 6, + description: "Gamepad right button right (i.e. PS3: Circle, Xbox: B)" + }, + { + name: "GAMEPAD_BUTTON_RIGHT_FACE_DOWN", + value: 7, + description: "Gamepad right button down (i.e. PS3: Cross, Xbox: A)" + }, + { + name: "GAMEPAD_BUTTON_RIGHT_FACE_LEFT", + value: 8, + description: "Gamepad right button left (i.e. PS3: Square, Xbox: X)" + }, + { + name: "GAMEPAD_BUTTON_LEFT_TRIGGER_1", + value: 9, + description: "Gamepad top/back trigger left (first), it could be a trailing button" + }, + { + name: "GAMEPAD_BUTTON_LEFT_TRIGGER_2", + value: 10, + description: "Gamepad top/back trigger left (second), it could be a trailing button" + }, + { + name: "GAMEPAD_BUTTON_RIGHT_TRIGGER_1", + value: 11, + description: "Gamepad top/back trigger right (first), it could be a trailing button" + }, + { + name: "GAMEPAD_BUTTON_RIGHT_TRIGGER_2", + value: 12, + description: "Gamepad top/back trigger right (second), it could be a trailing button" + }, + { + name: "GAMEPAD_BUTTON_MIDDLE_LEFT", + value: 13, + description: "Gamepad center buttons, left one (i.e. PS3: Select)" + }, + { + name: "GAMEPAD_BUTTON_MIDDLE", + value: 14, + description: "Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)" + }, + { + name: "GAMEPAD_BUTTON_MIDDLE_RIGHT", + value: 15, + description: "Gamepad center buttons, right one (i.e. PS3: Start)" + }, + { + name: "GAMEPAD_BUTTON_LEFT_THUMB", + value: 16, + description: "Gamepad joystick pressed button left" + }, + { + name: "GAMEPAD_BUTTON_RIGHT_THUMB", + value: 17, + description: "Gamepad joystick pressed button right" + } + ] + }, + { + name: "GamepadAxis", + description: "Gamepad axes", + values: [ + { + name: "GAMEPAD_AXIS_LEFT_X", + value: 0, + description: "Gamepad left stick X axis" + }, + { + name: "GAMEPAD_AXIS_LEFT_Y", + value: 1, + description: "Gamepad left stick Y axis" + }, + { + name: "GAMEPAD_AXIS_RIGHT_X", + value: 2, + description: "Gamepad right stick X axis" + }, + { + name: "GAMEPAD_AXIS_RIGHT_Y", + value: 3, + description: "Gamepad right stick Y axis" + }, + { + name: "GAMEPAD_AXIS_LEFT_TRIGGER", + value: 4, + description: "Gamepad back trigger left, pressure level: [1..-1]" + }, + { + name: "GAMEPAD_AXIS_RIGHT_TRIGGER", + value: 5, + description: "Gamepad back trigger right, pressure level: [1..-1]" + } + ] + }, + { + name: "MaterialMapIndex", + description: "Material map index", + values: [ + { + name: "MATERIAL_MAP_ALBEDO", + value: 0, + description: "Albedo material (same as: MATERIAL_MAP_DIFFUSE)" + }, + { + name: "MATERIAL_MAP_METALNESS", + value: 1, + description: "Metalness material (same as: MATERIAL_MAP_SPECULAR)" + }, + { + name: "MATERIAL_MAP_NORMAL", + value: 2, + description: "Normal material" + }, + { + name: "MATERIAL_MAP_ROUGHNESS", + value: 3, + description: "Roughness material" + }, + { + name: "MATERIAL_MAP_OCCLUSION", + value: 4, + description: "Ambient occlusion material" + }, + { + name: "MATERIAL_MAP_EMISSION", + value: 5, + description: "Emission material" + }, + { + name: "MATERIAL_MAP_HEIGHT", + value: 6, + description: "Heightmap material" + }, + { + name: "MATERIAL_MAP_CUBEMAP", + value: 7, + description: "Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)" + }, + { + name: "MATERIAL_MAP_IRRADIANCE", + value: 8, + description: "Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)" + }, + { + name: "MATERIAL_MAP_PREFILTER", + value: 9, + description: "Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)" + }, + { + name: "MATERIAL_MAP_BRDF", + value: 10, + description: "Brdf material" + } + ] + }, + { + name: "ShaderLocationIndex", + description: "Shader location index", + values: [ + { + name: "SHADER_LOC_VERTEX_POSITION", + value: 0, + description: "Shader location: vertex attribute: position" + }, + { + name: "SHADER_LOC_VERTEX_TEXCOORD01", + value: 1, + description: "Shader location: vertex attribute: texcoord01" + }, + { + name: "SHADER_LOC_VERTEX_TEXCOORD02", + value: 2, + description: "Shader location: vertex attribute: texcoord02" + }, + { + name: "SHADER_LOC_VERTEX_NORMAL", + value: 3, + description: "Shader location: vertex attribute: normal" + }, + { + name: "SHADER_LOC_VERTEX_TANGENT", + value: 4, + description: "Shader location: vertex attribute: tangent" + }, + { + name: "SHADER_LOC_VERTEX_COLOR", + value: 5, + description: "Shader location: vertex attribute: color" + }, + { + name: "SHADER_LOC_MATRIX_MVP", + value: 6, + description: "Shader location: matrix uniform: model-view-projection" + }, + { + name: "SHADER_LOC_MATRIX_VIEW", + value: 7, + description: "Shader location: matrix uniform: view (camera transform)" + }, + { + name: "SHADER_LOC_MATRIX_PROJECTION", + value: 8, + description: "Shader location: matrix uniform: projection" + }, + { + name: "SHADER_LOC_MATRIX_MODEL", + value: 9, + description: "Shader location: matrix uniform: model (transform)" + }, + { + name: "SHADER_LOC_MATRIX_NORMAL", + value: 10, + description: "Shader location: matrix uniform: normal" + }, + { + name: "SHADER_LOC_VECTOR_VIEW", + value: 11, + description: "Shader location: vector uniform: view" + }, + { + name: "SHADER_LOC_COLOR_DIFFUSE", + value: 12, + description: "Shader location: vector uniform: diffuse color" + }, + { + name: "SHADER_LOC_COLOR_SPECULAR", + value: 13, + description: "Shader location: vector uniform: specular color" + }, + { + name: "SHADER_LOC_COLOR_AMBIENT", + value: 14, + description: "Shader location: vector uniform: ambient color" + }, + { + name: "SHADER_LOC_MAP_ALBEDO", + value: 15, + description: "Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)" + }, + { + name: "SHADER_LOC_MAP_METALNESS", + value: 16, + description: "Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)" + }, + { + name: "SHADER_LOC_MAP_NORMAL", + value: 17, + description: "Shader location: sampler2d texture: normal" + }, + { + name: "SHADER_LOC_MAP_ROUGHNESS", + value: 18, + description: "Shader location: sampler2d texture: roughness" + }, + { + name: "SHADER_LOC_MAP_OCCLUSION", + value: 19, + description: "Shader location: sampler2d texture: occlusion" + }, + { + name: "SHADER_LOC_MAP_EMISSION", + value: 20, + description: "Shader location: sampler2d texture: emission" + }, + { + name: "SHADER_LOC_MAP_HEIGHT", + value: 21, + description: "Shader location: sampler2d texture: heightmap" + }, + { + name: "SHADER_LOC_MAP_CUBEMAP", + value: 22, + description: "Shader location: samplerCube texture: cubemap" + }, + { + name: "SHADER_LOC_MAP_IRRADIANCE", + value: 23, + description: "Shader location: samplerCube texture: irradiance" + }, + { + name: "SHADER_LOC_MAP_PREFILTER", + value: 24, + description: "Shader location: samplerCube texture: prefilter" + }, + { + name: "SHADER_LOC_MAP_BRDF", + value: 25, + description: "Shader location: sampler2d texture: brdf" + }, + { + name: "SHADER_LOC_VERTEX_BONEIDS", + value: 26, + description: "Shader location: vertex attribute: bone indices" + }, + { + name: "SHADER_LOC_VERTEX_BONEWEIGHTS", + value: 27, + description: "Shader location: vertex attribute: bone weights" + }, + { + name: "SHADER_LOC_MATRIX_BONETRANSFORMS", + value: 28, + description: "Shader location: matrix attribute: bone transforms (animation)" + }, + { + name: "SHADER_LOC_VERTEX_INSTANCETRANSFORM", + value: 29, + description: "Shader location: vertex attribute: instance transforms" + } + ] + }, + { + name: "ShaderUniformDataType", + description: "Shader uniform data type", + values: [ + { + name: "SHADER_UNIFORM_FLOAT", + value: 0, + description: "Shader uniform type: float" + }, + { + name: "SHADER_UNIFORM_VEC2", + value: 1, + description: "Shader uniform type: vec2 (2 float)" + }, + { + name: "SHADER_UNIFORM_VEC3", + value: 2, + description: "Shader uniform type: vec3 (3 float)" + }, + { + name: "SHADER_UNIFORM_VEC4", + value: 3, + description: "Shader uniform type: vec4 (4 float)" + }, + { + name: "SHADER_UNIFORM_INT", + value: 4, + description: "Shader uniform type: int" + }, + { + name: "SHADER_UNIFORM_IVEC2", + value: 5, + description: "Shader uniform type: ivec2 (2 int)" + }, + { + name: "SHADER_UNIFORM_IVEC3", + value: 6, + description: "Shader uniform type: ivec3 (3 int)" + }, + { + name: "SHADER_UNIFORM_IVEC4", + value: 7, + description: "Shader uniform type: ivec4 (4 int)" + }, + { + name: "SHADER_UNIFORM_UINT", + value: 8, + description: "Shader uniform type: unsigned int" + }, + { + name: "SHADER_UNIFORM_UIVEC2", + value: 9, + description: "Shader uniform type: uivec2 (2 unsigned int)" + }, + { + name: "SHADER_UNIFORM_UIVEC3", + value: 10, + description: "Shader uniform type: uivec3 (3 unsigned int)" + }, + { + name: "SHADER_UNIFORM_UIVEC4", + value: 11, + description: "Shader uniform type: uivec4 (4 unsigned int)" + }, + { + name: "SHADER_UNIFORM_SAMPLER2D", + value: 12, + description: "Shader uniform type: sampler2d" + } + ] + }, + { + name: "ShaderAttributeDataType", + description: "Shader attribute data types", + values: [ + { + name: "SHADER_ATTRIB_FLOAT", + value: 0, + description: "Shader attribute type: float" + }, + { + name: "SHADER_ATTRIB_VEC2", + value: 1, + description: "Shader attribute type: vec2 (2 float)" + }, + { + name: "SHADER_ATTRIB_VEC3", + value: 2, + description: "Shader attribute type: vec3 (3 float)" + }, + { + name: "SHADER_ATTRIB_VEC4", + value: 3, + description: "Shader attribute type: vec4 (4 float)" + } + ] + }, + { + name: "PixelFormat", + description: "Pixel formats", + values: [ + { + name: "PIXELFORMAT_UNCOMPRESSED_GRAYSCALE", + value: 1, + description: "8 bit per pixel (no alpha)" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA", + value: 2, + description: "8*2 bpp (2 channels)" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R5G6B5", + value: 3, + description: "16 bpp" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R8G8B8", + value: 4, + description: "24 bpp" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R5G5B5A1", + value: 5, + description: "16 bpp (1 bit alpha)" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R4G4B4A4", + value: 6, + description: "16 bpp (4 bit alpha)" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R8G8B8A8", + value: 7, + description: "32 bpp" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R32", + value: 8, + description: "32 bpp (1 channel - float)" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R32G32B32", + value: 9, + description: "32*3 bpp (3 channels - float)" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R32G32B32A32", + value: 10, + description: "32*4 bpp (4 channels - float)" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R16", + value: 11, + description: "16 bpp (1 channel - half float)" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R16G16B16", + value: 12, + description: "16*3 bpp (3 channels - half float)" + }, + { + name: "PIXELFORMAT_UNCOMPRESSED_R16G16B16A16", + value: 13, + description: "16*4 bpp (4 channels - half float)" + }, + { + name: "PIXELFORMAT_COMPRESSED_DXT1_RGB", + value: 14, + description: "4 bpp (no alpha)" + }, + { + name: "PIXELFORMAT_COMPRESSED_DXT1_RGBA", + value: 15, + description: "4 bpp (1 bit alpha)" + }, + { + name: "PIXELFORMAT_COMPRESSED_DXT3_RGBA", + value: 16, + description: "8 bpp" + }, + { + name: "PIXELFORMAT_COMPRESSED_DXT5_RGBA", + value: 17, + description: "8 bpp" + }, + { + name: "PIXELFORMAT_COMPRESSED_ETC1_RGB", + value: 18, + description: "4 bpp" + }, + { + name: "PIXELFORMAT_COMPRESSED_ETC2_RGB", + value: 19, + description: "4 bpp" + }, + { + name: "PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA", + value: 20, + description: "8 bpp" + }, + { + name: "PIXELFORMAT_COMPRESSED_PVRT_RGB", + value: 21, + description: "4 bpp" + }, + { + name: "PIXELFORMAT_COMPRESSED_PVRT_RGBA", + value: 22, + description: "4 bpp" + }, + { + name: "PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA", + value: 23, + description: "8 bpp" + }, + { + name: "PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA", + value: 24, + description: "2 bpp" + } + ] + }, + { + name: "TextureFilter", + description: "Texture parameters: filter mode", + values: [ + { + name: "TEXTURE_FILTER_POINT", + value: 0, + description: "No filter, pixel approximation" + }, + { + name: "TEXTURE_FILTER_BILINEAR", + value: 1, + description: "Linear filtering" + }, + { + name: "TEXTURE_FILTER_TRILINEAR", + value: 2, + description: "Trilinear filtering (linear with mipmaps)" + }, + { + name: "TEXTURE_FILTER_ANISOTROPIC_4X", + value: 3, + description: "Anisotropic filtering 4x" + }, + { + name: "TEXTURE_FILTER_ANISOTROPIC_8X", + value: 4, + description: "Anisotropic filtering 8x" + }, + { + name: "TEXTURE_FILTER_ANISOTROPIC_16X", + value: 5, + description: "Anisotropic filtering 16x" + } + ] + }, + { + name: "TextureWrap", + description: "Texture parameters: wrap mode", + values: [ + { + name: "TEXTURE_WRAP_REPEAT", + value: 0, + description: "Repeats texture in tiled mode" + }, + { + name: "TEXTURE_WRAP_CLAMP", + value: 1, + description: "Clamps texture to edge pixel in tiled mode" + }, + { + name: "TEXTURE_WRAP_MIRROR_REPEAT", + value: 2, + description: "Mirrors and repeats the texture in tiled mode" + }, + { + name: "TEXTURE_WRAP_MIRROR_CLAMP", + value: 3, + description: "Mirrors and clamps to border the texture in tiled mode" + } + ] + }, + { + name: "CubemapLayout", + description: "Cubemap layouts", + values: [ + { + name: "CUBEMAP_LAYOUT_AUTO_DETECT", + value: 0, + description: "Automatically detect layout type" + }, + { + name: "CUBEMAP_LAYOUT_LINE_VERTICAL", + value: 1, + description: "Layout is defined by a vertical line with faces" + }, + { + name: "CUBEMAP_LAYOUT_LINE_HORIZONTAL", + value: 2, + description: "Layout is defined by a horizontal line with faces" + }, + { + name: "CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR", + value: 3, + description: "Layout is defined by a 3x4 cross with cubemap faces" + }, + { + name: "CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE", + value: 4, + description: "Layout is defined by a 4x3 cross with cubemap faces" + } + ] + }, + { + name: "FontType", + description: "Font type, defines generation method", + values: [ + { + name: "FONT_DEFAULT", + value: 0, + description: "Default font generation, anti-aliased" + }, + { + name: "FONT_BITMAP", + value: 1, + description: "Bitmap font generation, no anti-aliasing" + }, + { + name: "FONT_SDF", + value: 2, + description: "SDF font generation, requires external shader" + } + ] + }, + { + name: "BlendMode", + description: "Color blending modes (pre-defined)", + values: [ + { + name: "BLEND_ALPHA", + value: 0, + description: "Blend textures considering alpha (default)" + }, + { + name: "BLEND_ADDITIVE", + value: 1, + description: "Blend textures adding colors" + }, + { + name: "BLEND_MULTIPLIED", + value: 2, + description: "Blend textures multiplying colors" + }, + { + name: "BLEND_ADD_COLORS", + value: 3, + description: "Blend textures adding colors (alternative)" + }, + { + name: "BLEND_SUBTRACT_COLORS", + value: 4, + description: "Blend textures subtracting colors (alternative)" + }, + { + name: "BLEND_ALPHA_PREMULTIPLY", + value: 5, + description: "Blend premultiplied textures considering alpha" + }, + { + name: "BLEND_CUSTOM", + value: 6, + description: "Blend textures using custom src/dst factors (use rlSetBlendFactors())" + }, + { + name: "BLEND_CUSTOM_SEPARATE", + value: 7, + description: "Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())" + } + ] + }, + { + name: "Gesture", + description: "Gesture", + values: [ + { + name: "GESTURE_NONE", + value: 0, + description: "No gesture" + }, + { + name: "GESTURE_TAP", + value: 1, + description: "Tap gesture" + }, + { + name: "GESTURE_DOUBLETAP", + value: 2, + description: "Double tap gesture" + }, + { + name: "GESTURE_HOLD", + value: 4, + description: "Hold gesture" + }, + { + name: "GESTURE_DRAG", + value: 8, + description: "Drag gesture" + }, + { + name: "GESTURE_SWIPE_RIGHT", + value: 16, + description: "Swipe right gesture" + }, + { + name: "GESTURE_SWIPE_LEFT", + value: 32, + description: "Swipe left gesture" + }, + { + name: "GESTURE_SWIPE_UP", + value: 64, + description: "Swipe up gesture" + }, + { + name: "GESTURE_SWIPE_DOWN", + value: 128, + description: "Swipe down gesture" + }, + { + name: "GESTURE_PINCH_IN", + value: 256, + description: "Pinch in gesture" + }, + { + name: "GESTURE_PINCH_OUT", + value: 512, + description: "Pinch out gesture" + } + ] + }, + { + name: "CameraMode", + description: "Camera system modes", + values: [ + { + name: "CAMERA_CUSTOM", + value: 0, + description: "Camera custom, controlled by user (UpdateCamera() does nothing)" + }, + { + name: "CAMERA_FREE", + value: 1, + description: "Camera free mode" + }, + { + name: "CAMERA_ORBITAL", + value: 2, + description: "Camera orbital, around target, zoom supported" + }, + { + name: "CAMERA_FIRST_PERSON", + value: 3, + description: "Camera first person" + }, + { + name: "CAMERA_THIRD_PERSON", + value: 4, + description: "Camera third person" + } + ] + }, + { + name: "CameraProjection", + description: "Camera projection", + values: [ + { + name: "CAMERA_PERSPECTIVE", + value: 0, + description: "Perspective projection" + }, + { + name: "CAMERA_ORTHOGRAPHIC", + value: 1, + description: "Orthographic projection" + } + ] + }, + { + name: "NPatchLayout", + description: "N-patch layout", + values: [ + { + name: "NPATCH_NINE_PATCH", + value: 0, + description: "Npatch layout: 3x3 tiles" + }, + { + name: "NPATCH_THREE_PATCH_VERTICAL", + value: 1, + description: "Npatch layout: 1x3 tiles" + }, + { + name: "NPATCH_THREE_PATCH_HORIZONTAL", + value: 2, + description: "Npatch layout: 3x1 tiles" + } + ] + } + ], + callbacks: [ + { + name: "TraceLogCallback", + description: "Logging: Redirect trace log messages", + returnType: "void", + params: [ + {type: "int", name: "logLevel"}, + {type: "const char *", name: "text"}, + {type: "va_list", name: "args"} + ] + }, + { + name: "LoadFileDataCallback", + description: "FileIO: Load binary data", + returnType: "unsigned char *", + params: [ + {type: "const char *", name: "fileName"}, + {type: "int *", name: "dataSize"} + ] + }, + { + name: "SaveFileDataCallback", + description: "FileIO: Save binary data", + returnType: "bool", + params: [ + {type: "const char *", name: "fileName"}, + {type: "const void *", name: "data"}, + {type: "int", name: "dataSize"} + ] + }, + { + name: "LoadFileTextCallback", + description: "FileIO: Load text data", + returnType: "char *", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "SaveFileTextCallback", + description: "FileIO: Save text data", + returnType: "bool", + params: [ + {type: "const char *", name: "fileName"}, + {type: "const char *", name: "text"} + ] + }, + { + name: "AudioCallback", + description: "", + returnType: "void", + params: [ + {type: "void *", name: "bufferData"}, + {type: "unsigned int", name: "frames"} + ] + } + ], + functions: [ + { + name: "InitWindow", + description: "Initialize window and OpenGL context", + returnType: "void", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "const char *", name: "title"} + ] + }, + { + name: "CloseWindow", + description: "Close window and unload OpenGL context", + returnType: "void" + }, + { + name: "WindowShouldClose", + description: "Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)", + returnType: "bool" + }, + { + name: "IsWindowReady", + description: "Check if window has been initialized successfully", + returnType: "bool" + }, + { + name: "IsWindowFullscreen", + description: "Check if window is currently fullscreen", + returnType: "bool" + }, + { + name: "IsWindowHidden", + description: "Check if window is currently hidden", + returnType: "bool" + }, + { + name: "IsWindowMinimized", + description: "Check if window is currently minimized", + returnType: "bool" + }, + { + name: "IsWindowMaximized", + description: "Check if window is currently maximized", + returnType: "bool" + }, + { + name: "IsWindowFocused", + description: "Check if window is currently focused", + returnType: "bool" + }, + { + name: "IsWindowResized", + description: "Check if window has been resized last frame", + returnType: "bool" + }, + { + name: "IsWindowState", + description: "Check if one specific window flag is enabled", + returnType: "bool", + params: [ + {type: "unsigned int", name: "flag"} + ] + }, + { + name: "SetWindowState", + description: "Set window configuration state using flags", + returnType: "void", + params: [ + {type: "unsigned int", name: "flags"} + ] + }, + { + name: "ClearWindowState", + description: "Clear window configuration state flags", + returnType: "void", + params: [ + {type: "unsigned int", name: "flags"} + ] + }, + { + name: "ToggleFullscreen", + description: "Toggle window state: fullscreen/windowed, resizes monitor to match window resolution", + returnType: "void" + }, + { + name: "ToggleBorderlessWindowed", + description: "Toggle window state: borderless windowed, resizes window to match monitor resolution", + returnType: "void" + }, + { + name: "MaximizeWindow", + description: "Set window state: maximized, if resizable", + returnType: "void" + }, + { + name: "MinimizeWindow", + description: "Set window state: minimized, if resizable", + returnType: "void" + }, + { + name: "RestoreWindow", + description: "Restore window from being minimized/maximized", + returnType: "void" + }, + { + name: "SetWindowIcon", + description: "Set icon for window (single image, RGBA 32bit)", + returnType: "void", + params: [ + {type: "Image", name: "image"} + ] + }, + { + name: "SetWindowIcons", + description: "Set icon for window (multiple images, RGBA 32bit)", + returnType: "void", + params: [ + {type: "Image *", name: "images"}, + {type: "int", name: "count"} + ] + }, + { + name: "SetWindowTitle", + description: "Set title for window", + returnType: "void", + params: [ + {type: "const char *", name: "title"} + ] + }, + { + name: "SetWindowPosition", + description: "Set window position on screen", + returnType: "void", + params: [ + {type: "int", name: "x"}, + {type: "int", name: "y"} + ] + }, + { + name: "SetWindowMonitor", + description: "Set monitor for the current window", + returnType: "void", + params: [ + {type: "int", name: "monitor"} + ] + }, + { + name: "SetWindowMinSize", + description: "Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)", + returnType: "void", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"} + ] + }, + { + name: "SetWindowMaxSize", + description: "Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE)", + returnType: "void", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"} + ] + }, + { + name: "SetWindowSize", + description: "Set window dimensions", + returnType: "void", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"} + ] + }, + { + name: "SetWindowOpacity", + description: "Set window opacity [0.0f..1.0f]", + returnType: "void", + params: [ + {type: "float", name: "opacity"} + ] + }, + { + name: "SetWindowFocused", + description: "Set window focused", + returnType: "void" + }, + { + name: "GetWindowHandle", + description: "Get native window handle", + returnType: "void *" + }, + { + name: "GetScreenWidth", + description: "Get current screen width", + returnType: "int" + }, + { + name: "GetScreenHeight", + description: "Get current screen height", + returnType: "int" + }, + { + name: "GetRenderWidth", + description: "Get current render width (it considers HiDPI)", + returnType: "int" + }, + { + name: "GetRenderHeight", + description: "Get current render height (it considers HiDPI)", + returnType: "int" + }, + { + name: "GetMonitorCount", + description: "Get number of connected monitors", + returnType: "int" + }, + { + name: "GetCurrentMonitor", + description: "Get current monitor where window is placed", + returnType: "int" + }, + { + name: "GetMonitorPosition", + description: "Get specified monitor position", + returnType: "Vector2", + params: [ + {type: "int", name: "monitor"} + ] + }, + { + name: "GetMonitorWidth", + description: "Get specified monitor width (current video mode used by monitor)", + returnType: "int", + params: [ + {type: "int", name: "monitor"} + ] + }, + { + name: "GetMonitorHeight", + description: "Get specified monitor height (current video mode used by monitor)", + returnType: "int", + params: [ + {type: "int", name: "monitor"} + ] + }, + { + name: "GetMonitorPhysicalWidth", + description: "Get specified monitor physical width in millimetres", + returnType: "int", + params: [ + {type: "int", name: "monitor"} + ] + }, + { + name: "GetMonitorPhysicalHeight", + description: "Get specified monitor physical height in millimetres", + returnType: "int", + params: [ + {type: "int", name: "monitor"} + ] + }, + { + name: "GetMonitorRefreshRate", + description: "Get specified monitor refresh rate", + returnType: "int", + params: [ + {type: "int", name: "monitor"} + ] + }, + { + name: "GetWindowPosition", + description: "Get window position XY on monitor", + returnType: "Vector2" + }, + { + name: "GetWindowScaleDPI", + description: "Get window scale DPI factor", + returnType: "Vector2" + }, + { + name: "GetMonitorName", + description: "Get the human-readable, UTF-8 encoded name of the specified monitor", + returnType: "const char *", + params: [ + {type: "int", name: "monitor"} + ] + }, + { + name: "SetClipboardText", + description: "Set clipboard text content", + returnType: "void", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "GetClipboardText", + description: "Get clipboard text content", + returnType: "const char *" + }, + { + name: "GetClipboardImage", + description: "Get clipboard image content", + returnType: "Image" + }, + { + name: "EnableEventWaiting", + description: "Enable waiting for events on EndDrawing(), no automatic event polling", + returnType: "void" + }, + { + name: "DisableEventWaiting", + description: "Disable waiting for events on EndDrawing(), automatic events polling", + returnType: "void" + }, + { + name: "ShowCursor", + description: "Show cursor", + returnType: "void" + }, + { + name: "HideCursor", + description: "Hide cursor", + returnType: "void" + }, + { + name: "IsCursorHidden", + description: "Check if cursor is not visible", + returnType: "bool" + }, + { + name: "EnableCursor", + description: "Enable cursor (unlock cursor)", + returnType: "void" + }, + { + name: "DisableCursor", + description: "Disable cursor (lock cursor)", + returnType: "void" + }, + { + name: "IsCursorOnScreen", + description: "Check if cursor is on the screen", + returnType: "bool" + }, + { + name: "ClearBackground", + description: "Clear background (framebuffer) to color", + returnType: "void", + params: [ + {type: "Color", name: "color"} + ] + }, + { + name: "BeginDrawing", + description: "Begin canvas (framebuffer) drawing", + returnType: "void" + }, + { + name: "EndDrawing", + description: "End canvas (framebuffer) drawing and swap buffers (double buffering)", + returnType: "void" + }, + { + name: "BeginMode2D", + description: "Begin 2D mode with custom camera (2D)", + returnType: "void", + params: [ + {type: "Camera2D", name: "camera"} + ] + }, + { + name: "EndMode2D", + description: "End 2D mode with custom camera", + returnType: "void" + }, + { + name: "BeginMode3D", + description: "Begin 3D mode with custom camera (3D)", + returnType: "void", + params: [ + {type: "Camera3D", name: "camera"} + ] + }, + { + name: "EndMode3D", + description: "End 3D mode and returns to default 2D orthographic mode", + returnType: "void" + }, + { + name: "BeginTextureMode", + description: "Begin drawing to render texture", + returnType: "void", + params: [ + {type: "RenderTexture2D", name: "target"} + ] + }, + { + name: "EndTextureMode", + description: "End drawing to render texture", + returnType: "void" + }, + { + name: "BeginShaderMode", + description: "Begin custom shader drawing", + returnType: "void", + params: [ + {type: "Shader", name: "shader"} + ] + }, + { + name: "EndShaderMode", + description: "End custom shader drawing (use default shader)", + returnType: "void" + }, + { + name: "BeginBlendMode", + description: "Begin blending mode (alpha, additive, multiplied, subtract, custom)", + returnType: "void", + params: [ + {type: "int", name: "mode"} + ] + }, + { + name: "EndBlendMode", + description: "End blending mode (reset to default: alpha blending)", + returnType: "void" + }, + { + name: "BeginScissorMode", + description: "Begin scissor mode (define screen area for following drawing)", + returnType: "void", + params: [ + {type: "int", name: "x"}, + {type: "int", name: "y"}, + {type: "int", name: "width"}, + {type: "int", name: "height"} + ] + }, + { + name: "EndScissorMode", + description: "End scissor mode", + returnType: "void" + }, + { + name: "BeginVrStereoMode", + description: "Begin stereo rendering (requires VR simulator)", + returnType: "void", + params: [ + {type: "VrStereoConfig", name: "config"} + ] + }, + { + name: "EndVrStereoMode", + description: "End stereo rendering (requires VR simulator)", + returnType: "void" + }, + { + name: "LoadVrStereoConfig", + description: "Load VR stereo config for VR simulator device parameters", + returnType: "VrStereoConfig", + params: [ + {type: "VrDeviceInfo", name: "device"} + ] + }, + { + name: "UnloadVrStereoConfig", + description: "Unload VR stereo config", + returnType: "void", + params: [ + {type: "VrStereoConfig", name: "config"} + ] + }, + { + name: "LoadShader", + description: "Load shader from files and bind default locations", + returnType: "Shader", + params: [ + {type: "const char *", name: "vsFileName"}, + {type: "const char *", name: "fsFileName"} + ] + }, + { + name: "LoadShaderFromMemory", + description: "Load shader from code strings and bind default locations", + returnType: "Shader", + params: [ + {type: "const char *", name: "vsCode"}, + {type: "const char *", name: "fsCode"} + ] + }, + { + name: "IsShaderValid", + description: "Check if shader is valid (loaded on GPU)", + returnType: "bool", + params: [ + {type: "Shader", name: "shader"} + ] + }, + { + name: "GetShaderLocation", + description: "Get shader uniform location", + returnType: "int", + params: [ + {type: "Shader", name: "shader"}, + {type: "const char *", name: "uniformName"} + ] + }, + { + name: "GetShaderLocationAttrib", + description: "Get shader attribute location", + returnType: "int", + params: [ + {type: "Shader", name: "shader"}, + {type: "const char *", name: "attribName"} + ] + }, + { + name: "SetShaderValue", + description: "Set shader uniform value", + returnType: "void", + params: [ + {type: "Shader", name: "shader"}, + {type: "int", name: "locIndex"}, + {type: "const void *", name: "value"}, + {type: "int", name: "uniformType"} + ] + }, + { + name: "SetShaderValueV", + description: "Set shader uniform value vector", + returnType: "void", + params: [ + {type: "Shader", name: "shader"}, + {type: "int", name: "locIndex"}, + {type: "const void *", name: "value"}, + {type: "int", name: "uniformType"}, + {type: "int", name: "count"} + ] + }, + { + name: "SetShaderValueMatrix", + description: "Set shader uniform value (matrix 4x4)", + returnType: "void", + params: [ + {type: "Shader", name: "shader"}, + {type: "int", name: "locIndex"}, + {type: "Matrix", name: "mat"} + ] + }, + { + name: "SetShaderValueTexture", + description: "Set shader uniform value and bind the texture (sampler2d)", + returnType: "void", + params: [ + {type: "Shader", name: "shader"}, + {type: "int", name: "locIndex"}, + {type: "Texture2D", name: "texture"} + ] + }, + { + name: "UnloadShader", + description: "Unload shader from GPU memory (VRAM)", + returnType: "void", + params: [ + {type: "Shader", name: "shader"} + ] + }, + { + name: "GetScreenToWorldRay", + description: "Get a ray trace from screen position (i.e mouse)", + returnType: "Ray", + params: [ + {type: "Vector2", name: "position"}, + {type: "Camera", name: "camera"} + ] + }, + { + name: "GetScreenToWorldRayEx", + description: "Get a ray trace from screen position (i.e mouse) in a viewport", + returnType: "Ray", + params: [ + {type: "Vector2", name: "position"}, + {type: "Camera", name: "camera"}, + {type: "int", name: "width"}, + {type: "int", name: "height"} + ] + }, + { + name: "GetWorldToScreen", + description: "Get screen space position for a 3d world space position", + returnType: "Vector2", + params: [ + {type: "Vector3", name: "position"}, + {type: "Camera", name: "camera"} + ] + }, + { + name: "GetWorldToScreenEx", + description: "Get sized screen space position for a 3d world space position", + returnType: "Vector2", + params: [ + {type: "Vector3", name: "position"}, + {type: "Camera", name: "camera"}, + {type: "int", name: "width"}, + {type: "int", name: "height"} + ] + }, + { + name: "GetWorldToScreen2D", + description: "Get screen space position for a 2d camera world space position", + returnType: "Vector2", + params: [ + {type: "Vector2", name: "position"}, + {type: "Camera2D", name: "camera"} + ] + }, + { + name: "GetScreenToWorld2D", + description: "Get world space position for a 2d camera screen space position", + returnType: "Vector2", + params: [ + {type: "Vector2", name: "position"}, + {type: "Camera2D", name: "camera"} + ] + }, + { + name: "GetCameraMatrix", + description: "Get camera transform matrix (view matrix)", + returnType: "Matrix", + params: [ + {type: "Camera", name: "camera"} + ] + }, + { + name: "GetCameraMatrix2D", + description: "Get camera 2d transform matrix", + returnType: "Matrix", + params: [ + {type: "Camera2D", name: "camera"} + ] + }, + { + name: "SetTargetFPS", + description: "Set target FPS (maximum)", + returnType: "void", + params: [ + {type: "int", name: "fps"} + ] + }, + { + name: "GetFrameTime", + description: "Get time in seconds for last frame drawn (delta time)", + returnType: "float" + }, + { + name: "GetTime", + description: "Get elapsed time in seconds since InitWindow()", + returnType: "double" + }, + { + name: "GetFPS", + description: "Get current FPS", + returnType: "int" + }, + { + name: "SwapScreenBuffer", + description: "Swap back buffer with front buffer (screen drawing)", + returnType: "void" + }, + { + name: "PollInputEvents", + description: "Register all input events", + returnType: "void" + }, + { + name: "WaitTime", + description: "Wait for some time (halt program execution)", + returnType: "void", + params: [ + {type: "double", name: "seconds"} + ] + }, + { + name: "SetRandomSeed", + description: "Set the seed for the random number generator", + returnType: "void", + params: [ + {type: "unsigned int", name: "seed"} + ] + }, + { + name: "GetRandomValue", + description: "Get a random value between min and max (both included)", + returnType: "int", + params: [ + {type: "int", name: "min"}, + {type: "int", name: "max"} + ] + }, + { + name: "LoadRandomSequence", + description: "Load random values sequence, no values repeated", + returnType: "int *", + params: [ + {type: "unsigned int", name: "count"}, + {type: "int", name: "min"}, + {type: "int", name: "max"} + ] + }, + { + name: "UnloadRandomSequence", + description: "Unload random values sequence", + returnType: "void", + params: [ + {type: "int *", name: "sequence"} + ] + }, + { + name: "TakeScreenshot", + description: "Takes a screenshot of current screen (filename extension defines format)", + returnType: "void", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "SetConfigFlags", + description: "Set up init configuration flags (view FLAGS)", + returnType: "void", + params: [ + {type: "unsigned int", name: "flags"} + ] + }, + { + name: "OpenURL", + description: "Open URL with default system browser (if available)", + returnType: "void", + params: [ + {type: "const char *", name: "url"} + ] + }, + { + name: "SetTraceLogLevel", + description: "Set the current threshold (minimum) log level", + returnType: "void", + params: [ + {type: "int", name: "logLevel"} + ] + }, + { + name: "TraceLog", + description: "Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)", + returnType: "void", + params: [ + {type: "int", name: "logLevel"}, + {type: "const char *", name: "text"}, + {type: "...", name: "args"} + ] + }, + { + name: "SetTraceLogCallback", + description: "Set custom trace log", + returnType: "void", + params: [ + {type: "TraceLogCallback", name: "callback"} + ] + }, + { + name: "MemAlloc", + description: "Internal memory allocator", + returnType: "void *", + params: [ + {type: "unsigned int", name: "size"} + ] + }, + { + name: "MemRealloc", + description: "Internal memory reallocator", + returnType: "void *", + params: [ + {type: "void *", name: "ptr"}, + {type: "unsigned int", name: "size"} + ] + }, + { + name: "MemFree", + description: "Internal memory free", + returnType: "void", + params: [ + {type: "void *", name: "ptr"} + ] + }, + { + name: "LoadFileData", + description: "Load file data as byte array (read)", + returnType: "unsigned char *", + params: [ + {type: "const char *", name: "fileName"}, + {type: "int *", name: "dataSize"} + ] + }, + { + name: "UnloadFileData", + description: "Unload file data allocated by LoadFileData()", + returnType: "void", + params: [ + {type: "unsigned char *", name: "data"} + ] + }, + { + name: "SaveFileData", + description: "Save data to file from byte array (write), returns true on success", + returnType: "bool", + params: [ + {type: "const char *", name: "fileName"}, + {type: "const void *", name: "data"}, + {type: "int", name: "dataSize"} + ] + }, + { + name: "ExportDataAsCode", + description: "Export data to code (.h), returns true on success", + returnType: "bool", + params: [ + {type: "const unsigned char *", name: "data"}, + {type: "int", name: "dataSize"}, + {type: "const char *", name: "fileName"} + ] + }, + { + name: "LoadFileText", + description: "Load text data from file (read), returns a '\\0' terminated string", + returnType: "char *", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "UnloadFileText", + description: "Unload file text data allocated by LoadFileText()", + returnType: "void", + params: [ + {type: "char *", name: "text"} + ] + }, + { + name: "SaveFileText", + description: "Save text data to file (write), string must be '\\0' terminated, returns true on success", + returnType: "bool", + params: [ + {type: "const char *", name: "fileName"}, + {type: "const char *", name: "text"} + ] + }, + { + name: "SetLoadFileDataCallback", + description: "Set custom file binary data loader", + returnType: "void", + params: [ + {type: "LoadFileDataCallback", name: "callback"} + ] + }, + { + name: "SetSaveFileDataCallback", + description: "Set custom file binary data saver", + returnType: "void", + params: [ + {type: "SaveFileDataCallback", name: "callback"} + ] + }, + { + name: "SetLoadFileTextCallback", + description: "Set custom file text data loader", + returnType: "void", + params: [ + {type: "LoadFileTextCallback", name: "callback"} + ] + }, + { + name: "SetSaveFileTextCallback", + description: "Set custom file text data saver", + returnType: "void", + params: [ + {type: "SaveFileTextCallback", name: "callback"} + ] + }, + { + name: "FileRename", + description: "Rename file (if exists), returns 0 on success", + returnType: "int", + params: [ + {type: "const char *", name: "fileName"}, + {type: "const char *", name: "fileRename"} + ] + }, + { + name: "FileRemove", + description: "Remove file (if exists), returns 0 on success", + returnType: "int", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "FileCopy", + description: "Copy file from one path to another, dstPath created if it doesn't exist, returns 0 on success", + returnType: "int", + params: [ + {type: "const char *", name: "srcPath"}, + {type: "const char *", name: "dstPath"} + ] + }, + { + name: "FileMove", + description: "Move file from one directory to another, dstPath created if it doesn't exist, returns 0 on success", + returnType: "int", + params: [ + {type: "const char *", name: "srcPath"}, + {type: "const char *", name: "dstPath"} + ] + }, + { + name: "FileTextReplace", + description: "Replace text in an existing file, returns 0 on success", + returnType: "int", + params: [ + {type: "const char *", name: "fileName"}, + {type: "const char *", name: "search"}, + {type: "const char *", name: "replacement"} + ] + }, + { + name: "FileTextFindIndex", + description: "Find text in existing file, returns -1 if index not found or index otherwise", + returnType: "int", + params: [ + {type: "const char *", name: "fileName"}, + {type: "const char *", name: "search"} + ] + }, + { + name: "FileExists", + description: "Check if file exists", + returnType: "bool", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "DirectoryExists", + description: "Check if directory path exists", + returnType: "bool", + params: [ + {type: "const char *", name: "dirPath"} + ] + }, + { + name: "IsFileExtension", + description: "Check file extension (recommended include point: .png, .wav)", + returnType: "bool", + params: [ + {type: "const char *", name: "fileName"}, + {type: "const char *", name: "ext"} + ] + }, + { + name: "GetFileLength", + description: "Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h)", + returnType: "int", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "GetFileModTime", + description: "Get file modification time (last write time)", + returnType: "long", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "GetFileExtension", + description: "Get pointer to extension for a filename string (includes dot: '.png')", + returnType: "const char *", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "GetFileName", + description: "Get pointer to filename for a path string", + returnType: "const char *", + params: [ + {type: "const char *", name: "filePath"} + ] + }, + { + name: "GetFileNameWithoutExt", + description: "Get filename string without extension (uses static string)", + returnType: "const char *", + params: [ + {type: "const char *", name: "filePath"} + ] + }, + { + name: "GetDirectoryPath", + description: "Get full path for a given fileName with path (uses static string)", + returnType: "const char *", + params: [ + {type: "const char *", name: "filePath"} + ] + }, + { + name: "GetPrevDirectoryPath", + description: "Get previous directory path for a given path (uses static string)", + returnType: "const char *", + params: [ + {type: "const char *", name: "dirPath"} + ] + }, + { + name: "GetWorkingDirectory", + description: "Get current working directory (uses static string)", + returnType: "const char *" + }, + { + name: "GetApplicationDirectory", + description: "Get the directory of the running application (uses static string)", + returnType: "const char *" + }, + { + name: "MakeDirectory", + description: "Create directories (including full path requested), returns 0 on success", + returnType: "int", + params: [ + {type: "const char *", name: "dirPath"} + ] + }, + { + name: "ChangeDirectory", + description: "Change working directory, returns 0 on success", + returnType: "int", + params: [ + {type: "const char *", name: "dirPath"} + ] + }, + { + name: "IsPathFile", + description: "Check if given path is a file or a directory", + returnType: "bool", + params: [ + {type: "const char *", name: "path"} + ] + }, + { + name: "IsFileNameValid", + description: "Check if fileName is valid for the platform/OS", + returnType: "bool", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "LoadDirectoryFiles", + description: "Load directory filepaths, files and directories, no subdirs scan", + returnType: "FilePathList", + params: [ + {type: "const char *", name: "dirPath"} + ] + }, + { + name: "LoadDirectoryFilesEx", + description: "Load directory filepaths with extension filtering and subdir scan; some filters available: '*.*','FILES*','DIRS*'", + returnType: "FilePathList", + params: [ + {type: "const char *", name: "basePath"}, + {type: "const char *", name: "filter"}, + {type: "bool", name: "scanSubdirs"} + ] + }, + { + name: "UnloadDirectoryFiles", + description: "Unload filepaths", + returnType: "void", + params: [ + {type: "FilePathList", name: "files"} + ] + }, + { + name: "IsFileDropped", + description: "Check if file has been dropped into window", + returnType: "bool" + }, + { + name: "LoadDroppedFiles", + description: "Load dropped filepaths", + returnType: "FilePathList" + }, + { + name: "UnloadDroppedFiles", + description: "Unload dropped filepaths", + returnType: "void", + params: [ + {type: "FilePathList", name: "files"} + ] + }, + { + name: "GetDirectoryFileCount", + description: "Get the file count in a directory", + returnType: "unsigned int", + params: [ + {type: "const char *", name: "dirPath"} + ] + }, + { + name: "GetDirectoryFileCountEx", + description: "Get the file count in a directory with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result", + returnType: "unsigned int", + params: [ + {type: "const char *", name: "basePath"}, + {type: "const char *", name: "filter"}, + {type: "bool", name: "scanSubdirs"} + ] + }, + { + name: "CompressData", + description: "Compress data (DEFLATE algorithm), memory must be MemFree()", + returnType: "unsigned char *", + params: [ + {type: "const unsigned char *", name: "data"}, + {type: "int", name: "dataSize"}, + {type: "int *", name: "compDataSize"} + ] + }, + { + name: "DecompressData", + description: "Decompress data (DEFLATE algorithm), memory must be MemFree()", + returnType: "unsigned char *", + params: [ + {type: "const unsigned char *", name: "compData"}, + {type: "int", name: "compDataSize"}, + {type: "int *", name: "dataSize"} + ] + }, + { + name: "EncodeDataBase64", + description: "Encode data to Base64 string (includes NULL terminator), memory must be MemFree()", + returnType: "char *", + params: [ + {type: "const unsigned char *", name: "data"}, + {type: "int", name: "dataSize"}, + {type: "int *", name: "outputSize"} + ] + }, + { + name: "DecodeDataBase64", + description: "Decode Base64 string (expected NULL terminated), memory must be MemFree()", + returnType: "unsigned char *", + params: [ + {type: "const char *", name: "text"}, + {type: "int *", name: "outputSize"} + ] + }, + { + name: "ComputeCRC32", + description: "Compute CRC32 hash code", + returnType: "unsigned int", + params: [ + {type: "const unsigned char *", name: "data"}, + {type: "int", name: "dataSize"} + ] + }, + { + name: "ComputeMD5", + description: "Compute MD5 hash code, returns static int[4] (16 bytes)", + returnType: "unsigned int *", + params: [ + {type: "const unsigned char *", name: "data"}, + {type: "int", name: "dataSize"} + ] + }, + { + name: "ComputeSHA1", + description: "Compute SHA1 hash code, returns static int[5] (20 bytes)", + returnType: "unsigned int *", + params: [ + {type: "const unsigned char *", name: "data"}, + {type: "int", name: "dataSize"} + ] + }, + { + name: "ComputeSHA256", + description: "Compute SHA256 hash code, returns static int[8] (32 bytes)", + returnType: "unsigned int *", + params: [ + {type: "const unsigned char *", name: "data"}, + {type: "int", name: "dataSize"} + ] + }, + { + name: "LoadAutomationEventList", + description: "Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS", + returnType: "AutomationEventList", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "UnloadAutomationEventList", + description: "Unload automation events list from file", + returnType: "void", + params: [ + {type: "AutomationEventList", name: "list"} + ] + }, + { + name: "ExportAutomationEventList", + description: "Export automation events list as text file", + returnType: "bool", + params: [ + {type: "AutomationEventList", name: "list"}, + {type: "const char *", name: "fileName"} + ] + }, + { + name: "SetAutomationEventList", + description: "Set automation event list to record to", + returnType: "void", + params: [ + {type: "AutomationEventList *", name: "list"} + ] + }, + { + name: "SetAutomationEventBaseFrame", + description: "Set automation event internal base frame to start recording", + returnType: "void", + params: [ + {type: "int", name: "frame"} + ] + }, + { + name: "StartAutomationEventRecording", + description: "Start recording automation events (AutomationEventList must be set)", + returnType: "void" + }, + { + name: "StopAutomationEventRecording", + description: "Stop recording automation events", + returnType: "void" + }, + { + name: "PlayAutomationEvent", + description: "Play a recorded automation event", + returnType: "void", + params: [ + {type: "AutomationEvent", name: "event"} + ] + }, + { + name: "IsKeyPressed", + description: "Check if key has been pressed once", + returnType: "bool", + params: [ + {type: "int", name: "key"} + ] + }, + { + name: "IsKeyPressedRepeat", + description: "Check if key has been pressed again", + returnType: "bool", + params: [ + {type: "int", name: "key"} + ] + }, + { + name: "IsKeyDown", + description: "Check if key is being pressed", + returnType: "bool", + params: [ + {type: "int", name: "key"} + ] + }, + { + name: "IsKeyReleased", + description: "Check if key has been released once", + returnType: "bool", + params: [ + {type: "int", name: "key"} + ] + }, + { + name: "IsKeyUp", + description: "Check if key is NOT being pressed", + returnType: "bool", + params: [ + {type: "int", name: "key"} + ] + }, + { + name: "GetKeyPressed", + description: "Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty", + returnType: "int" + }, + { + name: "GetCharPressed", + description: "Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty", + returnType: "int" + }, + { + name: "GetKeyName", + description: "Get name of a QWERTY key on the current keyboard layout (eg returns string 'q' for KEY_A on an AZERTY keyboard)", + returnType: "const char *", + params: [ + {type: "int", name: "key"} + ] + }, + { + name: "SetExitKey", + description: "Set a custom key to exit program (default is ESC)", + returnType: "void", + params: [ + {type: "int", name: "key"} + ] + }, + { + name: "IsGamepadAvailable", + description: "Check if gamepad is available", + returnType: "bool", + params: [ + {type: "int", name: "gamepad"} + ] + }, + { + name: "GetGamepadName", + description: "Get gamepad internal name id", + returnType: "const char *", + params: [ + {type: "int", name: "gamepad"} + ] + }, + { + name: "IsGamepadButtonPressed", + description: "Check if gamepad button has been pressed once", + returnType: "bool", + params: [ + {type: "int", name: "gamepad"}, + {type: "int", name: "button"} + ] + }, + { + name: "IsGamepadButtonDown", + description: "Check if gamepad button is being pressed", + returnType: "bool", + params: [ + {type: "int", name: "gamepad"}, + {type: "int", name: "button"} + ] + }, + { + name: "IsGamepadButtonReleased", + description: "Check if gamepad button has been released once", + returnType: "bool", + params: [ + {type: "int", name: "gamepad"}, + {type: "int", name: "button"} + ] + }, + { + name: "IsGamepadButtonUp", + description: "Check if gamepad button is NOT being pressed", + returnType: "bool", + params: [ + {type: "int", name: "gamepad"}, + {type: "int", name: "button"} + ] + }, + { + name: "GetGamepadButtonPressed", + description: "Get the last gamepad button pressed", + returnType: "int" + }, + { + name: "GetGamepadAxisCount", + description: "Get axis count for a gamepad", + returnType: "int", + params: [ + {type: "int", name: "gamepad"} + ] + }, + { + name: "GetGamepadAxisMovement", + description: "Get movement value for a gamepad axis", + returnType: "float", + params: [ + {type: "int", name: "gamepad"}, + {type: "int", name: "axis"} + ] + }, + { + name: "SetGamepadMappings", + description: "Set internal gamepad mappings (SDL_GameControllerDB)", + returnType: "int", + params: [ + {type: "const char *", name: "mappings"} + ] + }, + { + name: "SetGamepadVibration", + description: "Set gamepad vibration for both motors (duration in seconds)", + returnType: "void", + params: [ + {type: "int", name: "gamepad"}, + {type: "float", name: "leftMotor"}, + {type: "float", name: "rightMotor"}, + {type: "float", name: "duration"} + ] + }, + { + name: "IsMouseButtonPressed", + description: "Check if mouse button has been pressed once", + returnType: "bool", + params: [ + {type: "int", name: "button"} + ] + }, + { + name: "IsMouseButtonDown", + description: "Check if mouse button is being pressed", + returnType: "bool", + params: [ + {type: "int", name: "button"} + ] + }, + { + name: "IsMouseButtonReleased", + description: "Check if mouse button has been released once", + returnType: "bool", + params: [ + {type: "int", name: "button"} + ] + }, + { + name: "IsMouseButtonUp", + description: "Check if mouse button is NOT being pressed", + returnType: "bool", + params: [ + {type: "int", name: "button"} + ] + }, + { + name: "GetMouseX", + description: "Get mouse position X", + returnType: "int" + }, + { + name: "GetMouseY", + description: "Get mouse position Y", + returnType: "int" + }, + { + name: "GetMousePosition", + description: "Get mouse position XY", + returnType: "Vector2" + }, + { + name: "GetMouseDelta", + description: "Get mouse delta between frames", + returnType: "Vector2" + }, + { + name: "SetMousePosition", + description: "Set mouse position XY", + returnType: "void", + params: [ + {type: "int", name: "x"}, + {type: "int", name: "y"} + ] + }, + { + name: "SetMouseOffset", + description: "Set mouse offset", + returnType: "void", + params: [ + {type: "int", name: "offsetX"}, + {type: "int", name: "offsetY"} + ] + }, + { + name: "SetMouseScale", + description: "Set mouse scaling", + returnType: "void", + params: [ + {type: "float", name: "scaleX"}, + {type: "float", name: "scaleY"} + ] + }, + { + name: "GetMouseWheelMove", + description: "Get mouse wheel movement for X or Y, whichever is larger", + returnType: "float" + }, + { + name: "GetMouseWheelMoveV", + description: "Get mouse wheel movement for both X and Y", + returnType: "Vector2" + }, + { + name: "SetMouseCursor", + description: "Set mouse cursor", + returnType: "void", + params: [ + {type: "int", name: "cursor"} + ] + }, + { + name: "GetTouchX", + description: "Get touch position X for touch point 0 (relative to screen size)", + returnType: "int" + }, + { + name: "GetTouchY", + description: "Get touch position Y for touch point 0 (relative to screen size)", + returnType: "int" + }, + { + name: "GetTouchPosition", + description: "Get touch position XY for a touch point index (relative to screen size)", + returnType: "Vector2", + params: [ + {type: "int", name: "index"} + ] + }, + { + name: "GetTouchPointId", + description: "Get touch point identifier for given index", + returnType: "int", + params: [ + {type: "int", name: "index"} + ] + }, + { + name: "GetTouchPointCount", + description: "Get number of touch points", + returnType: "int" + }, + { + name: "SetGesturesEnabled", + description: "Enable a set of gestures using flags", + returnType: "void", + params: [ + {type: "unsigned int", name: "flags"} + ] + }, + { + name: "IsGestureDetected", + description: "Check if gesture has been detected", + returnType: "bool", + params: [ + {type: "unsigned int", name: "gesture"} + ] + }, + { + name: "GetGestureDetected", + description: "Get latest detected gesture", + returnType: "int" + }, + { + name: "GetGestureHoldDuration", + description: "Get gesture hold time in seconds", + returnType: "float" + }, + { + name: "GetGestureDragVector", + description: "Get gesture drag vector", + returnType: "Vector2" + }, + { + name: "GetGestureDragAngle", + description: "Get gesture drag angle", + returnType: "float" + }, + { + name: "GetGesturePinchVector", + description: "Get gesture pinch delta", + returnType: "Vector2" + }, + { + name: "GetGesturePinchAngle", + description: "Get gesture pinch angle", + returnType: "float" + }, + { + name: "UpdateCamera", + description: "Update camera position for selected mode", + returnType: "void", + params: [ + {type: "Camera *", name: "camera"}, + {type: "int", name: "mode"} + ] + }, + { + name: "UpdateCameraPro", + description: "Update camera movement/rotation", + returnType: "void", + params: [ + {type: "Camera *", name: "camera"}, + {type: "Vector3", name: "movement"}, + {type: "Vector3", name: "rotation"}, + {type: "float", name: "zoom"} + ] + }, + { + name: "SetShapesTexture", + description: "Set texture and rectangle to be used on shapes drawing", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "Rectangle", name: "rec"} + ] + }, + { + name: "GetShapesTexture", + description: "Get texture that is used for shapes drawing", + returnType: "Texture2D" + }, + { + name: "GetShapesTextureRectangle", + description: "Get texture source rectangle that is used for shapes drawing", + returnType: "Rectangle" + }, + { + name: "DrawPixel", + description: "Draw a pixel using geometry [Can be slow, use with care]", + returnType: "void", + params: [ + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawPixelV", + description: "Draw a pixel using geometry (Vector version) [Can be slow, use with care]", + returnType: "void", + params: [ + {type: "Vector2", name: "position"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawLine", + description: "Draw a line", + returnType: "void", + params: [ + {type: "int", name: "startPosX"}, + {type: "int", name: "startPosY"}, + {type: "int", name: "endPosX"}, + {type: "int", name: "endPosY"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawLineV", + description: "Draw a line (using gl lines)", + returnType: "void", + params: [ + {type: "Vector2", name: "startPos"}, + {type: "Vector2", name: "endPos"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawLineEx", + description: "Draw a line (using triangles/quads)", + returnType: "void", + params: [ + {type: "Vector2", name: "startPos"}, + {type: "Vector2", name: "endPos"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawLineStrip", + description: "Draw lines sequence (using gl lines)", + returnType: "void", + params: [ + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawLineBezier", + description: "Draw line segment cubic-bezier in-out interpolation", + returnType: "void", + params: [ + {type: "Vector2", name: "startPos"}, + {type: "Vector2", name: "endPos"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawLineDashed", + description: "Draw a dashed line", + returnType: "void", + params: [ + {type: "Vector2", name: "startPos"}, + {type: "Vector2", name: "endPos"}, + {type: "int", name: "dashSize"}, + {type: "int", name: "spaceSize"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCircle", + description: "Draw a color-filled circle", + returnType: "void", + params: [ + {type: "int", name: "centerX"}, + {type: "int", name: "centerY"}, + {type: "float", name: "radius"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCircleV", + description: "Draw a color-filled circle (Vector version)", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "radius"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCircleGradient", + description: "Draw a gradient-filled circle", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "radius"}, + {type: "Color", name: "inner"}, + {type: "Color", name: "outer"} + ] + }, + { + name: "DrawCircleSector", + description: "Draw a piece of a circle", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "radius"}, + {type: "float", name: "startAngle"}, + {type: "float", name: "endAngle"}, + {type: "int", name: "segments"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCircleSectorLines", + description: "Draw circle sector outline", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "radius"}, + {type: "float", name: "startAngle"}, + {type: "float", name: "endAngle"}, + {type: "int", name: "segments"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCircleLines", + description: "Draw circle outline", + returnType: "void", + params: [ + {type: "int", name: "centerX"}, + {type: "int", name: "centerY"}, + {type: "float", name: "radius"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCircleLinesV", + description: "Draw circle outline (Vector version)", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "radius"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawEllipse", + description: "Draw ellipse", + returnType: "void", + params: [ + {type: "int", name: "centerX"}, + {type: "int", name: "centerY"}, + {type: "float", name: "radiusH"}, + {type: "float", name: "radiusV"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawEllipseV", + description: "Draw ellipse (Vector version)", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "radiusH"}, + {type: "float", name: "radiusV"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawEllipseLines", + description: "Draw ellipse outline", + returnType: "void", + params: [ + {type: "int", name: "centerX"}, + {type: "int", name: "centerY"}, + {type: "float", name: "radiusH"}, + {type: "float", name: "radiusV"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawEllipseLinesV", + description: "Draw ellipse outline (Vector version)", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "radiusH"}, + {type: "float", name: "radiusV"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRing", + description: "Draw ring", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "innerRadius"}, + {type: "float", name: "outerRadius"}, + {type: "float", name: "startAngle"}, + {type: "float", name: "endAngle"}, + {type: "int", name: "segments"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRingLines", + description: "Draw ring outline", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "innerRadius"}, + {type: "float", name: "outerRadius"}, + {type: "float", name: "startAngle"}, + {type: "float", name: "endAngle"}, + {type: "int", name: "segments"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRectangle", + description: "Draw a color-filled rectangle", + returnType: "void", + params: [ + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRectangleV", + description: "Draw a color-filled rectangle (Vector version)", + returnType: "void", + params: [ + {type: "Vector2", name: "position"}, + {type: "Vector2", name: "size"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRectangleRec", + description: "Draw a color-filled rectangle", + returnType: "void", + params: [ + {type: "Rectangle", name: "rec"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRectanglePro", + description: "Draw a color-filled rectangle with pro parameters", + returnType: "void", + params: [ + {type: "Rectangle", name: "rec"}, + {type: "Vector2", name: "origin"}, + {type: "float", name: "rotation"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRectangleGradientV", + description: "Draw a vertical-gradient-filled rectangle", + returnType: "void", + params: [ + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "Color", name: "top"}, + {type: "Color", name: "bottom"} + ] + }, + { + name: "DrawRectangleGradientH", + description: "Draw a horizontal-gradient-filled rectangle", + returnType: "void", + params: [ + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "Color", name: "left"}, + {type: "Color", name: "right"} + ] + }, + { + name: "DrawRectangleGradientEx", + description: "Draw a gradient-filled rectangle with custom vertex colors", + returnType: "void", + params: [ + {type: "Rectangle", name: "rec"}, + {type: "Color", name: "topLeft"}, + {type: "Color", name: "bottomLeft"}, + {type: "Color", name: "bottomRight"}, + {type: "Color", name: "topRight"} + ] + }, + { + name: "DrawRectangleLines", + description: "Draw rectangle outline", + returnType: "void", + params: [ + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRectangleLinesEx", + description: "Draw rectangle outline with extended parameters", + returnType: "void", + params: [ + {type: "Rectangle", name: "rec"}, + {type: "float", name: "lineThick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRectangleRounded", + description: "Draw rectangle with rounded edges", + returnType: "void", + params: [ + {type: "Rectangle", name: "rec"}, + {type: "float", name: "roundness"}, + {type: "int", name: "segments"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRectangleRoundedLines", + description: "Draw rectangle lines with rounded edges", + returnType: "void", + params: [ + {type: "Rectangle", name: "rec"}, + {type: "float", name: "roundness"}, + {type: "int", name: "segments"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRectangleRoundedLinesEx", + description: "Draw rectangle lines with rounded edges outline", + returnType: "void", + params: [ + {type: "Rectangle", name: "rec"}, + {type: "float", name: "roundness"}, + {type: "int", name: "segments"}, + {type: "float", name: "lineThick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawTriangle", + description: "Draw a color-filled triangle (vertex in counter-clockwise order!)", + returnType: "void", + params: [ + {type: "Vector2", name: "v1"}, + {type: "Vector2", name: "v2"}, + {type: "Vector2", name: "v3"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawTriangleGradient", + description: "Draw triangle with interpolated colors (vertex in counter-clockwise order!)", + returnType: "void", + params: [ + {type: "Vector2", name: "v1"}, + {type: "Vector2", name: "v2"}, + {type: "Vector2", name: "v3"}, + {type: "Color", name: "c1"}, + {type: "Color", name: "c2"}, + {type: "Color", name: "c3"} + ] + }, + { + name: "DrawTriangleLines", + description: "Draw triangle outline (vertex in counter-clockwise order!)", + returnType: "void", + params: [ + {type: "Vector2", name: "v1"}, + {type: "Vector2", name: "v2"}, + {type: "Vector2", name: "v3"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawTriangleFan", + description: "Draw a triangle fan defined by points (first vertex is the center)", + returnType: "void", + params: [ + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawTriangleStrip", + description: "Draw a triangle strip defined by points", + returnType: "void", + params: [ + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawPoly", + description: "Draw a polygon of n sides", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "int", name: "sides"}, + {type: "float", name: "radius"}, + {type: "float", name: "rotation"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawPolyLines", + description: "Draw a polygon outline of n sides", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "int", name: "sides"}, + {type: "float", name: "radius"}, + {type: "float", name: "rotation"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawPolyLinesEx", + description: "Draw a polygon outline of n sides with extended parameters", + returnType: "void", + params: [ + {type: "Vector2", name: "center"}, + {type: "int", name: "sides"}, + {type: "float", name: "radius"}, + {type: "float", name: "rotation"}, + {type: "float", name: "lineThick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSplineLinear", + description: "Draw spline: Linear, minimum 2 points", + returnType: "void", + params: [ + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSplineBasis", + description: "Draw spline: B-Spline, minimum 4 points", + returnType: "void", + params: [ + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSplineCatmullRom", + description: "Draw spline: Catmull-Rom, minimum 4 points", + returnType: "void", + params: [ + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSplineBezierQuadratic", + description: "Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]", + returnType: "void", + params: [ + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSplineBezierCubic", + description: "Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]", + returnType: "void", + params: [ + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSplineSegmentLinear", + description: "Draw spline segment: Linear, 2 points", + returnType: "void", + params: [ + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "p2"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSplineSegmentBasis", + description: "Draw spline segment: B-Spline, 4 points", + returnType: "void", + params: [ + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "p2"}, + {type: "Vector2", name: "p3"}, + {type: "Vector2", name: "p4"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSplineSegmentCatmullRom", + description: "Draw spline segment: Catmull-Rom, 4 points", + returnType: "void", + params: [ + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "p2"}, + {type: "Vector2", name: "p3"}, + {type: "Vector2", name: "p4"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSplineSegmentBezierQuadratic", + description: "Draw spline segment: Quadratic Bezier, 2 points, 1 control point", + returnType: "void", + params: [ + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "c2"}, + {type: "Vector2", name: "p3"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSplineSegmentBezierCubic", + description: "Draw spline segment: Cubic Bezier, 2 points, 2 control points", + returnType: "void", + params: [ + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "c2"}, + {type: "Vector2", name: "c3"}, + {type: "Vector2", name: "p4"}, + {type: "float", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "GetSplinePointLinear", + description: "Get (evaluate) spline point: Linear", + returnType: "Vector2", + params: [ + {type: "Vector2", name: "startPos"}, + {type: "Vector2", name: "endPos"}, + {type: "float", name: "t"} + ] + }, + { + name: "GetSplinePointBasis", + description: "Get (evaluate) spline point: B-Spline", + returnType: "Vector2", + params: [ + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "p2"}, + {type: "Vector2", name: "p3"}, + {type: "Vector2", name: "p4"}, + {type: "float", name: "t"} + ] + }, + { + name: "GetSplinePointCatmullRom", + description: "Get (evaluate) spline point: Catmull-Rom", + returnType: "Vector2", + params: [ + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "p2"}, + {type: "Vector2", name: "p3"}, + {type: "Vector2", name: "p4"}, + {type: "float", name: "t"} + ] + }, + { + name: "GetSplinePointBezierQuadratic", + description: "Get (evaluate) spline point: Quadratic Bezier", + returnType: "Vector2", + params: [ + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "c2"}, + {type: "Vector2", name: "p3"}, + {type: "float", name: "t"} + ] + }, + { + name: "GetSplinePointBezierCubic", + description: "Get (evaluate) spline point: Cubic Bezier", + returnType: "Vector2", + params: [ + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "c2"}, + {type: "Vector2", name: "c3"}, + {type: "Vector2", name: "p4"}, + {type: "float", name: "t"} + ] + }, + { + name: "CheckCollisionRecs", + description: "Check collision between two rectangles", + returnType: "bool", + params: [ + {type: "Rectangle", name: "rec1"}, + {type: "Rectangle", name: "rec2"} + ] + }, + { + name: "CheckCollisionCircles", + description: "Check collision between two circles", + returnType: "bool", + params: [ + {type: "Vector2", name: "center1"}, + {type: "float", name: "radius1"}, + {type: "Vector2", name: "center2"}, + {type: "float", name: "radius2"} + ] + }, + { + name: "CheckCollisionCircleRec", + description: "Check collision between circle and rectangle", + returnType: "bool", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "radius"}, + {type: "Rectangle", name: "rec"} + ] + }, + { + name: "CheckCollisionCircleLine", + description: "Check if circle collides with a line created between two points [p1] and [p2]", + returnType: "bool", + params: [ + {type: "Vector2", name: "center"}, + {type: "float", name: "radius"}, + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "p2"} + ] + }, + { + name: "CheckCollisionPointRec", + description: "Check if point is inside rectangle", + returnType: "bool", + params: [ + {type: "Vector2", name: "point"}, + {type: "Rectangle", name: "rec"} + ] + }, + { + name: "CheckCollisionPointCircle", + description: "Check if point is inside circle", + returnType: "bool", + params: [ + {type: "Vector2", name: "point"}, + {type: "Vector2", name: "center"}, + {type: "float", name: "radius"} + ] + }, + { + name: "CheckCollisionPointTriangle", + description: "Check if point is inside a triangle", + returnType: "bool", + params: [ + {type: "Vector2", name: "point"}, + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "p2"}, + {type: "Vector2", name: "p3"} + ] + }, + { + name: "CheckCollisionPointLine", + description: "Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]", + returnType: "bool", + params: [ + {type: "Vector2", name: "point"}, + {type: "Vector2", name: "p1"}, + {type: "Vector2", name: "p2"}, + {type: "int", name: "threshold"} + ] + }, + { + name: "CheckCollisionPointPoly", + description: "Check if point is within a polygon described by array of vertices", + returnType: "bool", + params: [ + {type: "Vector2", name: "point"}, + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"} + ] + }, + { + name: "CheckCollisionLines", + description: "Check the collision between two lines defined by two points each, returns collision point by reference", + returnType: "bool", + params: [ + {type: "Vector2", name: "startPos1"}, + {type: "Vector2", name: "endPos1"}, + {type: "Vector2", name: "startPos2"}, + {type: "Vector2", name: "endPos2"}, + {type: "Vector2 *", name: "collisionPoint"} + ] + }, + { + name: "GetCollisionRec", + description: "Get collision rectangle for two rectangles collision", + returnType: "Rectangle", + params: [ + {type: "Rectangle", name: "rec1"}, + {type: "Rectangle", name: "rec2"} + ] + }, + { + name: "LoadImage", + description: "Load image from file into CPU memory (RAM)", + returnType: "Image", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "LoadImageRaw", + description: "Load image from RAW file data", + returnType: "Image", + params: [ + {type: "const char *", name: "fileName"}, + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "int", name: "format"}, + {type: "int", name: "headerSize"} + ] + }, + { + name: "LoadImageAnim", + description: "Load image sequence from file (frames appended to image.data)", + returnType: "Image", + params: [ + {type: "const char *", name: "fileName"}, + {type: "int *", name: "frames"} + ] + }, + { + name: "LoadImageAnimFromMemory", + description: "Load image sequence from memory buffer", + returnType: "Image", + params: [ + {type: "const char *", name: "fileType"}, + {type: "const unsigned char *", name: "fileData"}, + {type: "int", name: "dataSize"}, + {type: "int *", name: "frames"} + ] + }, + { + name: "LoadImageFromMemory", + description: "Load image from memory buffer, fileType refers to extension: i.e. '.png'", + returnType: "Image", + params: [ + {type: "const char *", name: "fileType"}, + {type: "const unsigned char *", name: "fileData"}, + {type: "int", name: "dataSize"} + ] + }, + { + name: "LoadImageFromTexture", + description: "Load image from GPU texture data", + returnType: "Image", + params: [ + {type: "Texture2D", name: "texture"} + ] + }, + { + name: "LoadImageFromScreen", + description: "Load image from screen buffer (screenshot)", + returnType: "Image" + }, + { + name: "IsImageValid", + description: "Check if an image is valid (data and parameters)", + returnType: "bool", + params: [ + {type: "Image", name: "image"} + ] + }, + { + name: "UnloadImage", + description: "Unload image from CPU memory (RAM)", + returnType: "void", + params: [ + {type: "Image", name: "image"} + ] + }, + { + name: "ExportImage", + description: "Export image data to file, returns true on success", + returnType: "bool", + params: [ + {type: "Image", name: "image"}, + {type: "const char *", name: "fileName"} + ] + }, + { + name: "ExportImageToMemory", + description: "Export image to memory buffer, memory must be MemFree()", + returnType: "unsigned char *", + params: [ + {type: "Image", name: "image"}, + {type: "const char *", name: "fileType"}, + {type: "int *", name: "fileSize"} + ] + }, + { + name: "ExportImageAsCode", + description: "Export image as code file defining an array of bytes, returns true on success", + returnType: "bool", + params: [ + {type: "Image", name: "image"}, + {type: "const char *", name: "fileName"} + ] + }, + { + name: "GenImageColor", + description: "Generate image: plain color", + returnType: "Image", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "Color", name: "color"} + ] + }, + { + name: "GenImageGradientLinear", + description: "Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient", + returnType: "Image", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "int", name: "direction"}, + {type: "Color", name: "start"}, + {type: "Color", name: "end"} + ] + }, + { + name: "GenImageGradientRadial", + description: "Generate image: radial gradient", + returnType: "Image", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "float", name: "density"}, + {type: "Color", name: "inner"}, + {type: "Color", name: "outer"} + ] + }, + { + name: "GenImageGradientSquare", + description: "Generate image: square gradient", + returnType: "Image", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "float", name: "density"}, + {type: "Color", name: "inner"}, + {type: "Color", name: "outer"} + ] + }, + { + name: "GenImageChecked", + description: "Generate image: checked", + returnType: "Image", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "int", name: "checksX"}, + {type: "int", name: "checksY"}, + {type: "Color", name: "col1"}, + {type: "Color", name: "col2"} + ] + }, + { + name: "GenImageWhiteNoise", + description: "Generate image: white noise", + returnType: "Image", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "float", name: "factor"} + ] + }, + { + name: "GenImagePerlinNoise", + description: "Generate image: perlin noise", + returnType: "Image", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "int", name: "offsetX"}, + {type: "int", name: "offsetY"}, + {type: "float", name: "scale"} + ] + }, + { + name: "GenImageCellular", + description: "Generate image: cellular algorithm, bigger tileSize means bigger cells", + returnType: "Image", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "int", name: "tileSize"} + ] + }, + { + name: "GenImageText", + description: "Generate image: grayscale image from text data", + returnType: "Image", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "const char *", name: "text"} + ] + }, + { + name: "ImageCopy", + description: "Create an image duplicate (useful for transformations)", + returnType: "Image", + params: [ + {type: "Image", name: "image"} + ] + }, + { + name: "ImageFromImage", + description: "Create an image from another image piece", + returnType: "Image", + params: [ + {type: "Image", name: "image"}, + {type: "Rectangle", name: "rec"} + ] + }, + { + name: "ImageFromChannel", + description: "Create an image from a selected channel of another image (GRAYSCALE)", + returnType: "Image", + params: [ + {type: "Image", name: "image"}, + {type: "int", name: "selectedChannel"} + ] + }, + { + name: "ImageText", + description: "Create an image from text (default font)", + returnType: "Image", + params: [ + {type: "const char *", name: "text"}, + {type: "int", name: "fontSize"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageTextEx", + description: "Create an image from text (custom sprite font)", + returnType: "Image", + params: [ + {type: "Font", name: "font"}, + {type: "const char *", name: "text"}, + {type: "float", name: "fontSize"}, + {type: "float", name: "spacing"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "ImageFormat", + description: "Convert image data to desired format", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "int", name: "newFormat"} + ] + }, + { + name: "ImageToPOT", + description: "Convert image to POT (power-of-two)", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "Color", name: "fill"} + ] + }, + { + name: "ImageCrop", + description: "Crop an image to a defined rectangle", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "Rectangle", name: "crop"} + ] + }, + { + name: "ImageAlphaCrop", + description: "Crop image depending on alpha value", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "float", name: "threshold"} + ] + }, + { + name: "ImageAlphaClear", + description: "Clear alpha channel to desired color", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "Color", name: "color"}, + {type: "float", name: "threshold"} + ] + }, + { + name: "ImageAlphaMask", + description: "Apply alpha mask to image", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "Image", name: "alphaMask"} + ] + }, + { + name: "ImageAlphaPremultiply", + description: "Premultiply alpha channel", + returnType: "void", + params: [ + {type: "Image *", name: "image"} + ] + }, + { + name: "ImageBlurGaussian", + description: "Apply Gaussian blur using a box blur approximation", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "int", name: "blurSize"} + ] + }, + { + name: "ImageKernelConvolution", + description: "Apply custom square convolution kernel to image", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "const float *", name: "kernel"}, + {type: "int", name: "kernelSize"} + ] + }, + { + name: "ImageResize", + description: "Resize image (Bicubic scaling algorithm)", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "int", name: "newWidth"}, + {type: "int", name: "newHeight"} + ] + }, + { + name: "ImageResizeNN", + description: "Resize image (Nearest-Neighbor scaling algorithm)", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "int", name: "newWidth"}, + {type: "int", name: "newHeight"} + ] + }, + { + name: "ImageResizeCanvas", + description: "Resize canvas and fill with color", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "int", name: "newWidth"}, + {type: "int", name: "newHeight"}, + {type: "int", name: "offsetX"}, + {type: "int", name: "offsetY"}, + {type: "Color", name: "fill"} + ] + }, + { + name: "ImageMipmaps", + description: "Compute all mipmap levels for a provided image", + returnType: "void", + params: [ + {type: "Image *", name: "image"} + ] + }, + { + name: "ImageDither", + description: "Dither image data to 16bpp or lower (Floyd-Steinberg dithering)", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "int", name: "rBpp"}, + {type: "int", name: "gBpp"}, + {type: "int", name: "bBpp"}, + {type: "int", name: "aBpp"} + ] + }, + { + name: "ImageFlipVertical", + description: "Flip image vertically", + returnType: "void", + params: [ + {type: "Image *", name: "image"} + ] + }, + { + name: "ImageFlipHorizontal", + description: "Flip image horizontally", + returnType: "void", + params: [ + {type: "Image *", name: "image"} + ] + }, + { + name: "ImageRotate", + description: "Rotate image by input angle in degrees (-359 to 359)", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "int", name: "degrees"} + ] + }, + { + name: "ImageRotateCW", + description: "Rotate image clockwise 90deg", + returnType: "void", + params: [ + {type: "Image *", name: "image"} + ] + }, + { + name: "ImageRotateCCW", + description: "Rotate image counter-clockwise 90deg", + returnType: "void", + params: [ + {type: "Image *", name: "image"} + ] + }, + { + name: "ImageColorTint", + description: "Modify image color: tint", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageColorInvert", + description: "Modify image color: invert", + returnType: "void", + params: [ + {type: "Image *", name: "image"} + ] + }, + { + name: "ImageColorGrayscale", + description: "Modify image color: grayscale", + returnType: "void", + params: [ + {type: "Image *", name: "image"} + ] + }, + { + name: "ImageColorContrast", + description: "Modify image color: contrast (-100 to 100)", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "int", name: "contrast"} + ] + }, + { + name: "ImageColorBrightness", + description: "Modify image color: brightness (-255 to 255)", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "int", name: "brightness"} + ] + }, + { + name: "ImageColorReplace", + description: "Modify image color: replace color", + returnType: "void", + params: [ + {type: "Image *", name: "image"}, + {type: "Color", name: "color"}, + {type: "Color", name: "replace"} + ] + }, + { + name: "LoadImageColors", + description: "Load color data from image as a Color array (RGBA - 32bit)", + returnType: "Color *", + params: [ + {type: "Image", name: "image"} + ] + }, + { + name: "LoadImagePalette", + description: "Load colors palette from image as a Color array (RGBA - 32bit)", + returnType: "Color *", + params: [ + {type: "Image", name: "image"}, + {type: "int", name: "maxPaletteSize"}, + {type: "int *", name: "colorCount"} + ] + }, + { + name: "UnloadImageColors", + description: "Unload color data loaded with LoadImageColors()", + returnType: "void", + params: [ + {type: "Color *", name: "colors"} + ] + }, + { + name: "UnloadImagePalette", + description: "Unload colors palette loaded with LoadImagePalette()", + returnType: "void", + params: [ + {type: "Color *", name: "colors"} + ] + }, + { + name: "GetImageAlphaBorder", + description: "Get image alpha border rectangle", + returnType: "Rectangle", + params: [ + {type: "Image", name: "image"}, + {type: "float", name: "threshold"} + ] + }, + { + name: "GetImageColor", + description: "Get image pixel color at (x, y) position", + returnType: "Color", + params: [ + {type: "Image", name: "image"}, + {type: "int", name: "x"}, + {type: "int", name: "y"} + ] + }, + { + name: "ImageClearBackground", + description: "Clear image background with given color", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawPixel", + description: "Draw pixel within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawPixelV", + description: "Draw pixel within an image (Vector version)", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Vector2", name: "position"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawLine", + description: "Draw line within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "int", name: "startPosX"}, + {type: "int", name: "startPosY"}, + {type: "int", name: "endPosX"}, + {type: "int", name: "endPosY"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawLineV", + description: "Draw line within an image (Vector version)", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Vector2", name: "start"}, + {type: "Vector2", name: "end"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawLineEx", + description: "Draw a line defining thickness within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Vector2", name: "start"}, + {type: "Vector2", name: "end"}, + {type: "int", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawCircle", + description: "Draw a filled circle within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "int", name: "centerX"}, + {type: "int", name: "centerY"}, + {type: "int", name: "radius"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawCircleV", + description: "Draw a filled circle within an image (Vector version)", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Vector2", name: "center"}, + {type: "int", name: "radius"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawCircleLines", + description: "Draw circle outline within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "int", name: "centerX"}, + {type: "int", name: "centerY"}, + {type: "int", name: "radius"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawCircleLinesV", + description: "Draw circle outline within an image (Vector version)", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Vector2", name: "center"}, + {type: "int", name: "radius"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawRectangle", + description: "Draw rectangle within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawRectangleV", + description: "Draw rectangle within an image (Vector version)", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Vector2", name: "position"}, + {type: "Vector2", name: "size"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawRectangleRec", + description: "Draw rectangle within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Rectangle", name: "rec"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawRectangleLines", + description: "Draw rectangle lines within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawRectangleLinesEx", + description: "Draw rectangle lines within an image with extended parameters", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Rectangle", name: "rec"}, + {type: "int", name: "thick"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawTriangle", + description: "Draw triangle within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Vector2", name: "v1"}, + {type: "Vector2", name: "v2"}, + {type: "Vector2", name: "v3"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawTriangleGradient", + description: "Draw triangle with interpolated colors within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Vector2", name: "v1"}, + {type: "Vector2", name: "v2"}, + {type: "Vector2", name: "v3"}, + {type: "Color", name: "c1"}, + {type: "Color", name: "c2"}, + {type: "Color", name: "c3"} + ] + }, + { + name: "ImageDrawTriangleLines", + description: "Draw triangle outline within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Vector2", name: "v1"}, + {type: "Vector2", name: "v2"}, + {type: "Vector2", name: "v3"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawTriangleFan", + description: "Draw a triangle fan defined by points within an image (first vertex is the center)", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawTriangleStrip", + description: "Draw a triangle strip defined by points within an image", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "const Vector2 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDraw", + description: "Draw a source image within a destination image (tint applied to source)", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Image", name: "src"}, + {type: "Rectangle", name: "srcRec"}, + {type: "Rectangle", name: "dstRec"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "ImageDrawText", + description: "Draw text (using default font) within an image (destination)", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "const char *", name: "text"}, + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "int", name: "fontSize"}, + {type: "Color", name: "color"} + ] + }, + { + name: "ImageDrawTextEx", + description: "Draw text (custom sprite font) within an image (destination)", + returnType: "void", + params: [ + {type: "Image *", name: "dst"}, + {type: "Font", name: "font"}, + {type: "const char *", name: "text"}, + {type: "Vector2", name: "position"}, + {type: "float", name: "fontSize"}, + {type: "float", name: "spacing"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "LoadTexture", + description: "Load texture from file into GPU memory (VRAM)", + returnType: "Texture2D", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "LoadTextureFromImage", + description: "Load texture from image data", + returnType: "Texture2D", + params: [ + {type: "Image", name: "image"} + ] + }, + { + name: "LoadTextureCubemap", + description: "Load cubemap from image, multiple image cubemap layouts supported", + returnType: "TextureCubemap", + params: [ + {type: "Image", name: "image"}, + {type: "int", name: "layout"} + ] + }, + { + name: "LoadRenderTexture", + description: "Load texture for rendering (framebuffer)", + returnType: "RenderTexture2D", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"} + ] + }, + { + name: "IsTextureValid", + description: "Check if texture is valid (loaded in GPU)", + returnType: "bool", + params: [ + {type: "Texture2D", name: "texture"} + ] + }, + { + name: "UnloadTexture", + description: "Unload texture from GPU memory (VRAM)", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"} + ] + }, + { + name: "IsRenderTextureValid", + description: "Check if render texture is valid (loaded in GPU)", + returnType: "bool", + params: [ + {type: "RenderTexture2D", name: "target"} + ] + }, + { + name: "UnloadRenderTexture", + description: "Unload render texture from GPU memory (VRAM)", + returnType: "void", + params: [ + {type: "RenderTexture2D", name: "target"} + ] + }, + { + name: "UpdateTexture", + description: "Update GPU texture with new data (pixels should be able to fill texture)", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "const void *", name: "pixels"} + ] + }, + { + name: "UpdateTextureRec", + description: "Update GPU texture rectangle with new data (pixels and rec should fit in texture)", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "Rectangle", name: "rec"}, + {type: "const void *", name: "pixels"} + ] + }, + { + name: "GenTextureMipmaps", + description: "Generate GPU mipmaps for a texture", + returnType: "void", + params: [ + {type: "Texture2D *", name: "texture"} + ] + }, + { + name: "SetTextureFilter", + description: "Set texture scaling filter mode", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "int", name: "filter"} + ] + }, + { + name: "SetTextureWrap", + description: "Set texture wrapping mode", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "int", name: "wrap"} + ] + }, + { + name: "DrawTexture", + description: "Draw a Texture2D", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawTextureV", + description: "Draw a Texture2D with position defined as Vector2", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "Vector2", name: "position"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawTextureEx", + description: "Draw a Texture2D with extended parameters", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "Vector2", name: "position"}, + {type: "float", name: "rotation"}, + {type: "float", name: "scale"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawTextureRec", + description: "Draw a part of a texture defined by a rectangle", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "Rectangle", name: "rec"}, + {type: "Vector2", name: "position"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawTexturePro", + description: "Draw a part of a texture defined by a source rectangle to destination rectangle, with scaling and rotation", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "Rectangle", name: "srcrec"}, + {type: "Rectangle", name: "dstrec"}, + {type: "Vector2", name: "origin"}, + {type: "float", name: "rotation"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawTextureNPatch", + description: "Draw a texture (or part of it) that stretches or shrinks nicely", + returnType: "void", + params: [ + {type: "Texture2D", name: "texture"}, + {type: "NPatchInfo", name: "nPatchInfo"}, + {type: "Rectangle", name: "dstrec"}, + {type: "Vector2", name: "origin"}, + {type: "float", name: "rotation"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "ColorIsEqual", + description: "Check if two colors are equal", + returnType: "bool", + params: [ + {type: "Color", name: "col1"}, + {type: "Color", name: "col2"} + ] + }, + { + name: "Fade", + description: "Get color with alpha applied, alpha goes from 0.0f to 1.0f", + returnType: "Color", + params: [ + {type: "Color", name: "color"}, + {type: "float", name: "alpha"} + ] + }, + { + name: "ColorToInt", + description: "Get hexadecimal value for a Color (0xRRGGBBAA)", + returnType: "int", + params: [ + {type: "Color", name: "color"} + ] + }, + { + name: "ColorNormalize", + description: "Get Color normalized as float [0..1]", + returnType: "Vector4", + params: [ + {type: "Color", name: "color"} + ] + }, + { + name: "ColorFromNormalized", + description: "Get Color from normalized values [0..1]", + returnType: "Color", + params: [ + {type: "Vector4", name: "normalized"} + ] + }, + { + name: "ColorToHSV", + description: "Get HSV values for a Color, hue [0..360], saturation/value [0..1]", + returnType: "Vector3", + params: [ + {type: "Color", name: "color"} + ] + }, + { + name: "ColorFromHSV", + description: "Get a Color from HSV values, hue [0..360], saturation/value [0..1]", + returnType: "Color", + params: [ + {type: "float", name: "hue"}, + {type: "float", name: "saturation"}, + {type: "float", name: "value"} + ] + }, + { + name: "ColorTint", + description: "Get color multiplied with another color", + returnType: "Color", + params: [ + {type: "Color", name: "color"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "ColorBrightness", + description: "Get color with brightness correction, brightness factor goes from -1.0f to 1.0f", + returnType: "Color", + params: [ + {type: "Color", name: "color"}, + {type: "float", name: "factor"} + ] + }, + { + name: "ColorContrast", + description: "Get color with contrast correction, contrast values between -1.0f and 1.0f", + returnType: "Color", + params: [ + {type: "Color", name: "color"}, + {type: "float", name: "contrast"} + ] + }, + { + name: "ColorAlpha", + description: "Get color with alpha applied, alpha goes from 0.0f to 1.0f", + returnType: "Color", + params: [ + {type: "Color", name: "color"}, + {type: "float", name: "alpha"} + ] + }, + { + name: "ColorAlphaBlend", + description: "Get src alpha-blended into dst color with tint", + returnType: "Color", + params: [ + {type: "Color", name: "dst"}, + {type: "Color", name: "src"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "ColorLerp", + description: "Get color lerp interpolation between two colors, factor [0.0f..1.0f]", + returnType: "Color", + params: [ + {type: "Color", name: "color1"}, + {type: "Color", name: "color2"}, + {type: "float", name: "factor"} + ] + }, + { + name: "GetColor", + description: "Get Color structure from hexadecimal value", + returnType: "Color", + params: [ + {type: "unsigned int", name: "hexValue"} + ] + }, + { + name: "GetPixelColor", + description: "Get Color from a source pixel pointer of certain format", + returnType: "Color", + params: [ + {type: "const void *", name: "srcPtr"}, + {type: "int", name: "format"} + ] + }, + { + name: "SetPixelColor", + description: "Set color formatted into destination pixel pointer", + returnType: "void", + params: [ + {type: "void *", name: "dstPtr"}, + {type: "Color", name: "color"}, + {type: "int", name: "format"} + ] + }, + { + name: "GetPixelDataSize", + description: "Get pixel data size in bytes for certain format", + returnType: "int", + params: [ + {type: "int", name: "width"}, + {type: "int", name: "height"}, + {type: "int", name: "format"} + ] + }, + { + name: "GetFontDefault", + description: "Get the default Font", + returnType: "Font" + }, + { + name: "LoadFont", + description: "Load font from file into GPU memory (VRAM)", + returnType: "Font", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "LoadFontEx", + description: "Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height", + returnType: "Font", + params: [ + {type: "const char *", name: "fileName"}, + {type: "int", name: "fontSize"}, + {type: "const int *", name: "codepoints"}, + {type: "int", name: "codepointCount"} + ] + }, + { + name: "LoadFontFromImage", + description: "Load font from Image (XNA style)", + returnType: "Font", + params: [ + {type: "Image", name: "image"}, + {type: "Color", name: "key"}, + {type: "int", name: "firstChar"} + ] + }, + { + name: "LoadFontFromMemory", + description: "Load font from memory buffer, fileType refers to extension: i.e. '.ttf'", + returnType: "Font", + params: [ + {type: "const char *", name: "fileType"}, + {type: "const unsigned char *", name: "fileData"}, + {type: "int", name: "dataSize"}, + {type: "int", name: "fontSize"}, + {type: "const int *", name: "codepoints"}, + {type: "int", name: "codepointCount"} + ] + }, + { + name: "IsFontValid", + description: "Check if font is valid (font data loaded, WARNING: GPU texture not checked)", + returnType: "bool", + params: [ + {type: "Font", name: "font"} + ] + }, + { + name: "LoadFontData", + description: "Load font data for further use", + returnType: "GlyphInfo *", + params: [ + {type: "const unsigned char *", name: "fileData"}, + {type: "int", name: "dataSize"}, + {type: "int", name: "fontSize"}, + {type: "const int *", name: "codepoints"}, + {type: "int", name: "codepointCount"}, + {type: "int", name: "type"}, + {type: "int *", name: "glyphCount"} + ] + }, + { + name: "GenImageFontAtlas", + description: "Generate image font atlas using chars info", + returnType: "Image", + params: [ + {type: "const GlyphInfo *", name: "glyphs"}, + {type: "Rectangle **", name: "glyphRecs"}, + {type: "int", name: "glyphCount"}, + {type: "int", name: "fontSize"}, + {type: "int", name: "padding"}, + {type: "int", name: "packMethod"} + ] + }, + { + name: "UnloadFontData", + description: "Unload font chars info data (RAM)", + returnType: "void", + params: [ + {type: "GlyphInfo *", name: "glyphs"}, + {type: "int", name: "glyphCount"} + ] + }, + { + name: "UnloadFont", + description: "Unload font from GPU memory (VRAM)", + returnType: "void", + params: [ + {type: "Font", name: "font"} + ] + }, + { + name: "ExportFontAsCode", + description: "Export font as code file, returns true on success", + returnType: "bool", + params: [ + {type: "Font", name: "font"}, + {type: "const char *", name: "fileName"} + ] + }, + { + name: "DrawFPS", + description: "Draw current FPS", + returnType: "void", + params: [ + {type: "int", name: "posX"}, + {type: "int", name: "posY"} + ] + }, + { + name: "DrawText", + description: "Draw text (using default font)", + returnType: "void", + params: [ + {type: "const char *", name: "text"}, + {type: "int", name: "posX"}, + {type: "int", name: "posY"}, + {type: "int", name: "fontSize"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawTextEx", + description: "Draw text using font and additional parameters", + returnType: "void", + params: [ + {type: "Font", name: "font"}, + {type: "const char *", name: "text"}, + {type: "Vector2", name: "position"}, + {type: "float", name: "fontSize"}, + {type: "float", name: "spacing"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawTextPro", + description: "Draw text using Font and pro parameters (rotation)", + returnType: "void", + params: [ + {type: "Font", name: "font"}, + {type: "const char *", name: "text"}, + {type: "Vector2", name: "position"}, + {type: "Vector2", name: "origin"}, + {type: "float", name: "rotation"}, + {type: "float", name: "fontSize"}, + {type: "float", name: "spacing"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawTextCodepoint", + description: "Draw one character (codepoint)", + returnType: "void", + params: [ + {type: "Font", name: "font"}, + {type: "int", name: "codepoint"}, + {type: "Vector2", name: "position"}, + {type: "float", name: "fontSize"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawTextCodepoints", + description: "Draw multiple characters (codepoint)", + returnType: "void", + params: [ + {type: "Font", name: "font"}, + {type: "const int *", name: "codepoints"}, + {type: "int", name: "codepointCount"}, + {type: "Vector2", name: "position"}, + {type: "float", name: "fontSize"}, + {type: "float", name: "spacing"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "SetTextLineSpacing", + description: "Set vertical line spacing when drawing with line-breaks", + returnType: "void", + params: [ + {type: "int", name: "spacing"} + ] + }, + { + name: "MeasureText", + description: "Measure string width for default font", + returnType: "int", + params: [ + {type: "const char *", name: "text"}, + {type: "int", name: "fontSize"} + ] + }, + { + name: "MeasureTextEx", + description: "Measure string size for Font", + returnType: "Vector2", + params: [ + {type: "Font", name: "font"}, + {type: "const char *", name: "text"}, + {type: "float", name: "fontSize"}, + {type: "float", name: "spacing"} + ] + }, + { + name: "MeasureTextCodepoints", + description: "Measure string size for an existing array of codepoints for Font", + returnType: "Vector2", + params: [ + {type: "Font", name: "font"}, + {type: "const int *", name: "codepoints"}, + {type: "int", name: "length"}, + {type: "float", name: "fontSize"}, + {type: "float", name: "spacing"} + ] + }, + { + name: "GetGlyphIndex", + description: "Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found", + returnType: "int", + params: [ + {type: "Font", name: "font"}, + {type: "int", name: "codepoint"} + ] + }, + { + name: "GetGlyphInfo", + description: "Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found", + returnType: "GlyphInfo", + params: [ + {type: "Font", name: "font"}, + {type: "int", name: "codepoint"} + ] + }, + { + name: "GetGlyphAtlasRec", + description: "Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found", + returnType: "Rectangle", + params: [ + {type: "Font", name: "font"}, + {type: "int", name: "codepoint"} + ] + }, + { + name: "LoadUTF8", + description: "Load UTF-8 text encoded from codepoints array", + returnType: "char *", + params: [ + {type: "const int *", name: "codepoints"}, + {type: "int", name: "length"} + ] + }, + { + name: "UnloadUTF8", + description: "Unload UTF-8 text encoded from codepoints array", + returnType: "void", + params: [ + {type: "char *", name: "text"} + ] + }, + { + name: "LoadCodepoints", + description: "Load all codepoints from a UTF-8 text string, codepoints count returned by parameter", + returnType: "int *", + params: [ + {type: "const char *", name: "text"}, + {type: "int *", name: "count"} + ] + }, + { + name: "UnloadCodepoints", + description: "Unload codepoints data from memory", + returnType: "void", + params: [ + {type: "int *", name: "codepoints"} + ] + }, + { + name: "GetCodepointCount", + description: "Get total number of codepoints in a UTF-8 encoded string", + returnType: "int", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "GetCodepoint", + description: "Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure", + returnType: "int", + params: [ + {type: "const char *", name: "text"}, + {type: "int *", name: "codepointSize"} + ] + }, + { + name: "GetCodepointNext", + description: "Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure", + returnType: "int", + params: [ + {type: "const char *", name: "text"}, + {type: "int *", name: "codepointSize"} + ] + }, + { + name: "GetCodepointPrevious", + description: "Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure", + returnType: "int", + params: [ + {type: "const char *", name: "text"}, + {type: "int *", name: "codepointSize"} + ] + }, + { + name: "CodepointToUTF8", + description: "Encode one codepoint into UTF-8 byte array (array length returned as parameter)", + returnType: "const char *", + params: [ + {type: "int", name: "codepoint"}, + {type: "int *", name: "utf8Size"} + ] + }, + { + name: "LoadTextLines", + description: "Load text as separate lines ('\\n')", + returnType: "char **", + params: [ + {type: "const char *", name: "text"}, + {type: "int *", name: "count"} + ] + }, + { + name: "UnloadTextLines", + description: "Unload text lines", + returnType: "void", + params: [ + {type: "char **", name: "text"}, + {type: "int", name: "lineCount"} + ] + }, + { + name: "TextCopy", + description: "Copy one string to another, returns bytes copied", + returnType: "int", + params: [ + {type: "char *", name: "dst"}, + {type: "const char *", name: "src"} + ] + }, + { + name: "TextIsEqual", + description: "Check if two text strings are equal", + returnType: "bool", + params: [ + {type: "const char *", name: "text1"}, + {type: "const char *", name: "text2"} + ] + }, + { + name: "TextLength", + description: "Get text length, checks for '\\0' ending", + returnType: "unsigned int", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "TextFormat", + description: "Text formatting with variables (sprintf() style)", + returnType: "const char *", + params: [ + {type: "const char *", name: "text"}, + {type: "...", name: "args"} + ] + }, + { + name: "TextSubtext", + description: "Get a piece of a text string", + returnType: "const char *", + params: [ + {type: "const char *", name: "text"}, + {type: "int", name: "position"}, + {type: "int", name: "length"} + ] + }, + { + name: "TextRemoveSpaces", + description: "Remove text spaces, concat words", + returnType: "const char *", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "GetTextBetween", + description: "Get text between two strings", + returnType: "char *", + params: [ + {type: "const char *", name: "text"}, + {type: "const char *", name: "begin"}, + {type: "const char *", name: "end"} + ] + }, + { + name: "TextReplace", + description: "Replace text string with new string", + returnType: "char *", + params: [ + {type: "const char *", name: "text"}, + {type: "const char *", name: "search"}, + {type: "const char *", name: "replacement"} + ] + }, + { + name: "TextReplaceAlloc", + description: "Replace text string with new string, memory must be MemFree()", + returnType: "char *", + params: [ + {type: "const char *", name: "text"}, + {type: "const char *", name: "search"}, + {type: "const char *", name: "replacement"} + ] + }, + { + name: "TextReplaceBetween", + description: "Replace text between two specific strings", + returnType: "char *", + params: [ + {type: "const char *", name: "text"}, + {type: "const char *", name: "begin"}, + {type: "const char *", name: "end"}, + {type: "const char *", name: "replacement"} + ] + }, + { + name: "TextReplaceBetweenAlloc", + description: "Replace text between two specific strings, memory must be MemFree()", + returnType: "char *", + params: [ + {type: "const char *", name: "text"}, + {type: "const char *", name: "begin"}, + {type: "const char *", name: "end"}, + {type: "const char *", name: "replacement"} + ] + }, + { + name: "TextInsert", + description: "Insert text in a defined byte position", + returnType: "char *", + params: [ + {type: "const char *", name: "text"}, + {type: "const char *", name: "insert"}, + {type: "int", name: "position"} + ] + }, + { + name: "TextInsertAlloc", + description: "Insert text in a defined byte position, memory must be MemFree()", + returnType: "char *", + params: [ + {type: "const char *", name: "text"}, + {type: "const char *", name: "insert"}, + {type: "int", name: "position"} + ] + }, + { + name: "TextJoin", + description: "Join text strings with delimiter", + returnType: "char *", + params: [ + {type: "char **", name: "textList"}, + {type: "int", name: "count"}, + {type: "const char *", name: "delimiter"} + ] + }, + { + name: "TextSplit", + description: "Split text into multiple strings, using MAX_TEXTSPLIT_COUNT static strings", + returnType: "char **", + params: [ + {type: "const char *", name: "text"}, + {type: "char", name: "delimiter"}, + {type: "int *", name: "count"} + ] + }, + { + name: "TextAppend", + description: "Append text at specific position and move cursor", + returnType: "void", + params: [ + {type: "char *", name: "text"}, + {type: "const char *", name: "append"}, + {type: "int *", name: "position"} + ] + }, + { + name: "TextFindIndex", + description: "Find first text occurrence within a string, -1 if not found", + returnType: "int", + params: [ + {type: "const char *", name: "text"}, + {type: "const char *", name: "search"} + ] + }, + { + name: "TextToUpper", + description: "Get upper case version of provided string", + returnType: "char *", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "TextToLower", + description: "Get lower case version of provided string", + returnType: "char *", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "TextToPascal", + description: "Get Pascal case notation version of provided string", + returnType: "char *", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "TextToSnake", + description: "Get Snake case notation version of provided string", + returnType: "char *", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "TextToCamel", + description: "Get Camel case notation version of provided string", + returnType: "char *", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "TextToInteger", + description: "Get integer value from text", + returnType: "int", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "TextToFloat", + description: "Get float value from text", + returnType: "float", + params: [ + {type: "const char *", name: "text"} + ] + }, + { + name: "DrawLine3D", + description: "Draw a line in 3D world space", + returnType: "void", + params: [ + {type: "Vector3", name: "startPos"}, + {type: "Vector3", name: "endPos"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawPoint3D", + description: "Draw a point in 3D space, actually a small line", + returnType: "void", + params: [ + {type: "Vector3", name: "position"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCircle3D", + description: "Draw a circle in 3D world space", + returnType: "void", + params: [ + {type: "Vector3", name: "center"}, + {type: "float", name: "radius"}, + {type: "Vector3", name: "rotationAxis"}, + {type: "float", name: "rotationAngle"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawTriangle3D", + description: "Draw a color-filled triangle (vertex in counter-clockwise order!)", + returnType: "void", + params: [ + {type: "Vector3", name: "v1"}, + {type: "Vector3", name: "v2"}, + {type: "Vector3", name: "v3"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawTriangleStrip3D", + description: "Draw a triangle strip defined by points", + returnType: "void", + params: [ + {type: "const Vector3 *", name: "points"}, + {type: "int", name: "pointCount"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCube", + description: "Draw cube", + returnType: "void", + params: [ + {type: "Vector3", name: "position"}, + {type: "float", name: "width"}, + {type: "float", name: "height"}, + {type: "float", name: "length"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCubeV", + description: "Draw cube (Vector version)", + returnType: "void", + params: [ + {type: "Vector3", name: "position"}, + {type: "Vector3", name: "size"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCubeWires", + description: "Draw cube wires", + returnType: "void", + params: [ + {type: "Vector3", name: "position"}, + {type: "float", name: "width"}, + {type: "float", name: "height"}, + {type: "float", name: "length"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCubeWiresV", + description: "Draw cube wires (Vector version)", + returnType: "void", + params: [ + {type: "Vector3", name: "position"}, + {type: "Vector3", name: "size"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSphere", + description: "Draw sphere", + returnType: "void", + params: [ + {type: "Vector3", name: "centerPos"}, + {type: "float", name: "radius"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSphereEx", + description: "Draw sphere with extended parameters", + returnType: "void", + params: [ + {type: "Vector3", name: "centerPos"}, + {type: "float", name: "radius"}, + {type: "int", name: "rings"}, + {type: "int", name: "slices"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawSphereWires", + description: "Draw sphere wires", + returnType: "void", + params: [ + {type: "Vector3", name: "centerPos"}, + {type: "float", name: "radius"}, + {type: "int", name: "rings"}, + {type: "int", name: "slices"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCylinder", + description: "Draw a cylinder/cone", + returnType: "void", + params: [ + {type: "Vector3", name: "position"}, + {type: "float", name: "radiusTop"}, + {type: "float", name: "radiusBottom"}, + {type: "float", name: "height"}, + {type: "int", name: "sides"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCylinderEx", + description: "Draw a cylinder with base at startPos and top at endPos", + returnType: "void", + params: [ + {type: "Vector3", name: "startPos"}, + {type: "Vector3", name: "endPos"}, + {type: "float", name: "startRadius"}, + {type: "float", name: "endRadius"}, + {type: "int", name: "sides"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCylinderWires", + description: "Draw a cylinder/cone wires", + returnType: "void", + params: [ + {type: "Vector3", name: "position"}, + {type: "float", name: "radiusTop"}, + {type: "float", name: "radiusBottom"}, + {type: "float", name: "height"}, + {type: "int", name: "sides"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCylinderWiresEx", + description: "Draw a cylinder wires with base at startPos and top at endPos", + returnType: "void", + params: [ + {type: "Vector3", name: "startPos"}, + {type: "Vector3", name: "endPos"}, + {type: "float", name: "startRadius"}, + {type: "float", name: "endRadius"}, + {type: "int", name: "sides"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCapsule", + description: "Draw a capsule with the center of its sphere caps at startPos and endPos", + returnType: "void", + params: [ + {type: "Vector3", name: "startPos"}, + {type: "Vector3", name: "endPos"}, + {type: "float", name: "radius"}, + {type: "int", name: "rings"}, + {type: "int", name: "slices"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawCapsuleWires", + description: "Draw capsule wireframe with the center of its sphere caps at startPos and endPos", + returnType: "void", + params: [ + {type: "Vector3", name: "startPos"}, + {type: "Vector3", name: "endPos"}, + {type: "float", name: "radius"}, + {type: "int", name: "rings"}, + {type: "int", name: "slices"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawPlane", + description: "Draw a plane XZ", + returnType: "void", + params: [ + {type: "Vector3", name: "centerPos"}, + {type: "Vector2", name: "size"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawRay", + description: "Draw a ray line", + returnType: "void", + params: [ + {type: "Ray", name: "ray"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawGrid", + description: "Draw a grid (centered at (0, 0, 0))", + returnType: "void", + params: [ + {type: "int", name: "slices"}, + {type: "float", name: "spacing"} + ] + }, + { + name: "LoadModel", + description: "Load model from files (meshes and materials)", + returnType: "Model", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "LoadModelFromMesh", + description: "Load model from generated mesh (default material)", + returnType: "Model", + params: [ + {type: "Mesh", name: "mesh"} + ] + }, + { + name: "IsModelValid", + description: "Check if model is valid (loaded in GPU, VAO/VBOs)", + returnType: "bool", + params: [ + {type: "Model", name: "model"} + ] + }, + { + name: "UnloadModel", + description: "Unload model (including meshes) from memory (RAM and/or VRAM)", + returnType: "void", + params: [ + {type: "Model", name: "model"} + ] + }, + { + name: "GetModelBoundingBox", + description: "Compute model bounding box limits (considers all meshes)", + returnType: "BoundingBox", + params: [ + {type: "Model", name: "model"} + ] + }, + { + name: "DrawModel", + description: "Draw a model (with texture if set)", + returnType: "void", + params: [ + {type: "Model", name: "model"}, + {type: "Vector3", name: "position"}, + {type: "float", name: "scale"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawModelEx", + description: "Draw a model with extended parameters", + returnType: "void", + params: [ + {type: "Model", name: "model"}, + {type: "Vector3", name: "position"}, + {type: "Vector3", name: "rotationAxis"}, + {type: "float", name: "rotationAngle"}, + {type: "Vector3", name: "scale"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawModelWires", + description: "Draw a model wires (with texture if set)", + returnType: "void", + params: [ + {type: "Model", name: "model"}, + {type: "Vector3", name: "position"}, + {type: "float", name: "scale"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawModelWiresEx", + description: "Draw a model wires (with texture if set) with extended parameters", + returnType: "void", + params: [ + {type: "Model", name: "model"}, + {type: "Vector3", name: "position"}, + {type: "Vector3", name: "rotationAxis"}, + {type: "float", name: "rotationAngle"}, + {type: "Vector3", name: "scale"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawBoundingBox", + description: "Draw bounding box (wires)", + returnType: "void", + params: [ + {type: "BoundingBox", name: "box"}, + {type: "Color", name: "color"} + ] + }, + { + name: "DrawBillboard", + description: "Draw a billboard texture", + returnType: "void", + params: [ + {type: "Camera", name: "camera"}, + {type: "Texture2D", name: "texture"}, + {type: "Vector3", name: "position"}, + {type: "float", name: "scale"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawBillboardRec", + description: "Draw a billboard texture defined by rectangle", + returnType: "void", + params: [ + {type: "Camera", name: "camera"}, + {type: "Texture2D", name: "texture"}, + {type: "Rectangle", name: "rec"}, + {type: "Vector3", name: "position"}, + {type: "Vector2", name: "size"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "DrawBillboardPro", + description: "Draw a billboard texture defined by source rectangle with scaling and rotation", + returnType: "void", + params: [ + {type: "Camera", name: "camera"}, + {type: "Texture2D", name: "texture"}, + {type: "Rectangle", name: "rec"}, + {type: "Vector3", name: "position"}, + {type: "Vector3", name: "up"}, + {type: "Vector2", name: "size"}, + {type: "Vector2", name: "origin"}, + {type: "float", name: "rotation"}, + {type: "Color", name: "tint"} + ] + }, + { + name: "UploadMesh", + description: "Upload mesh vertex data in GPU and provide VAO/VBO ids", + returnType: "void", + params: [ + {type: "Mesh *", name: "mesh"}, + {type: "bool", name: "dynamic"} + ] + }, + { + name: "UpdateMeshBuffer", + description: "Update mesh vertex data in GPU for a specific buffer index", + returnType: "void", + params: [ + {type: "Mesh", name: "mesh"}, + {type: "int", name: "index"}, + {type: "const void *", name: "data"}, + {type: "int", name: "dataSize"}, + {type: "int", name: "offset"} + ] + }, + { + name: "UnloadMesh", + description: "Unload mesh data from CPU and GPU", + returnType: "void", + params: [ + {type: "Mesh", name: "mesh"} + ] + }, + { + name: "DrawMesh", + description: "Draw a 3d mesh with material and transform", + returnType: "void", + params: [ + {type: "Mesh", name: "mesh"}, + {type: "Material", name: "material"}, + {type: "Matrix", name: "transform"} + ] + }, + { + name: "DrawMeshInstanced", + description: "Draw multiple mesh instances with material and different transforms", + returnType: "void", + params: [ + {type: "Mesh", name: "mesh"}, + {type: "Material", name: "material"}, + {type: "const Matrix *", name: "transforms"}, + {type: "int", name: "instances"} + ] + }, + { + name: "GetMeshBoundingBox", + description: "Compute mesh bounding box limits", + returnType: "BoundingBox", + params: [ + {type: "Mesh", name: "mesh"} + ] + }, + { + name: "GenMeshTangents", + description: "Compute mesh tangents", + returnType: "void", + params: [ + {type: "Mesh *", name: "mesh"} + ] + }, + { + name: "ExportMesh", + description: "Export mesh data to file, returns true on success", + returnType: "bool", + params: [ + {type: "Mesh", name: "mesh"}, + {type: "const char *", name: "fileName"} + ] + }, + { + name: "ExportMeshAsCode", + description: "Export mesh as code file (.h) defining multiple arrays of vertex attributes", + returnType: "bool", + params: [ + {type: "Mesh", name: "mesh"}, + {type: "const char *", name: "fileName"} + ] + }, + { + name: "GenMeshPoly", + description: "Generate polygonal mesh", + returnType: "Mesh", + params: [ + {type: "int", name: "sides"}, + {type: "float", name: "radius"} + ] + }, + { + name: "GenMeshPlane", + description: "Generate plane mesh (with subdivisions)", + returnType: "Mesh", + params: [ + {type: "float", name: "width"}, + {type: "float", name: "length"}, + {type: "int", name: "resX"}, + {type: "int", name: "resZ"} + ] + }, + { + name: "GenMeshCube", + description: "Generate cuboid mesh", + returnType: "Mesh", + params: [ + {type: "float", name: "width"}, + {type: "float", name: "height"}, + {type: "float", name: "length"} + ] + }, + { + name: "GenMeshSphere", + description: "Generate sphere mesh (standard sphere)", + returnType: "Mesh", + params: [ + {type: "float", name: "radius"}, + {type: "int", name: "rings"}, + {type: "int", name: "slices"} + ] + }, + { + name: "GenMeshHemiSphere", + description: "Generate half-sphere mesh (no bottom cap)", + returnType: "Mesh", + params: [ + {type: "float", name: "radius"}, + {type: "int", name: "rings"}, + {type: "int", name: "slices"} + ] + }, + { + name: "GenMeshCylinder", + description: "Generate cylinder mesh", + returnType: "Mesh", + params: [ + {type: "float", name: "radius"}, + {type: "float", name: "height"}, + {type: "int", name: "slices"} + ] + }, + { + name: "GenMeshCone", + description: "Generate cone/pyramid mesh", + returnType: "Mesh", + params: [ + {type: "float", name: "radius"}, + {type: "float", name: "height"}, + {type: "int", name: "slices"} + ] + }, + { + name: "GenMeshTorus", + description: "Generate torus mesh", + returnType: "Mesh", + params: [ + {type: "float", name: "radius"}, + {type: "float", name: "size"}, + {type: "int", name: "radSeg"}, + {type: "int", name: "sides"} + ] + }, + { + name: "GenMeshKnot", + description: "Generate trefoil knot mesh", + returnType: "Mesh", + params: [ + {type: "float", name: "radius"}, + {type: "float", name: "size"}, + {type: "int", name: "radSeg"}, + {type: "int", name: "sides"} + ] + }, + { + name: "GenMeshHeightmap", + description: "Generate heightmap mesh from image data", + returnType: "Mesh", + params: [ + {type: "Image", name: "heightmap"}, + {type: "Vector3", name: "size"} + ] + }, + { + name: "GenMeshCubicmap", + description: "Generate cubes-based map mesh from image data", + returnType: "Mesh", + params: [ + {type: "Image", name: "cubicmap"}, + {type: "Vector3", name: "cubeSize"} + ] + }, + { + name: "LoadMaterials", + description: "Load materials from model file", + returnType: "Material *", + params: [ + {type: "const char *", name: "fileName"}, + {type: "int *", name: "materialCount"} + ] + }, + { + name: "LoadMaterialDefault", + description: "Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)", + returnType: "Material" + }, + { + name: "IsMaterialValid", + description: "Check if material is valid (shader assigned, map textures loaded in GPU)", + returnType: "bool", + params: [ + {type: "Material", name: "material"} + ] + }, + { + name: "UnloadMaterial", + description: "Unload material from GPU memory (VRAM)", + returnType: "void", + params: [ + {type: "Material", name: "material"} + ] + }, + { + name: "SetMaterialTexture", + description: "Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...)", + returnType: "void", + params: [ + {type: "Material *", name: "material"}, + {type: "int", name: "mapType"}, + {type: "Texture2D", name: "texture"} + ] + }, + { + name: "SetModelMeshMaterial", + description: "Set material for a mesh", + returnType: "void", + params: [ + {type: "Model *", name: "model"}, + {type: "int", name: "meshId"}, + {type: "int", name: "materialId"} + ] + }, + { + name: "LoadModelAnimations", + description: "Load model animations from file", + returnType: "ModelAnimation *", + params: [ + {type: "const char *", name: "fileName"}, + {type: "int *", name: "animCount"} + ] + }, + { + name: "UpdateModelAnimation", + description: "Update model animation pose (vertex buffers and bone matrices)", + returnType: "void", + params: [ + {type: "Model", name: "model"}, + {type: "ModelAnimation", name: "anim"}, + {type: "float", name: "frame"} + ] + }, + { + name: "UpdateModelAnimationEx", + description: "Update model animation pose, blending two animations", + returnType: "void", + params: [ + {type: "Model", name: "model"}, + {type: "ModelAnimation", name: "animA"}, + {type: "float", name: "frameA"}, + {type: "ModelAnimation", name: "animB"}, + {type: "float", name: "frameB"}, + {type: "float", name: "blend"} + ] + }, + { + name: "UnloadModelAnimations", + description: "Unload animation array data", + returnType: "void", + params: [ + {type: "ModelAnimation *", name: "animations"}, + {type: "int", name: "animCount"} + ] + }, + { + name: "IsModelAnimationValid", + description: "Check model animation skeleton match", + returnType: "bool", + params: [ + {type: "Model", name: "model"}, + {type: "ModelAnimation", name: "anim"} + ] + }, + { + name: "CheckCollisionSpheres", + description: "Check collision between two spheres", + returnType: "bool", + params: [ + {type: "Vector3", name: "center1"}, + {type: "float", name: "radius1"}, + {type: "Vector3", name: "center2"}, + {type: "float", name: "radius2"} + ] + }, + { + name: "CheckCollisionBoxes", + description: "Check collision between two bounding boxes", + returnType: "bool", + params: [ + {type: "BoundingBox", name: "box1"}, + {type: "BoundingBox", name: "box2"} + ] + }, + { + name: "CheckCollisionBoxSphere", + description: "Check collision between box and sphere", + returnType: "bool", + params: [ + {type: "BoundingBox", name: "box"}, + {type: "Vector3", name: "center"}, + {type: "float", name: "radius"} + ] + }, + { + name: "GetRayCollisionSphere", + description: "Get collision info between ray and sphere", + returnType: "RayCollision", + params: [ + {type: "Ray", name: "ray"}, + {type: "Vector3", name: "center"}, + {type: "float", name: "radius"} + ] + }, + { + name: "GetRayCollisionBox", + description: "Get collision info between ray and box", + returnType: "RayCollision", + params: [ + {type: "Ray", name: "ray"}, + {type: "BoundingBox", name: "box"} + ] + }, + { + name: "GetRayCollisionMesh", + description: "Get collision info between ray and mesh", + returnType: "RayCollision", + params: [ + {type: "Ray", name: "ray"}, + {type: "Mesh", name: "mesh"}, + {type: "Matrix", name: "transform"} + ] + }, + { + name: "GetRayCollisionTriangle", + description: "Get collision info between ray and triangle", + returnType: "RayCollision", + params: [ + {type: "Ray", name: "ray"}, + {type: "Vector3", name: "p1"}, + {type: "Vector3", name: "p2"}, + {type: "Vector3", name: "p3"} + ] + }, + { + name: "GetRayCollisionQuad", + description: "Get collision info between ray and quad", + returnType: "RayCollision", + params: [ + {type: "Ray", name: "ray"}, + {type: "Vector3", name: "p1"}, + {type: "Vector3", name: "p2"}, + {type: "Vector3", name: "p3"}, + {type: "Vector3", name: "p4"} + ] + }, + { + name: "InitAudioDevice", + description: "Initialize audio device and context", + returnType: "void" + }, + { + name: "CloseAudioDevice", + description: "Close the audio device and context", + returnType: "void" + }, + { + name: "IsAudioDeviceReady", + description: "Check if audio device has been initialized successfully", + returnType: "bool" + }, + { + name: "SetMasterVolume", + description: "Set master volume (listener)", + returnType: "void", + params: [ + {type: "float", name: "volume"} + ] + }, + { + name: "GetMasterVolume", + description: "Get master volume (listener)", + returnType: "float" + }, + { + name: "LoadWave", + description: "Load wave data from file", + returnType: "Wave", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "LoadWaveFromMemory", + description: "Load wave from memory buffer, fileType refers to extension: i.e. '.wav'", + returnType: "Wave", + params: [ + {type: "const char *", name: "fileType"}, + {type: "const unsigned char *", name: "fileData"}, + {type: "int", name: "dataSize"} + ] + }, + { + name: "IsWaveValid", + description: "Check if wave data is valid (data loaded and parameters)", + returnType: "bool", + params: [ + {type: "Wave", name: "wave"} + ] + }, + { + name: "LoadSound", + description: "Load sound from file", + returnType: "Sound", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "LoadSoundFromWave", + description: "Load sound from wave data", + returnType: "Sound", + params: [ + {type: "Wave", name: "wave"} + ] + }, + { + name: "LoadSoundAlias", + description: "Load sound alias, new sound that shares the same sample data as the source sound, does not own the sound data", + returnType: "Sound", + params: [ + {type: "Sound", name: "source"} + ] + }, + { + name: "IsSoundValid", + description: "Check if sound is valid (data loaded and buffers initialized)", + returnType: "bool", + params: [ + {type: "Sound", name: "sound"} + ] + }, + { + name: "UpdateSound", + description: "Update sound buffer with new data (default data format: 32 bit float, stereo)", + returnType: "void", + params: [ + {type: "Sound", name: "sound"}, + {type: "const void *", name: "data"}, + {type: "int", name: "frameCount"} + ] + }, + { + name: "UnloadWave", + description: "Unload wave data", + returnType: "void", + params: [ + {type: "Wave", name: "wave"} + ] + }, + { + name: "UnloadSound", + description: "Unload sound", + returnType: "void", + params: [ + {type: "Sound", name: "sound"} + ] + }, + { + name: "UnloadSoundAlias", + description: "Unload sound alias (does not deallocate sample data)", + returnType: "void", + params: [ + {type: "Sound", name: "alias"} + ] + }, + { + name: "ExportWave", + description: "Export wave data to file, returns true on success", + returnType: "bool", + params: [ + {type: "Wave", name: "wave"}, + {type: "const char *", name: "fileName"} + ] + }, + { + name: "ExportWaveAsCode", + description: "Export wave sample data to code (.h), returns true on success", + returnType: "bool", + params: [ + {type: "Wave", name: "wave"}, + {type: "const char *", name: "fileName"} + ] + }, + { + name: "PlaySound", + description: "Play a sound", + returnType: "void", + params: [ + {type: "Sound", name: "sound"} + ] + }, + { + name: "StopSound", + description: "Stop playing a sound", + returnType: "void", + params: [ + {type: "Sound", name: "sound"} + ] + }, + { + name: "PauseSound", + description: "Pause a sound", + returnType: "void", + params: [ + {type: "Sound", name: "sound"} + ] + }, + { + name: "ResumeSound", + description: "Resume a paused sound", + returnType: "void", + params: [ + {type: "Sound", name: "sound"} + ] + }, + { + name: "IsSoundPlaying", + description: "Check if sound is currently playing", + returnType: "bool", + params: [ + {type: "Sound", name: "sound"} + ] + }, + { + name: "SetSoundVolume", + description: "Set volume for a sound (1.0 is max level)", + returnType: "void", + params: [ + {type: "Sound", name: "sound"}, + {type: "float", name: "volume"} + ] + }, + { + name: "SetSoundPitch", + description: "Set pitch for a sound (1.0 is base level)", + returnType: "void", + params: [ + {type: "Sound", name: "sound"}, + {type: "float", name: "pitch"} + ] + }, + { + name: "SetSoundPan", + description: "Set pan for a sound (-1.0 left, 0.0 center, 1.0 right)", + returnType: "void", + params: [ + {type: "Sound", name: "sound"}, + {type: "float", name: "pan"} + ] + }, + { + name: "WaveCopy", + description: "Copy a wave to a new wave", + returnType: "Wave", + params: [ + {type: "Wave", name: "wave"} + ] + }, + { + name: "WaveCrop", + description: "Crop a wave to defined frames range", + returnType: "void", + params: [ + {type: "Wave *", name: "wave"}, + {type: "int", name: "initFrame"}, + {type: "int", name: "finalFrame"} + ] + }, + { + name: "WaveFormat", + description: "Convert wave data to desired format", + returnType: "void", + params: [ + {type: "Wave *", name: "wave"}, + {type: "int", name: "sampleRate"}, + {type: "int", name: "sampleSize"}, + {type: "int", name: "channels"} + ] + }, + { + name: "LoadWaveSamples", + description: "Load samples data from wave as a 32bit float data array", + returnType: "float *", + params: [ + {type: "Wave", name: "wave"} + ] + }, + { + name: "UnloadWaveSamples", + description: "Unload samples data loaded with LoadWaveSamples()", + returnType: "void", + params: [ + {type: "float *", name: "samples"} + ] + }, + { + name: "LoadMusicStream", + description: "Load music stream from file", + returnType: "Music", + params: [ + {type: "const char *", name: "fileName"} + ] + }, + { + name: "LoadMusicStreamFromMemory", + description: "Load music stream from data", + returnType: "Music", + params: [ + {type: "const char *", name: "fileType"}, + {type: "const unsigned char *", name: "data"}, + {type: "int", name: "dataSize"} + ] + }, + { + name: "IsMusicValid", + description: "Check if music stream is valid (context and buffers initialized)", + returnType: "bool", + params: [ + {type: "Music", name: "music"} + ] + }, + { + name: "UnloadMusicStream", + description: "Unload music stream", + returnType: "void", + params: [ + {type: "Music", name: "music"} + ] + }, + { + name: "PlayMusicStream", + description: "Start music playing", + returnType: "void", + params: [ + {type: "Music", name: "music"} + ] + }, + { + name: "IsMusicStreamPlaying", + description: "Check if music is playing", + returnType: "bool", + params: [ + {type: "Music", name: "music"} + ] + }, + { + name: "UpdateMusicStream", + description: "Update buffers for music streaming", + returnType: "void", + params: [ + {type: "Music", name: "music"} + ] + }, + { + name: "StopMusicStream", + description: "Stop music playing", + returnType: "void", + params: [ + {type: "Music", name: "music"} + ] + }, + { + name: "PauseMusicStream", + description: "Pause music playing", + returnType: "void", + params: [ + {type: "Music", name: "music"} + ] + }, + { + name: "ResumeMusicStream", + description: "Resume playing paused music", + returnType: "void", + params: [ + {type: "Music", name: "music"} + ] + }, + { + name: "SeekMusicStream", + description: "Seek music to a position (in seconds)", + returnType: "void", + params: [ + {type: "Music", name: "music"}, + {type: "float", name: "position"} + ] + }, + { + name: "SetMusicVolume", + description: "Set volume for music (1.0 is max level)", + returnType: "void", + params: [ + {type: "Music", name: "music"}, + {type: "float", name: "volume"} + ] + }, + { + name: "SetMusicPitch", + description: "Set pitch for music (1.0 is base level)", + returnType: "void", + params: [ + {type: "Music", name: "music"}, + {type: "float", name: "pitch"} + ] + }, + { + name: "SetMusicPan", + description: "Set pan for music (-1.0 left, 0.0 center, 1.0 right)", + returnType: "void", + params: [ + {type: "Music", name: "music"}, + {type: "float", name: "pan"} + ] + }, + { + name: "GetMusicTimeLength", + description: "Get music time length (in seconds)", + returnType: "float", + params: [ + {type: "Music", name: "music"} + ] + }, + { + name: "GetMusicTimePlayed", + description: "Get current music time played (in seconds)", + returnType: "float", + params: [ + {type: "Music", name: "music"} + ] + }, + { + name: "LoadAudioStream", + description: "Load audio stream (to stream raw audio pcm data)", + returnType: "AudioStream", + params: [ + {type: "unsigned int", name: "sampleRate"}, + {type: "unsigned int", name: "sampleSize"}, + {type: "unsigned int", name: "channels"} + ] + }, + { + name: "IsAudioStreamValid", + description: "Check if an audio stream is valid (buffers initialized)", + returnType: "bool", + params: [ + {type: "AudioStream", name: "stream"} + ] + }, + { + name: "UnloadAudioStream", + description: "Unload audio stream and free memory", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"} + ] + }, + { + name: "UpdateAudioStream", + description: "Update audio stream buffers with data", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"}, + {type: "const void *", name: "data"}, + {type: "int", name: "frameCount"} + ] + }, + { + name: "IsAudioStreamProcessed", + description: "Check if any audio stream buffers requires refill", + returnType: "bool", + params: [ + {type: "AudioStream", name: "stream"} + ] + }, + { + name: "PlayAudioStream", + description: "Play audio stream", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"} + ] + }, + { + name: "PauseAudioStream", + description: "Pause audio stream", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"} + ] + }, + { + name: "ResumeAudioStream", + description: "Resume audio stream", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"} + ] + }, + { + name: "IsAudioStreamPlaying", + description: "Check if audio stream is playing", + returnType: "bool", + params: [ + {type: "AudioStream", name: "stream"} + ] + }, + { + name: "StopAudioStream", + description: "Stop audio stream", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"} + ] + }, + { + name: "SetAudioStreamVolume", + description: "Set volume for audio stream (1.0 is max level)", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"}, + {type: "float", name: "volume"} + ] + }, + { + name: "SetAudioStreamPitch", + description: "Set pitch for audio stream (1.0 is base level)", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"}, + {type: "float", name: "pitch"} + ] + }, + { + name: "SetAudioStreamPan", + description: "Set pan for audio stream (-1.0 left, 0.0 center, 1.0 right)", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"}, + {type: "float", name: "pan"} + ] + }, + { + name: "SetAudioStreamBufferSizeDefault", + description: "Default size for new audio streams", + returnType: "void", + params: [ + {type: "int", name: "size"} + ] + }, + { + name: "SetAudioStreamCallback", + description: "Audio thread callback to request new data", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"}, + {type: "AudioCallback", name: "callback"} + ] + }, + { + name: "AttachAudioStreamProcessor", + description: "Attach audio stream processor to stream, receives frames x 2 samples as 'float' (stereo)", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"}, + {type: "AudioCallback", name: "processor"} + ] + }, + { + name: "DetachAudioStreamProcessor", + description: "Detach audio stream processor from stream", + returnType: "void", + params: [ + {type: "AudioStream", name: "stream"}, + {type: "AudioCallback", name: "processor"} + ] + }, + { + name: "AttachAudioMixedProcessor", + description: "Attach audio stream processor to the entire audio pipeline, receives frames x 2 samples as 'float' (stereo)", + returnType: "void", + params: [ + {type: "AudioCallback", name: "processor"} + ] + }, + { + name: "DetachAudioMixedProcessor", + description: "Detach audio stream processor from the entire audio pipeline", + returnType: "void", + params: [ + {type: "AudioCallback", name: "processor"} + ] + } + ] +}; diff --git a/tools/rlparser/rlparser.c b/tools/rlparser/rlparser.c index dc2afe114..9fd94c564 100644 --- a/tools/rlparser/rlparser.c +++ b/tools/rlparser/rlparser.c @@ -146,7 +146,7 @@ typedef struct FunctionInfo { } FunctionInfo; // Output format for parsed data -typedef enum { DEFAULT = 0, JSON, XML, LUA, CODE } OutputFormat; +typedef enum { DEFAULT = 0, JSON, XML, LUA, JS, CODE } OutputFormat; //---------------------------------------------------------------------------------- // Global Variables Definition @@ -1062,6 +1062,7 @@ int main(int argc, char *argv[]) else if (outputFormat == JSON) printf("\nOutput format: JSON\n\n"); else if (outputFormat == XML) printf("\nOutput format: XML\n\n"); else if (outputFormat == LUA) printf("\nOutput format: LUA\n\n"); + else if (outputFormat == JS) printf("\nOutput format: JS\n\n"); else if (outputFormat == CODE) printf("\nOutput format: CODE\n\n"); ExportParsedData(outFileName, outputFormat); @@ -1098,10 +1099,10 @@ static void ShowCommandLineInfo(void) printf(" -i, --input : Define input header file to parse.\n"); printf(" NOTE: If not specified, defaults to: raylib.h\n\n"); printf(" -o, --output : Define output file and format.\n"); - printf(" Supported extensions: .txt, .json, .xml, .lua, .h\n"); + printf(" Supported extensions: .txt, .json, .xml, .lua, .js, .h\n"); printf(" NOTE: If not specified, defaults to: raylib_api.txt\n\n"); printf(" -f, --format : Define output format for parser data.\n"); - printf(" Supported types: DEFAULT, JSON, XML, LUA, CODE\n\n"); + printf(" Supported types: DEFAULT, JSON, XML, LUA, JS, CODE\n\n"); printf(" -d, --define : Define functions specifiers (i.e. RLAPI for raylib.h, RMAPI for raymath.h, etc.)\n"); printf(" NOTE: If no specifier defined, defaults to: RLAPI\n\n"); printf(" -t, --truncate : Define string to truncate input after (i.e. \"RLGL IMPLEMENTATION\" for rlgl.h)\n"); @@ -1154,6 +1155,7 @@ static void ProcessCommandLine(int argc, char *argv[]) else if (IsTextEqual(argv[i + 1], "JSON\0", 5)) outputFormat = JSON; else if (IsTextEqual(argv[i + 1], "XML\0", 4)) outputFormat = XML; else if (IsTextEqual(argv[i + 1], "LUA\0", 4)) outputFormat = LUA; + else if (IsTextEqual(argv[i + 1], "JS\0", 3)) outputFormat = JS; else if (IsTextEqual(argv[i + 1], "CODE\0", 5)) outputFormat = CODE; } else printf("WARNING: No format parameters provided\n"); @@ -1863,8 +1865,8 @@ static void ExportParsedData(const char *fileName, int format) for (int i = 0; i < defineCount; i++) { fprintf(outFile, " {\n"); - fprintf(outFile, " name = \"%s\",\n", defines[i].name); - fprintf(outFile, " type = \"%s\",\n", StrDefineType(defines[i].type)); + fprintf(outFile, " name: \"%s\",\n", defines[i].name); + fprintf(outFile, " type: \"%s\",\n", StrDefineType(defines[i].type)); if ((defines[i].type == INT) || (defines[i].type == LONG) || (defines[i].type == FLOAT) || @@ -2007,6 +2009,159 @@ static void ExportParsedData(const char *fileName, int format) fprintf(outFile, " }\n"); fprintf(outFile, "}\n"); } break; + case JS: + { + fprintf(outFile, "export default {\n"); + + // Print defines info + fprintf(outFile, " defines: [\n"); + for (int i = 0; i < defineCount; i++) + { + fprintf(outFile, " {\n"); + fprintf(outFile, " name: \"%s\",\n", defines[i].name); + fprintf(outFile, " type: \"%s\",\n", StrDefineType(defines[i].type)); + if ((defines[i].type == INT) || + (defines[i].type == LONG) || + (defines[i].type == FLOAT) || + (defines[i].type == DOUBLE) || + (defines[i].type == STRING)) + { + fprintf(outFile, " value: %s,\n", defines[i].value); + } + else + { + fprintf(outFile, " value: \"%s\",\n", defines[i].value); + } + fprintf(outFile, " description: \"%s\"\n", defines[i].desc); + fprintf(outFile, " }"); + + if (i < defineCount - 1) fprintf(outFile, ",\n"); + else fprintf(outFile, "\n"); + } + fprintf(outFile, " ],\n"); + + // Print structs info + fprintf(outFile, " structs: [\n"); + for (int i = 0; i < structCount; i++) + { + fprintf(outFile, " {\n"); + fprintf(outFile, " name: \"%s\",\n", structs[i].name); + fprintf(outFile, " description: \"%s\",\n", EscapeBackslashes(structs[i].desc)); + fprintf(outFile, " fields: [\n"); + for (int f = 0; f < structs[i].fieldCount; f++) + { + fprintf(outFile, " {\n"); + fprintf(outFile, " type: \"%s\",\n", structs[i].fieldType[f]); + fprintf(outFile, " name: \"%s\",\n", structs[i].fieldName[f]); + fprintf(outFile, " description: \"%s\"\n", EscapeBackslashes(structs[i].fieldDesc[f])); + fprintf(outFile, " }"); + if (f < structs[i].fieldCount - 1) fprintf(outFile, ",\n"); + else fprintf(outFile, "\n"); + } + fprintf(outFile, " ]\n"); + fprintf(outFile, " }"); + if (i < structCount - 1) fprintf(outFile, ",\n"); + else fprintf(outFile, "\n"); + } + fprintf(outFile, " ],\n"); + + // Print aliases info + fprintf(outFile, " aliases: [\n"); + for (int i = 0; i < aliasCount; i++) + { + fprintf(outFile, " {\n"); + fprintf(outFile, " type: \"%s\",\n", aliases[i].type); + fprintf(outFile, " name: \"%s\",\n", aliases[i].name); + fprintf(outFile, " description: \"%s\"\n", aliases[i].desc); + fprintf(outFile, " }"); + + if (i < aliasCount - 1) fprintf(outFile, ",\n"); + else fprintf(outFile, "\n"); + } + fprintf(outFile, " ],\n"); + + // Print enums info + fprintf(outFile, " enums: [\n"); + for (int i = 0; i < enumCount; i++) + { + fprintf(outFile, " {\n"); + fprintf(outFile, " name: \"%s\",\n", enums[i].name); + fprintf(outFile, " description: \"%s\",\n", EscapeBackslashes(enums[i].desc)); + fprintf(outFile, " values: [\n"); + for (int e = 0; e < enums[i].valueCount; e++) + { + fprintf(outFile, " {\n"); + fprintf(outFile, " name: \"%s\",\n", enums[i].valueName[e]); + fprintf(outFile, " value: %i,\n", enums[i].valueInteger[e]); + fprintf(outFile, " description: \"%s\"\n", EscapeBackslashes(enums[i].valueDesc[e])); + fprintf(outFile, " }"); + if (e < enums[i].valueCount - 1) fprintf(outFile, ",\n"); + else fprintf(outFile, "\n"); + } + fprintf(outFile, " ]\n"); + fprintf(outFile, " }"); + if (i < enumCount - 1) fprintf(outFile, ",\n"); + else fprintf(outFile, "\n"); + } + fprintf(outFile, " ],\n"); + + // Print callbacks info + fprintf(outFile, " callbacks: [\n"); + for (int i = 0; i < callbackCount; i++) + { + fprintf(outFile, " {\n"); + fprintf(outFile, " name: \"%s\",\n", callbacks[i].name); + fprintf(outFile, " description: \"%s\",\n", EscapeBackslashes(callbacks[i].desc)); + fprintf(outFile, " returnType: \"%s\"", callbacks[i].retType); + + if (callbacks[i].paramCount == 0) fprintf(outFile, "\n"); + else + { + fprintf(outFile, ",\n params: [\n"); + for (int p = 0; p < callbacks[i].paramCount; p++) + { + fprintf(outFile, " {type: \"%s\", name: \"%s\"}", callbacks[i].paramType[p], callbacks[i].paramName[p]); + if (p < callbacks[i].paramCount - 1) fprintf(outFile, ",\n"); + else fprintf(outFile, "\n"); + } + fprintf(outFile, " ]\n"); + } + fprintf(outFile, " }"); + + if (i < callbackCount - 1) fprintf(outFile, ",\n"); + else fprintf(outFile, "\n"); + } + fprintf(outFile, " ],\n"); + + // Print functions info + fprintf(outFile, " functions: [\n"); + for (int i = 0; i < funcCount; i++) + { + fprintf(outFile, " {\n"); + fprintf(outFile, " name: \"%s\",\n", funcs[i].name); + fprintf(outFile, " description: \"%s\",\n", EscapeBackslashes(funcs[i].desc)); + fprintf(outFile, " returnType: \"%s\"", funcs[i].retType); + + if (funcs[i].paramCount == 0) fprintf(outFile, "\n"); + else + { + fprintf(outFile, ",\n params: [\n"); + for (int p = 0; p < funcs[i].paramCount; p++) + { + fprintf(outFile, " {type: \"%s\", name: \"%s\"}", funcs[i].paramType[p], funcs[i].paramName[p]); + if (p < funcs[i].paramCount - 1) fprintf(outFile, ",\n"); + else fprintf(outFile, "\n"); + } + fprintf(outFile, " ]\n"); + } + fprintf(outFile, " }"); + + if (i < funcCount - 1) fprintf(outFile, ",\n"); + else fprintf(outFile, "\n"); + } + fprintf(outFile, " ]\n"); + fprintf(outFile, "};\n"); + } break; case CODE: default: break; }