Struct glutin::Window

source ·
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

source

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.

source

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.

source

pub fn show(&self)

Shows the window if it was hidden.

Platform-specific
  • Has no effect on Android
source

pub fn hide(&self)

Hides the window if it was visible.

Platform-specific
  • Has no effect on Android
source

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.

source

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.

source

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

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

pub unsafe fn make_current(&self) -> Result<(), ContextError>

Sets the context as the current context.

source

pub fn is_current(&self) -> bool

Returns true if this context is the current one in this thread.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.
source

pub fn get_pixel_format(&self) -> PixelFormat

Returns the pixel format of this window.

source

pub fn create_window_proxy(&self) -> WindowProxy

Create a window proxy for this window, that can be freely passed to different threads.

source

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.

source

pub fn set_cursor(&self, cursor: MouseCursor)

Modifies the mouse cursor of the window. Has no effect on Android.

source

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.

source

pub fn set_cursor_position(&self, x: i32, y: i32) -> Result<(), ()>

Changes the position of the cursor in window coordinates.

source

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.

Trait Implementations§

source§

impl Default for Window

source§

fn default() -> Window

Returns the “default value” for a type. Read more
source§

impl GlContext for Window

source§

unsafe fn make_current(&self) -> Result<(), ContextError>

Sets the context as the current context.
source§

fn is_current(&self) -> bool

Returns true if this context is the current one in this thread.
source§

fn get_proc_address(&self, addr: &str) -> *const ()

Returns the address of an OpenGL function.
source§

fn swap_buffers(&self) -> Result<(), ContextError>

Swaps the buffers in case of double or triple buffering. Read more
source§

fn get_api(&self) -> Api

Returns the OpenGL API being used.
source§

fn get_pixel_format(&self) -> PixelFormat

Returns the pixel format of the main framebuffer of the context.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Window

§

impl Send for Window

§

impl Sync for Window

§

impl Unpin for Window

§

impl UnwindSafe for Window

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.