TODO list
Boudewijn Rempt
boud at valdyas.org
Thu Jul 8 21:03:25 CEST 2004
Dear people,
I'm off for a week or two, wandering about the Thuringer Wald. I have packed
my powerbook, so I might do some work on Krita, but I don't give promises.
There's no earthly reason for anyone to stop working just because I'm not
here: we're having a great momentum right now. I would dearly love to find a
pixel iterator in CVS when I come back :-).
And that's only the tip of the ice-berg, because here's the revised TODO for
version 1.0 -- I've added people's names to features I know they're working
on (I'll detail what I'm working on and the issues I'm having in another post
-- I won't be able to fix & finish everything tonight :-):
Krita TODO
This it the TODO list for the first release of Krita, which I hope we
will be able to make in September or October. This release will be limited
to 8-bit per channel and one, or at most two working color models (RGBA
and CMYK). (XXX: bitmap and grayscale, too? I don't think there's any
urgency for indexed images like gifs.)
The very first thing that's needed to at least enable me to use Krita
to maintain the Krita screenshots page is screenshot and scale :-).
Items with a hash have work started on them.
Core
* Discontinuous selections (A byte-map mask for a whole image) (#Boudewijn)
* Channels
* Histogram computations (#Boudewijn)
* Adjustment layers (Layers that dynamically apply a filter to
the layer they are linked to, these do not store actual
image date, except for an occasional mask)
* Mask layers
* Loading and saving of selections
* Painting of gradients
* loading Gimp gradients
* Fill with pattern (#Bart)
* Non-rectangular fill (#Bart)
* Load/save configuration of everything user-settable.
* Add filtering with image kernels (3 * 3 blocks of pixels)
* Scaling of images (#Boudewijn, Bart)
* Fix composite ops (nick from the code gwenview nicked for
the xcf import)
* Make toolbox look like Karbon's toolbox, but follow the
layout of photoshop's toolbox for minimum confusability.
* Rework iterators to allow iterating over pixels (#Cyrillle, Casper)
* Auto-extending layers (#Casper)
* Code cleanup (make naming conformant to Qt) (#Dirk)
User Interface
* Allow choice between crosshair-cursor, brush-shape outline cursor
and iconic cursor.
* All dialogs ui-fied (#Boudewijn, Sven, Casper)
* Tabs in dockers drag-and-droppable (vector of docker
windows, create new docker if tab dropped outside existing
docker window)
* Show/Hide rulers
* Implement the following dialogs / widgets:
- Select by color range (#Boudewijn)
- Variations (#Boudewijn)
- Transform (#Boudewijn)
- Gradient (nick from Scribus?)
- Histogram (#Boudewijn)
- Modify curves (nick from Perico)
* Add history docker
* Add auto-scroll to canvas while painting
* Full-screen mode (#Boudewijn -- this should work, but it doesn't. Don't
know
why :-(.)
* Add previews to all relevant dialogs. (XXX: let preview work
on rendered QImage, or on scaled image?)(#Bart)
* Allow an active tool for every pointer present in X. (#Adrian -- no
support yet for Wacom tablets that have more than one stylus)
* File/Open should list all image types Krita can handle, and simply
import non-native images, instead of forcing the user to use the
import
image menu item.
Tools
* All tools must have a tool options tab (#Boudewijn, Adrian, Cyrille)
* Loading and saving of tool state (XXX: do we really want this? It is
horribly confusing in the Gimp)
* Implement the following tools:
- Elliptical selection (#Boudewijn)
- Crop
- Freehand selection (#Boudewijn)
- Polygonal selection (#Boudewijn)
- Continguous selection (magic wand) (#Boudewijn)
- pen(cil) tool (same as brush, but not anti-aliased) (#Boudewijn,
done, except there's still a little ant-aliasing
present, perhaps
dependent on the brush).
- fix airbrush tool (add rate option, add increase
of brush size if kept in one place)
- poly-line tool
- rectangle tool (#Clarence, still some work to with opacity and so on)
- ellipse too (#Clarence, still some work to with opacity and so on)l
- polygon tool
- color changer, smudge tool,sharpen tool, blur
tool, dodge tool, burn tool, sponge tool (These
last are perhaps more generally: painting with
filters tool)
- stamp tool (paint with patttern/image selection) (#Cyrille)
- Text tool
- Measure tool
- Pan tool (hand)
- Gradient tool
* Pressure sensivitize all relevant tools (e.g. line tool)
* XXX Make tools plugins? (#Boudewijn)
Plugins
* As many filters as possible :-)
* Fix filters to use current image, instead of first image in
the document.
* Make tools and color strategy plugins into ktrader managed
objects.
* Rename all plugins to have a krita prefix.
* Move all color strategies and tools to plugins. (#Boudewijn)
That's more or less all for version 1,0; afterwards I propose to move to:
Core
* Add bit-depth independence
* Completely hide data storage backend from the code behind
iterators.
* Add color models for LAB etc.
* Make pipe brushes pay attention to parasites
User interface
* Add action (macro) docker
* Add navigation/zoom docker
* Add scriptability
* Add third cursor mode: outline of current brush
* Rethink document model (perhaps add dynamic links between images)
Tools
* Implement path tools
* Calligraphic pen tool
* Sumi-e brush tool
* Natural media tools (chalk, ink, oil, watercolour -- fun!)
A much shorter list, much harder TODO's :-).
--
Boudewijn Rempt | http://www.valdyas.org/fading/index.cgi
More information about the kimageshop
mailing list