mirror of
				https://github.com/glfw/glfw.git
				synced 2025-11-03 22:04:15 +00:00 
			
		
		
		
	Wayland: Separate window and framebuffer resizing
This commit is contained in:
		
							parent
							
								
									1fe98a0d53
								
							
						
					
					
						commit
						d3a7362430
					
				@ -306,8 +306,7 @@ static void setContentAreaOpaque(_GLFWwindow* window)
 | 
			
		||||
    wl_region_destroy(region);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static void resizeWindow(_GLFWwindow* window)
 | 
			
		||||
static void resizeFramebuffer(_GLFWwindow* window)
 | 
			
		||||
{
 | 
			
		||||
    int scale = window->wl.contentScale;
 | 
			
		||||
    int scaledWidth = window->wl.width * scale;
 | 
			
		||||
@ -315,9 +314,16 @@ static void resizeWindow(_GLFWwindow* window)
 | 
			
		||||
 | 
			
		||||
    if (window->wl.egl.window)
 | 
			
		||||
        wl_egl_window_resize(window->wl.egl.window, scaledWidth, scaledHeight, 0, 0);
 | 
			
		||||
 | 
			
		||||
    if (!window->wl.transparent)
 | 
			
		||||
        setContentAreaOpaque(window);
 | 
			
		||||
 | 
			
		||||
    _glfwInputFramebufferSize(window, scaledWidth, scaledHeight);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void resizeWindow(_GLFWwindow* window)
 | 
			
		||||
{
 | 
			
		||||
    resizeFramebuffer(window);
 | 
			
		||||
 | 
			
		||||
    if (!window->wl.decorations.top.surface)
 | 
			
		||||
        return;
 | 
			
		||||
@ -363,7 +369,7 @@ void _glfwUpdateContentScaleWayland(_GLFWwindow* window)
 | 
			
		||||
        window->wl.contentScale = maxScale;
 | 
			
		||||
        wl_surface_set_buffer_scale(window->wl.surface, maxScale);
 | 
			
		||||
        _glfwInputWindowContentScale(window, maxScale, maxScale);
 | 
			
		||||
        resizeWindow(window);
 | 
			
		||||
        resizeFramebuffer(window);
 | 
			
		||||
 | 
			
		||||
        if (window->wl.visible)
 | 
			
		||||
            _glfwInputWindowDamage(window);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user