ferjm / glutin

A low-level library for OpenGL context creation, written in pure Rust.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

glutin - OpenGL, UTilities and INput

A low-level library for OpenGL context creation, written in pure Rust.

Docs.rs Build Status Build status

[dependencies]
glutin = "0.22.0-alpha1"

Documentation

0.21.0 Migration guide

Contact Us

Join us in any of these:

Freenode Matrix Gitter

Usage Examples

Warning: these are examples for master. For the latest released version, 0.21, view here.

Try it!

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

Usage

Glutin is an OpenGL context creation library and doesn't directly provide OpenGL bindings for you.

For examples, please look here.

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.

Glutin is only officially supported on the latest stable version of the Rust compiler.

Platform-specific notes

Android

To compile the examples for android, you have to use the cargo apk utility.

See the android-rs-glue repository for instructions.

Emscripten with asmjs

In order to use glutin with emscripten, start by compiling your code with --target=asmjs-unknown-emscripten.

Then create an HTML document that contains this:

<canvas id="canvas"></canvas>
<script type="text/javascript">
var Module = {
    canvas: document.getElementById('canvas')
};
</script>
<script type="text/javascript" src="target/asmjs-unknown-emscripten/debug/..." async></script>

Note: adjust the src element of the script to point to the .js file that was produced by the compilation.

The Module object is the link between emscripten and the HTML page. See also this documentation.

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. This is work-in-progress.

Wayland

Due to an issue with how mesa and Wayland play together, all shared contexts must use the same events pool as each other.

iOS

In order to build in XCode, you must link both UIKit.framework and OpenGLES.framework. In order for your app to not crash while attempting to obtain a context, you must also link CoreFoundation.framework and GLKit.framework.

Common issues

Help! I'm receiving NoAvailablePixelFormat!

About

A low-level library for OpenGL context creation, written in pure Rust.

License:Apache License 2.0


Languages

Language:Rust 100.0%