gfx_app 0.9.0

GFX example application framework
Documentation
extern crate gfx_core as core;

use std::mem;
use core::dummy::DummyResources;
use core::buffer;
use core::memory::{Bind, Usage};
use core::handle::{Buffer, Manager, Producer};

fn mock_buffer<T>(len: usize) -> Buffer<DummyResources, T> {
    use core::memory::Typed;
    let mut handler = Manager::new();
    let raw = handler.make_buffer((), buffer::Info {
        role: buffer::Role::Vertex,
        usage: Usage::Data,
        size: mem::size_of::<T>() * len,
        stride: 0,
        bind: Bind::empty(),
    }, None);
    Typed::new(raw)
}

#[test]
fn test_buffer_len() {
    assert_eq!(mock_buffer::<u8>(8).len(), 8);
    assert_eq!(mock_buffer::<u16>(8).len(), 8);
}

#[test]
#[should_panic]
fn test_buffer_zero_len() {
    let _ = mock_buffer::<()>(0).len();
}

#[test]
fn test_cleanup() {
    let mut man: Manager<DummyResources> = Manager::new();
    let _ = man.make_shader(());
    let mut count = 0u8;
    man.clean_with(&mut count,
        |_,_| (),
        |b,_| { *b += 1; },
        |_,_| (),
        |_,_| (),
        |_,_| (),
        |_,_| (),
        |_,_| (),
        |_,_| (),
        |_,_| (),
        |_,_| (),
        |_,_| (),
        );
    assert_eq!(count, 1);
}