#frame-buffer #pixel #2d-graphics #2d #graphics #gpu

pixels

一个小型库,提供由GPU驱动的像素帧缓冲区

18个版本 (破坏性)

0.13.0 2023年6月13日
0.12.0 2023年3月22日
0.11.0 2022年12月18日
0.10.0 2022年10月29日
0.0.2 2019年11月4日

#15 in 渲染

Download history 1262/week @ 2024-03-13 1625/week @ 2024-03-20 1521/week @ 2024-03-27 1576/week @ 2024-04-03 1569/week @ 2024-04-10 1802/week @ 2024-04-17 1824/week @ 2024-04-24 1898/week @ 2024-05-01 1519/week @ 2024-05-08 1544/week @ 2024-05-15 1693/week @ 2024-05-22 1787/week @ 2024-05-29 1588/week @ 2024-06-05 1523/week @ 2024-06-12 1612/week @ 2024-06-19 1243/week @ 2024-06-26

6,182 每月下载量
用于 52 个crate(47 个直接)

MIT 协议

65KB
881

Crates.io Documentation GitHub actions GitHub activity GitHub Sponsors

Pixels Logo

一个小巧的硬件加速像素帧缓冲区。🦀

但是为什么呢?

快速原型一个简单的2D游戏,基于像素的动画,软件渲染器,或者你最喜欢的平台的模拟器。然后添加着色器来模拟CRT,或者只是用一些不错的VFX来增加趣味。

pixels 不仅仅是一个将像素推送到屏幕的库,但它也不是一个完整的框架。你需要负责管理窗口环境,事件循环和输入处理。

MSRV策略

pixels 的最低支持Rust版本将始终可在GitHub上的 MSRV.md 文件中找到。

特性

  • 基于由 wgpu 提供的现代图形API:Vulkan、Metal、DirectX 12、OpenGL ES3。
    • DirectX 11、WebGL2和WebGPU的支持正在开发中。
  • 使用您自己的自定义着色器来实现特殊效果。
  • 在完美的像素边界上硬件加速缩放。
  • 支持非正方形像素纵横比。 (WIP)

示例

游戏 🎮

演示 🧪

故障排除

驱动程序问题

最常见的问题是宿主机器上安装了过时的图形驱动程序。pixels 默认请求低功耗(即集成)GPU。如果示例因任何原因无法工作,您可能尝试设置环境变量 WGPU_POWER_PREF=high 来查看是否解决了您宿主机器上的问题。

您还应该尝试保持您的图形驱动程序更新,尤其是如果您有一款旧的英特尔集成GPU。请记住,一些驱动程序和GPU已达到生命周期的终点,将不再受到支持。

日志记录

您可能想使用环境变量 RUST_LOG(有关完整文档,请参阅 env_logger)来在调试示例时获得更多洞察。《code>RUST_LOG=trace 将将所有日志输出到 stderr(调试构建)

$ RUST_LOG=trace cargo run --package minimal-winit

默认功能禁用时,也适用于发布构建

$ RUST_LOG=trace cargo run --package minimal-winit --release --no-default-features

minifb 的比较

minifb 库与 pixels 有一些相似之处;它还允许快速原型设计2D游戏和模拟器。但需要使用它自己的窗口/GUI管理、事件循环和输入处理。使用 minifb 方法的一个缺点是缺乏硬件加速(除了macOS,它使用Metal但不可配置)。一个优点是它依赖于更少的依赖项。

softbuffer 的比较

有一个名为 softbuffer 的较新项目。它提供了类似于 pixels 提供的功能,但故意限制为仅软件(非硬件加速)光栅化。

依赖关系

~4-35MB
~538K SLoC