Struct Window

Source
pub struct Window { /* private fields */ }
Expand description

Represents the “shell” of a Window.

You can set get and set many of the SDL_Window properties (i.e., border, size, PixelFormat, etc)

However, you cannot directly access the pixels of the Window. It needs to be converted to a Canvas to access the rendering functions.

Note: If a Window goes out of scope but it cloned its context, then the SDL_Window will not be destroyed until there are no more references to the WindowContext. This may happen when a TextureCreator<Window> outlives the Canvas<Window>

Implementations§

Source§

impl Window

Source

pub fn raw(&self) -> *mut SDL_Window

Source

pub unsafe fn from_ll(subsystem: VideoSubsystem, raw: *mut SDL_Window) -> Window

Source

pub unsafe fn from_ref(context: Rc<WindowContext>) -> Window

Create a new Window without taking ownership of the WindowContext

Source

pub fn subsystem(&self) -> &VideoSubsystem

Source

pub fn into_canvas(self) -> CanvasBuilder

Initializes a new CanvasBuilder; a convenience method that calls CanvasBuilder::new().

Source

pub fn context(&self) -> Rc<WindowContext>

Source

pub fn id(&self) -> u32

Source

pub fn gl_create_context(&self) -> Result<GLContext, String>

Source

pub fn gl_set_context_to_current(&self) -> Result<(), String>

Set the window’s OpenGL context to the current context on the thread.

Source

pub fn gl_make_current(&self, context: &GLContext) -> Result<(), String>

Source

pub fn gl_swap_window(&self)

Source

pub fn display_index(&self) -> Result<i32, String>

Source

pub fn set_display_mode<D>(&mut self, display_mode: D) -> Result<(), String>
where D: Into<Option<DisplayMode>>,

Source

pub fn display_mode(&self) -> Result<DisplayMode, String>

Source

pub fn window_pixel_format(&self) -> PixelFormatEnum

Source

pub fn window_flags(&self) -> u32

Source

pub fn set_title(&mut self, title: &str) -> Result<(), NulError>

Source

pub fn title(&self) -> &str

Source

pub fn set_icon<S>(&mut self, icon: S)
where S: AsRef<SurfaceRef>,

Source

pub fn set_position(&mut self, x: WindowPos, y: WindowPos)

Source

pub fn position(&self) -> (i32, i32)

Source

pub fn set_size( &mut self, width: u32, height: u32, ) -> Result<(), IntegerOrSdlError>

Source

pub fn size(&self) -> (u32, u32)

Source

pub fn drawable_size(&self) -> (u32, u32)

Source

pub fn set_minimum_size( &mut self, width: u32, height: u32, ) -> Result<(), IntegerOrSdlError>

Source

pub fn minimum_size(&self) -> (u32, u32)

Source

pub fn set_maximum_size( &mut self, width: u32, height: u32, ) -> Result<(), IntegerOrSdlError>

Source

pub fn maximum_size(&self) -> (u32, u32)

Source

pub fn set_bordered(&mut self, bordered: bool)

Source

pub fn show(&mut self)

Source

pub fn hide(&mut self)

Source

pub fn raise(&mut self)

Source

pub fn maximize(&mut self)

Source

pub fn minimize(&mut self)

Source

pub fn restore(&mut self)

Source

pub fn fullscreen_state(&self) -> FullscreenType

Source

pub fn set_fullscreen( &mut self, fullscreen_type: FullscreenType, ) -> Result<(), String>

Source

pub fn surface<'a>( &'a self, _e: &'a EventPump, ) -> Result<WindowSurfaceRef<'a>, String>

Returns a WindowSurfaceRef, which can be used like a regular Surface. This is an alternative way to the Renderer (Canvas) way to modify pixels directly in the Window.

For this to happen, simply create a WindowSurfaceRef via this method, use the underlying Surface however you like, and when the changes of the Surface must be applied to the screen, call update_window if you intend to keep using the WindowSurfaceRef afterwards, or finish if you don’t intend to use it afterwards.

The Renderer way is of course much more flexible and recommended; even though you only want to support Software Rendering (which is what using Surface is), you can still create a Renderer which renders in a Software-based manner, so try to rely on a Renderer as much as possible !

Source

pub fn set_grab(&mut self, grabbed: bool)

Source

pub fn grab(&self) -> bool

Source

pub fn set_brightness(&mut self, brightness: f64) -> Result<(), String>

Source

pub fn brightness(&self) -> f64

Source

pub fn set_gamma_ramp<'a, 'b, 'c, R, G, B>( &mut self, red: R, green: G, blue: B, ) -> Result<(), String>
where R: Into<Option<&'a [u16; 256]>>, G: Into<Option<&'b [u16; 256]>>, B: Into<Option<&'c [u16; 256]>>,

Source

pub fn gamma_ramp(&self) -> Result<(Vec<u16>, Vec<u16>, Vec<u16>), String>

Trait Implementations§

Source§

impl From<WindowContext> for Window

Source§

fn from(context: WindowContext) -> Window

Converts to this type from the input type.
Source§

impl RenderTarget for Window

Auto Trait Implementations§

§

impl Freeze for Window

§

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 T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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 T
where 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.