% raylib and raymath bindings for Trealla Prolog. % % GENERATED by util/gen_raylib.py from raylib.h and raymath.h - edit that, % not this. Written against raylib 6.0. % % raymath is in here rather than in a module of its own because it is % header-only, ships with raylib, resolves out of the same libraylib.so, % shares the vector and matrix structs, and shares no function name with % raylib.h. Note that its symbols exist only because raylib was built % with RAYMATH_IMPLEMENTATION and default visibility; a raylib built % otherwise exports none of them, and because do_use_foreign_module % ignores a failed dlsym, that shows up as existence_error per call % rather than as a load failure. % % CALLING CONVENTION % % Bindings keep raylib's own CamelCase names, so they need quoting: % % 'InitWindow'(800, 450, "demo") % % A function returning non-void takes one extra argument, last, to % receive the result. C bools arrive as 0 or 1: % % 'GetScreenWidth'(W) % 'IsKeyDown'(Key, Down) % % A C string return arrives as an ATOM, not a Prolog string: % % ?- 'GetFileName'("/tmp/a/b.png", N). % N = 'b.png'. % % String returns are typed 'ccstr' throughout. The other string tag, % 'cstr', makes bif_ffi.c TPL_free() the returned pointer - which for % raylib is either a static internal buffer or memory raylib owns, so it % must not be used here. The cost is that the few functions returning % freshly allocated text (LoadFileText, TextReplace, TextInsert) leak it; % their Unload counterparts need a pointer this binding no longer has. % % A C float or double argument must be given a Prolog float, never an % integer - bif_ffi.c type-checks the cell tag, so 'DrawCircleV'(P, 20, C) % raises a type_error where 20.0 works. % % STRUCTS % % Structs pass and return as a list whose head is the struct name: % % [color, 255, 255, 255, 255] % [vector2, 3.0, 4.0] % % The lists are FLAT, never nested. A camera2d is six floats in one list, % not two vector2 sublists. This is forced by bif_ffi.c: a struct-typed % field is packed at the wrong offset on the way in, and the struct-return % decoder bails out on one entirely. So each struct below is declared as % its scalar fields in C layout order, with explicit padding fields where % the C compiler inserts padding. Every layout is checked field-by-field % against offsetof/sizeof by `./util/gen_raylib.py --verify`. % % Padding fields read as junk and are ignored on the way in; they are % marked '_' in the layout comment on each declaration. % % Struct field values are NOT type-checked, unlike scalar arguments, and % are read straight through the cell. An integer at or above 2^63 is a % bignum in trealla, and passes its pointer rather than its value - keep % struct fields inside int64 range. % % POINTERS % % A C pointer argument is 'ptr' and shows up as a plain integer address - % whatever a previous call returned. Nothing here allocates one for you, % so the Image*/Mesh*/Wave* mutators are only callable on a pointer raylib % itself handed back. % % CONSTANTS % % raylib_const/2 and raylib_color/2 carry the enum values and predefined % colours, so callers need no magic numbers: % % raylib_const('KEY_SPACE', K), % raylib_color('RAYWHITE', C) % % LOADING % % Where raylib sits outside the loader's default search path - Homebrew on % macOS, for one - a bare run reports % % Error: foreign module creation failed: libraylib.so, raylib % % which means dlopen, not a missing binding. Point the loader at it: % % DYLD_LIBRARY_PATH=/opt/homebrew/lib tpl ... % % NOT BOUND % % 12 of the 746 functions across both headers are left out - the 10 % that take a C callback and the 2 that are varargs, all of them in % raylib.h. All 146 of raymath.h is bound. See the end of this file. :- module(raylib, [ % Window and Graphics Device Functions (Module: core) 'InitWindow'/3, 'CloseWindow'/0, 'WindowShouldClose'/1, 'IsWindowReady'/1, 'IsWindowFullscreen'/1, 'IsWindowHidden'/1, 'IsWindowMinimized'/1, 'IsWindowMaximized'/1, 'IsWindowFocused'/1, 'IsWindowResized'/1, 'IsWindowState'/2, 'SetWindowState'/1, 'ClearWindowState'/1, 'ToggleFullscreen'/0, 'ToggleBorderlessWindowed'/0, 'MaximizeWindow'/0, 'MinimizeWindow'/0, 'RestoreWindow'/0, 'SetWindowIcon'/1, 'SetWindowIcons'/2, 'SetWindowTitle'/1, 'SetWindowPosition'/2, 'SetWindowMonitor'/1, 'SetWindowMinSize'/2, 'SetWindowMaxSize'/2, 'SetWindowSize'/2, 'SetWindowOpacity'/1, 'SetWindowFocused'/0, 'GetWindowHandle'/1, 'GetScreenWidth'/1, 'GetScreenHeight'/1, 'GetRenderWidth'/1, 'GetRenderHeight'/1, 'GetMonitorCount'/1, 'GetCurrentMonitor'/1, 'GetMonitorPosition'/2, 'GetMonitorWidth'/2, 'GetMonitorHeight'/2, 'GetMonitorPhysicalWidth'/2, 'GetMonitorPhysicalHeight'/2, 'GetMonitorRefreshRate'/2, 'GetWindowPosition'/1, 'GetWindowScaleDPI'/1, 'GetMonitorName'/2, 'SetClipboardText'/1, 'GetClipboardText'/1, 'GetClipboardImage'/1, 'EnableEventWaiting'/0, 'DisableEventWaiting'/0, 'ShowCursor'/0, 'HideCursor'/0, 'IsCursorHidden'/1, 'EnableCursor'/0, 'DisableCursor'/0, 'IsCursorOnScreen'/1, 'ClearBackground'/1, 'BeginDrawing'/0, 'EndDrawing'/0, 'BeginMode2D'/1, 'EndMode2D'/0, 'BeginMode3D'/1, 'EndMode3D'/0, 'BeginTextureMode'/1, 'EndTextureMode'/0, 'BeginShaderMode'/1, 'EndShaderMode'/0, 'BeginBlendMode'/1, 'EndBlendMode'/0, 'BeginScissorMode'/4, 'EndScissorMode'/0, 'BeginVrStereoMode'/1, 'EndVrStereoMode'/0, 'LoadVrStereoConfig'/2, 'UnloadVrStereoConfig'/1, 'LoadShader'/3, 'LoadShaderFromMemory'/3, 'IsShaderValid'/2, 'GetShaderLocation'/3, 'GetShaderLocationAttrib'/3, 'SetShaderValue'/4, 'SetShaderValueV'/5, 'SetShaderValueMatrix'/3, 'SetShaderValueTexture'/3, 'UnloadShader'/1, 'GetScreenToWorldRay'/3, 'GetScreenToWorldRayEx'/5, 'GetWorldToScreen'/3, 'GetWorldToScreenEx'/5, 'GetWorldToScreen2D'/3, 'GetScreenToWorld2D'/3, 'GetCameraMatrix'/2, 'GetCameraMatrix2D'/2, 'SetTargetFPS'/1, 'GetFrameTime'/1, 'GetTime'/1, 'GetFPS'/1, 'SwapScreenBuffer'/0, 'PollInputEvents'/0, 'WaitTime'/1, 'SetRandomSeed'/1, 'GetRandomValue'/3, 'LoadRandomSequence'/4, 'UnloadRandomSequence'/1, 'TakeScreenshot'/1, 'SetConfigFlags'/1, 'OpenURL'/1, 'SetTraceLogLevel'/1, 'MemAlloc'/2, 'MemRealloc'/3, 'MemFree'/1, 'LoadFileData'/3, 'UnloadFileData'/1, 'SaveFileData'/4, 'ExportDataAsCode'/4, 'LoadFileText'/2, 'UnloadFileText'/1, 'SaveFileText'/3, 'FileRename'/3, 'FileRemove'/2, 'FileCopy'/3, 'FileMove'/3, 'FileTextReplace'/4, 'FileTextFindIndex'/3, 'FileExists'/2, 'DirectoryExists'/2, 'IsFileExtension'/3, 'GetFileLength'/2, 'GetFileModTime'/2, 'GetFileExtension'/2, 'GetFileName'/2, 'GetFileNameWithoutExt'/2, 'GetDirectoryPath'/2, 'GetPrevDirectoryPath'/2, 'GetWorkingDirectory'/1, 'GetApplicationDirectory'/1, 'MakeDirectory'/2, 'ChangeDirectory'/2, 'IsPathFile'/2, 'IsFileNameValid'/2, 'LoadDirectoryFiles'/2, 'LoadDirectoryFilesEx'/4, 'UnloadDirectoryFiles'/1, 'IsFileDropped'/1, 'LoadDroppedFiles'/1, 'UnloadDroppedFiles'/1, 'GetDirectoryFileCount'/2, 'GetDirectoryFileCountEx'/4, 'CompressData'/4, 'DecompressData'/4, 'EncodeDataBase64'/4, 'DecodeDataBase64'/3, 'ComputeCRC32'/3, 'ComputeMD5'/3, 'ComputeSHA1'/3, 'ComputeSHA256'/3, 'LoadAutomationEventList'/2, 'UnloadAutomationEventList'/1, 'ExportAutomationEventList'/3, 'SetAutomationEventList'/1, 'SetAutomationEventBaseFrame'/1, 'StartAutomationEventRecording'/0, 'StopAutomationEventRecording'/0, 'PlayAutomationEvent'/1, % Input Handling Functions (Module: core) 'IsKeyPressed'/2, 'IsKeyPressedRepeat'/2, 'IsKeyDown'/2, 'IsKeyReleased'/2, 'IsKeyUp'/2, 'GetKeyPressed'/1, 'GetCharPressed'/1, 'GetKeyName'/2, 'SetExitKey'/1, 'IsGamepadAvailable'/2, 'GetGamepadName'/2, 'IsGamepadButtonPressed'/3, 'IsGamepadButtonDown'/3, 'IsGamepadButtonReleased'/3, 'IsGamepadButtonUp'/3, 'GetGamepadButtonPressed'/1, 'GetGamepadAxisCount'/2, 'GetGamepadAxisMovement'/3, 'SetGamepadMappings'/2, 'SetGamepadVibration'/4, 'IsMouseButtonPressed'/2, 'IsMouseButtonDown'/2, 'IsMouseButtonReleased'/2, 'IsMouseButtonUp'/2, 'GetMouseX'/1, 'GetMouseY'/1, 'GetMousePosition'/1, 'GetMouseDelta'/1, 'SetMousePosition'/2, 'SetMouseOffset'/2, 'SetMouseScale'/2, 'GetMouseWheelMove'/1, 'GetMouseWheelMoveV'/1, 'SetMouseCursor'/1, 'GetTouchX'/1, 'GetTouchY'/1, 'GetTouchPosition'/2, 'GetTouchPointId'/2, 'GetTouchPointCount'/1, % Gestures and Touch Handling Functions (Module: rgestures) 'SetGesturesEnabled'/1, 'IsGestureDetected'/2, 'GetGestureDetected'/1, 'GetGestureHoldDuration'/1, 'GetGestureDragVector'/1, 'GetGestureDragAngle'/1, 'GetGesturePinchVector'/1, 'GetGesturePinchAngle'/1, % Camera System Functions (Module: rcamera) 'UpdateCamera'/2, 'UpdateCameraPro'/4, % Basic Shapes Drawing Functions (Module: shapes) 'SetShapesTexture'/2, 'GetShapesTexture'/1, 'GetShapesTextureRectangle'/1, 'DrawPixel'/3, 'DrawPixelV'/2, 'DrawLine'/5, 'DrawLineV'/3, 'DrawLineEx'/4, 'DrawLineStrip'/3, 'DrawLineBezier'/4, 'DrawLineDashed'/5, 'DrawCircle'/4, 'DrawCircleV'/3, 'DrawCircleGradient'/4, 'DrawCircleSector'/6, 'DrawCircleSectorLines'/6, 'DrawCircleLines'/4, 'DrawCircleLinesV'/3, 'DrawEllipse'/5, 'DrawEllipseV'/4, 'DrawEllipseLines'/5, 'DrawEllipseLinesV'/4, 'DrawRing'/7, 'DrawRingLines'/7, 'DrawRectangle'/5, 'DrawRectangleV'/3, 'DrawRectangleRec'/2, 'DrawRectanglePro'/4, 'DrawRectangleGradientV'/6, 'DrawRectangleGradientH'/6, 'DrawRectangleGradientEx'/5, 'DrawRectangleLines'/5, 'DrawRectangleLinesEx'/3, 'DrawRectangleRounded'/4, 'DrawRectangleRoundedLines'/4, 'DrawRectangleRoundedLinesEx'/5, 'DrawTriangle'/4, 'DrawTriangleLines'/4, 'DrawTriangleFan'/3, 'DrawTriangleStrip'/3, 'DrawPoly'/5, 'DrawPolyLines'/5, 'DrawPolyLinesEx'/6, 'DrawSplineLinear'/4, 'DrawSplineBasis'/4, 'DrawSplineCatmullRom'/4, 'DrawSplineBezierQuadratic'/4, 'DrawSplineBezierCubic'/4, 'DrawSplineSegmentLinear'/4, 'DrawSplineSegmentBasis'/6, 'DrawSplineSegmentCatmullRom'/6, 'DrawSplineSegmentBezierQuadratic'/5, 'DrawSplineSegmentBezierCubic'/6, 'GetSplinePointLinear'/4, 'GetSplinePointBasis'/6, 'GetSplinePointCatmullRom'/6, 'GetSplinePointBezierQuad'/5, 'GetSplinePointBezierCubic'/6, 'CheckCollisionRecs'/3, 'CheckCollisionCircles'/5, 'CheckCollisionCircleRec'/4, 'CheckCollisionCircleLine'/5, 'CheckCollisionPointRec'/3, 'CheckCollisionPointCircle'/4, 'CheckCollisionPointTriangle'/5, 'CheckCollisionPointLine'/5, 'CheckCollisionPointPoly'/4, 'CheckCollisionLines'/6, 'GetCollisionRec'/3, % Texture Loading and Drawing Functions (Module: textures) 'LoadImage'/2, 'LoadImageRaw'/6, 'LoadImageAnim'/3, 'LoadImageAnimFromMemory'/5, 'LoadImageFromMemory'/4, 'LoadImageFromTexture'/2, 'LoadImageFromScreen'/1, 'IsImageValid'/2, 'UnloadImage'/1, 'ExportImage'/3, 'ExportImageToMemory'/4, 'ExportImageAsCode'/3, 'GenImageColor'/4, 'GenImageGradientLinear'/6, 'GenImageGradientRadial'/6, 'GenImageGradientSquare'/6, 'GenImageChecked'/7, 'GenImageWhiteNoise'/4, 'GenImagePerlinNoise'/6, 'GenImageCellular'/4, 'GenImageText'/4, 'ImageCopy'/2, 'ImageFromImage'/3, 'ImageFromChannel'/3, 'ImageText'/4, 'ImageTextEx'/6, 'ImageFormat'/2, 'ImageToPOT'/2, 'ImageCrop'/2, 'ImageAlphaCrop'/2, 'ImageAlphaClear'/3, 'ImageAlphaMask'/2, 'ImageAlphaPremultiply'/1, 'ImageBlurGaussian'/2, 'ImageKernelConvolution'/3, 'ImageResize'/3, 'ImageResizeNN'/3, 'ImageResizeCanvas'/6, 'ImageMipmaps'/1, 'ImageDither'/5, 'ImageFlipVertical'/1, 'ImageFlipHorizontal'/1, 'ImageRotate'/2, 'ImageRotateCW'/1, 'ImageRotateCCW'/1, 'ImageColorTint'/2, 'ImageColorInvert'/1, 'ImageColorGrayscale'/1, 'ImageColorContrast'/2, 'ImageColorBrightness'/2, 'ImageColorReplace'/3, 'LoadImageColors'/2, 'LoadImagePalette'/4, 'UnloadImageColors'/1, 'UnloadImagePalette'/1, 'GetImageAlphaBorder'/3, 'GetImageColor'/4, 'ImageClearBackground'/2, 'ImageDrawPixel'/4, 'ImageDrawPixelV'/3, 'ImageDrawLine'/6, 'ImageDrawLineV'/4, 'ImageDrawLineEx'/5, 'ImageDrawCircle'/5, 'ImageDrawCircleV'/4, 'ImageDrawCircleLines'/5, 'ImageDrawCircleLinesV'/4, 'ImageDrawRectangle'/6, 'ImageDrawRectangleV'/4, 'ImageDrawRectangleRec'/3, 'ImageDrawRectangleLines'/4, 'ImageDrawTriangle'/5, 'ImageDrawTriangleEx'/7, 'ImageDrawTriangleLines'/5, 'ImageDrawTriangleFan'/4, 'ImageDrawTriangleStrip'/4, 'ImageDraw'/5, 'ImageDrawText'/6, 'ImageDrawTextEx'/7, 'LoadTexture'/2, 'LoadTextureFromImage'/2, 'LoadTextureCubemap'/3, 'LoadRenderTexture'/3, 'IsTextureValid'/2, 'UnloadTexture'/1, 'IsRenderTextureValid'/2, 'UnloadRenderTexture'/1, 'UpdateTexture'/2, 'UpdateTextureRec'/3, 'GenTextureMipmaps'/1, 'SetTextureFilter'/2, 'SetTextureWrap'/2, 'DrawTexture'/4, 'DrawTextureV'/3, 'DrawTextureEx'/5, 'DrawTextureRec'/4, 'DrawTexturePro'/6, 'DrawTextureNPatch'/6, 'ColorIsEqual'/3, 'Fade'/3, 'ColorToInt'/2, 'ColorNormalize'/2, 'ColorFromNormalized'/2, 'ColorToHSV'/2, 'ColorFromHSV'/4, 'ColorTint'/3, 'ColorBrightness'/3, 'ColorContrast'/3, 'ColorAlpha'/3, 'ColorAlphaBlend'/4, 'ColorLerp'/4, 'GetColor'/2, 'GetPixelColor'/3, 'SetPixelColor'/3, 'GetPixelDataSize'/4, % Font Loading and Text Drawing Functions (Module: text) 'GetFontDefault'/1, 'LoadFont'/2, 'LoadFontEx'/5, 'LoadFontFromImage'/4, 'LoadFontFromMemory'/7, 'IsFontValid'/2, 'LoadFontData'/8, 'GenImageFontAtlas'/7, 'UnloadFontData'/2, 'UnloadFont'/1, 'ExportFontAsCode'/3, 'DrawFPS'/2, 'DrawText'/5, 'DrawTextEx'/6, 'DrawTextPro'/8, 'DrawTextCodepoint'/5, 'DrawTextCodepoints'/7, 'SetTextLineSpacing'/1, 'MeasureText'/3, 'MeasureTextEx'/5, 'MeasureTextCodepoints'/6, 'GetGlyphIndex'/3, 'GetGlyphInfo'/3, 'GetGlyphAtlasRec'/3, 'LoadUTF8'/3, 'UnloadUTF8'/1, 'LoadCodepoints'/3, 'UnloadCodepoints'/1, 'GetCodepointCount'/2, 'GetCodepoint'/3, 'GetCodepointNext'/3, 'GetCodepointPrevious'/3, 'CodepointToUTF8'/3, 'LoadTextLines'/3, 'UnloadTextLines'/2, 'TextCopy'/3, 'TextIsEqual'/3, 'TextLength'/2, 'TextSubtext'/4, 'TextRemoveSpaces'/2, 'GetTextBetween'/4, 'TextReplace'/4, 'TextReplaceAlloc'/4, 'TextReplaceBetween'/5, 'TextReplaceBetweenAlloc'/5, 'TextInsert'/4, 'TextInsertAlloc'/4, 'TextJoin'/4, 'TextSplit'/4, 'TextAppend'/3, 'TextFindIndex'/3, 'TextToUpper'/2, 'TextToLower'/2, 'TextToPascal'/2, 'TextToSnake'/2, 'TextToCamel'/2, 'TextToInteger'/2, 'TextToFloat'/2, % Basic 3d Shapes Drawing Functions (Module: models) 'DrawLine3D'/3, 'DrawPoint3D'/2, 'DrawCircle3D'/5, 'DrawTriangle3D'/4, 'DrawTriangleStrip3D'/3, 'DrawCube'/5, 'DrawCubeV'/3, 'DrawCubeWires'/5, 'DrawCubeWiresV'/3, 'DrawSphere'/3, 'DrawSphereEx'/5, 'DrawSphereWires'/5, 'DrawCylinder'/6, 'DrawCylinderEx'/6, 'DrawCylinderWires'/6, 'DrawCylinderWiresEx'/6, 'DrawCapsule'/6, 'DrawCapsuleWires'/6, 'DrawPlane'/3, 'DrawRay'/2, 'DrawGrid'/2, % Model 3d Loading and Drawing Functions (Module: models) 'LoadModel'/2, 'LoadModelFromMesh'/2, 'IsModelValid'/2, 'UnloadModel'/1, 'GetModelBoundingBox'/2, 'DrawModel'/4, 'DrawModelEx'/6, 'DrawModelWires'/4, 'DrawModelWiresEx'/6, 'DrawBoundingBox'/2, 'DrawBillboard'/5, 'DrawBillboardRec'/6, 'DrawBillboardPro'/9, 'UploadMesh'/2, 'UpdateMeshBuffer'/5, 'UnloadMesh'/1, 'DrawMesh'/3, 'DrawMeshInstanced'/4, 'GetMeshBoundingBox'/2, 'GenMeshTangents'/1, 'ExportMesh'/3, 'ExportMeshAsCode'/3, 'GenMeshPoly'/3, 'GenMeshPlane'/5, 'GenMeshCube'/4, 'GenMeshSphere'/4, 'GenMeshHemiSphere'/4, 'GenMeshCylinder'/4, 'GenMeshCone'/4, 'GenMeshTorus'/5, 'GenMeshKnot'/5, 'GenMeshHeightmap'/3, 'GenMeshCubicmap'/3, 'LoadMaterials'/3, 'LoadMaterialDefault'/1, 'IsMaterialValid'/2, 'UnloadMaterial'/1, 'SetMaterialTexture'/3, 'SetModelMeshMaterial'/3, 'LoadModelAnimations'/3, 'UpdateModelAnimation'/3, 'UpdateModelAnimationEx'/6, 'UnloadModelAnimations'/2, 'IsModelAnimationValid'/3, 'CheckCollisionSpheres'/5, 'CheckCollisionBoxes'/3, 'CheckCollisionBoxSphere'/4, 'GetRayCollisionSphere'/4, 'GetRayCollisionBox'/3, 'GetRayCollisionMesh'/4, 'GetRayCollisionTriangle'/5, 'GetRayCollisionQuad'/6, % Audio Loading and Playing Functions (Module: audio) 'InitAudioDevice'/0, 'CloseAudioDevice'/0, 'IsAudioDeviceReady'/1, 'SetMasterVolume'/1, 'GetMasterVolume'/1, 'LoadWave'/2, 'LoadWaveFromMemory'/4, 'IsWaveValid'/2, 'LoadSound'/2, 'LoadSoundFromWave'/2, 'LoadSoundAlias'/2, 'IsSoundValid'/2, 'UpdateSound'/3, 'UnloadWave'/1, 'UnloadSound'/1, 'UnloadSoundAlias'/1, 'ExportWave'/3, 'ExportWaveAsCode'/3, 'PlaySound'/1, 'StopSound'/1, 'PauseSound'/1, 'ResumeSound'/1, 'IsSoundPlaying'/2, 'SetSoundVolume'/2, 'SetSoundPitch'/2, 'SetSoundPan'/2, 'WaveCopy'/2, 'WaveCrop'/3, 'WaveFormat'/4, 'LoadWaveSamples'/2, 'UnloadWaveSamples'/1, 'LoadMusicStream'/2, 'LoadMusicStreamFromMemory'/4, 'IsMusicValid'/2, 'UnloadMusicStream'/1, 'PlayMusicStream'/1, 'IsMusicStreamPlaying'/2, 'UpdateMusicStream'/1, 'StopMusicStream'/1, 'PauseMusicStream'/1, 'ResumeMusicStream'/1, 'SeekMusicStream'/2, 'SetMusicVolume'/2, 'SetMusicPitch'/2, 'SetMusicPan'/2, 'GetMusicTimeLength'/2, 'GetMusicTimePlayed'/2, 'LoadAudioStream'/4, 'IsAudioStreamValid'/2, 'UnloadAudioStream'/1, 'UpdateAudioStream'/3, 'IsAudioStreamProcessed'/2, 'PlayAudioStream'/1, 'PauseAudioStream'/1, 'ResumeAudioStream'/1, 'IsAudioStreamPlaying'/2, 'StopAudioStream'/1, 'SetAudioStreamVolume'/2, 'SetAudioStreamPitch'/2, 'SetAudioStreamPan'/2, 'SetAudioStreamBufferSizeDefault'/1, % raymath: Utils math 'Clamp'/4, 'Lerp'/4, 'Normalize'/4, 'Remap'/6, 'Wrap'/4, 'FloatEquals'/3, % raymath: Vector2 math 'Vector2Zero'/1, 'Vector2One'/1, 'Vector2Add'/3, 'Vector2AddValue'/3, 'Vector2Subtract'/3, 'Vector2SubtractValue'/3, 'Vector2Length'/2, 'Vector2LengthSqr'/2, 'Vector2DotProduct'/3, 'Vector2CrossProduct'/3, 'Vector2Distance'/3, 'Vector2DistanceSqr'/3, 'Vector2Angle'/3, 'Vector2LineAngle'/3, 'Vector2Scale'/3, 'Vector2Multiply'/3, 'Vector2Negate'/2, 'Vector2Divide'/3, 'Vector2Normalize'/2, 'Vector2Transform'/3, 'Vector2Lerp'/4, 'Vector2Reflect'/3, 'Vector2Min'/3, 'Vector2Max'/3, 'Vector2Rotate'/3, 'Vector2MoveTowards'/4, 'Vector2Invert'/2, 'Vector2Clamp'/4, 'Vector2ClampValue'/4, 'Vector2Equals'/3, 'Vector2Refract'/4, % raymath: Vector3 math 'Vector3Zero'/1, 'Vector3One'/1, 'Vector3Add'/3, 'Vector3AddValue'/3, 'Vector3Subtract'/3, 'Vector3SubtractValue'/3, 'Vector3Scale'/3, 'Vector3Multiply'/3, 'Vector3CrossProduct'/3, 'Vector3Perpendicular'/2, 'Vector3Length'/2, 'Vector3LengthSqr'/2, 'Vector3DotProduct'/3, 'Vector3Distance'/3, 'Vector3DistanceSqr'/3, 'Vector3Angle'/3, 'Vector3Negate'/2, 'Vector3Divide'/3, 'Vector3Normalize'/2, 'Vector3Project'/3, 'Vector3Reject'/3, 'Vector3OrthoNormalize'/2, 'Vector3Transform'/3, 'Vector3RotateByQuaternion'/3, 'Vector3RotateByAxisAngle'/4, 'Vector3MoveTowards'/4, 'Vector3Lerp'/4, 'Vector3CubicHermite'/6, 'Vector3Reflect'/3, 'Vector3Min'/3, 'Vector3Max'/3, 'Vector3Barycenter'/5, 'Vector3Unproject'/4, 'Vector3ToFloatV'/2, 'Vector3Invert'/2, 'Vector3Clamp'/4, 'Vector3ClampValue'/4, 'Vector3Equals'/3, 'Vector3Refract'/4, % raymath: Vector4 math 'Vector4Zero'/1, 'Vector4One'/1, 'Vector4Add'/3, 'Vector4AddValue'/3, 'Vector4Subtract'/3, 'Vector4SubtractValue'/3, 'Vector4Length'/2, 'Vector4LengthSqr'/2, 'Vector4DotProduct'/3, 'Vector4Distance'/3, 'Vector4DistanceSqr'/3, 'Vector4Scale'/3, 'Vector4Multiply'/3, 'Vector4Negate'/2, 'Vector4Divide'/3, 'Vector4Normalize'/2, 'Vector4Min'/3, 'Vector4Max'/3, 'Vector4Lerp'/4, 'Vector4MoveTowards'/4, 'Vector4Invert'/2, 'Vector4Equals'/3, % raymath: Matrix math 'MatrixDeterminant'/2, 'MatrixTrace'/2, 'MatrixTranspose'/2, 'MatrixInvert'/2, 'MatrixIdentity'/1, 'MatrixAdd'/3, 'MatrixSubtract'/3, 'MatrixMultiply'/3, 'MatrixMultiplyValue'/3, 'MatrixTranslate'/4, 'MatrixRotate'/3, 'MatrixRotateX'/2, 'MatrixRotateY'/2, 'MatrixRotateZ'/2, 'MatrixRotateXYZ'/2, 'MatrixRotateZYX'/2, 'MatrixScale'/4, 'MatrixFrustum'/7, 'MatrixPerspective'/5, 'MatrixOrtho'/7, 'MatrixLookAt'/4, 'MatrixToFloatV'/2, % raymath: Quaternion math 'QuaternionAdd'/3, 'QuaternionAddValue'/3, 'QuaternionSubtract'/3, 'QuaternionSubtractValue'/3, 'QuaternionIdentity'/1, 'QuaternionLength'/2, 'QuaternionNormalize'/2, 'QuaternionInvert'/2, 'QuaternionMultiply'/3, 'QuaternionScale'/3, 'QuaternionDivide'/3, 'QuaternionLerp'/4, 'QuaternionNlerp'/4, 'QuaternionSlerp'/4, 'QuaternionCubicHermiteSpline'/6, 'QuaternionFromVector3ToVector3'/3, 'QuaternionFromMatrix'/2, 'QuaternionToMatrix'/2, 'QuaternionFromAxisAngle'/3, 'QuaternionToAxisAngle'/3, 'QuaternionFromEuler'/4, 'QuaternionToEuler'/2, 'QuaternionTransform'/3, 'QuaternionEquals'/3, 'MatrixCompose'/4, 'MatrixDecompose'/4, % constants raylib_const/2, raylib_color/2 ]). % Struct layouts, flattened. The comment on each line names the % fields in order; '_' is compiler padding. % Vector2 (8 bytes): x, y :- foreign_struct(vector2, [float,float]). % Vector3 (12 bytes): x, y, z :- foreign_struct(vector3, [float,float,float]). % Vector4 (16 bytes): x, y, z, w :- foreign_struct(vector4, [float,float,float,float]). % Quaternion (16 bytes): x, y, z, w :- foreign_struct(quaternion, [float,float,float,float]). % Matrix (64 bytes): m0, m4, m8, m12, m1, m5, m9, m13, m2, m6, m10, m14, m3, m7, m11, m15 :- foreign_struct(matrix, [float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float]). % Color (4 bytes): r, g, b, a :- foreign_struct(color, [uint8,uint8,uint8,uint8]). % Rectangle (16 bytes): x, y, width, height :- foreign_struct(rectangle, [float,float,float,float]). % Image (24 bytes): data, width, height, mipmaps, format :- foreign_struct(image, [ptr,sint,sint,sint,sint]). % Texture (20 bytes): id, width, height, mipmaps, format :- foreign_struct(texture, [uint,sint,sint,sint,sint]). % RenderTexture (44 bytes): id, texture.id, texture.width, texture.height, texture.mipmaps, texture.format, depth.id, depth.width, depth.height, depth.mipmaps, depth.format :- foreign_struct(rendertexture, [uint,uint,sint,sint,sint,sint,uint,sint,sint,sint,sint]). % NPatchInfo (36 bytes): source.x, source.y, source.width, source.height, left, top, right, bottom, layout :- foreign_struct(npatchinfo, [float,float,float,float,sint,sint,sint,sint,sint]). % GlyphInfo (40 bytes): value, offsetX, offsetY, advanceX, image.data, image.width, image.height, image.mipmaps, image.format :- foreign_struct(glyphinfo, [sint,sint,sint,sint,ptr,sint,sint,sint,sint]). % Font (48 bytes): baseSize, glyphCount, glyphPadding, texture.id, texture.width, texture.height, texture.mipmaps, texture.format, recs, glyphs :- foreign_struct(font, [sint,sint,sint,uint,sint,sint,sint,sint,ptr,ptr]). % Camera3D (44 bytes): position.x, position.y, position.z, target.x, target.y, target.z, up.x, up.y, up.z, fovy, projection :- foreign_struct(camera3d, [float,float,float,float,float,float,float,float,float,float,sint]). % Camera2D (24 bytes): offset.x, offset.y, target.x, target.y, rotation, zoom :- foreign_struct(camera2d, [float,float,float,float,float,float]). % Mesh (120 bytes): vertexCount, triangleCount, vertices, texcoords, texcoords2, normals, tangents, colors, indices, boneCount, _, boneIndices, boneWeights, animVertices, animNormals, vaoId, _, vboId :- foreign_struct(mesh, [sint,sint,ptr,ptr,ptr,ptr,ptr,ptr,ptr,sint,uint32,ptr,ptr,ptr,ptr,uint,uint32,ptr]). % Shader (16 bytes): id, _, locs :- foreign_struct(shader, [uint,uint32,ptr]). % Material (40 bytes): shader.id, _, shader.locs, maps, params[0], params[1], params[2], params[3] :- foreign_struct(material, [uint,uint32,ptr,ptr,float,float,float,float]). % Model (136 bytes): transform.m0, transform.m4, transform.m8, transform.m12, transform.m1, transform.m5, transform.m9, transform.m13, transform.m2, transform.m6, transform.m10, transform.m14, transform.m3, transform.m7, transform.m11, transform.m15, meshCount, materialCount, meshes, materials, meshMaterial, skeleton.boneCount, _, skeleton.bones, skeleton.bindPose, currentPose, boneMatrices :- foreign_struct(model, [float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,sint,sint,ptr,ptr,ptr,sint,uint32,ptr,ptr,ptr,ptr]). % ModelAnimation (48 bytes): name[0], name[1], name[2], name[3], name[4], name[5], name[6], name[7], name[8], name[9], name[10], name[11], name[12], name[13], name[14], name[15], name[16], name[17], name[18], name[19], name[20], name[21], name[22], name[23], name[24], name[25], name[26], name[27], name[28], name[29], name[30], name[31], boneCount, keyframeCount, keyframePoses :- foreign_struct(modelanimation, [schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,schar,sint,sint,ptr]). % Ray (24 bytes): position.x, position.y, position.z, direction.x, direction.y, direction.z :- foreign_struct(ray, [float,float,float,float,float,float]). % RayCollision (32 bytes): hit, _, _, distance, point.x, point.y, point.z, normal.x, normal.y, normal.z :- foreign_struct(raycollision, [bool,uint8,uint16,float,float,float,float,float,float,float]). % BoundingBox (24 bytes): min.x, min.y, min.z, max.x, max.y, max.z :- foreign_struct(boundingbox, [float,float,float,float,float,float]). % Wave (24 bytes): frameCount, sampleRate, sampleSize, channels, data :- foreign_struct(wave, [uint,uint,uint,uint,ptr]). % AudioStream (32 bytes): buffer, processor, sampleRate, sampleSize, channels :- foreign_struct(audiostream, [ptr,ptr,uint,uint,uint]). % Sound (40 bytes): stream.buffer, stream.processor, stream.sampleRate, stream.sampleSize, stream.channels, _, frameCount :- foreign_struct(sound, [ptr,ptr,uint,uint,uint,uint32,uint]). % Music (56 bytes): stream.buffer, stream.processor, stream.sampleRate, stream.sampleSize, stream.channels, _, frameCount, looping, _, _, ctxType, _, ctxData :- foreign_struct(music, [ptr,ptr,uint,uint,uint,uint32,uint,bool,uint8,uint16,sint,uint32,ptr]). % VrDeviceInfo (60 bytes): hResolution, vResolution, hScreenSize, vScreenSize, eyeToScreenDistance, lensSeparationDistance, interpupillaryDistance, lensDistortionValues[0], lensDistortionValues[1], lensDistortionValues[2], lensDistortionValues[3], chromaAbCorrection[0], chromaAbCorrection[1], chromaAbCorrection[2], chromaAbCorrection[3] :- foreign_struct(vrdeviceinfo, [sint,sint,float,float,float,float,float,float,float,float,float,float,float,float,float]). % VrStereoConfig (304 bytes): projection[0].m0, projection[0].m4, projection[0].m8, projection[0].m12, projection[0].m1, projection[0].m5, projection[0].m9, projection[0].m13, projection[0].m2, projection[0].m6, projection[0].m10, projection[0].m14, projection[0].m3, projection[0].m7, projection[0].m11, projection[0].m15, projection[1].m0, projection[1].m4, projection[1].m8, projection[1].m12, projection[1].m1, projection[1].m5, projection[1].m9, projection[1].m13, projection[1].m2, projection[1].m6, projection[1].m10, projection[1].m14, projection[1].m3, projection[1].m7, projection[1].m11, projection[1].m15, viewOffset[0].m0, viewOffset[0].m4, viewOffset[0].m8, viewOffset[0].m12, viewOffset[0].m1, viewOffset[0].m5, viewOffset[0].m9, viewOffset[0].m13, viewOffset[0].m2, viewOffset[0].m6, viewOffset[0].m10, viewOffset[0].m14, viewOffset[0].m3, viewOffset[0].m7, viewOffset[0].m11, viewOffset[0].m15, viewOffset[1].m0, viewOffset[1].m4, viewOffset[1].m8, viewOffset[1].m12, viewOffset[1].m1, viewOffset[1].m5, viewOffset[1].m9, viewOffset[1].m13, viewOffset[1].m2, viewOffset[1].m6, viewOffset[1].m10, viewOffset[1].m14, viewOffset[1].m3, viewOffset[1].m7, viewOffset[1].m11, viewOffset[1].m15, leftLensCenter[0], leftLensCenter[1], rightLensCenter[0], rightLensCenter[1], leftScreenCenter[0], leftScreenCenter[1], rightScreenCenter[0], rightScreenCenter[1], scale[0], scale[1], scaleIn[0], scaleIn[1] :- foreign_struct(vrstereoconfig, [float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float]). % FilePathList (16 bytes): count, _, paths :- foreign_struct(filepathlist, [uint,uint32,ptr]). % AutomationEvent (24 bytes): frame, type, params[0], params[1], params[2], params[3] :- foreign_struct(automationevent, [uint,uint,sint,sint,sint,sint]). % AutomationEventList (16 bytes): capacity, count, events :- foreign_struct(automationeventlist, [uint,uint,ptr]). % float3 (12 bytes): v[0], v[1], v[2] :- foreign_struct(float3, [float,float,float]). % float16 (64 bytes): v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11], v[12], v[13], v[14], v[15] :- foreign_struct(float16, [float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float]). % raylib typedefs these to structs already declared above; the % bindings below just use the underlying name. % texture2d -> texture % texturecubemap -> texture % rendertexture2d -> rendertexture % camera -> camera3d :- use_foreign_module('libraylib.so', [ % ==== Window and Graphics Device Functions (Module: core) ==== % Window-related functions 'InitWindow'([sint,sint,cstr], void), % Initialize window and OpenGL context 'CloseWindow'([], void), % Close window and unload OpenGL context 'WindowShouldClose'([], bool), % Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) 'IsWindowReady'([], bool), % Check if window has been initialized successfully 'IsWindowFullscreen'([], bool), % Check if window is currently fullscreen 'IsWindowHidden'([], bool), % Check if window is currently hidden 'IsWindowMinimized'([], bool), % Check if window is currently minimized 'IsWindowMaximized'([], bool), % Check if window is currently maximized 'IsWindowFocused'([], bool), % Check if window is currently focused 'IsWindowResized'([], bool), % Check if window has been resized last frame 'IsWindowState'([uint], bool), % Check if one specific window flag is enabled 'SetWindowState'([uint], void), % Set window configuration state using flags 'ClearWindowState'([uint], void), % Clear window configuration state flags 'ToggleFullscreen'([], void), % Toggle window state: fullscreen/windowed, resizes monitor to match window resolution 'ToggleBorderlessWindowed'([], void), % Toggle window state: borderless windowed, resizes window to match monitor resolution 'MaximizeWindow'([], void), % Set window state: maximized, if resizable 'MinimizeWindow'([], void), % Set window state: minimized, if resizable 'RestoreWindow'([], void), % Restore window from being minimized/maximized 'SetWindowIcon'([image], void), % Set icon for window (single image, RGBA 32bit) 'SetWindowIcons'([ptr,sint], void), % Set icon for window (multiple images, RGBA 32bit) 'SetWindowTitle'([cstr], void), % Set title for window 'SetWindowPosition'([sint,sint], void), % Set window position on screen 'SetWindowMonitor'([sint], void), % Set monitor for the current window 'SetWindowMinSize'([sint,sint], void), % Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) 'SetWindowMaxSize'([sint,sint], void), % Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) 'SetWindowSize'([sint,sint], void), % Set window dimensions 'SetWindowOpacity'([float], void), % Set window opacity [0.0f..1.0f] 'SetWindowFocused'([], void), % Set window focused 'GetWindowHandle'([], ptr), % Get native window handle 'GetScreenWidth'([], sint), % Get current screen width 'GetScreenHeight'([], sint), % Get current screen height 'GetRenderWidth'([], sint), % Get current render width (it considers HiDPI) 'GetRenderHeight'([], sint), % Get current render height (it considers HiDPI) 'GetMonitorCount'([], sint), % Get number of connected monitors 'GetCurrentMonitor'([], sint), % Get current monitor where window is placed 'GetMonitorPosition'([sint], vector2), % Get specified monitor position 'GetMonitorWidth'([sint], sint), % Get specified monitor width (current video mode used by monitor) 'GetMonitorHeight'([sint], sint), % Get specified monitor height (current video mode used by monitor) 'GetMonitorPhysicalWidth'([sint], sint), % Get specified monitor physical width in millimetres 'GetMonitorPhysicalHeight'([sint], sint), % Get specified monitor physical height in millimetres 'GetMonitorRefreshRate'([sint], sint), % Get specified monitor refresh rate 'GetWindowPosition'([], vector2), % Get window position XY on monitor 'GetWindowScaleDPI'([], vector2), % Get window scale DPI factor 'GetMonitorName'([sint], ccstr), % Get the human-readable, UTF-8 encoded name of the specified monitor 'SetClipboardText'([cstr], void), % Set clipboard text content 'GetClipboardText'([], ccstr), % Get clipboard text content 'GetClipboardImage'([], image), % Get clipboard image content 'EnableEventWaiting'([], void), % Enable waiting for events on EndDrawing(), no automatic event polling 'DisableEventWaiting'([], void), % Disable waiting for events on EndDrawing(), automatic events polling % Cursor-related functions 'ShowCursor'([], void), % Shows cursor 'HideCursor'([], void), % Hides cursor 'IsCursorHidden'([], bool), % Check if cursor is not visible 'EnableCursor'([], void), % Enables cursor (unlock cursor) 'DisableCursor'([], void), % Disables cursor (lock cursor) 'IsCursorOnScreen'([], bool), % Check if cursor is on the screen % Drawing-related functions 'ClearBackground'([color], void), % Set background color (framebuffer clear color) 'BeginDrawing'([], void), % Setup canvas (framebuffer) to start drawing 'EndDrawing'([], void), % End canvas drawing and swap buffers (double buffering) 'BeginMode2D'([camera2d], void), % Begin 2D mode with custom camera (2D) 'EndMode2D'([], void), % Ends 2D mode with custom camera 'BeginMode3D'([camera3d], void), % Begin 3D mode with custom camera (3D) 'EndMode3D'([], void), % Ends 3D mode and returns to default 2D orthographic mode 'BeginTextureMode'([rendertexture], void), % Begin drawing to render texture 'EndTextureMode'([], void), % Ends drawing to render texture 'BeginShaderMode'([shader], void), % Begin custom shader drawing 'EndShaderMode'([], void), % End custom shader drawing (use default shader) 'BeginBlendMode'([sint], void), % Begin blending mode (alpha, additive, multiplied, subtract, custom) 'EndBlendMode'([], void), % End blending mode (reset to default: alpha blending) 'BeginScissorMode'([sint,sint,sint,sint], void), % Begin scissor mode (define screen area for following drawing) 'EndScissorMode'([], void), % End scissor mode 'BeginVrStereoMode'([vrstereoconfig], void), % Begin stereo rendering (requires VR simulator) 'EndVrStereoMode'([], void), % End stereo rendering (requires VR simulator) 'LoadVrStereoConfig'([vrdeviceinfo], vrstereoconfig), % Load VR stereo config for VR simulator device parameters 'UnloadVrStereoConfig'([vrstereoconfig], void), % Unload VR stereo config % Shader management functions 'LoadShader'([cstr,cstr], shader), % Load shader from files and bind default locations 'LoadShaderFromMemory'([cstr,cstr], shader), % Load shader from code strings and bind default locations 'IsShaderValid'([shader], bool), % Check if a shader is valid (loaded on GPU) 'GetShaderLocation'([shader,cstr], sint), % Get shader uniform location 'GetShaderLocationAttrib'([shader,cstr], sint), % Get shader attribute location 'SetShaderValue'([shader,sint,ptr,sint], void), % Set shader uniform value 'SetShaderValueV'([shader,sint,ptr,sint,sint], void), % Set shader uniform value vector 'SetShaderValueMatrix'([shader,sint,matrix], void), % Set shader uniform value (matrix 4x4) 'SetShaderValueTexture'([shader,sint,texture], void), % Set shader uniform value and bind the texture (sampler2d) 'UnloadShader'([shader], void), % Unload shader from GPU memory (VRAM) % Screen-space-related functions 'GetScreenToWorldRay'([vector2,camera3d], ray), % Get a ray trace from screen position (i.e mouse) 'GetScreenToWorldRayEx'([vector2,camera3d,sint,sint], ray), % Get a ray trace from screen position (i.e mouse) in a viewport 'GetWorldToScreen'([vector3,camera3d], vector2), % Get the screen space position for a 3d world space position 'GetWorldToScreenEx'([vector3,camera3d,sint,sint], vector2), % Get size position for a 3d world space position 'GetWorldToScreen2D'([vector2,camera2d], vector2), % Get the screen space position for a 2d camera world space position 'GetScreenToWorld2D'([vector2,camera2d], vector2), % Get the world space position for a 2d camera screen space position 'GetCameraMatrix'([camera3d], matrix), % Get camera transform matrix (view matrix) 'GetCameraMatrix2D'([camera2d], matrix), % Get camera 2d transform matrix % Timing-related functions 'SetTargetFPS'([sint], void), % Set target FPS (maximum) 'GetFrameTime'([], float), % Get time in seconds for last frame drawn (delta time) 'GetTime'([], double), % Get elapsed time in seconds since InitWindow() 'GetFPS'([], sint), % Get current FPS % Custom frame control functions 'SwapScreenBuffer'([], void), % Swap back buffer with front buffer (screen drawing) 'PollInputEvents'([], void), % Register all input events 'WaitTime'([double], void), % Wait for some time (halt program execution) % Random values generation functions 'SetRandomSeed'([uint], void), % Set the seed for the random number generator 'GetRandomValue'([sint,sint], sint), % Get a random value between min and max (both included) 'LoadRandomSequence'([uint,sint,sint], ptr), % Load random values sequence, no values repeated 'UnloadRandomSequence'([ptr], void), % Unload random values sequence % Misc. functions 'TakeScreenshot'([cstr], void), % Takes a screenshot of current screen (filename extension defines format) 'SetConfigFlags'([uint], void), % Setup init configuration flags (view FLAGS) 'OpenURL'([cstr], void), % Open URL with default system browser (if available) 'SetTraceLogLevel'([sint], void), % Set the current threshold (minimum) log level 'MemAlloc'([uint], ptr), % Internal memory allocator 'MemRealloc'([ptr,uint], ptr), % Internal memory reallocator 'MemFree'([ptr], void), % Internal memory free % File system management functions 'LoadFileData'([cstr,ptr], ptr), % Load file data as byte array (read) 'UnloadFileData'([ptr], void), % Unload file data allocated by LoadFileData() 'SaveFileData'([cstr,ptr,sint], bool), % Save data to file from byte array (write), returns true on success 'ExportDataAsCode'([ptr,sint,cstr], bool), % Export data to code (.h), returns true on success 'LoadFileText'([cstr], ccstr), % Load text data from file (read), returns a '\0' terminated string 'UnloadFileText'([cstr], void), % Unload file text data allocated by LoadFileText() 'SaveFileText'([cstr,cstr], bool), % Save text data to file (write), string must be '\0' terminated, returns true on success 'FileRename'([cstr,cstr], sint), % Rename file (if exists) 'FileRemove'([cstr], sint), % Remove file (if exists) 'FileCopy'([cstr,cstr], sint), % Copy file from one path to another, dstPath created if it doesn't exist 'FileMove'([cstr,cstr], sint), % Move file from one directory to another, dstPath created if it doesn't exist 'FileTextReplace'([cstr,cstr,cstr], sint), % Replace text in an existing file 'FileTextFindIndex'([cstr,cstr], sint), % Find text in existing file 'FileExists'([cstr], bool), % Check if file exists 'DirectoryExists'([cstr], bool), % Check if a directory path exists 'IsFileExtension'([cstr,cstr], bool), % Check file extension (recommended include point: .png, .wav) 'GetFileLength'([cstr], sint), % Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) 'GetFileModTime'([cstr], slong), % Get file modification time (last write time) 'GetFileExtension'([cstr], ccstr), % Get pointer to extension for a filename string (includes dot: '.png') 'GetFileName'([cstr], ccstr), % Get pointer to filename for a path string 'GetFileNameWithoutExt'([cstr], ccstr), % Get filename string without extension (uses static string) 'GetDirectoryPath'([cstr], ccstr), % Get full path for a given fileName with path (uses static string) 'GetPrevDirectoryPath'([cstr], ccstr), % Get previous directory path for a given path (uses static string) 'GetWorkingDirectory'([], ccstr), % Get current working directory (uses static string) 'GetApplicationDirectory'([], ccstr), % Get the directory of the running application (uses static string) 'MakeDirectory'([cstr], sint), % Create directories (including full path requested), returns 0 on success 'ChangeDirectory'([cstr], bool), % Change working directory, return true on success 'IsPathFile'([cstr], bool), % Check if a given path is a file or a directory 'IsFileNameValid'([cstr], bool), % Check if fileName is valid for the platform/OS 'LoadDirectoryFiles'([cstr], filepathlist), % Load directory filepaths, files and directories, no subdirs scan 'LoadDirectoryFilesEx'([cstr,cstr,bool], filepathlist), % Load directory filepaths with extension filtering and subdir scan; some filters available: "*.*", "FILES*", "DIRS*" 'UnloadDirectoryFiles'([filepathlist], void), % Unload filepaths 'IsFileDropped'([], bool), % Check if a file has been dropped into window 'LoadDroppedFiles'([], filepathlist), % Load dropped filepaths 'UnloadDroppedFiles'([filepathlist], void), % Unload dropped filepaths 'GetDirectoryFileCount'([cstr], uint), % Get the file count in a directory 'GetDirectoryFileCountEx'([cstr,cstr,bool], uint), % Get the file count in a directory with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result 'CompressData'([ptr,sint,ptr], ptr), % Compress data (DEFLATE algorithm), memory must be MemFree() 'DecompressData'([ptr,sint,ptr], ptr), % Decompress data (DEFLATE algorithm), memory must be MemFree() 'EncodeDataBase64'([ptr,sint,ptr], ccstr), % Encode data to Base64 string (includes NULL terminator), memory must be MemFree() 'DecodeDataBase64'([cstr,ptr], ptr), % Decode Base64 string (expected NULL terminated), memory must be MemFree() 'ComputeCRC32'([ptr,sint], uint), % Compute CRC32 hash code 'ComputeMD5'([ptr,sint], ptr), % Compute MD5 hash code, returns static int[4] (16 bytes) 'ComputeSHA1'([ptr,sint], ptr), % Compute SHA1 hash code, returns static int[5] (20 bytes) 'ComputeSHA256'([ptr,sint], ptr), % Compute SHA256 hash code, returns static int[8] (32 bytes) 'LoadAutomationEventList'([cstr], automationeventlist), % Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS 'UnloadAutomationEventList'([automationeventlist], void), % Unload automation events list from file 'ExportAutomationEventList'([automationeventlist,cstr], bool), % Export automation events list as text file 'SetAutomationEventList'([ptr], void), % Set automation event list to record to 'SetAutomationEventBaseFrame'([sint], void), % Set automation event internal base frame to start recording 'StartAutomationEventRecording'([], void), % Start recording automation events (AutomationEventList must be set) 'StopAutomationEventRecording'([], void), % Stop recording automation events 'PlayAutomationEvent'([automationevent], void), % Play a recorded automation event % ==== Input Handling Functions (Module: core) ==== % 'IsKeyPressed'([sint], bool), % Check if a key has been pressed once 'IsKeyPressedRepeat'([sint], bool), % Check if a key has been pressed again 'IsKeyDown'([sint], bool), % Check if a key is being pressed 'IsKeyReleased'([sint], bool), % Check if a key has been released once 'IsKeyUp'([sint], bool), % Check if a key is NOT being pressed 'GetKeyPressed'([], sint), % Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty 'GetCharPressed'([], sint), % Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty 'GetKeyName'([sint], ccstr), % Get name of a QWERTY key on the current keyboard layout (eg returns string 'q' for KEY_A on an AZERTY keyboard) 'SetExitKey'([sint], void), % Set a custom key to exit program (default is ESC) 'IsGamepadAvailable'([sint], bool), % Check if a gamepad is available 'GetGamepadName'([sint], ccstr), % Get gamepad internal name id 'IsGamepadButtonPressed'([sint,sint], bool), % Check if a gamepad button has been pressed once 'IsGamepadButtonDown'([sint,sint], bool), % Check if a gamepad button is being pressed 'IsGamepadButtonReleased'([sint,sint], bool), % Check if a gamepad button has been released once 'IsGamepadButtonUp'([sint,sint], bool), % Check if a gamepad button is NOT being pressed 'GetGamepadButtonPressed'([], sint), % Get the last gamepad button pressed 'GetGamepadAxisCount'([sint], sint), % Get axis count for a gamepad 'GetGamepadAxisMovement'([sint,sint], float), % Get movement value for a gamepad axis 'SetGamepadMappings'([cstr], sint), % Set internal gamepad mappings (SDL_GameControllerDB) 'SetGamepadVibration'([sint,float,float,float], void), % Set gamepad vibration for both motors (duration in seconds) 'IsMouseButtonPressed'([sint], bool), % Check if a mouse button has been pressed once 'IsMouseButtonDown'([sint], bool), % Check if a mouse button is being pressed 'IsMouseButtonReleased'([sint], bool), % Check if a mouse button has been released once 'IsMouseButtonUp'([sint], bool), % Check if a mouse button is NOT being pressed 'GetMouseX'([], sint), % Get mouse position X 'GetMouseY'([], sint), % Get mouse position Y 'GetMousePosition'([], vector2), % Get mouse position XY 'GetMouseDelta'([], vector2), % Get mouse delta between frames 'SetMousePosition'([sint,sint], void), % Set mouse position XY 'SetMouseOffset'([sint,sint], void), % Set mouse offset 'SetMouseScale'([float,float], void), % Set mouse scaling 'GetMouseWheelMove'([], float), % Get mouse wheel movement for X or Y, whichever is larger 'GetMouseWheelMoveV'([], vector2), % Get mouse wheel movement for both X and Y 'SetMouseCursor'([sint], void), % Set mouse cursor 'GetTouchX'([], sint), % Get touch position X for touch point 0 (relative to screen size) 'GetTouchY'([], sint), % Get touch position Y for touch point 0 (relative to screen size) 'GetTouchPosition'([sint], vector2), % Get touch position XY for a touch point index (relative to screen size) 'GetTouchPointId'([sint], sint), % Get touch point identifier for given index 'GetTouchPointCount'([], sint), % Get number of touch points % ==== Gestures and Touch Handling Functions (Module: rgestures) ==== % 'SetGesturesEnabled'([uint], void), % Enable a set of gestures using flags 'IsGestureDetected'([uint], bool), % Check if a gesture have been detected 'GetGestureDetected'([], sint), % Get latest detected gesture 'GetGestureHoldDuration'([], float), % Get gesture hold time in seconds 'GetGestureDragVector'([], vector2), % Get gesture drag vector 'GetGestureDragAngle'([], float), % Get gesture drag angle 'GetGesturePinchVector'([], vector2), % Get gesture pinch delta 'GetGesturePinchAngle'([], float), % Get gesture pinch angle % ==== Camera System Functions (Module: rcamera) ==== % 'UpdateCamera'([ptr,sint], void), % Update camera position for selected mode 'UpdateCameraPro'([ptr,vector3,vector3,float], void), % Update camera movement/rotation % ==== Basic Shapes Drawing Functions (Module: shapes) ==== % 'SetShapesTexture'([texture,rectangle], void), % Set texture and rectangle to be used on shapes drawing 'GetShapesTexture'([], texture), % Get texture that is used for shapes drawing 'GetShapesTextureRectangle'([], rectangle), % Get texture source rectangle that is used for shapes drawing % Basic shapes drawing functions 'DrawPixel'([sint,sint,color], void), % Draw a pixel using geometry [Can be slow, use with care] 'DrawPixelV'([vector2,color], void), % Draw a pixel using geometry (Vector version) [Can be slow, use with care] 'DrawLine'([sint,sint,sint,sint,color], void), % Draw a line 'DrawLineV'([vector2,vector2,color], void), % Draw a line (using gl lines) 'DrawLineEx'([vector2,vector2,float,color], void), % Draw a line (using triangles/quads) 'DrawLineStrip'([ptr,sint,color], void), % Draw lines sequence (using gl lines) 'DrawLineBezier'([vector2,vector2,float,color], void), % Draw line segment cubic-bezier in-out interpolation 'DrawLineDashed'([vector2,vector2,sint,sint,color], void), % Draw a dashed line 'DrawCircle'([sint,sint,float,color], void), % Draw a color-filled circle 'DrawCircleV'([vector2,float,color], void), % Draw a color-filled circle (Vector version) 'DrawCircleGradient'([vector2,float,color,color], void), % Draw a gradient-filled circle 'DrawCircleSector'([vector2,float,float,float,sint,color], void), % Draw a piece of a circle 'DrawCircleSectorLines'([vector2,float,float,float,sint,color], void), % Draw circle sector outline 'DrawCircleLines'([sint,sint,float,color], void), % Draw circle outline 'DrawCircleLinesV'([vector2,float,color], void), % Draw circle outline (Vector version) 'DrawEllipse'([sint,sint,float,float,color], void), % Draw ellipse 'DrawEllipseV'([vector2,float,float,color], void), % Draw ellipse (Vector version) 'DrawEllipseLines'([sint,sint,float,float,color], void), % Draw ellipse outline 'DrawEllipseLinesV'([vector2,float,float,color], void), % Draw ellipse outline (Vector version) 'DrawRing'([vector2,float,float,float,float,sint,color], void), % Draw ring 'DrawRingLines'([vector2,float,float,float,float,sint,color], void), % Draw ring outline 'DrawRectangle'([sint,sint,sint,sint,color], void), % Draw a color-filled rectangle 'DrawRectangleV'([vector2,vector2,color], void), % Draw a color-filled rectangle (Vector version) 'DrawRectangleRec'([rectangle,color], void), % Draw a color-filled rectangle 'DrawRectanglePro'([rectangle,vector2,float,color], void), % Draw a color-filled rectangle with pro parameters 'DrawRectangleGradientV'([sint,sint,sint,sint,color,color], void), % Draw a vertical-gradient-filled rectangle 'DrawRectangleGradientH'([sint,sint,sint,sint,color,color], void), % Draw a horizontal-gradient-filled rectangle 'DrawRectangleGradientEx'([rectangle,color,color,color,color], void), % Draw a gradient-filled rectangle with custom vertex colors 'DrawRectangleLines'([sint,sint,sint,sint,color], void), % Draw rectangle outline 'DrawRectangleLinesEx'([rectangle,float,color], void), % Draw rectangle outline with extended parameters 'DrawRectangleRounded'([rectangle,float,sint,color], void), % Draw rectangle with rounded edges 'DrawRectangleRoundedLines'([rectangle,float,sint,color], void), % Draw rectangle lines with rounded edges 'DrawRectangleRoundedLinesEx'([rectangle,float,sint,float,color], void), % Draw rectangle with rounded edges outline 'DrawTriangle'([vector2,vector2,vector2,color], void), % Draw a color-filled triangle (vertex in counter-clockwise order!) 'DrawTriangleLines'([vector2,vector2,vector2,color], void), % Draw triangle outline (vertex in counter-clockwise order!) 'DrawTriangleFan'([ptr,sint,color], void), % Draw a triangle fan defined by points (first vertex is the center) 'DrawTriangleStrip'([ptr,sint,color], void), % Draw a triangle strip defined by points 'DrawPoly'([vector2,sint,float,float,color], void), % Draw a regular polygon (Vector version) 'DrawPolyLines'([vector2,sint,float,float,color], void), % Draw a polygon outline of n sides 'DrawPolyLinesEx'([vector2,sint,float,float,float,color], void), % Draw a polygon outline of n sides with extended parameters % Splines drawing functions 'DrawSplineLinear'([ptr,sint,float,color], void), % Draw spline: Linear, minimum 2 points 'DrawSplineBasis'([ptr,sint,float,color], void), % Draw spline: B-Spline, minimum 4 points 'DrawSplineCatmullRom'([ptr,sint,float,color], void), % Draw spline: Catmull-Rom, minimum 4 points 'DrawSplineBezierQuadratic'([ptr,sint,float,color], void), % Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] 'DrawSplineBezierCubic'([ptr,sint,float,color], void), % Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] 'DrawSplineSegmentLinear'([vector2,vector2,float,color], void), % Draw spline segment: Linear, 2 points 'DrawSplineSegmentBasis'([vector2,vector2,vector2,vector2,float,color], void), % Draw spline segment: B-Spline, 4 points 'DrawSplineSegmentCatmullRom'([vector2,vector2,vector2,vector2,float,color], void), % Draw spline segment: Catmull-Rom, 4 points 'DrawSplineSegmentBezierQuadratic'([vector2,vector2,vector2,float,color], void), % Draw spline segment: Quadratic Bezier, 2 points, 1 control point 'DrawSplineSegmentBezierCubic'([vector2,vector2,vector2,vector2,float,color], void), % Draw spline segment: Cubic Bezier, 2 points, 2 control points 'GetSplinePointLinear'([vector2,vector2,float], vector2), % Get (evaluate) spline point: Linear 'GetSplinePointBasis'([vector2,vector2,vector2,vector2,float], vector2), % Get (evaluate) spline point: B-Spline 'GetSplinePointCatmullRom'([vector2,vector2,vector2,vector2,float], vector2), % Get (evaluate) spline point: Catmull-Rom 'GetSplinePointBezierQuad'([vector2,vector2,vector2,float], vector2), % Get (evaluate) spline point: Quadratic Bezier 'GetSplinePointBezierCubic'([vector2,vector2,vector2,vector2,float], vector2), % Get (evaluate) spline point: Cubic Bezier % Basic shapes collision detection functions 'CheckCollisionRecs'([rectangle,rectangle], bool), % Check collision between two rectangles 'CheckCollisionCircles'([vector2,float,vector2,float], bool), % Check collision between two circles 'CheckCollisionCircleRec'([vector2,float,rectangle], bool), % Check collision between circle and rectangle 'CheckCollisionCircleLine'([vector2,float,vector2,vector2], bool), % Check if circle collides with a line created betweeen two points [p1] and [p2] 'CheckCollisionPointRec'([vector2,rectangle], bool), % Check if point is inside rectangle 'CheckCollisionPointCircle'([vector2,vector2,float], bool), % Check if point is inside circle 'CheckCollisionPointTriangle'([vector2,vector2,vector2,vector2], bool), % Check if point is inside a triangle 'CheckCollisionPointLine'([vector2,vector2,vector2,sint], bool), % Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] 'CheckCollisionPointPoly'([vector2,ptr,sint], bool), % Check if point is within a polygon described by array of vertices 'CheckCollisionLines'([vector2,vector2,vector2,vector2,ptr], bool), % Check the collision between two lines defined by two points each, returns collision point by reference 'GetCollisionRec'([rectangle,rectangle], rectangle), % Get collision rectangle for two rectangles collision % ==== Texture Loading and Drawing Functions (Module: textures) ==== % Image loading functions 'LoadImage'([cstr], image), % Load image from file into CPU memory (RAM) 'LoadImageRaw'([cstr,sint,sint,sint,sint], image), % Load image from RAW file data 'LoadImageAnim'([cstr,ptr], image), % Load image sequence from file (frames appended to image.data) 'LoadImageAnimFromMemory'([cstr,ptr,sint,ptr], image), % Load image sequence from memory buffer 'LoadImageFromMemory'([cstr,ptr,sint], image), % Load image from memory buffer, fileType refers to extension: i.e. '.png' 'LoadImageFromTexture'([texture], image), % Load image from GPU texture data 'LoadImageFromScreen'([], image), % Load image from screen buffer and (screenshot) 'IsImageValid'([image], bool), % Check if an image is valid (data and parameters) 'UnloadImage'([image], void), % Unload image from CPU memory (RAM) 'ExportImage'([image,cstr], bool), % Export image data to file, returns true on success 'ExportImageToMemory'([image,cstr,ptr], ptr), % Export image to memory buffer, memory must be MemFree() 'ExportImageAsCode'([image,cstr], bool), % Export image as code file defining an array of bytes, returns true on success % Image generation functions 'GenImageColor'([sint,sint,color], image), % Generate image: plain color 'GenImageGradientLinear'([sint,sint,sint,color,color], image), % Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient 'GenImageGradientRadial'([sint,sint,float,color,color], image), % Generate image: radial gradient 'GenImageGradientSquare'([sint,sint,float,color,color], image), % Generate image: square gradient 'GenImageChecked'([sint,sint,sint,sint,color,color], image), % Generate image: checked 'GenImageWhiteNoise'([sint,sint,float], image), % Generate image: white noise 'GenImagePerlinNoise'([sint,sint,sint,sint,float], image), % Generate image: perlin noise 'GenImageCellular'([sint,sint,sint], image), % Generate image: cellular algorithm, bigger tileSize means bigger cells 'GenImageText'([sint,sint,cstr], image), % Generate image: grayscale image from text data % Image manipulation functions 'ImageCopy'([image], image), % Create an image duplicate (useful for transformations) 'ImageFromImage'([image,rectangle], image), % Create an image from another image piece 'ImageFromChannel'([image,sint], image), % Create an image from a selected channel of another image (GRAYSCALE) 'ImageText'([cstr,sint,color], image), % Create an image from text (default font) 'ImageTextEx'([font,cstr,float,float,color], image), % Create an image from text (custom sprite font) 'ImageFormat'([ptr,sint], void), % Convert image data to desired format 'ImageToPOT'([ptr,color], void), % Convert image to POT (power-of-two) 'ImageCrop'([ptr,rectangle], void), % Crop an image to a defined rectangle 'ImageAlphaCrop'([ptr,float], void), % Crop image depending on alpha value 'ImageAlphaClear'([ptr,color,float], void), % Clear alpha channel to desired color 'ImageAlphaMask'([ptr,image], void), % Apply alpha mask to image 'ImageAlphaPremultiply'([ptr], void), % Premultiply alpha channel 'ImageBlurGaussian'([ptr,sint], void), % Apply Gaussian blur using a box blur approximation 'ImageKernelConvolution'([ptr,ptr,sint], void), % Apply custom square convolution kernel to image 'ImageResize'([ptr,sint,sint], void), % Resize image (Bicubic scaling algorithm) 'ImageResizeNN'([ptr,sint,sint], void), % Resize image (Nearest-Neighbor scaling algorithm) 'ImageResizeCanvas'([ptr,sint,sint,sint,sint,color], void), % Resize canvas and fill with color 'ImageMipmaps'([ptr], void), % Compute all mipmap levels for a provided image 'ImageDither'([ptr,sint,sint,sint,sint], void), % Dither image data to 16bpp or lower (Floyd-Steinberg dithering) 'ImageFlipVertical'([ptr], void), % Flip image vertically 'ImageFlipHorizontal'([ptr], void), % Flip image horizontally 'ImageRotate'([ptr,sint], void), % Rotate image by input angle in degrees (-359 to 359) 'ImageRotateCW'([ptr], void), % Rotate image clockwise 90deg 'ImageRotateCCW'([ptr], void), % Rotate image counter-clockwise 90deg 'ImageColorTint'([ptr,color], void), % Modify image color: tint 'ImageColorInvert'([ptr], void), % Modify image color: invert 'ImageColorGrayscale'([ptr], void), % Modify image color: grayscale 'ImageColorContrast'([ptr,float], void), % Modify image color: contrast (-100 to 100) 'ImageColorBrightness'([ptr,sint], void), % Modify image color: brightness (-255 to 255) 'ImageColorReplace'([ptr,color,color], void), % Modify image color: replace color 'LoadImageColors'([image], ptr), % Load color data from image as a Color array (RGBA - 32bit) 'LoadImagePalette'([image,sint,ptr], ptr), % Load colors palette from image as a Color array (RGBA - 32bit) 'UnloadImageColors'([ptr], void), % Unload color data loaded with LoadImageColors() 'UnloadImagePalette'([ptr], void), % Unload colors palette loaded with LoadImagePalette() 'GetImageAlphaBorder'([image,float], rectangle), % Get image alpha border rectangle 'GetImageColor'([image,sint,sint], color), % Get image pixel color at (x, y) position % Image drawing functions 'ImageClearBackground'([ptr,color], void), % Clear image background with given color 'ImageDrawPixel'([ptr,sint,sint,color], void), % Draw pixel within an image 'ImageDrawPixelV'([ptr,vector2,color], void), % Draw pixel within an image (Vector version) 'ImageDrawLine'([ptr,sint,sint,sint,sint,color], void), % Draw line within an image 'ImageDrawLineV'([ptr,vector2,vector2,color], void), % Draw line within an image (Vector version) 'ImageDrawLineEx'([ptr,vector2,vector2,sint,color], void), % Draw a line defining thickness within an image 'ImageDrawCircle'([ptr,sint,sint,sint,color], void), % Draw a filled circle within an image 'ImageDrawCircleV'([ptr,vector2,sint,color], void), % Draw a filled circle within an image (Vector version) 'ImageDrawCircleLines'([ptr,sint,sint,sint,color], void), % Draw circle outline within an image 'ImageDrawCircleLinesV'([ptr,vector2,sint,color], void), % Draw circle outline within an image (Vector version) 'ImageDrawRectangle'([ptr,sint,sint,sint,sint,color], void), % Draw rectangle within an image 'ImageDrawRectangleV'([ptr,vector2,vector2,color], void), % Draw rectangle within an image (Vector version) 'ImageDrawRectangleRec'([ptr,rectangle,color], void), % Draw rectangle within an image 'ImageDrawRectangleLines'([ptr,rectangle,sint,color], void), % Draw rectangle lines within an image 'ImageDrawTriangle'([ptr,vector2,vector2,vector2,color], void), % Draw triangle within an image 'ImageDrawTriangleEx'([ptr,vector2,vector2,vector2,color,color,color], void), % Draw triangle with interpolated colors within an image 'ImageDrawTriangleLines'([ptr,vector2,vector2,vector2,color], void), % Draw triangle outline within an image 'ImageDrawTriangleFan'([ptr,ptr,sint,color], void), % Draw a triangle fan defined by points within an image (first vertex is the center) 'ImageDrawTriangleStrip'([ptr,ptr,sint,color], void), % Draw a triangle strip defined by points within an image 'ImageDraw'([ptr,image,rectangle,rectangle,color], void), % Draw a source image within a destination image (tint applied to source) 'ImageDrawText'([ptr,cstr,sint,sint,sint,color], void), % Draw text (using default font) within an image (destination) 'ImageDrawTextEx'([ptr,font,cstr,vector2,float,float,color], void), % Draw text (custom sprite font) within an image (destination) % Texture loading functions 'LoadTexture'([cstr], texture), % Load texture from file into GPU memory (VRAM) 'LoadTextureFromImage'([image], texture), % Load texture from image data 'LoadTextureCubemap'([image,sint], texture), % Load cubemap from image, multiple image cubemap layouts supported 'LoadRenderTexture'([sint,sint], rendertexture), % Load texture for rendering (framebuffer) 'IsTextureValid'([texture], bool), % Check if a texture is valid (loaded in GPU) 'UnloadTexture'([texture], void), % Unload texture from GPU memory (VRAM) 'IsRenderTextureValid'([rendertexture], bool), % Check if a render texture is valid (loaded in GPU) 'UnloadRenderTexture'([rendertexture], void), % Unload render texture from GPU memory (VRAM) 'UpdateTexture'([texture,ptr], void), % Update GPU texture with new data (pixels should be able to fill texture) 'UpdateTextureRec'([texture,rectangle,ptr], void), % Update GPU texture rectangle with new data (pixels and rec should fit in texture) % Texture configuration functions 'GenTextureMipmaps'([ptr], void), % Generate GPU mipmaps for a texture 'SetTextureFilter'([texture,sint], void), % Set texture scaling filter mode 'SetTextureWrap'([texture,sint], void), % Set texture wrapping mode % Texture drawing functions 'DrawTexture'([texture,sint,sint,color], void), % Draw a Texture2D 'DrawTextureV'([texture,vector2,color], void), % Draw a Texture2D with position defined as Vector2 'DrawTextureEx'([texture,vector2,float,float,color], void), % Draw a Texture2D with extended parameters 'DrawTextureRec'([texture,rectangle,vector2,color], void), % Draw a part of a texture defined by a rectangle 'DrawTexturePro'([texture,rectangle,rectangle,vector2,float,color], void), % Draw a part of a texture defined by a rectangle with 'pro' parameters 'DrawTextureNPatch'([texture,npatchinfo,rectangle,vector2,float,color], void), % Draws a texture (or part of it) that stretches or shrinks nicely % Color/pixel related functions 'ColorIsEqual'([color,color], bool), % Check if two colors are equal 'Fade'([color,float], color), % Get color with alpha applied, alpha goes from 0.0f to 1.0f 'ColorToInt'([color], sint), % Get hexadecimal value for a Color (0xRRGGBBAA) 'ColorNormalize'([color], vector4), % Get Color normalized as float [0..1] 'ColorFromNormalized'([vector4], color), % Get Color from normalized values [0..1] 'ColorToHSV'([color], vector3), % Get HSV values for a Color, hue [0..360], saturation/value [0..1] 'ColorFromHSV'([float,float,float], color), % Get a Color from HSV values, hue [0..360], saturation/value [0..1] 'ColorTint'([color,color], color), % Get color multiplied with another color 'ColorBrightness'([color,float], color), % Get color with brightness correction, brightness factor goes from -1.0f to 1.0f 'ColorContrast'([color,float], color), % Get color with contrast correction, contrast values between -1.0f and 1.0f 'ColorAlpha'([color,float], color), % Get color with alpha applied, alpha goes from 0.0f to 1.0f 'ColorAlphaBlend'([color,color,color], color), % Get src alpha-blended into dst color with tint 'ColorLerp'([color,color,float], color), % Get color lerp interpolation between two colors, factor [0.0f..1.0f] 'GetColor'([uint], color), % Get Color structure from hexadecimal value 'GetPixelColor'([ptr,sint], color), % Get Color from a source pixel pointer of certain format 'SetPixelColor'([ptr,color,sint], void), % Set color formatted into destination pixel pointer 'GetPixelDataSize'([sint,sint,sint], sint), % Get pixel data size in bytes for certain format % ==== Font Loading and Text Drawing Functions (Module: text) ==== % Font loading/unloading functions 'GetFontDefault'([], font), % Get the default Font 'LoadFont'([cstr], font), % Load font from file into GPU memory (VRAM) 'LoadFontEx'([cstr,sint,ptr,sint], font), % Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height 'LoadFontFromImage'([image,color,sint], font), % Load font from Image (XNA style) 'LoadFontFromMemory'([cstr,ptr,sint,sint,ptr,sint], font), % Load font from memory buffer, fileType refers to extension: i.e. '.ttf' 'IsFontValid'([font], bool), % Check if a font is valid (font data loaded, WARNING: GPU texture not checked) 'LoadFontData'([ptr,sint,sint,ptr,sint,sint,ptr], ptr), % Load font data for further use 'GenImageFontAtlas'([ptr,ptr,sint,sint,sint,sint], image), % Generate image font atlas using chars info 'UnloadFontData'([ptr,sint], void), % Unload font chars info data (RAM) 'UnloadFont'([font], void), % Unload font from GPU memory (VRAM) 'ExportFontAsCode'([font,cstr], bool), % Export font as code file, returns true on success % Text drawing functions 'DrawFPS'([sint,sint], void), % Draw current FPS 'DrawText'([cstr,sint,sint,sint,color], void), % Draw text (using default font) 'DrawTextEx'([font,cstr,vector2,float,float,color], void), % Draw text using font and additional parameters 'DrawTextPro'([font,cstr,vector2,vector2,float,float,float,color], void), % Draw text using Font and pro parameters (rotation) 'DrawTextCodepoint'([font,sint,vector2,float,color], void), % Draw one character (codepoint) 'DrawTextCodepoints'([font,ptr,sint,vector2,float,float,color], void), % Draw multiple character (codepoint) % Text font info functions 'SetTextLineSpacing'([sint], void), % Set vertical line spacing when drawing with line-breaks 'MeasureText'([cstr,sint], sint), % Measure string width for default font 'MeasureTextEx'([font,cstr,float,float], vector2), % Measure string size for Font 'MeasureTextCodepoints'([font,ptr,sint,float,float], vector2), % Measure string size for an existing array of codepoints for Font 'GetGlyphIndex'([font,sint], sint), % Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found 'GetGlyphInfo'([font,sint], glyphinfo), % Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found 'GetGlyphAtlasRec'([font,sint], rectangle), % Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found 'LoadUTF8'([ptr,sint], ccstr), % Load UTF-8 text encoded from codepoints array 'UnloadUTF8'([cstr], void), % Unload UTF-8 text encoded from codepoints array 'LoadCodepoints'([cstr,ptr], ptr), % Load all codepoints from a UTF-8 text string, codepoints count returned by parameter 'UnloadCodepoints'([ptr], void), % Unload codepoints data from memory 'GetCodepointCount'([cstr], sint), % Get total number of codepoints in a UTF-8 encoded string 'GetCodepoint'([cstr,ptr], sint), % Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure 'GetCodepointNext'([cstr,ptr], sint), % Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure 'GetCodepointPrevious'([cstr,ptr], sint), % Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure 'CodepointToUTF8'([sint,ptr], ccstr), % Encode one codepoint into UTF-8 byte array (array length returned as parameter) 'LoadTextLines'([cstr,ptr], ptr), % Load text as separate lines ('\n') 'UnloadTextLines'([ptr,sint], void), % Unload text lines 'TextCopy'([cstr,cstr], sint), % Copy one string to another, returns bytes copied 'TextIsEqual'([cstr,cstr], bool), % Check if two text string are equal 'TextLength'([cstr], uint), % Get text length, checks for '\0' ending 'TextSubtext'([cstr,sint,sint], ccstr), % Get a piece of a text string 'TextRemoveSpaces'([cstr], ccstr), % Remove text spaces, concat words 'GetTextBetween'([cstr,cstr,cstr], ccstr), % Get text between two strings 'TextReplace'([cstr,cstr,cstr], ccstr), % Replace text string with new string 'TextReplaceAlloc'([cstr,cstr,cstr], ccstr), % Replace text string with new string, memory must be MemFree() 'TextReplaceBetween'([cstr,cstr,cstr,cstr], ccstr), % Replace text between two specific strings 'TextReplaceBetweenAlloc'([cstr,cstr,cstr,cstr], ccstr), % Replace text between two specific strings, memory must be MemFree() 'TextInsert'([cstr,cstr,sint], ccstr), % Insert text in a defined byte position 'TextInsertAlloc'([cstr,cstr,sint], ccstr), % Insert text in a defined byte position, memory must be MemFree() 'TextJoin'([ptr,sint,cstr], ccstr), % Join text strings with delimiter 'TextSplit'([cstr,schar,ptr], ptr), % Split text into multiple strings, using MAX_TEXTSPLIT_COUNT static strings 'TextAppend'([cstr,cstr,ptr], void), % Append text at specific position and move cursor 'TextFindIndex'([cstr,cstr], sint), % Find first text occurrence within a string, -1 if not found 'TextToUpper'([cstr], ccstr), % Get upper case version of provided string 'TextToLower'([cstr], ccstr), % Get lower case version of provided string 'TextToPascal'([cstr], ccstr), % Get Pascal case notation version of provided string 'TextToSnake'([cstr], ccstr), % Get Snake case notation version of provided string 'TextToCamel'([cstr], ccstr), % Get Camel case notation version of provided string 'TextToInteger'([cstr], sint), % Get integer value from text 'TextToFloat'([cstr], float), % Get float value from text % ==== Basic 3d Shapes Drawing Functions (Module: models) ==== % Basic geometric 3D shapes drawing functions 'DrawLine3D'([vector3,vector3,color], void), % Draw a line in 3D world space 'DrawPoint3D'([vector3,color], void), % Draw a point in 3D space, actually a small line 'DrawCircle3D'([vector3,float,vector3,float,color], void), % Draw a circle in 3D world space 'DrawTriangle3D'([vector3,vector3,vector3,color], void), % Draw a color-filled triangle (vertex in counter-clockwise order!) 'DrawTriangleStrip3D'([ptr,sint,color], void), % Draw a triangle strip defined by points 'DrawCube'([vector3,float,float,float,color], void), % Draw cube 'DrawCubeV'([vector3,vector3,color], void), % Draw cube (Vector version) 'DrawCubeWires'([vector3,float,float,float,color], void), % Draw cube wires 'DrawCubeWiresV'([vector3,vector3,color], void), % Draw cube wires (Vector version) 'DrawSphere'([vector3,float,color], void), % Draw sphere 'DrawSphereEx'([vector3,float,sint,sint,color], void), % Draw sphere with extended parameters 'DrawSphereWires'([vector3,float,sint,sint,color], void), % Draw sphere wires 'DrawCylinder'([vector3,float,float,float,sint,color], void), % Draw a cylinder/cone 'DrawCylinderEx'([vector3,vector3,float,float,sint,color], void), % Draw a cylinder with base at startPos and top at endPos 'DrawCylinderWires'([vector3,float,float,float,sint,color], void), % Draw a cylinder/cone wires 'DrawCylinderWiresEx'([vector3,vector3,float,float,sint,color], void), % Draw a cylinder wires with base at startPos and top at endPos 'DrawCapsule'([vector3,vector3,float,sint,sint,color], void), % Draw a capsule with the center of its sphere caps at startPos and endPos 'DrawCapsuleWires'([vector3,vector3,float,sint,sint,color], void), % Draw capsule wireframe with the center of its sphere caps at startPos and endPos 'DrawPlane'([vector3,vector2,color], void), % Draw a plane XZ 'DrawRay'([ray,color], void), % Draw a ray line 'DrawGrid'([sint,float], void), % Draw a grid (centered at (0, 0, 0)) % ==== Model 3d Loading and Drawing Functions (Module: models) ==== % Model management functions 'LoadModel'([cstr], model), % Load model from files (meshes and materials) 'LoadModelFromMesh'([mesh], model), % Load model from generated mesh (default material) 'IsModelValid'([model], bool), % Check if a model is valid (loaded in GPU, VAO/VBOs) 'UnloadModel'([model], void), % Unload model (including meshes) from memory (RAM and/or VRAM) 'GetModelBoundingBox'([model], boundingbox), % Compute model bounding box limits (considers all meshes) % Model drawing functions 'DrawModel'([model,vector3,float,color], void), % Draw a model (with texture if set) 'DrawModelEx'([model,vector3,vector3,float,vector3,color], void), % Draw a model with extended parameters 'DrawModelWires'([model,vector3,float,color], void), % Draw a model wires (with texture if set) 'DrawModelWiresEx'([model,vector3,vector3,float,vector3,color], void), % Draw a model wires (with texture if set) with extended parameters 'DrawBoundingBox'([boundingbox,color], void), % Draw bounding box (wires) 'DrawBillboard'([camera3d,texture,vector3,float,color], void), % Draw a billboard texture 'DrawBillboardRec'([camera3d,texture,rectangle,vector3,vector2,color], void), % Draw a billboard texture defined by source 'DrawBillboardPro'([camera3d,texture,rectangle,vector3,vector3,vector2,vector2,float,color], void), % Draw a billboard texture defined by source and rotation % Mesh management functions 'UploadMesh'([ptr,bool], void), % Upload mesh vertex data in GPU and provide VAO/VBO ids 'UpdateMeshBuffer'([mesh,sint,ptr,sint,sint], void), % Update mesh vertex data in GPU for a specific buffer index 'UnloadMesh'([mesh], void), % Unload mesh data from CPU and GPU 'DrawMesh'([mesh,material,matrix], void), % Draw a 3d mesh with material and transform 'DrawMeshInstanced'([mesh,material,ptr,sint], void), % Draw multiple mesh instances with material and different transforms 'GetMeshBoundingBox'([mesh], boundingbox), % Compute mesh bounding box limits 'GenMeshTangents'([ptr], void), % Compute mesh tangents 'ExportMesh'([mesh,cstr], bool), % Export mesh data to file, returns true on success 'ExportMeshAsCode'([mesh,cstr], bool), % Export mesh as code file (.h) defining multiple arrays of vertex attributes % Mesh generation functions 'GenMeshPoly'([sint,float], mesh), % Generate polygonal mesh 'GenMeshPlane'([float,float,sint,sint], mesh), % Generate plane mesh (with subdivisions) 'GenMeshCube'([float,float,float], mesh), % Generate cuboid mesh 'GenMeshSphere'([float,sint,sint], mesh), % Generate sphere mesh (standard sphere) 'GenMeshHemiSphere'([float,sint,sint], mesh), % Generate half-sphere mesh (no bottom cap) 'GenMeshCylinder'([float,float,sint], mesh), % Generate cylinder mesh 'GenMeshCone'([float,float,sint], mesh), % Generate cone/pyramid mesh 'GenMeshTorus'([float,float,sint,sint], mesh), % Generate torus mesh 'GenMeshKnot'([float,float,sint,sint], mesh), % Generate trefoil knot mesh 'GenMeshHeightmap'([image,vector3], mesh), % Generate heightmap mesh from image data 'GenMeshCubicmap'([image,vector3], mesh), % Generate cubes-based map mesh from image data % Material loading/unloading functions 'LoadMaterials'([cstr,ptr], ptr), % Load materials from model file 'LoadMaterialDefault'([], material), % Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) 'IsMaterialValid'([material], bool), % Check if a material is valid (shader assigned, map textures loaded in GPU) 'UnloadMaterial'([material], void), % Unload material from GPU memory (VRAM) 'SetMaterialTexture'([ptr,sint,texture], void), % Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) 'SetModelMeshMaterial'([ptr,sint,sint], void), % Set material for a mesh % Model animations loading/unloading functions 'LoadModelAnimations'([cstr,ptr], ptr), % Load model animations from file 'UpdateModelAnimation'([model,modelanimation,float], void), % Update model animation pose (vertex buffers and bone matrices) 'UpdateModelAnimationEx'([model,modelanimation,float,modelanimation,float,float], void), % Update model animation pose, blending two animations 'UnloadModelAnimations'([ptr,sint], void), % Unload animation array data 'IsModelAnimationValid'([model,modelanimation], bool), % Check model animation skeleton match % Collision detection functions 'CheckCollisionSpheres'([vector3,float,vector3,float], bool), % Check collision between two spheres 'CheckCollisionBoxes'([boundingbox,boundingbox], bool), % Check collision between two bounding boxes 'CheckCollisionBoxSphere'([boundingbox,vector3,float], bool), % Check collision between box and sphere 'GetRayCollisionSphere'([ray,vector3,float], raycollision), % Get collision info between ray and sphere 'GetRayCollisionBox'([ray,boundingbox], raycollision), % Get collision info between ray and box 'GetRayCollisionMesh'([ray,mesh,matrix], raycollision), % Get collision info between ray and mesh 'GetRayCollisionTriangle'([ray,vector3,vector3,vector3], raycollision), % Get collision info between ray and triangle 'GetRayCollisionQuad'([ray,vector3,vector3,vector3,vector3], raycollision), % Get collision info between ray and quad % ==== Audio Loading and Playing Functions (Module: audio) ==== % Audio device management functions 'InitAudioDevice'([], void), % Initialize audio device and context 'CloseAudioDevice'([], void), % Close the audio device and context 'IsAudioDeviceReady'([], bool), % Check if audio device has been initialized successfully 'SetMasterVolume'([float], void), % Set master volume (listener) 'GetMasterVolume'([], float), % Get master volume (listener) % Wave/Sound loading/unloading functions 'LoadWave'([cstr], wave), % Load wave data from file 'LoadWaveFromMemory'([cstr,ptr,sint], wave), % Load wave from memory buffer, fileType refers to extension: i.e. '.wav' 'IsWaveValid'([wave], bool), % Checks if wave data is valid (data loaded and parameters) 'LoadSound'([cstr], sound), % Load sound from file 'LoadSoundFromWave'([wave], sound), % Load sound from wave data 'LoadSoundAlias'([sound], sound), % Create a new sound that shares the same sample data as the source sound, does not own the sound data 'IsSoundValid'([sound], bool), % Checks if a sound is valid (data loaded and buffers initialized) 'UpdateSound'([sound,ptr,sint], void), % Update sound buffer with new data (default data format: 32 bit float, stereo) 'UnloadWave'([wave], void), % Unload wave data 'UnloadSound'([sound], void), % Unload sound 'UnloadSoundAlias'([sound], void), % Unload a sound alias (does not deallocate sample data) 'ExportWave'([wave,cstr], bool), % Export wave data to file, returns true on success 'ExportWaveAsCode'([wave,cstr], bool), % Export wave sample data to code (.h), returns true on success % Wave/Sound management functions 'PlaySound'([sound], void), % Play a sound 'StopSound'([sound], void), % Stop playing a sound 'PauseSound'([sound], void), % Pause a sound 'ResumeSound'([sound], void), % Resume a paused sound 'IsSoundPlaying'([sound], bool), % Check if a sound is currently playing 'SetSoundVolume'([sound,float], void), % Set volume for a sound (1.0 is max level) 'SetSoundPitch'([sound,float], void), % Set pitch for a sound (1.0 is base level) 'SetSoundPan'([sound,float], void), % Set pan for a sound (-1.0 left, 0.0 center, 1.0 right) 'WaveCopy'([wave], wave), % Copy a wave to a new wave 'WaveCrop'([ptr,sint,sint], void), % Crop a wave to defined frames range 'WaveFormat'([ptr,sint,sint,sint], void), % Convert wave data to desired format 'LoadWaveSamples'([wave], ptr), % Load samples data from wave as a 32bit float data array 'UnloadWaveSamples'([ptr], void), % Unload samples data loaded with LoadWaveSamples() % Music management functions 'LoadMusicStream'([cstr], music), % Load music stream from file 'LoadMusicStreamFromMemory'([cstr,ptr,sint], music), % Load music stream from data 'IsMusicValid'([music], bool), % Checks if a music stream is valid (context and buffers initialized) 'UnloadMusicStream'([music], void), % Unload music stream 'PlayMusicStream'([music], void), % Start music playing 'IsMusicStreamPlaying'([music], bool), % Check if music is playing 'UpdateMusicStream'([music], void), % Updates buffers for music streaming 'StopMusicStream'([music], void), % Stop music playing 'PauseMusicStream'([music], void), % Pause music playing 'ResumeMusicStream'([music], void), % Resume playing paused music 'SeekMusicStream'([music,float], void), % Seek music to a position (in seconds) 'SetMusicVolume'([music,float], void), % Set volume for music (1.0 is max level) 'SetMusicPitch'([music,float], void), % Set pitch for a music (1.0 is base level) 'SetMusicPan'([music,float], void), % Set pan for a music (-1.0 left, 0.0 center, 1.0 right) 'GetMusicTimeLength'([music], float), % Get music time length (in seconds) 'GetMusicTimePlayed'([music], float), % Get current music time played (in seconds) % AudioStream management functions 'LoadAudioStream'([uint,uint,uint], audiostream), % Load audio stream (to stream raw audio pcm data) 'IsAudioStreamValid'([audiostream], bool), % Checks if an audio stream is valid (buffers initialized) 'UnloadAudioStream'([audiostream], void), % Unload audio stream and free memory 'UpdateAudioStream'([audiostream,ptr,sint], void), % Update audio stream buffers with data 'IsAudioStreamProcessed'([audiostream], bool), % Check if any audio stream buffers requires refill 'PlayAudioStream'([audiostream], void), % Play audio stream 'PauseAudioStream'([audiostream], void), % Pause audio stream 'ResumeAudioStream'([audiostream], void), % Resume audio stream 'IsAudioStreamPlaying'([audiostream], bool), % Check if audio stream is playing 'StopAudioStream'([audiostream], void), % Stop audio stream 'SetAudioStreamVolume'([audiostream,float], void), % Set volume for audio stream (1.0 is max level) 'SetAudioStreamPitch'([audiostream,float], void), % Set pitch for audio stream (1.0 is base level) 'SetAudioStreamPan'([audiostream,float], void), % Set pan for audio stream (-1.0 to 1.0 range, 0.0 is centered) 'SetAudioStreamBufferSizeDefault'([sint], void), % Default size for new audio streams % ==== raymath: Utils math ==== % 'Clamp'([float,float,float], float), 'Lerp'([float,float,float], float), 'Normalize'([float,float,float], float), 'Remap'([float,float,float,float,float], float), 'Wrap'([float,float,float], float), 'FloatEquals'([float,float], sint), % ==== raymath: Vector2 math ==== % 'Vector2Zero'([], vector2), 'Vector2One'([], vector2), 'Vector2Add'([vector2,vector2], vector2), 'Vector2AddValue'([vector2,float], vector2), 'Vector2Subtract'([vector2,vector2], vector2), 'Vector2SubtractValue'([vector2,float], vector2), 'Vector2Length'([vector2], float), 'Vector2LengthSqr'([vector2], float), 'Vector2DotProduct'([vector2,vector2], float), 'Vector2CrossProduct'([vector2,vector2], float), 'Vector2Distance'([vector2,vector2], float), 'Vector2DistanceSqr'([vector2,vector2], float), 'Vector2Angle'([vector2,vector2], float), 'Vector2LineAngle'([vector2,vector2], float), 'Vector2Scale'([vector2,float], vector2), 'Vector2Multiply'([vector2,vector2], vector2), 'Vector2Negate'([vector2], vector2), 'Vector2Divide'([vector2,vector2], vector2), 'Vector2Normalize'([vector2], vector2), 'Vector2Transform'([vector2,matrix], vector2), 'Vector2Lerp'([vector2,vector2,float], vector2), 'Vector2Reflect'([vector2,vector2], vector2), 'Vector2Min'([vector2,vector2], vector2), 'Vector2Max'([vector2,vector2], vector2), 'Vector2Rotate'([vector2,float], vector2), 'Vector2MoveTowards'([vector2,vector2,float], vector2), 'Vector2Invert'([vector2], vector2), 'Vector2Clamp'([vector2,vector2,vector2], vector2), 'Vector2ClampValue'([vector2,float,float], vector2), 'Vector2Equals'([vector2,vector2], sint), 'Vector2Refract'([vector2,vector2,float], vector2), % ==== raymath: Vector3 math ==== % 'Vector3Zero'([], vector3), 'Vector3One'([], vector3), 'Vector3Add'([vector3,vector3], vector3), 'Vector3AddValue'([vector3,float], vector3), 'Vector3Subtract'([vector3,vector3], vector3), 'Vector3SubtractValue'([vector3,float], vector3), 'Vector3Scale'([vector3,float], vector3), 'Vector3Multiply'([vector3,vector3], vector3), 'Vector3CrossProduct'([vector3,vector3], vector3), 'Vector3Perpendicular'([vector3], vector3), 'Vector3Length'([vector3], float), 'Vector3LengthSqr'([vector3], float), 'Vector3DotProduct'([vector3,vector3], float), 'Vector3Distance'([vector3,vector3], float), 'Vector3DistanceSqr'([vector3,vector3], float), 'Vector3Angle'([vector3,vector3], float), 'Vector3Negate'([vector3], vector3), 'Vector3Divide'([vector3,vector3], vector3), 'Vector3Normalize'([vector3], vector3), 'Vector3Project'([vector3,vector3], vector3), 'Vector3Reject'([vector3,vector3], vector3), 'Vector3OrthoNormalize'([ptr,ptr], void), 'Vector3Transform'([vector3,matrix], vector3), 'Vector3RotateByQuaternion'([vector3,quaternion], vector3), 'Vector3RotateByAxisAngle'([vector3,vector3,float], vector3), 'Vector3MoveTowards'([vector3,vector3,float], vector3), 'Vector3Lerp'([vector3,vector3,float], vector3), 'Vector3CubicHermite'([vector3,vector3,vector3,vector3,float], vector3), 'Vector3Reflect'([vector3,vector3], vector3), 'Vector3Min'([vector3,vector3], vector3), 'Vector3Max'([vector3,vector3], vector3), 'Vector3Barycenter'([vector3,vector3,vector3,vector3], vector3), 'Vector3Unproject'([vector3,matrix,matrix], vector3), 'Vector3ToFloatV'([vector3], float3), 'Vector3Invert'([vector3], vector3), 'Vector3Clamp'([vector3,vector3,vector3], vector3), 'Vector3ClampValue'([vector3,float,float], vector3), 'Vector3Equals'([vector3,vector3], sint), 'Vector3Refract'([vector3,vector3,float], vector3), % ==== raymath: Vector4 math ==== % 'Vector4Zero'([], vector4), 'Vector4One'([], vector4), 'Vector4Add'([vector4,vector4], vector4), 'Vector4AddValue'([vector4,float], vector4), 'Vector4Subtract'([vector4,vector4], vector4), 'Vector4SubtractValue'([vector4,float], vector4), 'Vector4Length'([vector4], float), 'Vector4LengthSqr'([vector4], float), 'Vector4DotProduct'([vector4,vector4], float), 'Vector4Distance'([vector4,vector4], float), 'Vector4DistanceSqr'([vector4,vector4], float), 'Vector4Scale'([vector4,float], vector4), 'Vector4Multiply'([vector4,vector4], vector4), 'Vector4Negate'([vector4], vector4), 'Vector4Divide'([vector4,vector4], vector4), 'Vector4Normalize'([vector4], vector4), 'Vector4Min'([vector4,vector4], vector4), 'Vector4Max'([vector4,vector4], vector4), 'Vector4Lerp'([vector4,vector4,float], vector4), 'Vector4MoveTowards'([vector4,vector4,float], vector4), 'Vector4Invert'([vector4], vector4), 'Vector4Equals'([vector4,vector4], sint), % ==== raymath: Matrix math ==== % 'MatrixDeterminant'([matrix], float), 'MatrixTrace'([matrix], float), 'MatrixTranspose'([matrix], matrix), 'MatrixInvert'([matrix], matrix), 'MatrixIdentity'([], matrix), 'MatrixAdd'([matrix,matrix], matrix), 'MatrixSubtract'([matrix,matrix], matrix), 'MatrixMultiply'([matrix,matrix], matrix), 'MatrixMultiplyValue'([matrix,float], matrix), 'MatrixTranslate'([float,float,float], matrix), 'MatrixRotate'([vector3,float], matrix), 'MatrixRotateX'([float], matrix), 'MatrixRotateY'([float], matrix), 'MatrixRotateZ'([float], matrix), 'MatrixRotateXYZ'([vector3], matrix), 'MatrixRotateZYX'([vector3], matrix), 'MatrixScale'([float,float,float], matrix), 'MatrixFrustum'([double,double,double,double,double,double], matrix), 'MatrixPerspective'([double,double,double,double], matrix), 'MatrixOrtho'([double,double,double,double,double,double], matrix), 'MatrixLookAt'([vector3,vector3,vector3], matrix), 'MatrixToFloatV'([matrix], float16), % ==== raymath: Quaternion math ==== % 'QuaternionAdd'([quaternion,quaternion], quaternion), 'QuaternionAddValue'([quaternion,float], quaternion), 'QuaternionSubtract'([quaternion,quaternion], quaternion), 'QuaternionSubtractValue'([quaternion,float], quaternion), 'QuaternionIdentity'([], quaternion), 'QuaternionLength'([quaternion], float), 'QuaternionNormalize'([quaternion], quaternion), 'QuaternionInvert'([quaternion], quaternion), 'QuaternionMultiply'([quaternion,quaternion], quaternion), 'QuaternionScale'([quaternion,float], quaternion), 'QuaternionDivide'([quaternion,quaternion], quaternion), 'QuaternionLerp'([quaternion,quaternion,float], quaternion), 'QuaternionNlerp'([quaternion,quaternion,float], quaternion), 'QuaternionSlerp'([quaternion,quaternion,float], quaternion), 'QuaternionCubicHermiteSpline'([quaternion,quaternion,quaternion,quaternion,float], quaternion), 'QuaternionFromVector3ToVector3'([vector3,vector3], quaternion), 'QuaternionFromMatrix'([matrix], quaternion), 'QuaternionToMatrix'([quaternion], matrix), 'QuaternionFromAxisAngle'([vector3,float], quaternion), 'QuaternionToAxisAngle'([quaternion,ptr,ptr], void), 'QuaternionFromEuler'([float,float,float], quaternion), 'QuaternionToEuler'([quaternion], vector3), 'QuaternionTransform'([quaternion,matrix], quaternion), 'QuaternionEquals'([quaternion,quaternion], sint), 'MatrixCompose'([vector3,quaternion,vector3], matrix), 'MatrixDecompose'([matrix,ptr,ptr,ptr], void) ]). % --------------------------------------------------------------- % Constants, transcribed from the raylib enums and #defines so % callers need not hardcode magic numbers. % --------------------------------------------------------------- %% raylib_const(?Name, ?Value) is nondet. % % Enum constants, under their C names: % % ?- raylib_const('KEY_SPACE', K). % K = 32. % ConfigFlags raylib_const('FLAG_VSYNC_HINT', 64). raylib_const('FLAG_FULLSCREEN_MODE', 2). raylib_const('FLAG_WINDOW_RESIZABLE', 4). raylib_const('FLAG_WINDOW_UNDECORATED', 8). raylib_const('FLAG_WINDOW_HIDDEN', 128). raylib_const('FLAG_WINDOW_MINIMIZED', 512). raylib_const('FLAG_WINDOW_MAXIMIZED', 1024). raylib_const('FLAG_WINDOW_UNFOCUSED', 2048). raylib_const('FLAG_WINDOW_TOPMOST', 4096). raylib_const('FLAG_WINDOW_ALWAYS_RUN', 256). raylib_const('FLAG_WINDOW_TRANSPARENT', 16). raylib_const('FLAG_WINDOW_HIGHDPI', 8192). raylib_const('FLAG_WINDOW_MOUSE_PASSTHROUGH', 16384). raylib_const('FLAG_BORDERLESS_WINDOWED_MODE', 32768). raylib_const('FLAG_MSAA_4X_HINT', 32). raylib_const('FLAG_INTERLACED_HINT', 65536). % TraceLogLevel raylib_const('LOG_ALL', 0). raylib_const('LOG_TRACE', 1). raylib_const('LOG_DEBUG', 2). raylib_const('LOG_INFO', 3). raylib_const('LOG_WARNING', 4). raylib_const('LOG_ERROR', 5). raylib_const('LOG_FATAL', 6). raylib_const('LOG_NONE', 7). % KeyboardKey raylib_const('KEY_NULL', 0). raylib_const('KEY_APOSTROPHE', 39). raylib_const('KEY_COMMA', 44). raylib_const('KEY_MINUS', 45). raylib_const('KEY_PERIOD', 46). raylib_const('KEY_SLASH', 47). raylib_const('KEY_ZERO', 48). raylib_const('KEY_ONE', 49). raylib_const('KEY_TWO', 50). raylib_const('KEY_THREE', 51). raylib_const('KEY_FOUR', 52). raylib_const('KEY_FIVE', 53). raylib_const('KEY_SIX', 54). raylib_const('KEY_SEVEN', 55). raylib_const('KEY_EIGHT', 56). raylib_const('KEY_NINE', 57). raylib_const('KEY_SEMICOLON', 59). raylib_const('KEY_EQUAL', 61). raylib_const('KEY_A', 65). raylib_const('KEY_B', 66). raylib_const('KEY_C', 67). raylib_const('KEY_D', 68). raylib_const('KEY_E', 69). raylib_const('KEY_F', 70). raylib_const('KEY_G', 71). raylib_const('KEY_H', 72). raylib_const('KEY_I', 73). raylib_const('KEY_J', 74). raylib_const('KEY_K', 75). raylib_const('KEY_L', 76). raylib_const('KEY_M', 77). raylib_const('KEY_N', 78). raylib_const('KEY_O', 79). raylib_const('KEY_P', 80). raylib_const('KEY_Q', 81). raylib_const('KEY_R', 82). raylib_const('KEY_S', 83). raylib_const('KEY_T', 84). raylib_const('KEY_U', 85). raylib_const('KEY_V', 86). raylib_const('KEY_W', 87). raylib_const('KEY_X', 88). raylib_const('KEY_Y', 89). raylib_const('KEY_Z', 90). raylib_const('KEY_LEFT_BRACKET', 91). raylib_const('KEY_BACKSLASH', 92). raylib_const('KEY_RIGHT_BRACKET', 93). raylib_const('KEY_GRAVE', 96). raylib_const('KEY_SPACE', 32). raylib_const('KEY_ESCAPE', 256). raylib_const('KEY_ENTER', 257). raylib_const('KEY_TAB', 258). raylib_const('KEY_BACKSPACE', 259). raylib_const('KEY_INSERT', 260). raylib_const('KEY_DELETE', 261). raylib_const('KEY_RIGHT', 262). raylib_const('KEY_LEFT', 263). raylib_const('KEY_DOWN', 264). raylib_const('KEY_UP', 265). raylib_const('KEY_PAGE_UP', 266). raylib_const('KEY_PAGE_DOWN', 267). raylib_const('KEY_HOME', 268). raylib_const('KEY_END', 269). raylib_const('KEY_CAPS_LOCK', 280). raylib_const('KEY_SCROLL_LOCK', 281). raylib_const('KEY_NUM_LOCK', 282). raylib_const('KEY_PRINT_SCREEN', 283). raylib_const('KEY_PAUSE', 284). raylib_const('KEY_F1', 290). raylib_const('KEY_F2', 291). raylib_const('KEY_F3', 292). raylib_const('KEY_F4', 293). raylib_const('KEY_F5', 294). raylib_const('KEY_F6', 295). raylib_const('KEY_F7', 296). raylib_const('KEY_F8', 297). raylib_const('KEY_F9', 298). raylib_const('KEY_F10', 299). raylib_const('KEY_F11', 300). raylib_const('KEY_F12', 301). raylib_const('KEY_LEFT_SHIFT', 340). raylib_const('KEY_LEFT_CONTROL', 341). raylib_const('KEY_LEFT_ALT', 342). raylib_const('KEY_LEFT_SUPER', 343). raylib_const('KEY_RIGHT_SHIFT', 344). raylib_const('KEY_RIGHT_CONTROL', 345). raylib_const('KEY_RIGHT_ALT', 346). raylib_const('KEY_RIGHT_SUPER', 347). raylib_const('KEY_KB_MENU', 348). raylib_const('KEY_KP_0', 320). raylib_const('KEY_KP_1', 321). raylib_const('KEY_KP_2', 322). raylib_const('KEY_KP_3', 323). raylib_const('KEY_KP_4', 324). raylib_const('KEY_KP_5', 325). raylib_const('KEY_KP_6', 326). raylib_const('KEY_KP_7', 327). raylib_const('KEY_KP_8', 328). raylib_const('KEY_KP_9', 329). raylib_const('KEY_KP_DECIMAL', 330). raylib_const('KEY_KP_DIVIDE', 331). raylib_const('KEY_KP_MULTIPLY', 332). raylib_const('KEY_KP_SUBTRACT', 333). raylib_const('KEY_KP_ADD', 334). raylib_const('KEY_KP_ENTER', 335). raylib_const('KEY_KP_EQUAL', 336). raylib_const('KEY_BACK', 4). raylib_const('KEY_MENU', 5). raylib_const('KEY_VOLUME_UP', 24). raylib_const('KEY_VOLUME_DOWN', 25). % MouseButton raylib_const('MOUSE_BUTTON_LEFT', 0). raylib_const('MOUSE_BUTTON_RIGHT', 1). raylib_const('MOUSE_BUTTON_MIDDLE', 2). raylib_const('MOUSE_BUTTON_SIDE', 3). raylib_const('MOUSE_BUTTON_EXTRA', 4). raylib_const('MOUSE_BUTTON_FORWARD', 5). raylib_const('MOUSE_BUTTON_BACK', 6). % MouseCursor raylib_const('MOUSE_CURSOR_DEFAULT', 0). raylib_const('MOUSE_CURSOR_ARROW', 1). raylib_const('MOUSE_CURSOR_IBEAM', 2). raylib_const('MOUSE_CURSOR_CROSSHAIR', 3). raylib_const('MOUSE_CURSOR_POINTING_HAND', 4). raylib_const('MOUSE_CURSOR_RESIZE_EW', 5). raylib_const('MOUSE_CURSOR_RESIZE_NS', 6). raylib_const('MOUSE_CURSOR_RESIZE_NWSE', 7). raylib_const('MOUSE_CURSOR_RESIZE_NESW', 8). raylib_const('MOUSE_CURSOR_RESIZE_ALL', 9). raylib_const('MOUSE_CURSOR_NOT_ALLOWED', 10). % GamepadButton raylib_const('GAMEPAD_BUTTON_UNKNOWN', 0). raylib_const('GAMEPAD_BUTTON_LEFT_FACE_UP', 1). raylib_const('GAMEPAD_BUTTON_LEFT_FACE_RIGHT', 2). raylib_const('GAMEPAD_BUTTON_LEFT_FACE_DOWN', 3). raylib_const('GAMEPAD_BUTTON_LEFT_FACE_LEFT', 4). raylib_const('GAMEPAD_BUTTON_RIGHT_FACE_UP', 5). raylib_const('GAMEPAD_BUTTON_RIGHT_FACE_RIGHT', 6). raylib_const('GAMEPAD_BUTTON_RIGHT_FACE_DOWN', 7). raylib_const('GAMEPAD_BUTTON_RIGHT_FACE_LEFT', 8). raylib_const('GAMEPAD_BUTTON_LEFT_TRIGGER_1', 9). raylib_const('GAMEPAD_BUTTON_LEFT_TRIGGER_2', 10). raylib_const('GAMEPAD_BUTTON_RIGHT_TRIGGER_1', 11). raylib_const('GAMEPAD_BUTTON_RIGHT_TRIGGER_2', 12). raylib_const('GAMEPAD_BUTTON_MIDDLE_LEFT', 13). raylib_const('GAMEPAD_BUTTON_MIDDLE', 14). raylib_const('GAMEPAD_BUTTON_MIDDLE_RIGHT', 15). raylib_const('GAMEPAD_BUTTON_LEFT_THUMB', 16). raylib_const('GAMEPAD_BUTTON_RIGHT_THUMB', 17). % GamepadAxis raylib_const('GAMEPAD_AXIS_LEFT_X', 0). raylib_const('GAMEPAD_AXIS_LEFT_Y', 1). raylib_const('GAMEPAD_AXIS_RIGHT_X', 2). raylib_const('GAMEPAD_AXIS_RIGHT_Y', 3). raylib_const('GAMEPAD_AXIS_LEFT_TRIGGER', 4). raylib_const('GAMEPAD_AXIS_RIGHT_TRIGGER', 5). % MaterialMapIndex raylib_const('MATERIAL_MAP_ALBEDO', 0). raylib_const('MATERIAL_MAP_METALNESS', 1). raylib_const('MATERIAL_MAP_NORMAL', 2). raylib_const('MATERIAL_MAP_ROUGHNESS', 3). raylib_const('MATERIAL_MAP_OCCLUSION', 4). raylib_const('MATERIAL_MAP_EMISSION', 5). raylib_const('MATERIAL_MAP_HEIGHT', 6). raylib_const('MATERIAL_MAP_CUBEMAP', 7). raylib_const('MATERIAL_MAP_IRRADIANCE', 8). raylib_const('MATERIAL_MAP_PREFILTER', 9). raylib_const('MATERIAL_MAP_BRDF', 10). % ShaderLocationIndex raylib_const('SHADER_LOC_VERTEX_POSITION', 0). raylib_const('SHADER_LOC_VERTEX_TEXCOORD01', 1). raylib_const('SHADER_LOC_VERTEX_TEXCOORD02', 2). raylib_const('SHADER_LOC_VERTEX_NORMAL', 3). raylib_const('SHADER_LOC_VERTEX_TANGENT', 4). raylib_const('SHADER_LOC_VERTEX_COLOR', 5). raylib_const('SHADER_LOC_MATRIX_MVP', 6). raylib_const('SHADER_LOC_MATRIX_VIEW', 7). raylib_const('SHADER_LOC_MATRIX_PROJECTION', 8). raylib_const('SHADER_LOC_MATRIX_MODEL', 9). raylib_const('SHADER_LOC_MATRIX_NORMAL', 10). raylib_const('SHADER_LOC_VECTOR_VIEW', 11). raylib_const('SHADER_LOC_COLOR_DIFFUSE', 12). raylib_const('SHADER_LOC_COLOR_SPECULAR', 13). raylib_const('SHADER_LOC_COLOR_AMBIENT', 14). raylib_const('SHADER_LOC_MAP_ALBEDO', 15). raylib_const('SHADER_LOC_MAP_METALNESS', 16). raylib_const('SHADER_LOC_MAP_NORMAL', 17). raylib_const('SHADER_LOC_MAP_ROUGHNESS', 18). raylib_const('SHADER_LOC_MAP_OCCLUSION', 19). raylib_const('SHADER_LOC_MAP_EMISSION', 20). raylib_const('SHADER_LOC_MAP_HEIGHT', 21). raylib_const('SHADER_LOC_MAP_CUBEMAP', 22). raylib_const('SHADER_LOC_MAP_IRRADIANCE', 23). raylib_const('SHADER_LOC_MAP_PREFILTER', 24). raylib_const('SHADER_LOC_MAP_BRDF', 25). raylib_const('SHADER_LOC_VERTEX_BONEIDS', 26). raylib_const('SHADER_LOC_VERTEX_BONEWEIGHTS', 27). raylib_const('SHADER_LOC_MATRIX_BONETRANSFORMS', 28). raylib_const('SHADER_LOC_VERTEX_INSTANCETRANSFORM', 29). % ShaderUniformDataType raylib_const('SHADER_UNIFORM_FLOAT', 0). raylib_const('SHADER_UNIFORM_VEC2', 1). raylib_const('SHADER_UNIFORM_VEC3', 2). raylib_const('SHADER_UNIFORM_VEC4', 3). raylib_const('SHADER_UNIFORM_INT', 4). raylib_const('SHADER_UNIFORM_IVEC2', 5). raylib_const('SHADER_UNIFORM_IVEC3', 6). raylib_const('SHADER_UNIFORM_IVEC4', 7). raylib_const('SHADER_UNIFORM_UINT', 8). raylib_const('SHADER_UNIFORM_UIVEC2', 9). raylib_const('SHADER_UNIFORM_UIVEC3', 10). raylib_const('SHADER_UNIFORM_UIVEC4', 11). raylib_const('SHADER_UNIFORM_SAMPLER2D', 12). % ShaderAttributeDataType raylib_const('SHADER_ATTRIB_FLOAT', 0). raylib_const('SHADER_ATTRIB_VEC2', 1). raylib_const('SHADER_ATTRIB_VEC3', 2). raylib_const('SHADER_ATTRIB_VEC4', 3). % PixelFormat raylib_const('PIXELFORMAT_UNCOMPRESSED_GRAYSCALE', 1). raylib_const('PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA', 2). raylib_const('PIXELFORMAT_UNCOMPRESSED_R5G6B5', 3). raylib_const('PIXELFORMAT_UNCOMPRESSED_R8G8B8', 4). raylib_const('PIXELFORMAT_UNCOMPRESSED_R5G5B5A1', 5). raylib_const('PIXELFORMAT_UNCOMPRESSED_R4G4B4A4', 6). raylib_const('PIXELFORMAT_UNCOMPRESSED_R8G8B8A8', 7). raylib_const('PIXELFORMAT_UNCOMPRESSED_R32', 8). raylib_const('PIXELFORMAT_UNCOMPRESSED_R32G32B32', 9). raylib_const('PIXELFORMAT_UNCOMPRESSED_R32G32B32A32', 10). raylib_const('PIXELFORMAT_UNCOMPRESSED_R16', 11). raylib_const('PIXELFORMAT_UNCOMPRESSED_R16G16B16', 12). raylib_const('PIXELFORMAT_UNCOMPRESSED_R16G16B16A16', 13). raylib_const('PIXELFORMAT_COMPRESSED_DXT1_RGB', 14). raylib_const('PIXELFORMAT_COMPRESSED_DXT1_RGBA', 15). raylib_const('PIXELFORMAT_COMPRESSED_DXT3_RGBA', 16). raylib_const('PIXELFORMAT_COMPRESSED_DXT5_RGBA', 17). raylib_const('PIXELFORMAT_COMPRESSED_ETC1_RGB', 18). raylib_const('PIXELFORMAT_COMPRESSED_ETC2_RGB', 19). raylib_const('PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA', 20). raylib_const('PIXELFORMAT_COMPRESSED_PVRT_RGB', 21). raylib_const('PIXELFORMAT_COMPRESSED_PVRT_RGBA', 22). raylib_const('PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA', 23). raylib_const('PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA', 24). % TextureFilter raylib_const('TEXTURE_FILTER_POINT', 0). raylib_const('TEXTURE_FILTER_BILINEAR', 1). raylib_const('TEXTURE_FILTER_TRILINEAR', 2). raylib_const('TEXTURE_FILTER_ANISOTROPIC_4X', 3). raylib_const('TEXTURE_FILTER_ANISOTROPIC_8X', 4). raylib_const('TEXTURE_FILTER_ANISOTROPIC_16X', 5). % TextureWrap raylib_const('TEXTURE_WRAP_REPEAT', 0). raylib_const('TEXTURE_WRAP_CLAMP', 1). raylib_const('TEXTURE_WRAP_MIRROR_REPEAT', 2). raylib_const('TEXTURE_WRAP_MIRROR_CLAMP', 3). % CubemapLayout raylib_const('CUBEMAP_LAYOUT_AUTO_DETECT', 0). raylib_const('CUBEMAP_LAYOUT_LINE_VERTICAL', 1). raylib_const('CUBEMAP_LAYOUT_LINE_HORIZONTAL', 2). raylib_const('CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR', 3). raylib_const('CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE', 4). % FontType raylib_const('FONT_DEFAULT', 0). raylib_const('FONT_BITMAP', 1). raylib_const('FONT_SDF', 2). % BlendMode raylib_const('BLEND_ALPHA', 0). raylib_const('BLEND_ADDITIVE', 1). raylib_const('BLEND_MULTIPLIED', 2). raylib_const('BLEND_ADD_COLORS', 3). raylib_const('BLEND_SUBTRACT_COLORS', 4). raylib_const('BLEND_ALPHA_PREMULTIPLY', 5). raylib_const('BLEND_CUSTOM', 6). raylib_const('BLEND_CUSTOM_SEPARATE', 7). % Gesture raylib_const('GESTURE_NONE', 0). raylib_const('GESTURE_TAP', 1). raylib_const('GESTURE_DOUBLETAP', 2). raylib_const('GESTURE_HOLD', 4). raylib_const('GESTURE_DRAG', 8). raylib_const('GESTURE_SWIPE_RIGHT', 16). raylib_const('GESTURE_SWIPE_LEFT', 32). raylib_const('GESTURE_SWIPE_UP', 64). raylib_const('GESTURE_SWIPE_DOWN', 128). raylib_const('GESTURE_PINCH_IN', 256). raylib_const('GESTURE_PINCH_OUT', 512). % CameraMode raylib_const('CAMERA_CUSTOM', 0). raylib_const('CAMERA_FREE', 1). raylib_const('CAMERA_ORBITAL', 2). raylib_const('CAMERA_FIRST_PERSON', 3). raylib_const('CAMERA_THIRD_PERSON', 4). % CameraProjection raylib_const('CAMERA_PERSPECTIVE', 0). raylib_const('CAMERA_ORTHOGRAPHIC', 1). % NPatchLayout raylib_const('NPATCH_NINE_PATCH', 0). raylib_const('NPATCH_THREE_PATCH_VERTICAL', 1). raylib_const('NPATCH_THREE_PATCH_HORIZONTAL', 2). %% raylib_color(?Name, ?Color) is nondet. % % The predefined colours, as ready-to-pass color structs: % % ?- raylib_color('RAYWHITE', C). % C = [color,245,245,245,255]. raylib_color('LIGHTGRAY', [color,200,200,200,255]). raylib_color('GRAY', [color,130,130,130,255]). raylib_color('DARKGRAY', [color,80,80,80,255]). raylib_color('YELLOW', [color,253,249,0,255]). raylib_color('GOLD', [color,255,203,0,255]). raylib_color('ORANGE', [color,255,161,0,255]). raylib_color('PINK', [color,255,109,194,255]). raylib_color('RED', [color,230,41,55,255]). raylib_color('MAROON', [color,190,33,55,255]). raylib_color('GREEN', [color,0,228,48,255]). raylib_color('LIME', [color,0,158,47,255]). raylib_color('DARKGREEN', [color,0,117,44,255]). raylib_color('SKYBLUE', [color,102,191,255,255]). raylib_color('BLUE', [color,0,121,241,255]). raylib_color('DARKBLUE', [color,0,82,172,255]). raylib_color('PURPLE', [color,200,122,255,255]). raylib_color('VIOLET', [color,135,60,190,255]). raylib_color('DARKPURPLE', [color,112,31,126,255]). raylib_color('BEIGE', [color,211,176,131,255]). raylib_color('BROWN', [color,127,106,79,255]). raylib_color('DARKBROWN', [color,76,63,47,255]). raylib_color('WHITE', [color,255,255,255,255]). raylib_color('BLACK', [color,0,0,0,255]). raylib_color('BLANK', [color,0,0,0,0]). raylib_color('MAGENTA', [color,255,0,255,255]). raylib_color('RAYWHITE', [color,245,245,245,255]). % --------------------------------------------------------------- % Not bound. Everything raylib passes or returns by value is % reachable; what is left needs FFI machinery that does not exist. % % 'callback' % takes a C function pointer. The FFI cannot build a closure % that calls back into Prolog. % % 'varargs' % TextFormat and TraceLog are printf-style, which needs % ffi_prep_cif_var and a per-call signature. % % Struct size is no longer a reason. MAX_FFI_STRUCT_BYTES and % MAX_FFI_RET_BYTES in src/bif_ffi.c allow 4096 bytes of struct % arguments per call and 4096 bytes of returned struct, both bounds % checked; the largest thing raylib passes by value is Model, at 136 % bytes. They were 64 and 256, which put the whole model and mesh % API out of reach. % --------------------------------------------------------------- % AttachAudioMixedProcessor callback % AttachAudioStreamProcessor callback % DetachAudioMixedProcessor callback % DetachAudioStreamProcessor callback % SetAudioStreamCallback callback % SetLoadFileDataCallback callback % SetLoadFileTextCallback callback % SetSaveFileDataCallback callback % SetSaveFileTextCallback callback % SetTraceLogCallback callback % TextFormat varargs % TraceLog varargs