unrust / uni-gl

Build Status Documentation crates.io

This library is a part of Unrust, a pure rust native/wasm game engine. This library provides a native/wasm compatibility layer for following components : * OpenGL API

When used in conjonction with uni-app, on native target, it provides an OpenGL 3.2+ or OpenGLES 2.0+ Core Profile context. On web target, it provides a WebGL 2.0 context where available, else a WebGL 1.0 context.

Usage

toml [dependencies] uni-app="0.2.*" uni-gl="0.2.*"

```rust extern crate uniapp; extern crate unigl;

fn main() { // create the game window (native) or canvas (web) let app = uniapp::App::new(uniapp::AppConfig { size: (800, 600), title: "my game".toowned(), vsync: true, showcursor: true, headless: false, resizable: true, fullscreen: false, interceptcloserequest: false, }); // retrieve the opengl context let gl = unigl::WebGLRenderingContext::new(app.canvas()); // start game loop app.run(move |app: &mut uniapp::App| { // do some openGL stuff gl.clearcolor(0.0, 0.0, 1.0, 1.0); gl.clear(uni_gl::BufferBit::Color); }); } ```

Build

As web app (wasm32-unknown-unknown)

rustup target install wasm32-unknown-unknown

As desktop app (native-opengl)

cargo run --example basic --release

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.