New plans for wintab work.
aric at codeweavers.com
Sun Apr 27 20:51:10 CDT 2003
Sorry for the delay before. I took friday off and have has a busy weekend.
> If Aric's pach is considered ready to go into CVS, then I can
> start working on this in the following areas:
Alexandre makes this call :)
> Painter support.
> I beleive there are some problems getting Painter to work with
> This is my priority.
This would be awesome. I banged my head against it for a while before
moving on, where I am. It looks like it has to do with timing for the
button messages and the information in the tablet packets. Under windows
we receive a WM_LBUTTONDOWN message significantly before we seen any
normal pressure or value in the pkButton field of the packet. Similarly
the button up come right when the pressure and pkButton field are cleared.
However under X, we get normal pressure until the threshold value before
generating the Button event. additionally the button up can occurs while
normal pressure is still around. I think this is confusing Painter
because it gets caught inside of a IsButtonDown function and often gets
very confused if the button is down or not.
> Additional configuration for wintab.
> Aric's wintab reqires no configuration.
> It is only targeted at Intuos tablets.
> My implementation was to have a zero config default
> for the intuos2 tablet, similar to Aric's.
> Config could be provided where necessary to
> modify how an intuos tablet is seen by wintab,
> or to allow other tablet types to be used by wintab.
> I could merge this work into Aric's implementation.
> This would require significant re-factoring of Aric's
> data structs to match the more generic data structs I
I tried to keep the data structures as generic as possible. They are all
taken directly from the wintab 1.1 api specification on the web. I tried
the fill most of the structures as generically as possible based on
information I can gleed from the drv_wacom.o implementation for XFree86-4
The areas where i had questions i did comparisons with the windows
programs with the same intuos2 tablet i was working on under linux. So
those areas may be a bit more specific.
I am pretty sure that most any other wacom tablets would work. I do not
know if anyone has tested any other wintab devices but I would be very
curious how they would work.
Sort of the biggest trick i had to play was with the cursor ID numbering.
If you look at these faqs i wrote up for CrossOver Office 2.0 you can see.
I was tempted to make the cursor IDs a value in a config file but
thought it would just be best to try to avoid having to do much work in
the config file.
> I may not have too much time to do work for the next 3 weeks,
> but I'd hope to make some progress on the painter side.
That would be great. I also hope that you find it works well for you and
Other areas that are "less than perfect"
*) None of the manager functions are there.
*) All contexts are basically CXO_SYSTEM contexts. this means that the
applications always get the mouse moves and button events for the
tablet. This is find for Photoshop and painter because they both want
CXO_SYSTEM contexts. But under windows you can have contexts where the
application does not get the mouse events for the tablet. only the
*) nothing is implemented for relative mode packets. All the data is
presented in absolute mode.
*) a number of things are not implemented such as tangent pressure, and
other axis that the intous tablet does not have.
*) I am not particularly happy with the way that the packet data is
communicated from the x11drv layer to the wintab32 layer. Also i think
the way i handle the packet queues is sort of fast and sloppy.
Sorry again for the lack of communication before, I look forward to the
improvements you can make.
More information about the wine-devel