pub struct ContextBuilder { /* private fields */ }
Expand description
Settings that can be configured when starting up a game.
§Serde
Serialization and deserialization of this type (via Serde)
can be enabled via the serde_support
feature.
Note that the available settings could change between releases of
Tetra (semver permitting). If you need a config file schema that will
be stable in the long term, consider making your own and then mapping
it to Tetra’s API, rather than relying on ContextBuilder
to not
change.
Implementations§
Source§impl ContextBuilder
impl ContextBuilder
Sourcepub fn new<S>(title: S, window_width: i32, window_height: i32) -> ContextBuilder
pub fn new<S>(title: S, window_width: i32, window_height: i32) -> ContextBuilder
Create a new ContextBuilder
, with a title and window size.
Sourcepub fn title<S>(&mut self, title: S) -> &mut ContextBuilder
pub fn title<S>(&mut self, title: S) -> &mut ContextBuilder
Sets the title of the window.
Defaults to "Tetra"
.
Sourcepub fn size(&mut self, width: i32, height: i32) -> &mut ContextBuilder
pub fn size(&mut self, width: i32, height: i32) -> &mut ContextBuilder
Sets the size of the window.
Defaults to 1280
by 720
.
Sourcepub fn vsync(&mut self, vsync: bool) -> &mut ContextBuilder
pub fn vsync(&mut self, vsync: bool) -> &mut ContextBuilder
Enables or disables vsync.
Setting this flag does not guarantee that the requested vsync mode will be used -
some platforms do not support vsync, and others enforce vsync. If you want to
find out which vsync mode was actually chosen, you can call
window::is_vsync_enabled
.
Defaults to true
.
Sourcepub fn fps_limit(&mut self, fps_limit: bool) -> &mut ContextBuilder
pub fn fps_limit(&mut self, fps_limit: bool) -> &mut ContextBuilder
Enables or disables the 1000 FPS limit.
The framework will sleep for 1 millisecond on the main thread if this flag is set to true to provide a sensible FPS limit when running without vsync, and to avoid CPU usage skyrocketing on some systems.
Defaults to true
.
Sourcepub fn timestep(&mut self, timestep: Timestep) -> &mut ContextBuilder
pub fn timestep(&mut self, timestep: Timestep) -> &mut ContextBuilder
Sets the game’s timestep.
Defaults to Timestep::Fixed(60.0)
.
Sourcepub fn fullscreen(&mut self, fullscreen: bool) -> &mut ContextBuilder
pub fn fullscreen(&mut self, fullscreen: bool) -> &mut ContextBuilder
Sets whether or not the window should start in fullscreen.
Defaults to false
.
Sourcepub fn maximized(&mut self, maximized: bool) -> &mut ContextBuilder
pub fn maximized(&mut self, maximized: bool) -> &mut ContextBuilder
Sets whether or not the window should start maximized.
Defaults to false
.
Sourcepub fn minimized(&mut self, minimized: bool) -> &mut ContextBuilder
pub fn minimized(&mut self, minimized: bool) -> &mut ContextBuilder
Sets whether or not the window should start minimized.
Defaults to false
.
Sourcepub fn resizable(&mut self, resizable: bool) -> &mut ContextBuilder
pub fn resizable(&mut self, resizable: bool) -> &mut ContextBuilder
Sets whether or not the window should be resizable.
Defaults to false
.
Sourcepub fn borderless(&mut self, borderless: bool) -> &mut ContextBuilder
pub fn borderless(&mut self, borderless: bool) -> &mut ContextBuilder
Sets whether or not the window should be borderless.
Defaults to false
.
Sourcepub fn multisampling(&mut self, multisampling: u8) -> &mut ContextBuilder
pub fn multisampling(&mut self, multisampling: u8) -> &mut ContextBuilder
Sets the number of samples that should be used for multisample anti-aliasing.
The number of samples that can be used varies between graphics cards - 2
, 4
and 8
are reasonably
well supported. Setting the number of samples to 0
will disable multisampling.
Note that this setting only applies to the main backbuffer - multisampled canvases can
be created via Canvas::builder
.
Defaults to 0
.
Sourcepub fn stencil_buffer(&mut self, stencil_buffer: bool) -> &mut ContextBuilder
pub fn stencil_buffer(&mut self, stencil_buffer: bool) -> &mut ContextBuilder
Sets whether or not the window should have a stencil buffer.
If this is enabled, you can use the stencil functions in the
graphics
module when rendering to the main backbuffer.
Note that this setting only applies to the main backbuffer - to create a canvas with
a stencil buffer, use Canvas::builder
.
Defaults to false
.
Sourcepub fn high_dpi(&mut self, high_dpi: bool) -> &mut ContextBuilder
pub fn high_dpi(&mut self, high_dpi: bool) -> &mut ContextBuilder
Sets whether or not the window should use a high-DPI backbuffer, on platforms that support it (e.g. MacOS with a retina display).
Note that you may also need some platform-specific config to enable high-DPI rendering:
- On Windows, set
dpiAware
totrue/pm
anddpiAwareness
topermonitorv2
in your application manifest. This should enable the best behaviour available, regardless of how old the user’s version of Windows is.- The
embed-resource
crate can be used to automate embedding an application manifest. - Alternatively, you can use the
SetProcessDPIAware
orSetProcessDpiAwareness
Windows API functions to change these settings programatically, but Microsoft recommend not to do this.
- The
- On Mac, set
NSHighResolutionCapable
totrue
in your Info.plist. This is the default on Catalina and higher.
Defaults to false
.
Sourcepub fn screen_saver_enabled(
&mut self,
screen_saver_enabled: bool,
) -> &mut ContextBuilder
pub fn screen_saver_enabled( &mut self, screen_saver_enabled: bool, ) -> &mut ContextBuilder
Sets whether or not the user’s screen saver can be displayed while the game is running.
Defaults to false
.
Sourcepub fn key_repeat(&mut self, key_repeat: bool) -> &mut ContextBuilder
pub fn key_repeat(&mut self, key_repeat: bool) -> &mut ContextBuilder
Sets whether or not key repeat should be enabled.
Normally, a KeyPressed
event will only be fired once, when
the key is initially pressed. Enabling key repeat causes KeyPressed
events to be fired
continuously while the key is held down.
Defaults to false
.
Sourcepub fn show_mouse(&mut self, show_mouse: bool) -> &mut ContextBuilder
pub fn show_mouse(&mut self, show_mouse: bool) -> &mut ContextBuilder
Sets whether or not the mouse cursor should be visible when it is within the game window.
Defaults to false
.
Sourcepub fn grab_mouse(&mut self, grab_mouse: bool) -> &mut ContextBuilder
pub fn grab_mouse(&mut self, grab_mouse: bool) -> &mut ContextBuilder
Sets whether or not the mouse cursor should be grabbed by the game window at startup.
Defaults to false
.
Sourcepub fn relative_mouse_mode(
&mut self,
relative_mouse_mode: bool,
) -> &mut ContextBuilder
pub fn relative_mouse_mode( &mut self, relative_mouse_mode: bool, ) -> &mut ContextBuilder
Sets whether or not relative mouse mode should be enabled.
While the mouse is in relative mode, the cursor is hidden and can move beyond the
bounds of the window. The delta
field of Event::MouseMoved
can then be used to track the cursor’s changes in position. This is useful
when implementing control schemes that require the mouse to be able to
move infinitely in any direction (for example, FPS-style movement).
While this mode is enabled, the absolute position of the mouse may not be updated - as such, you should not rely on it.
Defaults to false
.
Sourcepub fn quit_on_escape(&mut self, quit_on_escape: bool) -> &mut ContextBuilder
pub fn quit_on_escape(&mut self, quit_on_escape: bool) -> &mut ContextBuilder
Sets whether or not the game should close when the Escape key is pressed.
Defaults to false
.
Sourcepub fn debug_info(&mut self, debug_info: bool) -> &mut ContextBuilder
pub fn debug_info(&mut self, debug_info: bool) -> &mut ContextBuilder
Sets whether or not the game should print out debug info at startup. Please include this if you’re submitting a bug report!
Trait Implementations§
Source§impl Clone for ContextBuilder
impl Clone for ContextBuilder
Source§fn clone(&self) -> ContextBuilder
fn clone(&self) -> ContextBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ContextBuilder
impl Debug for ContextBuilder
Source§impl Default for ContextBuilder
impl Default for ContextBuilder
Source§fn default() -> ContextBuilder
fn default() -> ContextBuilder
Auto Trait Implementations§
impl Freeze for ContextBuilder
impl RefUnwindSafe for ContextBuilder
impl Send for ContextBuilder
impl Sync for ContextBuilder
impl Unpin for ContextBuilder
impl UnwindSafe for ContextBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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