Help wanted: Implementing Wine dlls that need access to X11 commands.

Robert North 7ownq0k402 at sneakemail.com
Thu Jan 16 08:08:48 CST 2003


Enrico Horn farmboy1-at-subdimension.com |Wine Mailing Lists| wrote:
> Hi,
> On Wednesday 15 January 2003 19:09, Robert North wrote:
> 
>>Robert North 7ownq0k402-at-sneakemail.com |Wine Mailing Lists| wrote:
>>
>>>>>       Now, as it turns out, the methods to interrogate a wintab
>>>>>message queue are extremely similar to those to interrogate an X11
>>>>>message queue.
>>>>>           So that's +1 to giving wintab it's own X11 message
>>>>>queue. (Or possibly even one X11 msg queue per tablet context!).
>>>>>           A simple X11<->wintab mapping can be implemented, and no
>>>>>additional queue data structs are needed in the wintab
>>>>>implementation.
>>>>
>>>>I'm not convinced you can avoid managing an event queue for wintab
>>>>events; from a quick look at the spec I doubt you can simply map the
>>>>wintab functions to X11 queue functions.
>>>
>>>I'm about to have a final look at this, see if there is a clear mapping
>>>from X11 functions to wintab.
>>>
>>>More on this once I've completed my investigations.
>>>
>>>One mismatch is that wintab uses a fixed size message queue which can be
>>>defined as, as opposed to Wine or X11.
>>>(I'm assuming wine or X11 are either extremely large queues, or
>>>dynamically sized.).
>>
>>I've re-checked the X11 code, and you're right, the only sane way to map
>>X11 events to a wintab queue is by coding an event queue for wintab.
>>
>>Thanks
>>	-Rob.
> 
> Sorry if this seems like a stupid question.

Don't think it is, It's the question I've ended up trying to answer when
looking at how best to implement wintab.

> Could you please elaborate what the problems between X11, DirectDraw, OpenGL
> and accessing X11 functionality are.
> I am not an expert in either area but like to understand the problem.

I'm not the person to answer this, but answering it will help me clarify 
my own thoughts, and allow people to correct me :-)

Well, it seems that wintab now has the concept of drivers, at least for 
graphics (&sound??)

As I currently see it the problem is a question of policy:
What should be in the x11drv dll (a private? dll) and what should be in 
the application facing dlls.


Currently, the x11drv dll does not appear export any X11 data stuctures,
or handles.
Therefore my assumption is that code that interfaces with the X11 system
should go in x11drv. This means that x11drv could become horribly
bloated with support for specialist dlls like x11drv. Also, as I've 
mentioned before, x11drv is so important to the functioning of wine, 
unnecessary tinkering here gould cause nasty regressions.

As Alexandre points out, wintab code need not interact much with current 
x11drv code, and therefore if well designed, will cause minimal 
regression risk.

And yet, DirectDraw, OpenGL dlls do access the X11 system directly.
How?
By some clever hacks to get X11 display objects from gdi and X11 window 
handles from Wine window handles.
And is this good policy?
No.
Lionel has pointed out that these dlls are bad examples of how to do it.


So, what is the policy?
I dunno. Maybe it's use your head?

Hope this helps
	-Rob.






> 
> Thanks
> Enrico
> 
> 
> 





More information about the wine-devel mailing list