Struct glfw::Glfw
[−]
[src]
pub struct 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.
Methods
impl Glfw
[src]
fn set_error_callback<UserData: 'static>(
&mut self,
callback: Option<ErrorCallback<UserData>>
)
[src]
&mut self,
callback: Option<ErrorCallback<UserData>>
)
Sets the error callback, overwriting the previous one stored.
Example
use std::cell::Cell; fn error_callback(_: glfw::Error, description: String, error_count: &Cell<usize>) { println!("GLFW error {}: {}", error_count.get(), description); error_count.set(error_count.get() + 1); } // sets a new callback glfw.set_error_callback(Some( glfw::Callback { f: error_callback, data: Cell::new(0), } )); // removes the previously set callback glfw.set_error_callback(None);
The FAIL_ON_ERRORS
and LOG_ERRORS
callbacks are provided for
convenience. For example:
// triggers a task failure when a GLFW error is encountered. glfw.set_error_callback(glfw::FAIL_ON_ERRORS);
fn set_monitor_callback<UserData: 'static>(
&mut self,
callback: Option<MonitorCallback<UserData>>
)
[src]
&mut self,
callback: Option<MonitorCallback<UserData>>
)
Sets the monitor callback, overwriting the previous one stored.
fn set_joystick_callback<UserData: 'static>(
&mut self,
callback: Option<JoystickCallback<UserData>>
)
[src]
&mut self,
callback: Option<JoystickCallback<UserData>>
)
Sets the joystick callback, overwriting the previous one stored
fn with_primary_monitor<T, F>(&mut self, f: F) -> T where
F: Fn(&mut Self, Option<&Monitor>) -> T,
[src]
F: Fn(&mut Self, Option<&Monitor>) -> T,
Supplies the primary monitor to the closure provided, if it exists. This is usually the monitor where elements like the Windows task bar or the OS X menu bar is located.
Example
let (window, events) = glfw.with_primary_monitor(|m| { glfw.create_window(300, 300, "Hello this is window", m.map_or(glfw::WindowMode::Windowed, |m| glfw::FullScreen(m))) }).expect("Failed to create GLFW window.");
fn with_primary_monitor_mut<T, F>(&mut self, f: F) -> T where
F: FnMut(&mut Self, Option<&Monitor>) -> T,
[src]
F: FnMut(&mut Self, Option<&Monitor>) -> T,
Supplies the primary monitor to the closure provided, if it exists. This is usually the monitor where elements like the Windows task bar or the OS X menu bar is located.
Variant that can accept an FnMut
closure.
Example
glfw.with_primary_monitor(|_: &mut _, m: Option<&glfw::Monitor>| { let monitor = m.unwrap(); let mode: glfw::VidMode = monitor.get_video_mode().unwrap(); // Modifying `window` requires `FnMut` window.set_monitor(glfw::WindowMode::FullScreen(&monitor), 0, 0, mode.width, mode.height, Some(mode.refresh_rate)); });
fn with_connected_monitors<T, F>(&mut self, f: F) -> T where
F: Fn(&mut Self, &[Monitor]) -> T,
[src]
F: Fn(&mut Self, &[Monitor]) -> T,
Supplies a vector of the currently connected monitors to the closure provided.
Example
glfw.with_connected_monitors(|monitors| { for monitor in monitors.iter() { println!("{}: {}", monitor.get_name(), monitor.get_video_mode()); } });
fn with_connected_monitors_mut<T, F>(&mut self, f: F) -> T where
F: FnMut(&mut Self, &[Monitor]) -> T,
[src]
F: FnMut(&mut Self, &[Monitor]) -> T,
Supplies a vector of the currently connected monitors to the closure provided.
Variant that can accept an FnMut
closure.
Example
glfw.with_connected_monitors(|monitors| { for monitor in monitors.iter() { println!("{}: {}", monitor.get_name(), monitor.get_video_mode()); } });
fn window_hint(&mut self, hint: WindowHint)
[src]
This is used to set the window hints for the next call to
Glfw::create_window
. The hints can be reset to their default values
using calling the Glfw::default_window_hints
function.
Wrapper for glfwWindowHint
OpenGL 3.x and 4.x on Mac OS X
The only OpenGL 3.x and 4.x contexts supported by OS X are forward-compatible, core profile contexts.
10.7 and 10.8 support the following OpenGL versions:
glfw::WindowHint::ContextVersion(3, 2)
10.9 supports the following OpenGL versions
glfw::WindowHint::ContextVersion(3, 2)
glfw::WindowHint::ContextVersion(3, 3)
glfw::WindowHint::ContextVersion(4, 1)
To create an OS X compatible context, the hints should be specified as follows:
glfw.window_hint(glfw::WindowHint::ContextVersion(3, 2)); glfw.window_hint(glfw::WindowHint::OpenGlForwardCompat(true)); glfw.window_hint(glfw::WindowHint::OpenGlProfile(glfw::OpenGlProfileHint::Core));
fn default_window_hints(&mut self)
[src]
Resets the window hints previously set by the window_hint
function to
their default values.
Wrapper for glfwDefaultWindowHints
.
fn create_window(
&self,
width: u32,
height: u32,
title: &str,
mode: WindowMode
) -> Option<(Window, Receiver<(f64, WindowEvent)>)>
[src]
&self,
width: u32,
height: u32,
title: &str,
mode: WindowMode
) -> Option<(Window, Receiver<(f64, WindowEvent)>)>
Creates a new window.
Wrapper for glfwCreateWindow
.
fn make_context_current(&mut self, context: Option<&Window>)
[src]
Makes the context of the specified window current. If no window is given then the current context is detached.
Wrapper for glfwMakeContextCurrent
.
fn get_x11_display(&self) -> *mut c_void
[src]
Wrapper for glfwGetX11Display
fn poll_events(&mut self)
[src]
Immediately process the received events.
Wrapper for glfwPollEvents
.
fn wait_events(&mut self)
[src]
Sleep until at least one event has been received, and then perform the
equivalent of Glfw::poll_events
.
Wrapper for glfwWaitEvents
.
fn wait_events_timeout(&mut self, timeout: f64)
[src]
Sleep until at least one event has been received, or until the specified
timeout is reached, and then perform the equivalent of Glfw::poll_events
.
Timeout is specified in seconds.
Wrapper for glfwWaitEventsTimeout
.
fn post_empty_event(&mut self)
[src]
Posts an empty event from the current thread to the event queue, causing
wait_events
or wait_events_timeout
to return.
If no windows exist, this function returns immediately.
Wrapper for glfwPostEmptyEvent
.
fn get_time(&self) -> f64
[src]
Returns the current value of the GLFW timer. Unless the timer has been
set using glfw::set_time
, the timer measures time elapsed since GLFW
was initialized.
Wrapper for glfwGetTime
.
fn set_time(&mut self, time: f64)
[src]
Sets the value of the GLFW timer.
Wrapper for glfwSetTime
.
fn get_timer_value() -> u64
[src]
Wrapper for glfwGetTimerValue
.
fn get_timer_frquency() -> u64
[src]
Wrapper for glfwGetTimerFrequency
fn set_swap_interval(&mut self, interval: SwapInterval)
[src]
Sets the number of screen updates to wait before swapping the buffers of
the current context and returning from Window::swap_buffers
.
Wrapper for glfwSwapInterval
.
fn extension_supported(&self, extension: &str) -> bool
[src]
Returns true
if the specified OpenGL or context creation API extension
is supported by the current context.
Wrapper for glfwExtensionSupported
.
fn get_proc_address_raw(&self, procname: &str) -> GLProc
[src]
Returns the address of the specified client API or extension function if it is supported by the current context, NULL otherwise.
Wrapper for glfwGetProcAddress
.
fn get_joystick(&self, id: JoystickId) -> Joystick
[src]
Constructs a Joystick
handle corresponding to the supplied JoystickId
.