integer scaling

This commit is contained in:
lifning 2021-12-10 00:53:07 -08:00
parent e7f6c58d0a
commit 8efff459c4
1 changed files with 10 additions and 0 deletions

View File

@ -9,9 +9,19 @@ use sdl2::render::WindowCanvas;
pub(crate) fn paint_frame_on_canvas(frame: &VideoFrame, canvas: &mut WindowCanvas) -> bool {
if let Some((pixel_data, pitch)) = frame.data_pitch_as_bytes() {
let (cw, ch) = canvas.output_size().unwrap();
let (width, height) = frame.dimensions();
let pixel_format = frame.pixel_format().map(sdl2_pixfmt);
let should_intscale = if cw >= width && ch >= height {
sdl2::sys::SDL_bool::SDL_TRUE
} else {
sdl2::sys::SDL_bool::SDL_FALSE
};
unsafe {
sdl2::sys::SDL_RenderSetIntegerScale(canvas.raw(), should_intscale);
}
if let Ok(mut tex) = canvas
.texture_creator()
.create_texture_static(pixel_format, width, height)