我生成了一个Luma8图像(对应于一个Perlin高度图),并尝试使用函数load_from_image_buffer在应用窗口中显示它,该函数由模型函数中的nannou
::
wgpu
::
Texture
实现,如下所示:
fn model(app: &App) -> Model {
let img_buf = NoiseBuilder::generate_image(256, 8, 8, None);
let texture = wgpu::Texture::load_from_image_buffer(device, queue, usage, &img_buf).unwrap();
Model { texture }
}
正如您所看到的,在这个代码片段中,我没有定义设备、队列和使用参数,我尝试了很多方法,但都没有效果,而且在线资源相当稀缺。
我的问题是如何提供这些参数?
我先试用了from_image函数,它工作正常,但是当我试图学习如何使用这个库时,我对这个特定函数的使用很感兴趣。另外,许多其他方法都需要这个参数,无论如何我都需要理解它。
- 上面代码片段中导入的wgpu模块是nannou::wgpu,而不是直接的wgpu机箱。
- NoiseBuilder::生成图像返回一个
ImageBuffer<Luma<u8>, Vec<u8>>
变量。
1条答案
按热度按时间qzlgjiam1#
您可以使用trait方法
with_device_queue_pair
,它在traitWithDeviceQueuePair
中定义,并为App
或Window
实现。用法只是正常的
wgpu::TextureUsages
。因此,如果你想模仿纹理的
from_path
功能,你可以这样做(未经测试):