mirror of
				https://gitlab.freedesktop.org/wayland/wayland.git
				synced 2025-11-03 09:01:42 -05:00 
			
		
		
		
	Add fullscreen protocol
Map the surface as a fullscreen surface. On the output the
surface is assigned to. The client can use different fulllscreen
method to fix the size mismatch issue: default, scale, driver
and fill.
Hints to indicate compositor how to deal with this fullscreen surface.
"default" means the client has no preference on fullscreen
          behavior, policies are determined by compositor.
"scale"   means the client prefers scaling by the compositor.
          Scaling would always preserve surface's aspect ratio.
          And the surface is centered.
"driver"  means the client wants to switch video mode to the
          smallest mode that can fit the client buffer. If the
          sizes do not match, black borders are added. And the
          framerate parameter is used for "driver" method,
          to indicate the preferred framerate. framerate=0 means
          that the app does not care about framerate
"fill"    means the client wants to add blackborders to the
          surface. This would be preferring 1:1 pixel mapping
          in the monitor native video mode. The surface is
          centered.
			
			
This commit is contained in:
		
							parent
							
								
									2eddfce14b
								
							
						
					
					
						commit
						b3981136a1
					
				
					 1 changed files with 31 additions and 7 deletions
				
			
		| 
						 | 
					@ -418,16 +418,40 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <request name="set_fullscreen">
 | 
					    <request name="set_fullscreen">
 | 
				
			||||||
      <description summary="make the surface a fullscreen surface">
 | 
					      <description summary="make the surface a fullscreen surface">
 | 
				
			||||||
	Map the surface as a fullscreen surface.  There are a number
 | 
						Map the surface as a fullscreen surface. On the output the
 | 
				
			||||||
	of options here: on which output? if the surface size doesn't
 | 
						surface is assigned to. The client can use different fulllscreen
 | 
				
			||||||
	match the output size, do we scale, change resolution, or add
 | 
						method to fix the size mismatch issue: default, scale, driver
 | 
				
			||||||
	black borders? is that something the client controls?  what
 | 
						and fill. And the framerate parameter is used for "driver" method,
 | 
				
			||||||
	about transient surfaces, do they float on top of the
 | 
						to indicate the preferred framerate. framerate=0 means that the
 | 
				
			||||||
	fullscreen? what if there's already a fullscreen surface on
 | 
						app does not care about framerate
 | 
				
			||||||
	the output, maybe you can only go fullscreen if you're active?
 | 
					 | 
				
			||||||
      </description>
 | 
					      </description>
 | 
				
			||||||
 | 
					      <arg name="method" type="uint"/>
 | 
				
			||||||
 | 
					      <arg name="framerate" type="uint"/>
 | 
				
			||||||
 | 
					      <arg name="output" type="object" interface="wl_output"/>
 | 
				
			||||||
    </request>
 | 
					    </request>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <enum name="fullscreen_method">
 | 
				
			||||||
 | 
					      <description summary="different method to set the surface fullscreen">
 | 
				
			||||||
 | 
						Hints to indicate compositor how to deal with this fullscreen surface.
 | 
				
			||||||
 | 
						"default" means the client has no preference on fullscreen
 | 
				
			||||||
 | 
						          behavior, policies are determined by compositor.
 | 
				
			||||||
 | 
						"scale"   means the client prefers scaling by the compositor.
 | 
				
			||||||
 | 
						          Scaling would always preserve surface's aspect ratio.
 | 
				
			||||||
 | 
						          And the surface is centered.
 | 
				
			||||||
 | 
						"driver"  means the client wants to switch video mode to the
 | 
				
			||||||
 | 
						          smallest mode that can fit the client buffer. If the
 | 
				
			||||||
 | 
						          sizes do not match, black borders are added.
 | 
				
			||||||
 | 
						"fill"    means the client wants to add blackborders to the
 | 
				
			||||||
 | 
						          surface. This would be preferring 1:1 pixel mapping
 | 
				
			||||||
 | 
						          in the monitor native video mode. The surface is
 | 
				
			||||||
 | 
						          centered.
 | 
				
			||||||
 | 
					      </description>
 | 
				
			||||||
 | 
					      <entry name="default" value="0"/>
 | 
				
			||||||
 | 
					      <entry name="scale" value="1"/>
 | 
				
			||||||
 | 
					      <entry name="driver" value="2"/>
 | 
				
			||||||
 | 
					      <entry name="fill" value="3"/>
 | 
				
			||||||
 | 
					    </enum>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <request name="set_popup">
 | 
					    <request name="set_popup">
 | 
				
			||||||
      <description summary="make the surface a popup surface">
 | 
					      <description summary="make the surface a popup surface">
 | 
				
			||||||
	Popup surfaces.  Will switch an implicit grab into
 | 
						Popup surfaces.  Will switch an implicit grab into
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue