1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212
|
This file is automatically generated from the file gsumi.html
in the docs subdirectory.
-------------
GSUMI V0.7 - PRESSURE SENSITIVE "INK" DRAWING
By Owen Taylor <owt1@cornell.edu>
[IMAGE]
WHAT IS GSUMI?
gsumi is essentially a port of xink by Raph Levien to the gtk user
interface toolkit. See the file README.xink for details about the
original program. Almost all of the drawing/rendering code and all of
the clever ideas in the implementation are due to Raph.
Briefly, the program allows drawing in black (pen) or white (eraser)
on a high resolution bitmap which is filtered down to screen
resolution. XInput devices can be used (with pressure support), and
different tools and tool properties can be assigned to each device.
The primary purpose of this project was was to create a testbed for my
ideas about how XInput support should be added to the GIMP. Quite a
bit of the code (the gximapper interface, the gxid daemon, and the
input dialog) could be used for that purpose, and has now (v0.5) been
moved into a modified GTK library.
More information about XInput and the GIMP is available here.
Version 0.8 is a beta release (If no major bugs are reported, the next
release will probably be 1.0.) As far as I know, the code is still
untested for any server other than XFree86 (on Linux and FreeBSD) and
any XInput device other than a Wacom tablet. If you get it working
with any other combination, please let me know. Bug reports and
patches are appreciated, as well as general comments about the
interface.
WHY THE NAME?
I was originally planning to call this gink (gtk+xink, contracted),
but that seemed too close to gimp. So I used the Japanese word for
(Japanese) ink instead: [INLINE] (read sumi). It's probably a bit
misleading since the program doesn't simulate the action of a Japanese
brush (an application for tilt?), but with the eraser, the
correspondence to ink was already a bit poor. As a side note, the
eraser probably really should be thought of as chalk, since that's
what [INLINE] (lit. white ink, read hakuboku) means in Japanese.
WHAT'S NEW IN V0.8
* Brushes have been generalized to be ellipses at any orientation.
* Drawing (but not rendering) code has been extensively revised.
* Brush shape will be modified by device tilt.
* v0.8b1 => v0.8 - documentation changes (9/16/97)
What's new in v0.7
* Minor changes to keep up with GTK.
* Bug fix for a crash that happened when there was no .gsumirc.
What's new in v0.6
* Minor changes to keep up with GTK.
What's new in v0.5
* Most of the XInput functionality has been moved to GDK/GTK. The
gximapper idea has been abandoned and core GDK events have been
extended to have non-integer coordinates, pressure and tilt
fields. GDK/GTK supports both switching via gxid and by the
XFree86 3.3+ method. It can be configured with
--with-xinput=[none/gxi/xfree].
* gsumi (as opposed to gdk) has become much simpler.
What's new in v0.4
* As of gimp 0.99.9, gsumi works with the unmodified gtk library.
(Thanks to Peter Mattis for incorporating the necessary changes.)
* Menus are now done very much like in the gimp.
* There's an undoable "clear" menu item.
* The gxid protocol was changed to make it a bit more robust.
* Support for the XFree86 3.3+ method of handling pointer switching
has been added. (There can be multiple logical devices for each
physical device, one is used to control the core pointer in
AlwaysCore mode, the other is used by the program to get detailed
information about motion events. Thanks to Frederic Lepied for
implementing this.)
* Bug Fixes.
What's new in v0.3
* Pointer switching is done via the gxid daemon. (Allows multiple
coexisting clients). See below. [ note: as of v0.4 another method
of switching is also available ]
* Overlapping windows are now handled correctly in most cases.
* The pointer won't leave a window while a button is down. (This may
replace the concept of slop).
* Files can be saved in compressed form via a pipe to gzip.
* 32 bit modes now work correctly.
* The user can specify the number of gray shades to use for 8-bit
mode.
* Settings can be saved via a .gsumirc
* gsumi now compiles and runs without XInput support. (But isn't too
exciting that way).
* Various bugfixes and small enhancements.
REQUIREMENTS
You'll need the libgtk and libgdk libraries from gtk+970916 or later.
(Available from ftp://ftp.gimp.org in the /pub/gtk directory.) To
enable XInput support, you'll need to compile GTK with the
--with-xinput=xfree or --with-xinput=gxid options. See the section
Configuring XInput below for more information.
AVAILABILITY
At least for right now, I have put source for gsumi on my web page:
(http://www.msc.cornell.edu/~otaylor/gsumi/gsumi.html)
* Source of gsumi-0.7 (about 60k)
* Source of gsumi-0.8 (about 64k) (This version has snazzier but
slower drawing tools)
INSTALLATION
Edit the Makefile to suit your system.
Type 'make'.
Put the binary 'gsumi' (and if you are using it, 'gxid') somewhere in
your path
USE
I hope the operation is reasonably intuitive, but a few notes:
* You'll need to set extension devices you want to use into absolute
mode before using them. The command for this (at least for
XFree86) is 'xsetmode [devicename] ABSOLUTE'. This also can be
done as a setting in your XF86Config file.
* gxid (if used) should be started first.
* gsumi takes the following command line arguments:
Usage: gsumi [ options ]
Valid options are:
-h --help Print this message
-v --version Print version number
-n --num-grays NUM Number of gray levels
--gxid-host HOST Host name for gxid daemon (default: localhost)
--gxid-port PORT Port number for gxid daemon (default: 6951)
The port and host for gxid can also be set via the environment
variables GXID_HOST and GXID_PORT.
* Changing the x-y axis mapping is likely to cause XServer errors
for devices in anything but window-mapped mode.
* Currently implemented keyboard shortcuts other than the menu
accelerators are:
+ the arrow keys to scroll
+ the space bar to toggle between pen and eraser
* A file '$HOME/.gsumirc' is created by the 'Save Options' menu
item. It is read upon subsequent starts of gsumi. This file is
meant to be human readable and editable, but there should be no
reason to do so. (Everything is accessible through the user
interface).
* Your window manager may grab the server when placing a window. In
this case, device switching will not work. With fvwm, I find it
convenient it more convenient to hit <return>to place the window
than to switch back to the mouse. (This only applies to the
generic XInput support).
REPORTING BUGS
Email bugs to me ( <owt1@cornell.edu>). Please let me know:
* The operating system and version
* The X server and version
* Details about your XInput device
It may in some cases be useful to send your '.gsumirc'. (You'll
have to 'Save Options' first). This should give a pretty complete
readout of your XInput device information.
CONFIGURING XINPUT
You'll need either to use the gxid daemon, or a sufficiently new
version of XFree86. More information about configuration is available
here . It's slanted towards using XInput supporting versions of GTK
with the GIMP, but much of the information will apply to gsumi as
well.
COPYRIGHT
gsumi version 0.8
Copyright 1997 Owen Taylor
based upon:
xink version 0.02
Copyright 1997 Raph Levien
The license of gsumi is that of xink:
This code is free for commercial and non-commercial use or
redistribution, as long as the source code release, startup screen,
or product packaging includes this copyright notice.
Note however, that some portions of the user-interface code may be
covered by the GPL and/or LGPL. See the notices at the top of each
source code file for details.
_________________________________________________________________
Return to my home page
|