scena 1.7.1

A Rust-native scene-graph renderer with typed scene state, glTF assets, and explicit prepare/render lifecycles.
Documentation
#[test]
fn post_chain_uses_encoded_rgba8_and_depth_color_contract() {
    let source = include_str!("mod.rs");
    let depth_source = include_str!("../depth.rs");
    let bloom_shader = include_str!("bloom.wgsl");
    let ssao_shader = include_str!("ssao.wgsl");
    assert!(
        source.contains("TextureFormat::Rgba8Unorm")
            && source.contains("TextureSampleType::Float { filterable: false }")
            && depth_source.contains("DEPTH_COLOR_FORMAT")
            && depth_source.contains("color_view")
            && source.contains("scene_pipeline")
            && source.contains("copy_output_to_buffer"),
        "GPU post chain must render into encoded Rgba8Unorm, expose a depth-color SSAO mechanism, and keep readback on the post output"
    );
    assert!(
        ssao_shader.contains("var depth_texture: texture_2d<f32>")
            && ssao_shader.contains("textureLoad(depth_texture")
            && !ssao_shader.contains("texture_depth_2d"),
        "SSAO must sample the packed depth-color target so the shared depth path compiles on WebGL2"
    );
    assert!(
        bloom_shader.contains("array<vec2<i32>, 9>")
            && ssao_shader.contains("array<vec2<i32>, 8>")
            && !bloom_shader.contains("for (var dy = -12")
            && !ssao_shader.contains("for (var dy = -12"),
        "GPU post kernels must avoid max-radius work for subtle presets"
    );
}