rust - Rust SDL : how do I “attach” a surface to a window?

标签 rust sdl

我正在尝试使用Surface来显示图片。我找不到将Surface连接到Window的方法:

let sdl_context = sdl2::init().expect("failed to init SDL");
let video_subsystem = sdl_context.video().expect("failed to get video context");
let window = video_subsystem.window("title", 640, 480).build().unwrap();
let surface = Surface::load_bmp("assets/foo.bmp").unwrap();

我尝试使用 Canvas ,但是它仍然无法连接窗口:
let mut canvas: Canvas<Surface> = surface.into_canvas().unwrap();

我想念什么?

最佳答案

以下代码有效:

fn main() {
    let sdl_context = sdl2::init().unwrap();
    let video = sdl_context.video().unwrap();
    let window = video.window("SDL Tutorial 02", 640,480)
        .position_centered().opengl().build().unwrap();
    let mut canvas = window.into_canvas().build().unwrap();
    let texture_creator = canvas.texture_creator();
    let texture = texture_creator.load_texture("assets/foo.bmp").unwrap();
    canvas.copy(&texture,None,None).unwrap();
    canvas.present();
    sleep(Duration::from_secs(2));
}

我找不到使它与Surface一起使用的方法,为什么这么重要?因为Surface允许我在渲染时设置透明颜色,但在纹理上看不到。

关于rust - Rust SDL : how do I “attach” a surface to a window?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61762435/

相关文章:

opengl - 在 SDL 2 中使用 OpenGL 有什么好处?

c++ - SDL C++ ttf 链接器错误

c++ - SDL 鼠标点击

generics - 使用泛型关联类型时,如何指示类型参数上的生存期约束?

rust - 如何将异步函数放入 Rust 中的映射中?

windows - 为什么 Windows 上 time::Duration 的纳秒值降至最接近的 100 倍数?

vector - 如何反向填充向量?

opengl - 当今 OpenGL 中 NPOT 纹理的状态

c++ - C++ 中非常特殊的链接器错误

rust - 如何在 .unzip() 返回的每个迭代器上使用 .collect()?