<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">
> Basically, xrandr is designed under the assumption that a resolution change<br>
> is permanent, or at least semi-permanent (e.g. until reboot or manual switch<br>
> back) and system wide. The problem is that games (as an example) require a<br>
> temporary resolution change that is associated with a single window. What I<br>
> mean by this is that when a game initializes it sets the resolution (through<br>
> SDL, X, Win32 on Wine etc.) and this is frequently a resolution below native<br>
> normally for performance reasons (e.g. your PC may not like running Alien<br>
> Arena at full HD, but it will run perfectly well at 1024x768).<br>
><br>
> Ideally, if that game then crashed, or someone ALT+TAB'd to a different<br>
> window, the native resolution would be restored. If the user then switched<br>
> back to the window, then the game's resolution would be restored. On<br>
> Windows, it's possible to pass a temporary flag to the Win32<br>
> ChangeDisplaySettings()* function for this behaviour.<br>
<br>
</div>Could you elaborate on how Windows handles this?<br></blockquote><div><br>I don't know much about what it does under the hood, but there is a little more information here: <a href="http://blogs.msdn.com/b/oldnewthing/archive/2008/01/04/6973747.aspx">http://blogs.msdn.com/b/oldnewthing/archive/2008/01/04/6973747.aspx</a><br>
<br>The general idea is that it:<br><br>1. Restores the native resolution when the application exits<br>2. Restores the native resolution when the application window loses focus<br>3. Goes back to the non-native resolution when the window gains focus<br>
4. Doesn't reorganize the desktop etc. (e.g other applications don't get a WM_DISPLAYCHANGED message - <a href="http://msdn.microsoft.com/en-us/library/dd145210%28v=VS.85%29.aspx">http://msdn.microsoft.com/en-us/library/dd145210%28v=VS.85%29.aspx</a>)<br>
5. If the window loses focus, it is minimized automatically. <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
> At the moment, if a game crashes (either native, or run via Wine) on X you<br>
> are left with a low resolution and have to find your way to the Monitor<br>
> control panel to set it back. Which is obviously not ideal.<br>
><br>
> So, basically I'm hoping that Wayland can fix this issue by allowing a<br>
> resolution change to be associated with a single window.<br>
<br>
</div>Could you expound on how you think Wayland should behave in this<br>
situation?<br>
<font color="#888888"><br>
Bryce<br></font></blockquote><div><br>I think basically, similar to windows. So, in the API call that sets the resolution, allow an optional parameter which takes the ID of the window. If the window does not have focus (or ceases to exist), restore the previous resolution. I don't really know how Wayland works so I can't really suggest much more than that.<br>
<br>I do have another idea, but whether it would work in practice I'm not sure, so I'll just throw this out there. What if, instead of changing the native resolution, Wayland allocated an off-screen buffer of the requested resolution. As far as the app is concerned it's rendering to a fullscreen window at the requested res, but then Wayland scales the offscreen buffer and blits it to the screen. If the window loses focus then it's minimized. (I know we are sort of stumbling onto WM territory here, I'm not really sure how to handle that. Perhaps it doesn't need to be minimized just displayed non-fullscreen).<br>
<br>Sorry if I'm talking rubbish, I only have basically knowledge of how this stuff works.<br><br></div></div>Luke.<br>