首页 > 解决方案 > 在 Rust 的 SDL2 窗口中操作原始像素的最有效方法是什么?

问题描述

我想有效地操纵(在 CPU 上)显示在 SDL2 窗口中的原始像素。那里有很多关于 SDL2 的信息,但主要是针对 C++ 的,并且与 Rust 绑定的关系并不总是很清楚。

我发现从窗口中,我可以创建一个画布,它可以创建一个 纹理,其原始数据可以按预期进行操作。必须将该纹理复制到画布中才能显示它。

这行得通,但似乎可以使用窗口的内容直接访问像素缓冲区并对其进行变异。是这样吗?这可能会更快一些,并随窗口自动调整大小。其他一些答案让我相信Surface已经暴露了这些原始像素,但是

  1. 这些答案总是告诫说,使用 Surface 是低效的——即使对于我的用例也是如此吗?
  2. 我不知道如何获得正确的 Surface。有 Window 的表面方法,但如果它包含对 EventPump 的引用,那么之后我如何在主循环中使用 EventPump?

标签: rustsdl

解决方案


推荐阅读