est31 7fb6450d17 Improve X11 cursor symbols handling
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.
2016-04-17 16:48:27 +02:00
2016-04-17 16:48:27 +02:00
2014-07-27 11:41:26 +02:00
2014-09-11 18:28:07 +02:00
2015-05-21 19:45:58 +02:00
2015-09-24 08:37:52 +02:00
2016-03-24 14:03:38 +11:00
2016-04-13 07:54:37 +01:00
2014-07-27 11:41:26 +02:00
2016-01-23 11:37:32 -08:00

glutin - OpenGL, UTilities and INput

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

Alternative to GLFW in pure Rust.

Build Status Build status

[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 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

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.
Description
Languages
Rust 100%