What is The present: Krita 1.6 The future: Krita 2

Krita: Present and Future A look at some of Krita’s more recent developments, both in the present 1.6 branch and in the new 2.0 branch

Bart Coppens

FOSDEM 2007

Bart Coppens Krita: Present and Future What is Krita The present: Krita 1.6 The future: Krita 2

What is Krita

The present: Krita 1.6 The short road since the previous release The feature thaw of the 1.6 series

The future: Krita 2 Qt4 and KDE4 KOffice2 technologies Krita design revisited

Bart Coppens Krita: Present and Future What is Krita The present: Krita 1.6 The future: Krita 2 What is Krita

I The KOffice painting and image editing application

I Started in 1999

I Most recent release: Krita 1.6.2 on February 21, 2006

I In Swedish, Krita means ‘chalk’ or ‘crayon’.

I http://www.koffice.org/krita/

Bart Coppens Krita: Present and Future What is Krita The short road since the previous release The present: Krita 1.6 The feature thaw of the 1.6 series The future: Krita 2 What happened in the last year?

We released 2 major versions

I Release of KOffice 1.5.0 on April 11, 2006

I Release of KOffice 1.6.0 on October 16, 2006 Some of the new features in Krita 1.6.0 include

I Layer masks

I Perspective grid → perspective cloning, manipulation

I Curves: magnetic outline, b´ezier

I Improvements in loading and handling huge files

I New filters (lens correction, better blur, ...)

I Tablet pressure curve editing

Bart Coppens Krita: Present and Future What is Krita The short road since the previous release The present: Krita 1.6 The feature thaw of the 1.6 series The future: Krita 2 Layer masks

I Merge parts of two layers without destroying the original contents

I Masks out a part of the regular composite operation

I Paint on it like a regular greyscale layer, or like on a selection

I Can prevent you from ‘drawing outside the border’ (create from selection)

Bart Coppens Krita: Present and Future What is Krita The short road since the previous release The present: Krita 1.6 The feature thaw of the 1.6 series The future: Krita 2 Perspective cloning

I Regular cloning: does not keep into account perspective changes

I Perspective cloning adds a grid that visualises ‘perspective’

I Cloning is done, but the cloned part is transformed according to the perspective grid

I Unfortunately: no multiple grids can be combined (GUI would suck even more, but perhaps for Krita 2)

I A good demonstration of how it works at http://www.koffice.org/krita/videos.php

Bart Coppens Krita: Present and Future What is Krita The short road since the previous release The present: Krita 1.6 The feature thaw of the 1.6 series The future: Krita 2 Curves

I Developed during last summer’s Google Summer of Code

I Has a added generic framework for drawing curves in Krita

I First application: B´ezier curves

I Second application: Magnetic outline

Bart Coppens Krita: Present and Future What is Krita The short road since the previous release The present: Krita 1.6 The feature thaw of the 1.6 series The future: Krita 2 Curves: Magnetic Outline

I Create a curve following your mouse

I Tries to follow edges in the neighbourhood of the mouse

I Inserts nodes at regular intervals near the mouse position, tries to detect the best line between two nodes

I The more contrastful and sharply outlined the area, the better the result

I Hard-to-find feature: Press Ctrl for ‘Manual mode’ (move nodes, insert, remove)

Bart Coppens Krita: Present and Future What is Krita The short road since the previous release The present: Krita 1.6 The feature thaw of the 1.6 series The future: Krita 2 The feature thaw of the 1.6 series

I What is a feature thaw? Allowing new features to be added to a stable branch, wrongly spelled strings can be fixed.

I We unfroze for 1.6.1, 1.6.2 and maybe for the upcoming 1.6.3

I Allows for long-lived branches to be more alive than otherwise.

Bart Coppens Krita: Present and Future What is Krita The short road since the previous release The present: Krita 1.6 The feature thaw of the 1.6 series The future: Krita 2 Levels in 1.6.1

I Began as a wishlist entry in the bugs : http://bugs.kde.org/ show bug.cgi?id=129789

I Someone claimed it would be easy to implement this, we called his bluff

I Related to Brightness/Contrast

Bart Coppens Krita: Present and Future What is Krita The short road since the previous release The present: Krita 1.6 The feature thaw of the 1.6 series The future: Krita 2 Smudge in 1.6.2

