mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-24 22:31:30 +11:00
7fb6450d17
1. Make it non failing. Before we tried to call XFreeCursor with a cursor of 0 if we couldn't find a cursor. This has then caused a panic. 2. Introduce a system where multiple special cursors are tried in order to work with different themes and desktop environments. This way we get less often into the situation where we have to use a default cursor. 3. Also set names for some cursors that previously only had a placeholder. Fixes #765. Will fix https://github.com/servo/servo/issues/10475 as well. |
||
---|---|---|
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.
[dependencies]
glutin = "*"
Documentation
Try it!
git clone https://github.com/tomaka/glutin
cd glutin
cargo run --example window
Usage
Glutin is an OpenGL context creation library and doesn't directly provide OpenGL bindings for you.
[dependencies]
gl = "*"
libc = "*"
extern crate gl;
extern crate glutin;
extern crate libc;
fn main() {
let window = glutin::Window::new().unwrap();
unsafe { window.make_current() };
unsafe {
gl::load_with(|symbol| window.get_proc_address(symbol) as *const _);
gl::ClearColor(0.0, 1.0, 0.0, 1.0);
}
for event in window.wait_events() {
unsafe { gl::Clear(gl::COLOR_BUFFER_BIT) };
window.swap_buffers();
match event {
glutin::Event::Closed => break,
_ => ()
}
}
}
Note that glutin aims at being a low-level brick in your rendering infrastructure. You are encouraged to write another layer of abstraction between glutin and your application.
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
X11
- The plan is that glutin tries to dynamically link-to and use wayland if possible. If it doesn't work, it will try xlib instead. If it doesn't work, it will try libcaca. This is work-in-progress.