[waffle] [PATCH 3/3] wgl: Verify the client area size matches the required size on window creation too.

Jose Fonseca jfonseca at vmware.com
Fri Jan 2 07:25:08 PST 2015


On 29/12/14 22:01, Emil Velikov wrote:
> On 29/12/14 16:22, Jose Fonseca wrote:
>> From: José Fonseca <jfonseca at vmware.com>
>>
>> By default, Windows will limit windows too large to theu desktop size,
>> and windows too small to be big enough for the titlebar.  Waffle's
>> windows don't get affected as their style is WS_POPUPWINDOW, which
>> doesn't include the WS_CAPTION style.
>>
> This is one of the hacks that I've added in waffle (please be gentle),
> which I want to cleanup as waffle_window_create2 lands. My rough idea is
> to feed WS_POPUPWINDOW on -auto piglits and WS_CAPTION otherwise into
> waffle_window_create2. The principle is analogous to the "don't capture
> input" approach as seen with glx.
>
> Afaict the idea of waffle is to avoid nasty things/assumptions when
> possible and the above idea should help.
>
> How does it sound ?

I haven't looked closely at `waffle_window_create2` code and how it 
interacts.


I do know that it's possible to get WS_CAPTION windows larger than the 
desktop if one handles the WM_GETMINMAXINFO message, like done in 
https://github.com/apitrace/apitrace/blob/master/retrace/glws_wgl.cpp#L75

However this trick doesn't work for tiny WS_CAPTION windows, not matter 
how much I tried.


There is a more comprehensive solution though: make the OpenGL drawable 
a child window instead of the top window, so that even if the parent 
can't become tiny due to the title bar, the child window (hence the 
OpenGL drawble) can be as tiny as we want.

I haven't implemented this on apitrace yet, but that is my hope.

Jose



More information about the waffle mailing list