Pressure and tilt support
Hi,
I've created some basic input device pressure and tilt support.
The changes are: - A standard input device dialog has been added - Device settings are loaded from and saved to the preferences - The dialog canvas widget accepts extension events - The calligraphy tool can optionally use the input device's pressure for pen width, and/or tilt for pen angle
The diff, and the new source files are available from http://www.lysator.liu.se/~nili/inkscape/
What do you think about it?
--Nicklas
On 8/6/05, Nicklas Lindgren <nili@...612...> wrote:
I've created some basic input device pressure and tilt support.
That's very interesting. Unfortunately I can't test it - I see "No extended input devices" both in Inkscape and in Gimp. Something misconfigured in my system perhaps. Is there anyone knowing this stuff well, who could help me debug it?
The changes are:
- A standard input device dialog has been added
Why is it a separate dialog and not a tab in the Inkscape Preferences, as would be more logical?
Also, can you gray out the width/angle controls in the calligraphic tool when they have no effect, being taken from pressure/tilt?
On Sat, Aug 06, 2005 at 05:22:15AM -0300, bulia byak wrote:
On 8/6/05, Nicklas Lindgren <nili@...612...> wrote:
I've created some basic input device pressure and tilt support.
That's very interesting. Unfortunately I can't test it - I see "No extended input devices" both in Inkscape and in Gimp. Something misconfigured in my system perhaps. Is there anyone knowing this stuff well, who could help me debug it?
If you are running X11 on linux and if you are using a Wacom tablet, maybe i can help.
The changes are:
- A standard input device dialog has been added
Why is it a separate dialog and not a tab in the Inkscape Preferences, as would be more logical?
It's a standard GTK dialog, and it was easiest to use it. Ideally it should be replaced with an interface that doesn't behave as unusually as it does. (Changes in any widget in the dialog affect the device configuration immediately. Changes normally aren't saved between sessions unless you press the Save-button.)
In the Gimp, the dialog is accessible from a button on a tab in the preferences dialog. Perhaps something similar is better then having it straight in the file-menu?
Also, can you gray out the width/angle controls in the calligraphic tool when they have no effect, being taken from pressure/tilt?
A good idea. The patch has been updated so that the angle spinbox will be grayed out when tilt sensitivity is active.
--Nicklas
On Sat, 2005-08-06 at 18:29 +0200, Nicklas Lindgren wrote:
Ideally it should be replaced with an interface that doesn't behave as unusually as it does.
(Changes in any widget in the dialog affect the device configuration immediately.
Instant-apply is good!
Changes normally aren't saved between sessions unless you press the Save-button.)
Well, but this isn't.
-mental
On Sat, Aug 06, 2005 at 06:57:12PM -0400, MenTaLguY wrote:
On Sat, 2005-08-06 at 18:29 +0200, Nicklas Lindgren wrote:
(Changes in any widget in the dialog affect the device configuration immediately.
Instant-apply is good!
When i think about it, you're right. Besides, non-modal dialogs and instant-apply seems to be the norm in Inkscape.
Changes normally aren't saved between sessions unless you press the Save-button.)
Well, but this isn't.
Of course, it's possible to save the changes between sessions anyway, but the button is still there.
--Nicklas
OK, I still cannot make my system work with pressure, but I know at least one person had success with this patch, and the diff seems OK to me.
So, Nicklas, I have added you as a developer to the project (having committed two of your patches). Now you can commit the pressure&tilt patch yourself. Let's do it so that people can test it.
Also please add a description of your changes to http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes under "New functionality".
On Mon, Aug 08, 2005 at 04:59:06PM -0300, bulia byak wrote:
[...] So, Nicklas, I have added you as a developer to the project (having committed two of your patches). Now you can commit the pressure&tilt patch yourself. Let's do it so that people can test it.
Also please add a description of your changes to http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes under "New functionality".
Thanks, i will! ^_^
--Nicklas
[...] So, Nicklas, I have added you as a developer to the project (having committed two of your patches). Now you can commit the pressure&tilt patch yourself. Let's do it so that people can test it.
Also please add a description of your changes to http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes under "New functionality".
Thanks, i will! ^_^
Congrats dude! I was going to tear apart the stock extended devices dialog and put all the controls into a "tablet" tab in preferences. Unfortunately since all the mailing lists are down, when I was working on this yesterday and went to update my CVS most of the files for the tablet stuff conflicted out on me (obviously since you were able to commit it, and I had previously been working on other tablet stuff that wasn't the same as yours).
I plan on backing up my conflicted files but will be nuking my sandbox to get the building clean again and was wondering if you would want to change that over from the stock dialog to the tab in preferences (that is if you already haven't, because as I said my sandbox needs to be glassed before I can build again). Let me know if you plan on doing this or not, so I know whether or not to work on it. Thanks! -Josh
On Tue, Aug 09, 2005 at 05:38:09AM -0700, Joshua A. Andler wrote:
[...] I was going to tear apart the stock extended devices dialog and put all the controls into a "tablet" tab in preferences. Unfortunately since all the mailing lists are down, when I was working on this yesterday and went to update my CVS most of the files for the tablet stuff conflicted out on me [...]
I plan on backing up my conflicted files but will be nuking my sandbox to get the building clean again and was wondering if you would want to change that over from the stock dialog to the tab in preferences [...] Let me know if you plan on doing this or not, so I know whether or not to work on it. Thanks! -Josh
I haven't looked into that. Since you have, please go ahead. ^_^
--Nicklas
On 8/6/05, Nicklas Lindgren <nili@...612...> wrote:
Hi,
I've created some basic input device pressure and tilt support.
The changes are:
- A standard input device dialog has been added
- Device settings are loaded from and saved to the preferences
- The dialog canvas widget accepts extension events
- The calligraphy tool can optionally use the input device's pressure for pen width, and/or tilt for pen angle
The diff, and the new source files are available from http://www.lysator.liu.se/~nili/inkscape/
What do you think about it?
Because applying the diff to current CVS failed, grabbed source from 3rd, August and try to compile it with your changes.
g++ -Wall -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-parameter -g -O2 -o inkscape --export-dynamic main.o -Wl,--export-dynamic libinkpre.a application/libinkapp.a ui/dialog/libuidialog.a dialogs/libspdialogs.a jabber_whiteboard/libjabber_whiteboard.a trace/libtrace.a svg/libspsvg.a widgets/libspwidgets.a display/libspdisplay.a helper/libspchelp.a libcroco/libcroco.a libnrtype/libnrtype.a libnr/libnr.a livarot/libvarot.a ui/view/libuiview.a ui/libui.a ui/widget/libuiwidget.a extension/libextension.a extension/implementation/libimplementation.a extension/internal/libinternal.a extension/script/libscript.a xml/libspxml.a util/libinkutil.a io/libio.a inkjar/libinkjar.a libinkpost.a debug/libinkdebug.a -lgtkmm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lpangomm-1.4 -lglibmm-2.4 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoxft-1.0 -lpangox-1.0 /usr/lib/libxslt.so -lxml2 -lpthread -lsigc-2.0 -lpng /usr/lib/libpopt.so -pthread -lgnomevfs-2 -lbonobo-2 -lgconf-2 -lbonobo-activation -lORBit-2 -lm -lgthread-2.0 -L/usr/X11R6/lib -lXft -lX11 -lXrender -lfontconfig -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 /usr/lib/libfreetype.so -lz -lgc libinkpre.a(inkscape.o)(.text+0x1b55): In function `inkscape_load_preferences(Inkscape::Application*)': /home/avp/soft/build/graphics/inkscape/inkscape-20050803-2220/src/inkscape.cpp:728: undefined reference to `sp_input_load_from_preferences()' libinkpre.a(verbs.o)(.text+0xaf3): In function `Inkscape::DialogVerb::perform(SPAction*, void*, void*)': /home/avp/soft/build/graphics/inkscape/inkscape-20050803-2220/src/verbs.cpp:1553: undefined reference to `sp_input_dialog()' collect2: ld returned 1 exit status make[2]: *** [inkscape] Error 1 make[2]: Leaving directory `/home/avp/soft/build/graphics/inkscape/inkscape-20050803-2220/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/avp/soft/build/graphics/inkscape/inkscape-20050803-2220' make: *** [all] Error 2
Alexandre
On Sat, Aug 06, 2005 at 03:02:36PM +0400, Alexandre Prokoudine wrote:
Because applying the diff to current CVS failed, grabbed source from 3rd, August and try to compile it with your changes.
I have updated the diff to reflect the latest changes in the CVS.
[...] libinkpre.a(inkscape.o)(.text+0x1b55): In function `inkscape_load_preferences(Inkscape::Application*)': /home/avp/soft/build/graphics/inkscape/inkscape-20050803-2220/src/inkscape.cpp:728: undefined reference to `sp_input_load_from_preferences()' libinkpre.a(verbs.o)(.text+0xaf3): In function `Inkscape::DialogVerb::perform(SPAction*, void*, void*)': /home/avp/soft/build/graphics/inkscape/inkscape-20050803-2220/src/verbs.cpp:1553: undefined reference to `sp_input_dialog()' [...]
My new source file (src/dialog/input.cpp) seems not to have been linked in your build. The functions referred to in the error message *should* be archived into libspdialogs.a . Maybe your src/Makefile.in or src/Makefile needs to be rebuilt?
--Nicklas
On Sat, Aug 06, 2005 at 05:49:08AM +0200, Nicklas Lindgren wrote:
Hi,
I've created some basic input device pressure and tilt support.
The changes are:
- A standard input device dialog has been added
- Device settings are loaded from and saved to the preferences
- The dialog canvas widget accepts extension events
- The calligraphy tool can optionally use the input device's pressure for pen width, and/or tilt for pen angle
The diff, and the new source files are available from http://www.lysator.liu.se/~nili/inkscape/
What do you think about it?
Ah, this is excellent to hear that you've taken the initiative to implement this. This is a feature people have been asking about for quite some time!
Bryce
On Sat, 2005-08-06 at 07:42 -0700, Bryce Harrington wrote:
On Sat, Aug 06, 2005 at 05:49:08AM +0200, Nicklas Lindgren wrote:
Hi,
I've created some basic input device pressure and tilt support.
The changes are:
- A standard input device dialog has been added
- Device settings are loaded from and saved to the preferences
- The dialog canvas widget accepts extension events
- The calligraphy tool can optionally use the input device's pressure for pen width, and/or tilt for pen angle
The diff, and the new source files are available from http://www.lysator.liu.se/~nili/inkscape/
What do you think about it?
Ah, this is excellent to hear that you've taken the initiative to implement this. This is a feature people have been asking about for quite some time!
Right, how ironic...I bugged wacom devs. at siggraph about this, so this is quite timely!
Jon
SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Hi,
I've created some basic input device pressure and tilt support.
The changes are:
- A standard input device dialog has been added
- Device settings are loaded from and saved to the preferences
- The dialog canvas widget accepts extension events
- The calligraphy tool can optionally use the input device's pressure for pen width, and/or tilt for pen angle
The diff, and the new source files are available from http://www.lysator.liu.se/~nili/inkscape/
What do you think about it?
--Nicklas
I haven't tried it yet due to things not compiling right on win32 at the moment (mostly whiteboard stuff that is a pain to get it all excluded) and my home computer being dead atm, but I've been working on supporting this with the help of some code by Jose Hevia. We should talk about this with Bulia to find a way to get all of the functionality necessary in a way that will require as little refactoring in the future as possible. One of the great things about Jose's code is the ability to "record" strokes and save them for later use (retaining all pressure & tilt info from your tablet input).
On another note, it's great to see a new face in the dev community! I will give my impressions as soon as I'm able to test it out! If no one has committed any of the code yet, I will take on doing this unless it's determined to be kosher prior to that.
Bulia, we should talk about how we can implement the advanced brush tool I've been thinking of. It will be a replacement for the calligraphy tool, but it will be more robust than "the other guys" brushes (a few methods I have in mind, 1 of which I have not seen in other software). My goal for all of this stuff was .44 due to the shorter dev cycles and my newbness to programming, but it looks like he has most of the initial stuff done so we may do pressure & tilt w/ stroke saving/loading for .43 and the brush stuff for .44.
Too cool Nicklas! I'm stoked!
-Josh
I've created some basic input device pressure and tilt support.
The changes are:
- A standard input device dialog has been added
- Device settings are loaded from and saved to the preferences
- The dialog canvas widget accepts extension events
- The calligraphy tool can optionally use the input device's pressure for pen width, and/or tilt for pen angle
The diff, and the new source files are available from http://www.lysator.liu.se/~nili/inkscape/
What do you think about it?
Finally got time to get it merged in my sandbox this morning. Code looks pretty straight forward... excellent! Doesn't seem to work on win32 at the moment though, so I'm currently looking into that.
On a side-note, are we opting against the stock gnome device configuration dialog in favor of the tab in preferences? Let me know so I can have it hooked up right. Once it's working on win32 I will double check for any issues and then commit to CVS after testing a bit.
Bulia, would you find the ability to "record" and "playback" strokes to be beneficial (recording data straight from the tablet for position, pressure, & tilt for later use)? Or should I not bother with it since once the brush tool is implemented we would effectively eliminate most uses for it? I see it as beneficial for saving a stroke to be replayed with different parameters using the calligraphy tool... but as with all real brush tools, we'd basically have "brush stroke" objects that would be created that could have various brushes applied instead.
-Josh
On 8/8/05, Joshua A. Andler <joshua@...533...> wrote:
Bulia, would you find the ability to "record" and "playback" strokes to be beneficial (recording data straight from the tablet for position, pressure, & tilt for later use)? Or should I not bother with it since once the brush tool is implemented we would effectively eliminate most uses for it? I see it as beneficial for saving a stroke to be replayed with different parameters using the calligraphy tool... but as with all real brush tools, we'd basically have "brush stroke" objects that would be created that could have various brushes applied instead.
I think that while this may be useful currently, in general the "record/play" concept is too complex and too foreign to Inkscape. I don't think it's worth to introduce it for so limited purpose. Our main concept is "objects are tweakable", and we must use it. Which means, in this case, work towards real stroke objects whose parameters are editable at any time, not just filled shapes as now.
On 8/8/05, Joshua A. Andler <joshua@...533...> wrote:
Bulia, would you find the ability to "record" and "playback" strokes
to
be beneficial (recording data straight from the tablet for position, pressure, & tilt for later use)? Or should I not bother with it
since
once the brush tool is implemented we would effectively eliminate
most
uses for it? I see it as beneficial for saving a stroke to be
replayed
with different parameters using the calligraphy tool... but as with
all
real brush tools, we'd basically have "brush stroke" objects that
would
be created that could have various brushes applied instead.
I think that while this may be useful currently, in general the "record/play" concept is too complex and too foreign to Inkscape. I don't think it's worth to introduce it for so limited purpose. Our main concept is "objects are tweakable", and we must use it. Which means, in this case, work towards real stroke objects whose parameters are editable at any time, not just filled shapes as now.
Awesome... and for the record, that stuff is working on win32 now... apparently the tablet had to be plugged in prior to starting inkscape for it to be detected correctly.
Bulia, do you want for me to "merge" the options from the stock input device dialog into the Tablet tab in preferences I was working on? Or do you just want the stock dialog to be pulled up via a button in prefs (from an existing tab such as on the Misc tab)?
I will work on getting it to just use the tablet without setting up through the devices dialog (currently it doesn't function this way), but for people that have manually configured devices (with custom names and such) we'll still need that configuration available.
-Josh
On 8/8/05, Joshua A. Andler <joshua@...533...> wrote:
Bulia, do you want for me to "merge" the options from the stock input device dialog into the Tablet tab in preferences I was working on? Or do you just want the stock dialog to be pulled up via a button in prefs (from an existing tab such as on the Misc tab)?
I think removing the extra dialog is good, if you can do it. This will also hopefully get rid of the confusing "save" button.
I will work on getting it to just use the tablet without setting up through the devices dialog (currently it doesn't function this way), but for people that have manually configured devices (with custom names and such) we'll still need that configuration available.
Sounds good.
participants (7)
-
Alexandre Prokoudine
-
Bryce Harrington
-
bulia byak
-
Jon Phillips
-
Joshua A. Andler
-
MenTaLguY
-
Nicklas Lindgren