dunge 0.3.11

Typesafe and portable 3d render library
Documentation
#![cfg(not(target_family = "wasm"))]

type Error = Box<dyn std::error::Error>;

#[test]
fn render() -> Result<(), Error> {
    use {
        dunge::{
            instance::Row,
            prelude::*,
            sl::{self, PassInstance, Render},
        },
        glam::{Mat4, Vec4},
    };

    #[derive(Instance)]
    struct Transform {
        f: Row<f32>,
        v: Row<Vec4>,
        m: Row<Mat4>,
    }

    let code = |PassInstance(t): PassInstance<Transform>| Render {
        place: t.m * t.v * t.f,
        color: sl::vec4_splat(1.),
    };

    let cx = dunge::block_on(dunge::context())?;
    let shader = cx.make_shader(code);
    helpers::eq_lines(shader.debug_wgsl(), include_str!("rows.wgsl"));

    Ok(())
}