[waffle] [GSOC 2014] How to deal with non win32 api, wgl(Create, Make)Context depends on existing window

Emil Velikov emil.l.velikov at gmail.com
Sat May 31 14:02:46 PDT 2014

On 31/05/14 19:59, Jose Fonseca wrote:
> ----- Original Message -----
>> On 24/05/14 20:28, Emil Velikov wrote:
>> AFAICS waffle is unique wrt other projects (apitrace, epoxy, glut) as it
>> allows the PixelFormat to be called prior to the creation of either window or
>> context.
>>>   Options:
>>>     - Create a window, choose format, destroy window.
>>>           No guarantee that the function will behave the same for another
>>>           window/device_context.
> In practice, the odds of this happening are very low.
> I'd recommend creating an invisible window, do your things then, keep the window around, and then merely double check later that things are not busted.
Still not sure which one of the two you are recommending:

"Create a invisible(dummy) window initially and create a new one at
wfl_window_create." or

"Create a invisible(dummy) window initially and bring it up/use it at
wfl_window_create/wfl_window_show." ?

Pardon if the above question sound rather dull :)


> You can see in http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/state_trackers/wgl/stw_ext_pbuffer.c how to create an invisible window  (This is how Mesa implements pbuffers on Windows!.)
> Jose
>>>     - or, create window, choose format, reuse window on
>>>     waffle_window_create()
>>>           Sanest solution. If windows is not created just make one (i.e.
>>>           waffle_config_choose is not executed before
>>>           waffle_window_create).
>>>     - or, store the attributes, and invoke ChoosePixelFormat as
>>>       waffle_window_create is executed.
>>>           What if code-flow depends on waffle_config_choose's return value
>>>           ?
>>>     - or rework waffle API ... (no, please no)
>>>   Suggestion:
>>>     "Cache" the window, and reuse it on waffle_window_create.

More information about the waffle mailing list