integer scaling
This commit is contained in:
		
							parent
							
								
									e7f6c58d0a
								
							
						
					
					
						commit
						8efff459c4
					
				
					 1 changed files with 10 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue