Crate glfw [] [src]

An ideomatic wrapper for the GLFW library.

Example

extern crate glfw;

use glfw::{Action, Context, Key};

fn main() {
   let mut glfw = glfw::init(glfw::FAIL_ON_ERRORS).unwrap();

    // Create a windowed mode window and its OpenGL context
    let (mut window, events) = glfw.create_window(300, 300, "Hello this is window", glfw::WindowMode::Windowed)
        .expect("Failed to create GLFW window.");

    // Make the window's context current
    window.make_current();
    window.set_key_polling(true);

    // Loop until the user closes the window
    while !window.should_close() {
        // Swap front and back buffers
        window.swap_buffers();

        // Poll for and process events
        glfw.poll_events();
        for (_, event) in glfw::flush_messages(&events) {
            println!("{:?}", event);
            match event {
                glfw::WindowEvent::Key(Key::Escape, _, Action::Press, _) => {
                    window.set_should_close(true)
                },
                _ => {},
            }
        }
    }
}

Reexports

pub use self::MouseButton::Button1 as MouseButtonLeft;
pub use self::MouseButton::Button2 as MouseButtonRight;
pub use self::MouseButton::Button3 as MouseButtonMiddle;

Modules

ffi

Low-level function bindings and constants pertaining to the underlying GLFW library.

Structs

Callback
DebugAliases

Formats the type using aliases rather than the default variant names.

FlushedMessages

An iterator that yields until no more messages are contained in the Receiver's queue.

GammaRamp

Describes the gamma ramp of a monitor.

Glfw

A token from which to call various GLFW functions. It can be obtained by calling the init function. This cannot be sent to other tasks, and should only be initialized on the main platform thread. Whilst this might make performing some operations harder, this is to ensure thread safety is enforced statically. The context can be safely cloned or implicitly copied if need be for convenience.

Joystick

A joystick handle.

Modifiers

Key modifiers

Monitor

A struct that wraps a *GLFWmonitor handle.

RenderContext

A rendering context that can be shared between tasks.

VidMode

Describes a single video mode.

Window

A struct that wraps a *GLFWwindow handle.

Enums

Action

Input actions.

ClientApiHint

Client API tokens.

ContextRobustnessHint

Context robustness tokens.

CursorMode

Cursor modes.

Error

Tokens corresponding to various error types.

InitError

An error that might be returned when glfw::init is called.

JoystickId

Joystick identifier tokens.

Key

Input keys.

MonitorEvent

Monitor events.

MouseButton

Mouse buttons. The MouseButtonLeft, MouseButtonRight, and MouseButtonMiddle aliases are supplied for convenience.

OpenGlProfileHint

OpenGL profile tokens.

WindowEvent

Window event messages.

WindowHint

Window hints that can be set using the window_hint function.

WindowMode

Describes the mode of a window

Constants

Alt
Control
Shift
Super

Statics

FAIL_ON_ERRORS

A callback that triggers a task failure when an error is encountered.

LOG_ERRORS

A callback that logs each error as it is encountered without triggering a task failure.

Traits

Context

Methods common to renderable contexts

Functions

fail_on_errors

The function to be used with the FAIL_ON_ERRORS callback.

flush_messages

Returns an iterator that yields until no more messages are contained in the Receiver's queue. This is useful for event handling where the blocking behaviour of Receiver::iter is undesirable.

get_version

Wrapper for glfwGetVersion.

get_version_string

Wrapper for glfwGetVersionString.

init

Initializes the GLFW library. This must be called on the main platform thread.

log_errors

The function to be used with the LOG_ERRORS callback.

make_context_current

Wrapper for glfwMakeContextCurrent.

string_from_c_str

Replacement for String::from_raw_buf

with_c_str

Replacement for ToCStr::with_c_str

Type Definitions

ErrorCallback

An error callback. This can be supplied with some user data to be passed to the callback function when it is triggered.

GLProc

An OpenGL process address.

MonitorCallback

An monitor callback. This can be supplied with some user data to be passed to the callback function when it is triggered.

Scancode