mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-23 22:01:31 +11:00
a698146943
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. |
||
---|---|---|
.cargo | ||
deps | ||
examples | ||
src | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
appveyor.yml | ||
build.rs | ||
Cargo.toml | ||
LICENSE | ||
README.md |
glutin - OpenGL, UTilities and INput
![Gitter](https://badges.gitter.im/Join Chat.svg)
Alternative to GLFW in pure Rust.
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 runcargo build
, then go back toglutin
and callANDROID_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
beforeswap_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