I Implemented after user request

I Very easy to actually write that code

I ‘Simple Smudge tutorial’. First part at http://www.kdedevelopers.org/node/2594

Bart Coppens Krita: Present and Future What is Krita Qt4 and KDE4 The present: Krita 1.6 KOffice2 technologies The future: Krita 2 Krita design revisited KDE4

Qt4 and KDE4 will offer some nice new technologies that KOffice2 will be able to use.

I Qt4’s better threading, KDE4’s ThreadWeaver

I KDE4’s : Playing of audio and video objects in KPresenter KOffice also moved some code to KDELibs: , so that all KDE4 applications will be able to use this.

Bart Coppens Krita: Present and Future What is Krita Qt4 and KDE4 The present: Krita 1.6 KOffice2 technologies The future: Krita 2 Krita design revisited

I Flake Shapes: everything you see is a shape

I KWord → everything is a Flake shape, even pages

I Krita → embedded Flake shapes (vector graphics, text)

I KPresenter → everything is a Flake shape

I Lightweight embeddability, compared to a full-fledged KPart like KOffice 1.x

Bart Coppens Krita: Present and Future What is Krita Qt4 and KDE4 The present: Krita 1.6 KOffice2 technologies The future: Krita 2 Krita design revisited Pigment

The KOffice color management library. Was originally Krita’s libkritacolor.

I Offers some basic colorspaces hardcoded: Alpha, L*a*b*

I KOffice-wide plugins for the common colorspaces: RGB, CMYK

I Krita-specific plugins for natural media, HDR

Bart Coppens Krita: Present and Future What is Krita Qt4 and KDE4 The present: Krita 1.6 KOffice2 technologies The future: Krita 2 Krita design revisited Resolution

I Often requested feature

I The Flake redesign was the ideal moment for adding working resolution to Krita.

I ‘20cm + 15mm’?

Bart Coppens Krita: Present and Future What is Krita Qt4 and KDE4 The present: Krita 1.6 KOffice2 technologies The future: Krita 2 Krita design revisited Layers: masks, selections and filters - The Present

Our current 1.5+ design needs some reworking:

I Per-layer selections, wanted or not?

I Filter layers work on the entire stack below them

I Masks are very static, badly integrated in the layerbox

Bart Coppens Krita: Present and Future What is Krita Qt4 and KDE4 The present: Krita 1.6 KOffice2 technologies The future: Krita 2 Krita design revisited Layers: masks, selections and filters - The Future?

There are proposals for 2.0 that could fix some of this:

I Selections: ‘controversial’ issue. Selections as a special sub-layer? Global selection?

I Let normal layers have filters as a per-layer stack of filters

I Masks could be just some layer-filter → easy to manipulate, equal integration with filters

Bart Coppens Krita: Present and Future What is Krita Qt4 and KDE4 The present: Krita 1.6 KOffice2 technologies The future: Krita 2 Krita design revisited OpenRaster

I Better cross-application exchange of raster data for the free software world (.kra, .xcf are too specific)

I A possible solution: ‘OpenRaster’ (http://create.freedesktop.org/wiki/index.php/ General multilayered bitmap exchange format)

I Very experimental stage at the moment

I Support for the GIMP might be delivered partly by GEGL (http://gegl.org/)

Bart Coppens Krita: Present and Future What is Krita Qt4 and KDE4 The present: Krita 1.6 KOffice2 technologies The future: Krita 2 Krita design revisited Dynamic brush

I Proposed enhancement of the current ‘brush’ tool

I Add different actions to the tablet input

I Implemented as a separate paint operation

Bart Coppens Krita: Present and Future What is Krita Qt4 and KDE4 The present: Krita 1.6 KOffice2 technologies The future: Krita 2 Krita design revisited So where can you help?

You don’t need to be able to code:

I Report bugs (also for alpha and beta versions!)

I Write documentation I Report about usability issues (developers often don’t see the problems with their own applications anymore)

I Hard to discover features I Obvious actions not used for a feature I Contra-intuitive GUI design

I Keep bugging us if we don’t fix them ;-)

Bart Coppens Krita: Present and Future What is Krita Qt4 and KDE4 The present: Krita 1.6 KOffice2 technologies The future: Krita 2 Krita design revisited Questions?

Bart Coppens Krita: Present and Future