pub struct Window { /* private fields */ }
Expand description
Represents an OpenGL context and the Window or environment around it.
Example
let window = Window::new().unwrap();
unsafe { window.make_current() };
loop {
for event in window.poll_events() {
match(event) {
// process events here
_ => ()
}
}
// draw everything here
window.swap_buffers();
std::old_io::timer::sleep(17);
}
Implementations§
source§impl Window
impl Window
sourcepub fn new() -> Result<Window, CreationError>
pub fn new() -> Result<Window, CreationError>
Creates a new OpenGL context, and a Window for platforms where this is appropriate.
This function is equivalent to WindowBuilder::new().build()
.
Error should be very rare and only occur in case of permission denied, incompatible system, out of memory, etc.
sourcepub fn set_title(&self, title: &str)
pub fn set_title(&self, title: &str)
Modifies the title of the window.
This is a no-op if the window has already been closed.
sourcepub fn get_position(&self) -> Option<(i32, i32)>
pub fn get_position(&self) -> Option<(i32, i32)>
Returns the position of the top-left hand corner of the window relative to the top-left hand corner of the desktop.
Note that the top-left hand corner of the desktop is not necessarily the same as the screen. If the user uses a desktop with multiple monitors, the top-left hand corner of the desktop is the top-left hand corner of the monitor at the top-left of the desktop.
The coordinates can be negative if the top-left hand corner of the window is outside of the visible screen region.
Returns None
if the window no longer exists.
sourcepub fn set_position(&self, x: i32, y: i32)
pub fn set_position(&self, x: i32, y: i32)
Modifies the position of the window.
See get_position
for more informations about the coordinates.
This is a no-op if the window has already been closed.
sourcepub fn get_inner_size(&self) -> Option<(u32, u32)>
pub fn get_inner_size(&self) -> Option<(u32, u32)>
Returns the size in points of the client area of the window.
The client area is the content of the window, excluding the title bar and borders.
To get the dimensions of the frame buffer when calling glViewport
, multiply with hidpi factor.
Returns None
if the window no longer exists.
DEPRECATED
sourcepub fn get_inner_size_points(&self) -> Option<(u32, u32)>
pub fn get_inner_size_points(&self) -> Option<(u32, u32)>
Returns the size in points of the client area of the window.
The client area is the content of the window, excluding the title bar and borders.
To get the dimensions of the frame buffer when calling glViewport
, multiply with hidpi factor.
Returns None
if the window no longer exists.
sourcepub fn get_inner_size_pixels(&self) -> Option<(u32, u32)>
pub fn get_inner_size_pixels(&self) -> Option<(u32, u32)>
Returns the size in pixels of the client area of the window.
The client area is the content of the window, excluding the title bar and borders.
These are the dimensions of the frame buffer, and the dimensions that you should use
when you call glViewport
.
Returns None
if the window no longer exists.
sourcepub fn get_outer_size(&self) -> Option<(u32, u32)>
pub fn get_outer_size(&self) -> Option<(u32, u32)>
Returns the size in pixels of the window.
These dimensions include title bar and borders. If you don’t want these, you should use
use get_inner_size
instead.
Returns None
if the window no longer exists.
sourcepub fn set_inner_size(&self, x: u32, y: u32)
pub fn set_inner_size(&self, x: u32, y: u32)
Modifies the inner size of the window.
See get_inner_size
for more informations about the values.
This is a no-op if the window has already been closed.
sourcepub fn poll_events(&self) -> PollEventsIterator<'_> ⓘ
pub fn poll_events(&self) -> PollEventsIterator<'_> ⓘ
Returns an iterator that poll for the next event in the window’s events queue.
Returns None
if there is no event in the queue.
Contrary to wait_events
, this function never blocks.
sourcepub fn wait_events(&self) -> WaitEventsIterator<'_> ⓘ
pub fn wait_events(&self) -> WaitEventsIterator<'_> ⓘ
Returns an iterator that returns events one by one, blocking if necessary until one is available.
The iterator never returns None
.
sourcepub unsafe fn make_current(&self) -> Result<(), ContextError>
pub unsafe fn make_current(&self) -> Result<(), ContextError>
Sets the context as the current context.
sourcepub fn is_current(&self) -> bool
pub fn is_current(&self) -> bool
Returns true if this context is the current one in this thread.
sourcepub fn get_proc_address(&self, addr: &str) -> *const ()
pub fn get_proc_address(&self, addr: &str) -> *const ()
Returns the address of an OpenGL function.
Contrary to wglGetProcAddress
, all available OpenGL functions return an address.
sourcepub fn swap_buffers(&self) -> Result<(), ContextError>
pub fn swap_buffers(&self) -> Result<(), ContextError>
Swaps the buffers in case of double or triple buffering.
You should call this function every time you have finished rendering, or the image may not be displayed on the screen.
Warning: if you enabled vsync, this function will block until the next time the screen
is refreshed. However drivers can choose to override your vsync settings, which means that
you can’t know in advance whether swap_buffers
will block or not.
sourcepub unsafe fn platform_display(&self) -> *mut c_void
pub unsafe fn platform_display(&self) -> *mut c_void
DEPRECATED. Gets the native platform specific display for this window. This is typically only required when integrating with other libraries that need this information.
sourcepub unsafe fn platform_window(&self) -> *mut c_void
pub unsafe fn platform_window(&self) -> *mut c_void
DEPRECATED. Gets the native platform specific window handle. This is typically only required when integrating with other libraries that need this information.
sourcepub fn as_winit_window(&self) -> &Window
pub fn as_winit_window(&self) -> &Window
Borrows the winit::Window inside this window. This is typically only required when integrating with other libraries that need this information.
sourcepub fn as_winit_window_mut(&mut self) -> &mut Window
pub fn as_winit_window_mut(&mut self) -> &mut Window
Mutably borrows the winit::Window inside this window. This is typically only required when integrating with other libraries that need this information.
sourcepub fn get_api(&self) -> Api
pub fn get_api(&self) -> Api
Returns the API that is currently provided by this window.
- On Windows and OS/X, this always returns
OpenGl
. - On Android, this always returns
OpenGlEs
. - On Linux, it must be checked at runtime.
sourcepub fn get_pixel_format(&self) -> PixelFormat
pub fn get_pixel_format(&self) -> PixelFormat
Returns the pixel format of this window.
sourcepub fn create_window_proxy(&self) -> WindowProxy
pub fn create_window_proxy(&self) -> WindowProxy
Create a window proxy for this window, that can be freely passed to different threads.
sourcepub fn set_window_resize_callback(
&mut self,
callback: Option<fn(_: u32, _: u32)>
)
pub fn set_window_resize_callback( &mut self, callback: Option<fn(_: u32, _: u32)> )
Sets a resize callback that is called by Mac (and potentially other operating systems) during resize operations. This can be used to repaint during window resizing.
sourcepub fn set_cursor(&self, cursor: MouseCursor)
pub fn set_cursor(&self, cursor: MouseCursor)
Modifies the mouse cursor of the window. Has no effect on Android.
sourcepub fn hidpi_factor(&self) -> f32
pub fn hidpi_factor(&self) -> f32
Returns the ratio between the backing framebuffer resolution and the window size in screen pixels. This is typically one for a normal display and two for a retina display.
sourcepub fn set_cursor_position(&self, x: i32, y: i32) -> Result<(), ()>
pub fn set_cursor_position(&self, x: i32, y: i32) -> Result<(), ()>
Changes the position of the cursor in window coordinates.
sourcepub fn set_cursor_state(&self, state: CursorState) -> Result<(), String>
pub fn set_cursor_state(&self, state: CursorState) -> Result<(), String>
Sets how glutin handles the cursor. See the documentation of CursorState
for details.
Has no effect on Android.