INNER CODE UNIT · Rust

update__texture_image

PistonDevelopers/piston_window · src/piston_script.rs:278

    pub fn update__texture_image(rt: &mut Runtime) -> Result<(), String> {
        use texture::Format;
        let image: Variable = rt.pop()?;
        let texture: Variable = rt.pop()?;
        match image {
            Variable::F64(id, _) => {
                let texture_context = unsafe {&mut *Current::<TextureContext>::new()};
                let images = unsafe { &*Current::<Vec<RgbaImage>>::new() };
                let image: &RgbaImage = if let Some(x) = images.get(id as usize) {x}
                            else {return Err("Image id is out of bounds".into())};
                match texture {
                    Variable::F64(id, _) => {
                        let textures = unsafe { &mut *Current::<Vec<Texture>>::new() };
                        let texture: &mut Texture = if let Some(x) = textures.get_mut(id as usize) {x}
                                    else {return Err("Texture id is out of bounds".into())};
                        let (w, h) = image.dimensions();
                        texture.update(texture_context, Format::Rgba8, &image, [0; 2], [w, h])
                            .map_err(|_| "Could not update texture".to_string())

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…