comparison examples/menu.rs @ 751:eab7dde1164f

examples: Add music playback to the menu example
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Tue, 25 Feb 2020 19:37:19 +0100
parents 31897f650d2d
children a662dddd4a2b
comparison
equal deleted inserted replaced
750:31897f650d2d 751:eab7dde1164f
1 use ears::{Music, AudioController};
1 use luminance::blending::{Equation, Factor}; 2 use luminance::blending::{Equation, Factor};
2 use luminance::context::GraphicsContext; 3 use luminance::context::GraphicsContext;
3 use luminance::pipeline::{BoundTexture, PipelineState}; 4 use luminance::pipeline::{BoundTexture, PipelineState};
4 use luminance::pixel::NormUnsigned; 5 use luminance::pixel::NormUnsigned;
5 use luminance::render_state::RenderState; 6 use luminance::render_state::RenderState;
111 let jpeg = in_pbg3.get_file("th06logo.jpg", true).expect("th06logo.jpg in IN.DAT"); 112 let jpeg = in_pbg3.get_file("th06logo.jpg", true).expect("th06logo.jpg in IN.DAT");
112 let image = common::load_from_data(&jpeg).expect("th06logo.jpg decodable"); 113 let image = common::load_from_data(&jpeg).expect("th06logo.jpg decodable");
113 image 114 image
114 }); 115 });
115 116
117 let music_filename = directory.join("bgm").join("th06_01.wav");
118 let music_filename = music_filename.to_str().expect("non-UTF-8 music filename");
119 let music = match Music::new(music_filename) {
120 Ok(mut music) => {
121 music.set_looping(true);
122 music.play();
123 music
124 }
125 Err(err) => {
126 eprintln!("Impossible to open or play music file: {}", err);
127 return;
128 }
129 };
130
116 let mut surface = GlfwSurface::new(WindowDim::Windowed(640, 480), "Touhou", WindowOpt::default()).expect("GLFW window"); 131 let mut surface = GlfwSurface::new(WindowDim::Windowed(640, 480), "Touhou", WindowOpt::default()).expect("GLFW window");
117 132
118 let image = jpeg_thread.join().expect("image loading"); 133 let image = jpeg_thread.join().expect("image loading");
119 let background = common::upload_texture_from_rgb_image(&mut surface, image).expect("upload data to texture"); 134 let background = common::upload_texture_from_rgb_image(&mut surface, image).expect("upload data to texture");
120 135