Merge pull request #1112 from LtPeriwinkle/master

Add wrapper functions for getting and setting renderer integer scaling
This commit is contained in:
Cobrand
2021-10-10 20:14:19 +02:00
committed by GitHub
2 changed files with 28 additions and 0 deletions
+2
View File
@@ -10,6 +10,8 @@ enum variants directly in your project, you may be affected. If you only used sd
[PR #1150](https://github.com/Rust-SDL2/rust-sdl2/pull/1150) Do not download SDL2 sources when using bundled feature
[PR #1112](https://github.com/Rust-SDL2/rust-sdl2/pull/1150) Add wrapper functions for `SDL_RenderSetIntegerScale` and `SDL_RenderGetIntegerScale`
### v0.34.5
[PR #1100](https://github.com/Rust-SDL2/rust-sdl2/pull/1100) Added binding for `SDL_GetDisplayUsableBounds`
+26
View File
@@ -1148,6 +1148,32 @@ impl<T: RenderTarget> Canvas<T> {
}
}
/// Sets whether to force integer scales for resolution-independent rendering.
#[doc(alias = "SDL_RenderSetIntegerScale")]
pub fn set_integer_scale(&mut self, scale: bool) -> Result<(), String> {
let ret = unsafe {
sys::SDL_RenderSetIntegerScale(
self.raw(),
if scale {
sys::SDL_bool::SDL_TRUE
} else {
sys::SDL_bool::SDL_FALSE
},
)
};
if ret != 0 {
Err(get_error())
} else {
Ok(())
}
}
/// Gets whether integer scales are forced for resolution-independent rendering.
#[doc(alias = "SDL_RenderGetIntegerScale")]
pub fn integer_scale(&self) -> bool {
unsafe { sys::SDL_RenderGetIntegerScale(self.raw()) == sys::SDL_bool::SDL_TRUE }
}
/// Sets the drawing scale for rendering on the current target.
#[doc(alias = "SDL_RenderSetScale")]
pub fn set_scale(&mut self, scale_x: f32, scale_y: f32) -> Result<(), String> {