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