// raylib-zig (c) Nikolas Wipper 2023 const rl = @import("raylib.zig"); pub extern "c" fn InitWindow(width: c_int, height: c_int, title: [*c]const u8) void; pub extern "c" fn CloseWindow() void; pub extern "c" fn WindowShouldClose() bool; pub extern "c" fn IsWindowReady() bool; pub extern "c" fn IsWindowFullscreen() bool; pub extern "c" fn IsWindowHidden() bool; pub extern "c" fn IsWindowMinimized() bool; pub extern "c" fn IsWindowMaximized() bool; pub extern "c" fn IsWindowFocused() bool; pub extern "c" fn IsWindowResized() bool; pub extern "c" fn IsWindowState(flag: rl.ConfigFlags) bool; pub extern "c" fn SetWindowState(flags: rl.ConfigFlags) void; pub extern "c" fn ClearWindowState(flags: rl.ConfigFlags) void; pub extern "c" fn ToggleFullscreen() void; pub extern "c" fn ToggleBorderlessWindowed() void; pub extern "c" fn MaximizeWindow() void; pub extern "c" fn MinimizeWindow() void; pub extern "c" fn RestoreWindow() void; pub extern "c" fn SetWindowIcon(image: rl.Image) void; pub extern "c" fn SetWindowIcons(images: [*c]rl.Image, count: c_int) void; pub extern "c" fn SetWindowTitle(title: [*c]const u8) void; pub extern "c" fn SetWindowPosition(x: c_int, y: c_int) void; pub extern "c" fn SetWindowMonitor(monitor: c_int) void; pub extern "c" fn SetWindowMinSize(width: c_int, height: c_int) void; pub extern "c" fn SetWindowMaxSize(width: c_int, height: c_int) void; pub extern "c" fn SetWindowSize(width: c_int, height: c_int) void; pub extern "c" fn SetWindowOpacity(opacity: f32) void; pub extern "c" fn SetWindowFocused() void; pub extern "c" fn GetWindowHandle() *anyopaque; pub extern "c" fn GetScreenWidth() c_int; pub extern "c" fn GetScreenHeight() c_int; pub extern "c" fn GetRenderWidth() c_int; pub extern "c" fn GetRenderHeight() c_int; pub extern "c" fn GetMonitorCount() c_int; pub extern "c" fn GetCurrentMonitor() c_int; pub extern "c" fn GetMonitorPosition(monitor: c_int) rl.Vector2; pub extern "c" fn GetMonitorWidth(monitor: c_int) c_int; pub extern "c" fn GetMonitorHeight(monitor: c_int) c_int; pub extern "c" fn GetMonitorPhysicalWidth(monitor: c_int) c_int; pub extern "c" fn GetMonitorPhysicalHeight(monitor: c_int) c_int; pub extern "c" fn GetMonitorRefreshRate(monitor: c_int) c_int; pub extern "c" fn GetWindowPosition() rl.Vector2; pub extern "c" fn GetWindowScaleDPI() rl.Vector2; pub extern "c" fn GetMonitorName(monitor: c_int) [*c]const u8; pub extern "c" fn SetClipboardText(text: [*c]const u8) void; pub extern "c" fn GetClipboardText() [*c]const u8; pub extern "c" fn EnableEventWaiting() void; pub extern "c" fn DisableEventWaiting() void; pub extern "c" fn ShowCursor() void; pub extern "c" fn HideCursor() void; pub extern "c" fn IsCursorHidden() bool; pub extern "c" fn EnableCursor() void; pub extern "c" fn DisableCursor() void; pub extern "c" fn IsCursorOnScreen() bool; pub extern "c" fn ClearBackground(color: rl.Color) void; pub extern "c" fn BeginDrawing() void; pub extern "c" fn EndDrawing() void; pub extern "c" fn BeginMode2D(camera: rl.Camera2D) void; pub extern "c" fn EndMode2D() void; pub extern "c" fn BeginMode3D(camera: rl.Camera3D) void; pub extern "c" fn EndMode3D() void; pub extern "c" fn BeginTextureMode(target: rl.RenderTexture2D) void; pub extern "c" fn EndTextureMode() void; pub extern "c" fn BeginShaderMode(shader: rl.Shader) void; pub extern "c" fn EndShaderMode() void; pub extern "c" fn BeginBlendMode(mode: rl.BlendMode) void; pub extern "c" fn EndBlendMode() void; pub extern "c" fn BeginScissorMode(x: c_int, y: c_int, width: c_int, height: c_int) void; pub extern "c" fn EndScissorMode() void; pub extern "c" fn BeginVrStereoMode(config: rl.VrStereoConfig) void; pub extern "c" fn EndVrStereoMode() void; pub extern "c" fn LoadVrStereoConfig(device: rl.VrDeviceInfo) rl.VrStereoConfig; pub extern "c" fn UnloadVrStereoConfig(config: rl.VrStereoConfig) void; pub extern "c" fn LoadShader(vsFileName: [*c]const u8, fsFileName: [*c]const u8) rl.Shader; pub extern "c" fn LoadShaderFromMemory(vsCode: [*c]const u8, fsCode: [*c]const u8) rl.Shader; pub extern "c" fn IsShaderReady(shader: rl.Shader) bool; pub extern "c" fn GetShaderLocation(shader: rl.Shader, uniformName: [*c]const u8) c_int; pub extern "c" fn GetShaderLocationAttrib(shader: rl.Shader, attribName: [*c]const u8) c_int; pub extern "c" fn SetShaderValue(shader: rl.Shader, locIndex: c_int, value: *const anyopaque, uniformType: rl.ShaderUniformDataType) void; pub extern "c" fn SetShaderValueV(shader: rl.Shader, locIndex: c_int, value: *const anyopaque, uniformType: rl.ShaderUniformDataType, count: c_int) void; pub extern "c" fn SetShaderValueMatrix(shader: rl.Shader, locIndex: c_int, mat: rl.Matrix) void; pub extern "c" fn SetShaderValueTexture(shader: rl.Shader, locIndex: c_int, texture: rl.Texture2D) void; pub extern "c" fn UnloadShader(shader: rl.Shader) void; pub extern "c" fn GetScreenToWorldRay(position: rl.Vector2, camera: rl.Camera) rl.Ray; pub extern "c" fn GetScreenToWorldRayEx(position: rl.Vector2, camera: rl.Camera, width: c_int, height: c_int) rl.Ray; pub extern "c" fn GetWorldToScreen(position: rl.Vector3, camera: rl.Camera) rl.Vector2; pub extern "c" fn GetWorldToScreenEx(position: rl.Vector3, camera: rl.Camera, width: c_int, height: c_int) rl.Vector2; pub extern "c" fn GetWorldToScreen2D(position: rl.Vector2, camera: rl.Camera2D) rl.Vector2; pub extern "c" fn GetScreenToWorld2D(position: rl.Vector2, camera: rl.Camera2D) rl.Vector2; pub extern "c" fn GetCameraMatrix(camera: rl.Camera) rl.Matrix; pub extern "c" fn GetCameraMatrix2D(camera: rl.Camera2D) rl.Matrix; pub extern "c" fn SetTargetFPS(fps: c_int) void; pub extern "c" fn GetFrameTime() f32; pub extern "c" fn GetTime() f64; pub extern "c" fn GetFPS() c_int; pub extern "c" fn SwapScreenBuffer() void; pub extern "c" fn PollInputEvents() void; pub extern "c" fn WaitTime(seconds: f64) void; pub extern "c" fn SetRandomSeed(seed: c_uint) void; pub extern "c" fn GetRandomValue(min: c_int, max: c_int) c_int; pub extern "c" fn LoadRandomSequence(count: c_uint, min: c_int, max: c_int) [*c]c_int; pub extern "c" fn UnloadRandomSequence(sequence: [*c]c_int) void; pub extern "c" fn TakeScreenshot(fileName: [*c]const u8) void; pub extern "c" fn SetConfigFlags(flags: rl.ConfigFlags) void; pub extern "c" fn OpenURL(url: [*c]const u8) void; pub extern "c" fn TraceLog(logLevel: rl.TraceLogLevel, text: [*c]const u8, ...) void; pub extern "c" fn SetTraceLogLevel(logLevel: rl.TraceLogLevel) void; pub extern "c" fn MemAlloc(size: c_uint) *anyopaque; pub extern "c" fn MemRealloc(ptr: *anyopaque, size: c_uint) *anyopaque; pub extern "c" fn MemFree(ptr: *anyopaque) void; pub extern "c" fn SetLoadFileDataCallback(callback: rl.LoadFileDataCallback) void; pub extern "c" fn SetSaveFileDataCallback(callback: rl.SaveFileDataCallback) void; pub extern "c" fn SetLoadFileTextCallback(callback: rl.LoadFileTextCallback) void; pub extern "c" fn SetSaveFileTextCallback(callback: rl.SaveFileTextCallback) void; pub extern "c" fn LoadFileData(fileName: [*c]const u8, dataSize: [*c]c_int) [*c]u8; pub extern "c" fn UnloadFileData(data: [*c]u8) void; pub extern "c" fn SaveFileData(fileName: [*c]const u8, data: *anyopaque, dataSize: c_int) bool; pub extern "c" fn ExportDataAsCode(data: [*c]const u8, dataSize: c_int, fileName: [*c]const u8) bool; pub extern "c" fn LoadFileText(fileName: [*c]const u8) [*c]u8; pub extern "c" fn UnloadFileText(text: [*c]u8) void; pub extern "c" fn SaveFileText(fileName: [*c]const u8, text: [*c]u8) bool; pub extern "c" fn FileExists(fileName: [*c]const u8) bool; pub extern "c" fn DirectoryExists(dirPath: [*c]const u8) bool; pub extern "c" fn IsFileExtension(fileName: [*c]const u8, ext: [*c]const u8) bool; pub extern "c" fn GetFileLength(fileName: [*c]const u8) c_int; pub extern "c" fn GetFileExtension(fileName: [*c]const u8) [*c]const u8; pub extern "c" fn GetFileName(filePath: [*c]const u8) [*c]const u8; pub extern "c" fn GetFileNameWithoutExt(filePath: [*c]const u8) [*c]const u8; pub extern "c" fn GetDirectoryPath(filePath: [*c]const u8) [*c]const u8; pub extern "c" fn GetPrevDirectoryPath(dirPath: [*c]const u8) [*c]const u8; pub extern "c" fn GetWorkingDirectory() [*c]const u8; pub extern "c" fn GetApplicationDirectory() [*c]const u8; pub extern "c" fn ChangeDirectory(dir: [*c]const u8) bool; pub extern "c" fn IsPathFile(path: [*c]const u8) bool; pub extern "c" fn IsFileNameValid(fileName: [*c]const u8) bool; pub extern "c" fn LoadDirectoryFiles(dirPath: [*c]const u8) rl.FilePathList; pub extern "c" fn LoadDirectoryFilesEx(basePath: [*c]const u8, filter: [*c]const u8, scanSubdirs: bool) rl.FilePathList; pub extern "c" fn UnloadDirectoryFiles(files: rl.FilePathList) void; pub extern "c" fn IsFileDropped() bool; pub extern "c" fn LoadDroppedFiles() rl.FilePathList; pub extern "c" fn UnloadDroppedFiles(files: rl.FilePathList) void; pub extern "c" fn GetFileModTime(fileName: [*c]const u8) c_long; pub extern "c" fn CompressData(data: [*c]const u8, dataSize: c_int, compDataSize: [*c]c_int) [*c]u8; pub extern "c" fn DecompressData(compData: [*c]const u8, compDataSize: c_int, dataSize: [*c]c_int) [*c]u8; pub extern "c" fn EncodeDataBase64(data: [*c]const u8, dataSize: c_int, outputSize: [*c]c_int) [*c]u8; pub extern "c" fn DecodeDataBase64(data: [*c]const u8, outputSize: [*c]c_int) [*c]u8; pub extern "c" fn LoadAutomationEventList(fileName: [*c]const u8) rl.AutomationEventList; pub extern "c" fn UnloadAutomationEventList(list: rl.AutomationEventList) void; pub extern "c" fn ExportAutomationEventList(list: rl.AutomationEventList, fileName: [*c]const u8) bool; pub extern "c" fn SetAutomationEventList(list: [*c]rl.AutomationEventList) void; pub extern "c" fn SetAutomationEventBaseFrame(frame: c_int) void; pub extern "c" fn StartAutomationEventRecording() void; pub extern "c" fn StopAutomationEventRecording() void; pub extern "c" fn PlayAutomationEvent(event: rl.AutomationEvent) void; pub extern "c" fn IsKeyPressed(key: rl.KeyboardKey) bool; pub extern "c" fn IsKeyPressedRepeat(key: rl.KeyboardKey) bool; pub extern "c" fn IsKeyDown(key: rl.KeyboardKey) bool; pub extern "c" fn IsKeyReleased(key: rl.KeyboardKey) bool; pub extern "c" fn IsKeyUp(key: rl.KeyboardKey) bool; pub extern "c" fn GetKeyPressed() rl.KeyboardKey; pub extern "c" fn GetCharPressed() c_int; pub extern "c" fn SetExitKey(key: rl.KeyboardKey) void; pub extern "c" fn IsGamepadAvailable(gamepad: c_int) bool; pub extern "c" fn GetGamepadName(gamepad: c_int) [*c]const u8; pub extern "c" fn IsGamepadButtonPressed(gamepad: c_int, button: rl.GamepadButton) bool; pub extern "c" fn IsGamepadButtonDown(gamepad: c_int, button: rl.GamepadButton) bool; pub extern "c" fn IsGamepadButtonReleased(gamepad: c_int, button: rl.GamepadButton) bool; pub extern "c" fn IsGamepadButtonUp(gamepad: c_int, button: rl.GamepadButton) bool; pub extern "c" fn GetGamepadButtonPressed() rl.GamepadButton; pub extern "c" fn GetGamepadAxisCount(gamepad: c_int) c_int; pub extern "c" fn GetGamepadAxisMovement(gamepad: c_int, axis: c_int) f32; pub extern "c" fn SetGamepadMappings(mappings: [*c]const u8) c_int; pub extern "c" fn SetGamepadVibration(gamepad: c_int, leftMotor: f32, rightMotor: f32) void; pub extern "c" fn IsMouseButtonPressed(button: rl.MouseButton) bool; pub extern "c" fn IsMouseButtonDown(button: rl.MouseButton) bool; pub extern "c" fn IsMouseButtonReleased(button: rl.MouseButton) bool; pub extern "c" fn IsMouseButtonUp(button: rl.MouseButton) bool; pub extern "c" fn GetMouseX() c_int; pub extern "c" fn GetMouseY() c_int; pub extern "c" fn GetMousePosition() rl.Vector2; pub extern "c" fn GetMouseDelta() rl.Vector2; pub extern "c" fn SetMousePosition(x: c_int, y: c_int) void; pub extern "c" fn SetMouseOffset(offsetX: c_int, offsetY: c_int) void; pub extern "c" fn SetMouseScale(scaleX: f32, scaleY: f32) void; pub extern "c" fn GetMouseWheelMove() f32; pub extern "c" fn GetMouseWheelMoveV() rl.Vector2; pub extern "c" fn SetMouseCursor(cursor: c_int) void; pub extern "c" fn GetTouchX() c_int; pub extern "c" fn GetTouchY() c_int; pub extern "c" fn GetTouchPosition(index: c_int) rl.Vector2; pub extern "c" fn GetTouchPointId(index: c_int) c_int; pub extern "c" fn GetTouchPointCount() c_int; pub extern "c" fn SetGesturesEnabled(flags: rl.Gesture) void; pub extern "c" fn IsGestureDetected(gesture: rl.Gesture) bool; pub extern "c" fn GetGestureDetected() rl.Gesture; pub extern "c" fn GetGestureHoldDuration() f32; pub extern "c" fn GetGestureDragVector() rl.Vector2; pub extern "c" fn GetGestureDragAngle() f32; pub extern "c" fn GetGesturePinchVector() rl.Vector2; pub extern "c" fn GetGesturePinchAngle() f32; pub extern "c" fn UpdateCamera(camera: [*c]rl.Camera, mode: rl.CameraMode) void; pub extern "c" fn UpdateCameraPro(camera: [*c]rl.Camera, movement: rl.Vector3, rotation: rl.Vector3, zoom: f32) void; pub extern "c" fn SetShapesTexture(texture: rl.Texture2D, source: rl.Rectangle) void; pub extern "c" fn GetShapesTexture() rl.Texture2D; pub extern "c" fn GetShapesTextureRectangle() rl.Rectangle; pub extern "c" fn DrawPixel(posX: c_int, posY: c_int, color: rl.Color) void; pub extern "c" fn DrawPixelV(position: rl.Vector2, color: rl.Color) void; pub extern "c" fn DrawLine(startPosX: c_int, startPosY: c_int, endPosX: c_int, endPosY: c_int, color: rl.Color) void; pub extern "c" fn DrawLineV(startPos: rl.Vector2, endPos: rl.Vector2, color: rl.Color) void; pub extern "c" fn DrawLineEx(startPos: rl.Vector2, endPos: rl.Vector2, thick: f32, color: rl.Color) void; pub extern "c" fn DrawLineStrip(points: [*c]rl.Vector2, pointCount: c_int, color: rl.Color) void; pub extern "c" fn DrawLineBezier(startPos: rl.Vector2, endPos: rl.Vector2, thick: f32, color: rl.Color) void; pub extern "c" fn DrawCircle(centerX: c_int, centerY: c_int, radius: f32, color: rl.Color) void; pub extern "c" fn DrawCircleSector(center: rl.Vector2, radius: f32, startAngle: f32, endAngle: f32, segments: c_int, color: rl.Color) void; pub extern "c" fn DrawCircleSectorLines(center: rl.Vector2, radius: f32, startAngle: f32, endAngle: f32, segments: c_int, color: rl.Color) void; pub extern "c" fn DrawCircleGradient(centerX: c_int, centerY: c_int, radius: f32, color1: rl.Color, color2: rl.Color) void; pub extern "c" fn DrawCircleV(center: rl.Vector2, radius: f32, color: rl.Color) void; pub extern "c" fn DrawCircleLines(centerX: c_int, centerY: c_int, radius: f32, color: rl.Color) void; pub extern "c" fn DrawCircleLinesV(center: rl.Vector2, radius: f32, color: rl.Color) void; pub extern "c" fn DrawEllipse(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: rl.Color) void; pub extern "c" fn DrawEllipseLines(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: rl.Color) void; pub extern "c" fn DrawRing(center: rl.Vector2, innerRadius: f32, outerRadius: f32, startAngle: f32, endAngle: f32, segments: c_int, color: rl.Color) void; pub extern "c" fn DrawRingLines(center: rl.Vector2, innerRadius: f32, outerRadius: f32, startAngle: f32, endAngle: f32, segments: c_int, color: rl.Color) void; pub extern "c" fn DrawRectangle(posX: c_int, posY: c_int, width: c_int, height: c_int, color: rl.Color) void; pub extern "c" fn DrawRectangleV(position: rl.Vector2, size: rl.Vector2, color: rl.Color) void; pub extern "c" fn DrawRectangleRec(rec: rl.Rectangle, color: rl.Color) void; pub extern "c" fn DrawRectanglePro(rec: rl.Rectangle, origin: rl.Vector2, rotation: f32, color: rl.Color) void; pub extern "c" fn DrawRectangleGradientV(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: rl.Color, color2: rl.Color) void; pub extern "c" fn DrawRectangleGradientH(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: rl.Color, color2: rl.Color) void; pub extern "c" fn DrawRectangleGradientEx(rec: rl.Rectangle, col1: rl.Color, col2: rl.Color, col3: rl.Color, col4: rl.Color) void; pub extern "c" fn DrawRectangleLines(posX: c_int, posY: c_int, width: c_int, height: c_int, color: rl.Color) void; pub extern "c" fn DrawRectangleLinesEx(rec: rl.Rectangle, lineThick: f32, color: rl.Color) void; pub extern "c" fn DrawRectangleRounded(rec: rl.Rectangle, roundness: f32, segments: c_int, color: rl.Color) void; pub extern "c" fn DrawRectangleRoundedLines(rec: rl.Rectangle, roundness: f32, segments: c_int, color: rl.Color) void; pub extern "c" fn DrawRectangleRoundedLinesEx(rec: rl.Rectangle, roundness: f32, segments: c_int, lineThick: f32, color: rl.Color) void; pub extern "c" fn DrawTriangle(v1: rl.Vector2, v2: rl.Vector2, v3: rl.Vector2, color: rl.Color) void; pub extern "c" fn DrawTriangleLines(v1: rl.Vector2, v2: rl.Vector2, v3: rl.Vector2, color: rl.Color) void; pub extern "c" fn DrawTriangleFan(points: [*c]rl.Vector2, pointCount: c_int, color: rl.Color) void; pub extern "c" fn DrawTriangleStrip(points: [*c]rl.Vector2, pointCount: c_int, color: rl.Color) void; pub extern "c" fn DrawPoly(center: rl.Vector2, sides: c_int, radius: f32, rotation: f32, color: rl.Color) void; pub extern "c" fn DrawPolyLines(center: rl.Vector2, sides: c_int, radius: f32, rotation: f32, color: rl.Color) void; pub extern "c" fn DrawPolyLinesEx(center: rl.Vector2, sides: c_int, radius: f32, rotation: f32, lineThick: f32, color: rl.Color) void; pub extern "c" fn DrawSplineLinear(points: [*c]rl.Vector2, pointCount: c_int, thick: f32, color: rl.Color) void; pub extern "c" fn DrawSplineBasis(points: [*c]rl.Vector2, pointCount: c_int, thick: f32, color: rl.Color) void; pub extern "c" fn DrawSplineCatmullRom(points: [*c]rl.Vector2, pointCount: c_int, thick: f32, color: rl.Color) void; pub extern "c" fn DrawSplineBezierQuadratic(points: [*c]rl.Vector2, pointCount: c_int, thick: f32, color: rl.Color) void; pub extern "c" fn DrawSplineBezierCubic(points: [*c]rl.Vector2, pointCount: c_int, thick: f32, color: rl.Color) void; pub extern "c" fn DrawSplineSegmentLinear(p1: rl.Vector2, p2: rl.Vector2, thick: f32, color: rl.Color) void; pub extern "c" fn DrawSplineSegmentBasis(p1: rl.Vector2, p2: rl.Vector2, p3: rl.Vector2, p4: rl.Vector2, thick: f32, color: rl.Color) void; pub extern "c" fn DrawSplineSegmentCatmullRom(p1: rl.Vector2, p2: rl.Vector2, p3: rl.Vector2, p4: rl.Vector2, thick: f32, color: rl.Color) void; pub extern "c" fn DrawSplineSegmentBezierQuadratic(p1: rl.Vector2, c2: rl.Vector2, p3: rl.Vector2, thick: f32, color: rl.Color) void; pub extern "c" fn DrawSplineSegmentBezierCubic(p1: rl.Vector2, c2: rl.Vector2, c3: rl.Vector2, p4: rl.Vector2, thick: f32, color: rl.Color) void; pub extern "c" fn GetSplinePointLinear(startPos: rl.Vector2, endPos: rl.Vector2, t: f32) rl.Vector2; pub extern "c" fn GetSplinePointBasis(p1: rl.Vector2, p2: rl.Vector2, p3: rl.Vector2, p4: rl.Vector2, t: f32) rl.Vector2; pub extern "c" fn GetSplinePointCatmullRom(p1: rl.Vector2, p2: rl.Vector2, p3: rl.Vector2, p4: rl.Vector2, t: f32) rl.Vector2; pub extern "c" fn GetSplinePointBezierQuad(p1: rl.Vector2, c2: rl.Vector2, p3: rl.Vector2, t: f32) rl.Vector2; pub extern "c" fn GetSplinePointBezierCubic(p1: rl.Vector2, c2: rl.Vector2, c3: rl.Vector2, p4: rl.Vector2, t: f32) rl.Vector2; pub extern "c" fn CheckCollisionRecs(rec1: rl.Rectangle, rec2: rl.Rectangle) bool; pub extern "c" fn CheckCollisionCircles(center1: rl.Vector2, radius1: f32, center2: rl.Vector2, radius2: f32) bool; pub extern "c" fn CheckCollisionCircleRec(center: rl.Vector2, radius: f32, rec: rl.Rectangle) bool; pub extern "c" fn CheckCollisionPointRec(point: rl.Vector2, rec: rl.Rectangle) bool; pub extern "c" fn CheckCollisionPointCircle(point: rl.Vector2, center: rl.Vector2, radius: f32) bool; pub extern "c" fn CheckCollisionPointTriangle(point: rl.Vector2, p1: rl.Vector2, p2: rl.Vector2, p3: rl.Vector2) bool; pub extern "c" fn CheckCollisionPointPoly(point: rl.Vector2, points: [*c]rl.Vector2, pointCount: c_int) bool; pub extern "c" fn CheckCollisionLines(startPos1: rl.Vector2, endPos1: rl.Vector2, startPos2: rl.Vector2, endPos2: rl.Vector2, collisionPoint: [*c]rl.Vector2) bool; pub extern "c" fn CheckCollisionPointLine(point: rl.Vector2, p1: rl.Vector2, p2: rl.Vector2, threshold: c_int) bool; pub extern "c" fn CheckCollisionCircleLine(center: rl.Vector2, radius: f32, p1: rl.Vector2, p2: rl.Vector2) bool; pub extern "c" fn GetCollisionRec(rec1: rl.Rectangle, rec2: rl.Rectangle) rl.Rectangle; pub extern "c" fn LoadImage(fileName: [*c]const u8) rl.Image; pub extern "c" fn LoadImageRaw(fileName: [*c]const u8, width: c_int, height: c_int, format: rl.PixelFormat, headerSize: c_int) rl.Image; pub extern "c" fn LoadImageSvg(fileNameOrString: [*c]const u8, width: c_int, height: c_int) rl.Image; pub extern "c" fn LoadImageAnim(fileName: [*c]const u8, frames: [*c]c_int) rl.Image; pub extern "c" fn LoadImageAnimFromMemory(fileType: [*c]const u8, fileData: [*c]const u8, dataSize: c_int, frames: [*c]c_int) rl.Image; pub extern "c" fn LoadImageFromMemory(fileType: [*c]const u8, fileData: [*c]const u8, dataSize: c_int) rl.Image; pub extern "c" fn LoadImageFromTexture(texture: rl.Texture2D) rl.Image; pub extern "c" fn LoadImageFromScreen() rl.Image; pub extern "c" fn IsImageReady(image: rl.Image) bool; pub extern "c" fn UnloadImage(image: rl.Image) void; pub extern "c" fn ExportImage(image: rl.Image, fileName: [*c]const u8) bool; pub extern "c" fn ExportImageToMemory(image: rl.Image, fileType: [*c]const u8, fileSize: [*c]c_int) [*c]u8; pub extern "c" fn ExportImageAsCode(image: rl.Image, fileName: [*c]const u8) bool; pub extern "c" fn GenImageColor(width: c_int, height: c_int, color: rl.Color) rl.Image; pub extern "c" fn GenImageGradientLinear(width: c_int, height: c_int, direction: c_int, start: rl.Color, end: rl.Color) rl.Image; pub extern "c" fn GenImageGradientRadial(width: c_int, height: c_int, density: f32, inner: rl.Color, outer: rl.Color) rl.Image; pub extern "c" fn GenImageGradientSquare(width: c_int, height: c_int, density: f32, inner: rl.Color, outer: rl.Color) rl.Image; pub extern "c" fn GenImageChecked(width: c_int, height: c_int, checksX: c_int, checksY: c_int, col1: rl.Color, col2: rl.Color) rl.Image; pub extern "c" fn GenImageWhiteNoise(width: c_int, height: c_int, factor: f32) rl.Image; pub extern "c" fn GenImagePerlinNoise(width: c_int, height: c_int, offsetX: c_int, offsetY: c_int, scale: f32) rl.Image; pub extern "c" fn GenImageCellular(width: c_int, height: c_int, tileSize: c_int) rl.Image; pub extern "c" fn GenImageText(width: c_int, height: c_int, text: [*c]const u8) rl.Image; pub extern "c" fn ImageCopy(image: rl.Image) rl.Image; pub extern "c" fn ImageFromImage(image: rl.Image, rec: rl.Rectangle) rl.Image; pub extern "c" fn ImageText(text: [*c]const u8, fontSize: c_int, color: rl.Color) rl.Image; pub extern "c" fn ImageTextEx(font: rl.Font, text: [*c]const u8, fontSize: f32, spacing: f32, tint: rl.Color) rl.Image; pub extern "c" fn ImageFormat(image: [*c]rl.Image, newFormat: rl.PixelFormat) void; pub extern "c" fn ImageToPOT(image: [*c]rl.Image, fill: rl.Color) void; pub extern "c" fn ImageCrop(image: [*c]rl.Image, crop: rl.Rectangle) void; pub extern "c" fn ImageAlphaCrop(image: [*c]rl.Image, threshold: f32) void; pub extern "c" fn ImageAlphaClear(image: [*c]rl.Image, color: rl.Color, threshold: f32) void; pub extern "c" fn ImageAlphaMask(image: [*c]rl.Image, alphaMask: rl.Image) void; pub extern "c" fn ImageAlphaPremultiply(image: [*c]rl.Image) void; pub extern "c" fn ImageBlurGaussian(image: [*c]rl.Image, blurSize: c_int) void; pub extern "c" fn ImageKernelConvolution(image: [*c]rl.Image, kernel: [*c]f32, kernelSize: c_int) void; pub extern "c" fn ImageResize(image: [*c]rl.Image, newWidth: c_int, newHeight: c_int) void; pub extern "c" fn ImageResizeNN(image: [*c]rl.Image, newWidth: c_int, newHeight: c_int) void; pub extern "c" fn ImageResizeCanvas(image: [*c]rl.Image, newWidth: c_int, newHeight: c_int, offsetX: c_int, offsetY: c_int, fill: rl.Color) void; pub extern "c" fn ImageMipmaps(image: [*c]rl.Image) void; pub extern "c" fn ImageDither(image: [*c]rl.Image, rBpp: c_int, gBpp: c_int, bBpp: c_int, aBpp: c_int) void; pub extern "c" fn ImageFlipVertical(image: [*c]rl.Image) void; pub extern "c" fn ImageFlipHorizontal(image: [*c]rl.Image) void; pub extern "c" fn ImageRotate(image: [*c]rl.Image, degrees: c_int) void; pub extern "c" fn ImageRotateCW(image: [*c]rl.Image) void; pub extern "c" fn ImageRotateCCW(image: [*c]rl.Image) void; pub extern "c" fn ImageColorTint(image: [*c]rl.Image, color: rl.Color) void; pub extern "c" fn ImageColorInvert(image: [*c]rl.Image) void; pub extern "c" fn ImageColorGrayscale(image: [*c]rl.Image) void; pub extern "c" fn ImageColorContrast(image: [*c]rl.Image, contrast: f32) void; pub extern "c" fn ImageColorBrightness(image: [*c]rl.Image, brightness: c_int) void; pub extern "c" fn ImageColorReplace(image: [*c]rl.Image, color: rl.Color, replace: rl.Color) void; pub extern "c" fn LoadImageColors(image: rl.Image) [*c]rl.Color; pub extern "c" fn LoadImagePalette(image: rl.Image, maxPaletteSize: c_int, colorCount: [*c]c_int) [*c]rl.Color; pub extern "c" fn UnloadImageColors(colors: [*c]rl.Color) void; pub extern "c" fn UnloadImagePalette(colors: [*c]rl.Color) void; pub extern "c" fn GetImageAlphaBorder(image: rl.Image, threshold: f32) rl.Rectangle; pub extern "c" fn GetImageColor(image: rl.Image, x: c_int, y: c_int) rl.Color; pub extern "c" fn ImageClearBackground(dst: [*c]rl.Image, color: rl.Color) void; pub extern "c" fn ImageDrawPixel(dst: [*c]rl.Image, posX: c_int, posY: c_int, color: rl.Color) void; pub extern "c" fn ImageDrawPixelV(dst: [*c]rl.Image, position: rl.Vector2, color: rl.Color) void; pub extern "c" fn ImageDrawLine(dst: [*c]rl.Image, startPosX: c_int, startPosY: c_int, endPosX: c_int, endPosY: c_int, color: rl.Color) void; pub extern "c" fn ImageDrawLineV(dst: [*c]rl.Image, start: rl.Vector2, end: rl.Vector2, color: rl.Color) void; pub extern "c" fn ImageDrawCircle(dst: [*c]rl.Image, centerX: c_int, centerY: c_int, radius: c_int, color: rl.Color) void; pub extern "c" fn ImageDrawCircleV(dst: [*c]rl.Image, center: rl.Vector2, radius: c_int, color: rl.Color) void; pub extern "c" fn ImageDrawCircleLines(dst: [*c]rl.Image, centerX: c_int, centerY: c_int, radius: c_int, color: rl.Color) void; pub extern "c" fn ImageDrawCircleLinesV(dst: [*c]rl.Image, center: rl.Vector2, radius: c_int, color: rl.Color) void; pub extern "c" fn ImageDrawRectangle(dst: [*c]rl.Image, posX: c_int, posY: c_int, width: c_int, height: c_int, color: rl.Color) void; pub extern "c" fn ImageDrawRectangleV(dst: [*c]rl.Image, position: rl.Vector2, size: rl.Vector2, color: rl.Color) void; pub extern "c" fn ImageDrawRectangleRec(dst: [*c]rl.Image, rec: rl.Rectangle, color: rl.Color) void; pub extern "c" fn ImageDrawRectangleLines(dst: [*c]rl.Image, rec: rl.Rectangle, thick: c_int, color: rl.Color) void; pub extern "c" fn ImageDraw(dst: [*c]rl.Image, src: rl.Image, srcRec: rl.Rectangle, dstRec: rl.Rectangle, tint: rl.Color) void; pub extern "c" fn ImageDrawText(dst: [*c]rl.Image, text: [*c]const u8, posX: c_int, posY: c_int, fontSize: c_int, color: rl.Color) void; pub extern "c" fn ImageDrawTextEx(dst: [*c]rl.Image, font: rl.Font, text: [*c]const u8, position: rl.Vector2, fontSize: f32, spacing: f32, tint: rl.Color) void; pub extern "c" fn LoadTexture(fileName: [*c]const u8) rl.Texture2D; pub extern "c" fn LoadTextureFromImage(image: rl.Image) rl.Texture2D; pub extern "c" fn LoadTextureCubemap(image: rl.Image, layout: rl.CubemapLayout) rl.TextureCubemap; pub extern "c" fn LoadRenderTexture(width: c_int, height: c_int) rl.RenderTexture2D; pub extern "c" fn IsTextureReady(texture: rl.Texture2D) bool; pub extern "c" fn UnloadTexture(texture: rl.Texture2D) void; pub extern "c" fn IsRenderTextureReady(target: rl.RenderTexture2D) bool; pub extern "c" fn UnloadRenderTexture(target: rl.RenderTexture2D) void; pub extern "c" fn UpdateTexture(texture: rl.Texture2D, pixels: *const anyopaque) void; pub extern "c" fn UpdateTextureRec(texture: rl.Texture2D, rec: rl.Rectangle, pixels: *const anyopaque) void; pub extern "c" fn GenTextureMipmaps(texture: [*c]rl.Texture2D) void; pub extern "c" fn SetTextureFilter(texture: rl.Texture2D, filter: rl.TextureFilter) void; pub extern "c" fn SetTextureWrap(texture: rl.Texture2D, wrap: c_int) void; pub extern "c" fn DrawTexture(texture: rl.Texture2D, posX: c_int, posY: c_int, tint: rl.Color) void; pub extern "c" fn DrawTextureV(texture: rl.Texture2D, position: rl.Vector2, tint: rl.Color) void; pub extern "c" fn DrawTextureEx(texture: rl.Texture2D, position: rl.Vector2, rotation: f32, scale: f32, tint: rl.Color) void; pub extern "c" fn DrawTextureRec(texture: rl.Texture2D, source: rl.Rectangle, position: rl.Vector2, tint: rl.Color) void; pub extern "c" fn DrawTexturePro(texture: rl.Texture2D, source: rl.Rectangle, dest: rl.Rectangle, origin: rl.Vector2, rotation: f32, tint: rl.Color) void; pub extern "c" fn DrawTextureNPatch(texture: rl.Texture2D, nPatchInfo: rl.NPatchInfo, dest: rl.Rectangle, origin: rl.Vector2, rotation: f32, tint: rl.Color) void; pub extern "c" fn ColorIsEqual(col1: rl.Color, col2: rl.Color) bool; pub extern "c" fn Fade(color: rl.Color, alpha: f32) rl.Color; pub extern "c" fn ColorToInt(color: rl.Color) c_int; pub extern "c" fn ColorNormalize(color: rl.Color) rl.Vector4; pub extern "c" fn ColorFromNormalized(normalized: rl.Vector4) rl.Color; pub extern "c" fn ColorToHSV(color: rl.Color) rl.Vector3; pub extern "c" fn ColorFromHSV(hue: f32, saturation: f32, value: f32) rl.Color; pub extern "c" fn ColorTint(color: rl.Color, tint: rl.Color) rl.Color; pub extern "c" fn ColorBrightness(color: rl.Color, factor: f32) rl.Color; pub extern "c" fn ColorContrast(color: rl.Color, contrast: f32) rl.Color; pub extern "c" fn ColorAlpha(color: rl.Color, alpha: f32) rl.Color; pub extern "c" fn ColorAlphaBlend(dst: rl.Color, src: rl.Color, tint: rl.Color) rl.Color; pub extern "c" fn GetColor(hexValue: c_uint) rl.Color; pub extern "c" fn GetPixelColor(srcPtr: *anyopaque, format: rl.PixelFormat) rl.Color; pub extern "c" fn SetPixelColor(dstPtr: *anyopaque, color: rl.Color, format: rl.PixelFormat) void; pub extern "c" fn GetPixelDataSize(width: c_int, height: c_int, format: rl.PixelFormat) c_int; pub extern "c" fn GetFontDefault() rl.Font; pub extern "c" fn LoadFont(fileName: [*c]const u8) rl.Font; pub extern "c" fn LoadFontEx(fileName: [*c]const u8, fontSize: c_int, codepoints: [*c]c_int, codepointCount: c_int) rl.Font; pub extern "c" fn LoadFontFromImage(image: rl.Image, key: rl.Color, firstChar: c_int) rl.Font; pub extern "c" fn LoadFontFromMemory(fileType: [*c]const u8, fileData: [*c]const u8, dataSize: c_int, fontSize: c_int, codepoints: [*c]c_int, codepointCount: c_int) rl.Font; pub extern "c" fn IsFontReady(font: rl.Font) bool; pub extern "c" fn LoadFontData(fileData: [*c]const u8, dataSize: c_int, fontSize: c_int, codepoints: [*c]c_int, codepointCount: c_int, ty: rl.FontType) [*c]rl.GlyphInfo; pub extern "c" fn GenImageFontAtlas(glyphs: [*c]const rl.GlyphInfo, glyphRecs: [*c][*c]rl.Rectangle, glyphCount: c_int, fontSize: c_int, padding: c_int, packMethod: c_int) rl.Image; pub extern "c" fn UnloadFontData(glyphs: [*c]rl.GlyphInfo, glyphCount: c_int) void; pub extern "c" fn UnloadFont(font: rl.Font) void; pub extern "c" fn ExportFontAsCode(font: rl.Font, fileName: [*c]const u8) bool; pub extern "c" fn DrawFPS(posX: c_int, posY: c_int) void; pub extern "c" fn DrawText(text: [*c]const u8, posX: c_int, posY: c_int, fontSize: c_int, color: rl.Color) void; pub extern "c" fn DrawTextEx(font: rl.Font, text: [*c]const u8, position: rl.Vector2, fontSize: f32, spacing: f32, tint: rl.Color) void; pub extern "c" fn DrawTextPro(font: rl.Font, text: [*c]const u8, position: rl.Vector2, origin: rl.Vector2, rotation: f32, fontSize: f32, spacing: f32, tint: rl.Color) void; pub extern "c" fn DrawTextCodepoint(font: rl.Font, codepoint: c_int, position: rl.Vector2, fontSize: f32, tint: rl.Color) void; pub extern "c" fn DrawTextCodepoints(font: rl.Font, codepoints: [*c]const c_int, codepointCount: c_int, position: rl.Vector2, fontSize: f32, spacing: f32, tint: rl.Color) void; pub extern "c" fn SetTextLineSpacing(spacing: c_int) void; pub extern "c" fn MeasureText(text: [*c]const u8, fontSize: c_int) c_int; pub extern "c" fn MeasureTextEx(font: rl.Font, text: [*c]const u8, fontSize: f32, spacing: f32) rl.Vector2; pub extern "c" fn GetGlyphIndex(font: rl.Font, codepoint: c_int) c_int; pub extern "c" fn GetGlyphInfo(font: rl.Font, codepoint: c_int) rl.GlyphInfo; pub extern "c" fn GetGlyphAtlasRec(font: rl.Font, codepoint: c_int) rl.Rectangle; pub extern "c" fn LoadUTF8(codepoints: [*c]const c_int, length: c_int) [*c]u8; pub extern "c" fn UnloadUTF8(text: [*c]u8) void; pub extern "c" fn LoadCodepoints(text: [*c]const u8, count: [*c]c_int) [*c]c_int; pub extern "c" fn UnloadCodepoints(codepoints: [*c]c_int) void; pub extern "c" fn GetCodepointCount(text: [*c]const u8) c_int; pub extern "c" fn GetCodepoint(text: [*c]const u8, codepointSize: [*c]c_int) c_int; pub extern "c" fn GetCodepointNext(text: [*c]const u8, codepointSize: [*c]c_int) c_int; pub extern "c" fn GetCodepointPrevious(text: [*c]const u8, codepointSize: [*c]c_int) c_int; pub extern "c" fn CodepointToUTF8(codepoint: c_int, utf8Size: [*c]c_int) [*c]const u8; pub extern "c" fn TextCopy(dst: [*c]u8, src: [*c]const u8) c_int; pub extern "c" fn TextIsEqual(text1: [*c]const u8, text2: [*c]const u8) bool; pub extern "c" fn TextLength(text: [*c]const u8) c_uint; pub extern "c" fn TextFormat(text: [*c]const u8, ...) [*c]const u8; pub extern "c" fn TextSubtext(text: [*c]const u8, position: c_int, length: c_int) [*c]const u8; pub extern "c" fn TextReplace(text: [*c]const u8, replace: [*c]const u8, by: [*c]const u8) [*c]u8; pub extern "c" fn TextInsert(text: [*c]const u8, insert: [*c]const u8, position: c_int) [*c]u8; pub extern "c" fn TextJoin(textList: [*c][*c]const u8, count: c_int, delimiter: [*c]const u8) [*c]const u8; pub extern "c" fn TextSplit(text: [*c]const u8, delimiter: u8, count: [*c]c_int) [*c][*c]const u8; pub extern "c" fn TextAppend(text: [*c]u8, append: [*c]const u8, position: [*c]c_int) void; pub extern "c" fn TextFindIndex(text: [*c]const u8, find: [*c]const u8) c_int; pub extern "c" fn TextToUpper(text: [*c]const u8) [*c]const u8; pub extern "c" fn TextToLower(text: [*c]const u8) [*c]const u8; pub extern "c" fn TextToPascal(text: [*c]const u8) [*c]const u8; pub extern "c" fn TextToSnake(text: [*c]const u8) [*c]const u8; pub extern "c" fn TextToCamel(text: [*c]const u8) [*c]const u8; pub extern "c" fn TextToInteger(text: [*c]const u8) c_int; pub extern "c" fn TextToFloat(text: [*c]const u8) f32; pub extern "c" fn DrawLine3D(startPos: rl.Vector3, endPos: rl.Vector3, color: rl.Color) void; pub extern "c" fn DrawPoint3D(position: rl.Vector3, color: rl.Color) void; pub extern "c" fn DrawCircle3D(center: rl.Vector3, radius: f32, rotationAxis: rl.Vector3, rotationAngle: f32, color: rl.Color) void; pub extern "c" fn DrawTriangle3D(v1: rl.Vector3, v2: rl.Vector3, v3: rl.Vector3, color: rl.Color) void; pub extern "c" fn DrawTriangleStrip3D(points: [*c]rl.Vector3, pointCount: c_int, color: rl.Color) void; pub extern "c" fn DrawCube(position: rl.Vector3, width: f32, height: f32, length: f32, color: rl.Color) void; pub extern "c" fn DrawCubeV(position: rl.Vector3, size: rl.Vector3, color: rl.Color) void; pub extern "c" fn DrawCubeWires(position: rl.Vector3, width: f32, height: f32, length: f32, color: rl.Color) void; pub extern "c" fn DrawCubeWiresV(position: rl.Vector3, size: rl.Vector3, color: rl.Color) void; pub extern "c" fn DrawSphere(centerPos: rl.Vector3, radius: f32, color: rl.Color) void; pub extern "c" fn DrawSphereEx(centerPos: rl.Vector3, radius: f32, rings: c_int, slices: c_int, color: rl.Color) void; pub extern "c" fn DrawSphereWires(centerPos: rl.Vector3, radius: f32, rings: c_int, slices: c_int, color: rl.Color) void; pub extern "c" fn DrawCylinder(position: rl.Vector3, radiusTop: f32, radiusBottom: f32, height: f32, slices: c_int, color: rl.Color) void; pub extern "c" fn DrawCylinderEx(startPos: rl.Vector3, endPos: rl.Vector3, startRadius: f32, endRadius: f32, sides: c_int, color: rl.Color) void; pub extern "c" fn DrawCylinderWires(position: rl.Vector3, radiusTop: f32, radiusBottom: f32, height: f32, slices: c_int, color: rl.Color) void; pub extern "c" fn DrawCylinderWiresEx(startPos: rl.Vector3, endPos: rl.Vector3, startRadius: f32, endRadius: f32, sides: c_int, color: rl.Color) void; pub extern "c" fn DrawCapsule(startPos: rl.Vector3, endPos: rl.Vector3, radius: f32, slices: c_int, rings: c_int, color: rl.Color) void; pub extern "c" fn DrawCapsuleWires(startPos: rl.Vector3, endPos: rl.Vector3, radius: f32, slices: c_int, rings: c_int, color: rl.Color) void; pub extern "c" fn DrawPlane(centerPos: rl.Vector3, size: rl.Vector2, color: rl.Color) void; pub extern "c" fn DrawRay(ray: rl.Ray, color: rl.Color) void; pub extern "c" fn DrawGrid(slices: c_int, spacing: f32) void; pub extern "c" fn LoadModel(fileName: [*c]const u8) rl.Model; pub extern "c" fn LoadModelFromMesh(mesh: rl.Mesh) rl.Model; pub extern "c" fn IsModelReady(model: rl.Model) bool; pub extern "c" fn UnloadModel(model: rl.Model) void; pub extern "c" fn GetModelBoundingBox(model: rl.Model) rl.BoundingBox; pub extern "c" fn DrawModel(model: rl.Model, position: rl.Vector3, scale: f32, tint: rl.Color) void; pub extern "c" fn DrawModelEx(model: rl.Model, position: rl.Vector3, rotationAxis: rl.Vector3, rotationAngle: f32, scale: rl.Vector3, tint: rl.Color) void; pub extern "c" fn DrawModelWires(model: rl.Model, position: rl.Vector3, scale: f32, tint: rl.Color) void; pub extern "c" fn DrawModelWiresEx(model: rl.Model, position: rl.Vector3, rotationAxis: rl.Vector3, rotationAngle: f32, scale: rl.Vector3, tint: rl.Color) void; pub extern "c" fn DrawBoundingBox(box: rl.BoundingBox, color: rl.Color) void; pub extern "c" fn DrawBillboard(camera: rl.Camera, texture: rl.Texture2D, position: rl.Vector3, size: f32, tint: rl.Color) void; pub extern "c" fn DrawBillboardRec(camera: rl.Camera, texture: rl.Texture2D, source: rl.Rectangle, position: rl.Vector3, size: rl.Vector2, tint: rl.Color) void; pub extern "c" fn DrawBillboardPro(camera: rl.Camera, texture: rl.Texture2D, source: rl.Rectangle, position: rl.Vector3, up: rl.Vector3, size: rl.Vector2, origin: rl.Vector2, rotation: f32, tint: rl.Color) void; pub extern "c" fn UploadMesh(mesh: [*c]rl.Mesh, dynamic: bool) void; pub extern "c" fn UpdateMeshBuffer(mesh: rl.Mesh, index: c_int, data: *const anyopaque, dataSize: c_int, offset: c_int) void; pub extern "c" fn UnloadMesh(mesh: rl.Mesh) void; pub extern "c" fn DrawMesh(mesh: rl.Mesh, material: rl.Material, transform: rl.Matrix) void; pub extern "c" fn DrawMeshInstanced(mesh: rl.Mesh, material: rl.Material, transforms: [*c]const rl.Matrix, instances: c_int) void; pub extern "c" fn GetMeshBoundingBox(mesh: rl.Mesh) rl.BoundingBox; pub extern "c" fn GenMeshTangents(mesh: [*c]rl.Mesh) void; pub extern "c" fn ExportMesh(mesh: rl.Mesh, fileName: [*c]const u8) bool; pub extern "c" fn ExportMeshAsCode(mesh: rl.Mesh, fileName: [*c]const u8) bool; pub extern "c" fn GenMeshPoly(sides: c_int, radius: f32) rl.Mesh; pub extern "c" fn GenMeshPlane(width: f32, length: f32, resX: c_int, resZ: c_int) rl.Mesh; pub extern "c" fn GenMeshCube(width: f32, height: f32, length: f32) rl.Mesh; pub extern "c" fn GenMeshSphere(radius: f32, rings: c_int, slices: c_int) rl.Mesh; pub extern "c" fn GenMeshHemiSphere(radius: f32, rings: c_int, slices: c_int) rl.Mesh; pub extern "c" fn GenMeshCylinder(radius: f32, height: f32, slices: c_int) rl.Mesh; pub extern "c" fn GenMeshCone(radius: f32, height: f32, slices: c_int) rl.Mesh; pub extern "c" fn GenMeshTorus(radius: f32, size: f32, radSeg: c_int, sides: c_int) rl.Mesh; pub extern "c" fn GenMeshKnot(radius: f32, size: f32, radSeg: c_int, sides: c_int) rl.Mesh; pub extern "c" fn GenMeshHeightmap(heightmap: rl.Image, size: rl.Vector3) rl.Mesh; pub extern "c" fn GenMeshCubicmap(cubicmap: rl.Image, cubeSize: rl.Vector3) rl.Mesh; pub extern "c" fn LoadMaterials(fileName: [*c]const u8, materialCount: [*c]c_int) [*c]rl.Material; pub extern "c" fn LoadMaterialDefault() rl.Material; pub extern "c" fn IsMaterialReady(material: rl.Material) bool; pub extern "c" fn UnloadMaterial(material: rl.Material) void; pub extern "c" fn SetMaterialTexture(material: [*c]rl.Material, mapType: rl.MaterialMapIndex, texture: rl.Texture2D) void; pub extern "c" fn SetModelMeshMaterial(model: [*c]rl.Model, meshId: c_int, materialId: c_int) void; pub extern "c" fn LoadModelAnimations(fileName: [*c]const u8, animCount: [*c]c_int) [*c]rl.ModelAnimation; pub extern "c" fn UpdateModelAnimation(model: rl.Model, anim: rl.ModelAnimation, frame: c_int) void; pub extern "c" fn UnloadModelAnimation(anim: rl.ModelAnimation) void; pub extern "c" fn UnloadModelAnimations(animations: [*c]rl.ModelAnimation, animCount: c_int) void; pub extern "c" fn IsModelAnimationValid(model: rl.Model, anim: rl.ModelAnimation) bool; pub extern "c" fn CheckCollisionSpheres(center1: rl.Vector3, radius1: f32, center2: rl.Vector3, radius2: f32) bool; pub extern "c" fn CheckCollisionBoxes(box1: rl.BoundingBox, box2: rl.BoundingBox) bool; pub extern "c" fn CheckCollisionBoxSphere(box: rl.BoundingBox, center: rl.Vector3, radius: f32) bool; pub extern "c" fn GetRayCollisionSphere(ray: rl.Ray, center: rl.Vector3, radius: f32) rl.RayCollision; pub extern "c" fn GetRayCollisionBox(ray: rl.Ray, box: rl.BoundingBox) rl.RayCollision; pub extern "c" fn GetRayCollisionMesh(ray: rl.Ray, mesh: rl.Mesh, transform: rl.Matrix) rl.RayCollision; pub extern "c" fn GetRayCollisionTriangle(ray: rl.Ray, p1: rl.Vector3, p2: rl.Vector3, p3: rl.Vector3) rl.RayCollision; pub extern "c" fn GetRayCollisionQuad(ray: rl.Ray, p1: rl.Vector3, p2: rl.Vector3, p3: rl.Vector3, p4: rl.Vector3) rl.RayCollision; pub extern "c" fn InitAudioDevice() void; pub extern "c" fn CloseAudioDevice() void; pub extern "c" fn IsAudioDeviceReady() bool; pub extern "c" fn SetMasterVolume(volume: f32) void; pub extern "c" fn GetMasterVolume() f32; pub extern "c" fn LoadWave(fileName: [*c]const u8) rl.Wave; pub extern "c" fn LoadWaveFromMemory(fileType: [*c]const u8, fileData: [*c]const u8, dataSize: c_int) rl.Wave; pub extern "c" fn IsWaveReady(wave: rl.Wave) bool; pub extern "c" fn LoadSound(fileName: [*c]const u8) rl.Sound; pub extern "c" fn LoadSoundFromWave(wave: rl.Wave) rl.Sound; pub extern "c" fn LoadSoundAlias(source: rl.Sound) rl.Sound; pub extern "c" fn IsSoundReady(sound: rl.Sound) bool; pub extern "c" fn UpdateSound(sound: rl.Sound, data: *const anyopaque, sampleCount: c_int) void; pub extern "c" fn UnloadWave(wave: rl.Wave) void; pub extern "c" fn UnloadSound(sound: rl.Sound) void; pub extern "c" fn UnloadSoundAlias(alias: rl.Sound) void; pub extern "c" fn ExportWave(wave: rl.Wave, fileName: [*c]const u8) bool; pub extern "c" fn ExportWaveAsCode(wave: rl.Wave, fileName: [*c]const u8) bool; pub extern "c" fn PlaySound(sound: rl.Sound) void; pub extern "c" fn StopSound(sound: rl.Sound) void; pub extern "c" fn PauseSound(sound: rl.Sound) void; pub extern "c" fn ResumeSound(sound: rl.Sound) void; pub extern "c" fn IsSoundPlaying(sound: rl.Sound) bool; pub extern "c" fn SetSoundVolume(sound: rl.Sound, volume: f32) void; pub extern "c" fn SetSoundPitch(sound: rl.Sound, pitch: f32) void; pub extern "c" fn SetSoundPan(sound: rl.Sound, pan: f32) void; pub extern "c" fn WaveCopy(wave: rl.Wave) rl.Wave; pub extern "c" fn WaveCrop(wave: [*c]rl.Wave, initFrame: c_int, finalFrame: c_int) void; pub extern "c" fn WaveFormat(wave: [*c]rl.Wave, sampleRate: c_int, sampleSize: c_int, channels: c_int) void; pub extern "c" fn LoadWaveSamples(wave: rl.Wave) [*c]f32; pub extern "c" fn UnloadWaveSamples(samples: [*c]f32) void; pub extern "c" fn LoadMusicStream(fileName: [*c]const u8) rl.Music; pub extern "c" fn LoadMusicStreamFromMemory(fileType: [*c]const u8, data: [*c]const u8, dataSize: c_int) rl.Music; pub extern "c" fn IsMusicReady(music: rl.Music) bool; pub extern "c" fn UnloadMusicStream(music: rl.Music) void; pub extern "c" fn PlayMusicStream(music: rl.Music) void; pub extern "c" fn IsMusicStreamPlaying(music: rl.Music) bool; pub extern "c" fn UpdateMusicStream(music: rl.Music) void; pub extern "c" fn StopMusicStream(music: rl.Music) void; pub extern "c" fn PauseMusicStream(music: rl.Music) void; pub extern "c" fn ResumeMusicStream(music: rl.Music) void; pub extern "c" fn SeekMusicStream(music: rl.Music, position: f32) void; pub extern "c" fn SetMusicVolume(music: rl.Music, volume: f32) void; pub extern "c" fn SetMusicPitch(music: rl.Music, pitch: f32) void; pub extern "c" fn SetMusicPan(music: rl.Music, pan: f32) void; pub extern "c" fn GetMusicTimeLength(music: rl.Music) f32; pub extern "c" fn GetMusicTimePlayed(music: rl.Music) f32; pub extern "c" fn LoadAudioStream(sampleRate: c_uint, sampleSize: c_uint, channels: c_uint) rl.AudioStream; pub extern "c" fn IsAudioStreamReady(stream: rl.AudioStream) bool; pub extern "c" fn UnloadAudioStream(stream: rl.AudioStream) void; pub extern "c" fn UpdateAudioStream(stream: rl.AudioStream, data: *const anyopaque, frameCount: c_int) void; pub extern "c" fn IsAudioStreamProcessed(stream: rl.AudioStream) bool; pub extern "c" fn PlayAudioStream(stream: rl.AudioStream) void; pub extern "c" fn PauseAudioStream(stream: rl.AudioStream) void; pub extern "c" fn ResumeAudioStream(stream: rl.AudioStream) void; pub extern "c" fn IsAudioStreamPlaying(stream: rl.AudioStream) bool; pub extern "c" fn StopAudioStream(stream: rl.AudioStream) void; pub extern "c" fn SetAudioStreamVolume(stream: rl.AudioStream, volume: f32) void; pub extern "c" fn SetAudioStreamPitch(stream: rl.AudioStream, pitch: f32) void; pub extern "c" fn SetAudioStreamPan(stream: rl.AudioStream, pan: f32) void; pub extern "c" fn SetAudioStreamBufferSizeDefault(size: c_int) void; pub extern "c" fn SetAudioStreamCallback(stream: rl.AudioStream, callback: rl.AudioCallback) void; pub extern "c" fn AttachAudioStreamProcessor(stream: rl.AudioStream, processor: rl.AudioCallback) void; pub extern "c" fn DetachAudioStreamProcessor(stream: rl.AudioStream, processor: rl.AudioCallback) void; pub extern "c" fn AttachAudioMixedProcessor(processor: rl.AudioCallback) void; pub extern "c" fn DetachAudioMixedProcessor(processor: rl.AudioCallback) void;