我正在尝试使用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/