Go to file
Ty Overby a698146943 Change the way that events are represented.
The bulk of this commit is changing instances of Vec to RingBuf which is
optimized for the push_back() / pop_front() strategy that is used
internaly in the event system.

The glutin custom iterators are now just wrappers around the RingBuf
iterator type.  This will bring the running time of iterator traversal from
O(n^2) to O(n) because shifting-on-delete won't be performed.
2015-01-01 23:44:02 -08:00
.cargo Add basic support for Android 2014-09-11 18:28:07 +02:00
deps Update apk-builder 2014-11-10 14:17:15 +01:00
examples Update for gl_generator's changes 2014-12-24 08:12:10 +01:00
src Change the way that events are represented. 2015-01-01 23:44:02 -08:00
tests Update for gl_generator's changes 2014-12-24 08:12:10 +01:00
.gitattributes Initial commit 2014-07-27 11:41:26 +02:00
.gitignore Add basic support for Android 2014-09-11 18:28:07 +02:00
.gitmodules Add basic support for Android 2014-09-11 18:28:07 +02:00
.travis.yml Generate docs for headless functionnalities too 2014-12-28 15:54:27 +01:00
appveyor.yml Fix the appveyor build 2014-12-23 17:18:32 +01:00
build.rs Update for gl_generator's changes 2014-12-24 08:12:10 +01:00
Cargo.toml Fix dependencies erroneously removed 2014-12-31 23:10:29 +01:00
LICENSE Initial commit 2014-07-27 11:41:26 +02:00
README.md Add links to documentation 2014-12-17 10:57:13 +01:00

glutin - OpenGL, UTilities and INput

![Gitter](https://badges.gitter.im/Join Chat.svg)

Alternative to GLFW in pure Rust.

Build Status

Documentation

Try it!

git clone https://github.com/tomaka/glutin
cd glutin
cargo run --example window

Usage

extern crate glutin;
extern crate libc;
extern crate gl;

fn main() {
    let window = glutin::Window::new().unwrap();

    unsafe { window.make_current() };

    gl::load_with(|symbol| window.get_proc_address(symbol));

    gl::ClearColor(0.0, 1.0, 0.0, 1.0);

    while !window.is_closed() {
        window.wait_events();

        gl::Clear(gl::COLOR_BUFFER_BIT);

        window.swap_buffers();
    }
}

Platform-specific notes

Android

  • To compile the examples for android, initialize the submodules, go to deps/apk-builder/apk-builder and run cargo build, then go back to glutin and call ANDROID_HOME=/path/to/sdk NDK_HOME=/path/to/ndk NDK_STANDALONE=/path/to/standalone cargo test --no-run --target=arm-linux-androideabi
  • Events and vsync are not implemented
  • Headless rendering doesn't work

Emscripten

  • Work will start when Emscripten gets updated to LLVM 3.5 (which should happen soon)

OS/X

  • Some events are not implemented
  • Implementation is still work-in-progress
  • Vsync not implemented

Win32

  • You must call glFlush before swap_buffers, or else on Windows 8 nothing will be visible on the window
  • Pixel formats are not implemented

X11

  • Some input events are not implemented
  • Pixel formats not implemented
  • Vsync not implemented