INNER CODE UNIT · Rust

dices_sprites_into_atlases_and_meshes

elringus/sprite-dicing · crates/abi/src/lib.rs:323

    fn dices_sprites_into_atlases_and_meshes() {
        let pixels = [RED, BLUE, BLUE, RED];
        let sprites = [sprite(c"sprite", &pixels, 2, 2)];
        let result = dice(&sprites, &prefs());
        assert_eq!(error(&result), None);
        assert_eq!(result.atlas_count, 1);
        assert_eq!(result.sprite_count, 1);

        let atlas = unsafe { &*result.atlases };
        let count = pixel_count(atlas.width, atlas.height);
        let atlas_pixels = unsafe { to_slice(atlas.pixels, count) }.unwrap();
        assert!(atlas_pixels.contains(&RED));
        assert!(atlas_pixels.contains(&BLUE));

        let sprite = unsafe { &*result.sprites };
        assert_eq!(unsafe { to_str(sprite.id) }, Some("sprite"));
        assert_eq!(sprite.atlas_index, 0);
        assert!(sprite.vertex_count > 0 && sprite.vertex_count % 4 == 0);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…