gpuweb
v0.0.4
Published
A simplified WebGPU library for easier usage
Downloads
23
Readme
# WebGPU 简化库
一个简化 WebGPU API 使用的库,让开发者更容易上手和使用 WebGPU。
## 特性
- 简化 Adapter 和 Device 的初始化流程
- 封装常用的 GPU 资源创建方法
- 提供 Buffer 管理工具
- 易于集成到现有项目中
## 安装
```bash
npm install gpuweb快速开始
import { initWebGPU, isWebGPUSupported } from 'gpuweb';
// 检查浏览器是否支持 WebGPU
if (!isWebGPUSupported()) {
console.error('WebGPU is not supported in this browser');
}
// 初始化 WebGPU
const canvas = document.getElementById('webgpu-canvas') as HTMLCanvasElement;
const { adapter, device, context, format } = await initWebGPU(canvas);
// 现在你可以使用 WebGPU API 进行渲染核心类
WebGPUAdapter
用于请求 GPU 适配器和设备。
const adapterInstance = new WebGPUAdapter();
await adapterInstance.requestAdapter();
const device = await adapterInstance.requestDevice();WebGPUDevice
封装了 GPUDevice,提供更便捷的资源创建方法。
const webgpuDevice = new WebGPUDevice(device);
// 创建各种 GPU 资源
const buffer = webgpuDevice.createBuffer(descriptor);
const shader = webgpuDevice.createShaderModule(descriptor);
const pipeline = webgpuDevice.createRenderPipeline(descriptor);BufferManager
简化缓冲区的创建和数据传输。
const bufferManager = new BufferManager(webgpuDevice);
// 创建缓冲区
const buffer = bufferManager.createBuffer(size, usage);
// 写入数据到缓冲区
await bufferManager.writeBuffer(buffer, data);
// 从缓冲区读取数据
const data = await bufferManager.readBuffer(buffer, size);构建
npm run build开发
npm run dev许可证
MIT
