8 releases

0.0.0-alpha7 Oct 28, 2021
0.0.0-alpha6 Oct 23, 2021
0.0.0-alpha5 Sep 20, 2021
0.0.0-alpha4 Aug 14, 2021
0.0.0-alpha3 Jul 29, 2021

#647 in Graphics APIs

MIT license

565KB
9K SLoC

logo

OpenGL and Windows API wrappers. Crate badge Doc badge

There are some levels of wrapping:

  • core - just wrappers (WinCore and GLCore)
    let mut id:u32=MaybeUninit::uninit().assume_init();
    GLCore.buffer.generate_one(&mut id);

    GLCore.buffer.bind(BufferTarget::ArrayBuffer,id);

    GLCore.buffer.rewrite(BufferTarget::ArrayBuffer,1024,core::ptr::null(),BufferUsage::DynamicDraw);
  • level [ i ] - describes system objects and their relationships (only for GLCore), the higher level the more specific structures
    // level0
    let buffer:Buffer<i32>=Buffer::generate();
    buffer.bind(BufferTarget::ArrayBuffer).unwrap();
    Buffer::rewrite(BufferTarget::ArrayBuffer,&[0u32;10],BufferUsage::DynamicDraw).unwrap();

    // level1
    let index_buffer=IndexBuffer::new(&[0u32;10],BufferUsage::DynamicDraw).unwrap();
  • high-level - this is high level interface (only for windows module)
   let class_attributes=WindowClassAttributes::new("WNDCLASS");
   let window_class=WindowClass::new(class_attributes).unwrap();

Compatible with OpenGL 3.3 and greater.

Dependencies

Release notes

Pre-release

Dependencies

~0–3MB
~11K SLoC