Expand description
An idiomatic 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)
},
_ => {},
}
}
}
}§Cargo Features
Use the vulkan feature flag to enable all Vulkan functions and types.
Use the image feature flag to enable use of the image library for cursors and icons.
Use the all feature flag to enable both at the same time.
Re-exports§
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
- Cursor
- Represents a window cursor that can be used to display any of the standard cursors or load a custom cursor from an image.
- Debug
Aliases - Formats the type using aliases rather than the default variant names.
- Flushed
Messages - An iterator that yields until no more messages are contained in the
Receiver’s queue. - Gamepad
State - State of a gamepad.
- Gamma
Ramp - Describes the gamma ramp of a monitor.
- Glfw
- A token from which to call various GLFW functions. It can be obtained by
calling the
initfunction. 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. - Joystick
- A joystick handle.
- Joystick
Hats - Joystick hats.
- Modifiers
- Key modifiers (e.g., Shift, Control, Alt, Super)
- Monitor
- A struct that wraps a
*GLFWmonitorhandle. - Pixel
Image - When not using the
imagelibrary, or if you just want to, you can specify an image from its raw pixel data using this structure. - Render
Context - A rendering context that can be shared between tasks.
- Version
- VidMode
- Describes a single video mode.
- Window
- A struct that wraps a
*GLFWwindowhandle.
Enums§
- Action
- Input actions.
- Client
ApiHint - Client API tokens.
- Context
Creation Api - Specifies the API to use to create the context
- Context
Release Behavior ContextReleaseBehaviorspecifies the release behavior to be used by the context.- Context
Robustness Hint - Context robustness tokens.
- Cursor
Mode - Cursor modes.
- Error
- Tokens corresponding to various error types.
- Gamepad
Axis - Axis identifier tokens.
- Gamepad
Button - Button identifier tokens.
- Init
Error - An error that might be returned when
glfw::initis called. - Init
Hint - Initialization hints that can be set using the
init_hintfunction. - Joystick
Event - Joystick events.
- Joystick
Id - Joystick identifier tokens.
- Key
- Input keys.
- Monitor
Event - Monitor events.
- Mouse
Button - Mouse buttons. The
MouseButtonLeft,MouseButtonRight, andMouseButtonMiddlealiases are supplied for convenience. - Open
GlProfile Hint - OpenGL profile tokens.
- Standard
Cursor - Standard cursors provided by GLFW
- Swap
Interval - Specifies how the context should handle swapping the buffers.
- Window
Event - Window event messages.
- Window
Hint - Window hints that can be set using the
window_hintfunction. - Window
Mode - Describes the mode of a window
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_ERRORScallback. - 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 ofReceiver::iteris undesirable. - get_
key_ name - Wrapper around
glfwGetKeyName - get_
key_ scancode - Wrapper around
glfwGetKeyScancode. - 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.
- init_
hint - Sets hints for the next initialization of GLFW.
- key_
name Deprecated - Wrapper around
glfwGetKeyName - log_
errors - The function to be used with the
LOG_ERRORScallback. - make_
context_ current - Wrapper for
glfwMakeContextCurrent. - string_
from_ ⚠c_ str - Replacement for
String::from_raw_buf - string_
from_ ⚠nullable_ c_ str - Like
string_from_c_str, but handles null pointers correctly - with_
c_ str - Replacement for
ToCStr::with_c_str
Type Aliases§
- Error
Callback - 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.
- Joystick
Callback - An joystick callback. This can be supplied with some user data to be passed to the callback function when it is triggered.
- Monitor
Callback - An monitor callback. This can be supplied with some user data to be passed to the callback function when it is triggered.
- Scancode
- Keyboard code returned by the OS
- Window
Id - Unique identifier for a
Window.