The status of the wintab dll

Robert North 7ownq0k402 at
Thu Feb 10 15:06:16 CST 2005

Hash: SHA1

I think after the 10 or more patches to the Wintab dll that I submitted
last month, I should say something about it's status...
And of course thank Alexandre for applying those patches.

P.S. I won't be available from the 15th for about a week or so.
So, if you have any questions, I'm afraid you might have to be patient.

Hope this is of interest to someone

******Applications: Current status***********

***In Painter 5
*Cursor pressure works. (Therefore is usable by most)
*Cursor orientation is a little odd: The orientation maths needs to be
*No eraser. Haven't yet cracked what enables the eraser.
*Doesn't work in desktop mode: Need to map to desktop coordinates.
*Repeats windows bugs where cursor looses pressure/orientation info
almost bug for bug (Is this a feature? ;-)
*Cannot detect pressure/orientation int the "Brush Tracking" window: The
tablet context is attached to the main window, so no events get to the
popup, even if they overlap.
This is not how windows wintab functions.

***In Photoshop 6.
*Can only get tablet data in desktop mode: This is because the tablet
context is attached to the desktop. Which generates/receives no wine
events outside desktop mode.
* Eraser and pen pressure working. *But* to get them working, you must
have 3 XInput devices listed in your XF86Config file, They need to be
the last entries in the "ServerLayout" section and the following order:
eraser, tablet mouse. This is a far from ideal way of specifying the
devices Wintab should use :-/
I'll document this if someone can point me to a good place to put the docs.

*******To Do*************

1. Look at X11 errors. There appear to be some errors that deny some
users the
ability to access Wintab enabled apps. (I think I know how to fix this)
2. Improve orientation data. Orientation comes in as X-Y coords
(Implicit Z), and has to leave as spherical coords. This calculation
needs to be re-done.
3. When tablet context is on top, let it read XInput events from all the
app's top-level windows. (This simulates the fact that the context is
usually designed to cover the whole screen)
4. When tablet context is attached to desktop, read XInput events from
all the app's top-level windows.
5. Tests
~    --My current philosophy on tests is...
~    Use Photoshop & Painter, any formal tests
~    can be written if anyone else gets involved in patching Wintab, to
avoid regressions, and conflict.

**********Long term to do (Anyone interested?):*********
There's a lot of work that could be done here, but what gets done
and who does it probably depends upon whether anyone finds an app that
needs these features. I'd love to implement these, but realistically, I
foresee doing this unless someone hires me to do so ;)

1. Improve configuration of wintab.
	Wintab could probably do with some information entered into the
	config file, to avoid the user having to
	hack their Xfree86cfg file.
2. Handle Z-Order of context properly.
	This entails
		*sharing Z-Order between apps.
		*Working out exactly what role windows have in
		 determining tablet context z-orders.
		*Allow tablet contexts that don't cover the whole
		*Handle inter-application clipping of tablet contexts
		*Allow all application's windows to receive tablet events when tablet
context is on top

3. Implement non-system tablet contexts (Where system cursor not moved
by pen or mouse)
4. Unicodify
5. Implement various wintab extensions.
6. Implement wintab manager functions.
7. Tests.


1. How are wintab contexts are raised lowered?
Contexts have their own z-order independent of windows, and their own
viewport concept, based upon the tablet's coordinate system, not that of
the OS.
It appears that entering, or clicking on the window the tablet context
is attached to will raise/lower the context.
But I haven't done much testing on this.
In particular, what happens if more than one app request their tablet
context is attached to the desktop?

2. How Painter detects the eraser.
Have 3 possibilities
	i. Windows can detect an eraser, and sends specific messages.
		(I'm sure I've seen this, but can't work out where!)
	ii. Only works if tablet and cursors are named correctly.
		(Probably linked to wacom tablets only).
	iii. I've missed something

3. Requirements of other applications
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)
Comment: Using GnuPG with Thunderbird -


More information about the wine-devel mailing list