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