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); +}