# mtl-rs

Rust bindings for Apple's Metal API, built on the modern `objc2` ecosystem.

## Features

- Comprehensive Metal API coverage
- MTL4 (Metal 4) API bindings
- Built on `objc2` for safe and modern Objective-C interop
- Supports macOS and iOS

## Installation

Add to your `Cargo.toml`:

```toml
[dependencies]
mtl-rs = "0.1.12"
```

## Usage

```rust
use metal::MTLDevice;

fn main() {
    let device = <dyn MTLDevice>::system_default()
        .expect("No Metal device found");

    println!("Device: {:?}", device.name());
    println!("Unified memory: {}", device.has_unified_memory());
    println!("Max threadgroup size: {:?}", device.max_threads_per_threadgroup());
}
```

## Examples

Run with `cargo run --example <name>`:

- `drawing_a_triangle_with_metal_4` — Render a rotating triangle using Metal

### Platform requirements

- macOS with a Metal-capable GPU
- Xcode command line tools installed
- Rust toolchain with Apple targets

## License

MIT
