diff --git a/parser/raylib_api.json b/parser/raylib_api.json
new file mode 100644
index 000000000..b28a378ce
--- /dev/null
+++ b/parser/raylib_api.json
@@ -0,0 +1,6668 @@
+{
+ "structs": [
+ {
+ "name": "Vector2",
+ "description": "",
+ "fields": [
+ {
+ "name": "x",
+ "type": "float",
+ "description": "Vector x component"
+ },
+ {
+ "name": "y",
+ "type": "float",
+ "description": "Vector y component"
+ }
+ ]
+ },
+ {
+ "name": "Vector3",
+ "description": "",
+ "fields": [
+ {
+ "name": "x",
+ "type": "float",
+ "description": "Vector x component"
+ },
+ {
+ "name": "y",
+ "type": "float",
+ "description": "Vector y component"
+ },
+ {
+ "name": "z",
+ "type": "float",
+ "description": "Vector z component"
+ }
+ ]
+ },
+ {
+ "name": "Vector4",
+ "description": "",
+ "fields": [
+ {
+ "name": "x",
+ "type": "float",
+ "description": "Vector x component"
+ },
+ {
+ "name": "y",
+ "type": "float",
+ "description": "Vector y component"
+ },
+ {
+ "name": "z",
+ "type": "float",
+ "description": "Vector z component"
+ },
+ {
+ "name": "w",
+ "type": "float",
+ "description": "Vector w component"
+ }
+ ]
+ },
+ {
+ "name": "Matrix",
+ "description": "",
+ "fields": [
+ {
+ "name": "m0, m4, m8, m12",
+ "type": "float",
+ "description": "Matrix first row (4 components)"
+ },
+ {
+ "name": "m1, m5, m9, m13",
+ "type": "float",
+ "description": "Matrix second row (4 components)"
+ },
+ {
+ "name": "m2, m6, m10, m14",
+ "type": "float",
+ "description": "Matrix third row (4 components)"
+ },
+ {
+ "name": "m3, m7, m11, m15",
+ "type": "float",
+ "description": "Matrix fourth row (4 components)"
+ }
+ ]
+ },
+ {
+ "name": "Color",
+ "description": "",
+ "fields": [
+ {
+ "name": "r",
+ "type": "unsigned char",
+ "description": "Color red value"
+ },
+ {
+ "name": "g",
+ "type": "unsigned char",
+ "description": "Color green value"
+ },
+ {
+ "name": "b",
+ "type": "unsigned char",
+ "description": "Color blue value"
+ },
+ {
+ "name": "a",
+ "type": "unsigned char",
+ "description": "Color alpha value"
+ }
+ ]
+ },
+ {
+ "name": "Rectangle",
+ "description": "",
+ "fields": [
+ {
+ "name": "x",
+ "type": "float",
+ "description": "Rectangle top-left corner position x "
+ },
+ {
+ "name": "y",
+ "type": "float",
+ "description": "Rectangle top-left corner position y"
+ },
+ {
+ "name": "width",
+ "type": "float",
+ "description": "Rectangle width"
+ },
+ {
+ "name": "height",
+ "type": "float",
+ "description": "Rectangle height"
+ }
+ ]
+ },
+ {
+ "name": "Image",
+ "description": "",
+ "fields": [
+ {
+ "name": "data",
+ "type": "void *",
+ "description": "Image raw data"
+ },
+ {
+ "name": "width",
+ "type": "int",
+ "description": "Image base width"
+ },
+ {
+ "name": "height",
+ "type": "int",
+ "description": "Image base height"
+ },
+ {
+ "name": "mipmaps",
+ "type": "int",
+ "description": "Mipmap levels, 1 by default"
+ },
+ {
+ "name": "format",
+ "type": "int",
+ "description": "Data format (PixelFormat type)"
+ }
+ ]
+ },
+ {
+ "name": "Texture",
+ "description": "",
+ "fields": [
+ {
+ "name": "id",
+ "type": "unsigned int",
+ "description": "OpenGL texture id"
+ },
+ {
+ "name": "width",
+ "type": "int",
+ "description": "Texture base width"
+ },
+ {
+ "name": "height",
+ "type": "int",
+ "description": "Texture base height"
+ },
+ {
+ "name": "mipmaps",
+ "type": "int",
+ "description": "Mipmap levels, 1 by default"
+ },
+ {
+ "name": "format",
+ "type": "int",
+ "description": "Data format (PixelFormat type)"
+ }
+ ]
+ },
+ {
+ "name": "RenderTexture",
+ "description": "",
+ "fields": [
+ {
+ "name": "id",
+ "type": "unsigned int",
+ "description": "OpenGL framebuffer object id"
+ },
+ {
+ "name": "texture",
+ "type": "Texture",
+ "description": "Color buffer attachment texture"
+ },
+ {
+ "name": "depth",
+ "type": "Texture",
+ "description": "Depth buffer attachment texture"
+ }
+ ]
+ },
+ {
+ "name": "NPatchInfo",
+ "description": "",
+ "fields": [
+ {
+ "name": "source",
+ "type": "Rectangle",
+ "description": "Texture source rectangle"
+ },
+ {
+ "name": "left",
+ "type": "int",
+ "description": "Left border offset"
+ },
+ {
+ "name": "top",
+ "type": "int",
+ "description": "Top border offset"
+ },
+ {
+ "name": "right",
+ "type": "int",
+ "description": "Right border offset"
+ },
+ {
+ "name": "bottom",
+ "type": "int",
+ "description": "Bottom border offset"
+ },
+ {
+ "name": "layout",
+ "type": "int",
+ "description": "Layout of the n-patch: 3x3, 1x3 or 3x1"
+ }
+ ]
+ },
+ {
+ "name": "CharInfo",
+ "description": "",
+ "fields": [
+ {
+ "name": "value",
+ "type": "int",
+ "description": "Character value (Unicode)"
+ },
+ {
+ "name": "offsetX",
+ "type": "int",
+ "description": "Character offset X when drawing"
+ },
+ {
+ "name": "offsetY",
+ "type": "int",
+ "description": "Character offset Y when drawing"
+ },
+ {
+ "name": "advanceX",
+ "type": "int",
+ "description": "Character advance position X"
+ },
+ {
+ "name": "image",
+ "type": "Image",
+ "description": "Character image data"
+ }
+ ]
+ },
+ {
+ "name": "Font",
+ "description": "",
+ "fields": [
+ {
+ "name": "baseSize",
+ "type": "int",
+ "description": "Base size (default chars height)"
+ },
+ {
+ "name": "charsCount",
+ "type": "int",
+ "description": "Number of characters"
+ },
+ {
+ "name": "charsPadding",
+ "type": "int",
+ "description": "Padding around the chars"
+ },
+ {
+ "name": "texture",
+ "type": "Texture2D",
+ "description": "Characters texture atlas"
+ },
+ {
+ "name": "recs",
+ "type": "Rectangle *",
+ "description": "Characters rectangles in texture"
+ },
+ {
+ "name": "chars",
+ "type": "CharInfo *",
+ "description": "Characters info data"
+ }
+ ]
+ },
+ {
+ "name": "Camera3D",
+ "description": "",
+ "fields": [
+ {
+ "name": "position",
+ "type": "Vector3",
+ "description": "Camera position"
+ },
+ {
+ "name": "target",
+ "type": "Vector3",
+ "description": "Camera target it looks-at"
+ },
+ {
+ "name": "up",
+ "type": "Vector3",
+ "description": "Camera up vector (rotation over its axis)"
+ },
+ {
+ "name": "fovy",
+ "type": "float",
+ "description": "Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic"
+ },
+ {
+ "name": "projection",
+ "type": "int",
+ "description": "Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC"
+ }
+ ]
+ },
+ {
+ "name": "Camera2D",
+ "description": "",
+ "fields": [
+ {
+ "name": "offset",
+ "type": "Vector2",
+ "description": "Camera offset (displacement from target)"
+ },
+ {
+ "name": "target",
+ "type": "Vector2",
+ "description": "Camera target (rotation and zoom origin)"
+ },
+ {
+ "name": "rotation",
+ "type": "float",
+ "description": "Camera rotation in degrees"
+ },
+ {
+ "name": "zoom",
+ "type": "float",
+ "description": "Camera zoom (scaling), should be 1.0f by default"
+ }
+ ]
+ },
+ {
+ "name": "Mesh",
+ "description": "",
+ "fields": [
+ {
+ "name": "vertexCount",
+ "type": "int",
+ "description": "Number of vertices stored in arrays"
+ },
+ {
+ "name": "triangleCount",
+ "type": "int",
+ "description": "Number of triangles stored (indexed or not)"
+ },
+ {
+ "name": "vertices",
+ "type": "float *",
+ "description": "Vertex position (XYZ - 3 components per vertex) (shader-location = 0)"
+ },
+ {
+ "name": "texcoords",
+ "type": "float *",
+ "description": "Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)"
+ },
+ {
+ "name": "texcoords2",
+ "type": "float *",
+ "description": "Vertex second texture coordinates (useful for lightmaps) (shader-location = 5)"
+ },
+ {
+ "name": "normals",
+ "type": "float *",
+ "description": "Vertex normals (XYZ - 3 components per vertex) (shader-location = 2)"
+ },
+ {
+ "name": "tangents",
+ "type": "float *",
+ "description": "Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4)"
+ },
+ {
+ "name": "colors",
+ "type": "unsigned char *",
+ "description": "Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)"
+ },
+ {
+ "name": "indices",
+ "type": "unsigned short *",
+ "description": "Vertex indices (in case vertex data comes indexed)"
+ },
+ {
+ "name": "animVertices",
+ "type": "float *",
+ "description": "Animated vertex positions (after bones transformations)"
+ },
+ {
+ "name": "animNormals",
+ "type": "float *",
+ "description": "Animated normals (after bones transformations)"
+ },
+ {
+ "name": "boneIds",
+ "type": "int *",
+ "description": "Vertex bone ids, up to 4 bones influence by vertex (skinning)"
+ },
+ {
+ "name": "boneWeights",
+ "type": "float *",
+ "description": "Vertex bone weight, up to 4 bones influence by vertex (skinning)"
+ },
+ {
+ "name": "vaoId",
+ "type": "unsigned int",
+ "description": "OpenGL Vertex Array Object id"
+ },
+ {
+ "name": "vboId",
+ "type": "unsigned int *",
+ "description": "OpenGL Vertex Buffer Objects id (default vertex data)"
+ }
+ ]
+ },
+ {
+ "name": "Shader",
+ "description": "",
+ "fields": [
+ {
+ "name": "id",
+ "type": "unsigned int",
+ "description": "Shader program id"
+ },
+ {
+ "name": "locs",
+ "type": "int *",
+ "description": "Shader locations array (MAX_SHADER_LOCATIONS)"
+ }
+ ]
+ },
+ {
+ "name": "MaterialMap",
+ "description": "",
+ "fields": [
+ {
+ "name": "texture",
+ "type": "Texture2D",
+ "description": "Material map texture"
+ },
+ {
+ "name": "color",
+ "type": "Color",
+ "description": "Material map color"
+ },
+ {
+ "name": "value",
+ "type": "float",
+ "description": "Material map value"
+ }
+ ]
+ },
+ {
+ "name": "Material",
+ "description": "",
+ "fields": [
+ {
+ "name": "shader",
+ "type": "Shader",
+ "description": "Material shader"
+ },
+ {
+ "name": "maps",
+ "type": "MaterialMap *",
+ "description": "Material maps array (MAX_MATERIAL_MAPS)"
+ },
+ {
+ "name": "params[4]",
+ "type": "float",
+ "description": "Material generic parameters (if required)"
+ }
+ ]
+ },
+ {
+ "name": "Transform",
+ "description": "",
+ "fields": [
+ {
+ "name": "translation",
+ "type": "Vector3",
+ "description": "Translation"
+ },
+ {
+ "name": "rotation",
+ "type": "Quaternion",
+ "description": "Rotation"
+ },
+ {
+ "name": "scale",
+ "type": "Vector3",
+ "description": "Scale"
+ }
+ ]
+ },
+ {
+ "name": "BoneInfo",
+ "description": "",
+ "fields": [
+ {
+ "name": "name[32]",
+ "type": "char",
+ "description": "Bone name"
+ },
+ {
+ "name": "parent",
+ "type": "int",
+ "description": "Bone parent"
+ }
+ ]
+ },
+ {
+ "name": "Model",
+ "description": "",
+ "fields": [
+ {
+ "name": "transform",
+ "type": "Matrix",
+ "description": "Local transform matrix"
+ },
+ {
+ "name": "meshCount",
+ "type": "int",
+ "description": "Number of meshes"
+ },
+ {
+ "name": "materialCount",
+ "type": "int",
+ "description": "Number of materials"
+ },
+ {
+ "name": "meshes",
+ "type": "Mesh *",
+ "description": "Meshes array"
+ },
+ {
+ "name": "materials",
+ "type": "Material *",
+ "description": "Materials array"
+ },
+ {
+ "name": "meshMaterial",
+ "type": "int *",
+ "description": "Mesh material number"
+ },
+ {
+ "name": "boneCount",
+ "type": "int",
+ "description": "Number of bones"
+ },
+ {
+ "name": "bones",
+ "type": "BoneInfo *",
+ "description": "Bones information (skeleton)"
+ },
+ {
+ "name": "bindPose",
+ "type": "Transform *",
+ "description": "Bones base transformation (pose)"
+ }
+ ]
+ },
+ {
+ "name": "ModelAnimation",
+ "description": "",
+ "fields": [
+ {
+ "name": "boneCount",
+ "type": "int",
+ "description": "Number of bones"
+ },
+ {
+ "name": "frameCount",
+ "type": "int",
+ "description": "Number of animation frames"
+ },
+ {
+ "name": "bones",
+ "type": "BoneInfo *",
+ "description": "Bones information (skeleton)"
+ },
+ {
+ "name": "framePoses",
+ "type": "Transform **",
+ "description": "Poses array by frame"
+ }
+ ]
+ },
+ {
+ "name": "Ray",
+ "description": "",
+ "fields": [
+ {
+ "name": "position",
+ "type": "Vector3",
+ "description": "Ray position (origin)"
+ },
+ {
+ "name": "direction",
+ "type": "Vector3",
+ "description": "Ray direction"
+ }
+ ]
+ },
+ {
+ "name": "RayCollision",
+ "description": "",
+ "fields": [
+ {
+ "name": "hit",
+ "type": "bool",
+ "description": "Did the ray hit something?"
+ },
+ {
+ "name": "distance",
+ "type": "float",
+ "description": "Distance to nearest hit"
+ },
+ {
+ "name": "point",
+ "type": "Vector3",
+ "description": "Point of nearest hit"
+ },
+ {
+ "name": "normal",
+ "type": "Vector3",
+ "description": "Surface normal of hit"
+ }
+ ]
+ },
+ {
+ "name": "BoundingBox",
+ "description": "",
+ "fields": [
+ {
+ "name": "min",
+ "type": "Vector3",
+ "description": "Minimum vertex box-corner"
+ },
+ {
+ "name": "max",
+ "type": "Vector3",
+ "description": "Maximum vertex box-corner"
+ }
+ ]
+ },
+ {
+ "name": "Wave",
+ "description": "",
+ "fields": [
+ {
+ "name": "sampleCount",
+ "type": "unsigned int",
+ "description": "Total number of samples (considering channels!)"
+ },
+ {
+ "name": "sampleRate",
+ "type": "unsigned int",
+ "description": "Frequency (samples per second)"
+ },
+ {
+ "name": "sampleSize",
+ "type": "unsigned int",
+ "description": "Bit depth (bits per sample): 8, 16, 32 (24 not supported)"
+ },
+ {
+ "name": "channels",
+ "type": "unsigned int",
+ "description": "Number of channels (1-mono, 2-stereo)"
+ },
+ {
+ "name": "data",
+ "type": "void *",
+ "description": "Buffer data pointer"
+ }
+ ]
+ },
+ {
+ "name": "AudioStream",
+ "description": "",
+ "fields": [
+ {
+ "name": "buffer",
+ "type": "rAudioBuffer *",
+ "description": "Pointer to internal data used by the audio system"
+ },
+ {
+ "name": "sampleRate",
+ "type": "unsigned int",
+ "description": "Frequency (samples per second)"
+ },
+ {
+ "name": "sampleSize",
+ "type": "unsigned int",
+ "description": "Bit depth (bits per sample): 8, 16, 32 (24 not supported)"
+ },
+ {
+ "name": "channels",
+ "type": "unsigned int",
+ "description": "Number of channels (1-mono, 2-stereo)"
+ }
+ ]
+ },
+ {
+ "name": "Sound",
+ "description": "",
+ "fields": [
+ {
+ "name": "stream",
+ "type": "AudioStream",
+ "description": "Audio stream"
+ },
+ {
+ "name": "sampleCount",
+ "type": "unsigned int",
+ "description": "Total number of samples"
+ }
+ ]
+ },
+ {
+ "name": "Music",
+ "description": "",
+ "fields": [
+ {
+ "name": "stream",
+ "type": "AudioStream",
+ "description": "Audio stream"
+ },
+ {
+ "name": "sampleCount",
+ "type": "unsigned int",
+ "description": "Total number of samples"
+ },
+ {
+ "name": "looping",
+ "type": "bool",
+ "description": "Music looping enable"
+ },
+ {
+ "name": "ctxType",
+ "type": "int",
+ "description": "Type of music context (audio filetype)"
+ },
+ {
+ "name": "ctxData",
+ "type": "void *",
+ "description": "Audio context data, depends on type"
+ }
+ ]
+ },
+ {
+ "name": "VrDeviceInfo",
+ "description": "",
+ "fields": [
+ {
+ "name": "hResolution",
+ "type": "int",
+ "description": "Horizontal resolution in pixels"
+ },
+ {
+ "name": "vResolution",
+ "type": "int",
+ "description": "Vertical resolution in pixels"
+ },
+ {
+ "name": "hScreenSize",
+ "type": "float",
+ "description": "Horizontal size in meters"
+ },
+ {
+ "name": "vScreenSize",
+ "type": "float",
+ "description": "Vertical size in meters"
+ },
+ {
+ "name": "vScreenCenter",
+ "type": "float",
+ "description": "Screen center in meters"
+ },
+ {
+ "name": "eyeToScreenDistance",
+ "type": "float",
+ "description": "Distance between eye and display in meters"
+ },
+ {
+ "name": "lensSeparationDistance",
+ "type": "float",
+ "description": "Lens separation distance in meters"
+ },
+ {
+ "name": "interpupillaryDistance",
+ "type": "float",
+ "description": "IPD (distance between pupils) in meters"
+ },
+ {
+ "name": "lensDistortionValues[4]",
+ "type": "float",
+ "description": "Lens distortion constant parameters"
+ },
+ {
+ "name": "chromaAbCorrection[4]",
+ "type": "float",
+ "description": "Chromatic aberration correction parameters"
+ }
+ ]
+ },
+ {
+ "name": "VrStereoConfig",
+ "description": "",
+ "fields": [
+ {
+ "name": "projection[2]",
+ "type": "Matrix",
+ "description": "VR projection matrices (per eye)"
+ },
+ {
+ "name": "viewOffset[2]",
+ "type": "Matrix",
+ "description": "VR view offset matrices (per eye)"
+ },
+ {
+ "name": "leftLensCenter[2]",
+ "type": "float",
+ "description": "VR left lens center"
+ },
+ {
+ "name": "rightLensCenter[2]",
+ "type": "float",
+ "description": "VR right lens center"
+ },
+ {
+ "name": "leftScreenCenter[2]",
+ "type": "float",
+ "description": "VR left screen center"
+ },
+ {
+ "name": "rightScreenCenter[2]",
+ "type": "float",
+ "description": "VR right screen center"
+ },
+ {
+ "name": "scale[2]",
+ "type": "float",
+ "description": "VR distortion scale"
+ },
+ {
+ "name": "scaleIn[2]",
+ "type": "float",
+ "description": "VR distortion scale in"
+ }
+ ]
+ }
+ ],
+ "enums": [
+ {
+ "name": "ConfigFlags",
+ "description": "",
+ "values": [
+ {
+ "name": "FLAG_VSYNC_HINT",
+ "value": 64,
+ "description": ""
+ },
+ {
+ "name": "FLAG_FULLSCREEN_MODE",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "FLAG_WINDOW_RESIZABLE",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "FLAG_WINDOW_UNDECORATED",
+ "value": 8,
+ "description": ""
+ },
+ {
+ "name": "FLAG_WINDOW_HIDDEN",
+ "value": 128,
+ "description": ""
+ },
+ {
+ "name": "FLAG_WINDOW_MINIMIZED",
+ "value": 512,
+ "description": ""
+ },
+ {
+ "name": "FLAG_WINDOW_MAXIMIZED",
+ "value": 1024,
+ "description": ""
+ },
+ {
+ "name": "FLAG_WINDOW_UNFOCUSED",
+ "value": 2048,
+ "description": ""
+ },
+ {
+ "name": "FLAG_WINDOW_TOPMOST",
+ "value": 4096,
+ "description": ""
+ },
+ {
+ "name": "FLAG_WINDOW_ALWAYS_RUN",
+ "value": 256,
+ "description": ""
+ },
+ {
+ "name": "FLAG_WINDOW_TRANSPARENT",
+ "value": 16,
+ "description": ""
+ },
+ {
+ "name": "FLAG_WINDOW_HIGHDPI",
+ "value": 8192,
+ "description": ""
+ },
+ {
+ "name": "FLAG_MSAA_4X_HINT",
+ "value": 32,
+ "description": ""
+ },
+ {
+ "name": "FLAG_INTERLACED_HINT",
+ "value": 65536,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "TraceLogLevel",
+ "description": "",
+ "values": [
+ {
+ "name": "LOG_ALL",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "LOG_TRACE",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "LOG_DEBUG",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "LOG_INFO",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "LOG_WARNING",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "LOG_ERROR",
+ "value": 5,
+ "description": ""
+ },
+ {
+ "name": "LOG_FATAL",
+ "value": 6,
+ "description": ""
+ },
+ {
+ "name": "LOG_NONE",
+ "value": 7,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "KeyboardKey",
+ "description": "",
+ "values": [
+ {
+ "name": "KEY_NULL",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "KEY_APOSTROPHE",
+ "value": 39,
+ "description": ""
+ },
+ {
+ "name": "KEY_COMMA",
+ "value": 44,
+ "description": ""
+ },
+ {
+ "name": "KEY_MINUS",
+ "value": 45,
+ "description": ""
+ },
+ {
+ "name": "KEY_PERIOD",
+ "value": 46,
+ "description": ""
+ },
+ {
+ "name": "KEY_SLASH",
+ "value": 47,
+ "description": ""
+ },
+ {
+ "name": "KEY_ZERO",
+ "value": 48,
+ "description": ""
+ },
+ {
+ "name": "KEY_ONE",
+ "value": 49,
+ "description": ""
+ },
+ {
+ "name": "KEY_TWO",
+ "value": 50,
+ "description": ""
+ },
+ {
+ "name": "KEY_THREE",
+ "value": 51,
+ "description": ""
+ },
+ {
+ "name": "KEY_FOUR",
+ "value": 52,
+ "description": ""
+ },
+ {
+ "name": "KEY_FIVE",
+ "value": 53,
+ "description": ""
+ },
+ {
+ "name": "KEY_SIX",
+ "value": 54,
+ "description": ""
+ },
+ {
+ "name": "KEY_SEVEN",
+ "value": 55,
+ "description": ""
+ },
+ {
+ "name": "KEY_EIGHT",
+ "value": 56,
+ "description": ""
+ },
+ {
+ "name": "KEY_NINE",
+ "value": 57,
+ "description": ""
+ },
+ {
+ "name": "KEY_SEMICOLON",
+ "value": 59,
+ "description": ""
+ },
+ {
+ "name": "KEY_EQUAL",
+ "value": 61,
+ "description": ""
+ },
+ {
+ "name": "KEY_A",
+ "value": 65,
+ "description": ""
+ },
+ {
+ "name": "KEY_B",
+ "value": 66,
+ "description": ""
+ },
+ {
+ "name": "KEY_C",
+ "value": 67,
+ "description": ""
+ },
+ {
+ "name": "KEY_D",
+ "value": 68,
+ "description": ""
+ },
+ {
+ "name": "KEY_E",
+ "value": 69,
+ "description": ""
+ },
+ {
+ "name": "KEY_F",
+ "value": 70,
+ "description": ""
+ },
+ {
+ "name": "KEY_G",
+ "value": 71,
+ "description": ""
+ },
+ {
+ "name": "KEY_H",
+ "value": 72,
+ "description": ""
+ },
+ {
+ "name": "KEY_I",
+ "value": 73,
+ "description": ""
+ },
+ {
+ "name": "KEY_J",
+ "value": 74,
+ "description": ""
+ },
+ {
+ "name": "KEY_K",
+ "value": 75,
+ "description": ""
+ },
+ {
+ "name": "KEY_L",
+ "value": 76,
+ "description": ""
+ },
+ {
+ "name": "KEY_M",
+ "value": 77,
+ "description": ""
+ },
+ {
+ "name": "KEY_N",
+ "value": 78,
+ "description": ""
+ },
+ {
+ "name": "KEY_O",
+ "value": 79,
+ "description": ""
+ },
+ {
+ "name": "KEY_P",
+ "value": 80,
+ "description": ""
+ },
+ {
+ "name": "KEY_Q",
+ "value": 81,
+ "description": ""
+ },
+ {
+ "name": "KEY_R",
+ "value": 82,
+ "description": ""
+ },
+ {
+ "name": "KEY_S",
+ "value": 83,
+ "description": ""
+ },
+ {
+ "name": "KEY_T",
+ "value": 84,
+ "description": ""
+ },
+ {
+ "name": "KEY_U",
+ "value": 85,
+ "description": ""
+ },
+ {
+ "name": "KEY_V",
+ "value": 86,
+ "description": ""
+ },
+ {
+ "name": "KEY_W",
+ "value": 87,
+ "description": ""
+ },
+ {
+ "name": "KEY_X",
+ "value": 88,
+ "description": ""
+ },
+ {
+ "name": "KEY_Y",
+ "value": 89,
+ "description": ""
+ },
+ {
+ "name": "KEY_Z",
+ "value": 90,
+ "description": ""
+ },
+ {
+ "name": "KEY_SPACE",
+ "value": 32,
+ "description": ""
+ },
+ {
+ "name": "KEY_ESCAPE",
+ "value": 256,
+ "description": ""
+ },
+ {
+ "name": "KEY_ENTER",
+ "value": 257,
+ "description": ""
+ },
+ {
+ "name": "KEY_TAB",
+ "value": 258,
+ "description": ""
+ },
+ {
+ "name": "KEY_BACKSPACE",
+ "value": 259,
+ "description": ""
+ },
+ {
+ "name": "KEY_INSERT",
+ "value": 260,
+ "description": ""
+ },
+ {
+ "name": "KEY_DELETE",
+ "value": 261,
+ "description": ""
+ },
+ {
+ "name": "KEY_RIGHT",
+ "value": 262,
+ "description": ""
+ },
+ {
+ "name": "KEY_LEFT",
+ "value": 263,
+ "description": ""
+ },
+ {
+ "name": "KEY_DOWN",
+ "value": 264,
+ "description": ""
+ },
+ {
+ "name": "KEY_UP",
+ "value": 265,
+ "description": ""
+ },
+ {
+ "name": "KEY_PAGE_UP",
+ "value": 266,
+ "description": ""
+ },
+ {
+ "name": "KEY_PAGE_DOWN",
+ "value": 267,
+ "description": ""
+ },
+ {
+ "name": "KEY_HOME",
+ "value": 268,
+ "description": ""
+ },
+ {
+ "name": "KEY_END",
+ "value": 269,
+ "description": ""
+ },
+ {
+ "name": "KEY_CAPS_LOCK",
+ "value": 280,
+ "description": ""
+ },
+ {
+ "name": "KEY_SCROLL_LOCK",
+ "value": 281,
+ "description": ""
+ },
+ {
+ "name": "KEY_NUM_LOCK",
+ "value": 282,
+ "description": ""
+ },
+ {
+ "name": "KEY_PRINT_SCREEN",
+ "value": 283,
+ "description": ""
+ },
+ {
+ "name": "KEY_PAUSE",
+ "value": 284,
+ "description": ""
+ },
+ {
+ "name": "KEY_F1",
+ "value": 290,
+ "description": ""
+ },
+ {
+ "name": "KEY_F2",
+ "value": 291,
+ "description": ""
+ },
+ {
+ "name": "KEY_F3",
+ "value": 292,
+ "description": ""
+ },
+ {
+ "name": "KEY_F4",
+ "value": 293,
+ "description": ""
+ },
+ {
+ "name": "KEY_F5",
+ "value": 294,
+ "description": ""
+ },
+ {
+ "name": "KEY_F6",
+ "value": 295,
+ "description": ""
+ },
+ {
+ "name": "KEY_F7",
+ "value": 296,
+ "description": ""
+ },
+ {
+ "name": "KEY_F8",
+ "value": 297,
+ "description": ""
+ },
+ {
+ "name": "KEY_F9",
+ "value": 298,
+ "description": ""
+ },
+ {
+ "name": "KEY_F10",
+ "value": 299,
+ "description": ""
+ },
+ {
+ "name": "KEY_F11",
+ "value": 300,
+ "description": ""
+ },
+ {
+ "name": "KEY_F12",
+ "value": 301,
+ "description": ""
+ },
+ {
+ "name": "KEY_LEFT_SHIFT",
+ "value": 340,
+ "description": ""
+ },
+ {
+ "name": "KEY_LEFT_CONTROL",
+ "value": 341,
+ "description": ""
+ },
+ {
+ "name": "KEY_LEFT_ALT",
+ "value": 342,
+ "description": ""
+ },
+ {
+ "name": "KEY_LEFT_SUPER",
+ "value": 343,
+ "description": ""
+ },
+ {
+ "name": "KEY_RIGHT_SHIFT",
+ "value": 344,
+ "description": ""
+ },
+ {
+ "name": "KEY_RIGHT_CONTROL",
+ "value": 345,
+ "description": ""
+ },
+ {
+ "name": "KEY_RIGHT_ALT",
+ "value": 346,
+ "description": ""
+ },
+ {
+ "name": "KEY_RIGHT_SUPER",
+ "value": 347,
+ "description": ""
+ },
+ {
+ "name": "KEY_KB_MENU",
+ "value": 348,
+ "description": ""
+ },
+ {
+ "name": "KEY_LEFT_BRACKET",
+ "value": 91,
+ "description": ""
+ },
+ {
+ "name": "KEY_BACKSLASH",
+ "value": 92,
+ "description": ""
+ },
+ {
+ "name": "KEY_RIGHT_BRACKET",
+ "value": 93,
+ "description": ""
+ },
+ {
+ "name": "KEY_GRAVE",
+ "value": 96,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_0",
+ "value": 320,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_1",
+ "value": 321,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_2",
+ "value": 322,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_3",
+ "value": 323,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_4",
+ "value": 324,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_5",
+ "value": 325,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_6",
+ "value": 326,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_7",
+ "value": 327,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_8",
+ "value": 328,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_9",
+ "value": 329,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_DECIMAL",
+ "value": 330,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_DIVIDE",
+ "value": 331,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_MULTIPLY",
+ "value": 332,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_SUBTRACT",
+ "value": 333,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_ADD",
+ "value": 334,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_ENTER",
+ "value": 335,
+ "description": ""
+ },
+ {
+ "name": "KEY_KP_EQUAL",
+ "value": 336,
+ "description": ""
+ },
+ {
+ "name": "KEY_BACK",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "KEY_MENU",
+ "value": 82,
+ "description": ""
+ },
+ {
+ "name": "KEY_VOLUME_UP",
+ "value": 24,
+ "description": ""
+ },
+ {
+ "name": "KEY_VOLUME_DOWN",
+ "value": 25,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "MouseButton",
+ "description": "",
+ "values": [
+ {
+ "name": "MOUSE_BUTTON_LEFT",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_BUTTON_RIGHT",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_BUTTON_MIDDLE",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_BUTTON_SIDE",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_BUTTON_EXTRA",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_BUTTON_FORWARD",
+ "value": 5,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_BUTTON_BACK",
+ "value": 6,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "MouseCursor",
+ "description": "",
+ "values": [
+ {
+ "name": "MOUSE_CURSOR_DEFAULT",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_CURSOR_ARROW",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_CURSOR_IBEAM",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_CURSOR_CROSSHAIR",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_CURSOR_POINTING_HAND",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_CURSOR_RESIZE_EW",
+ "value": 5,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_CURSOR_RESIZE_NS",
+ "value": 6,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_CURSOR_RESIZE_NWSE",
+ "value": 7,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_CURSOR_RESIZE_NESW",
+ "value": 8,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_CURSOR_RESIZE_ALL",
+ "value": 9,
+ "description": ""
+ },
+ {
+ "name": "MOUSE_CURSOR_NOT_ALLOWED",
+ "value": 10,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "GamepadButton",
+ "description": "",
+ "values": [
+ {
+ "name": "GAMEPAD_BUTTON_UNKNOWN",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_LEFT_FACE_UP",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_LEFT_FACE_RIGHT",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_LEFT_FACE_DOWN",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_LEFT_FACE_LEFT",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_RIGHT_FACE_UP",
+ "value": 5,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_RIGHT_FACE_RIGHT",
+ "value": 6,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_RIGHT_FACE_DOWN",
+ "value": 7,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_RIGHT_FACE_LEFT",
+ "value": 8,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_LEFT_TRIGGER_1",
+ "value": 9,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_LEFT_TRIGGER_2",
+ "value": 10,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_RIGHT_TRIGGER_1",
+ "value": 11,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_RIGHT_TRIGGER_2",
+ "value": 12,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_MIDDLE_LEFT",
+ "value": 13,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_MIDDLE",
+ "value": 14,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_MIDDLE_RIGHT",
+ "value": 15,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_LEFT_THUMB",
+ "value": 16,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_BUTTON_RIGHT_THUMB",
+ "value": 17,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "GamepadAxis",
+ "description": "",
+ "values": [
+ {
+ "name": "GAMEPAD_AXIS_LEFT_X",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_AXIS_LEFT_Y",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_AXIS_RIGHT_X",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_AXIS_RIGHT_Y",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_AXIS_LEFT_TRIGGER",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "GAMEPAD_AXIS_RIGHT_TRIGGER",
+ "value": 5,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "MaterialMapIndex",
+ "description": "",
+ "values": [
+ {
+ "name": "MATERIAL_MAP_ALBEDO",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "MATERIAL_MAP_METALNESS",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "MATERIAL_MAP_NORMAL",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "MATERIAL_MAP_ROUGHNESS",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "MATERIAL_MAP_OCCLUSION",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "MATERIAL_MAP_EMISSION",
+ "value": 5,
+ "description": ""
+ },
+ {
+ "name": "MATERIAL_MAP_HEIGHT",
+ "value": 6,
+ "description": ""
+ },
+ {
+ "name": "MATERIAL_MAP_CUBEMAP",
+ "value": 7,
+ "description": ""
+ },
+ {
+ "name": "MATERIAL_MAP_IRRADIANCE",
+ "value": 8,
+ "description": ""
+ },
+ {
+ "name": "MATERIAL_MAP_PREFILTER",
+ "value": 9,
+ "description": ""
+ },
+ {
+ "name": "MATERIAL_MAP_BRDG",
+ "value": 10,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "ShaderLocationIndex",
+ "description": "",
+ "values": [
+ {
+ "name": "SHADER_LOC_VERTEX_POSITION",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_VERTEX_TEXCOORD01",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_VERTEX_TEXCOORD02",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_VERTEX_NORMAL",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_VERTEX_TANGENT",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_VERTEX_COLOR",
+ "value": 5,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MATRIX_MVP",
+ "value": 6,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MATRIX_VIEW",
+ "value": 7,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MATRIX_PROJECTION",
+ "value": 8,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MATRIX_MODEL",
+ "value": 9,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MATRIX_NORMAL",
+ "value": 10,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_VECTOR_VIEW",
+ "value": 11,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_COLOR_DIFFUSE",
+ "value": 12,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_COLOR_SPECULAR",
+ "value": 13,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_COLOR_AMBIENT",
+ "value": 14,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_ALBEDO",
+ "value": 15,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_METALNESS",
+ "value": 16,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_NORMAL",
+ "value": 17,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_ROUGHNESS",
+ "value": 18,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_OCCLUSION",
+ "value": 19,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_EMISSION",
+ "value": 20,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_HEIGHT",
+ "value": 21,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_CUBEMAP",
+ "value": 22,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_IRRADIANCE",
+ "value": 23,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_PREFILTER",
+ "value": 24,
+ "description": ""
+ },
+ {
+ "name": "SHADER_LOC_MAP_BRDF",
+ "value": 25,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "ShaderUniformDataType",
+ "description": "",
+ "values": [
+ {
+ "name": "SHADER_UNIFORM_FLOAT",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "SHADER_UNIFORM_VEC2",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "SHADER_UNIFORM_VEC3",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "SHADER_UNIFORM_VEC4",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "SHADER_UNIFORM_INT",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "SHADER_UNIFORM_IVEC2",
+ "value": 5,
+ "description": ""
+ },
+ {
+ "name": "SHADER_UNIFORM_IVEC3",
+ "value": 6,
+ "description": ""
+ },
+ {
+ "name": "SHADER_UNIFORM_IVEC4",
+ "value": 7,
+ "description": ""
+ },
+ {
+ "name": "SHADER_UNIFORM_SAMPLER2D",
+ "value": 8,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "ShaderAttributeDataType",
+ "description": "",
+ "values": [
+ {
+ "name": "SHADER_ATTRIB_FLOAT",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "SHADER_ATTRIB_VEC2",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "SHADER_ATTRIB_VEC3",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "SHADER_ATTRIB_VEC4",
+ "value": 3,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "PixelFormat",
+ "description": "",
+ "values": [
+ {
+ "name": "PIXELFORMAT_UNCOMPRESSED_GRAYSCALE",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_UNCOMPRESSED_R5G6B5",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_UNCOMPRESSED_R8G8B8",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_UNCOMPRESSED_R5G5B5A1",
+ "value": 5,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_UNCOMPRESSED_R4G4B4A4",
+ "value": 6,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_UNCOMPRESSED_R8G8B8A8",
+ "value": 7,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_UNCOMPRESSED_R32",
+ "value": 8,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_UNCOMPRESSED_R32G32B32",
+ "value": 9,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_UNCOMPRESSED_R32G32B32A32",
+ "value": 10,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_DXT1_RGB",
+ "value": 11,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_DXT1_RGBA",
+ "value": 12,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_DXT3_RGBA",
+ "value": 13,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_DXT5_RGBA",
+ "value": 14,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_ETC1_RGB",
+ "value": 15,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_ETC2_RGB",
+ "value": 16,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA",
+ "value": 17,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_PVRT_RGB",
+ "value": 18,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_PVRT_RGBA",
+ "value": 19,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA",
+ "value": 20,
+ "description": ""
+ },
+ {
+ "name": "PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA",
+ "value": 21,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "TextureFilter",
+ "description": "",
+ "values": [
+ {
+ "name": "TEXTURE_FILTER_POINT",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "TEXTURE_FILTER_BILINEAR",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "TEXTURE_FILTER_TRILINEAR",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "TEXTURE_FILTER_ANISOTROPIC_4X",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "TEXTURE_FILTER_ANISOTROPIC_8X",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "TEXTURE_FILTER_ANISOTROPIC_16X",
+ "value": 5,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "TextureWrap",
+ "description": "",
+ "values": [
+ {
+ "name": "TEXTURE_WRAP_REPEAT",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "TEXTURE_WRAP_CLAMP",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "TEXTURE_WRAP_MIRROR_REPEAT",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "TEXTURE_WRAP_MIRROR_CLAMP",
+ "value": 3,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "CubemapLayout",
+ "description": "",
+ "values": [
+ {
+ "name": "CUBEMAP_LAYOUT_AUTO_DETECT",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "CUBEMAP_LAYOUT_LINE_VERTICAL",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "CUBEMAP_LAYOUT_LINE_HORIZONTAL",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "CUBEMAP_LAYOUT_PANORAMA",
+ "value": 5,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "FontType",
+ "description": "",
+ "values": [
+ {
+ "name": "FONT_DEFAULT",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "FONT_BITMAP",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "FONT_SDF",
+ "value": 2,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "BlendMode",
+ "description": "",
+ "values": [
+ {
+ "name": "BLEND_ALPHA",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "BLEND_ADDITIVE",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "BLEND_MULTIPLIED",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "BLEND_ADD_COLORS",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "BLEND_SUBTRACT_COLORS",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "BLEND_CUSTOM",
+ "value": 5,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "Gesture",
+ "description": "",
+ "values": [
+ {
+ "name": "GESTURE_NONE",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "GESTURE_TAP",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "GESTURE_DOUBLETAP",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "GESTURE_HOLD",
+ "value": 4,
+ "description": ""
+ },
+ {
+ "name": "GESTURE_DRAG",
+ "value": 8,
+ "description": ""
+ },
+ {
+ "name": "GESTURE_SWIPE_RIGHT",
+ "value": 16,
+ "description": ""
+ },
+ {
+ "name": "GESTURE_SWIPE_LEFT",
+ "value": 32,
+ "description": ""
+ },
+ {
+ "name": "GESTURE_SWIPE_UP",
+ "value": 64,
+ "description": ""
+ },
+ {
+ "name": "GESTURE_SWIPE_DOWN",
+ "value": 128,
+ "description": ""
+ },
+ {
+ "name": "GESTURE_PINCH_IN",
+ "value": 256,
+ "description": ""
+ },
+ {
+ "name": "GESTURE_PINCH_OUT",
+ "value": 512,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "CameraMode",
+ "description": "",
+ "values": [
+ {
+ "name": "CAMERA_CUSTOM",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "CAMERA_FREE",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "CAMERA_ORBITAL",
+ "value": 2,
+ "description": ""
+ },
+ {
+ "name": "CAMERA_FIRST_PERSON",
+ "value": 3,
+ "description": ""
+ },
+ {
+ "name": "CAMERA_THIRD_PERSON",
+ "value": 4,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "CameraProjection",
+ "description": "",
+ "values": [
+ {
+ "name": "CAMERA_PERSPECTIVE",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "CAMERA_ORTHOGRAPHIC",
+ "value": 1,
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "NPatchLayout",
+ "description": "",
+ "values": [
+ {
+ "name": "NPATCH_NINE_PATCH",
+ "value": 0,
+ "description": ""
+ },
+ {
+ "name": "NPATCH_THREE_PATCH_VERTICAL",
+ "value": 1,
+ "description": ""
+ },
+ {
+ "name": "NPATCH_THREE_PATCH_HORIZONTAL",
+ "value": 2,
+ "description": ""
+ }
+ ]
+ }
+ ],
+ "functions": [
+ {
+ "name": "InitWindow",
+ "description": "Initialize window and OpenGL context",
+ "returnType": "void",
+ "params": {
+ "width": "int",
+ "height": "int",
+ "title": "const char *"
+ }
+ },
+ {
+ "name": "WindowShouldClose",
+ "description": "Check if KEY_ESCAPE pressed or Close icon pressed",
+ "returnType": "bool"
+ },
+ {
+ "name": "CloseWindow",
+ "description": "Close window and unload OpenGL context",
+ "returnType": "void"
+ },
+ {
+ "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 (only PLATFORM_DESKTOP)",
+ "returnType": "bool"
+ },
+ {
+ "name": "IsWindowMinimized",
+ "description": "Check if window is currently minimized (only PLATFORM_DESKTOP)",
+ "returnType": "bool"
+ },
+ {
+ "name": "IsWindowMaximized",
+ "description": "Check if window is currently maximized (only PLATFORM_DESKTOP)",
+ "returnType": "bool"
+ },
+ {
+ "name": "IsWindowFocused",
+ "description": "Check if window is currently focused (only PLATFORM_DESKTOP)",
+ "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": {
+ "flag": "unsigned int"
+ }
+ },
+ {
+ "name": "SetWindowState",
+ "description": "Set window configuration state using flags",
+ "returnType": "void",
+ "params": {
+ "flags": "unsigned int"
+ }
+ },
+ {
+ "name": "ClearWindowState",
+ "description": "Clear window configuration state flags",
+ "returnType": "void",
+ "params": {
+ "flags": "unsigned int"
+ }
+ },
+ {
+ "name": "ToggleFullscreen",
+ "description": "Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)",
+ "returnType": "void"
+ },
+ {
+ "name": "MaximizeWindow",
+ "description": "Set window state: maximized, if resizable (only PLATFORM_DESKTOP)",
+ "returnType": "void"
+ },
+ {
+ "name": "MinimizeWindow",
+ "description": "Set window state: minimized, if resizable (only PLATFORM_DESKTOP)",
+ "returnType": "void"
+ },
+ {
+ "name": "RestoreWindow",
+ "description": "Set window state: not minimized/maximized (only PLATFORM_DESKTOP)",
+ "returnType": "void"
+ },
+ {
+ "name": "SetWindowIcon",
+ "description": "Set icon for window (only PLATFORM_DESKTOP)",
+ "returnType": "void",
+ "params": {
+ "image": "Image"
+ }
+ },
+ {
+ "name": "SetWindowTitle",
+ "description": "Set title for window (only PLATFORM_DESKTOP)",
+ "returnType": "void",
+ "params": {
+ "title": "const char *"
+ }
+ },
+ {
+ "name": "SetWindowPosition",
+ "description": "Set window position on screen (only PLATFORM_DESKTOP)",
+ "returnType": "void",
+ "params": {
+ "x": "int",
+ "y": "int"
+ }
+ },
+ {
+ "name": "SetWindowMonitor",
+ "description": "Set monitor for the current window (fullscreen mode)",
+ "returnType": "void",
+ "params": {
+ "monitor": "int"
+ }
+ },
+ {
+ "name": "SetWindowMinSize",
+ "description": "Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)",
+ "returnType": "void",
+ "params": {
+ "width": "int",
+ "height": "int"
+ }
+ },
+ {
+ "name": "SetWindowSize",
+ "description": "Set window dimensions",
+ "returnType": "void",
+ "params": {
+ "width": "int",
+ "height": "int"
+ }
+ },
+ {
+ "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": "GetMonitorCount",
+ "description": "Get number of connected monitors",
+ "returnType": "int"
+ },
+ {
+ "name": "GetCurrentMonitor",
+ "description": "Get current connected monitor",
+ "returnType": "int"
+ },
+ {
+ "name": "GetMonitorPosition",
+ "description": "Get specified monitor position",
+ "returnType": "Vector2",
+ "params": {
+ "monitor": "int"
+ }
+ },
+ {
+ "name": "GetMonitorWidth",
+ "description": "Get specified monitor width (max available by monitor)",
+ "returnType": "int",
+ "params": {
+ "monitor": "int"
+ }
+ },
+ {
+ "name": "GetMonitorHeight",
+ "description": "Get specified monitor height (max available by monitor)",
+ "returnType": "int",
+ "params": {
+ "monitor": "int"
+ }
+ },
+ {
+ "name": "GetMonitorPhysicalWidth",
+ "description": "Get specified monitor physical width in millimetres",
+ "returnType": "int",
+ "params": {
+ "monitor": "int"
+ }
+ },
+ {
+ "name": "GetMonitorPhysicalHeight",
+ "description": "Get specified monitor physical height in millimetres",
+ "returnType": "int",
+ "params": {
+ "monitor": "int"
+ }
+ },
+ {
+ "name": "GetMonitorRefreshRate",
+ "description": "Get specified monitor refresh rate",
+ "returnType": "int",
+ "params": {
+ "monitor": "int"
+ }
+ },
+ {
+ "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 primary monitor",
+ "returnType": "const char *",
+ "params": {
+ "monitor": "int"
+ }
+ },
+ {
+ "name": "SetClipboardText",
+ "description": "Set clipboard text content",
+ "returnType": "void",
+ "params": {
+ "text": "const char *"
+ }
+ },
+ {
+ "name": "GetClipboardText",
+ "description": "Get clipboard text content",
+ "returnType": "const char *"
+ },
+ {
+ "name": "ShowCursor",
+ "description": "Shows cursor",
+ "returnType": "void"
+ },
+ {
+ "name": "HideCursor",
+ "description": "Hides cursor",
+ "returnType": "void"
+ },
+ {
+ "name": "IsCursorHidden",
+ "description": "Check if cursor is not visible",
+ "returnType": "bool"
+ },
+ {
+ "name": "EnableCursor",
+ "description": "Enables cursor (unlock cursor)",
+ "returnType": "void"
+ },
+ {
+ "name": "DisableCursor",
+ "description": "Disables cursor (lock cursor)",
+ "returnType": "void"
+ },
+ {
+ "name": "IsCursorOnScreen",
+ "description": "Check if cursor is on the screen",
+ "returnType": "bool"
+ },
+ {
+ "name": "ClearBackground",
+ "description": "Set background color (framebuffer clear color)",
+ "returnType": "void",
+ "params": {
+ "color": "Color"
+ }
+ },
+ {
+ "name": "BeginDrawing",
+ "description": "Setup canvas (framebuffer) to start drawing",
+ "returnType": "void"
+ },
+ {
+ "name": "EndDrawing",
+ "description": "End canvas drawing and swap buffers (double buffering)",
+ "returnType": "void"
+ },
+ {
+ "name": "BeginMode2D",
+ "description": "Begin 2D mode with custom camera (2D)",
+ "returnType": "void",
+ "params": {
+ "camera": "Camera2D"
+ }
+ },
+ {
+ "name": "EndMode2D",
+ "description": "Ends 2D mode with custom camera",
+ "returnType": "void"
+ },
+ {
+ "name": "BeginMode3D",
+ "description": "Begin 3D mode with custom camera (3D)",
+ "returnType": "void",
+ "params": {
+ "camera": "Camera3D"
+ }
+ },
+ {
+ "name": "EndMode3D",
+ "description": "Ends 3D mode and returns to default 2D orthographic mode",
+ "returnType": "void"
+ },
+ {
+ "name": "BeginTextureMode",
+ "description": "Begin drawing to render texture",
+ "returnType": "void",
+ "params": {
+ "target": "RenderTexture2D"
+ }
+ },
+ {
+ "name": "EndTextureMode",
+ "description": "Ends drawing to render texture",
+ "returnType": "void"
+ },
+ {
+ "name": "BeginShaderMode",
+ "description": "Begin custom shader drawing",
+ "returnType": "void",
+ "params": {
+ "shader": "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": {
+ "mode": "int"
+ }
+ },
+ {
+ "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": {
+ "x": "int",
+ "y": "int",
+ "width": "int",
+ "height": "int"
+ }
+ },
+ {
+ "name": "EndScissorMode",
+ "description": "End scissor mode",
+ "returnType": "void"
+ },
+ {
+ "name": "BeginVrStereoMode",
+ "description": "Begin stereo rendering (requires VR simulator)",
+ "returnType": "void",
+ "params": {
+ "config": "VrStereoConfig"
+ }
+ },
+ {
+ "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": {
+ "device": "VrDeviceInfo"
+ }
+ },
+ {
+ "name": "UnloadVrStereoConfig",
+ "description": "Unload VR stereo config",
+ "returnType": "void",
+ "params": {
+ "config": "VrStereoConfig"
+ }
+ },
+ {
+ "name": "LoadShader",
+ "description": "Load shader from files and bind default locations",
+ "returnType": "Shader",
+ "params": {
+ "vsFileName": "const char *",
+ "fsFileName": "const char *"
+ }
+ },
+ {
+ "name": "LoadShaderFromMemory",
+ "description": "Load shader from code strings and bind default locations",
+ "returnType": "Shader",
+ "params": {
+ "vsCode": "const char *",
+ "fsCode": "const char *"
+ }
+ },
+ {
+ "name": "GetShaderLocation",
+ "description": "Get shader uniform location",
+ "returnType": "int",
+ "params": {
+ "shader": "Shader",
+ "uniformName": "const char *"
+ }
+ },
+ {
+ "name": "GetShaderLocationAttrib",
+ "description": "Get shader attribute location",
+ "returnType": "int",
+ "params": {
+ "shader": "Shader",
+ "attribName": "const char *"
+ }
+ },
+ {
+ "name": "SetShaderValue",
+ "description": "Set shader uniform value",
+ "returnType": "void",
+ "params": {
+ "shader": "Shader",
+ "locIndex": "int",
+ "value": "const void *",
+ "uniformType": "int"
+ }
+ },
+ {
+ "name": "SetShaderValueV",
+ "description": "Set shader uniform value vector",
+ "returnType": "void",
+ "params": {
+ "shader": "Shader",
+ "locIndex": "int",
+ "value": "const void *",
+ "uniformType": "int",
+ "count": "int"
+ }
+ },
+ {
+ "name": "SetShaderValueMatrix",
+ "description": "Set shader uniform value (matrix 4x4)",
+ "returnType": "void",
+ "params": {
+ "shader": "Shader",
+ "locIndex": "int",
+ "mat": "Matrix"
+ }
+ },
+ {
+ "name": "SetShaderValueTexture",
+ "description": "Set shader uniform value for texture (sampler2d)",
+ "returnType": "void",
+ "params": {
+ "shader": "Shader",
+ "locIndex": "int",
+ "texture": "Texture2D"
+ }
+ },
+ {
+ "name": "UnloadShader",
+ "description": "Unload shader from GPU memory (VRAM)",
+ "returnType": "void",
+ "params": {
+ "shader": "Shader"
+ }
+ },
+ {
+ "name": "GetMouseRay",
+ "description": "Get a ray trace from mouse position",
+ "returnType": "Ray",
+ "params": {
+ "mousePosition": "Vector2",
+ "camera": "Camera"
+ }
+ },
+ {
+ "name": "GetCameraMatrix",
+ "description": "Get camera transform matrix (view matrix)",
+ "returnType": "Matrix",
+ "params": {
+ "camera": "Camera"
+ }
+ },
+ {
+ "name": "GetCameraMatrix2D",
+ "description": "Get camera 2d transform matrix",
+ "returnType": "Matrix",
+ "params": {
+ "camera": "Camera2D"
+ }
+ },
+ {
+ "name": "GetWorldToScreen",
+ "description": "Get the screen space position for a 3d world space position",
+ "returnType": "Vector2",
+ "params": {
+ "position": "Vector3",
+ "camera": "Camera"
+ }
+ },
+ {
+ "name": "GetWorldToScreenEx",
+ "description": "Get size position for a 3d world space position",
+ "returnType": "Vector2",
+ "params": {
+ "position": "Vector3",
+ "camera": "Camera",
+ "width": "int",
+ "height": "int"
+ }
+ },
+ {
+ "name": "GetWorldToScreen2D",
+ "description": "Get the screen space position for a 2d camera world space position",
+ "returnType": "Vector2",
+ "params": {
+ "position": "Vector2",
+ "camera": "Camera2D"
+ }
+ },
+ {
+ "name": "GetScreenToWorld2D",
+ "description": "Get the world space position for a 2d camera screen space position",
+ "returnType": "Vector2",
+ "params": {
+ "position": "Vector2",
+ "camera": "Camera2D"
+ }
+ },
+ {
+ "name": "SetTargetFPS",
+ "description": "Set target FPS (maximum)",
+ "returnType": "void",
+ "params": {
+ "fps": "int"
+ }
+ },
+ {
+ "name": "GetFPS",
+ "description": "Get current FPS",
+ "returnType": "int"
+ },
+ {
+ "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": "GetRandomValue",
+ "description": "Get a random value between min and max (both included)",
+ "returnType": "int",
+ "params": {
+ "min": "int",
+ "max": "int"
+ }
+ },
+ {
+ "name": "TakeScreenshot",
+ "description": "Takes a screenshot of current screen (filename extension defines format)",
+ "returnType": "void",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "SetConfigFlags",
+ "description": "Setup init configuration flags (view FLAGS)",
+ "returnType": "void",
+ "params": {
+ "flags": "unsigned int"
+ }
+ },
+ {
+ "name": "TraceLog",
+ "description": "Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)",
+ "returnType": "void",
+ "params": {
+ "logLevel": "int",
+ "text": "const char *",
+ "": ""
+ }
+ },
+ {
+ "name": "SetTraceLogLevel",
+ "description": "Set the current threshold (minimum) log level",
+ "returnType": "void",
+ "params": {
+ "logLevel": "int"
+ }
+ },
+ {
+ "name": "MemAlloc",
+ "description": "Internal memory allocator",
+ "returnType": "void *",
+ "params": {
+ "size": "int"
+ }
+ },
+ {
+ "name": "MemRealloc",
+ "description": "Internal memory reallocator",
+ "returnType": "void *",
+ "params": {
+ "ptr": "void *",
+ "size": "int"
+ }
+ },
+ {
+ "name": "MemFree",
+ "description": "Internal memory free",
+ "returnType": "void",
+ "params": {
+ "ptr": "void *"
+ }
+ },
+ {
+ "name": "SetTraceLogCallback",
+ "description": "Set custom trace log",
+ "returnType": "void",
+ "params": {
+ "callback": "TraceLogCallback"
+ }
+ },
+ {
+ "name": "SetLoadFileDataCallback",
+ "description": "Set custom file binary data loader",
+ "returnType": "void",
+ "params": {
+ "callback": "LoadFileDataCallback"
+ }
+ },
+ {
+ "name": "SetSaveFileDataCallback",
+ "description": "Set custom file binary data saver",
+ "returnType": "void",
+ "params": {
+ "callback": "SaveFileDataCallback"
+ }
+ },
+ {
+ "name": "SetLoadFileTextCallback",
+ "description": "Set custom file text data loader",
+ "returnType": "void",
+ "params": {
+ "callback": "LoadFileTextCallback"
+ }
+ },
+ {
+ "name": "SetSaveFileTextCallback",
+ "description": "Set custom file text data saver",
+ "returnType": "void",
+ "params": {
+ "callback": "SaveFileTextCallback"
+ }
+ },
+ {
+ "name": "LoadFileData",
+ "description": "Load file data as byte array (read)",
+ "returnType": "unsigned char *",
+ "params": {
+ "fileName": "const char *",
+ "bytesRead": "unsigned int *"
+ }
+ },
+ {
+ "name": "UnloadFileData",
+ "description": "Unload file data allocated by LoadFileData()",
+ "returnType": "void",
+ "params": {
+ "data": "unsigned char *"
+ }
+ },
+ {
+ "name": "SaveFileData",
+ "description": "Save data to file from byte array (write), returns true on success",
+ "returnType": "bool",
+ "params": {
+ "fileName": "const char *",
+ "data": "void *",
+ "bytesToWrite": "unsigned int"
+ }
+ },
+ {
+ "name": "LoadFileText",
+ "description": "Load text data from file (read), returns a ' 0' terminated string",
+ "returnType": "char *",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "UnloadFileText",
+ "description": "Unload file text data allocated by LoadFileText()",
+ "returnType": "void",
+ "params": {
+ "text": "char *"
+ }
+ },
+ {
+ "name": "SaveFileText",
+ "description": "Save text data to file (write), string must be ' 0' terminated, returns true on success",
+ "returnType": "bool",
+ "params": {
+ "fileName": "const char *",
+ "text": "char *"
+ }
+ },
+ {
+ "name": "FileExists",
+ "description": "Check if file exists",
+ "returnType": "bool",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "DirectoryExists",
+ "description": "Check if a directory path exists",
+ "returnType": "bool",
+ "params": {
+ "dirPath": "const char *"
+ }
+ },
+ {
+ "name": "IsFileExtension",
+ "description": "Check file extension (including point: .png, .wav)",
+ "returnType": "bool",
+ "params": {
+ "fileName": "const char *",
+ "ext": "const char *"
+ }
+ },
+ {
+ "name": "GetFileExtension",
+ "description": "Get pointer to extension for a filename string (includes dot: '.png')",
+ "returnType": "const char *",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "GetFileName",
+ "description": "Get pointer to filename for a path string",
+ "returnType": "const char *",
+ "params": {
+ "filePath": "const char *"
+ }
+ },
+ {
+ "name": "GetFileNameWithoutExt",
+ "description": "Get filename string without extension (uses static string)",
+ "returnType": "const char *",
+ "params": {
+ "filePath": "const char *"
+ }
+ },
+ {
+ "name": "GetDirectoryPath",
+ "description": "Get full path for a given fileName with path (uses static string)",
+ "returnType": "const char *",
+ "params": {
+ "filePath": "const char *"
+ }
+ },
+ {
+ "name": "GetPrevDirectoryPath",
+ "description": "Get previous directory path for a given path (uses static string)",
+ "returnType": "const char *",
+ "params": {
+ "dirPath": "const char *"
+ }
+ },
+ {
+ "name": "GetWorkingDirectory",
+ "description": "Get current working directory (uses static string)",
+ "returnType": "const char *"
+ },
+ {
+ "name": "GetDirectoryFiles",
+ "description": "Get filenames in a directory path (memory should be freed)",
+ "returnType": "char **",
+ "params": {
+ "dirPath": "const char *",
+ "count": "int *"
+ }
+ },
+ {
+ "name": "ClearDirectoryFiles",
+ "description": "Clear directory files paths buffers (free memory)",
+ "returnType": "void"
+ },
+ {
+ "name": "ChangeDirectory",
+ "description": "Change working directory, return true on success",
+ "returnType": "bool",
+ "params": {
+ "dir": "const char *"
+ }
+ },
+ {
+ "name": "IsFileDropped",
+ "description": "Check if a file has been dropped into window",
+ "returnType": "bool"
+ },
+ {
+ "name": "GetDroppedFiles",
+ "description": "Get dropped files names (memory should be freed)",
+ "returnType": "char **",
+ "params": {
+ "count": "int *"
+ }
+ },
+ {
+ "name": "ClearDroppedFiles",
+ "description": "Clear dropped files paths buffer (free memory)",
+ "returnType": "void"
+ },
+ {
+ "name": "GetFileModTime",
+ "description": "Get file modification time (last write time)",
+ "returnType": "long",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "CompressData",
+ "description": "Compress data (DEFLATE algorithm)",
+ "returnType": "unsigned char *",
+ "params": {
+ "data": "unsigned char *",
+ "dataLength": "int",
+ "compDataLength": "int *"
+ }
+ },
+ {
+ "name": "DecompressData",
+ "description": "Decompress data (DEFLATE algorithm)",
+ "returnType": "unsigned char *",
+ "params": {
+ "compData": "unsigned char *",
+ "compDataLength": "int",
+ "dataLength": "int *"
+ }
+ },
+ {
+ "name": "SaveStorageValue",
+ "description": "Save integer value to storage file (to defined position), returns true on success",
+ "returnType": "bool",
+ "params": {
+ "position": "unsigned int",
+ "value": "int"
+ }
+ },
+ {
+ "name": "LoadStorageValue",
+ "description": "Load integer value from storage file (from defined position)",
+ "returnType": "int",
+ "params": {
+ "position": "unsigned int"
+ }
+ },
+ {
+ "name": "OpenURL",
+ "description": "Open URL with default system browser (if available)",
+ "returnType": "void",
+ "params": {
+ "url": "const char *"
+ }
+ },
+ {
+ "name": "IsKeyPressed",
+ "description": "Check if a key has been pressed once",
+ "returnType": "bool",
+ "params": {
+ "key": "int"
+ }
+ },
+ {
+ "name": "IsKeyDown",
+ "description": "Check if a key is being pressed",
+ "returnType": "bool",
+ "params": {
+ "key": "int"
+ }
+ },
+ {
+ "name": "IsKeyReleased",
+ "description": "Check if a key has been released once",
+ "returnType": "bool",
+ "params": {
+ "key": "int"
+ }
+ },
+ {
+ "name": "IsKeyUp",
+ "description": "Check if a key is NOT being pressed",
+ "returnType": "bool",
+ "params": {
+ "key": "int"
+ }
+ },
+ {
+ "name": "SetExitKey",
+ "description": "Set a custom key to exit program (default is ESC)",
+ "returnType": "void",
+ "params": {
+ "key": "int"
+ }
+ },
+ {
+ "name": "GetKeyPressed",
+ "description": "Get key pressed (keycode), call it multiple times for keys queued",
+ "returnType": "int"
+ },
+ {
+ "name": "GetCharPressed",
+ "description": "Get char pressed (unicode), call it multiple times for chars queued",
+ "returnType": "int"
+ },
+ {
+ "name": "IsGamepadAvailable",
+ "description": "Check if a gamepad is available",
+ "returnType": "bool",
+ "params": {
+ "gamepad": "int"
+ }
+ },
+ {
+ "name": "IsGamepadName",
+ "description": "Check gamepad name (if available)",
+ "returnType": "bool",
+ "params": {
+ "gamepad": "int",
+ "name": "const char *"
+ }
+ },
+ {
+ "name": "GetGamepadName",
+ "description": "Get gamepad internal name id",
+ "returnType": "const char *",
+ "params": {
+ "gamepad": "int"
+ }
+ },
+ {
+ "name": "IsGamepadButtonPressed",
+ "description": "Check if a gamepad button has been pressed once",
+ "returnType": "bool",
+ "params": {
+ "gamepad": "int",
+ "button": "int"
+ }
+ },
+ {
+ "name": "IsGamepadButtonDown",
+ "description": "Check if a gamepad button is being pressed",
+ "returnType": "bool",
+ "params": {
+ "gamepad": "int",
+ "button": "int"
+ }
+ },
+ {
+ "name": "IsGamepadButtonReleased",
+ "description": "Check if a gamepad button has been released once",
+ "returnType": "bool",
+ "params": {
+ "gamepad": "int",
+ "button": "int"
+ }
+ },
+ {
+ "name": "IsGamepadButtonUp",
+ "description": "Check if a gamepad button is NOT being pressed",
+ "returnType": "bool",
+ "params": {
+ "gamepad": "int",
+ "button": "int"
+ }
+ },
+ {
+ "name": "GetGamepadButtonPressed",
+ "description": "Get the last gamepad button pressed",
+ "returnType": "int"
+ },
+ {
+ "name": "GetGamepadAxisCount",
+ "description": "Get gamepad axis count for a gamepad",
+ "returnType": "int",
+ "params": {
+ "gamepad": "int"
+ }
+ },
+ {
+ "name": "GetGamepadAxisMovement",
+ "description": "Get axis movement value for a gamepad axis",
+ "returnType": "float",
+ "params": {
+ "gamepad": "int",
+ "axis": "int"
+ }
+ },
+ {
+ "name": "SetGamepadMappings",
+ "description": "Set internal gamepad mappings (SDL_GameControllerDB)",
+ "returnType": "int",
+ "params": {
+ "mappings": "const char *"
+ }
+ },
+ {
+ "name": "IsMouseButtonPressed",
+ "description": "Check if a mouse button has been pressed once",
+ "returnType": "bool",
+ "params": {
+ "button": "int"
+ }
+ },
+ {
+ "name": "IsMouseButtonDown",
+ "description": "Check if a mouse button is being pressed",
+ "returnType": "bool",
+ "params": {
+ "button": "int"
+ }
+ },
+ {
+ "name": "IsMouseButtonReleased",
+ "description": "Check if a mouse button has been released once",
+ "returnType": "bool",
+ "params": {
+ "button": "int"
+ }
+ },
+ {
+ "name": "IsMouseButtonUp",
+ "description": "Check if a mouse button is NOT being pressed",
+ "returnType": "bool",
+ "params": {
+ "button": "int"
+ }
+ },
+ {
+ "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": "SetMousePosition",
+ "description": "Set mouse position XY",
+ "returnType": "void",
+ "params": {
+ "x": "int",
+ "y": "int"
+ }
+ },
+ {
+ "name": "SetMouseOffset",
+ "description": "Set mouse offset",
+ "returnType": "void",
+ "params": {
+ "offsetX": "int",
+ "offsetY": "int"
+ }
+ },
+ {
+ "name": "SetMouseScale",
+ "description": "Set mouse scaling",
+ "returnType": "void",
+ "params": {
+ "scaleX": "float",
+ "scaleY": "float"
+ }
+ },
+ {
+ "name": "GetMouseWheelMove",
+ "description": "Get mouse wheel movement Y",
+ "returnType": "float"
+ },
+ {
+ "name": "SetMouseCursor",
+ "description": "Set mouse cursor",
+ "returnType": "void",
+ "params": {
+ "cursor": "int"
+ }
+ },
+ {
+ "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": {
+ "index": "int"
+ }
+ },
+ {
+ "name": "SetGesturesEnabled",
+ "description": "Enable a set of gestures using flags",
+ "returnType": "void",
+ "params": {
+ "flags": "unsigned int"
+ }
+ },
+ {
+ "name": "IsGestureDetected",
+ "description": "Check if a gesture have been detected",
+ "returnType": "bool",
+ "params": {
+ "gesture": "int"
+ }
+ },
+ {
+ "name": "GetGestureDetected",
+ "description": "Get latest detected gesture",
+ "returnType": "int"
+ },
+ {
+ "name": "GetTouchPointsCount",
+ "description": "Get touch points count",
+ "returnType": "int"
+ },
+ {
+ "name": "GetGestureHoldDuration",
+ "description": "Get gesture hold time in milliseconds",
+ "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": "SetCameraMode",
+ "description": "Set camera mode (multiple camera modes available)",
+ "returnType": "void",
+ "params": {
+ "camera": "Camera",
+ "mode": "int"
+ }
+ },
+ {
+ "name": "UpdateCamera",
+ "description": "Update camera position for selected mode",
+ "returnType": "void",
+ "params": {
+ "camera": "Camera *"
+ }
+ },
+ {
+ "name": "SetCameraPanControl",
+ "description": "Set camera pan key to combine with mouse movement (free camera)",
+ "returnType": "void",
+ "params": {
+ "keyPan": "int"
+ }
+ },
+ {
+ "name": "SetCameraAltControl",
+ "description": "Set camera alt key to combine with mouse movement (free camera)",
+ "returnType": "void",
+ "params": {
+ "keyAlt": "int"
+ }
+ },
+ {
+ "name": "SetCameraSmoothZoomControl",
+ "description": "Set camera smooth zoom key to combine with mouse (free camera)",
+ "returnType": "void",
+ "params": {
+ "keySmoothZoom": "int"
+ }
+ },
+ {
+ "name": "SetCameraMoveControls",
+ "description": "Set camera move controls (1st person and 3rd person cameras)",
+ "returnType": "void",
+ "params": {
+ "keyFront": "int",
+ "keyBack": "int",
+ "keyRight": "int",
+ "keyLeft": "int",
+ "keyUp": "int",
+ "keyDown": "int"
+ }
+ },
+ {
+ "name": "SetShapesTexture",
+ "description": "Set texture and rectangle to be used on shapes drawing",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "source": "Rectangle"
+ }
+ },
+ {
+ "name": "DrawPixel",
+ "description": "Draw a pixel",
+ "returnType": "void",
+ "params": {
+ "posX": "int",
+ "posY": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawPixelV",
+ "description": "Draw a pixel (Vector version)",
+ "returnType": "void",
+ "params": {
+ "position": "Vector2",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawLine",
+ "description": "Draw a line",
+ "returnType": "void",
+ "params": {
+ "startPosX": "int",
+ "startPosY": "int",
+ "endPosX": "int",
+ "endPosY": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawLineV",
+ "description": "Draw a line (Vector version)",
+ "returnType": "void",
+ "params": {
+ "startPos": "Vector2",
+ "endPos": "Vector2",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawLineEx",
+ "description": "Draw a line defining thickness",
+ "returnType": "void",
+ "params": {
+ "startPos": "Vector2",
+ "endPos": "Vector2",
+ "thick": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawLineBezier",
+ "description": "Draw a line using cubic-bezier curves in-out",
+ "returnType": "void",
+ "params": {
+ "startPos": "Vector2",
+ "endPos": "Vector2",
+ "thick": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawLineBezierQuad",
+ "description": "raw line using quadratic bezier curves with a control point",
+ "returnType": "void",
+ "params": {
+ "startPos": "Vector2",
+ "endPos": "Vector2",
+ "controlPos": "Vector2",
+ "thick": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawLineStrip",
+ "description": "Draw lines sequence",
+ "returnType": "void",
+ "params": {
+ "points": "Vector2 *",
+ "pointsCount": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCircle",
+ "description": "Draw a color-filled circle",
+ "returnType": "void",
+ "params": {
+ "centerX": "int",
+ "centerY": "int",
+ "radius": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCircleSector",
+ "description": "Draw a piece of a circle",
+ "returnType": "void",
+ "params": {
+ "center": "Vector2",
+ "radius": "float",
+ "startAngle": "float",
+ "endAngle": "float",
+ "segments": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCircleSectorLines",
+ "description": "Draw circle sector outline",
+ "returnType": "void",
+ "params": {
+ "center": "Vector2",
+ "radius": "float",
+ "startAngle": "float",
+ "endAngle": "float",
+ "segments": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCircleGradient",
+ "description": "Draw a gradient-filled circle",
+ "returnType": "void",
+ "params": {
+ "centerX": "int",
+ "centerY": "int",
+ "radius": "float",
+ "color1": "Color",
+ "color2": "Color"
+ }
+ },
+ {
+ "name": "DrawCircleV",
+ "description": "Draw a color-filled circle (Vector version)",
+ "returnType": "void",
+ "params": {
+ "center": "Vector2",
+ "radius": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCircleLines",
+ "description": "Draw circle outline",
+ "returnType": "void",
+ "params": {
+ "centerX": "int",
+ "centerY": "int",
+ "radius": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawEllipse",
+ "description": "Draw ellipse",
+ "returnType": "void",
+ "params": {
+ "centerX": "int",
+ "centerY": "int",
+ "radiusH": "float",
+ "radiusV": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawEllipseLines",
+ "description": "Draw ellipse outline",
+ "returnType": "void",
+ "params": {
+ "centerX": "int",
+ "centerY": "int",
+ "radiusH": "float",
+ "radiusV": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRing",
+ "description": "Draw ring",
+ "returnType": "void",
+ "params": {
+ "center": "Vector2",
+ "innerRadius": "float",
+ "outerRadius": "float",
+ "startAngle": "float",
+ "endAngle": "float",
+ "segments": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRingLines",
+ "description": "Draw ring outline",
+ "returnType": "void",
+ "params": {
+ "center": "Vector2",
+ "innerRadius": "float",
+ "outerRadius": "float",
+ "startAngle": "float",
+ "endAngle": "float",
+ "segments": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRectangle",
+ "description": "Draw a color-filled rectangle",
+ "returnType": "void",
+ "params": {
+ "posX": "int",
+ "posY": "int",
+ "width": "int",
+ "height": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRectangleV",
+ "description": "Draw a color-filled rectangle (Vector version)",
+ "returnType": "void",
+ "params": {
+ "position": "Vector2",
+ "size": "Vector2",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRectangleRec",
+ "description": "Draw a color-filled rectangle",
+ "returnType": "void",
+ "params": {
+ "rec": "Rectangle",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRectanglePro",
+ "description": "Draw a color-filled rectangle with pro parameters",
+ "returnType": "void",
+ "params": {
+ "rec": "Rectangle",
+ "origin": "Vector2",
+ "rotation": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRectangleGradientV",
+ "description": "Draw a vertical-gradient-filled rectangle",
+ "returnType": "void",
+ "params": {
+ "posX": "int",
+ "posY": "int",
+ "width": "int",
+ "height": "int",
+ "color1": "Color",
+ "color2": "Color"
+ }
+ },
+ {
+ "name": "DrawRectangleGradientH",
+ "description": "Draw a horizontal-gradient-filled rectangle",
+ "returnType": "void",
+ "params": {
+ "posX": "int",
+ "posY": "int",
+ "width": "int",
+ "height": "int",
+ "color1": "Color",
+ "color2": "Color"
+ }
+ },
+ {
+ "name": "DrawRectangleGradientEx",
+ "description": "Draw a gradient-filled rectangle with custom vertex colors",
+ "returnType": "void",
+ "params": {
+ "rec": "Rectangle",
+ "col1": "Color",
+ "col2": "Color",
+ "col3": "Color",
+ "col4": "Color"
+ }
+ },
+ {
+ "name": "DrawRectangleLines",
+ "description": "Draw rectangle outline",
+ "returnType": "void",
+ "params": {
+ "posX": "int",
+ "posY": "int",
+ "width": "int",
+ "height": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRectangleLinesEx",
+ "description": "Draw rectangle outline with extended parameters",
+ "returnType": "void",
+ "params": {
+ "rec": "Rectangle",
+ "lineThick": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRectangleRounded",
+ "description": "Draw rectangle with rounded edges",
+ "returnType": "void",
+ "params": {
+ "rec": "Rectangle",
+ "roundness": "float",
+ "segments": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRectangleRoundedLines",
+ "description": "Draw rectangle with rounded edges outline",
+ "returnType": "void",
+ "params": {
+ "rec": "Rectangle",
+ "roundness": "float",
+ "segments": "int",
+ "lineThick": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawTriangle",
+ "description": "Draw a color-filled triangle (vertex in counter-clockwise order!)",
+ "returnType": "void",
+ "params": {
+ "v1": "Vector2",
+ "v2": "Vector2",
+ "v3": "Vector2",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawTriangleLines",
+ "description": "Draw triangle outline (vertex in counter-clockwise order!)",
+ "returnType": "void",
+ "params": {
+ "v1": "Vector2",
+ "v2": "Vector2",
+ "v3": "Vector2",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawTriangleFan",
+ "description": "Draw a triangle fan defined by points (first vertex is the center)",
+ "returnType": "void",
+ "params": {
+ "points": "Vector2 *",
+ "pointsCount": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawTriangleStrip",
+ "description": "Draw a triangle strip defined by points",
+ "returnType": "void",
+ "params": {
+ "points": "Vector2 *",
+ "pointsCount": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawPoly",
+ "description": "Draw a regular polygon (Vector version)",
+ "returnType": "void",
+ "params": {
+ "center": "Vector2",
+ "sides": "int",
+ "radius": "float",
+ "rotation": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawPolyLines",
+ "description": "Draw a polygon outline of n sides",
+ "returnType": "void",
+ "params": {
+ "center": "Vector2",
+ "sides": "int",
+ "radius": "float",
+ "rotation": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawPolyLinesEx",
+ "description": "Draw a polygon outline of n sides with extended parameters",
+ "returnType": "void",
+ "params": {
+ "center": "Vector2",
+ "sides": "int",
+ "radius": "float",
+ "rotation": "float",
+ "lineThick": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "CheckCollisionRecs",
+ "description": "Check collision between two rectangles",
+ "returnType": "bool",
+ "params": {
+ "rec1": "Rectangle",
+ "rec2": "Rectangle"
+ }
+ },
+ {
+ "name": "CheckCollisionCircles",
+ "description": "Check collision between two circles",
+ "returnType": "bool",
+ "params": {
+ "center1": "Vector2",
+ "radius1": "float",
+ "center2": "Vector2",
+ "radius2": "float"
+ }
+ },
+ {
+ "name": "CheckCollisionCircleRec",
+ "description": "Check collision between circle and rectangle",
+ "returnType": "bool",
+ "params": {
+ "center": "Vector2",
+ "radius": "float",
+ "rec": "Rectangle"
+ }
+ },
+ {
+ "name": "CheckCollisionPointRec",
+ "description": "Check if point is inside rectangle",
+ "returnType": "bool",
+ "params": {
+ "point": "Vector2",
+ "rec": "Rectangle"
+ }
+ },
+ {
+ "name": "CheckCollisionPointCircle",
+ "description": "Check if point is inside circle",
+ "returnType": "bool",
+ "params": {
+ "point": "Vector2",
+ "center": "Vector2",
+ "radius": "float"
+ }
+ },
+ {
+ "name": "CheckCollisionPointTriangle",
+ "description": "Check if point is inside a triangle",
+ "returnType": "bool",
+ "params": {
+ "point": "Vector2",
+ "p1": "Vector2",
+ "p2": "Vector2",
+ "p3": "Vector2"
+ }
+ },
+ {
+ "name": "CheckCollisionLines",
+ "description": "Check the collision between two lines defined by two points each, returns collision point by reference",
+ "returnType": "bool",
+ "params": {
+ "startPos1": "Vector2",
+ "endPos1": "Vector2",
+ "startPos2": "Vector2",
+ "endPos2": "Vector2",
+ "collisionPoint": "Vector2 *"
+ }
+ },
+ {
+ "name": "GetCollisionRec",
+ "description": "Get collision rectangle for two rectangles collision",
+ "returnType": "Rectangle",
+ "params": {
+ "rec1": "Rectangle",
+ "rec2": "Rectangle"
+ }
+ },
+ {
+ "name": "LoadImage",
+ "description": "Load image from file into CPU memory (RAM)",
+ "returnType": "Image",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "LoadImageRaw",
+ "description": "Load image from RAW file data",
+ "returnType": "Image",
+ "params": {
+ "fileName": "const char *",
+ "width": "int",
+ "height": "int",
+ "format": "int",
+ "headerSize": "int"
+ }
+ },
+ {
+ "name": "LoadImageAnim",
+ "description": "Load image sequence from file (frames appended to image.data)",
+ "returnType": "Image",
+ "params": {
+ "fileName": "const char *",
+ "frames": "int *"
+ }
+ },
+ {
+ "name": "LoadImageFromMemory",
+ "description": "Load image from memory buffer, fileType refers to extension: i.e. '.png'",
+ "returnType": "Image",
+ "params": {
+ "fileType": "const char *",
+ "fileData": "const unsigned char *",
+ "dataSize": "int"
+ }
+ },
+ {
+ "name": "UnloadImage",
+ "description": "Unload image from CPU memory (RAM)",
+ "returnType": "void",
+ "params": {
+ "image": "Image"
+ }
+ },
+ {
+ "name": "ExportImage",
+ "description": "Export image data to file, returns true on success",
+ "returnType": "bool",
+ "params": {
+ "image": "Image",
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "ExportImageAsCode",
+ "description": "Export image as code file defining an array of bytes, returns true on success",
+ "returnType": "bool",
+ "params": {
+ "image": "Image",
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "GenImageColor",
+ "description": "Generate image: plain color",
+ "returnType": "Image",
+ "params": {
+ "width": "int",
+ "height": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "GenImageGradientV",
+ "description": "Generate image: vertical gradient",
+ "returnType": "Image",
+ "params": {
+ "width": "int",
+ "height": "int",
+ "top": "Color",
+ "bottom": "Color"
+ }
+ },
+ {
+ "name": "GenImageGradientH",
+ "description": "Generate image: horizontal gradient",
+ "returnType": "Image",
+ "params": {
+ "width": "int",
+ "height": "int",
+ "left": "Color",
+ "right": "Color"
+ }
+ },
+ {
+ "name": "GenImageGradientRadial",
+ "description": "Generate image: radial gradient",
+ "returnType": "Image",
+ "params": {
+ "width": "int",
+ "height": "int",
+ "density": "float",
+ "inner": "Color",
+ "outer": "Color"
+ }
+ },
+ {
+ "name": "GenImageChecked",
+ "description": "Generate image: checked",
+ "returnType": "Image",
+ "params": {
+ "width": "int",
+ "height": "int",
+ "checksX": "int",
+ "checksY": "int",
+ "col1": "Color",
+ "col2": "Color"
+ }
+ },
+ {
+ "name": "GenImageWhiteNoise",
+ "description": "Generate image: white noise",
+ "returnType": "Image",
+ "params": {
+ "width": "int",
+ "height": "int",
+ "factor": "float"
+ }
+ },
+ {
+ "name": "GenImagePerlinNoise",
+ "description": "Generate image: perlin noise",
+ "returnType": "Image",
+ "params": {
+ "width": "int",
+ "height": "int",
+ "offsetX": "int",
+ "offsetY": "int",
+ "scale": "float"
+ }
+ },
+ {
+ "name": "GenImageCellular",
+ "description": "Generate image: cellular algorithm. Bigger tileSize means bigger cells",
+ "returnType": "Image",
+ "params": {
+ "width": "int",
+ "height": "int",
+ "tileSize": "int"
+ }
+ },
+ {
+ "name": "ImageCopy",
+ "description": "Create an image duplicate (useful for transformations)",
+ "returnType": "Image",
+ "params": {
+ "image": "Image"
+ }
+ },
+ {
+ "name": "ImageFromImage",
+ "description": "Create an image from another image piece",
+ "returnType": "Image",
+ "params": {
+ "image": "Image",
+ "rec": "Rectangle"
+ }
+ },
+ {
+ "name": "ImageText",
+ "description": "Create an image from text (default font)",
+ "returnType": "Image",
+ "params": {
+ "text": "const char *",
+ "fontSize": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageTextEx",
+ "description": "Create an image from text (custom sprite font)",
+ "returnType": "Image",
+ "params": {
+ "font": "Font",
+ "text": "const char *",
+ "fontSize": "float",
+ "spacing": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "ImageFormat",
+ "description": "Convert image data to desired format",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "newFormat": "int"
+ }
+ },
+ {
+ "name": "ImageToPOT",
+ "description": "Convert image to POT (power-of-two)",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "fill": "Color"
+ }
+ },
+ {
+ "name": "ImageCrop",
+ "description": "Crop an image to a defined rectangle",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "crop": "Rectangle"
+ }
+ },
+ {
+ "name": "ImageAlphaCrop",
+ "description": "Crop image depending on alpha value",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "threshold": "float"
+ }
+ },
+ {
+ "name": "ImageAlphaClear",
+ "description": "Clear alpha channel to desired color",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "color": "Color",
+ "threshold": "float"
+ }
+ },
+ {
+ "name": "ImageAlphaMask",
+ "description": "Apply alpha mask to image",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "alphaMask": "Image"
+ }
+ },
+ {
+ "name": "ImageAlphaPremultiply",
+ "description": "Premultiply alpha channel",
+ "returnType": "void",
+ "params": {
+ "image": "Image *"
+ }
+ },
+ {
+ "name": "ImageResize",
+ "description": "Resize image (Bicubic scaling algorithm)",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "newWidth": "int",
+ "newHeight": "int"
+ }
+ },
+ {
+ "name": "ImageResizeNN",
+ "description": "Resize image (Nearest-Neighbor scaling algorithm)",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "newWidth": "int",
+ "newHeight": "int"
+ }
+ },
+ {
+ "name": "ImageResizeCanvas",
+ "description": "Resize canvas and fill with color",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "newWidth": "int",
+ "newHeight": "int",
+ "offsetX": "int",
+ "offsetY": "int",
+ "fill": "Color"
+ }
+ },
+ {
+ "name": "ImageMipmaps",
+ "description": "Compute all mipmap levels for a provided image",
+ "returnType": "void",
+ "params": {
+ "image": "Image *"
+ }
+ },
+ {
+ "name": "ImageDither",
+ "description": "Dither image data to 16bpp or lower (Floyd-Steinberg dithering)",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "rBpp": "int",
+ "gBpp": "int",
+ "bBpp": "int",
+ "aBpp": "int"
+ }
+ },
+ {
+ "name": "ImageFlipVertical",
+ "description": "Flip image vertically",
+ "returnType": "void",
+ "params": {
+ "image": "Image *"
+ }
+ },
+ {
+ "name": "ImageFlipHorizontal",
+ "description": "Flip image horizontally",
+ "returnType": "void",
+ "params": {
+ "image": "Image *"
+ }
+ },
+ {
+ "name": "ImageRotateCW",
+ "description": "Rotate image clockwise 90deg",
+ "returnType": "void",
+ "params": {
+ "image": "Image *"
+ }
+ },
+ {
+ "name": "ImageRotateCCW",
+ "description": "Rotate image counter-clockwise 90deg",
+ "returnType": "void",
+ "params": {
+ "image": "Image *"
+ }
+ },
+ {
+ "name": "ImageColorTint",
+ "description": "Modify image color: tint",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageColorInvert",
+ "description": "Modify image color: invert",
+ "returnType": "void",
+ "params": {
+ "image": "Image *"
+ }
+ },
+ {
+ "name": "ImageColorGrayscale",
+ "description": "Modify image color: grayscale",
+ "returnType": "void",
+ "params": {
+ "image": "Image *"
+ }
+ },
+ {
+ "name": "ImageColorContrast",
+ "description": "Modify image color: contrast (-100 to 100)",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "contrast": "float"
+ }
+ },
+ {
+ "name": "ImageColorBrightness",
+ "description": "Modify image color: brightness (-255 to 255)",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "brightness": "int"
+ }
+ },
+ {
+ "name": "ImageColorReplace",
+ "description": "Modify image color: replace color",
+ "returnType": "void",
+ "params": {
+ "image": "Image *",
+ "color": "Color",
+ "replace": "Color"
+ }
+ },
+ {
+ "name": "LoadImageColors",
+ "description": "Load color data from image as a Color array (RGBA - 32bit)",
+ "returnType": "Color *",
+ "params": {
+ "image": "Image"
+ }
+ },
+ {
+ "name": "LoadImagePalette",
+ "description": "Load colors palette from image as a Color array (RGBA - 32bit)",
+ "returnType": "Color *",
+ "params": {
+ "image": "Image",
+ "maxPaletteSize": "int",
+ "colorsCount": "int *"
+ }
+ },
+ {
+ "name": "UnloadImageColors",
+ "description": "Unload color data loaded with LoadImageColors()",
+ "returnType": "void",
+ "params": {
+ "colors": "Color *"
+ }
+ },
+ {
+ "name": "UnloadImagePalette",
+ "description": "Unload colors palette loaded with LoadImagePalette()",
+ "returnType": "void",
+ "params": {
+ "colors": "Color *"
+ }
+ },
+ {
+ "name": "GetImageAlphaBorder",
+ "description": "Get image alpha border rectangle",
+ "returnType": "Rectangle",
+ "params": {
+ "image": "Image",
+ "threshold": "float"
+ }
+ },
+ {
+ "name": "ImageClearBackground",
+ "description": "Clear image background with given color",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawPixel",
+ "description": "Draw pixel within an image",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "posX": "int",
+ "posY": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawPixelV",
+ "description": "Draw pixel within an image (Vector version)",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "position": "Vector2",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawLine",
+ "description": "Draw line within an image",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "startPosX": "int",
+ "startPosY": "int",
+ "endPosX": "int",
+ "endPosY": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawLineV",
+ "description": "Draw line within an image (Vector version)",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "start": "Vector2",
+ "end": "Vector2",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawCircle",
+ "description": "Draw circle within an image",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "centerX": "int",
+ "centerY": "int",
+ "radius": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawCircleV",
+ "description": "Draw circle within an image (Vector version)",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "center": "Vector2",
+ "radius": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawRectangle",
+ "description": "Draw rectangle within an image",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "posX": "int",
+ "posY": "int",
+ "width": "int",
+ "height": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawRectangleV",
+ "description": "Draw rectangle within an image (Vector version)",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "position": "Vector2",
+ "size": "Vector2",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawRectangleRec",
+ "description": "Draw rectangle within an image",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "rec": "Rectangle",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawRectangleLines",
+ "description": "Draw rectangle lines within an image",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "rec": "Rectangle",
+ "thick": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDraw",
+ "description": "Draw a source image within a destination image (tint applied to source)",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "src": "Image",
+ "srcRec": "Rectangle",
+ "dstRec": "Rectangle",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawText",
+ "description": "Draw text (using default font) within an image (destination)",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "text": "const char *",
+ "posX": "int",
+ "posY": "int",
+ "fontSize": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ImageDrawTextEx",
+ "description": "Draw text (custom sprite font) within an image (destination)",
+ "returnType": "void",
+ "params": {
+ "dst": "Image *",
+ "font": "Font",
+ "text": "const char *",
+ "position": "Vector2",
+ "fontSize": "float",
+ "spacing": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "LoadTexture",
+ "description": "Load texture from file into GPU memory (VRAM)",
+ "returnType": "Texture2D",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "LoadTextureFromImage",
+ "description": "Load texture from image data",
+ "returnType": "Texture2D",
+ "params": {
+ "image": "Image"
+ }
+ },
+ {
+ "name": "LoadTextureCubemap",
+ "description": "Load cubemap from image, multiple image cubemap layouts supported",
+ "returnType": "TextureCubemap",
+ "params": {
+ "image": "Image",
+ "layout": "int"
+ }
+ },
+ {
+ "name": "LoadRenderTexture",
+ "description": "Load texture for rendering (framebuffer)",
+ "returnType": "RenderTexture2D",
+ "params": {
+ "width": "int",
+ "height": "int"
+ }
+ },
+ {
+ "name": "UnloadTexture",
+ "description": "Unload texture from GPU memory (VRAM)",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D"
+ }
+ },
+ {
+ "name": "UnloadRenderTexture",
+ "description": "Unload render texture from GPU memory (VRAM)",
+ "returnType": "void",
+ "params": {
+ "target": "RenderTexture2D"
+ }
+ },
+ {
+ "name": "UpdateTexture",
+ "description": "Update GPU texture with new data",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "pixels": "const void *"
+ }
+ },
+ {
+ "name": "UpdateTextureRec",
+ "description": "Update GPU texture rectangle with new data",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "rec": "Rectangle",
+ "pixels": "const void *"
+ }
+ },
+ {
+ "name": "GetTextureData",
+ "description": "Get pixel data from GPU texture and return an Image",
+ "returnType": "Image",
+ "params": {
+ "texture": "Texture2D"
+ }
+ },
+ {
+ "name": "GetScreenData",
+ "description": "Get pixel data from screen buffer and return an Image (screenshot)",
+ "returnType": "Image"
+ },
+ {
+ "name": "GenTextureMipmaps",
+ "description": "Generate GPU mipmaps for a texture",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D *"
+ }
+ },
+ {
+ "name": "SetTextureFilter",
+ "description": "Set texture scaling filter mode",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "filter": "int"
+ }
+ },
+ {
+ "name": "SetTextureWrap",
+ "description": "Set texture wrapping mode",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "wrap": "int"
+ }
+ },
+ {
+ "name": "DrawTexture",
+ "description": "Draw a Texture2D",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "posX": "int",
+ "posY": "int",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawTextureV",
+ "description": "Draw a Texture2D with position defined as Vector2",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "position": "Vector2",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawTextureEx",
+ "description": "Draw a Texture2D with extended parameters",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "position": "Vector2",
+ "rotation": "float",
+ "scale": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawTextureRec",
+ "description": "Draw a part of a texture defined by a rectangle",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "source": "Rectangle",
+ "position": "Vector2",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawTextureQuad",
+ "description": "Draw texture quad with tiling and offset parameters",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "tiling": "Vector2",
+ "offset": "Vector2",
+ "quad": "Rectangle",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawTextureTiled",
+ "description": "Draw part of a texture (defined by a rectangle) with rotation and scale tiled into dest.",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "source": "Rectangle",
+ "dest": "Rectangle",
+ "origin": "Vector2",
+ "rotation": "float",
+ "scale": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawTexturePro",
+ "description": "Draw a part of a texture defined by a rectangle with 'pro' parameters",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "source": "Rectangle",
+ "dest": "Rectangle",
+ "origin": "Vector2",
+ "rotation": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawTextureNPatch",
+ "description": "Draws a texture (or part of it) that stretches or shrinks nicely",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "nPatchInfo": "NPatchInfo",
+ "dest": "Rectangle",
+ "origin": "Vector2",
+ "rotation": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawTexturePoly",
+ "description": "Draw a textured polygon",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "center": "Vector2",
+ "points": "Vector2 *",
+ "texcoords": "Vector2 *",
+ "pointsCount": "int",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "Fade",
+ "description": "Get color with alpha applied, alpha goes from 0.0f to 1.0f",
+ "returnType": "Color",
+ "params": {
+ "color": "Color",
+ "alpha": "float"
+ }
+ },
+ {
+ "name": "ColorToInt",
+ "description": "Get hexadecimal value for a Color",
+ "returnType": "int",
+ "params": {
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ColorNormalize",
+ "description": "Get Color normalized as float [0..1]",
+ "returnType": "Vector4",
+ "params": {
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ColorFromNormalized",
+ "description": "Get Color from normalized values [0..1]",
+ "returnType": "Color",
+ "params": {
+ "normalized": "Vector4"
+ }
+ },
+ {
+ "name": "ColorToHSV",
+ "description": "Get HSV values for a Color, hue [0..360], saturation/value [0..1]",
+ "returnType": "Vector3",
+ "params": {
+ "color": "Color"
+ }
+ },
+ {
+ "name": "ColorFromHSV",
+ "description": "Get a Color from HSV values, hue [0..360], saturation/value [0..1]",
+ "returnType": "Color",
+ "params": {
+ "hue": "float",
+ "saturation": "float",
+ "value": "float"
+ }
+ },
+ {
+ "name": "ColorAlpha",
+ "description": "Get color with alpha applied, alpha goes from 0.0f to 1.0f",
+ "returnType": "Color",
+ "params": {
+ "color": "Color",
+ "alpha": "float"
+ }
+ },
+ {
+ "name": "ColorAlphaBlend",
+ "description": "Get src alpha-blended into dst color with tint",
+ "returnType": "Color",
+ "params": {
+ "dst": "Color",
+ "src": "Color",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "GetColor",
+ "description": "Get Color structure from hexadecimal value",
+ "returnType": "Color",
+ "params": {
+ "hexValue": "int"
+ }
+ },
+ {
+ "name": "GetPixelColor",
+ "description": "Get Color from a source pixel pointer of certain format",
+ "returnType": "Color",
+ "params": {
+ "srcPtr": "void *",
+ "format": "int"
+ }
+ },
+ {
+ "name": "SetPixelColor",
+ "description": "Set color formatted into destination pixel pointer",
+ "returnType": "void",
+ "params": {
+ "dstPtr": "void *",
+ "color": "Color",
+ "format": "int"
+ }
+ },
+ {
+ "name": "GetPixelDataSize",
+ "description": "Get pixel data size in bytes for certain format",
+ "returnType": "int",
+ "params": {
+ "width": "int",
+ "height": "int",
+ "format": "int"
+ }
+ },
+ {
+ "name": "GetFontDefault",
+ "description": "Get the default Font",
+ "returnType": "Font"
+ },
+ {
+ "name": "LoadFont",
+ "description": "Load font from file into GPU memory (VRAM)",
+ "returnType": "Font",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "LoadFontEx",
+ "description": "Load font from file with extended parameters",
+ "returnType": "Font",
+ "params": {
+ "fileName": "const char *",
+ "fontSize": "int",
+ "fontChars": "int *",
+ "charsCount": "int"
+ }
+ },
+ {
+ "name": "LoadFontFromImage",
+ "description": "Load font from Image (XNA style)",
+ "returnType": "Font",
+ "params": {
+ "image": "Image",
+ "key": "Color",
+ "firstChar": "int"
+ }
+ },
+ {
+ "name": "LoadFontFromMemory",
+ "description": "Load font from memory buffer, fileType refers to extension: i.e. '.ttf'",
+ "returnType": "Font",
+ "params": {
+ "fileType": "const char *",
+ "fileData": "const unsigned char *",
+ "dataSize": "int",
+ "fontSize": "int",
+ "fontChars": "int *",
+ "charsCount": "int"
+ }
+ },
+ {
+ "name": "LoadFontData",
+ "description": "Load font data for further use",
+ "returnType": "CharInfo *",
+ "params": {
+ "fileData": "const unsigned char *",
+ "dataSize": "int",
+ "fontSize": "int",
+ "fontChars": "int *",
+ "charsCount": "int",
+ "type": "int"
+ }
+ },
+ {
+ "name": "GenImageFontAtlas",
+ "description": "Generate image font atlas using chars info",
+ "returnType": "Image",
+ "params": {
+ "chars": "const CharInfo *",
+ "recs": "Rectangle **",
+ "charsCount": "int",
+ "fontSize": "int",
+ "padding": "int",
+ "packMethod": "int"
+ }
+ },
+ {
+ "name": "UnloadFontData",
+ "description": "Unload font chars info data (RAM)",
+ "returnType": "void",
+ "params": {
+ "chars": "CharInfo *",
+ "charsCount": "int"
+ }
+ },
+ {
+ "name": "UnloadFont",
+ "description": "Unload Font from GPU memory (VRAM)",
+ "returnType": "void",
+ "params": {
+ "font": "Font"
+ }
+ },
+ {
+ "name": "DrawFPS",
+ "description": "Draw current FPS",
+ "returnType": "void",
+ "params": {
+ "posX": "int",
+ "posY": "int"
+ }
+ },
+ {
+ "name": "DrawText",
+ "description": "Draw text (using default font)",
+ "returnType": "void",
+ "params": {
+ "text": "const char *",
+ "posX": "int",
+ "posY": "int",
+ "fontSize": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawTextEx",
+ "description": "Draw text using font and additional parameters",
+ "returnType": "void",
+ "params": {
+ "font": "Font",
+ "text": "const char *",
+ "position": "Vector2",
+ "fontSize": "float",
+ "spacing": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawTextRec",
+ "description": "Draw text using font inside rectangle limits",
+ "returnType": "void",
+ "params": {
+ "font": "Font",
+ "text": "const char *",
+ "rec": "Rectangle",
+ "fontSize": "float",
+ "spacing": "float",
+ "wordWrap": "bool",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawTextRecEx",
+ "description": "Draw text using font inside rectangle limits with support for text selection",
+ "returnType": "void",
+ "params": {
+ "font": "Font",
+ "text": "const char *",
+ "rec": "Rectangle",
+ "fontSize": "float",
+ "spacing": "float",
+ "wordWrap": "bool",
+ "tint": "Color",
+ "selectStart": "int",
+ "selectLength": "int",
+ "selectTint": "Color",
+ "selectBackTint": "Color"
+ }
+ },
+ {
+ "name": "DrawTextCodepoint",
+ "description": "Draw one character (codepoint)",
+ "returnType": "void",
+ "params": {
+ "font": "Font",
+ "codepoint": "int",
+ "position": "Vector2",
+ "fontSize": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "MeasureText",
+ "description": "Measure string width for default font",
+ "returnType": "int",
+ "params": {
+ "text": "const char *",
+ "fontSize": "int"
+ }
+ },
+ {
+ "name": "MeasureTextEx",
+ "description": "Measure string size for Font",
+ "returnType": "Vector2",
+ "params": {
+ "font": "Font",
+ "text": "const char *",
+ "fontSize": "float",
+ "spacing": "float"
+ }
+ },
+ {
+ "name": "GetGlyphIndex",
+ "description": "Get index position for a unicode character on font",
+ "returnType": "int",
+ "params": {
+ "font": "Font",
+ "codepoint": "int"
+ }
+ },
+ {
+ "name": "TextCopy",
+ "description": "Copy one string to another, returns bytes copied",
+ "returnType": "int",
+ "params": {
+ "dst": "char *",
+ "src": "const char *"
+ }
+ },
+ {
+ "name": "TextIsEqual",
+ "description": "Check if two text string are equal",
+ "returnType": "bool",
+ "params": {
+ "text1": "const char *",
+ "text2": "const char *"
+ }
+ },
+ {
+ "name": "TextLength",
+ "description": "Get text length, checks for ' 0' ending",
+ "returnType": "unsigned int",
+ "params": {
+ "text": "const char *"
+ }
+ },
+ {
+ "name": "TextFormat",
+ "description": "Text formatting with variables (sprintf style)",
+ "returnType": "const char *",
+ "params": {
+ "text": "const char *",
+ "": ""
+ }
+ },
+ {
+ "name": "TextSubtext",
+ "description": "Get a piece of a text string",
+ "returnType": "const char *",
+ "params": {
+ "text": "const char *",
+ "position": "int",
+ "length": "int"
+ }
+ },
+ {
+ "name": "TextReplace",
+ "description": "Replace text string (memory must be freed!)",
+ "returnType": "char *",
+ "params": {
+ "text": "char *",
+ "replace": "const char *",
+ "by": "const char *"
+ }
+ },
+ {
+ "name": "TextInsert",
+ "description": "Insert text in a position (memory must be freed!)",
+ "returnType": "char *",
+ "params": {
+ "text": "const char *",
+ "insert": "const char *",
+ "position": "int"
+ }
+ },
+ {
+ "name": "TextJoin",
+ "description": "Join text strings with delimiter",
+ "returnType": "const char *",
+ "params": {
+ "textList": "const char **",
+ "count": "int",
+ "delimiter": "const char *"
+ }
+ },
+ {
+ "name": "TextSplit",
+ "description": "Split text into multiple strings",
+ "returnType": "const char **",
+ "params": {
+ "text": "const char *",
+ "delimiter": "char",
+ "count": "int *"
+ }
+ },
+ {
+ "name": "TextAppend",
+ "description": "Append text at specific position and move cursor!",
+ "returnType": "void",
+ "params": {
+ "text": "char *",
+ "append": "const char *",
+ "position": "int *"
+ }
+ },
+ {
+ "name": "TextFindIndex",
+ "description": "Find first text occurrence within a string",
+ "returnType": "int",
+ "params": {
+ "text": "const char *",
+ "find": "const char *"
+ }
+ },
+ {
+ "name": "TextToUpper",
+ "description": "Get upper case version of provided string",
+ "returnType": "const char *",
+ "params": {
+ "text": "const char *"
+ }
+ },
+ {
+ "name": "TextToLower",
+ "description": "Get lower case version of provided string",
+ "returnType": "const char *",
+ "params": {
+ "text": "const char *"
+ }
+ },
+ {
+ "name": "TextToPascal",
+ "description": "Get Pascal case notation version of provided string",
+ "returnType": "const char *",
+ "params": {
+ "text": "const char *"
+ }
+ },
+ {
+ "name": "TextToInteger",
+ "description": "Get integer value from text (negative values not supported)",
+ "returnType": "int",
+ "params": {
+ "text": "const char *"
+ }
+ },
+ {
+ "name": "TextToUtf8",
+ "description": "Encode text codepoint into utf8 text (memory must be freed!)",
+ "returnType": "char *",
+ "params": {
+ "codepoints": "int *",
+ "length": "int"
+ }
+ },
+ {
+ "name": "GetCodepoints",
+ "description": "Get all codepoints in a string, codepoints count returned by parameters",
+ "returnType": "int *",
+ "params": {
+ "text": "const char *",
+ "count": "int *"
+ }
+ },
+ {
+ "name": "GetCodepointsCount",
+ "description": "Get total number of characters (codepoints) in a UTF8 encoded string",
+ "returnType": "int",
+ "params": {
+ "text": "const char *"
+ }
+ },
+ {
+ "name": "GetNextCodepoint",
+ "description": "Get next codepoint in a UTF8 encoded string; 0x3f('?') is returned on failure",
+ "returnType": "int",
+ "params": {
+ "text": "const char *",
+ "bytesProcessed": "int *"
+ }
+ },
+ {
+ "name": "CodepointToUtf8",
+ "description": "Encode codepoint into utf8 text (char array length returned as parameter)",
+ "returnType": "const char *",
+ "params": {
+ "codepoint": "int",
+ "byteLength": "int *"
+ }
+ },
+ {
+ "name": "DrawLine3D",
+ "description": "Draw a line in 3D world space",
+ "returnType": "void",
+ "params": {
+ "startPos": "Vector3",
+ "endPos": "Vector3",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawPoint3D",
+ "description": "Draw a point in 3D space, actually a small line",
+ "returnType": "void",
+ "params": {
+ "position": "Vector3",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCircle3D",
+ "description": "Draw a circle in 3D world space",
+ "returnType": "void",
+ "params": {
+ "center": "Vector3",
+ "radius": "float",
+ "rotationAxis": "Vector3",
+ "rotationAngle": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawTriangle3D",
+ "description": "Draw a color-filled triangle (vertex in counter-clockwise order!)",
+ "returnType": "void",
+ "params": {
+ "v1": "Vector3",
+ "v2": "Vector3",
+ "v3": "Vector3",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawTriangleStrip3D",
+ "description": "Draw a triangle strip defined by points",
+ "returnType": "void",
+ "params": {
+ "points": "Vector3 *",
+ "pointsCount": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCube",
+ "description": "Draw cube",
+ "returnType": "void",
+ "params": {
+ "position": "Vector3",
+ "width": "float",
+ "height": "float",
+ "length": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCubeV",
+ "description": "Draw cube (Vector version)",
+ "returnType": "void",
+ "params": {
+ "position": "Vector3",
+ "size": "Vector3",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCubeWires",
+ "description": "Draw cube wires",
+ "returnType": "void",
+ "params": {
+ "position": "Vector3",
+ "width": "float",
+ "height": "float",
+ "length": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCubeWiresV",
+ "description": "Draw cube wires (Vector version)",
+ "returnType": "void",
+ "params": {
+ "position": "Vector3",
+ "size": "Vector3",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCubeTexture",
+ "description": "Draw cube textured",
+ "returnType": "void",
+ "params": {
+ "texture": "Texture2D",
+ "position": "Vector3",
+ "width": "float",
+ "height": "float",
+ "length": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawSphere",
+ "description": "Draw sphere",
+ "returnType": "void",
+ "params": {
+ "centerPos": "Vector3",
+ "radius": "float",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawSphereEx",
+ "description": "Draw sphere with extended parameters",
+ "returnType": "void",
+ "params": {
+ "centerPos": "Vector3",
+ "radius": "float",
+ "rings": "int",
+ "slices": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawSphereWires",
+ "description": "Draw sphere wires",
+ "returnType": "void",
+ "params": {
+ "centerPos": "Vector3",
+ "radius": "float",
+ "rings": "int",
+ "slices": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCylinder",
+ "description": "Draw a cylinder/cone",
+ "returnType": "void",
+ "params": {
+ "position": "Vector3",
+ "radiusTop": "float",
+ "radiusBottom": "float",
+ "height": "float",
+ "slices": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawCylinderWires",
+ "description": "Draw a cylinder/cone wires",
+ "returnType": "void",
+ "params": {
+ "position": "Vector3",
+ "radiusTop": "float",
+ "radiusBottom": "float",
+ "height": "float",
+ "slices": "int",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawPlane",
+ "description": "Draw a plane XZ",
+ "returnType": "void",
+ "params": {
+ "centerPos": "Vector3",
+ "size": "Vector2",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawRay",
+ "description": "Draw a ray line",
+ "returnType": "void",
+ "params": {
+ "ray": "Ray",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawGrid",
+ "description": "Draw a grid (centered at (0, 0, 0))",
+ "returnType": "void",
+ "params": {
+ "slices": "int",
+ "spacing": "float"
+ }
+ },
+ {
+ "name": "LoadModel",
+ "description": "Load model from files (meshes and materials)",
+ "returnType": "Model",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "LoadModelFromMesh",
+ "description": "Load model from generated mesh (default material)",
+ "returnType": "Model",
+ "params": {
+ "mesh": "Mesh"
+ }
+ },
+ {
+ "name": "UnloadModel",
+ "description": "Unload model (including meshes) from memory (RAM and/or VRAM)",
+ "returnType": "void",
+ "params": {
+ "model": "Model"
+ }
+ },
+ {
+ "name": "UnloadModelKeepMeshes",
+ "description": "Unload model (but not meshes) from memory (RAM and/or VRAM)",
+ "returnType": "void",
+ "params": {
+ "model": "Model"
+ }
+ },
+ {
+ "name": "UploadMesh",
+ "description": "Upload mesh vertex data in GPU and provide VAO/VBO ids",
+ "returnType": "void",
+ "params": {
+ "mesh": "Mesh *",
+ "dynamic": "bool"
+ }
+ },
+ {
+ "name": "UpdateMeshBuffer",
+ "description": "Update mesh vertex data in GPU for a specific buffer index",
+ "returnType": "void",
+ "params": {
+ "mesh": "Mesh",
+ "index": "int",
+ "data": "void *",
+ "dataSize": "int",
+ "offset": "int"
+ }
+ },
+ {
+ "name": "DrawMesh",
+ "description": "Draw a 3d mesh with material and transform",
+ "returnType": "void",
+ "params": {
+ "mesh": "Mesh",
+ "material": "Material",
+ "transform": "Matrix"
+ }
+ },
+ {
+ "name": "DrawMeshInstanced",
+ "description": "Draw multiple mesh instances with material and different transforms",
+ "returnType": "void",
+ "params": {
+ "mesh": "Mesh",
+ "material": "Material",
+ "transforms": "Matrix *",
+ "instances": "int"
+ }
+ },
+ {
+ "name": "UnloadMesh",
+ "description": "Unload mesh data from CPU and GPU",
+ "returnType": "void",
+ "params": {
+ "mesh": "Mesh"
+ }
+ },
+ {
+ "name": "ExportMesh",
+ "description": "Export mesh data to file, returns true on success",
+ "returnType": "bool",
+ "params": {
+ "mesh": "Mesh",
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "LoadMaterials",
+ "description": "Load materials from model file",
+ "returnType": "Material *",
+ "params": {
+ "fileName": "const char *",
+ "materialCount": "int *"
+ }
+ },
+ {
+ "name": "LoadMaterialDefault",
+ "description": "Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)",
+ "returnType": "Material"
+ },
+ {
+ "name": "UnloadMaterial",
+ "description": "Unload material from GPU memory (VRAM)",
+ "returnType": "void",
+ "params": {
+ "material": "Material"
+ }
+ },
+ {
+ "name": "SetMaterialTexture",
+ "description": "Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...)",
+ "returnType": "void",
+ "params": {
+ "material": "Material *",
+ "mapType": "int",
+ "texture": "Texture2D"
+ }
+ },
+ {
+ "name": "SetModelMeshMaterial",
+ "description": "Set material for a mesh",
+ "returnType": "void",
+ "params": {
+ "model": "Model *",
+ "meshId": "int",
+ "materialId": "int"
+ }
+ },
+ {
+ "name": "LoadModelAnimations",
+ "description": "Load model animations from file",
+ "returnType": "ModelAnimation *",
+ "params": {
+ "fileName": "const char *",
+ "animsCount": "int *"
+ }
+ },
+ {
+ "name": "UpdateModelAnimation",
+ "description": "Update model animation pose",
+ "returnType": "void",
+ "params": {
+ "model": "Model",
+ "anim": "ModelAnimation",
+ "frame": "int"
+ }
+ },
+ {
+ "name": "UnloadModelAnimation",
+ "description": "Unload animation data",
+ "returnType": "void",
+ "params": {
+ "anim": "ModelAnimation"
+ }
+ },
+ {
+ "name": "UnloadModelAnimations",
+ "description": "Unload animation array data",
+ "returnType": "void",
+ "params": {
+ "animations": "ModelAnimation*",
+ "count": "unsigned int"
+ }
+ },
+ {
+ "name": "IsModelAnimationValid",
+ "description": "Check model animation skeleton match",
+ "returnType": "bool",
+ "params": {
+ "model": "Model",
+ "anim": "ModelAnimation"
+ }
+ },
+ {
+ "name": "GenMeshPoly",
+ "description": "Generate polygonal mesh",
+ "returnType": "Mesh",
+ "params": {
+ "sides": "int",
+ "radius": "float"
+ }
+ },
+ {
+ "name": "GenMeshPlane",
+ "description": "Generate plane mesh (with subdivisions)",
+ "returnType": "Mesh",
+ "params": {
+ "width": "float",
+ "length": "float",
+ "resX": "int",
+ "resZ": "int"
+ }
+ },
+ {
+ "name": "GenMeshCube",
+ "description": "Generate cuboid mesh",
+ "returnType": "Mesh",
+ "params": {
+ "width": "float",
+ "height": "float",
+ "length": "float"
+ }
+ },
+ {
+ "name": "GenMeshSphere",
+ "description": "Generate sphere mesh (standard sphere)",
+ "returnType": "Mesh",
+ "params": {
+ "radius": "float",
+ "rings": "int",
+ "slices": "int"
+ }
+ },
+ {
+ "name": "GenMeshHemiSphere",
+ "description": "Generate half-sphere mesh (no bottom cap)",
+ "returnType": "Mesh",
+ "params": {
+ "radius": "float",
+ "rings": "int",
+ "slices": "int"
+ }
+ },
+ {
+ "name": "GenMeshCylinder",
+ "description": "Generate cylinder mesh",
+ "returnType": "Mesh",
+ "params": {
+ "radius": "float",
+ "height": "float",
+ "slices": "int"
+ }
+ },
+ {
+ "name": "GenMeshTorus",
+ "description": "Generate torus mesh",
+ "returnType": "Mesh",
+ "params": {
+ "radius": "float",
+ "size": "float",
+ "radSeg": "int",
+ "sides": "int"
+ }
+ },
+ {
+ "name": "GenMeshKnot",
+ "description": "Generate trefoil knot mesh",
+ "returnType": "Mesh",
+ "params": {
+ "radius": "float",
+ "size": "float",
+ "radSeg": "int",
+ "sides": "int"
+ }
+ },
+ {
+ "name": "GenMeshHeightmap",
+ "description": "Generate heightmap mesh from image data",
+ "returnType": "Mesh",
+ "params": {
+ "heightmap": "Image",
+ "size": "Vector3"
+ }
+ },
+ {
+ "name": "GenMeshCubicmap",
+ "description": "Generate cubes-based map mesh from image data",
+ "returnType": "Mesh",
+ "params": {
+ "cubicmap": "Image",
+ "cubeSize": "Vector3"
+ }
+ },
+ {
+ "name": "GetMeshBoundingBox",
+ "description": "Compute mesh bounding box limits",
+ "returnType": "BoundingBox",
+ "params": {
+ "mesh": "Mesh"
+ }
+ },
+ {
+ "name": "MeshTangents",
+ "description": "Compute mesh tangents",
+ "returnType": "void",
+ "params": {
+ "mesh": "Mesh *"
+ }
+ },
+ {
+ "name": "MeshBinormals",
+ "description": "Compute mesh binormals",
+ "returnType": "void",
+ "params": {
+ "mesh": "Mesh *"
+ }
+ },
+ {
+ "name": "DrawModel",
+ "description": "Draw a model (with texture if set)",
+ "returnType": "void",
+ "params": {
+ "model": "Model",
+ "position": "Vector3",
+ "scale": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawModelEx",
+ "description": "Draw a model with extended parameters",
+ "returnType": "void",
+ "params": {
+ "model": "Model",
+ "position": "Vector3",
+ "rotationAxis": "Vector3",
+ "rotationAngle": "float",
+ "scale": "Vector3",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawModelWires",
+ "description": "Draw a model wires (with texture if set)",
+ "returnType": "void",
+ "params": {
+ "model": "Model",
+ "position": "Vector3",
+ "scale": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawModelWiresEx",
+ "description": "Draw a model wires (with texture if set) with extended parameters",
+ "returnType": "void",
+ "params": {
+ "model": "Model",
+ "position": "Vector3",
+ "rotationAxis": "Vector3",
+ "rotationAngle": "float",
+ "scale": "Vector3",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawBoundingBox",
+ "description": "Draw bounding box (wires)",
+ "returnType": "void",
+ "params": {
+ "box": "BoundingBox",
+ "color": "Color"
+ }
+ },
+ {
+ "name": "DrawBillboard",
+ "description": "Draw a billboard texture",
+ "returnType": "void",
+ "params": {
+ "camera": "Camera",
+ "texture": "Texture2D",
+ "position": "Vector3",
+ "size": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawBillboardRec",
+ "description": "Draw a billboard texture defined by source",
+ "returnType": "void",
+ "params": {
+ "camera": "Camera",
+ "texture": "Texture2D",
+ "source": "Rectangle",
+ "position": "Vector3",
+ "size": "Vector2",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "DrawBillboardPro",
+ "description": "Draw a billboard texture defined by source and rotation",
+ "returnType": "void",
+ "params": {
+ "camera": "Camera",
+ "texture": "Texture2D",
+ "source": "Rectangle",
+ "position": "Vector3",
+ "size": "Vector2",
+ "origin": "Vector2",
+ "rotation": "float",
+ "tint": "Color"
+ }
+ },
+ {
+ "name": "CheckCollisionSpheres",
+ "description": "Check collision between two spheres",
+ "returnType": "bool",
+ "params": {
+ "center1": "Vector3",
+ "radius1": "float",
+ "center2": "Vector3",
+ "radius2": "float"
+ }
+ },
+ {
+ "name": "CheckCollisionBoxes",
+ "description": "Check collision between two bounding boxes",
+ "returnType": "bool",
+ "params": {
+ "box1": "BoundingBox",
+ "box2": "BoundingBox"
+ }
+ },
+ {
+ "name": "CheckCollisionBoxSphere",
+ "description": "Check collision between box and sphere",
+ "returnType": "bool",
+ "params": {
+ "box": "BoundingBox",
+ "center": "Vector3",
+ "radius": "float"
+ }
+ },
+ {
+ "name": "GetRayCollisionSphere",
+ "description": "Get collision info between ray and sphere",
+ "returnType": "RayCollision",
+ "params": {
+ "ray": "Ray",
+ "center": "Vector3",
+ "radius": "float"
+ }
+ },
+ {
+ "name": "GetRayCollisionBox",
+ "description": "Get collision info between ray and box",
+ "returnType": "RayCollision",
+ "params": {
+ "ray": "Ray",
+ "box": "BoundingBox"
+ }
+ },
+ {
+ "name": "GetRayCollisionModel",
+ "description": "Get collision info between ray and model",
+ "returnType": "RayCollision",
+ "params": {
+ "ray": "Ray",
+ "model": "Model"
+ }
+ },
+ {
+ "name": "GetRayCollisionMesh",
+ "description": "Get collision info between ray and mesh",
+ "returnType": "RayCollision",
+ "params": {
+ "ray": "Ray",
+ "mesh": "Mesh",
+ "transform": "Matrix"
+ }
+ },
+ {
+ "name": "GetRayCollisionTriangle",
+ "description": "Get collision info between ray and triangle",
+ "returnType": "RayCollision",
+ "params": {
+ "ray": "Ray",
+ "p1": "Vector3",
+ "p2": "Vector3",
+ "p3": "Vector3"
+ }
+ },
+ {
+ "name": "GetRayCollisionQuad",
+ "description": "Get collision info between ray and quad",
+ "returnType": "RayCollision",
+ "params": {
+ "ray": "Ray",
+ "p1": "Vector3",
+ "p2": "Vector3",
+ "p3": "Vector3",
+ "p4": "Vector3"
+ }
+ },
+ {
+ "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": {
+ "volume": "float"
+ }
+ },
+ {
+ "name": "LoadWave",
+ "description": "Load wave data from file",
+ "returnType": "Wave",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "LoadWaveFromMemory",
+ "description": "Load wave from memory buffer, fileType refers to extension: i.e. '.wav'",
+ "returnType": "Wave",
+ "params": {
+ "fileType": "const char *",
+ "fileData": "const unsigned char *",
+ "dataSize": "int"
+ }
+ },
+ {
+ "name": "LoadSound",
+ "description": "Load sound from file",
+ "returnType": "Sound",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "LoadSoundFromWave",
+ "description": "Load sound from wave data",
+ "returnType": "Sound",
+ "params": {
+ "wave": "Wave"
+ }
+ },
+ {
+ "name": "UpdateSound",
+ "description": "Update sound buffer with new data",
+ "returnType": "void",
+ "params": {
+ "sound": "Sound",
+ "data": "const void *",
+ "samplesCount": "int"
+ }
+ },
+ {
+ "name": "UnloadWave",
+ "description": "Unload wave data",
+ "returnType": "void",
+ "params": {
+ "wave": "Wave"
+ }
+ },
+ {
+ "name": "UnloadSound",
+ "description": "Unload sound",
+ "returnType": "void",
+ "params": {
+ "sound": "Sound"
+ }
+ },
+ {
+ "name": "ExportWave",
+ "description": "Export wave data to file, returns true on success",
+ "returnType": "bool",
+ "params": {
+ "wave": "Wave",
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "ExportWaveAsCode",
+ "description": "Export wave sample data to code (.h), returns true on success",
+ "returnType": "bool",
+ "params": {
+ "wave": "Wave",
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "PlaySound",
+ "description": "Play a sound",
+ "returnType": "void",
+ "params": {
+ "sound": "Sound"
+ }
+ },
+ {
+ "name": "StopSound",
+ "description": "Stop playing a sound",
+ "returnType": "void",
+ "params": {
+ "sound": "Sound"
+ }
+ },
+ {
+ "name": "PauseSound",
+ "description": "Pause a sound",
+ "returnType": "void",
+ "params": {
+ "sound": "Sound"
+ }
+ },
+ {
+ "name": "ResumeSound",
+ "description": "Resume a paused sound",
+ "returnType": "void",
+ "params": {
+ "sound": "Sound"
+ }
+ },
+ {
+ "name": "PlaySoundMulti",
+ "description": "Play a sound (using multichannel buffer pool)",
+ "returnType": "void",
+ "params": {
+ "sound": "Sound"
+ }
+ },
+ {
+ "name": "StopSoundMulti",
+ "description": "Stop any sound playing (using multichannel buffer pool)",
+ "returnType": "void"
+ },
+ {
+ "name": "GetSoundsPlaying",
+ "description": "Get number of sounds playing in the multichannel",
+ "returnType": "int"
+ },
+ {
+ "name": "IsSoundPlaying",
+ "description": "Check if a sound is currently playing",
+ "returnType": "bool",
+ "params": {
+ "sound": "Sound"
+ }
+ },
+ {
+ "name": "SetSoundVolume",
+ "description": "Set volume for a sound (1.0 is max level)",
+ "returnType": "void",
+ "params": {
+ "sound": "Sound",
+ "volume": "float"
+ }
+ },
+ {
+ "name": "SetSoundPitch",
+ "description": "Set pitch for a sound (1.0 is base level)",
+ "returnType": "void",
+ "params": {
+ "sound": "Sound",
+ "pitch": "float"
+ }
+ },
+ {
+ "name": "WaveFormat",
+ "description": "Convert wave data to desired format",
+ "returnType": "void",
+ "params": {
+ "wave": "Wave *",
+ "sampleRate": "int",
+ "sampleSize": "int",
+ "channels": "int"
+ }
+ },
+ {
+ "name": "WaveCopy",
+ "description": "Copy a wave to a new wave",
+ "returnType": "Wave",
+ "params": {
+ "wave": "Wave"
+ }
+ },
+ {
+ "name": "WaveCrop",
+ "description": "Crop a wave to defined samples range",
+ "returnType": "void",
+ "params": {
+ "wave": "Wave *",
+ "initSample": "int",
+ "finalSample": "int"
+ }
+ },
+ {
+ "name": "LoadWaveSamples",
+ "description": "Load samples data from wave as a floats array",
+ "returnType": "float *",
+ "params": {
+ "wave": "Wave"
+ }
+ },
+ {
+ "name": "UnloadWaveSamples",
+ "description": "Unload samples data loaded with LoadWaveSamples()",
+ "returnType": "void",
+ "params": {
+ "samples": "float *"
+ }
+ },
+ {
+ "name": "LoadMusicStream",
+ "description": "Load music stream from file",
+ "returnType": "Music",
+ "params": {
+ "fileName": "const char *"
+ }
+ },
+ {
+ "name": "LoadMusicStreamFromMemory",
+ "description": "Load music stream from data",
+ "returnType": "Music",
+ "params": {
+ "fileType": "const char *",
+ "data": "unsigned char *",
+ "dataSize": "int"
+ }
+ },
+ {
+ "name": "UnloadMusicStream",
+ "description": "Unload music stream",
+ "returnType": "void",
+ "params": {
+ "music": "Music"
+ }
+ },
+ {
+ "name": "PlayMusicStream",
+ "description": "Start music playing",
+ "returnType": "void",
+ "params": {
+ "music": "Music"
+ }
+ },
+ {
+ "name": "IsMusicStreamPlaying",
+ "description": "Check if music is playing",
+ "returnType": "bool",
+ "params": {
+ "music": "Music"
+ }
+ },
+ {
+ "name": "UpdateMusicStream",
+ "description": "Updates buffers for music streaming",
+ "returnType": "void",
+ "params": {
+ "music": "Music"
+ }
+ },
+ {
+ "name": "StopMusicStream",
+ "description": "Stop music playing",
+ "returnType": "void",
+ "params": {
+ "music": "Music"
+ }
+ },
+ {
+ "name": "PauseMusicStream",
+ "description": "Pause music playing",
+ "returnType": "void",
+ "params": {
+ "music": "Music"
+ }
+ },
+ {
+ "name": "ResumeMusicStream",
+ "description": "Resume playing paused music",
+ "returnType": "void",
+ "params": {
+ "music": "Music"
+ }
+ },
+ {
+ "name": "SetMusicVolume",
+ "description": "Set volume for music (1.0 is max level)",
+ "returnType": "void",
+ "params": {
+ "music": "Music",
+ "volume": "float"
+ }
+ },
+ {
+ "name": "SetMusicPitch",
+ "description": "Set pitch for a music (1.0 is base level)",
+ "returnType": "void",
+ "params": {
+ "music": "Music",
+ "pitch": "float"
+ }
+ },
+ {
+ "name": "GetMusicTimeLength",
+ "description": "Get music time length (in seconds)",
+ "returnType": "float",
+ "params": {
+ "music": "Music"
+ }
+ },
+ {
+ "name": "GetMusicTimePlayed",
+ "description": "Get current music time played (in seconds)",
+ "returnType": "float",
+ "params": {
+ "music": "Music"
+ }
+ },
+ {
+ "name": "LoadAudioStream",
+ "description": "Load audio stream (to stream raw audio pcm data)",
+ "returnType": "AudioStream",
+ "params": {
+ "sampleRate": "unsigned int",
+ "sampleSize": "unsigned int",
+ "channels": "unsigned int"
+ }
+ },
+ {
+ "name": "UnloadAudioStream",
+ "description": "Unload audio stream and free memory",
+ "returnType": "void",
+ "params": {
+ "stream": "AudioStream"
+ }
+ },
+ {
+ "name": "UpdateAudioStream",
+ "description": "Update audio stream buffers with data",
+ "returnType": "void",
+ "params": {
+ "stream": "AudioStream",
+ "data": "const void *",
+ "samplesCount": "int"
+ }
+ },
+ {
+ "name": "IsAudioStreamProcessed",
+ "description": "Check if any audio stream buffers requires refill",
+ "returnType": "bool",
+ "params": {
+ "stream": "AudioStream"
+ }
+ },
+ {
+ "name": "PlayAudioStream",
+ "description": "Play audio stream",
+ "returnType": "void",
+ "params": {
+ "stream": "AudioStream"
+ }
+ },
+ {
+ "name": "PauseAudioStream",
+ "description": "Pause audio stream",
+ "returnType": "void",
+ "params": {
+ "stream": "AudioStream"
+ }
+ },
+ {
+ "name": "ResumeAudioStream",
+ "description": "Resume audio stream",
+ "returnType": "void",
+ "params": {
+ "stream": "AudioStream"
+ }
+ },
+ {
+ "name": "IsAudioStreamPlaying",
+ "description": "Check if audio stream is playing",
+ "returnType": "bool",
+ "params": {
+ "stream": "AudioStream"
+ }
+ },
+ {
+ "name": "StopAudioStream",
+ "description": "Stop audio stream",
+ "returnType": "void",
+ "params": {
+ "stream": "AudioStream"
+ }
+ },
+ {
+ "name": "SetAudioStreamVolume",
+ "description": "Set volume for audio stream (1.0 is max level)",
+ "returnType": "void",
+ "params": {
+ "stream": "AudioStream",
+ "volume": "float"
+ }
+ },
+ {
+ "name": "SetAudioStreamPitch",
+ "description": "Set pitch for audio stream (1.0 is base level)",
+ "returnType": "void",
+ "params": {
+ "stream": "AudioStream",
+ "pitch": "float"
+ }
+ },
+ {
+ "name": "SetAudioStreamBufferSizeDefault",
+ "description": "Default size for new audio streams",
+ "returnType": "void",
+ "params": {
+ "size": "int"
+ }
+ }
+ ]
+}
diff --git a/parser/raylib_api.txt b/parser/raylib_api.txt
new file mode 100644
index 000000000..07e1614c8
--- /dev/null
+++ b/parser/raylib_api.txt
@@ -0,0 +1,3568 @@
+
+Structures found: 31
+
+Struct 01: Vector2 (2 fields)
+ Name: Vector2
+ Description:
+ Field[1]: float x // Vector x component
+ Field[2]: float y // Vector y component
+Struct 02: Vector3 (3 fields)
+ Name: Vector3
+ Description:
+ Field[1]: float x // Vector x component
+ Field[2]: float y // Vector y component
+ Field[3]: float z // Vector z component
+Struct 03: Vector4 (4 fields)
+ Name: Vector4
+ Description:
+ Field[1]: float x // Vector x component
+ Field[2]: float y // Vector y component
+ Field[3]: float z // Vector z component
+ Field[4]: float w // Vector w component
+Struct 04: Matrix (4 fields)
+ Name: Matrix
+ Description:
+ Field[1]: float m0, m4, m8, m12 // Matrix first row (4 components)
+ Field[2]: float m1, m5, m9, m13 // Matrix second row (4 components)
+ Field[3]: float m2, m6, m10, m14 // Matrix third row (4 components)
+ Field[4]: float m3, m7, m11, m15 // Matrix fourth row (4 components)
+Struct 05: Color (4 fields)
+ Name: Color
+ Description:
+ Field[1]: unsigned char r // Color red value
+ Field[2]: unsigned char g // Color green value
+ Field[3]: unsigned char b // Color blue value
+ Field[4]: unsigned char a // Color alpha value
+Struct 06: Rectangle (4 fields)
+ Name: Rectangle
+ Description:
+ Field[1]: float x // Rectangle top-left corner position x
+ Field[2]: float y // Rectangle top-left corner position y
+ Field[3]: float width // Rectangle width
+ Field[4]: float height // Rectangle height
+Struct 07: Image (5 fields)
+ Name: Image
+ Description:
+ Field[1]: void * data // Image raw data
+ Field[2]: int width // Image base width
+ Field[3]: int height // Image base height
+ Field[4]: int mipmaps // Mipmap levels, 1 by default
+ Field[5]: int format // Data format (PixelFormat type)
+Struct 08: Texture (5 fields)
+ Name: Texture
+ Description:
+ Field[1]: unsigned int id // OpenGL texture id
+ Field[2]: int width // Texture base width
+ Field[3]: int height // Texture base height
+ Field[4]: int mipmaps // Mipmap levels, 1 by default
+ Field[5]: int format // Data format (PixelFormat type)
+Struct 09: RenderTexture (3 fields)
+ Name: RenderTexture
+ Description:
+ Field[1]: unsigned int id // OpenGL framebuffer object id
+ Field[2]: Texture texture // Color buffer attachment texture
+ Field[3]: Texture depth // Depth buffer attachment texture
+Struct 10: NPatchInfo (6 fields)
+ Name: NPatchInfo
+ Description:
+ Field[1]: Rectangle source // Texture source rectangle
+ Field[2]: int left // Left border offset
+ Field[3]: int top // Top border offset
+ Field[4]: int right // Right border offset
+ Field[5]: int bottom // Bottom border offset
+ Field[6]: int layout // Layout of the n-patch: 3x3, 1x3 or 3x1
+Struct 11: CharInfo (5 fields)
+ Name: CharInfo
+ Description:
+ Field[1]: int value // Character value (Unicode)
+ Field[2]: int offsetX // Character offset X when drawing
+ Field[3]: int offsetY // Character offset Y when drawing
+ Field[4]: int advanceX // Character advance position X
+ Field[5]: Image image // Character image data
+Struct 12: Font (6 fields)
+ Name: Font
+ Description:
+ Field[1]: int baseSize // Base size (default chars height)
+ Field[2]: int charsCount // Number of characters
+ Field[3]: int charsPadding // Padding around the chars
+ Field[4]: Texture2D texture // Characters texture atlas
+ Field[5]: Rectangle * recs // Characters rectangles in texture
+ Field[6]: CharInfo * chars // Characters info data
+Struct 13: Camera3D (5 fields)
+ Name: Camera3D
+ Description:
+ Field[1]: Vector3 position // Camera position
+ Field[2]: Vector3 target // Camera target it looks-at
+ Field[3]: Vector3 up // Camera up vector (rotation over its axis)
+ Field[4]: float fovy // Camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic
+ Field[5]: int projection // Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC
+Struct 14: Camera2D (4 fields)
+ Name: Camera2D
+ Description:
+ Field[1]: Vector2 offset // Camera offset (displacement from target)
+ Field[2]: Vector2 target // Camera target (rotation and zoom origin)
+ Field[3]: float rotation // Camera rotation in degrees
+ Field[4]: float zoom // Camera zoom (scaling), should be 1.0f by default
+Struct 15: Mesh (15 fields)
+ Name: Mesh
+ Description:
+ Field[1]: int vertexCount // Number of vertices stored in arrays
+ Field[2]: int triangleCount // Number of triangles stored (indexed or not)
+ Field[3]: float * vertices // Vertex position (XYZ - 3 components per vertex) (shader-location = 0)
+ Field[4]: float * texcoords // Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1)
+ Field[5]: float * texcoords2 // Vertex second texture coordinates (useful for lightmaps) (shader-location = 5)
+ Field[6]: float * normals // Vertex normals (XYZ - 3 components per vertex) (shader-location = 2)
+ Field[7]: float * tangents // Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4)
+ Field[8]: unsigned char * colors // Vertex colors (RGBA - 4 components per vertex) (shader-location = 3)
+ Field[9]: unsigned short * indices // Vertex indices (in case vertex data comes indexed)
+ Field[10]: float * animVertices // Animated vertex positions (after bones transformations)
+ Field[11]: float * animNormals // Animated normals (after bones transformations)
+ Field[12]: int * boneIds // Vertex bone ids, up to 4 bones influence by vertex (skinning)
+ Field[13]: float * boneWeights // Vertex bone weight, up to 4 bones influence by vertex (skinning)
+ Field[14]: unsigned int vaoId // OpenGL Vertex Array Object id
+ Field[15]: unsigned int * vboId // OpenGL Vertex Buffer Objects id (default vertex data)
+Struct 16: Shader (2 fields)
+ Name: Shader
+ Description:
+ Field[1]: unsigned int id // Shader program id
+ Field[2]: int * locs // Shader locations array (MAX_SHADER_LOCATIONS)
+Struct 17: MaterialMap (3 fields)
+ Name: MaterialMap
+ Description:
+ Field[1]: Texture2D texture // Material map texture
+ Field[2]: Color color // Material map color
+ Field[3]: float value // Material map value
+Struct 18: Material (3 fields)
+ Name: Material
+ Description:
+ Field[1]: Shader shader // Material shader
+ Field[2]: MaterialMap * maps // Material maps array (MAX_MATERIAL_MAPS)
+ Field[3]: float params[4] // Material generic parameters (if required)
+Struct 19: Transform (3 fields)
+ Name: Transform
+ Description:
+ Field[1]: Vector3 translation // Translation
+ Field[2]: Quaternion rotation // Rotation
+ Field[3]: Vector3 scale // Scale
+Struct 20: BoneInfo (2 fields)
+ Name: BoneInfo
+ Description:
+ Field[1]: char name[32] // Bone name
+ Field[2]: int parent // Bone parent
+Struct 21: Model (9 fields)
+ Name: Model
+ Description:
+ Field[1]: Matrix transform // Local transform matrix
+ Field[2]: int meshCount // Number of meshes
+ Field[3]: int materialCount // Number of materials
+ Field[4]: Mesh * meshes // Meshes array
+ Field[5]: Material * materials // Materials array
+ Field[6]: int * meshMaterial // Mesh material number
+ Field[7]: int boneCount // Number of bones
+ Field[8]: BoneInfo * bones // Bones information (skeleton)
+ Field[9]: Transform * bindPose // Bones base transformation (pose)
+Struct 22: ModelAnimation (4 fields)
+ Name: ModelAnimation
+ Description:
+ Field[1]: int boneCount // Number of bones
+ Field[2]: int frameCount // Number of animation frames
+ Field[3]: BoneInfo * bones // Bones information (skeleton)
+ Field[4]: Transform ** framePoses // Poses array by frame
+Struct 23: Ray (2 fields)
+ Name: Ray
+ Description:
+ Field[1]: Vector3 position // Ray position (origin)
+ Field[2]: Vector3 direction // Ray direction
+Struct 24: RayCollision (4 fields)
+ Name: RayCollision
+ Description:
+ Field[1]: bool hit // Did the ray hit something?
+ Field[2]: float distance // Distance to nearest hit
+ Field[3]: Vector3 point // Point of nearest hit
+ Field[4]: Vector3 normal // Surface normal of hit
+Struct 25: BoundingBox (2 fields)
+ Name: BoundingBox
+ Description:
+ Field[1]: Vector3 min // Minimum vertex box-corner
+ Field[2]: Vector3 max // Maximum vertex box-corner
+Struct 26: Wave (5 fields)
+ Name: Wave
+ Description:
+ Field[1]: unsigned int sampleCount // Total number of samples (considering channels!)
+ Field[2]: unsigned int sampleRate // Frequency (samples per second)
+ Field[3]: unsigned int sampleSize // Bit depth (bits per sample): 8, 16, 32 (24 not supported)
+ Field[4]: unsigned int channels // Number of channels (1-mono, 2-stereo)
+ Field[5]: void * data // Buffer data pointer
+Struct 27: AudioStream (4 fields)
+ Name: AudioStream
+ Description:
+ Field[1]: rAudioBuffer * buffer // Pointer to internal data used by the audio system
+ Field[2]: unsigned int sampleRate // Frequency (samples per second)
+ Field[3]: unsigned int sampleSize // Bit depth (bits per sample): 8, 16, 32 (24 not supported)
+ Field[4]: unsigned int channels // Number of channels (1-mono, 2-stereo)
+Struct 28: Sound (2 fields)
+ Name: Sound
+ Description:
+ Field[1]: AudioStream stream // Audio stream
+ Field[2]: unsigned int sampleCount // Total number of samples
+Struct 29: Music (5 fields)
+ Name: Music
+ Description:
+ Field[1]: AudioStream stream // Audio stream
+ Field[2]: unsigned int sampleCount // Total number of samples
+ Field[3]: bool looping // Music looping enable
+ Field[4]: int ctxType // Type of music context (audio filetype)
+ Field[5]: void * ctxData // Audio context data, depends on type
+Struct 30: VrDeviceInfo (10 fields)
+ Name: VrDeviceInfo
+ Description:
+ Field[1]: int hResolution // Horizontal resolution in pixels
+ Field[2]: int vResolution // Vertical resolution in pixels
+ Field[3]: float hScreenSize // Horizontal size in meters
+ Field[4]: float vScreenSize // Vertical size in meters
+ Field[5]: float vScreenCenter // Screen center in meters
+ Field[6]: float eyeToScreenDistance // Distance between eye and display in meters
+ Field[7]: float lensSeparationDistance // Lens separation distance in meters
+ Field[8]: float interpupillaryDistance // IPD (distance between pupils) in meters
+ Field[9]: float lensDistortionValues[4] // Lens distortion constant parameters
+ Field[10]: float chromaAbCorrection[4] // Chromatic aberration correction parameters
+Struct 31: VrStereoConfig (8 fields)
+ Name: VrStereoConfig
+ Description:
+ Field[1]: Matrix projection[2] // VR projection matrices (per eye)
+ Field[2]: Matrix viewOffset[2] // VR view offset matrices (per eye)
+ Field[3]: float leftLensCenter[2] // VR left lens center
+ Field[4]: float rightLensCenter[2] // VR right lens center
+ Field[5]: float leftScreenCenter[2] // VR left screen center
+ Field[6]: float rightScreenCenter[2] // VR right screen center
+ Field[7]: float scale[2] // VR distortion scale
+ Field[8]: float scaleIn[2] // VR distortion scale in
+
+Enums found: 21
+
+Enum 01: ConfigFlags (14 values)
+ Name: ConfigFlags
+ Description:
+ Value[FLAG_VSYNC_HINT]: 64
+ Value[FLAG_FULLSCREEN_MODE]: 2
+ Value[FLAG_WINDOW_RESIZABLE]: 4
+ Value[FLAG_WINDOW_UNDECORATED]: 8
+ Value[FLAG_WINDOW_HIDDEN]: 128
+ Value[FLAG_WINDOW_MINIMIZED]: 512
+ Value[FLAG_WINDOW_MAXIMIZED]: 1024
+ Value[FLAG_WINDOW_UNFOCUSED]: 2048
+ Value[FLAG_WINDOW_TOPMOST]: 4096
+ Value[FLAG_WINDOW_ALWAYS_RUN]: 256
+ Value[FLAG_WINDOW_TRANSPARENT]: 16
+ Value[FLAG_WINDOW_HIGHDPI]: 8192
+ Value[FLAG_MSAA_4X_HINT]: 32
+ Value[FLAG_INTERLACED_HINT]: 65536
+Enum 02: TraceLogLevel (8 values)
+ Name: TraceLogLevel
+ Description:
+ Value[LOG_ALL]: 0
+ Value[LOG_TRACE]: 1
+ Value[LOG_DEBUG]: 2
+ Value[LOG_INFO]: 3
+ Value[LOG_WARNING]: 4
+ Value[LOG_ERROR]: 5
+ Value[LOG_FATAL]: 6
+ Value[LOG_NONE]: 7
+Enum 03: KeyboardKey (110 values)
+ Name: KeyboardKey
+ Description:
+ Value[KEY_NULL]: 0
+ Value[KEY_APOSTROPHE]: 39
+ Value[KEY_COMMA]: 44
+ Value[KEY_MINUS]: 45
+ Value[KEY_PERIOD]: 46
+ Value[KEY_SLASH]: 47
+ Value[KEY_ZERO]: 48
+ Value[KEY_ONE]: 49
+ Value[KEY_TWO]: 50
+ Value[KEY_THREE]: 51
+ Value[KEY_FOUR]: 52
+ Value[KEY_FIVE]: 53
+ Value[KEY_SIX]: 54
+ Value[KEY_SEVEN]: 55
+ Value[KEY_EIGHT]: 56
+ Value[KEY_NINE]: 57
+ Value[KEY_SEMICOLON]: 59
+ Value[KEY_EQUAL]: 61
+ Value[KEY_A]: 65
+ Value[KEY_B]: 66
+ Value[KEY_C]: 67
+ Value[KEY_D]: 68
+ Value[KEY_E]: 69
+ Value[KEY_F]: 70
+ Value[KEY_G]: 71
+ Value[KEY_H]: 72
+ Value[KEY_I]: 73
+ Value[KEY_J]: 74
+ Value[KEY_K]: 75
+ Value[KEY_L]: 76
+ Value[KEY_M]: 77
+ Value[KEY_N]: 78
+ Value[KEY_O]: 79
+ Value[KEY_P]: 80
+ Value[KEY_Q]: 81
+ Value[KEY_R]: 82
+ Value[KEY_S]: 83
+ Value[KEY_T]: 84
+ Value[KEY_U]: 85
+ Value[KEY_V]: 86
+ Value[KEY_W]: 87
+ Value[KEY_X]: 88
+ Value[KEY_Y]: 89
+ Value[KEY_Z]: 90
+ Value[KEY_SPACE]: 32
+ Value[KEY_ESCAPE]: 256
+ Value[KEY_ENTER]: 257
+ Value[KEY_TAB]: 258
+ Value[KEY_BACKSPACE]: 259
+ Value[KEY_INSERT]: 260
+ Value[KEY_DELETE]: 261
+ Value[KEY_RIGHT]: 262
+ Value[KEY_LEFT]: 263
+ Value[KEY_DOWN]: 264
+ Value[KEY_UP]: 265
+ Value[KEY_PAGE_UP]: 266
+ Value[KEY_PAGE_DOWN]: 267
+ Value[KEY_HOME]: 268
+ Value[KEY_END]: 269
+ Value[KEY_CAPS_LOCK]: 280
+ Value[KEY_SCROLL_LOCK]: 281
+ Value[KEY_NUM_LOCK]: 282
+ Value[KEY_PRINT_SCREEN]: 283
+ Value[KEY_PAUSE]: 284
+ Value[KEY_F1]: 290
+ Value[KEY_F2]: 291
+ Value[KEY_F3]: 292
+ Value[KEY_F4]: 293
+ Value[KEY_F5]: 294
+ Value[KEY_F6]: 295
+ Value[KEY_F7]: 296
+ Value[KEY_F8]: 297
+ Value[KEY_F9]: 298
+ Value[KEY_F10]: 299
+ Value[KEY_F11]: 300
+ Value[KEY_F12]: 301
+ Value[KEY_LEFT_SHIFT]: 340
+ Value[KEY_LEFT_CONTROL]: 341
+ Value[KEY_LEFT_ALT]: 342
+ Value[KEY_LEFT_SUPER]: 343
+ Value[KEY_RIGHT_SHIFT]: 344
+ Value[KEY_RIGHT_CONTROL]: 345
+ Value[KEY_RIGHT_ALT]: 346
+ Value[KEY_RIGHT_SUPER]: 347
+ Value[KEY_KB_MENU]: 348
+ Value[KEY_LEFT_BRACKET]: 91
+ Value[KEY_BACKSLASH]: 92
+ Value[KEY_RIGHT_BRACKET]: 93
+ Value[KEY_GRAVE]: 96
+ Value[KEY_KP_0]: 320
+ Value[KEY_KP_1]: 321
+ Value[KEY_KP_2]: 322
+ Value[KEY_KP_3]: 323
+ Value[KEY_KP_4]: 324
+ Value[KEY_KP_5]: 325
+ Value[KEY_KP_6]: 326
+ Value[KEY_KP_7]: 327
+ Value[KEY_KP_8]: 328
+ Value[KEY_KP_9]: 329
+ Value[KEY_KP_DECIMAL]: 330
+ Value[KEY_KP_DIVIDE]: 331
+ Value[KEY_KP_MULTIPLY]: 332
+ Value[KEY_KP_SUBTRACT]: 333
+ Value[KEY_KP_ADD]: 334
+ Value[KEY_KP_ENTER]: 335
+ Value[KEY_KP_EQUAL]: 336
+ Value[KEY_BACK]: 4
+ Value[KEY_MENU]: 82
+ Value[KEY_VOLUME_UP]: 24
+ Value[KEY_VOLUME_DOWN]: 25
+Enum 04: MouseButton (7 values)
+ Name: MouseButton
+ Description:
+ Value[MOUSE_BUTTON_LEFT]: 0
+ Value[MOUSE_BUTTON_RIGHT]: 1
+ Value[MOUSE_BUTTON_MIDDLE]: 2
+ Value[MOUSE_BUTTON_SIDE]: 3
+ Value[MOUSE_BUTTON_EXTRA]: 4
+ Value[MOUSE_BUTTON_FORWARD]: 5
+ Value[MOUSE_BUTTON_BACK]: 6
+Enum 05: MouseCursor (11 values)
+ Name: MouseCursor
+ Description:
+ Value[MOUSE_CURSOR_DEFAULT]: 0
+ Value[MOUSE_CURSOR_ARROW]: 1
+ Value[MOUSE_CURSOR_IBEAM]: 2
+ Value[MOUSE_CURSOR_CROSSHAIR]: 3
+ Value[MOUSE_CURSOR_POINTING_HAND]: 4
+ Value[MOUSE_CURSOR_RESIZE_EW]: 5
+ Value[MOUSE_CURSOR_RESIZE_NS]: 6
+ Value[MOUSE_CURSOR_RESIZE_NWSE]: 7
+ Value[MOUSE_CURSOR_RESIZE_NESW]: 8
+ Value[MOUSE_CURSOR_RESIZE_ALL]: 9
+ Value[MOUSE_CURSOR_NOT_ALLOWED]: 10
+Enum 06: GamepadButton (18 values)
+ Name: GamepadButton
+ Description:
+ Value[GAMEPAD_BUTTON_UNKNOWN]: 0
+ Value[GAMEPAD_BUTTON_LEFT_FACE_UP]: 1
+ Value[GAMEPAD_BUTTON_LEFT_FACE_RIGHT]: 2
+ Value[GAMEPAD_BUTTON_LEFT_FACE_DOWN]: 3
+ Value[GAMEPAD_BUTTON_LEFT_FACE_LEFT]: 4
+ Value[GAMEPAD_BUTTON_RIGHT_FACE_UP]: 5
+ Value[GAMEPAD_BUTTON_RIGHT_FACE_RIGHT]: 6
+ Value[GAMEPAD_BUTTON_RIGHT_FACE_DOWN]: 7
+ Value[GAMEPAD_BUTTON_RIGHT_FACE_LEFT]: 8
+ Value[GAMEPAD_BUTTON_LEFT_TRIGGER_1]: 9
+ Value[GAMEPAD_BUTTON_LEFT_TRIGGER_2]: 10
+ Value[GAMEPAD_BUTTON_RIGHT_TRIGGER_1]: 11
+ Value[GAMEPAD_BUTTON_RIGHT_TRIGGER_2]: 12
+ Value[GAMEPAD_BUTTON_MIDDLE_LEFT]: 13
+ Value[GAMEPAD_BUTTON_MIDDLE]: 14
+ Value[GAMEPAD_BUTTON_MIDDLE_RIGHT]: 15
+ Value[GAMEPAD_BUTTON_LEFT_THUMB]: 16
+ Value[GAMEPAD_BUTTON_RIGHT_THUMB]: 17
+Enum 07: GamepadAxis (6 values)
+ Name: GamepadAxis
+ Description:
+ Value[GAMEPAD_AXIS_LEFT_X]: 0
+ Value[GAMEPAD_AXIS_LEFT_Y]: 1
+ Value[GAMEPAD_AXIS_RIGHT_X]: 2
+ Value[GAMEPAD_AXIS_RIGHT_Y]: 3
+ Value[GAMEPAD_AXIS_LEFT_TRIGGER]: 4
+ Value[GAMEPAD_AXIS_RIGHT_TRIGGER]: 5
+Enum 08: MaterialMapIndex (11 values)
+ Name: MaterialMapIndex
+ Description:
+ Value[MATERIAL_MAP_ALBEDO]: 0
+ Value[MATERIAL_MAP_METALNESS]: 1
+ Value[MATERIAL_MAP_NORMAL]: 2
+ Value[MATERIAL_MAP_ROUGHNESS]: 3
+ Value[MATERIAL_MAP_OCCLUSION]: 4
+ Value[MATERIAL_MAP_EMISSION]: 5
+ Value[MATERIAL_MAP_HEIGHT]: 6
+ Value[MATERIAL_MAP_CUBEMAP]: 7
+ Value[MATERIAL_MAP_IRRADIANCE]: 8
+ Value[MATERIAL_MAP_PREFILTER]: 9
+ Value[MATERIAL_MAP_BRDG]: 10
+Enum 09: ShaderLocationIndex (26 values)
+ Name: ShaderLocationIndex
+ Description:
+ Value[SHADER_LOC_VERTEX_POSITION]: 0
+ Value[SHADER_LOC_VERTEX_TEXCOORD01]: 1
+ Value[SHADER_LOC_VERTEX_TEXCOORD02]: 2
+ Value[SHADER_LOC_VERTEX_NORMAL]: 3
+ Value[SHADER_LOC_VERTEX_TANGENT]: 4
+ Value[SHADER_LOC_VERTEX_COLOR]: 5
+ Value[SHADER_LOC_MATRIX_MVP]: 6
+ Value[SHADER_LOC_MATRIX_VIEW]: 7
+ Value[SHADER_LOC_MATRIX_PROJECTION]: 8
+ Value[SHADER_LOC_MATRIX_MODEL]: 9
+ Value[SHADER_LOC_MATRIX_NORMAL]: 10
+ Value[SHADER_LOC_VECTOR_VIEW]: 11
+ Value[SHADER_LOC_COLOR_DIFFUSE]: 12
+ Value[SHADER_LOC_COLOR_SPECULAR]: 13
+ Value[SHADER_LOC_COLOR_AMBIENT]: 14
+ Value[SHADER_LOC_MAP_ALBEDO]: 15
+ Value[SHADER_LOC_MAP_METALNESS]: 16
+ Value[SHADER_LOC_MAP_NORMAL]: 17
+ Value[SHADER_LOC_MAP_ROUGHNESS]: 18
+ Value[SHADER_LOC_MAP_OCCLUSION]: 19
+ Value[SHADER_LOC_MAP_EMISSION]: 20
+ Value[SHADER_LOC_MAP_HEIGHT]: 21
+ Value[SHADER_LOC_MAP_CUBEMAP]: 22
+ Value[SHADER_LOC_MAP_IRRADIANCE]: 23
+ Value[SHADER_LOC_MAP_PREFILTER]: 24
+ Value[SHADER_LOC_MAP_BRDF]: 25
+Enum 10: ShaderUniformDataType (9 values)
+ Name: ShaderUniformDataType
+ Description:
+ Value[SHADER_UNIFORM_FLOAT]: 0
+ Value[SHADER_UNIFORM_VEC2]: 1
+ Value[SHADER_UNIFORM_VEC3]: 2
+ Value[SHADER_UNIFORM_VEC4]: 3
+ Value[SHADER_UNIFORM_INT]: 4
+ Value[SHADER_UNIFORM_IVEC2]: 5
+ Value[SHADER_UNIFORM_IVEC3]: 6
+ Value[SHADER_UNIFORM_IVEC4]: 7
+ Value[SHADER_UNIFORM_SAMPLER2D]: 8
+Enum 11: ShaderAttributeDataType (4 values)
+ Name: ShaderAttributeDataType
+ Description:
+ Value[SHADER_ATTRIB_FLOAT]: 0
+ Value[SHADER_ATTRIB_VEC2]: 1
+ Value[SHADER_ATTRIB_VEC3]: 2
+ Value[SHADER_ATTRIB_VEC4]: 3
+Enum 12: PixelFormat (21 values)
+ Name: PixelFormat
+ Description:
+ Value[PIXELFORMAT_UNCOMPRESSED_GRAYSCALE]: 1
+ Value[PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA]: 2
+ Value[PIXELFORMAT_UNCOMPRESSED_R5G6B5]: 3
+ Value[PIXELFORMAT_UNCOMPRESSED_R8G8B8]: 4
+ Value[PIXELFORMAT_UNCOMPRESSED_R5G5B5A1]: 5
+ Value[PIXELFORMAT_UNCOMPRESSED_R4G4B4A4]: 6
+ Value[PIXELFORMAT_UNCOMPRESSED_R8G8B8A8]: 7
+ Value[PIXELFORMAT_UNCOMPRESSED_R32]: 8
+ Value[PIXELFORMAT_UNCOMPRESSED_R32G32B32]: 9
+ Value[PIXELFORMAT_UNCOMPRESSED_R32G32B32A32]: 10
+ Value[PIXELFORMAT_COMPRESSED_DXT1_RGB]: 11
+ Value[PIXELFORMAT_COMPRESSED_DXT1_RGBA]: 12
+ Value[PIXELFORMAT_COMPRESSED_DXT3_RGBA]: 13
+ Value[PIXELFORMAT_COMPRESSED_DXT5_RGBA]: 14
+ Value[PIXELFORMAT_COMPRESSED_ETC1_RGB]: 15
+ Value[PIXELFORMAT_COMPRESSED_ETC2_RGB]: 16
+ Value[PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA]: 17
+ Value[PIXELFORMAT_COMPRESSED_PVRT_RGB]: 18
+ Value[PIXELFORMAT_COMPRESSED_PVRT_RGBA]: 19
+ Value[PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA]: 20
+ Value[PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA]: 21
+Enum 13: TextureFilter (6 values)
+ Name: TextureFilter
+ Description:
+ Value[TEXTURE_FILTER_POINT]: 0
+ Value[TEXTURE_FILTER_BILINEAR]: 1
+ Value[TEXTURE_FILTER_TRILINEAR]: 2
+ Value[TEXTURE_FILTER_ANISOTROPIC_4X]: 3
+ Value[TEXTURE_FILTER_ANISOTROPIC_8X]: 4
+ Value[TEXTURE_FILTER_ANISOTROPIC_16X]: 5
+Enum 14: TextureWrap (4 values)
+ Name: TextureWrap
+ Description:
+ Value[TEXTURE_WRAP_REPEAT]: 0
+ Value[TEXTURE_WRAP_CLAMP]: 1
+ Value[TEXTURE_WRAP_MIRROR_REPEAT]: 2
+ Value[TEXTURE_WRAP_MIRROR_CLAMP]: 3
+Enum 15: CubemapLayout (6 values)
+ Name: CubemapLayout
+ Description:
+ Value[CUBEMAP_LAYOUT_AUTO_DETECT]: 0
+ Value[CUBEMAP_LAYOUT_LINE_VERTICAL]: 1
+ Value[CUBEMAP_LAYOUT_LINE_HORIZONTAL]: 2
+ Value[CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR]: 3
+ Value[CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE]: 4
+ Value[CUBEMAP_LAYOUT_PANORAMA]: 5
+Enum 16: FontType (3 values)
+ Name: FontType
+ Description:
+ Value[FONT_DEFAULT]: 0
+ Value[FONT_BITMAP]: 1
+ Value[FONT_SDF]: 2
+Enum 17: BlendMode (6 values)
+ Name: BlendMode
+ Description:
+ Value[BLEND_ALPHA]: 0
+ Value[BLEND_ADDITIVE]: 1
+ Value[BLEND_MULTIPLIED]: 2
+ Value[BLEND_ADD_COLORS]: 3
+ Value[BLEND_SUBTRACT_COLORS]: 4
+ Value[BLEND_CUSTOM]: 5
+Enum 18: Gesture (11 values)
+ Name: Gesture
+ Description:
+ Value[GESTURE_NONE]: 0
+ Value[GESTURE_TAP]: 1
+ Value[GESTURE_DOUBLETAP]: 2
+ Value[GESTURE_HOLD]: 4
+ Value[GESTURE_DRAG]: 8
+ Value[GESTURE_SWIPE_RIGHT]: 16
+ Value[GESTURE_SWIPE_LEFT]: 32
+ Value[GESTURE_SWIPE_UP]: 64
+ Value[GESTURE_SWIPE_DOWN]: 128
+ Value[GESTURE_PINCH_IN]: 256
+ Value[GESTURE_PINCH_OUT]: 512
+Enum 19: CameraMode (5 values)
+ Name: CameraMode
+ Description:
+ Value[CAMERA_CUSTOM]: 0
+ Value[CAMERA_FREE]: 1
+ Value[CAMERA_ORBITAL]: 2
+ Value[CAMERA_FIRST_PERSON]: 3
+ Value[CAMERA_THIRD_PERSON]: 4
+Enum 20: CameraProjection (2 values)
+ Name: CameraProjection
+ Description:
+ Value[CAMERA_PERSPECTIVE]: 0
+ Value[CAMERA_ORTHOGRAPHIC]: 1
+Enum 21: NPatchLayout (3 values)
+ Name: NPatchLayout
+ Description:
+ Value[NPATCH_NINE_PATCH]: 0
+ Value[NPATCH_THREE_PATCH_VERTICAL]: 1
+ Value[NPATCH_THREE_PATCH_HORIZONTAL]: 2
+
+Functions found: 470
+
+Function 001: InitWindow() (3 input parameters)
+ Name: InitWindow
+ Return type: void
+ Description: Initialize window and OpenGL context
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+ Param[3]: title (type: const char *)
+Function 002: WindowShouldClose() (0 input parameters)
+ Name: WindowShouldClose
+ Return type: bool
+ Description: Check if KEY_ESCAPE pressed or Close icon pressed
+ No input parameters
+Function 003: CloseWindow() (0 input parameters)
+ Name: CloseWindow
+ Return type: void
+ Description: Close window and unload OpenGL context
+ No input parameters
+Function 004: IsWindowReady() (0 input parameters)
+ Name: IsWindowReady
+ Return type: bool
+ Description: Check if window has been initialized successfully
+ No input parameters
+Function 005: IsWindowFullscreen() (0 input parameters)
+ Name: IsWindowFullscreen
+ Return type: bool
+ Description: Check if window is currently fullscreen
+ No input parameters
+Function 006: IsWindowHidden() (0 input parameters)
+ Name: IsWindowHidden
+ Return type: bool
+ Description: Check if window is currently hidden (only PLATFORM_DESKTOP)
+ No input parameters
+Function 007: IsWindowMinimized() (0 input parameters)
+ Name: IsWindowMinimized
+ Return type: bool
+ Description: Check if window is currently minimized (only PLATFORM_DESKTOP)
+ No input parameters
+Function 008: IsWindowMaximized() (0 input parameters)
+ Name: IsWindowMaximized
+ Return type: bool
+ Description: Check if window is currently maximized (only PLATFORM_DESKTOP)
+ No input parameters
+Function 009: IsWindowFocused() (0 input parameters)
+ Name: IsWindowFocused
+ Return type: bool
+ Description: Check if window is currently focused (only PLATFORM_DESKTOP)
+ No input parameters
+Function 010: IsWindowResized() (0 input parameters)
+ Name: IsWindowResized
+ Return type: bool
+ Description: Check if window has been resized last frame
+ No input parameters
+Function 011: IsWindowState() (1 input parameters)
+ Name: IsWindowState
+ Return type: bool
+ Description: Check if one specific window flag is enabled
+ Param[1]: flag (type: unsigned int)
+Function 012: SetWindowState() (1 input parameters)
+ Name: SetWindowState
+ Return type: void
+ Description: Set window configuration state using flags
+ Param[1]: flags (type: unsigned int)
+Function 013: ClearWindowState() (1 input parameters)
+ Name: ClearWindowState
+ Return type: void
+ Description: Clear window configuration state flags
+ Param[1]: flags (type: unsigned int)
+Function 014: ToggleFullscreen() (0 input parameters)
+ Name: ToggleFullscreen
+ Return type: void
+ Description: Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)
+ No input parameters
+Function 015: MaximizeWindow() (0 input parameters)
+ Name: MaximizeWindow
+ Return type: void
+ Description: Set window state: maximized, if resizable (only PLATFORM_DESKTOP)
+ No input parameters
+Function 016: MinimizeWindow() (0 input parameters)
+ Name: MinimizeWindow
+ Return type: void
+ Description: Set window state: minimized, if resizable (only PLATFORM_DESKTOP)
+ No input parameters
+Function 017: RestoreWindow() (0 input parameters)
+ Name: RestoreWindow
+ Return type: void
+ Description: Set window state: not minimized/maximized (only PLATFORM_DESKTOP)
+ No input parameters
+Function 018: SetWindowIcon() (1 input parameters)
+ Name: SetWindowIcon
+ Return type: void
+ Description: Set icon for window (only PLATFORM_DESKTOP)
+ Param[1]: image (type: Image)
+Function 019: SetWindowTitle() (1 input parameters)
+ Name: SetWindowTitle
+ Return type: void
+ Description: Set title for window (only PLATFORM_DESKTOP)
+ Param[1]: title (type: const char *)
+Function 020: SetWindowPosition() (2 input parameters)
+ Name: SetWindowPosition
+ Return type: void
+ Description: Set window position on screen (only PLATFORM_DESKTOP)
+ Param[1]: x (type: int)
+ Param[2]: y (type: int)
+Function 021: SetWindowMonitor() (1 input parameters)
+ Name: SetWindowMonitor
+ Return type: void
+ Description: Set monitor for the current window (fullscreen mode)
+ Param[1]: monitor (type: int)
+Function 022: SetWindowMinSize() (2 input parameters)
+ Name: SetWindowMinSize
+ Return type: void
+ Description: Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+Function 023: SetWindowSize() (2 input parameters)
+ Name: SetWindowSize
+ Return type: void
+ Description: Set window dimensions
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+Function 024: GetWindowHandle() (0 input parameters)
+ Name: GetWindowHandle
+ Return type: void *
+ Description: Get native window handle
+ No input parameters
+Function 025: GetScreenWidth() (0 input parameters)
+ Name: GetScreenWidth
+ Return type: int
+ Description: Get current screen width
+ No input parameters
+Function 026: GetScreenHeight() (0 input parameters)
+ Name: GetScreenHeight
+ Return type: int
+ Description: Get current screen height
+ No input parameters
+Function 027: GetMonitorCount() (0 input parameters)
+ Name: GetMonitorCount
+ Return type: int
+ Description: Get number of connected monitors
+ No input parameters
+Function 028: GetCurrentMonitor() (0 input parameters)
+ Name: GetCurrentMonitor
+ Return type: int
+ Description: Get current connected monitor
+ No input parameters
+Function 029: GetMonitorPosition() (1 input parameters)
+ Name: GetMonitorPosition
+ Return type: Vector2
+ Description: Get specified monitor position
+ Param[1]: monitor (type: int)
+Function 030: GetMonitorWidth() (1 input parameters)
+ Name: GetMonitorWidth
+ Return type: int
+ Description: Get specified monitor width (max available by monitor)
+ Param[1]: monitor (type: int)
+Function 031: GetMonitorHeight() (1 input parameters)
+ Name: GetMonitorHeight
+ Return type: int
+ Description: Get specified monitor height (max available by monitor)
+ Param[1]: monitor (type: int)
+Function 032: GetMonitorPhysicalWidth() (1 input parameters)
+ Name: GetMonitorPhysicalWidth
+ Return type: int
+ Description: Get specified monitor physical width in millimetres
+ Param[1]: monitor (type: int)
+Function 033: GetMonitorPhysicalHeight() (1 input parameters)
+ Name: GetMonitorPhysicalHeight
+ Return type: int
+ Description: Get specified monitor physical height in millimetres
+ Param[1]: monitor (type: int)
+Function 034: GetMonitorRefreshRate() (1 input parameters)
+ Name: GetMonitorRefreshRate
+ Return type: int
+ Description: Get specified monitor refresh rate
+ Param[1]: monitor (type: int)
+Function 035: GetWindowPosition() (0 input parameters)
+ Name: GetWindowPosition
+ Return type: Vector2
+ Description: Get window position XY on monitor
+ No input parameters
+Function 036: GetWindowScaleDPI() (0 input parameters)
+ Name: GetWindowScaleDPI
+ Return type: Vector2
+ Description: Get window scale DPI factor
+ No input parameters
+Function 037: GetMonitorName() (1 input parameters)
+ Name: GetMonitorName
+ Return type: const char *
+ Description: Get the human-readable, UTF-8 encoded name of the primary monitor
+ Param[1]: monitor (type: int)
+Function 038: SetClipboardText() (1 input parameters)
+ Name: SetClipboardText
+ Return type: void
+ Description: Set clipboard text content
+ Param[1]: text (type: const char *)
+Function 039: GetClipboardText() (0 input parameters)
+ Name: GetClipboardText
+ Return type: const char *
+ Description: Get clipboard text content
+ No input parameters
+Function 040: ShowCursor() (0 input parameters)
+ Name: ShowCursor
+ Return type: void
+ Description: Shows cursor
+ No input parameters
+Function 041: HideCursor() (0 input parameters)
+ Name: HideCursor
+ Return type: void
+ Description: Hides cursor
+ No input parameters
+Function 042: IsCursorHidden() (0 input parameters)
+ Name: IsCursorHidden
+ Return type: bool
+ Description: Check if cursor is not visible
+ No input parameters
+Function 043: EnableCursor() (0 input parameters)
+ Name: EnableCursor
+ Return type: void
+ Description: Enables cursor (unlock cursor)
+ No input parameters
+Function 044: DisableCursor() (0 input parameters)
+ Name: DisableCursor
+ Return type: void
+ Description: Disables cursor (lock cursor)
+ No input parameters
+Function 045: IsCursorOnScreen() (0 input parameters)
+ Name: IsCursorOnScreen
+ Return type: bool
+ Description: Check if cursor is on the screen
+ No input parameters
+Function 046: ClearBackground() (1 input parameters)
+ Name: ClearBackground
+ Return type: void
+ Description: Set background color (framebuffer clear color)
+ Param[1]: color (type: Color)
+Function 047: BeginDrawing() (0 input parameters)
+ Name: BeginDrawing
+ Return type: void
+ Description: Setup canvas (framebuffer) to start drawing
+ No input parameters
+Function 048: EndDrawing() (0 input parameters)
+ Name: EndDrawing
+ Return type: void
+ Description: End canvas drawing and swap buffers (double buffering)
+ No input parameters
+Function 049: BeginMode2D() (1 input parameters)
+ Name: BeginMode2D
+ Return type: void
+ Description: Begin 2D mode with custom camera (2D)
+ Param[1]: camera (type: Camera2D)
+Function 050: EndMode2D() (0 input parameters)
+ Name: EndMode2D
+ Return type: void
+ Description: Ends 2D mode with custom camera
+ No input parameters
+Function 051: BeginMode3D() (1 input parameters)
+ Name: BeginMode3D
+ Return type: void
+ Description: Begin 3D mode with custom camera (3D)
+ Param[1]: camera (type: Camera3D)
+Function 052: EndMode3D() (0 input parameters)
+ Name: EndMode3D
+ Return type: void
+ Description: Ends 3D mode and returns to default 2D orthographic mode
+ No input parameters
+Function 053: BeginTextureMode() (1 input parameters)
+ Name: BeginTextureMode
+ Return type: void
+ Description: Begin drawing to render texture
+ Param[1]: target (type: RenderTexture2D)
+Function 054: EndTextureMode() (0 input parameters)
+ Name: EndTextureMode
+ Return type: void
+ Description: Ends drawing to render texture
+ No input parameters
+Function 055: BeginShaderMode() (1 input parameters)
+ Name: BeginShaderMode
+ Return type: void
+ Description: Begin custom shader drawing
+ Param[1]: shader (type: Shader)
+Function 056: EndShaderMode() (0 input parameters)
+ Name: EndShaderMode
+ Return type: void
+ Description: End custom shader drawing (use default shader)
+ No input parameters
+Function 057: BeginBlendMode() (1 input parameters)
+ Name: BeginBlendMode
+ Return type: void
+ Description: Begin blending mode (alpha, additive, multiplied, subtract, custom)
+ Param[1]: mode (type: int)
+Function 058: EndBlendMode() (0 input parameters)
+ Name: EndBlendMode
+ Return type: void
+ Description: End blending mode (reset to default: alpha blending)
+ No input parameters
+Function 059: BeginScissorMode() (4 input parameters)
+ Name: BeginScissorMode
+ Return type: void
+ Description: Begin scissor mode (define screen area for following drawing)
+ Param[1]: x (type: int)
+ Param[2]: y (type: int)
+ Param[3]: width (type: int)
+ Param[4]: height (type: int)
+Function 060: EndScissorMode() (0 input parameters)
+ Name: EndScissorMode
+ Return type: void
+ Description: End scissor mode
+ No input parameters
+Function 061: BeginVrStereoMode() (1 input parameters)
+ Name: BeginVrStereoMode
+ Return type: void
+ Description: Begin stereo rendering (requires VR simulator)
+ Param[1]: config (type: VrStereoConfig)
+Function 062: EndVrStereoMode() (0 input parameters)
+ Name: EndVrStereoMode
+ Return type: void
+ Description: End stereo rendering (requires VR simulator)
+ No input parameters
+Function 063: LoadVrStereoConfig() (1 input parameters)
+ Name: LoadVrStereoConfig
+ Return type: VrStereoConfig
+ Description: Load VR stereo config for VR simulator device parameters
+ Param[1]: device (type: VrDeviceInfo)
+Function 064: UnloadVrStereoConfig() (1 input parameters)
+ Name: UnloadVrStereoConfig
+ Return type: void
+ Description: Unload VR stereo config
+ Param[1]: config (type: VrStereoConfig)
+Function 065: LoadShader() (2 input parameters)
+ Name: LoadShader
+ Return type: Shader
+ Description: Load shader from files and bind default locations
+ Param[1]: vsFileName (type: const char *)
+ Param[2]: fsFileName (type: const char *)
+Function 066: LoadShaderFromMemory() (2 input parameters)
+ Name: LoadShaderFromMemory
+ Return type: Shader
+ Description: Load shader from code strings and bind default locations
+ Param[1]: vsCode (type: const char *)
+ Param[2]: fsCode (type: const char *)
+Function 067: GetShaderLocation() (2 input parameters)
+ Name: GetShaderLocation
+ Return type: int
+ Description: Get shader uniform location
+ Param[1]: shader (type: Shader)
+ Param[2]: uniformName (type: const char *)
+Function 068: GetShaderLocationAttrib() (2 input parameters)
+ Name: GetShaderLocationAttrib
+ Return type: int
+ Description: Get shader attribute location
+ Param[1]: shader (type: Shader)
+ Param[2]: attribName (type: const char *)
+Function 069: SetShaderValue() (4 input parameters)
+ Name: SetShaderValue
+ Return type: void
+ Description: Set shader uniform value
+ Param[1]: shader (type: Shader)
+ Param[2]: locIndex (type: int)
+ Param[3]: value (type: const void *)
+ Param[4]: uniformType (type: int)
+Function 070: SetShaderValueV() (5 input parameters)
+ Name: SetShaderValueV
+ Return type: void
+ Description: Set shader uniform value vector
+ Param[1]: shader (type: Shader)
+ Param[2]: locIndex (type: int)
+ Param[3]: value (type: const void *)
+ Param[4]: uniformType (type: int)
+ Param[5]: count (type: int)
+Function 071: SetShaderValueMatrix() (3 input parameters)
+ Name: SetShaderValueMatrix
+ Return type: void
+ Description: Set shader uniform value (matrix 4x4)
+ Param[1]: shader (type: Shader)
+ Param[2]: locIndex (type: int)
+ Param[3]: mat (type: Matrix)
+Function 072: SetShaderValueTexture() (3 input parameters)
+ Name: SetShaderValueTexture
+ Return type: void
+ Description: Set shader uniform value for texture (sampler2d)
+ Param[1]: shader (type: Shader)
+ Param[2]: locIndex (type: int)
+ Param[3]: texture (type: Texture2D)
+Function 073: UnloadShader() (1 input parameters)
+ Name: UnloadShader
+ Return type: void
+ Description: Unload shader from GPU memory (VRAM)
+ Param[1]: shader (type: Shader)
+Function 074: GetMouseRay() (2 input parameters)
+ Name: GetMouseRay
+ Return type: Ray
+ Description: Get a ray trace from mouse position
+ Param[1]: mousePosition (type: Vector2)
+ Param[2]: camera (type: Camera)
+Function 075: GetCameraMatrix() (1 input parameters)
+ Name: GetCameraMatrix
+ Return type: Matrix
+ Description: Get camera transform matrix (view matrix)
+ Param[1]: camera (type: Camera)
+Function 076: GetCameraMatrix2D() (1 input parameters)
+ Name: GetCameraMatrix2D
+ Return type: Matrix
+ Description: Get camera 2d transform matrix
+ Param[1]: camera (type: Camera2D)
+Function 077: GetWorldToScreen() (2 input parameters)
+ Name: GetWorldToScreen
+ Return type: Vector2
+ Description: Get the screen space position for a 3d world space position
+ Param[1]: position (type: Vector3)
+ Param[2]: camera (type: Camera)
+Function 078: GetWorldToScreenEx() (4 input parameters)
+ Name: GetWorldToScreenEx
+ Return type: Vector2
+ Description: Get size position for a 3d world space position
+ Param[1]: position (type: Vector3)
+ Param[2]: camera (type: Camera)
+ Param[3]: width (type: int)
+ Param[4]: height (type: int)
+Function 079: GetWorldToScreen2D() (2 input parameters)
+ Name: GetWorldToScreen2D
+ Return type: Vector2
+ Description: Get the screen space position for a 2d camera world space position
+ Param[1]: position (type: Vector2)
+ Param[2]: camera (type: Camera2D)
+Function 080: GetScreenToWorld2D() (2 input parameters)
+ Name: GetScreenToWorld2D
+ Return type: Vector2
+ Description: Get the world space position for a 2d camera screen space position
+ Param[1]: position (type: Vector2)
+ Param[2]: camera (type: Camera2D)
+Function 081: SetTargetFPS() (1 input parameters)
+ Name: SetTargetFPS
+ Return type: void
+ Description: Set target FPS (maximum)
+ Param[1]: fps (type: int)
+Function 082: GetFPS() (0 input parameters)
+ Name: GetFPS
+ Return type: int
+ Description: Get current FPS
+ No input parameters
+Function 083: GetFrameTime() (0 input parameters)
+ Name: GetFrameTime
+ Return type: float
+ Description: Get time in seconds for last frame drawn (delta time)
+ No input parameters
+Function 084: GetTime() (0 input parameters)
+ Name: GetTime
+ Return type: double
+ Description: Get elapsed time in seconds since InitWindow()
+ No input parameters
+Function 085: GetRandomValue() (2 input parameters)
+ Name: GetRandomValue
+ Return type: int
+ Description: Get a random value between min and max (both included)
+ Param[1]: min (type: int)
+ Param[2]: max (type: int)
+Function 086: TakeScreenshot() (1 input parameters)
+ Name: TakeScreenshot
+ Return type: void
+ Description: Takes a screenshot of current screen (filename extension defines format)
+ Param[1]: fileName (type: const char *)
+Function 087: SetConfigFlags() (1 input parameters)
+ Name: SetConfigFlags
+ Return type: void
+ Description: Setup init configuration flags (view FLAGS)
+ Param[1]: flags (type: unsigned int)
+Function 088: TraceLog() (3 input parameters)
+ Name: TraceLog
+ Return type: void
+ Description: Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)
+ Param[1]: logLevel (type: int)
+ Param[2]: text (type: const char *)
+ Param[3]: (type: )
+Function 089: SetTraceLogLevel() (1 input parameters)
+ Name: SetTraceLogLevel
+ Return type: void
+ Description: Set the current threshold (minimum) log level
+ Param[1]: logLevel (type: int)
+Function 090: MemAlloc() (1 input parameters)
+ Name: MemAlloc
+ Return type: void *
+ Description: Internal memory allocator
+ Param[1]: size (type: int)
+Function 091: MemRealloc() (2 input parameters)
+ Name: MemRealloc
+ Return type: void *
+ Description: Internal memory reallocator
+ Param[1]: ptr (type: void *)
+ Param[2]: size (type: int)
+Function 092: MemFree() (1 input parameters)
+ Name: MemFree
+ Return type: void
+ Description: Internal memory free
+ Param[1]: ptr (type: void *)
+Function 093: SetTraceLogCallback() (1 input parameters)
+ Name: SetTraceLogCallback
+ Return type: void
+ Description: Set custom trace log
+ Param[1]: callback (type: TraceLogCallback)
+Function 094: SetLoadFileDataCallback() (1 input parameters)
+ Name: SetLoadFileDataCallback
+ Return type: void
+ Description: Set custom file binary data loader
+ Param[1]: callback (type: LoadFileDataCallback)
+Function 095: SetSaveFileDataCallback() (1 input parameters)
+ Name: SetSaveFileDataCallback
+ Return type: void
+ Description: Set custom file binary data saver
+ Param[1]: callback (type: SaveFileDataCallback)
+Function 096: SetLoadFileTextCallback() (1 input parameters)
+ Name: SetLoadFileTextCallback
+ Return type: void
+ Description: Set custom file text data loader
+ Param[1]: callback (type: LoadFileTextCallback)
+Function 097: SetSaveFileTextCallback() (1 input parameters)
+ Name: SetSaveFileTextCallback
+ Return type: void
+ Description: Set custom file text data saver
+ Param[1]: callback (type: SaveFileTextCallback)
+Function 098: LoadFileData() (2 input parameters)
+ Name: LoadFileData
+ Return type: unsigned char *
+ Description: Load file data as byte array (read)
+ Param[1]: fileName (type: const char *)
+ Param[2]: bytesRead (type: unsigned int *)
+Function 099: UnloadFileData() (1 input parameters)
+ Name: UnloadFileData
+ Return type: void
+ Description: Unload file data allocated by LoadFileData()
+ Param[1]: data (type: unsigned char *)
+Function 100: SaveFileData() (3 input parameters)
+ Name: SaveFileData
+ Return type: bool
+ Description: Save data to file from byte array (write), returns true on success
+ Param[1]: fileName (type: const char *)
+ Param[2]: data (type: void *)
+ Param[3]: bytesToWrite (type: unsigned int)
+Function 101: LoadFileText() (1 input parameters)
+ Name: LoadFileText
+ Return type: char *
+ Description: Load text data from file (read), returns a '\0' terminated string
+ Param[1]: fileName (type: const char *)
+Function 102: UnloadFileText() (1 input parameters)
+ Name: UnloadFileText
+ Return type: void
+ Description: Unload file text data allocated by LoadFileText()
+ Param[1]: text (type: char *)
+Function 103: SaveFileText() (2 input parameters)
+ Name: SaveFileText
+ Return type: bool
+ Description: Save text data to file (write), string must be '\0' terminated, returns true on success
+ Param[1]: fileName (type: const char *)
+ Param[2]: text (type: char *)
+Function 104: FileExists() (1 input parameters)
+ Name: FileExists
+ Return type: bool
+ Description: Check if file exists
+ Param[1]: fileName (type: const char *)
+Function 105: DirectoryExists() (1 input parameters)
+ Name: DirectoryExists
+ Return type: bool
+ Description: Check if a directory path exists
+ Param[1]: dirPath (type: const char *)
+Function 106: IsFileExtension() (2 input parameters)
+ Name: IsFileExtension
+ Return type: bool
+ Description: Check file extension (including point: .png, .wav)
+ Param[1]: fileName (type: const char *)
+ Param[2]: ext (type: const char *)
+Function 107: GetFileExtension() (1 input parameters)
+ Name: GetFileExtension
+ Return type: const char *
+ Description: Get pointer to extension for a filename string (includes dot: '.png')
+ Param[1]: fileName (type: const char *)
+Function 108: GetFileName() (1 input parameters)
+ Name: GetFileName
+ Return type: const char *
+ Description: Get pointer to filename for a path string
+ Param[1]: filePath (type: const char *)
+Function 109: GetFileNameWithoutExt() (1 input parameters)
+ Name: GetFileNameWithoutExt
+ Return type: const char *
+ Description: Get filename string without extension (uses static string)
+ Param[1]: filePath (type: const char *)
+Function 110: GetDirectoryPath() (1 input parameters)
+ Name: GetDirectoryPath
+ Return type: const char *
+ Description: Get full path for a given fileName with path (uses static string)
+ Param[1]: filePath (type: const char *)
+Function 111: GetPrevDirectoryPath() (1 input parameters)
+ Name: GetPrevDirectoryPath
+ Return type: const char *
+ Description: Get previous directory path for a given path (uses static string)
+ Param[1]: dirPath (type: const char *)
+Function 112: GetWorkingDirectory() (0 input parameters)
+ Name: GetWorkingDirectory
+ Return type: const char *
+ Description: Get current working directory (uses static string)
+ No input parameters
+Function 113: GetDirectoryFiles() (2 input parameters)
+ Name: GetDirectoryFiles
+ Return type: char **
+ Description: Get filenames in a directory path (memory should be freed)
+ Param[1]: dirPath (type: const char *)
+ Param[2]: count (type: int *)
+Function 114: ClearDirectoryFiles() (0 input parameters)
+ Name: ClearDirectoryFiles
+ Return type: void
+ Description: Clear directory files paths buffers (free memory)
+ No input parameters
+Function 115: ChangeDirectory() (1 input parameters)
+ Name: ChangeDirectory
+ Return type: bool
+ Description: Change working directory, return true on success
+ Param[1]: dir (type: const char *)
+Function 116: IsFileDropped() (0 input parameters)
+ Name: IsFileDropped
+ Return type: bool
+ Description: Check if a file has been dropped into window
+ No input parameters
+Function 117: GetDroppedFiles() (1 input parameters)
+ Name: GetDroppedFiles
+ Return type: char **
+ Description: Get dropped files names (memory should be freed)
+ Param[1]: count (type: int *)
+Function 118: ClearDroppedFiles() (0 input parameters)
+ Name: ClearDroppedFiles
+ Return type: void
+ Description: Clear dropped files paths buffer (free memory)
+ No input parameters
+Function 119: GetFileModTime() (1 input parameters)
+ Name: GetFileModTime
+ Return type: long
+ Description: Get file modification time (last write time)
+ Param[1]: fileName (type: const char *)
+Function 120: CompressData() (3 input parameters)
+ Name: CompressData
+ Return type: unsigned char *
+ Description: Compress data (DEFLATE algorithm)
+ Param[1]: data (type: unsigned char *)
+ Param[2]: dataLength (type: int)
+ Param[3]: compDataLength (type: int *)
+Function 121: DecompressData() (3 input parameters)
+ Name: DecompressData
+ Return type: unsigned char *
+ Description: Decompress data (DEFLATE algorithm)
+ Param[1]: compData (type: unsigned char *)
+ Param[2]: compDataLength (type: int)
+ Param[3]: dataLength (type: int *)
+Function 122: SaveStorageValue() (2 input parameters)
+ Name: SaveStorageValue
+ Return type: bool
+ Description: Save integer value to storage file (to defined position), returns true on success
+ Param[1]: position (type: unsigned int)
+ Param[2]: value (type: int)
+Function 123: LoadStorageValue() (1 input parameters)
+ Name: LoadStorageValue
+ Return type: int
+ Description: Load integer value from storage file (from defined position)
+ Param[1]: position (type: unsigned int)
+Function 124: OpenURL() (1 input parameters)
+ Name: OpenURL
+ Return type: void
+ Description: Open URL with default system browser (if available)
+ Param[1]: url (type: const char *)
+Function 125: IsKeyPressed() (1 input parameters)
+ Name: IsKeyPressed
+ Return type: bool
+ Description: Check if a key has been pressed once
+ Param[1]: key (type: int)
+Function 126: IsKeyDown() (1 input parameters)
+ Name: IsKeyDown
+ Return type: bool
+ Description: Check if a key is being pressed
+ Param[1]: key (type: int)
+Function 127: IsKeyReleased() (1 input parameters)
+ Name: IsKeyReleased
+ Return type: bool
+ Description: Check if a key has been released once
+ Param[1]: key (type: int)
+Function 128: IsKeyUp() (1 input parameters)
+ Name: IsKeyUp
+ Return type: bool
+ Description: Check if a key is NOT being pressed
+ Param[1]: key (type: int)
+Function 129: SetExitKey() (1 input parameters)
+ Name: SetExitKey
+ Return type: void
+ Description: Set a custom key to exit program (default is ESC)
+ Param[1]: key (type: int)
+Function 130: GetKeyPressed() (0 input parameters)
+ Name: GetKeyPressed
+ Return type: int
+ Description: Get key pressed (keycode), call it multiple times for keys queued
+ No input parameters
+Function 131: GetCharPressed() (0 input parameters)
+ Name: GetCharPressed
+ Return type: int
+ Description: Get char pressed (unicode), call it multiple times for chars queued
+ No input parameters
+Function 132: IsGamepadAvailable() (1 input parameters)
+ Name: IsGamepadAvailable
+ Return type: bool
+ Description: Check if a gamepad is available
+ Param[1]: gamepad (type: int)
+Function 133: IsGamepadName() (2 input parameters)
+ Name: IsGamepadName
+ Return type: bool
+ Description: Check gamepad name (if available)
+ Param[1]: gamepad (type: int)
+ Param[2]: name (type: const char *)
+Function 134: GetGamepadName() (1 input parameters)
+ Name: GetGamepadName
+ Return type: const char *
+ Description: Get gamepad internal name id
+ Param[1]: gamepad (type: int)
+Function 135: IsGamepadButtonPressed() (2 input parameters)
+ Name: IsGamepadButtonPressed
+ Return type: bool
+ Description: Check if a gamepad button has been pressed once
+ Param[1]: gamepad (type: int)
+ Param[2]: button (type: int)
+Function 136: IsGamepadButtonDown() (2 input parameters)
+ Name: IsGamepadButtonDown
+ Return type: bool
+ Description: Check if a gamepad button is being pressed
+ Param[1]: gamepad (type: int)
+ Param[2]: button (type: int)
+Function 137: IsGamepadButtonReleased() (2 input parameters)
+ Name: IsGamepadButtonReleased
+ Return type: bool
+ Description: Check if a gamepad button has been released once
+ Param[1]: gamepad (type: int)
+ Param[2]: button (type: int)
+Function 138: IsGamepadButtonUp() (2 input parameters)
+ Name: IsGamepadButtonUp
+ Return type: bool
+ Description: Check if a gamepad button is NOT being pressed
+ Param[1]: gamepad (type: int)
+ Param[2]: button (type: int)
+Function 139: GetGamepadButtonPressed() (0 input parameters)
+ Name: GetGamepadButtonPressed
+ Return type: int
+ Description: Get the last gamepad button pressed
+ No input parameters
+Function 140: GetGamepadAxisCount() (1 input parameters)
+ Name: GetGamepadAxisCount
+ Return type: int
+ Description: Get gamepad axis count for a gamepad
+ Param[1]: gamepad (type: int)
+Function 141: GetGamepadAxisMovement() (2 input parameters)
+ Name: GetGamepadAxisMovement
+ Return type: float
+ Description: Get axis movement value for a gamepad axis
+ Param[1]: gamepad (type: int)
+ Param[2]: axis (type: int)
+Function 142: SetGamepadMappings() (1 input parameters)
+ Name: SetGamepadMappings
+ Return type: int
+ Description: Set internal gamepad mappings (SDL_GameControllerDB)
+ Param[1]: mappings (type: const char *)
+Function 143: IsMouseButtonPressed() (1 input parameters)
+ Name: IsMouseButtonPressed
+ Return type: bool
+ Description: Check if a mouse button has been pressed once
+ Param[1]: button (type: int)
+Function 144: IsMouseButtonDown() (1 input parameters)
+ Name: IsMouseButtonDown
+ Return type: bool
+ Description: Check if a mouse button is being pressed
+ Param[1]: button (type: int)
+Function 145: IsMouseButtonReleased() (1 input parameters)
+ Name: IsMouseButtonReleased
+ Return type: bool
+ Description: Check if a mouse button has been released once
+ Param[1]: button (type: int)
+Function 146: IsMouseButtonUp() (1 input parameters)
+ Name: IsMouseButtonUp
+ Return type: bool
+ Description: Check if a mouse button is NOT being pressed
+ Param[1]: button (type: int)
+Function 147: GetMouseX() (0 input parameters)
+ Name: GetMouseX
+ Return type: int
+ Description: Get mouse position X
+ No input parameters
+Function 148: GetMouseY() (0 input parameters)
+ Name: GetMouseY
+ Return type: int
+ Description: Get mouse position Y
+ No input parameters
+Function 149: GetMousePosition() (0 input parameters)
+ Name: GetMousePosition
+ Return type: Vector2
+ Description: Get mouse position XY
+ No input parameters
+Function 150: SetMousePosition() (2 input parameters)
+ Name: SetMousePosition
+ Return type: void
+ Description: Set mouse position XY
+ Param[1]: x (type: int)
+ Param[2]: y (type: int)
+Function 151: SetMouseOffset() (2 input parameters)
+ Name: SetMouseOffset
+ Return type: void
+ Description: Set mouse offset
+ Param[1]: offsetX (type: int)
+ Param[2]: offsetY (type: int)
+Function 152: SetMouseScale() (2 input parameters)
+ Name: SetMouseScale
+ Return type: void
+ Description: Set mouse scaling
+ Param[1]: scaleX (type: float)
+ Param[2]: scaleY (type: float)
+Function 153: GetMouseWheelMove() (0 input parameters)
+ Name: GetMouseWheelMove
+ Return type: float
+ Description: Get mouse wheel movement Y
+ No input parameters
+Function 154: SetMouseCursor() (1 input parameters)
+ Name: SetMouseCursor
+ Return type: void
+ Description: Set mouse cursor
+ Param[1]: cursor (type: int)
+Function 155: GetTouchX() (0 input parameters)
+ Name: GetTouchX
+ Return type: int
+ Description: Get touch position X for touch point 0 (relative to screen size)
+ No input parameters
+Function 156: GetTouchY() (0 input parameters)
+ Name: GetTouchY
+ Return type: int
+ Description: Get touch position Y for touch point 0 (relative to screen size)
+ No input parameters
+Function 157: GetTouchPosition() (1 input parameters)
+ Name: GetTouchPosition
+ Return type: Vector2
+ Description: Get touch position XY for a touch point index (relative to screen size)
+ Param[1]: index (type: int)
+Function 158: SetGesturesEnabled() (1 input parameters)
+ Name: SetGesturesEnabled
+ Return type: void
+ Description: Enable a set of gestures using flags
+ Param[1]: flags (type: unsigned int)
+Function 159: IsGestureDetected() (1 input parameters)
+ Name: IsGestureDetected
+ Return type: bool
+ Description: Check if a gesture have been detected
+ Param[1]: gesture (type: int)
+Function 160: GetGestureDetected() (0 input parameters)
+ Name: GetGestureDetected
+ Return type: int
+ Description: Get latest detected gesture
+ No input parameters
+Function 161: GetTouchPointsCount() (0 input parameters)
+ Name: GetTouchPointsCount
+ Return type: int
+ Description: Get touch points count
+ No input parameters
+Function 162: GetGestureHoldDuration() (0 input parameters)
+ Name: GetGestureHoldDuration
+ Return type: float
+ Description: Get gesture hold time in milliseconds
+ No input parameters
+Function 163: GetGestureDragVector() (0 input parameters)
+ Name: GetGestureDragVector
+ Return type: Vector2
+ Description: Get gesture drag vector
+ No input parameters
+Function 164: GetGestureDragAngle() (0 input parameters)
+ Name: GetGestureDragAngle
+ Return type: float
+ Description: Get gesture drag angle
+ No input parameters
+Function 165: GetGesturePinchVector() (0 input parameters)
+ Name: GetGesturePinchVector
+ Return type: Vector2
+ Description: Get gesture pinch delta
+ No input parameters
+Function 166: GetGesturePinchAngle() (0 input parameters)
+ Name: GetGesturePinchAngle
+ Return type: float
+ Description: Get gesture pinch angle
+ No input parameters
+Function 167: SetCameraMode() (2 input parameters)
+ Name: SetCameraMode
+ Return type: void
+ Description: Set camera mode (multiple camera modes available)
+ Param[1]: camera (type: Camera)
+ Param[2]: mode (type: int)
+Function 168: UpdateCamera() (1 input parameters)
+ Name: UpdateCamera
+ Return type: void
+ Description: Update camera position for selected mode
+ Param[1]: camera (type: Camera *)
+Function 169: SetCameraPanControl() (1 input parameters)
+ Name: SetCameraPanControl
+ Return type: void
+ Description: Set camera pan key to combine with mouse movement (free camera)
+ Param[1]: keyPan (type: int)
+Function 170: SetCameraAltControl() (1 input parameters)
+ Name: SetCameraAltControl
+ Return type: void
+ Description: Set camera alt key to combine with mouse movement (free camera)
+ Param[1]: keyAlt (type: int)
+Function 171: SetCameraSmoothZoomControl() (1 input parameters)
+ Name: SetCameraSmoothZoomControl
+ Return type: void
+ Description: Set camera smooth zoom key to combine with mouse (free camera)
+ Param[1]: keySmoothZoom (type: int)
+Function 172: SetCameraMoveControls() (6 input parameters)
+ Name: SetCameraMoveControls
+ Return type: void
+ Description: Set camera move controls (1st person and 3rd person cameras)
+ Param[1]: keyFront (type: int)
+ Param[2]: keyBack (type: int)
+ Param[3]: keyRight (type: int)
+ Param[4]: keyLeft (type: int)
+ Param[5]: keyUp (type: int)
+ Param[6]: keyDown (type: int)
+Function 173: SetShapesTexture() (2 input parameters)
+ Name: SetShapesTexture
+ Return type: void
+ Description: Set texture and rectangle to be used on shapes drawing
+ Param[1]: texture (type: Texture2D)
+ Param[2]: source (type: Rectangle)
+Function 174: DrawPixel() (3 input parameters)
+ Name: DrawPixel
+ Return type: void
+ Description: Draw a pixel
+ Param[1]: posX (type: int)
+ Param[2]: posY (type: int)
+ Param[3]: color (type: Color)
+Function 175: DrawPixelV() (2 input parameters)
+ Name: DrawPixelV
+ Return type: void
+ Description: Draw a pixel (Vector version)
+ Param[1]: position (type: Vector2)
+ Param[2]: color (type: Color)
+Function 176: DrawLine() (5 input parameters)
+ Name: DrawLine
+ Return type: void
+ Description: Draw a line
+ Param[1]: startPosX (type: int)
+ Param[2]: startPosY (type: int)
+ Param[3]: endPosX (type: int)
+ Param[4]: endPosY (type: int)
+ Param[5]: color (type: Color)
+Function 177: DrawLineV() (3 input parameters)
+ Name: DrawLineV
+ Return type: void
+ Description: Draw a line (Vector version)
+ Param[1]: startPos (type: Vector2)
+ Param[2]: endPos (type: Vector2)
+ Param[3]: color (type: Color)
+Function 178: DrawLineEx() (4 input parameters)
+ Name: DrawLineEx
+ Return type: void
+ Description: Draw a line defining thickness
+ Param[1]: startPos (type: Vector2)
+ Param[2]: endPos (type: Vector2)
+ Param[3]: thick (type: float)
+ Param[4]: color (type: Color)
+Function 179: DrawLineBezier() (4 input parameters)
+ Name: DrawLineBezier
+ Return type: void
+ Description: Draw a line using cubic-bezier curves in-out
+ Param[1]: startPos (type: Vector2)
+ Param[2]: endPos (type: Vector2)
+ Param[3]: thick (type: float)
+ Param[4]: color (type: Color)
+Function 180: DrawLineBezierQuad() (5 input parameters)
+ Name: DrawLineBezierQuad
+ Return type: void
+ Description: raw line using quadratic bezier curves with a control point
+ Param[1]: startPos (type: Vector2)
+ Param[2]: endPos (type: Vector2)
+ Param[3]: controlPos (type: Vector2)
+ Param[4]: thick (type: float)
+ Param[5]: color (type: Color)
+Function 181: DrawLineStrip() (3 input parameters)
+ Name: DrawLineStrip
+ Return type: void
+ Description: Draw lines sequence
+ Param[1]: points (type: Vector2 *)
+ Param[2]: pointsCount (type: int)
+ Param[3]: color (type: Color)
+Function 182: DrawCircle() (4 input parameters)
+ Name: DrawCircle
+ Return type: void
+ Description: Draw a color-filled circle
+ Param[1]: centerX (type: int)
+ Param[2]: centerY (type: int)
+ Param[3]: radius (type: float)
+ Param[4]: color (type: Color)
+Function 183: DrawCircleSector() (6 input parameters)
+ Name: DrawCircleSector
+ Return type: void
+ Description: Draw a piece of a circle
+ Param[1]: center (type: Vector2)
+ Param[2]: radius (type: float)
+ Param[3]: startAngle (type: float)
+ Param[4]: endAngle (type: float)
+ Param[5]: segments (type: int)
+ Param[6]: color (type: Color)
+Function 184: DrawCircleSectorLines() (6 input parameters)
+ Name: DrawCircleSectorLines
+ Return type: void
+ Description: Draw circle sector outline
+ Param[1]: center (type: Vector2)
+ Param[2]: radius (type: float)
+ Param[3]: startAngle (type: float)
+ Param[4]: endAngle (type: float)
+ Param[5]: segments (type: int)
+ Param[6]: color (type: Color)
+Function 185: DrawCircleGradient() (5 input parameters)
+ Name: DrawCircleGradient
+ Return type: void
+ Description: Draw a gradient-filled circle
+ Param[1]: centerX (type: int)
+ Param[2]: centerY (type: int)
+ Param[3]: radius (type: float)
+ Param[4]: color1 (type: Color)
+ Param[5]: color2 (type: Color)
+Function 186: DrawCircleV() (3 input parameters)
+ Name: DrawCircleV
+ Return type: void
+ Description: Draw a color-filled circle (Vector version)
+ Param[1]: center (type: Vector2)
+ Param[2]: radius (type: float)
+ Param[3]: color (type: Color)
+Function 187: DrawCircleLines() (4 input parameters)
+ Name: DrawCircleLines
+ Return type: void
+ Description: Draw circle outline
+ Param[1]: centerX (type: int)
+ Param[2]: centerY (type: int)
+ Param[3]: radius (type: float)
+ Param[4]: color (type: Color)
+Function 188: DrawEllipse() (5 input parameters)
+ Name: DrawEllipse
+ Return type: void
+ Description: Draw ellipse
+ Param[1]: centerX (type: int)
+ Param[2]: centerY (type: int)
+ Param[3]: radiusH (type: float)
+ Param[4]: radiusV (type: float)
+ Param[5]: color (type: Color)
+Function 189: DrawEllipseLines() (5 input parameters)
+ Name: DrawEllipseLines
+ Return type: void
+ Description: Draw ellipse outline
+ Param[1]: centerX (type: int)
+ Param[2]: centerY (type: int)
+ Param[3]: radiusH (type: float)
+ Param[4]: radiusV (type: float)
+ Param[5]: color (type: Color)
+Function 190: DrawRing() (7 input parameters)
+ Name: DrawRing
+ Return type: void
+ Description: Draw ring
+ Param[1]: center (type: Vector2)
+ Param[2]: innerRadius (type: float)
+ Param[3]: outerRadius (type: float)
+ Param[4]: startAngle (type: float)
+ Param[5]: endAngle (type: float)
+ Param[6]: segments (type: int)
+ Param[7]: color (type: Color)
+Function 191: DrawRingLines() (7 input parameters)
+ Name: DrawRingLines
+ Return type: void
+ Description: Draw ring outline
+ Param[1]: center (type: Vector2)
+ Param[2]: innerRadius (type: float)
+ Param[3]: outerRadius (type: float)
+ Param[4]: startAngle (type: float)
+ Param[5]: endAngle (type: float)
+ Param[6]: segments (type: int)
+ Param[7]: color (type: Color)
+Function 192: DrawRectangle() (5 input parameters)
+ Name: DrawRectangle
+ Return type: void
+ Description: Draw a color-filled rectangle
+ Param[1]: posX (type: int)
+ Param[2]: posY (type: int)
+ Param[3]: width (type: int)
+ Param[4]: height (type: int)
+ Param[5]: color (type: Color)
+Function 193: DrawRectangleV() (3 input parameters)
+ Name: DrawRectangleV
+ Return type: void
+ Description: Draw a color-filled rectangle (Vector version)
+ Param[1]: position (type: Vector2)
+ Param[2]: size (type: Vector2)
+ Param[3]: color (type: Color)
+Function 194: DrawRectangleRec() (2 input parameters)
+ Name: DrawRectangleRec
+ Return type: void
+ Description: Draw a color-filled rectangle
+ Param[1]: rec (type: Rectangle)
+ Param[2]: color (type: Color)
+Function 195: DrawRectanglePro() (4 input parameters)
+ Name: DrawRectanglePro
+ Return type: void
+ Description: Draw a color-filled rectangle with pro parameters
+ Param[1]: rec (type: Rectangle)
+ Param[2]: origin (type: Vector2)
+ Param[3]: rotation (type: float)
+ Param[4]: color (type: Color)
+Function 196: DrawRectangleGradientV() (6 input parameters)
+ Name: DrawRectangleGradientV
+ Return type: void
+ Description: Draw a vertical-gradient-filled rectangle
+ Param[1]: posX (type: int)
+ Param[2]: posY (type: int)
+ Param[3]: width (type: int)
+ Param[4]: height (type: int)
+ Param[5]: color1 (type: Color)
+ Param[6]: color2 (type: Color)
+Function 197: DrawRectangleGradientH() (6 input parameters)
+ Name: DrawRectangleGradientH
+ Return type: void
+ Description: Draw a horizontal-gradient-filled rectangle
+ Param[1]: posX (type: int)
+ Param[2]: posY (type: int)
+ Param[3]: width (type: int)
+ Param[4]: height (type: int)
+ Param[5]: color1 (type: Color)
+ Param[6]: color2 (type: Color)
+Function 198: DrawRectangleGradientEx() (5 input parameters)
+ Name: DrawRectangleGradientEx
+ Return type: void
+ Description: Draw a gradient-filled rectangle with custom vertex colors
+ Param[1]: rec (type: Rectangle)
+ Param[2]: col1 (type: Color)
+ Param[3]: col2 (type: Color)
+ Param[4]: col3 (type: Color)
+ Param[5]: col4 (type: Color)
+Function 199: DrawRectangleLines() (5 input parameters)
+ Name: DrawRectangleLines
+ Return type: void
+ Description: Draw rectangle outline
+ Param[1]: posX (type: int)
+ Param[2]: posY (type: int)
+ Param[3]: width (type: int)
+ Param[4]: height (type: int)
+ Param[5]: color (type: Color)
+Function 200: DrawRectangleLinesEx() (3 input parameters)
+ Name: DrawRectangleLinesEx
+ Return type: void
+ Description: Draw rectangle outline with extended parameters
+ Param[1]: rec (type: Rectangle)
+ Param[2]: lineThick (type: float)
+ Param[3]: color (type: Color)
+Function 201: DrawRectangleRounded() (4 input parameters)
+ Name: DrawRectangleRounded
+ Return type: void
+ Description: Draw rectangle with rounded edges
+ Param[1]: rec (type: Rectangle)
+ Param[2]: roundness (type: float)
+ Param[3]: segments (type: int)
+ Param[4]: color (type: Color)
+Function 202: DrawRectangleRoundedLines() (5 input parameters)
+ Name: DrawRectangleRoundedLines
+ Return type: void
+ Description: Draw rectangle with rounded edges outline
+ Param[1]: rec (type: Rectangle)
+ Param[2]: roundness (type: float)
+ Param[3]: segments (type: int)
+ Param[4]: lineThick (type: float)
+ Param[5]: color (type: Color)
+Function 203: DrawTriangle() (4 input parameters)
+ Name: DrawTriangle
+ Return type: void
+ Description: Draw a color-filled triangle (vertex in counter-clockwise order!)
+ Param[1]: v1 (type: Vector2)
+ Param[2]: v2 (type: Vector2)
+ Param[3]: v3 (type: Vector2)
+ Param[4]: color (type: Color)
+Function 204: DrawTriangleLines() (4 input parameters)
+ Name: DrawTriangleLines
+ Return type: void
+ Description: Draw triangle outline (vertex in counter-clockwise order!)
+ Param[1]: v1 (type: Vector2)
+ Param[2]: v2 (type: Vector2)
+ Param[3]: v3 (type: Vector2)
+ Param[4]: color (type: Color)
+Function 205: DrawTriangleFan() (3 input parameters)
+ Name: DrawTriangleFan
+ Return type: void
+ Description: Draw a triangle fan defined by points (first vertex is the center)
+ Param[1]: points (type: Vector2 *)
+ Param[2]: pointsCount (type: int)
+ Param[3]: color (type: Color)
+Function 206: DrawTriangleStrip() (3 input parameters)
+ Name: DrawTriangleStrip
+ Return type: void
+ Description: Draw a triangle strip defined by points
+ Param[1]: points (type: Vector2 *)
+ Param[2]: pointsCount (type: int)
+ Param[3]: color (type: Color)
+Function 207: DrawPoly() (5 input parameters)
+ Name: DrawPoly
+ Return type: void
+ Description: Draw a regular polygon (Vector version)
+ Param[1]: center (type: Vector2)
+ Param[2]: sides (type: int)
+ Param[3]: radius (type: float)
+ Param[4]: rotation (type: float)
+ Param[5]: color (type: Color)
+Function 208: DrawPolyLines() (5 input parameters)
+ Name: DrawPolyLines
+ Return type: void
+ Description: Draw a polygon outline of n sides
+ Param[1]: center (type: Vector2)
+ Param[2]: sides (type: int)
+ Param[3]: radius (type: float)
+ Param[4]: rotation (type: float)
+ Param[5]: color (type: Color)
+Function 209: DrawPolyLinesEx() (6 input parameters)
+ Name: DrawPolyLinesEx
+ Return type: void
+ Description: Draw a polygon outline of n sides with extended parameters
+ Param[1]: center (type: Vector2)
+ Param[2]: sides (type: int)
+ Param[3]: radius (type: float)
+ Param[4]: rotation (type: float)
+ Param[5]: lineThick (type: float)
+ Param[6]: color (type: Color)
+Function 210: CheckCollisionRecs() (2 input parameters)
+ Name: CheckCollisionRecs
+ Return type: bool
+ Description: Check collision between two rectangles
+ Param[1]: rec1 (type: Rectangle)
+ Param[2]: rec2 (type: Rectangle)
+Function 211: CheckCollisionCircles() (4 input parameters)
+ Name: CheckCollisionCircles
+ Return type: bool
+ Description: Check collision between two circles
+ Param[1]: center1 (type: Vector2)
+ Param[2]: radius1 (type: float)
+ Param[3]: center2 (type: Vector2)
+ Param[4]: radius2 (type: float)
+Function 212: CheckCollisionCircleRec() (3 input parameters)
+ Name: CheckCollisionCircleRec
+ Return type: bool
+ Description: Check collision between circle and rectangle
+ Param[1]: center (type: Vector2)
+ Param[2]: radius (type: float)
+ Param[3]: rec (type: Rectangle)
+Function 213: CheckCollisionPointRec() (2 input parameters)
+ Name: CheckCollisionPointRec
+ Return type: bool
+ Description: Check if point is inside rectangle
+ Param[1]: point (type: Vector2)
+ Param[2]: rec (type: Rectangle)
+Function 214: CheckCollisionPointCircle() (3 input parameters)
+ Name: CheckCollisionPointCircle
+ Return type: bool
+ Description: Check if point is inside circle
+ Param[1]: point (type: Vector2)
+ Param[2]: center (type: Vector2)
+ Param[3]: radius (type: float)
+Function 215: CheckCollisionPointTriangle() (4 input parameters)
+ Name: CheckCollisionPointTriangle
+ Return type: bool
+ Description: Check if point is inside a triangle
+ Param[1]: point (type: Vector2)
+ Param[2]: p1 (type: Vector2)
+ Param[3]: p2 (type: Vector2)
+ Param[4]: p3 (type: Vector2)
+Function 216: CheckCollisionLines() (5 input parameters)
+ Name: CheckCollisionLines
+ Return type: bool
+ Description: Check the collision between two lines defined by two points each, returns collision point by reference
+ Param[1]: startPos1 (type: Vector2)
+ Param[2]: endPos1 (type: Vector2)
+ Param[3]: startPos2 (type: Vector2)
+ Param[4]: endPos2 (type: Vector2)
+ Param[5]: collisionPoint (type: Vector2 *)
+Function 217: GetCollisionRec() (2 input parameters)
+ Name: GetCollisionRec
+ Return type: Rectangle
+ Description: Get collision rectangle for two rectangles collision
+ Param[1]: rec1 (type: Rectangle)
+ Param[2]: rec2 (type: Rectangle)
+Function 218: LoadImage() (1 input parameters)
+ Name: LoadImage
+ Return type: Image
+ Description: Load image from file into CPU memory (RAM)
+ Param[1]: fileName (type: const char *)
+Function 219: LoadImageRaw() (5 input parameters)
+ Name: LoadImageRaw
+ Return type: Image
+ Description: Load image from RAW file data
+ Param[1]: fileName (type: const char *)
+ Param[2]: width (type: int)
+ Param[3]: height (type: int)
+ Param[4]: format (type: int)
+ Param[5]: headerSize (type: int)
+Function 220: LoadImageAnim() (2 input parameters)
+ Name: LoadImageAnim
+ Return type: Image
+ Description: Load image sequence from file (frames appended to image.data)
+ Param[1]: fileName (type: const char *)
+ Param[2]: frames (type: int *)
+Function 221: LoadImageFromMemory() (3 input parameters)
+ Name: LoadImageFromMemory
+ Return type: Image
+ Description: Load image from memory buffer, fileType refers to extension: i.e. '.png'
+ Param[1]: fileType (type: const char *)
+ Param[2]: fileData (type: const unsigned char *)
+ Param[3]: dataSize (type: int)
+Function 222: UnloadImage() (1 input parameters)
+ Name: UnloadImage
+ Return type: void
+ Description: Unload image from CPU memory (RAM)
+ Param[1]: image (type: Image)
+Function 223: ExportImage() (2 input parameters)
+ Name: ExportImage
+ Return type: bool
+ Description: Export image data to file, returns true on success
+ Param[1]: image (type: Image)
+ Param[2]: fileName (type: const char *)
+Function 224: ExportImageAsCode() (2 input parameters)
+ Name: ExportImageAsCode
+ Return type: bool
+ Description: Export image as code file defining an array of bytes, returns true on success
+ Param[1]: image (type: Image)
+ Param[2]: fileName (type: const char *)
+Function 225: GenImageColor() (3 input parameters)
+ Name: GenImageColor
+ Return type: Image
+ Description: Generate image: plain color
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+ Param[3]: color (type: Color)
+Function 226: GenImageGradientV() (4 input parameters)
+ Name: GenImageGradientV
+ Return type: Image
+ Description: Generate image: vertical gradient
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+ Param[3]: top (type: Color)
+ Param[4]: bottom (type: Color)
+Function 227: GenImageGradientH() (4 input parameters)
+ Name: GenImageGradientH
+ Return type: Image
+ Description: Generate image: horizontal gradient
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+ Param[3]: left (type: Color)
+ Param[4]: right (type: Color)
+Function 228: GenImageGradientRadial() (5 input parameters)
+ Name: GenImageGradientRadial
+ Return type: Image
+ Description: Generate image: radial gradient
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+ Param[3]: density (type: float)
+ Param[4]: inner (type: Color)
+ Param[5]: outer (type: Color)
+Function 229: GenImageChecked() (6 input parameters)
+ Name: GenImageChecked
+ Return type: Image
+ Description: Generate image: checked
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+ Param[3]: checksX (type: int)
+ Param[4]: checksY (type: int)
+ Param[5]: col1 (type: Color)
+ Param[6]: col2 (type: Color)
+Function 230: GenImageWhiteNoise() (3 input parameters)
+ Name: GenImageWhiteNoise
+ Return type: Image
+ Description: Generate image: white noise
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+ Param[3]: factor (type: float)
+Function 231: GenImagePerlinNoise() (5 input parameters)
+ Name: GenImagePerlinNoise
+ Return type: Image
+ Description: Generate image: perlin noise
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+ Param[3]: offsetX (type: int)
+ Param[4]: offsetY (type: int)
+ Param[5]: scale (type: float)
+Function 232: GenImageCellular() (3 input parameters)
+ Name: GenImageCellular
+ Return type: Image
+ Description: Generate image: cellular algorithm. Bigger tileSize means bigger cells
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+ Param[3]: tileSize (type: int)
+Function 233: ImageCopy() (1 input parameters)
+ Name: ImageCopy
+ Return type: Image
+ Description: Create an image duplicate (useful for transformations)
+ Param[1]: image (type: Image)
+Function 234: ImageFromImage() (2 input parameters)
+ Name: ImageFromImage
+ Return type: Image
+ Description: Create an image from another image piece
+ Param[1]: image (type: Image)
+ Param[2]: rec (type: Rectangle)
+Function 235: ImageText() (3 input parameters)
+ Name: ImageText
+ Return type: Image
+ Description: Create an image from text (default font)
+ Param[1]: text (type: const char *)
+ Param[2]: fontSize (type: int)
+ Param[3]: color (type: Color)
+Function 236: ImageTextEx() (5 input parameters)
+ Name: ImageTextEx
+ Return type: Image
+ Description: Create an image from text (custom sprite font)
+ Param[1]: font (type: Font)
+ Param[2]: text (type: const char *)
+ Param[3]: fontSize (type: float)
+ Param[4]: spacing (type: float)
+ Param[5]: tint (type: Color)
+Function 237: ImageFormat() (2 input parameters)
+ Name: ImageFormat
+ Return type: void
+ Description: Convert image data to desired format
+ Param[1]: image (type: Image *)
+ Param[2]: newFormat (type: int)
+Function 238: ImageToPOT() (2 input parameters)
+ Name: ImageToPOT
+ Return type: void
+ Description: Convert image to POT (power-of-two)
+ Param[1]: image (type: Image *)
+ Param[2]: fill (type: Color)
+Function 239: ImageCrop() (2 input parameters)
+ Name: ImageCrop
+ Return type: void
+ Description: Crop an image to a defined rectangle
+ Param[1]: image (type: Image *)
+ Param[2]: crop (type: Rectangle)
+Function 240: ImageAlphaCrop() (2 input parameters)
+ Name: ImageAlphaCrop
+ Return type: void
+ Description: Crop image depending on alpha value
+ Param[1]: image (type: Image *)
+ Param[2]: threshold (type: float)
+Function 241: ImageAlphaClear() (3 input parameters)
+ Name: ImageAlphaClear
+ Return type: void
+ Description: Clear alpha channel to desired color
+ Param[1]: image (type: Image *)
+ Param[2]: color (type: Color)
+ Param[3]: threshold (type: float)
+Function 242: ImageAlphaMask() (2 input parameters)
+ Name: ImageAlphaMask
+ Return type: void
+ Description: Apply alpha mask to image
+ Param[1]: image (type: Image *)
+ Param[2]: alphaMask (type: Image)
+Function 243: ImageAlphaPremultiply() (1 input parameters)
+ Name: ImageAlphaPremultiply
+ Return type: void
+ Description: Premultiply alpha channel
+ Param[1]: image (type: Image *)
+Function 244: ImageResize() (3 input parameters)
+ Name: ImageResize
+ Return type: void
+ Description: Resize image (Bicubic scaling algorithm)
+ Param[1]: image (type: Image *)
+ Param[2]: newWidth (type: int)
+ Param[3]: newHeight (type: int)
+Function 245: ImageResizeNN() (3 input parameters)
+ Name: ImageResizeNN
+ Return type: void
+ Description: Resize image (Nearest-Neighbor scaling algorithm)
+ Param[1]: image (type: Image *)
+ Param[2]: newWidth (type: int)
+ Param[3]: newHeight (type: int)
+Function 246: ImageResizeCanvas() (6 input parameters)
+ Name: ImageResizeCanvas
+ Return type: void
+ Description: Resize canvas and fill with color
+ Param[1]: image (type: Image *)
+ Param[2]: newWidth (type: int)
+ Param[3]: newHeight (type: int)
+ Param[4]: offsetX (type: int)
+ Param[5]: offsetY (type: int)
+ Param[6]: fill (type: Color)
+Function 247: ImageMipmaps() (1 input parameters)
+ Name: ImageMipmaps
+ Return type: void
+ Description: Compute all mipmap levels for a provided image
+ Param[1]: image (type: Image *)
+Function 248: ImageDither() (5 input parameters)
+ Name: ImageDither
+ Return type: void
+ Description: Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
+ Param[1]: image (type: Image *)
+ Param[2]: rBpp (type: int)
+ Param[3]: gBpp (type: int)
+ Param[4]: bBpp (type: int)
+ Param[5]: aBpp (type: int)
+Function 249: ImageFlipVertical() (1 input parameters)
+ Name: ImageFlipVertical
+ Return type: void
+ Description: Flip image vertically
+ Param[1]: image (type: Image *)
+Function 250: ImageFlipHorizontal() (1 input parameters)
+ Name: ImageFlipHorizontal
+ Return type: void
+ Description: Flip image horizontally
+ Param[1]: image (type: Image *)
+Function 251: ImageRotateCW() (1 input parameters)
+ Name: ImageRotateCW
+ Return type: void
+ Description: Rotate image clockwise 90deg
+ Param[1]: image (type: Image *)
+Function 252: ImageRotateCCW() (1 input parameters)
+ Name: ImageRotateCCW
+ Return type: void
+ Description: Rotate image counter-clockwise 90deg
+ Param[1]: image (type: Image *)
+Function 253: ImageColorTint() (2 input parameters)
+ Name: ImageColorTint
+ Return type: void
+ Description: Modify image color: tint
+ Param[1]: image (type: Image *)
+ Param[2]: color (type: Color)
+Function 254: ImageColorInvert() (1 input parameters)
+ Name: ImageColorInvert
+ Return type: void
+ Description: Modify image color: invert
+ Param[1]: image (type: Image *)
+Function 255: ImageColorGrayscale() (1 input parameters)
+ Name: ImageColorGrayscale
+ Return type: void
+ Description: Modify image color: grayscale
+ Param[1]: image (type: Image *)
+Function 256: ImageColorContrast() (2 input parameters)
+ Name: ImageColorContrast
+ Return type: void
+ Description: Modify image color: contrast (-100 to 100)
+ Param[1]: image (type: Image *)
+ Param[2]: contrast (type: float)
+Function 257: ImageColorBrightness() (2 input parameters)
+ Name: ImageColorBrightness
+ Return type: void
+ Description: Modify image color: brightness (-255 to 255)
+ Param[1]: image (type: Image *)
+ Param[2]: brightness (type: int)
+Function 258: ImageColorReplace() (3 input parameters)
+ Name: ImageColorReplace
+ Return type: void
+ Description: Modify image color: replace color
+ Param[1]: image (type: Image *)
+ Param[2]: color (type: Color)
+ Param[3]: replace (type: Color)
+Function 259: LoadImageColors() (1 input parameters)
+ Name: LoadImageColors
+ Return type: Color *
+ Description: Load color data from image as a Color array (RGBA - 32bit)
+ Param[1]: image (type: Image)
+Function 260: LoadImagePalette() (3 input parameters)
+ Name: LoadImagePalette
+ Return type: Color *
+ Description: Load colors palette from image as a Color array (RGBA - 32bit)
+ Param[1]: image (type: Image)
+ Param[2]: maxPaletteSize (type: int)
+ Param[3]: colorsCount (type: int *)
+Function 261: UnloadImageColors() (1 input parameters)
+ Name: UnloadImageColors
+ Return type: void
+ Description: Unload color data loaded with LoadImageColors()
+ Param[1]: colors (type: Color *)
+Function 262: UnloadImagePalette() (1 input parameters)
+ Name: UnloadImagePalette
+ Return type: void
+ Description: Unload colors palette loaded with LoadImagePalette()
+ Param[1]: colors (type: Color *)
+Function 263: GetImageAlphaBorder() (2 input parameters)
+ Name: GetImageAlphaBorder
+ Return type: Rectangle
+ Description: Get image alpha border rectangle
+ Param[1]: image (type: Image)
+ Param[2]: threshold (type: float)
+Function 264: ImageClearBackground() (2 input parameters)
+ Name: ImageClearBackground
+ Return type: void
+ Description: Clear image background with given color
+ Param[1]: dst (type: Image *)
+ Param[2]: color (type: Color)
+Function 265: ImageDrawPixel() (4 input parameters)
+ Name: ImageDrawPixel
+ Return type: void
+ Description: Draw pixel within an image
+ Param[1]: dst (type: Image *)
+ Param[2]: posX (type: int)
+ Param[3]: posY (type: int)
+ Param[4]: color (type: Color)
+Function 266: ImageDrawPixelV() (3 input parameters)
+ Name: ImageDrawPixelV
+ Return type: void
+ Description: Draw pixel within an image (Vector version)
+ Param[1]: dst (type: Image *)
+ Param[2]: position (type: Vector2)
+ Param[3]: color (type: Color)
+Function 267: ImageDrawLine() (6 input parameters)
+ Name: ImageDrawLine
+ Return type: void
+ Description: Draw line within an image
+ Param[1]: dst (type: Image *)
+ Param[2]: startPosX (type: int)
+ Param[3]: startPosY (type: int)
+ Param[4]: endPosX (type: int)
+ Param[5]: endPosY (type: int)
+ Param[6]: color (type: Color)
+Function 268: ImageDrawLineV() (4 input parameters)
+ Name: ImageDrawLineV
+ Return type: void
+ Description: Draw line within an image (Vector version)
+ Param[1]: dst (type: Image *)
+ Param[2]: start (type: Vector2)
+ Param[3]: end (type: Vector2)
+ Param[4]: color (type: Color)
+Function 269: ImageDrawCircle() (5 input parameters)
+ Name: ImageDrawCircle
+ Return type: void
+ Description: Draw circle within an image
+ Param[1]: dst (type: Image *)
+ Param[2]: centerX (type: int)
+ Param[3]: centerY (type: int)
+ Param[4]: radius (type: int)
+ Param[5]: color (type: Color)
+Function 270: ImageDrawCircleV() (4 input parameters)
+ Name: ImageDrawCircleV
+ Return type: void
+ Description: Draw circle within an image (Vector version)
+ Param[1]: dst (type: Image *)
+ Param[2]: center (type: Vector2)
+ Param[3]: radius (type: int)
+ Param[4]: color (type: Color)
+Function 271: ImageDrawRectangle() (6 input parameters)
+ Name: ImageDrawRectangle
+ Return type: void
+ Description: Draw rectangle within an image
+ Param[1]: dst (type: Image *)
+ Param[2]: posX (type: int)
+ Param[3]: posY (type: int)
+ Param[4]: width (type: int)
+ Param[5]: height (type: int)
+ Param[6]: color (type: Color)
+Function 272: ImageDrawRectangleV() (4 input parameters)
+ Name: ImageDrawRectangleV
+ Return type: void
+ Description: Draw rectangle within an image (Vector version)
+ Param[1]: dst (type: Image *)
+ Param[2]: position (type: Vector2)
+ Param[3]: size (type: Vector2)
+ Param[4]: color (type: Color)
+Function 273: ImageDrawRectangleRec() (3 input parameters)
+ Name: ImageDrawRectangleRec
+ Return type: void
+ Description: Draw rectangle within an image
+ Param[1]: dst (type: Image *)
+ Param[2]: rec (type: Rectangle)
+ Param[3]: color (type: Color)
+Function 274: ImageDrawRectangleLines() (4 input parameters)
+ Name: ImageDrawRectangleLines
+ Return type: void
+ Description: Draw rectangle lines within an image
+ Param[1]: dst (type: Image *)
+ Param[2]: rec (type: Rectangle)
+ Param[3]: thick (type: int)
+ Param[4]: color (type: Color)
+Function 275: ImageDraw() (5 input parameters)
+ Name: ImageDraw
+ Return type: void
+ Description: Draw a source image within a destination image (tint applied to source)
+ Param[1]: dst (type: Image *)
+ Param[2]: src (type: Image)
+ Param[3]: srcRec (type: Rectangle)
+ Param[4]: dstRec (type: Rectangle)
+ Param[5]: tint (type: Color)
+Function 276: ImageDrawText() (6 input parameters)
+ Name: ImageDrawText
+ Return type: void
+ Description: Draw text (using default font) within an image (destination)
+ Param[1]: dst (type: Image *)
+ Param[2]: text (type: const char *)
+ Param[3]: posX (type: int)
+ Param[4]: posY (type: int)
+ Param[5]: fontSize (type: int)
+ Param[6]: color (type: Color)
+Function 277: ImageDrawTextEx() (7 input parameters)
+ Name: ImageDrawTextEx
+ Return type: void
+ Description: Draw text (custom sprite font) within an image (destination)
+ Param[1]: dst (type: Image *)
+ Param[2]: font (type: Font)
+ Param[3]: text (type: const char *)
+ Param[4]: position (type: Vector2)
+ Param[5]: fontSize (type: float)
+ Param[6]: spacing (type: float)
+ Param[7]: tint (type: Color)
+Function 278: LoadTexture() (1 input parameters)
+ Name: LoadTexture
+ Return type: Texture2D
+ Description: Load texture from file into GPU memory (VRAM)
+ Param[1]: fileName (type: const char *)
+Function 279: LoadTextureFromImage() (1 input parameters)
+ Name: LoadTextureFromImage
+ Return type: Texture2D
+ Description: Load texture from image data
+ Param[1]: image (type: Image)
+Function 280: LoadTextureCubemap() (2 input parameters)
+ Name: LoadTextureCubemap
+ Return type: TextureCubemap
+ Description: Load cubemap from image, multiple image cubemap layouts supported
+ Param[1]: image (type: Image)
+ Param[2]: layout (type: int)
+Function 281: LoadRenderTexture() (2 input parameters)
+ Name: LoadRenderTexture
+ Return type: RenderTexture2D
+ Description: Load texture for rendering (framebuffer)
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+Function 282: UnloadTexture() (1 input parameters)
+ Name: UnloadTexture
+ Return type: void
+ Description: Unload texture from GPU memory (VRAM)
+ Param[1]: texture (type: Texture2D)
+Function 283: UnloadRenderTexture() (1 input parameters)
+ Name: UnloadRenderTexture
+ Return type: void
+ Description: Unload render texture from GPU memory (VRAM)
+ Param[1]: target (type: RenderTexture2D)
+Function 284: UpdateTexture() (2 input parameters)
+ Name: UpdateTexture
+ Return type: void
+ Description: Update GPU texture with new data
+ Param[1]: texture (type: Texture2D)
+ Param[2]: pixels (type: const void *)
+Function 285: UpdateTextureRec() (3 input parameters)
+ Name: UpdateTextureRec
+ Return type: void
+ Description: Update GPU texture rectangle with new data
+ Param[1]: texture (type: Texture2D)
+ Param[2]: rec (type: Rectangle)
+ Param[3]: pixels (type: const void *)
+Function 286: GetTextureData() (1 input parameters)
+ Name: GetTextureData
+ Return type: Image
+ Description: Get pixel data from GPU texture and return an Image
+ Param[1]: texture (type: Texture2D)
+Function 287: GetScreenData() (0 input parameters)
+ Name: GetScreenData
+ Return type: Image
+ Description: Get pixel data from screen buffer and return an Image (screenshot)
+ No input parameters
+Function 288: GenTextureMipmaps() (1 input parameters)
+ Name: GenTextureMipmaps
+ Return type: void
+ Description: Generate GPU mipmaps for a texture
+ Param[1]: texture (type: Texture2D *)
+Function 289: SetTextureFilter() (2 input parameters)
+ Name: SetTextureFilter
+ Return type: void
+ Description: Set texture scaling filter mode
+ Param[1]: texture (type: Texture2D)
+ Param[2]: filter (type: int)
+Function 290: SetTextureWrap() (2 input parameters)
+ Name: SetTextureWrap
+ Return type: void
+ Description: Set texture wrapping mode
+ Param[1]: texture (type: Texture2D)
+ Param[2]: wrap (type: int)
+Function 291: DrawTexture() (4 input parameters)
+ Name: DrawTexture
+ Return type: void
+ Description: Draw a Texture2D
+ Param[1]: texture (type: Texture2D)
+ Param[2]: posX (type: int)
+ Param[3]: posY (type: int)
+ Param[4]: tint (type: Color)
+Function 292: DrawTextureV() (3 input parameters)
+ Name: DrawTextureV
+ Return type: void
+ Description: Draw a Texture2D with position defined as Vector2
+ Param[1]: texture (type: Texture2D)
+ Param[2]: position (type: Vector2)
+ Param[3]: tint (type: Color)
+Function 293: DrawTextureEx() (5 input parameters)
+ Name: DrawTextureEx
+ Return type: void
+ Description: Draw a Texture2D with extended parameters
+ Param[1]: texture (type: Texture2D)
+ Param[2]: position (type: Vector2)
+ Param[3]: rotation (type: float)
+ Param[4]: scale (type: float)
+ Param[5]: tint (type: Color)
+Function 294: DrawTextureRec() (4 input parameters)
+ Name: DrawTextureRec
+ Return type: void
+ Description: Draw a part of a texture defined by a rectangle
+ Param[1]: texture (type: Texture2D)
+ Param[2]: source (type: Rectangle)
+ Param[3]: position (type: Vector2)
+ Param[4]: tint (type: Color)
+Function 295: DrawTextureQuad() (5 input parameters)
+ Name: DrawTextureQuad
+ Return type: void
+ Description: Draw texture quad with tiling and offset parameters
+ Param[1]: texture (type: Texture2D)
+ Param[2]: tiling (type: Vector2)
+ Param[3]: offset (type: Vector2)
+ Param[4]: quad (type: Rectangle)
+ Param[5]: tint (type: Color)
+Function 296: DrawTextureTiled() (7 input parameters)
+ Name: DrawTextureTiled
+ Return type: void
+ Description: Draw part of a texture (defined by a rectangle) with rotation and scale tiled into dest.
+ Param[1]: texture (type: Texture2D)
+ Param[2]: source (type: Rectangle)
+ Param[3]: dest (type: Rectangle)
+ Param[4]: origin (type: Vector2)
+ Param[5]: rotation (type: float)
+ Param[6]: scale (type: float)
+ Param[7]: tint (type: Color)
+Function 297: DrawTexturePro() (6 input parameters)
+ Name: DrawTexturePro
+ Return type: void
+ Description: Draw a part of a texture defined by a rectangle with 'pro' parameters
+ Param[1]: texture (type: Texture2D)
+ Param[2]: source (type: Rectangle)
+ Param[3]: dest (type: Rectangle)
+ Param[4]: origin (type: Vector2)
+ Param[5]: rotation (type: float)
+ Param[6]: tint (type: Color)
+Function 298: DrawTextureNPatch() (6 input parameters)
+ Name: DrawTextureNPatch
+ Return type: void
+ Description: Draws a texture (or part of it) that stretches or shrinks nicely
+ Param[1]: texture (type: Texture2D)
+ Param[2]: nPatchInfo (type: NPatchInfo)
+ Param[3]: dest (type: Rectangle)
+ Param[4]: origin (type: Vector2)
+ Param[5]: rotation (type: float)
+ Param[6]: tint (type: Color)
+Function 299: DrawTexturePoly() (6 input parameters)
+ Name: DrawTexturePoly
+ Return type: void
+ Description: Draw a textured polygon
+ Param[1]: texture (type: Texture2D)
+ Param[2]: center (type: Vector2)
+ Param[3]: points (type: Vector2 *)
+ Param[4]: texcoords (type: Vector2 *)
+ Param[5]: pointsCount (type: int)
+ Param[6]: tint (type: Color)
+Function 300: Fade() (2 input parameters)
+ Name: Fade
+ Return type: Color
+ Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f
+ Param[1]: color (type: Color)
+ Param[2]: alpha (type: float)
+Function 301: ColorToInt() (1 input parameters)
+ Name: ColorToInt
+ Return type: int
+ Description: Get hexadecimal value for a Color
+ Param[1]: color (type: Color)
+Function 302: ColorNormalize() (1 input parameters)
+ Name: ColorNormalize
+ Return type: Vector4
+ Description: Get Color normalized as float [0..1]
+ Param[1]: color (type: Color)
+Function 303: ColorFromNormalized() (1 input parameters)
+ Name: ColorFromNormalized
+ Return type: Color
+ Description: Get Color from normalized values [0..1]
+ Param[1]: normalized (type: Vector4)
+Function 304: ColorToHSV() (1 input parameters)
+ Name: ColorToHSV
+ Return type: Vector3
+ Description: Get HSV values for a Color, hue [0..360], saturation/value [0..1]
+ Param[1]: color (type: Color)
+Function 305: ColorFromHSV() (3 input parameters)
+ Name: ColorFromHSV
+ Return type: Color
+ Description: Get a Color from HSV values, hue [0..360], saturation/value [0..1]
+ Param[1]: hue (type: float)
+ Param[2]: saturation (type: float)
+ Param[3]: value (type: float)
+Function 306: ColorAlpha() (2 input parameters)
+ Name: ColorAlpha
+ Return type: Color
+ Description: Get color with alpha applied, alpha goes from 0.0f to 1.0f
+ Param[1]: color (type: Color)
+ Param[2]: alpha (type: float)
+Function 307: ColorAlphaBlend() (3 input parameters)
+ Name: ColorAlphaBlend
+ Return type: Color
+ Description: Get src alpha-blended into dst color with tint
+ Param[1]: dst (type: Color)
+ Param[2]: src (type: Color)
+ Param[3]: tint (type: Color)
+Function 308: GetColor() (1 input parameters)
+ Name: GetColor
+ Return type: Color
+ Description: Get Color structure from hexadecimal value
+ Param[1]: hexValue (type: int)
+Function 309: GetPixelColor() (2 input parameters)
+ Name: GetPixelColor
+ Return type: Color
+ Description: Get Color from a source pixel pointer of certain format
+ Param[1]: srcPtr (type: void *)
+ Param[2]: format (type: int)
+Function 310: SetPixelColor() (3 input parameters)
+ Name: SetPixelColor
+ Return type: void
+ Description: Set color formatted into destination pixel pointer
+ Param[1]: dstPtr (type: void *)
+ Param[2]: color (type: Color)
+ Param[3]: format (type: int)
+Function 311: GetPixelDataSize() (3 input parameters)
+ Name: GetPixelDataSize
+ Return type: int
+ Description: Get pixel data size in bytes for certain format
+ Param[1]: width (type: int)
+ Param[2]: height (type: int)
+ Param[3]: format (type: int)
+Function 312: GetFontDefault() (0 input parameters)
+ Name: GetFontDefault
+ Return type: Font
+ Description: Get the default Font
+ No input parameters
+Function 313: LoadFont() (1 input parameters)
+ Name: LoadFont
+ Return type: Font
+ Description: Load font from file into GPU memory (VRAM)
+ Param[1]: fileName (type: const char *)
+Function 314: LoadFontEx() (4 input parameters)
+ Name: LoadFontEx
+ Return type: Font
+ Description: Load font from file with extended parameters
+ Param[1]: fileName (type: const char *)
+ Param[2]: fontSize (type: int)
+ Param[3]: fontChars (type: int *)
+ Param[4]: charsCount (type: int)
+Function 315: LoadFontFromImage() (3 input parameters)
+ Name: LoadFontFromImage
+ Return type: Font
+ Description: Load font from Image (XNA style)
+ Param[1]: image (type: Image)
+ Param[2]: key (type: Color)
+ Param[3]: firstChar (type: int)
+Function 316: LoadFontFromMemory() (6 input parameters)
+ Name: LoadFontFromMemory
+ Return type: Font
+ Description: Load font from memory buffer, fileType refers to extension: i.e. '.ttf'
+ Param[1]: fileType (type: const char *)
+ Param[2]: fileData (type: const unsigned char *)
+ Param[3]: dataSize (type: int)
+ Param[4]: fontSize (type: int)
+ Param[5]: fontChars (type: int *)
+ Param[6]: charsCount (type: int)
+Function 317: LoadFontData() (6 input parameters)
+ Name: LoadFontData
+ Return type: CharInfo *
+ Description: Load font data for further use
+ Param[1]: fileData (type: const unsigned char *)
+ Param[2]: dataSize (type: int)
+ Param[3]: fontSize (type: int)
+ Param[4]: fontChars (type: int *)
+ Param[5]: charsCount (type: int)
+ Param[6]: type (type: int)
+Function 318: GenImageFontAtlas() (6 input parameters)
+ Name: GenImageFontAtlas
+ Return type: Image
+ Description: Generate image font atlas using chars info
+ Param[1]: chars (type: const CharInfo *)
+ Param[2]: recs (type: Rectangle **)
+ Param[3]: charsCount (type: int)
+ Param[4]: fontSize (type: int)
+ Param[5]: padding (type: int)
+ Param[6]: packMethod (type: int)
+Function 319: UnloadFontData() (2 input parameters)
+ Name: UnloadFontData
+ Return type: void
+ Description: Unload font chars info data (RAM)
+ Param[1]: chars (type: CharInfo *)
+ Param[2]: charsCount (type: int)
+Function 320: UnloadFont() (1 input parameters)
+ Name: UnloadFont
+ Return type: void
+ Description: Unload Font from GPU memory (VRAM)
+ Param[1]: font (type: Font)
+Function 321: DrawFPS() (2 input parameters)
+ Name: DrawFPS
+ Return type: void
+ Description: Draw current FPS
+ Param[1]: posX (type: int)
+ Param[2]: posY (type: int)
+Function 322: DrawText() (5 input parameters)
+ Name: DrawText
+ Return type: void
+ Description: Draw text (using default font)
+ Param[1]: text (type: const char *)
+ Param[2]: posX (type: int)
+ Param[3]: posY (type: int)
+ Param[4]: fontSize (type: int)
+ Param[5]: color (type: Color)
+Function 323: DrawTextEx() (6 input parameters)
+ Name: DrawTextEx
+ Return type: void
+ Description: Draw text using font and additional parameters
+ Param[1]: font (type: Font)
+ Param[2]: text (type: const char *)
+ Param[3]: position (type: Vector2)
+ Param[4]: fontSize (type: float)
+ Param[5]: spacing (type: float)
+ Param[6]: tint (type: Color)
+Function 324: DrawTextRec() (7 input parameters)
+ Name: DrawTextRec
+ Return type: void
+ Description: Draw text using font inside rectangle limits
+ Param[1]: font (type: Font)
+ Param[2]: text (type: const char *)
+ Param[3]: rec (type: Rectangle)
+ Param[4]: fontSize (type: float)
+ Param[5]: spacing (type: float)
+ Param[6]: wordWrap (type: bool)
+ Param[7]: tint (type: Color)
+Function 325: DrawTextRecEx() (11 input parameters)
+ Name: DrawTextRecEx
+ Return type: void
+ Description: Draw text using font inside rectangle limits with support for text selection
+ Param[1]: font (type: Font)
+ Param[2]: text (type: const char *)
+ Param[3]: rec (type: Rectangle)
+ Param[4]: fontSize (type: float)
+ Param[5]: spacing (type: float)
+ Param[6]: wordWrap (type: bool)
+ Param[7]: tint (type: Color)
+ Param[8]: selectStart (type: int)
+ Param[9]: selectLength (type: int)
+ Param[10]: selectTint (type: Color)
+ Param[11]: selectBackTint (type: Color)
+Function 326: DrawTextCodepoint() (5 input parameters)
+ Name: DrawTextCodepoint
+ Return type: void
+ Description: Draw one character (codepoint)
+ Param[1]: font (type: Font)
+ Param[2]: codepoint (type: int)
+ Param[3]: position (type: Vector2)
+ Param[4]: fontSize (type: float)
+ Param[5]: tint (type: Color)
+Function 327: MeasureText() (2 input parameters)
+ Name: MeasureText
+ Return type: int
+ Description: Measure string width for default font
+ Param[1]: text (type: const char *)
+ Param[2]: fontSize (type: int)
+Function 328: MeasureTextEx() (4 input parameters)
+ Name: MeasureTextEx
+ Return type: Vector2
+ Description: Measure string size for Font
+ Param[1]: font (type: Font)
+ Param[2]: text (type: const char *)
+ Param[3]: fontSize (type: float)
+ Param[4]: spacing (type: float)
+Function 329: GetGlyphIndex() (2 input parameters)
+ Name: GetGlyphIndex
+ Return type: int
+ Description: Get index position for a unicode character on font
+ Param[1]: font (type: Font)
+ Param[2]: codepoint (type: int)
+Function 330: TextCopy() (2 input parameters)
+ Name: TextCopy
+ Return type: int
+ Description: Copy one string to another, returns bytes copied
+ Param[1]: dst (type: char *)
+ Param[2]: src (type: const char *)
+Function 331: TextIsEqual() (2 input parameters)
+ Name: TextIsEqual
+ Return type: bool
+ Description: Check if two text string are equal
+ Param[1]: text1 (type: const char *)
+ Param[2]: text2 (type: const char *)
+Function 332: TextLength() (1 input parameters)
+ Name: TextLength
+ Return type: unsigned int
+ Description: Get text length, checks for '\0' ending
+ Param[1]: text (type: const char *)
+Function 333: TextFormat() (2 input parameters)
+ Name: TextFormat
+ Return type: const char *
+ Description: Text formatting with variables (sprintf style)
+ Param[1]: text (type: const char *)
+ Param[2]: (type: )
+Function 334: TextSubtext() (3 input parameters)
+ Name: TextSubtext
+ Return type: const char *
+ Description: Get a piece of a text string
+ Param[1]: text (type: const char *)
+ Param[2]: position (type: int)
+ Param[3]: length (type: int)
+Function 335: TextReplace() (3 input parameters)
+ Name: TextReplace
+ Return type: char *
+ Description: Replace text string (memory must be freed!)
+ Param[1]: text (type: char *)
+ Param[2]: replace (type: const char *)
+ Param[3]: by (type: const char *)
+Function 336: TextInsert() (3 input parameters)
+ Name: TextInsert
+ Return type: char *
+ Description: Insert text in a position (memory must be freed!)
+ Param[1]: text (type: const char *)
+ Param[2]: insert (type: const char *)
+ Param[3]: position (type: int)
+Function 337: TextJoin() (3 input parameters)
+ Name: TextJoin
+ Return type: const char *
+ Description: Join text strings with delimiter
+ Param[1]: textList (type: const char **)
+ Param[2]: count (type: int)
+ Param[3]: delimiter (type: const char *)
+Function 338: TextSplit() (3 input parameters)
+ Name: TextSplit
+ Return type: const char **
+ Description: Split text into multiple strings
+ Param[1]: text (type: const char *)
+ Param[2]: delimiter (type: char)
+ Param[3]: count (type: int *)
+Function 339: TextAppend() (3 input parameters)
+ Name: TextAppend
+ Return type: void
+ Description: Append text at specific position and move cursor!
+ Param[1]: text (type: char *)
+ Param[2]: append (type: const char *)
+ Param[3]: position (type: int *)
+Function 340: TextFindIndex() (2 input parameters)
+ Name: TextFindIndex
+ Return type: int
+ Description: Find first text occurrence within a string
+ Param[1]: text (type: const char *)
+ Param[2]: find (type: const char *)
+Function 341: TextToUpper() (1 input parameters)
+ Name: TextToUpper
+ Return type: const char *
+ Description: Get upper case version of provided string
+ Param[1]: text (type: const char *)
+Function 342: TextToLower() (1 input parameters)
+ Name: TextToLower
+ Return type: const char *
+ Description: Get lower case version of provided string
+ Param[1]: text (type: const char *)
+Function 343: TextToPascal() (1 input parameters)
+ Name: TextToPascal
+ Return type: const char *
+ Description: Get Pascal case notation version of provided string
+ Param[1]: text (type: const char *)
+Function 344: TextToInteger() (1 input parameters)
+ Name: TextToInteger
+ Return type: int
+ Description: Get integer value from text (negative values not supported)
+ Param[1]: text (type: const char *)
+Function 345: TextToUtf8() (2 input parameters)
+ Name: TextToUtf8
+ Return type: char *
+ Description: Encode text codepoint into utf8 text (memory must be freed!)
+ Param[1]: codepoints (type: int *)
+ Param[2]: length (type: int)
+Function 346: GetCodepoints() (2 input parameters)
+ Name: GetCodepoints
+ Return type: int *
+ Description: Get all codepoints in a string, codepoints count returned by parameters
+ Param[1]: text (type: const char *)
+ Param[2]: count (type: int *)
+Function 347: GetCodepointsCount() (1 input parameters)
+ Name: GetCodepointsCount
+ Return type: int
+ Description: Get total number of characters (codepoints) in a UTF8 encoded string
+ Param[1]: text (type: const char *)
+Function 348: GetNextCodepoint() (2 input parameters)
+ Name: GetNextCodepoint
+ Return type: int
+ Description: Get next codepoint in a UTF8 encoded string; 0x3f('?') is returned on failure
+ Param[1]: text (type: const char *)
+ Param[2]: bytesProcessed (type: int *)
+Function 349: CodepointToUtf8() (2 input parameters)
+ Name: CodepointToUtf8
+ Return type: const char *
+ Description: Encode codepoint into utf8 text (char array length returned as parameter)
+ Param[1]: codepoint (type: int)
+ Param[2]: byteLength (type: int *)
+Function 350: DrawLine3D() (3 input parameters)
+ Name: DrawLine3D
+ Return type: void
+ Description: Draw a line in 3D world space
+ Param[1]: startPos (type: Vector3)
+ Param[2]: endPos (type: Vector3)
+ Param[3]: color (type: Color)
+Function 351: DrawPoint3D() (2 input parameters)
+ Name: DrawPoint3D
+ Return type: void
+ Description: Draw a point in 3D space, actually a small line
+ Param[1]: position (type: Vector3)
+ Param[2]: color (type: Color)
+Function 352: DrawCircle3D() (5 input parameters)
+ Name: DrawCircle3D
+ Return type: void
+ Description: Draw a circle in 3D world space
+ Param[1]: center (type: Vector3)
+ Param[2]: radius (type: float)
+ Param[3]: rotationAxis (type: Vector3)
+ Param[4]: rotationAngle (type: float)
+ Param[5]: color (type: Color)
+Function 353: DrawTriangle3D() (4 input parameters)
+ Name: DrawTriangle3D
+ Return type: void
+ Description: Draw a color-filled triangle (vertex in counter-clockwise order!)
+ Param[1]: v1 (type: Vector3)
+ Param[2]: v2 (type: Vector3)
+ Param[3]: v3 (type: Vector3)
+ Param[4]: color (type: Color)
+Function 354: DrawTriangleStrip3D() (3 input parameters)
+ Name: DrawTriangleStrip3D
+ Return type: void
+ Description: Draw a triangle strip defined by points
+ Param[1]: points (type: Vector3 *)
+ Param[2]: pointsCount (type: int)
+ Param[3]: color (type: Color)
+Function 355: DrawCube() (5 input parameters)
+ Name: DrawCube
+ Return type: void
+ Description: Draw cube
+ Param[1]: position (type: Vector3)
+ Param[2]: width (type: float)
+ Param[3]: height (type: float)
+ Param[4]: length (type: float)
+ Param[5]: color (type: Color)
+Function 356: DrawCubeV() (3 input parameters)
+ Name: DrawCubeV
+ Return type: void
+ Description: Draw cube (Vector version)
+ Param[1]: position (type: Vector3)
+ Param[2]: size (type: Vector3)
+ Param[3]: color (type: Color)
+Function 357: DrawCubeWires() (5 input parameters)
+ Name: DrawCubeWires
+ Return type: void
+ Description: Draw cube wires
+ Param[1]: position (type: Vector3)
+ Param[2]: width (type: float)
+ Param[3]: height (type: float)
+ Param[4]: length (type: float)
+ Param[5]: color (type: Color)
+Function 358: DrawCubeWiresV() (3 input parameters)
+ Name: DrawCubeWiresV
+ Return type: void
+ Description: Draw cube wires (Vector version)
+ Param[1]: position (type: Vector3)
+ Param[2]: size (type: Vector3)
+ Param[3]: color (type: Color)
+Function 359: DrawCubeTexture() (6 input parameters)
+ Name: DrawCubeTexture
+ Return type: void
+ Description: Draw cube textured
+ Param[1]: texture (type: Texture2D)
+ Param[2]: position (type: Vector3)
+ Param[3]: width (type: float)
+ Param[4]: height (type: float)
+ Param[5]: length (type: float)
+ Param[6]: color (type: Color)
+Function 360: DrawSphere() (3 input parameters)
+ Name: DrawSphere
+ Return type: void
+ Description: Draw sphere
+ Param[1]: centerPos (type: Vector3)
+ Param[2]: radius (type: float)
+ Param[3]: color (type: Color)
+Function 361: DrawSphereEx() (5 input parameters)
+ Name: DrawSphereEx
+ Return type: void
+ Description: Draw sphere with extended parameters
+ Param[1]: centerPos (type: Vector3)
+ Param[2]: radius (type: float)
+ Param[3]: rings (type: int)
+ Param[4]: slices (type: int)
+ Param[5]: color (type: Color)
+Function 362: DrawSphereWires() (5 input parameters)
+ Name: DrawSphereWires
+ Return type: void
+ Description: Draw sphere wires
+ Param[1]: centerPos (type: Vector3)
+ Param[2]: radius (type: float)
+ Param[3]: rings (type: int)
+ Param[4]: slices (type: int)
+ Param[5]: color (type: Color)
+Function 363: DrawCylinder() (6 input parameters)
+ Name: DrawCylinder
+ Return type: void
+ Description: Draw a cylinder/cone
+ Param[1]: position (type: Vector3)
+ Param[2]: radiusTop (type: float)
+ Param[3]: radiusBottom (type: float)
+ Param[4]: height (type: float)
+ Param[5]: slices (type: int)
+ Param[6]: color (type: Color)
+Function 364: DrawCylinderWires() (6 input parameters)
+ Name: DrawCylinderWires
+ Return type: void
+ Description: Draw a cylinder/cone wires
+ Param[1]: position (type: Vector3)
+ Param[2]: radiusTop (type: float)
+ Param[3]: radiusBottom (type: float)
+ Param[4]: height (type: float)
+ Param[5]: slices (type: int)
+ Param[6]: color (type: Color)
+Function 365: DrawPlane() (3 input parameters)
+ Name: DrawPlane
+ Return type: void
+ Description: Draw a plane XZ
+ Param[1]: centerPos (type: Vector3)
+ Param[2]: size (type: Vector2)
+ Param[3]: color (type: Color)
+Function 366: DrawRay() (2 input parameters)
+ Name: DrawRay
+ Return type: void
+ Description: Draw a ray line
+ Param[1]: ray (type: Ray)
+ Param[2]: color (type: Color)
+Function 367: DrawGrid() (2 input parameters)
+ Name: DrawGrid
+ Return type: void
+ Description: Draw a grid (centered at (0, 0, 0))
+ Param[1]: slices (type: int)
+ Param[2]: spacing (type: float)
+Function 368: LoadModel() (1 input parameters)
+ Name: LoadModel
+ Return type: Model
+ Description: Load model from files (meshes and materials)
+ Param[1]: fileName (type: const char *)
+Function 369: LoadModelFromMesh() (1 input parameters)
+ Name: LoadModelFromMesh
+ Return type: Model
+ Description: Load model from generated mesh (default material)
+ Param[1]: mesh (type: Mesh)
+Function 370: UnloadModel() (1 input parameters)
+ Name: UnloadModel
+ Return type: void
+ Description: Unload model (including meshes) from memory (RAM and/or VRAM)
+ Param[1]: model (type: Model)
+Function 371: UnloadModelKeepMeshes() (1 input parameters)
+ Name: UnloadModelKeepMeshes
+ Return type: void
+ Description: Unload model (but not meshes) from memory (RAM and/or VRAM)
+ Param[1]: model (type: Model)
+Function 372: UploadMesh() (2 input parameters)
+ Name: UploadMesh
+ Return type: void
+ Description: Upload mesh vertex data in GPU and provide VAO/VBO ids
+ Param[1]: mesh (type: Mesh *)
+ Param[2]: dynamic (type: bool)
+Function 373: UpdateMeshBuffer() (5 input parameters)
+ Name: UpdateMeshBuffer
+ Return type: void
+ Description: Update mesh vertex data in GPU for a specific buffer index
+ Param[1]: mesh (type: Mesh)
+ Param[2]: index (type: int)
+ Param[3]: data (type: void *)
+ Param[4]: dataSize (type: int)
+ Param[5]: offset (type: int)
+Function 374: DrawMesh() (3 input parameters)
+ Name: DrawMesh
+ Return type: void
+ Description: Draw a 3d mesh with material and transform
+ Param[1]: mesh (type: Mesh)
+ Param[2]: material (type: Material)
+ Param[3]: transform (type: Matrix)
+Function 375: DrawMeshInstanced() (4 input parameters)
+ Name: DrawMeshInstanced
+ Return type: void
+ Description: Draw multiple mesh instances with material and different transforms
+ Param[1]: mesh (type: Mesh)
+ Param[2]: material (type: Material)
+ Param[3]: transforms (type: Matrix *)
+ Param[4]: instances (type: int)
+Function 376: UnloadMesh() (1 input parameters)
+ Name: UnloadMesh
+ Return type: void
+ Description: Unload mesh data from CPU and GPU
+ Param[1]: mesh (type: Mesh)
+Function 377: ExportMesh() (2 input parameters)
+ Name: ExportMesh
+ Return type: bool
+ Description: Export mesh data to file, returns true on success
+ Param[1]: mesh (type: Mesh)
+ Param[2]: fileName (type: const char *)
+Function 378: LoadMaterials() (2 input parameters)
+ Name: LoadMaterials
+ Return type: Material *
+ Description: Load materials from model file
+ Param[1]: fileName (type: const char *)
+ Param[2]: materialCount (type: int *)
+Function 379: LoadMaterialDefault() (0 input parameters)
+ Name: LoadMaterialDefault
+ Return type: Material
+ Description: Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)
+ No input parameters
+Function 380: UnloadMaterial() (1 input parameters)
+ Name: UnloadMaterial
+ Return type: void
+ Description: Unload material from GPU memory (VRAM)
+ Param[1]: material (type: Material)
+Function 381: SetMaterialTexture() (3 input parameters)
+ Name: SetMaterialTexture
+ Return type: void
+ Description: Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...)
+ Param[1]: material (type: Material *)
+ Param[2]: mapType (type: int)
+ Param[3]: texture (type: Texture2D)
+Function 382: SetModelMeshMaterial() (3 input parameters)
+ Name: SetModelMeshMaterial
+ Return type: void
+ Description: Set material for a mesh
+ Param[1]: model (type: Model *)
+ Param[2]: meshId (type: int)
+ Param[3]: materialId (type: int)
+Function 383: LoadModelAnimations() (2 input parameters)
+ Name: LoadModelAnimations
+ Return type: ModelAnimation *
+ Description: Load model animations from file
+ Param[1]: fileName (type: const char *)
+ Param[2]: animsCount (type: int *)
+Function 384: UpdateModelAnimation() (3 input parameters)
+ Name: UpdateModelAnimation
+ Return type: void
+ Description: Update model animation pose
+ Param[1]: model (type: Model)
+ Param[2]: anim (type: ModelAnimation)
+ Param[3]: frame (type: int)
+Function 385: UnloadModelAnimation() (1 input parameters)
+ Name: UnloadModelAnimation
+ Return type: void
+ Description: Unload animation data
+ Param[1]: anim (type: ModelAnimation)
+Function 386: UnloadModelAnimations() (2 input parameters)
+ Name: UnloadModelAnimations
+ Return type: void
+ Description: Unload animation array data
+ Param[1]: animations (type: ModelAnimation*)
+ Param[2]: count (type: unsigned int)
+Function 387: IsModelAnimationValid() (2 input parameters)
+ Name: IsModelAnimationValid
+ Return type: bool
+ Description: Check model animation skeleton match
+ Param[1]: model (type: Model)
+ Param[2]: anim (type: ModelAnimation)
+Function 388: GenMeshPoly() (2 input parameters)
+ Name: GenMeshPoly
+ Return type: Mesh
+ Description: Generate polygonal mesh
+ Param[1]: sides (type: int)
+ Param[2]: radius (type: float)
+Function 389: GenMeshPlane() (4 input parameters)
+ Name: GenMeshPlane
+ Return type: Mesh
+ Description: Generate plane mesh (with subdivisions)
+ Param[1]: width (type: float)
+ Param[2]: length (type: float)
+ Param[3]: resX (type: int)
+ Param[4]: resZ (type: int)
+Function 390: GenMeshCube() (3 input parameters)
+ Name: GenMeshCube
+ Return type: Mesh
+ Description: Generate cuboid mesh
+ Param[1]: width (type: float)
+ Param[2]: height (type: float)
+ Param[3]: length (type: float)
+Function 391: GenMeshSphere() (3 input parameters)
+ Name: GenMeshSphere
+ Return type: Mesh
+ Description: Generate sphere mesh (standard sphere)
+ Param[1]: radius (type: float)
+ Param[2]: rings (type: int)
+ Param[3]: slices (type: int)
+Function 392: GenMeshHemiSphere() (3 input parameters)
+ Name: GenMeshHemiSphere
+ Return type: Mesh
+ Description: Generate half-sphere mesh (no bottom cap)
+ Param[1]: radius (type: float)
+ Param[2]: rings (type: int)
+ Param[3]: slices (type: int)
+Function 393: GenMeshCylinder() (3 input parameters)
+ Name: GenMeshCylinder
+ Return type: Mesh
+ Description: Generate cylinder mesh
+ Param[1]: radius (type: float)
+ Param[2]: height (type: float)
+ Param[3]: slices (type: int)
+Function 394: GenMeshTorus() (4 input parameters)
+ Name: GenMeshTorus
+ Return type: Mesh
+ Description: Generate torus mesh
+ Param[1]: radius (type: float)
+ Param[2]: size (type: float)
+ Param[3]: radSeg (type: int)
+ Param[4]: sides (type: int)
+Function 395: GenMeshKnot() (4 input parameters)
+ Name: GenMeshKnot
+ Return type: Mesh
+ Description: Generate trefoil knot mesh
+ Param[1]: radius (type: float)
+ Param[2]: size (type: float)
+ Param[3]: radSeg (type: int)
+ Param[4]: sides (type: int)
+Function 396: GenMeshHeightmap() (2 input parameters)
+ Name: GenMeshHeightmap
+ Return type: Mesh
+ Description: Generate heightmap mesh from image data
+ Param[1]: heightmap (type: Image)
+ Param[2]: size (type: Vector3)
+Function 397: GenMeshCubicmap() (2 input parameters)
+ Name: GenMeshCubicmap
+ Return type: Mesh
+ Description: Generate cubes-based map mesh from image data
+ Param[1]: cubicmap (type: Image)
+ Param[2]: cubeSize (type: Vector3)
+Function 398: GetMeshBoundingBox() (1 input parameters)
+ Name: GetMeshBoundingBox
+ Return type: BoundingBox
+ Description: Compute mesh bounding box limits
+ Param[1]: mesh (type: Mesh)
+Function 399: MeshTangents() (1 input parameters)
+ Name: MeshTangents
+ Return type: void
+ Description: Compute mesh tangents
+ Param[1]: mesh (type: Mesh *)
+Function 400: MeshBinormals() (1 input parameters)
+ Name: MeshBinormals
+ Return type: void
+ Description: Compute mesh binormals
+ Param[1]: mesh (type: Mesh *)
+Function 401: DrawModel() (4 input parameters)
+ Name: DrawModel
+ Return type: void
+ Description: Draw a model (with texture if set)
+ Param[1]: model (type: Model)
+ Param[2]: position (type: Vector3)
+ Param[3]: scale (type: float)
+ Param[4]: tint (type: Color)
+Function 402: DrawModelEx() (6 input parameters)
+ Name: DrawModelEx
+ Return type: void
+ Description: Draw a model with extended parameters
+ Param[1]: model (type: Model)
+ Param[2]: position (type: Vector3)
+ Param[3]: rotationAxis (type: Vector3)
+ Param[4]: rotationAngle (type: float)
+ Param[5]: scale (type: Vector3)
+ Param[6]: tint (type: Color)
+Function 403: DrawModelWires() (4 input parameters)
+ Name: DrawModelWires
+ Return type: void
+ Description: Draw a model wires (with texture if set)
+ Param[1]: model (type: Model)
+ Param[2]: position (type: Vector3)
+ Param[3]: scale (type: float)
+ Param[4]: tint (type: Color)
+Function 404: DrawModelWiresEx() (6 input parameters)
+ Name: DrawModelWiresEx
+ Return type: void
+ Description: Draw a model wires (with texture if set) with extended parameters
+ Param[1]: model (type: Model)
+ Param[2]: position (type: Vector3)
+ Param[3]: rotationAxis (type: Vector3)
+ Param[4]: rotationAngle (type: float)
+ Param[5]: scale (type: Vector3)
+ Param[6]: tint (type: Color)
+Function 405: DrawBoundingBox() (2 input parameters)
+ Name: DrawBoundingBox
+ Return type: void
+ Description: Draw bounding box (wires)
+ Param[1]: box (type: BoundingBox)
+ Param[2]: color (type: Color)
+Function 406: DrawBillboard() (5 input parameters)
+ Name: DrawBillboard
+ Return type: void
+ Description: Draw a billboard texture
+ Param[1]: camera (type: Camera)
+ Param[2]: texture (type: Texture2D)
+ Param[3]: position (type: Vector3)
+ Param[4]: size (type: float)
+ Param[5]: tint (type: Color)
+Function 407: DrawBillboardRec() (6 input parameters)
+ Name: DrawBillboardRec
+ Return type: void
+ Description: Draw a billboard texture defined by source
+ Param[1]: camera (type: Camera)
+ Param[2]: texture (type: Texture2D)
+ Param[3]: source (type: Rectangle)
+ Param[4]: position (type: Vector3)
+ Param[5]: size (type: Vector2)
+ Param[6]: tint (type: Color)
+Function 408: DrawBillboardPro() (8 input parameters)
+ Name: DrawBillboardPro
+ Return type: void
+ Description: Draw a billboard texture defined by source and rotation
+ Param[1]: camera (type: Camera)
+ Param[2]: texture (type: Texture2D)
+ Param[3]: source (type: Rectangle)
+ Param[4]: position (type: Vector3)
+ Param[5]: size (type: Vector2)
+ Param[6]: origin (type: Vector2)
+ Param[7]: rotation (type: float)
+ Param[8]: tint (type: Color)
+Function 409: CheckCollisionSpheres() (4 input parameters)
+ Name: CheckCollisionSpheres
+ Return type: bool
+ Description: Check collision between two spheres
+ Param[1]: center1 (type: Vector3)
+ Param[2]: radius1 (type: float)
+ Param[3]: center2 (type: Vector3)
+ Param[4]: radius2 (type: float)
+Function 410: CheckCollisionBoxes() (2 input parameters)
+ Name: CheckCollisionBoxes
+ Return type: bool
+ Description: Check collision between two bounding boxes
+ Param[1]: box1 (type: BoundingBox)
+ Param[2]: box2 (type: BoundingBox)
+Function 411: CheckCollisionBoxSphere() (3 input parameters)
+ Name: CheckCollisionBoxSphere
+ Return type: bool
+ Description: Check collision between box and sphere
+ Param[1]: box (type: BoundingBox)
+ Param[2]: center (type: Vector3)
+ Param[3]: radius (type: float)
+Function 412: GetRayCollisionSphere() (3 input parameters)
+ Name: GetRayCollisionSphere
+ Return type: RayCollision
+ Description: Get collision info between ray and sphere
+ Param[1]: ray (type: Ray)
+ Param[2]: center (type: Vector3)
+ Param[3]: radius (type: float)
+Function 413: GetRayCollisionBox() (2 input parameters)
+ Name: GetRayCollisionBox
+ Return type: RayCollision
+ Description: Get collision info between ray and box
+ Param[1]: ray (type: Ray)
+ Param[2]: box (type: BoundingBox)
+Function 414: GetRayCollisionModel() (2 input parameters)
+ Name: GetRayCollisionModel
+ Return type: RayCollision
+ Description: Get collision info between ray and model
+ Param[1]: ray (type: Ray)
+ Param[2]: model (type: Model)
+Function 415: GetRayCollisionMesh() (3 input parameters)
+ Name: GetRayCollisionMesh
+ Return type: RayCollision
+ Description: Get collision info between ray and mesh
+ Param[1]: ray (type: Ray)
+ Param[2]: mesh (type: Mesh)
+ Param[3]: transform (type: Matrix)
+Function 416: GetRayCollisionTriangle() (4 input parameters)
+ Name: GetRayCollisionTriangle
+ Return type: RayCollision
+ Description: Get collision info between ray and triangle
+ Param[1]: ray (type: Ray)
+ Param[2]: p1 (type: Vector3)
+ Param[3]: p2 (type: Vector3)
+ Param[4]: p3 (type: Vector3)
+Function 417: GetRayCollisionQuad() (5 input parameters)
+ Name: GetRayCollisionQuad
+ Return type: RayCollision
+ Description: Get collision info between ray and quad
+ Param[1]: ray (type: Ray)
+ Param[2]: p1 (type: Vector3)
+ Param[3]: p2 (type: Vector3)
+ Param[4]: p3 (type: Vector3)
+ Param[5]: p4 (type: Vector3)
+Function 418: InitAudioDevice() (0 input parameters)
+ Name: InitAudioDevice
+ Return type: void
+ Description: Initialize audio device and context
+ No input parameters
+Function 419: CloseAudioDevice() (0 input parameters)
+ Name: CloseAudioDevice
+ Return type: void
+ Description: Close the audio device and context
+ No input parameters
+Function 420: IsAudioDeviceReady() (0 input parameters)
+ Name: IsAudioDeviceReady
+ Return type: bool
+ Description: Check if audio device has been initialized successfully
+ No input parameters
+Function 421: SetMasterVolume() (1 input parameters)
+ Name: SetMasterVolume
+ Return type: void
+ Description: Set master volume (listener)
+ Param[1]: volume (type: float)
+Function 422: LoadWave() (1 input parameters)
+ Name: LoadWave
+ Return type: Wave
+ Description: Load wave data from file
+ Param[1]: fileName (type: const char *)
+Function 423: LoadWaveFromMemory() (3 input parameters)
+ Name: LoadWaveFromMemory
+ Return type: Wave
+ Description: Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
+ Param[1]: fileType (type: const char *)
+ Param[2]: fileData (type: const unsigned char *)
+ Param[3]: dataSize (type: int)
+Function 424: LoadSound() (1 input parameters)
+ Name: LoadSound
+ Return type: Sound
+ Description: Load sound from file
+ Param[1]: fileName (type: const char *)
+Function 425: LoadSoundFromWave() (1 input parameters)
+ Name: LoadSoundFromWave
+ Return type: Sound
+ Description: Load sound from wave data
+ Param[1]: wave (type: Wave)
+Function 426: UpdateSound() (3 input parameters)
+ Name: UpdateSound
+ Return type: void
+ Description: Update sound buffer with new data
+ Param[1]: sound (type: Sound)
+ Param[2]: data (type: const void *)
+ Param[3]: samplesCount (type: int)
+Function 427: UnloadWave() (1 input parameters)
+ Name: UnloadWave
+ Return type: void
+ Description: Unload wave data
+ Param[1]: wave (type: Wave)
+Function 428: UnloadSound() (1 input parameters)
+ Name: UnloadSound
+ Return type: void
+ Description: Unload sound
+ Param[1]: sound (type: Sound)
+Function 429: ExportWave() (2 input parameters)
+ Name: ExportWave
+ Return type: bool
+ Description: Export wave data to file, returns true on success
+ Param[1]: wave (type: Wave)
+ Param[2]: fileName (type: const char *)
+Function 430: ExportWaveAsCode() (2 input parameters)
+ Name: ExportWaveAsCode
+ Return type: bool
+ Description: Export wave sample data to code (.h), returns true on success
+ Param[1]: wave (type: Wave)
+ Param[2]: fileName (type: const char *)
+Function 431: PlaySound() (1 input parameters)
+ Name: PlaySound
+ Return type: void
+ Description: Play a sound
+ Param[1]: sound (type: Sound)
+Function 432: StopSound() (1 input parameters)
+ Name: StopSound
+ Return type: void
+ Description: Stop playing a sound
+ Param[1]: sound (type: Sound)
+Function 433: PauseSound() (1 input parameters)
+ Name: PauseSound
+ Return type: void
+ Description: Pause a sound
+ Param[1]: sound (type: Sound)
+Function 434: ResumeSound() (1 input parameters)
+ Name: ResumeSound
+ Return type: void
+ Description: Resume a paused sound
+ Param[1]: sound (type: Sound)
+Function 435: PlaySoundMulti() (1 input parameters)
+ Name: PlaySoundMulti
+ Return type: void
+ Description: Play a sound (using multichannel buffer pool)
+ Param[1]: sound (type: Sound)
+Function 436: StopSoundMulti() (0 input parameters)
+ Name: StopSoundMulti
+ Return type: void
+ Description: Stop any sound playing (using multichannel buffer pool)
+ No input parameters
+Function 437: GetSoundsPlaying() (0 input parameters)
+ Name: GetSoundsPlaying
+ Return type: int
+ Description: Get number of sounds playing in the multichannel
+ No input parameters
+Function 438: IsSoundPlaying() (1 input parameters)
+ Name: IsSoundPlaying
+ Return type: bool
+ Description: Check if a sound is currently playing
+ Param[1]: sound (type: Sound)
+Function 439: SetSoundVolume() (2 input parameters)
+ Name: SetSoundVolume
+ Return type: void
+ Description: Set volume for a sound (1.0 is max level)
+ Param[1]: sound (type: Sound)
+ Param[2]: volume (type: float)
+Function 440: SetSoundPitch() (2 input parameters)
+ Name: SetSoundPitch
+ Return type: void
+ Description: Set pitch for a sound (1.0 is base level)
+ Param[1]: sound (type: Sound)
+ Param[2]: pitch (type: float)
+Function 441: WaveFormat() (4 input parameters)
+ Name: WaveFormat
+ Return type: void
+ Description: Convert wave data to desired format
+ Param[1]: wave (type: Wave *)
+ Param[2]: sampleRate (type: int)
+ Param[3]: sampleSize (type: int)
+ Param[4]: channels (type: int)
+Function 442: WaveCopy() (1 input parameters)
+ Name: WaveCopy
+ Return type: Wave
+ Description: Copy a wave to a new wave
+ Param[1]: wave (type: Wave)
+Function 443: WaveCrop() (3 input parameters)
+ Name: WaveCrop
+ Return type: void
+ Description: Crop a wave to defined samples range
+ Param[1]: wave (type: Wave *)
+ Param[2]: initSample (type: int)
+ Param[3]: finalSample (type: int)
+Function 444: LoadWaveSamples() (1 input parameters)
+ Name: LoadWaveSamples
+ Return type: float *
+ Description: Load samples data from wave as a floats array
+ Param[1]: wave (type: Wave)
+Function 445: UnloadWaveSamples() (1 input parameters)
+ Name: UnloadWaveSamples
+ Return type: void
+ Description: Unload samples data loaded with LoadWaveSamples()
+ Param[1]: samples (type: float *)
+Function 446: LoadMusicStream() (1 input parameters)
+ Name: LoadMusicStream
+ Return type: Music
+ Description: Load music stream from file
+ Param[1]: fileName (type: const char *)
+Function 447: LoadMusicStreamFromMemory() (3 input parameters)
+ Name: LoadMusicStreamFromMemory
+ Return type: Music
+ Description: Load music stream from data
+ Param[1]: fileType (type: const char *)
+ Param[2]: data (type: unsigned char *)
+ Param[3]: dataSize (type: int)
+Function 448: UnloadMusicStream() (1 input parameters)
+ Name: UnloadMusicStream
+ Return type: void
+ Description: Unload music stream
+ Param[1]: music (type: Music)
+Function 449: PlayMusicStream() (1 input parameters)
+ Name: PlayMusicStream
+ Return type: void
+ Description: Start music playing
+ Param[1]: music (type: Music)
+Function 450: IsMusicStreamPlaying() (1 input parameters)
+ Name: IsMusicStreamPlaying
+ Return type: bool
+ Description: Check if music is playing
+ Param[1]: music (type: Music)
+Function 451: UpdateMusicStream() (1 input parameters)
+ Name: UpdateMusicStream
+ Return type: void
+ Description: Updates buffers for music streaming
+ Param[1]: music (type: Music)
+Function 452: StopMusicStream() (1 input parameters)
+ Name: StopMusicStream
+ Return type: void
+ Description: Stop music playing
+ Param[1]: music (type: Music)
+Function 453: PauseMusicStream() (1 input parameters)
+ Name: PauseMusicStream
+ Return type: void
+ Description: Pause music playing
+ Param[1]: music (type: Music)
+Function 454: ResumeMusicStream() (1 input parameters)
+ Name: ResumeMusicStream
+ Return type: void
+ Description: Resume playing paused music
+ Param[1]: music (type: Music)
+Function 455: SetMusicVolume() (2 input parameters)
+ Name: SetMusicVolume
+ Return type: void
+ Description: Set volume for music (1.0 is max level)
+ Param[1]: music (type: Music)
+ Param[2]: volume (type: float)
+Function 456: SetMusicPitch() (2 input parameters)
+ Name: SetMusicPitch
+ Return type: void
+ Description: Set pitch for a music (1.0 is base level)
+ Param[1]: music (type: Music)
+ Param[2]: pitch (type: float)
+Function 457: GetMusicTimeLength() (1 input parameters)
+ Name: GetMusicTimeLength
+ Return type: float
+ Description: Get music time length (in seconds)
+ Param[1]: music (type: Music)
+Function 458: GetMusicTimePlayed() (1 input parameters)
+ Name: GetMusicTimePlayed
+ Return type: float
+ Description: Get current music time played (in seconds)
+ Param[1]: music (type: Music)
+Function 459: LoadAudioStream() (3 input parameters)
+ Name: LoadAudioStream
+ Return type: AudioStream
+ Description: Load audio stream (to stream raw audio pcm data)
+ Param[1]: sampleRate (type: unsigned int)
+ Param[2]: sampleSize (type: unsigned int)
+ Param[3]: channels (type: unsigned int)
+Function 460: UnloadAudioStream() (1 input parameters)
+ Name: UnloadAudioStream
+ Return type: void
+ Description: Unload audio stream and free memory
+ Param[1]: stream (type: AudioStream)
+Function 461: UpdateAudioStream() (3 input parameters)
+ Name: UpdateAudioStream
+ Return type: void
+ Description: Update audio stream buffers with data
+ Param[1]: stream (type: AudioStream)
+ Param[2]: data (type: const void *)
+ Param[3]: samplesCount (type: int)
+Function 462: IsAudioStreamProcessed() (1 input parameters)
+ Name: IsAudioStreamProcessed
+ Return type: bool
+ Description: Check if any audio stream buffers requires refill
+ Param[1]: stream (type: AudioStream)
+Function 463: PlayAudioStream() (1 input parameters)
+ Name: PlayAudioStream
+ Return type: void
+ Description: Play audio stream
+ Param[1]: stream (type: AudioStream)
+Function 464: PauseAudioStream() (1 input parameters)
+ Name: PauseAudioStream
+ Return type: void
+ Description: Pause audio stream
+ Param[1]: stream (type: AudioStream)
+Function 465: ResumeAudioStream() (1 input parameters)
+ Name: ResumeAudioStream
+ Return type: void
+ Description: Resume audio stream
+ Param[1]: stream (type: AudioStream)
+Function 466: IsAudioStreamPlaying() (1 input parameters)
+ Name: IsAudioStreamPlaying
+ Return type: bool
+ Description: Check if audio stream is playing
+ Param[1]: stream (type: AudioStream)
+Function 467: StopAudioStream() (1 input parameters)
+ Name: StopAudioStream
+ Return type: void
+ Description: Stop audio stream
+ Param[1]: stream (type: AudioStream)
+Function 468: SetAudioStreamVolume() (2 input parameters)
+ Name: SetAudioStreamVolume
+ Return type: void
+ Description: Set volume for audio stream (1.0 is max level)
+ Param[1]: stream (type: AudioStream)
+ Param[2]: volume (type: float)
+Function 469: SetAudioStreamPitch() (2 input parameters)
+ Name: SetAudioStreamPitch
+ Return type: void
+ Description: Set pitch for audio stream (1.0 is base level)
+ Param[1]: stream (type: AudioStream)
+ Param[2]: pitch (type: float)
+Function 470: SetAudioStreamBufferSizeDefault() (1 input parameters)
+ Name: SetAudioStreamBufferSizeDefault
+ Return type: void
+ Description: Default size for new audio streams
+ Param[1]: size (type: int)
diff --git a/parser/raylib_api.xml b/parser/raylib_api.xml
new file mode 100644
index 000000000..ba4629ae7
--- /dev/null
+++ b/parser/raylib_api.xml
@@ -0,0 +1,2509 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/parser/raylib_parser.c b/parser/raylib_parser.c
index f2f3109fc..e38dde679 100644
--- a/parser/raylib_parser.c
+++ b/parser/raylib_parser.c
@@ -1,35 +1,35 @@
/**********************************************************************************************
- raylib parser - raylib header parser
+ raylib API parser
+
+ This parser scans raylib.h to get API information about structs, enums and functions.
+ All data is divided into pieces, usually as strings. The following types are used for data:
- This parser scans raylib.h to get information about structs, enums and functions.
- All data is separated into parts, usually as strings. The following types are used for data:
-
- struct FunctionInfo
- struct StructInfo
- struct EnumInfo
- CONSTRAINTS:
-
- This parser is specifically designed to work with raylib.h, so, it has some constraints:
-
+ CONSTRAINTS:
+
+ This parser is specifically designed to work with raylib.h, so, it has some constraints:
+
- Functions are expected as a single line with the following structure:
( , );
Be careful with functions broken into several lines, it breaks the process!
-
+
- Structures are expected as several lines with the following form:
-
+
typedef struct {
;
;
;
} ;
-
+
- Enums are expected as several lines with the following form:
-
+
typedef enum {
= ,
@@ -37,14 +37,16 @@
,
} ;
-
- NOTE: Multiple options are supported:
+
+ NOTE: Multiple options are supported for enums:
- If value is not provided, ( + 1) is assigned
- Value description can be provided or not
-
- This parser could work with other C header files if mentioned constraints are followed.
-
- This parser does not require library, all data is parsed directly from char buffers.
+
+ OTHER NOTES:
+
+ - This parser could work with other C header files if mentioned constraints are followed.
+
+ - This parser does not require library, all data is parsed directly from char buffers.
LICENSE: zlib/libpng
@@ -55,6 +57,8 @@
**********************************************************************************************/
+#define _CRT_SECURE_NO_WARNINGS
+
#include // Required for: malloc(), calloc(), realloc(), free(), atoi(), strtol()
#include // Required for: printf(), fopen(), fseek(), ftell(), fread(), fclose()
#include // Required for: bool
@@ -66,8 +70,6 @@
#define MAX_LINE_LENGTH 512 // Maximum length of one line (including comments)
#define MAX_STRUCT_LINE_LENGTH 2048 // Maximum length of one struct (multiple lines)
-enum OutputFormat { PlainText, JSON }; // Which format the header information should be in
-
//----------------------------------------------------------------------------------
// Types and Structures Definition
//----------------------------------------------------------------------------------
@@ -79,6 +81,7 @@ typedef struct FunctionInfo {
int paramCount; // Number of function parameters
char paramType[12][32]; // Parameters type (max: 12 parameters)
char paramName[12][32]; // Parameters name (max: 12 parameters)
+ char paramDesc[12][8]; // Parameters description (max: 12 parameters)
} FunctionInfo;
// Struct info data
@@ -101,59 +104,70 @@ typedef struct EnumInfo {
char valueDesc[128][64]; // Value description (max: 128 values)
} EnumInfo;
+// Output format for parsed data
+typedef enum { DEFAULT = 0, JSON, XML } OutputFormat;
+
+//----------------------------------------------------------------------------------
+// Global Variables Definition
+//----------------------------------------------------------------------------------
+static int funcCount = 0;
+static int structCount = 0;
+static int enumCount = 0;
+static FunctionInfo *funcs = NULL;
+static StructInfo *structs = NULL;
+static EnumInfo *enums = NULL;
+
+// Command line variables
+static char inFileName[512] = { 0 }; // Input file name (required in case of provided through CLI)
+static char outFileName[512] = { 0 }; // Output file name (required for file save/export)
+static int outputFormat = DEFAULT;
+
//----------------------------------------------------------------------------------
// Module Functions Declaration
//----------------------------------------------------------------------------------
-char *LoadFileText(const char *fileName, int *length);
-char **GetTextLines(const char *buffer, int length, int *linesCount);
-void GetDataTypeAndName(const char *typeName, int typeNameLen, char *type, char *name);
-bool IsTextEqual(const char *text1, const char *text2, unsigned int count);
-void MemoryCopy(void *dest, const void *src, unsigned int count);
-char* CharReplace(char* text, char search, char replace);
+static void ShowCommandLineInfo(void); // Show command line usage info
+static void ProcessCommandLine(int argc, char *argv[]); // Process command line input
-// Main entry point
+static char *LoadFileText(const char *fileName, int *length);
+static char **GetTextLines(const char *buffer, int length, int *linesCount);
+static void GetDataTypeAndName(const char *typeName, int typeNameLen, char *type, char *name);
+static unsigned int TextLength(const char *text); // Get text length in bytes, check for \0 character
+static bool IsTextEqual(const char *text1, const char *text2, unsigned int count);
+static void MemoryCopy(void *dest, const void *src, unsigned int count);
+static char* CharReplace(char* text, char search, char replace);
+
+static void ExportParsedData(const char *fileName, int format); // Export parsed data in desired format
+
+//------------------------------------------------------------------------------------
+// Program main entry point
+//------------------------------------------------------------------------------------
int main(int argc, char* argv[])
{
- // Help
- if (argv[1] != NULL && IsTextEqual(argv[1], "--help", 6)) {
- printf("Usage:\n");
- printf(" raylib_parser [--json]\n");
- return 0;
- }
+ if (argc > 1) ProcessCommandLine(argc, argv);
- // Allow changing the output format.
- int outputFormat = 0;
- if (argv[1] != NULL && IsTextEqual(argv[1], "--json", 6)) {
- outputFormat = JSON;
- }
+ if (inFileName[0] == '\0') MemoryCopy(inFileName, "../src/raylib.h\0", 16);
int length = 0;
- char *buffer = LoadFileText("../src/raylib.h", &length);
-
+ char *buffer = LoadFileText(inFileName, &length);
+
// Preprocess buffer to get separate lines
// NOTE: GetTextLines() also removes leading spaces/tabs
int linesCount = 0;
char **lines = GetTextLines(buffer, length, &linesCount);
-
- // Print buffer lines
- //for (int i = 0; i < linesCount; i++) printf("_%s_\n", lines[i]);
-
+
// Function lines pointers, selected from buffer "lines"
- int funcCount = 0;
char **funcLines = (char **)malloc(MAX_FUNCS_TO_PARSE*sizeof(char *));
// Structs data (multiple lines), selected from "buffer"
- int structCount = 0;
char **structLines = (char **)malloc(MAX_STRUCTS_TO_PARSE*sizeof(char *));
for (int i = 0; i < MAX_STRUCTS_TO_PARSE; i++) structLines[i] = (char *)calloc(MAX_STRUCT_LINE_LENGTH, sizeof(char));
-
+
// Enums lines pointers, selected from buffer "lines"
- int enumCount = 0;
int *enumLines = (int *)malloc(MAX_ENUMS_TO_PARSE*sizeof(int));
-
+
// Prepare required lines for parsing
//--------------------------------------------------------------------------------------------------
-
+
// Read function lines
for (int i = 0; i < linesCount; i++)
{
@@ -165,9 +179,6 @@ int main(int argc, char* argv[])
funcCount++;
}
}
-
- // Print function lines
- //for (int i = 0; i < funcCount; i++) printf("%s\n", funcLines[i]);
// Read structs data (multiple lines, read directly from buffer)
// TODO: Parse structs data from "lines" instead of "buffer" -> Easier to get struct definition
@@ -179,9 +190,9 @@ int main(int argc, char* argv[])
{
int j = 0;
bool validStruct = false;
-
- // WARNING: Typedefs between types: typedef Vector4 Quaternion;
-
+
+ // WARNING: Typedefs between types: typedef Vector4 Quaternion;
+
for (int c = 0; c < 128; c++)
{
if (buffer[i + c] == '{')
@@ -191,13 +202,13 @@ int main(int argc, char* argv[])
}
else if (buffer[i + c] == ';')
{
- // Not valid struct:
+ // Not valid struct:
// i.e typedef struct rAudioBuffer rAudioBuffer; -> Typedef and forward declaration
i += c;
break;
}
}
-
+
if (validStruct)
{
while (buffer[i + j] != '}')
@@ -223,7 +234,7 @@ int main(int argc, char* argv[])
}
}
}
-
+
// Read enum lines
for (int i = 0; i < linesCount; i++)
{
@@ -236,17 +247,17 @@ int main(int argc, char* argv[])
enumCount++;
}
}
-
+
// At this point we have all raylib structs, enums, functions lines data to start parsing
-
+
free(buffer); // Unload text buffer
// Parsing raylib data
//--------------------------------------------------------------------------------------------------
// Structs info data
- StructInfo *structs = (StructInfo *)calloc(MAX_STRUCTS_TO_PARSE, sizeof(StructInfo));
-
+ structs = (StructInfo *)calloc(MAX_STRUCTS_TO_PARSE, sizeof(StructInfo));
+
for (int i = 0; i < structCount; i++)
{
int structLineOffset = 0;
@@ -254,52 +265,52 @@ int main(int argc, char* argv[])
// Get struct name: typedef struct name {
for (int c = 15; c < 64 + 15; c++)
{
- if (structLines[i][c] == '{')
+ if (structLines[i][c] == '{')
{
structLineOffset = c + 2;
-
+
MemoryCopy(structs[i].name, &structLines[i][15], c - 15 - 1);
break;
}
}
-
+
// Get struct fields and count them -> fields finish with ;
int j = 0;
while (structLines[i][structLineOffset + j] != '}')
{
// WARNING: Some structs have empty spaces and comments -> OK, processed
-
+
int fieldStart = 0;
if ((structLines[i][structLineOffset + j] != ' ') && (structLines[i][structLineOffset + j] != '\n')) fieldStart = structLineOffset + j;
-
+
if (fieldStart != 0)
{
// Scan one field line
int c = 0;
int fieldEndPos = 0;
char fieldLine[256] = { 0 };
-
+
while (structLines[i][structLineOffset + j] != '\n')
{
if (structLines[i][structLineOffset + j] == ';') fieldEndPos = c;
fieldLine[c] = structLines[i][structLineOffset + j];
c++; j++;
}
-
+
if (fieldLine[0] != '/') // Field line is not a comment
{
//printf("Struct field: %s_\n", fieldLine); // OK!
-
+
// Get struct field type and name
GetDataTypeAndName(fieldLine, fieldEndPos, structs[i].fieldType[structs[i].fieldCount], structs[i].fieldName[structs[i].fieldCount]);
-
+
// Get the field description
// We start skipping spaces in front of description comment
int descStart = fieldEndPos;
while ((fieldLine[descStart] != '/') && (fieldLine[descStart] != '\0')) descStart++;
-
+
int k = 0;
- while ((fieldLine[descStart + k] != '\0') && (fieldLine[descStart + k] != '\n'))
+ while ((fieldLine[descStart + k] != '\0') && (fieldLine[descStart + k] != '\n'))
{
structs[i].fieldDesc[structs[i].fieldCount][k] = fieldLine[descStart + k];
k++;
@@ -313,17 +324,17 @@ int main(int argc, char* argv[])
}
}
-
+
for (int i = 0; i < MAX_STRUCTS_TO_PARSE; i++) free(structLines[i]);
free(structLines);
-
+
// Enum info data
- EnumInfo *enums = (EnumInfo *)calloc(MAX_ENUMS_TO_PARSE, sizeof(EnumInfo));
-
+ enums = (EnumInfo *)calloc(MAX_ENUMS_TO_PARSE, sizeof(EnumInfo));
+
for (int i = 0; i < enumCount; i++)
{
// TODO: Get enum description from lines[enumLines[i] - 1]
-
+
for (int j = 1; j < 256; j++) // Maximum number of lines following enum first line
{
char *linePtr = lines[enumLines[i] + j];
@@ -336,20 +347,20 @@ int main(int argc, char* argv[])
//ENUM_VALUE_NAME = 99
//ENUM_VALUE_NAME = 99,
//ENUM_VALUE_NAME = 0x00000040, // Value description
-
+
// We start reading the value name
int c = 0;
- while ((linePtr[c] != ',') &&
- (linePtr[c] != ' ') &&
+ while ((linePtr[c] != ',') &&
+ (linePtr[c] != ' ') &&
(linePtr[c] != '=') &&
(linePtr[c] != '\0')) { enums[i].valueName[enums[i].valueCount][c] = linePtr[c]; c++; }
- // After the name we can have:
+ // After the name we can have:
// '=' -> value is provided
// ',' -> value is equal to previous + 1, there could be a description if not '\0'
// ' ' -> value is equal to previous + 1, there could be a description if not '\0'
// '\0' -> value is equal to previous + 1
-
+
// Let's start checking if the line is not finished
if ((linePtr[c] != ',') && (linePtr[c] != '\0'))
{
@@ -357,7 +368,7 @@ int main(int argc, char* argv[])
// '=' -> value is provided
// ' ' -> value is equal to previous + 1, there could be a description if not '\0'
bool foundValue = false;
- while (linePtr[c] != '\0')
+ while (linePtr[c] != '\0')
{
if (linePtr[c] == '=') { foundValue = true; break; }
c++;
@@ -367,64 +378,64 @@ int main(int argc, char* argv[])
{
if (linePtr[c + 1] == ' ') c += 2;
else c++;
-
+
// Parse integer value
int n = 0;
char integer[16] = { 0 };
-
- while ((linePtr[c] != ',') && (linePtr[c] != ' ') && (linePtr[c] != '\0'))
+
+ while ((linePtr[c] != ',') && (linePtr[c] != ' ') && (linePtr[c] != '\0'))
{
integer[n] = linePtr[c];
c++; n++;
}
-
+
if (integer[1] == 'x') enums[i].valueInteger[enums[i].valueCount] = (int)strtol(integer, NULL, 16);
else enums[i].valueInteger[enums[i].valueCount] = atoi(integer);
}
else enums[i].valueInteger[enums[i].valueCount] = (enums[i].valueInteger[enums[i].valueCount - 1] + 1);
-
+
// TODO: Parse value description if any
}
else enums[i].valueInteger[enums[i].valueCount] = (enums[i].valueInteger[enums[i].valueCount - 1] + 1);
enums[i].valueCount++;
}
- else if (linePtr[0] == '}')
+ else if (linePtr[0] == '}')
{
// Get enum name from typedef
int c = 0;
while (linePtr[2 + c] != ';') { enums[i].name[c] = linePtr[2 + c]; c++; }
-
+
break; // Enum ended, break for() loop
}
}
}
-
+
// Functions info data
- FunctionInfo *funcs = (FunctionInfo *)calloc(MAX_FUNCS_TO_PARSE, sizeof(FunctionInfo));
-
+ funcs = (FunctionInfo *)calloc(MAX_FUNCS_TO_PARSE, sizeof(FunctionInfo));
+
for (int i = 0; i < funcCount; i++)
{
int funcParamsStart = 0;
int funcEnd = 0;
-
+
// Get return type and function name from func line
for (int c = 0; (c < MAX_LINE_LENGTH) && (funcLines[i][c] != '\n'); c++)
{
if (funcLines[i][c] == '(') // Starts function parameters
{
funcParamsStart = c + 1;
-
+
// At this point we have function return type and function name
char funcRetTypeName[128] = { 0 };
int funcRetTypeNameLen = c - 6; // Substract "RLAPI "
MemoryCopy(funcRetTypeName, &funcLines[i][6], funcRetTypeNameLen);
-
+
GetDataTypeAndName(funcRetTypeName, funcRetTypeNameLen, funcs[i].retType, funcs[i].name);
break;
}
}
-
+
// Get parameters from func line
for (int c = funcParamsStart; c < MAX_LINE_LENGTH; c++)
{
@@ -434,9 +445,9 @@ int main(int argc, char* argv[])
char funcParamTypeName[128] = { 0 };
int funcParamTypeNameLen = c - funcParamsStart;
MemoryCopy(funcParamTypeName, &funcLines[i][funcParamsStart], funcParamTypeNameLen);
-
+
GetDataTypeAndName(funcParamTypeName, funcParamTypeNameLen, funcs[i].paramType[funcs[i].paramCount], funcs[i].paramName[funcs[i].paramCount]);
-
+
funcParamsStart = c + 1;
if (funcLines[i][c + 1] == ' ') funcParamsStart += 1;
funcs[i].paramCount++; // Move to next parameter
@@ -444,170 +455,54 @@ int main(int argc, char* argv[])
else if (funcLines[i][c] == ')')
{
funcEnd = c + 2;
-
+
// Check if previous word is void
if ((funcLines[i][c - 4] == 'v') && (funcLines[i][c - 3] == 'o') && (funcLines[i][c - 2] == 'i') && (funcLines[i][c - 1] == 'd')) break;
-
+
// Get parameter type + name, extract info
char funcParamTypeName[128] = { 0 };
int funcParamTypeNameLen = c - funcParamsStart;
MemoryCopy(funcParamTypeName, &funcLines[i][funcParamsStart], funcParamTypeNameLen);
-
+
GetDataTypeAndName(funcParamTypeName, funcParamTypeNameLen, funcs[i].paramType[funcs[i].paramCount], funcs[i].paramName[funcs[i].paramCount]);
funcs[i].paramCount++; // Move to next parameter
break;
}
}
-
+
// Get function description
for (int c = funcEnd; c < MAX_LINE_LENGTH; c++)
{
- if (funcLines[i][c] == '/')
+ if (funcLines[i][c] == '/')
{
MemoryCopy(funcs[i].desc, &funcLines[i][c], 127); // WARNING: Size could be too long for funcLines[i][c]?
break;
}
}
}
-
- for (int i = 0; i < linesCount; i++) free(lines[i]);
+
+ //for (int i = 0; i < linesCount; i++) free(lines[i]);
free(lines);
free(funcLines);
-
+
// At this point, all raylib data has been parsed!
//-----------------------------------------------------------------------------------------
// structs[] -> We have all the structs decomposed into pieces for further analysis
// enums[] -> We have all the enums decomposed into pieces for further analysis
// funcs[] -> We have all the functions decomposed into pieces for further analysis
-
- // Print structs info
- switch (outputFormat)
- {
- case PlainText: {
- printf("\nStructures found: %i\n\n", structCount);
- for (int i = 0; i < structCount; i++)
- {
- printf("Struct %02i: %s (%i fields)\n", i + 1, structs[i].name, structs[i].fieldCount);
- //printf("Description: %s\n", structs[i].desc);
- for (int f = 0; f < structs[i].fieldCount; f++) printf(" Fields %i: %s %s %s\n", f + 1, structs[i].fieldType[f], structs[i].fieldName[f], structs[i].fieldDesc[f]);
- }
- // Print enums info
- printf("\nEnums found: %i\n\n", enumCount);
- for (int i = 0; i < enumCount; i++)
- {
- printf("Enum %02i: %s (%i values)\n", i + 1, enums[i].name, enums[i].valueCount);
- //printf("Description: %s\n", enums[i].desc);
- for (int e = 0; e < enums[i].valueCount; e++) printf(" Value %s: %i\n", enums[i].valueName[e], enums[i].valueInteger[e]);
- }
+ // Process input file to output
+ if (outFileName[0] == '\0') MemoryCopy(outFileName, "raylib_api.txt\0", 15);
- // Print function info
- printf("\nFunctions found: %i\n\n", funcCount);
- for (int i = 0; i < funcCount; i++)
- {
- printf("Function %03i: %s() (%i input parameters)\n", i + 1, funcs[i].name, funcs[i].paramCount);
- printf(" Description: %s\n", funcs[i].desc);
- printf(" Return type: %s\n", funcs[i].retType);
- for (int p = 0; p < funcs[i].paramCount; p++) printf(" Param %i: %s (type: %s)\n", p + 1, funcs[i].paramName[p], funcs[i].paramType[p]);
- if (funcs[i].paramCount == 0) printf(" No input parameters\n");
- }
- } break;
- case JSON: {
- printf("{\n");
- printf(" \"structs\": [\n");
- for (int i = 0; i < structCount; i++)
- {
- printf(" {\n");
- printf(" \"name\": \"%s\",\n", structs[i].name);
- printf(" \"description\": \"%s\",\n", structs[i].desc);
- printf(" \"fields\": [\n");
- for (int f = 0; f < structs[i].fieldCount; f++)
- {
- printf(" {\n");
- printf(" \"name\": \"%s\",\n", structs[i].fieldName[f]),
- printf(" \"type\": \"%s\",\n", structs[i].fieldType[f]),
- printf(" \"description\": \"%s\"\n", structs[i].fieldDesc[f] + 3),
- printf(" }");
- if (f < structs[i].fieldCount - 1)
- printf(",\n");
- else
- printf("\n");
- }
- printf(" ]\n");
- printf(" }");
- if (i < structCount - 1)
- printf(",\n");
- else
- printf("\n");
- }
- printf(" ],\n");
+ printf("\nInput file: %s", inFileName);
+ printf("\nOutput file: %s", outFileName);
+ if (outputFormat == DEFAULT) printf("\nOutput format: DEFAULT\n\n");
+ else if (outputFormat == JSON) printf("\nOutput format: JSON\n\n");
+ else if (outputFormat == XML) printf("\nOutput format: XML\n\n");
- // Print enums info
- printf(" \"enums\": [\n");
- for (int i = 0; i < enumCount; i++)
- {
- printf(" {\n");
- printf(" \"name\": \"%s\",\n", enums[i].name);
- printf(" \"description\": \"%s\",\n", enums[i].desc + 3);
- printf(" \"values\": [\n");
- for (int e = 0; e < enums[i].valueCount; e++)
- {
- printf(" {\n");
- printf(" \"name\": \"%s\",\n", enums[i].valueName[e]),
- printf(" \"value\": %i,\n", enums[i].valueInteger[e]),
- printf(" \"description\": \"%s\"\n", enums[i].valueDesc[e] + 3),
- printf(" }");
- if (e < enums[i].valueCount - 1)
- printf(",\n");
- else
- printf("\n");
- }
- printf(" ]\n");
- printf(" }");
- if (i < enumCount - 1)
- printf(",\n");
- else
- printf("\n");
- }
- printf(" ],\n");
+ ExportParsedData(outFileName, outputFormat);
- // Print function info
- printf(" \"functions\": [\n");
- for (int i = 0; i < funcCount; i++)
- {
- printf(" {\n");
- printf(" \"name\": \"%s\",\n", funcs[i].name);
- printf(" \"description\": \"%s\",\n", CharReplace(funcs[i].desc, '\\', ' ') + 3);
- printf(" \"returnType\": \"%s\"", funcs[i].retType);
-
- if (funcs[i].paramCount == 0)
- printf("\n");
- else
- {
- printf(",\n \"params\": {\n");
- for (int p = 0; p < funcs[i].paramCount; p++)
- {
- printf(" \"%s\": \"%s\"", funcs[i].paramName[p], funcs[i].paramType[p]);
- if (p < funcs[i].paramCount - 1)
- printf(",\n");
- else
- printf("\n");
- }
- printf(" }\n");
- }
- printf(" }");
-
- if (i < funcCount - 1)
- printf(",\n");
- else
- printf("\n");
- }
- printf(" ]\n");
- printf("}\n");
- } break;
- }
-
free(funcs);
free(structs);
free(enums);
@@ -616,10 +511,84 @@ int main(int argc, char* argv[])
//----------------------------------------------------------------------------------
// Module Functions Definition
//----------------------------------------------------------------------------------
+// Show command line usage info
+static void ShowCommandLineInfo(void)
+{
+ printf("\n//////////////////////////////////////////////////////////////////////////////////\n");
+ printf("// //\n");
+ printf("// raylib API parser //\n");
+ printf("// //\n");
+ printf("// more info and bugs-report: github.com/raysan5/raylib/parser //\n");
+ printf("// //\n");
+ printf("// Copyright (c) 2021 Ramon Santamaria (@raysan5) //\n");
+ printf("// //\n");
+ printf("//////////////////////////////////////////////////////////////////////////////////\n\n");
+
+ printf("USAGE:\n\n");
+ printf(" > raylib_parser [--help] [--input ] [--output ] [--format ]\n");
+
+ printf("\nOPTIONS:\n\n");
+ printf(" -h, --help : Show tool version and command line usage help\n\n");
+ 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, .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\n\n");
+
+ printf("\nEXAMPLES:\n\n");
+ printf(" > raylib_parser --input raylib.h --output api.json\n");
+ printf(" Process to generate \n\n");
+ printf(" > raylib_parser --output raylib_data.info --format XML\n");
+ printf(" Process to generate as XML text data\n\n");
+}
+
+// Process command line arguments
+static void ProcessCommandLine(int argc, char *argv[])
+{
+ for (int i = 1; i < argc; i++)
+ {
+ if (IsTextEqual(argv[i], "-h", 2) || IsTextEqual(argv[i], "--help", 6))
+ {
+ // Show info
+ ShowCommandLineInfo();
+ }
+ else if (IsTextEqual(argv[i], "-i", 2) || IsTextEqual(argv[i], "--input", 7))
+ {
+ // Check for valid argument and valid file extension
+ if (((i + 1) < argc) && (argv[i + 1][0] != '-'))
+ {
+ MemoryCopy(inFileName, argv[i + 1], TextLength(argv[i + 1])); // Read input filename
+ i++;
+ }
+ else printf("WARNING: No input file provided\n");
+ }
+ else if (IsTextEqual(argv[i], "-o", 2) || IsTextEqual(argv[i], "--output", 8))
+ {
+ if (((i + 1) < argc) && (argv[i + 1][0] != '-'))
+ {
+ MemoryCopy(outFileName, argv[i + 1], TextLength(argv[i + 1])); // Read output filename
+ i++;
+ }
+ else printf("WARNING: No output file provided\n");
+ }
+ else if (IsTextEqual(argv[i], "-f", 2) || IsTextEqual(argv[i], "--format", 8))
+ {
+ if (((i + 1) < argc) && (argv[i + 1][0] != '-'))
+ {
+ if (IsTextEqual(argv[i + 1], "DEFAULT\0", 8)) outputFormat = DEFAULT;
+ else if (IsTextEqual(argv[i + 1], "JSON\0", 5)) outputFormat = JSON;
+ else if (IsTextEqual(argv[i + 1], "XML\0", 4)) outputFormat = XML;
+ }
+ else printf("WARNING: No format parameters provided\n");
+ }
+ }
+}
// Load text data from file, returns a '\0' terminated string
// NOTE: text chars array should be freed manually
-char *LoadFileText(const char *fileName, int *length)
+static char *LoadFileText(const char *fileName, int *length)
{
char *text = NULL;
@@ -638,14 +607,17 @@ char *LoadFileText(const char *fileName, int *length)
if (size > 0)
{
- *length = size;
-
text = (char *)calloc((size + 1), sizeof(char));
unsigned int count = (unsigned int)fread(text, sizeof(char), size, file);
// WARNING: \r\n is converted to \n on reading, so,
// read bytes count gets reduced by the number of lines
- if (count < (unsigned int)size) text = realloc(text, count + 1);
+ if (count < (unsigned int)size)
+ {
+ text = realloc(text, count + 1);
+ *length = count;
+ }
+ else *length = size;
// Zero-terminate the string
text[count] = '\0';
@@ -659,47 +631,45 @@ char *LoadFileText(const char *fileName, int *length)
}
// Get all lines from a text buffer (expecting lines ending with '\n')
-char **GetTextLines(const char *buffer, int length, int *linesCount)
+static char **GetTextLines(const char *buffer, int length, int *linesCount)
{
- //#define MAX_LINE_LENGTH 512
-
// Get the number of lines in the text
int count = 0;
for (int i = 0; i < length; i++) if (buffer[i] == '\n') count++;
- //printf("Number of text lines in buffer: %i\n", count);
-
+ printf("Number of text lines in buffer: %i\n", count);
+
// Allocate as many pointers as lines
char **lines = (char **)malloc(count*sizeof(char **));
-
+
char *bufferPtr = (char *)buffer;
-
+
for (int i = 0; (i < count) || (bufferPtr[0] != '\0'); i++)
{
lines[i] = (char *)calloc(MAX_LINE_LENGTH, sizeof(char));
-
+
// Remove line leading spaces
// Find last index of space/tab character
int index = 0;
while ((bufferPtr[index] == ' ') || (bufferPtr[index] == '\t')) index++;
int j = 0;
- while (bufferPtr[index + j] != '\n')
+ while (bufferPtr[index + j] != '\n')
{
lines[i][j] = bufferPtr[index + j];
j++;
}
-
+
bufferPtr += (index + j + 1);
}
-
+
*linesCount = count;
return lines;
}
// Get data type and name from a string containing both
// NOTE: Useful to parse function parameters and struct fields
-void GetDataTypeAndName(const char *typeName, int typeNameLen, char *type, char *name)
+static void GetDataTypeAndName(const char *typeName, int typeNameLen, char *type, char *name)
{
for (int k = typeNameLen; k > 0; k--)
{
@@ -719,8 +689,18 @@ void GetDataTypeAndName(const char *typeName, int typeNameLen, char *type, char
}
}
+// Get text length in bytes, check for \0 character
+static unsigned int TextLength(const char *text)
+{
+ unsigned int length = 0;
+
+ if (text != NULL) while (*text++) length++;
+
+ return length;
+}
+
// Custom memcpy() to avoid
-void MemoryCopy(void *dest, const void *src, unsigned int count)
+static void MemoryCopy(void *dest, const void *src, unsigned int count)
{
char *srcPtr = (char *)src;
char *destPtr = (char *)dest;
@@ -729,13 +709,13 @@ void MemoryCopy(void *dest, const void *src, unsigned int count)
}
// Compare two text strings, requires number of characters to compare
-bool IsTextEqual(const char *text1, const char *text2, unsigned int count)
+static bool IsTextEqual(const char *text1, const char *text2, unsigned int count)
{
bool result = true;
-
- for (unsigned int i = 0; i < count; i++)
+
+ for (unsigned int i = 0; i < count; i++)
{
- if (text1[i] != text2[i])
+ if (text1[i] != text2[i])
{
result = false;
break;
@@ -746,7 +726,7 @@ bool IsTextEqual(const char *text1, const char *text2, unsigned int count)
}
// Search and replace a character within a string.
-char* CharReplace(char* text, char search, char replace)
+static char* CharReplace(char* text, char search, char replace)
{
for (int i = 0; text[i] != '\0'; i++)
if (text[i] == search)
@@ -758,7 +738,7 @@ char* CharReplace(char* text, char search, char replace)
// Replace text string
// REQUIRES: strlen(), strstr(), strncpy(), strcpy() -> TODO: Replace by custom implementations!
// WARNING: Returned buffer must be freed by the user (if return != NULL)
-char *TextReplace(char *text, const char *replace, const char *by)
+static char *TextReplace(char *text, const char *replace, const char *by)
{
// Sanity checks and initialization
if (!text || !replace || !by) return NULL;
@@ -804,4 +784,206 @@ char *TextReplace(char *text, const char *replace, const char *by)
return result;
}
-*/
\ No newline at end of file
+*/
+
+// Export parsed data in desired format
+static void ExportParsedData(const char *fileName, int format)
+{
+ FILE *outFile = fopen(fileName, "wt");
+
+ switch (format)
+ {
+ case DEFAULT:
+ {
+ // Print structs info
+ fprintf(outFile, "\nStructures found: %i\n\n", structCount);
+ for (int i = 0; i < structCount; i++)
+ {
+ fprintf(outFile, "Struct %02i: %s (%i fields)\n", i + 1, structs[i].name, structs[i].fieldCount);
+ fprintf(outFile, " Name: %s\n", structs[i].name);
+ fprintf(outFile, " Description: %s\n", structs[i].desc + 3);
+ for (int f = 0; f < structs[i].fieldCount; f++) fprintf(outFile, " Field[%i]: %s %s %s\n", f + 1, structs[i].fieldType[f], structs[i].fieldName[f], structs[i].fieldDesc[f]);
+ }
+
+ // Print enums info
+ fprintf(outFile, "\nEnums found: %i\n\n", enumCount);
+ for (int i = 0; i < enumCount; i++)
+ {
+ fprintf(outFile, "Enum %02i: %s (%i values)\n", i + 1, enums[i].name, enums[i].valueCount);
+ fprintf(outFile, " Name: %s\n", enums[i].name);
+ fprintf(outFile, " Description: %s\n", enums[i].desc + 3);
+ for (int e = 0; e < enums[i].valueCount; e++) fprintf(outFile, " Value[%s]: %i\n", enums[i].valueName[e], enums[i].valueInteger[e]);
+ }
+
+ // Print functions info
+ fprintf(outFile, "\nFunctions found: %i\n\n", funcCount);
+ for (int i = 0; i < funcCount; i++)
+ {
+ fprintf(outFile, "Function %03i: %s() (%i input parameters)\n", i + 1, funcs[i].name, funcs[i].paramCount);
+ fprintf(outFile, " Name: %s\n", funcs[i].name);
+ fprintf(outFile, " Return type: %s\n", funcs[i].retType);
+ fprintf(outFile, " Description: %s\n", funcs[i].desc + 3);
+ for (int p = 0; p < funcs[i].paramCount; p++) fprintf(outFile, " Param[%i]: %s (type: %s)\n", p + 1, funcs[i].paramName[p], funcs[i].paramType[p]);
+ if (funcs[i].paramCount == 0) fprintf(outFile, " No input parameters\n");
+ }
+ } break;
+ case JSON:
+ {
+ 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", structs[i].desc);
+ fprintf(outFile, " \"fields\": [\n");
+ for (int f = 0; f < structs[i].fieldCount; f++)
+ {
+ fprintf(outFile, " {\n");
+ fprintf(outFile, " \"name\": \"%s\",\n", structs[i].fieldName[f]),
+ fprintf(outFile, " \"type\": \"%s\",\n", structs[i].fieldType[f]),
+ fprintf(outFile, " \"description\": \"%s\"\n", structs[i].fieldDesc[f] + 3),
+ 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 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", enums[i].desc + 3);
+ 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", enums[i].valueDesc[e] + 3),
+ 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 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", CharReplace(funcs[i].desc, '\\', ' ') + 3);
+ 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, " \"%s\": \"%s\"", funcs[i].paramName[p], funcs[i].paramType[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 XML:
+ {
+ // XML format to export data:
+ /*
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ */
+
+ fprintf(outFile, "\n");
+ fprintf(outFile, "\n");
+
+ // Print structs info
+ fprintf(outFile, " \n", structCount);
+ for (int i = 0; i < structCount; i++)
+ {
+ fprintf(outFile, " \n", structs[i].name, structs[i].fieldCount, structs[i].desc + 3);
+ for (int f = 0; f < structs[i].fieldCount; f++)
+ {
+ fprintf(outFile, " \n", structs[i].fieldType[f], structs[i].fieldName[f], structs[i].fieldDesc[f] + 3);
+ }
+ fprintf(outFile, " \n");
+ }
+ fprintf(outFile, " \n");
+
+ // Print enums info
+ fprintf(outFile, " \n", enumCount);
+ for (int i = 0; i < enumCount; i++)
+ {
+ fprintf(outFile, " \n", enums[i].name, enums[i].valueCount, enums[i].desc + 3);
+ for (int v = 0; v < enums[i].valueCount; v++)
+ {
+ fprintf(outFile, " \n", enums[i].valueName[v], enums[i].valueInteger[v], enums[i].valueDesc[v] + 3);
+ }
+ fprintf(outFile, " \n");
+ }
+ fprintf(outFile, " \n");
+
+ // Print functions info
+ fprintf(outFile, " \n", funcCount);
+ for (int i = 0; i < funcCount; i++)
+ {
+ fprintf(outFile, " \n", funcs[i].name, funcs[i].retType, funcs[i].paramCount, funcs[i].desc + 3);
+ for (int p = 0; p < funcs[i].paramCount; p++)
+ {
+ fprintf(outFile, " \n", funcs[i].paramType[p], funcs[i].paramName[p], funcs[i].paramDesc[p] + 3);
+ }
+ fprintf(outFile, " \n");
+ }
+ fprintf(outFile, " \n");
+
+ fprintf(outFile, "\n");
+
+ } break;
+ default: break;
+ }
+
+ fclose(outFile);
+}