wgpu 0.1.0 copy "wgpu: ^0.1.0" to clipboard
wgpu: ^0.1.0 copied to clipboard

Dart FFI bindings for wgpu. Metal, Vulkan, DX12.

wgpu #

Dart FFI bindings for wgpu. Metal, Vulkan, DX12.

Platforms #

Platform Backend
macOS, iOS Metal
Windows DX12
Linux, Android Vulkan

Usage #

import 'package:wgpu/wgpu.dart';

final instance = Wgpu.create();
final adapter = await instance.requestAdapter();
final device = await adapter.requestDevice();

// Create a buffer
final buffer = device.createBuffer(
  size: 256,
  usage: GpuBufferUsage.vertex | GpuBufferUsage.copyDst,
);

// Render pass
final encoder = device.createCommandEncoder();
final pass = encoder.beginRenderPass(
  colorAttachments: [
    GpuColorAttachment(
      view: texture.createView(),
      loadOp: GpuLoadOp.clear,
      storeOp: GpuStoreOp.store,
    ),
  ],
);
pass.setPipeline(pipeline);
pass.draw(vertexCount: 3);
pass.end();

device.queue.submit([encoder.finish()]);

Compute #

final shader = device.createShaderModule(wgslSource);
final pipeline = device.createComputePipeline(module: shader);

final encoder = device.createCommandEncoder();
final pass = encoder.beginComputePass();
pass.setPipeline(pipeline);
pass.setBindGroup(0, bindGroup);
pass.dispatchWorkgroups(64);
pass.end();

device.queue.submit([encoder.finish()]);

Regenerating bindings #

When FFI functions change in native/src/lib.rs:

./gen_bindings.sh

Requires cbindgen (cargo install cbindgen).

0
likes
140
points
190
downloads

Documentation

API reference

Publisher

verified publisherdartgfx.dev

Weekly Downloads

Dart FFI bindings for wgpu. Metal, Vulkan, DX12.

Repository (GitHub)
View/report issues

Topics

#gpu #webgpu #graphics #ffi

License

MIT (license)

Dependencies

code_assets, ffi, gpuweb, hooks, native_toolchain_rust

More

Packages that depend on wgpu