bevy_interleave 0.1.1

bevy support for e2e packed to planar bind groups
Documentation

bevy_interleave 🧩

test GitHub License GitHub Releases GitHub Issues crates.io

bevy support for e2e packed to planar bind groups

minimal example

use bevy_interleave::prelude::*;

#[derive(Planar)]
pub struct MyStruct {
    pub field: i32,
    pub field2: i32,
}

fn main() {
    let interleaved = vec![
        MyStruct { field: 0, field2: 1 },
        MyStruct { field: 2, field2: 3 },
        MyStruct { field: 4, field2: 5 },
    ];

    let planar = PlanarMyStruct::from_interleaved(interleaved);

    println!("{:?}", planar.field);
    println!("{:?}", planar.field2);

    // Prints:
    // [0, 2, 4]
    // [1, 3, 5]
}

why bevy?

bevy_interleave simplifies bind group creation within bevy. Planar derives can be used in conjunction with ShaderType's to support both packed and planar data render pipelines.

compatible bevy versions

bevy_interleave bevy
0.1 0.12