diff -r eb52cf05e454 -r 8a6a2d931bae rust/lib-hedgewars-engine/src/render/gear.rs --- a/rust/lib-hedgewars-engine/src/render/gear.rs Sat Nov 05 17:48:45 2022 +0100 +++ b/rust/lib-hedgewars-engine/src/render/gear.rs Sat Nov 12 15:40:20 2022 +0100 @@ -73,19 +73,19 @@ const SPRITE_LOAD_LIST: &[(SpriteId, &str)] = &[ ( SpriteId::Mine, - "../../share/hedgewars/Data/Graphics/MineOn.png", + "Graphics/MineOn.png", ), ( SpriteId::Grenade, - "../../share/hedgewars/Data/Graphics/Bomb.png", + "Graphics/Bomb.png", ), ( SpriteId::Cheese, - "../../share/hedgewars/Data/Graphics/cheese.png", + "Graphics/cheese.png", ), ( SpriteId::Cleaver, - "../../share/hedgewars/Data/Graphics/cleaver.png", + "Graphics/cleaver.png", ), ]; @@ -124,7 +124,7 @@ const ATLAS_SIZE: Size = Size::square(2048); impl GearRenderer { - pub fn new() -> Self { + pub fn new(data_path: &Path) -> Self { let mut atlas = AtlasCollection::new(ATLAS_SIZE); let texture = Texture2D::new( @@ -136,15 +136,15 @@ let mut allocation = Box::new([Default::default(); MAX_SPRITES]); for (sprite, file) in SPRITE_LOAD_LIST { - let path = Path::new(file); - let size = load_sprite_size(path).expect(&format!("Unable to open {}", file)); + let path = data_path.join(Path::new(file)); + let size = load_sprite_size(path.as_path()).expect(&format!("Unable to open {}", file)); let index = atlas .insert_sprite(size) .expect(&format!("Could not store sprite {:?}", sprite)); let (texture_index, rect) = atlas.get_rect(index).unwrap(); let mut pixels = vec![255u8; size.area() * 4].into_boxed_slice(); - load_sprite_pixels(path, &mut pixels).expect("Unable to load Graphics"); + load_sprite_pixels(path.as_path(), &mut pixels).expect("Unable to load Graphics"); texture.update( rect, @@ -262,7 +262,6 @@ let _buffer_bind = self.layout.bind(&[(0, &self.vertex_buffer)], None); let _state = PipelineState::new().with_blend(); - unsafe { gl::DrawArrays(gl::TRIANGLES, 0, entries.len() as i32 * 6); }