# Release notes/0.91

## Inkscape 0.49

(not released yet - AnnouncePlanning049)

## Release highlights

• Cairo rendering for display and PNG export
• OpenMP multithreading for all filters

## Rendering and performance

Inkscape 0.49 includes a new renderer based on the Cairo library. This work was done during Google Summer of Code 2010 and 2011 projects.

• Improved performance. The new renderer is significantly faster on most drawings. Renderings of the most complex objects are automatically cached to improve responsiveness during editing.
• OpenMP multithreading for filters. Filters use all available processor cores for computation. This results in substantial speedups when editing drawings containing large filtered objects on multi-core systems.
• Substantial memory savings. Inkscape now uses less memory when opening complex drawings, in some cases using only 25% of the memory used by Inkscape 0.48. Larger files can now be opened.
• Responsiveness improvements. The rendering of the SVG drawing is now cached. This results in massive improvements in responsiveness of path highlights, object selection / deselection, and path editing in delayed update mode.
• Rendering bug fixes. Most of the rendering glitches in our bug tracker are no longer present in Inkscape 0.49. The following things now render correctly:
• Pattern fills (no more gaps between tiles, regardless of transformation)
• Stroke of transformed objects in patterns
• Patterns containing clipped objects
• Nested clipping paths
• Masked and clipped objects with large masks / clipping paths in Outline view
• Paths with wide strokes and long miters

## Tools

### Selector tool

It is now easier to select items which are not at the top of the Z-order: use Alt+mouse wheel scroll to cycle through all items that are stacked on top of each other at the location of the mouse pointer (use Shift+Alt+mouse wheel scroll to add to the existing selection). At present, groups are not honoured, i.e., only individual items within groups are considered.

### Align and distribute dialog

New "Exchange position of selected objects" feature. It adds three buttons in the Align and Distribute dialog (rearrange group) that exchange the positions of the selected objects: 1. according to the selection order, 2. according to the Z-order, and 3. clockwise.

### Live Path Effects

#### PowerStroke

Here a list of the current state; note that this is very much work in progress and anything can change. I think this is the most efficient place of keeping track how the powerstroke LPE works.

• stroke knots are purple diamonds
• when first applied, 3 stroke knots are added one at start, one at end, one somewhere in the middle along the path.
• adding nodes: Ctrl+click purple knot, unselect object, reselect it.
• deleting nodes: Ctrl+Alt+click purple knot, unselect object, reselect it.
• "sort points" reorders the stroke knots according to where they lie along the path (where they are closest to the path), instead of keeping them in original order.

#### Clone original

The Clone original LPE ignores the path data of the path it has been applied to; instead, it copies the original-d path data, i.e. the path data before LPE calculation, from the path linked to by the Linked path parameter. The Clone original LPE is made to be used in conjunction with powerstroke. Powerstroke creates a path with a variable stroke, but this path can then not be filled (because the fill is used as the stroke). To fill a powerstroked path, one must create a second path (dummy path), apply the Clone original LPE and link it to the powerstroked path. Because this second path clones the original path data before the Powerstroke LPE, it can be used to fill the powerstroked path.

To quickly create a dummy path and apply this effect, one can select the path to 'clone' and click the menu item Edit > Clone > Clone original path (LPE).


### Filters

The new Custom predefined filters allow users to create predefined filters with custom parameters (http://wiki.inkscape.org/wiki/index.php/SpecCustomPredefinedFilters).

## Import/Export

• New Flash XML Graphics (FXG) export format.
• New Synfig Animation Studio (SIF) export format.
• XAML export improvements.
• Compressed SVG and media export extension improvements. New options: set an image directory in the zip file, and add a text file that lists the fonts used in the SVG document.

### Gimp XCF improvements

• The "Save Background" option allows users to choose if the page background is saved with each Gimp layer.
• The exported layers now use the label attribute or, if not set, the id attribute.
• New help tab.
• Some bugs and warnings fixed.

### PDF/EPS/PS + LaTeX

• Added the possibility of scaling the image. The 'calc' package must be included in the preamble. Then the image can be scaled by defining '\svgscale' instead of '\svgwidth'.
• The font shape is now also exported. '\textit{}' for italic text, '\textbf{}' for bold text, and '\textsl{}' (slanted) for oblique text. It is important to note that Arial has an oblique font shape and not italic, so the result in LaTeX will be slanted instead of italic. It is better to use another font in Inkscape when you want true italics.

## Extensions

### New

• The new guillotine extension is used for exporting png slices from a drawing. The slice rectangles are defined by adding horizontal and vertical guides within the canvas boundary, the canvas boundary serves as the outside of the sliced area.
• The new G-code tools extension converts paths to G-code (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters.
• New QR code generator.
• New isometric grid generator.
• New bitmap crop extension (Extensions>Bitmaps>Crop).
• The new Extract text extension output the text elements of the document in a chosen order.

### Improvements

• Number nodes. New parameters allowing users to choose the starting dot number and the numbering step between two nodes.
• Color Markers to Match Stroke extension improvements. The markers can now inherit the fill and stroke colors and alpha channels from the object, or be customized with color selectors in a separate tab.
• Optional sliders added on float and int extension parameters (full and minimal modes).
• Extensions parameters values (but not attributes!) can now be contextualized for translation (with msgctxt).

## User interface

• in many more dialogs, the interface elements are accessible through the keyboard with ALT+key.
• ability to set the canvas background color without exporting it.

Text and Font, Fill and Stroke and Check Spelling dialogs added to the text object context menu (right click).

### Simple calculations in spinboxes

In most spinboxes (a spinbox is an entry field with up and down "spinbuttons" next to it) you can now write simple calculations. For example: "2 * 3", "50 + 100", or "((12 + 34) * (5 + 5) - 2) / 2". Moreover, you can use units in entering values, like "2 + 2 cm". The result will be converted to the selected unit for the particular entry.

## Translations

• The Keyboard and mouse reference (inkscape-docs project) and color palettes' labels are now translatable.
• New tutorial translations in Galician and Greek.
• New man pages in Chinese (zh_TW) Greek (el), Japanese (ja) and Slovak (sk), and updated French translation. [Galician (gl) and Polish (pl) in progress]
• Man pages now use PO files for translation (inkscape-docs project).

## SVG Support

• The clip-rule property is now supported. No UI to set it exists at the moment, other than the XML editor.

## Snapping

• The snapping preferences and the snap toolbar have been reworked, both in the underlying code as well as in the GUI. This should make the snapping preferences easier to understand, easier to maintain, and make it easier to find and fix any remaining snapping bugs
• Intersections of paths and guides can now be snapped to too
• Snapping has been implemented fully for transforming selections of multiple nodes in the node tool
• Snapping to text anchors and baselines has been implemented properly
• If one has chosen for only snapping the snap source closest to the mouse pointer, then the tab key can be used to cycle to the next closest snap source

## Notable bug fixes

• Relative image paths are no longer stored as absolute (regression introduced with 0.47).
• Many rendering glitches were fixed.
• The rendering of the stroke on transformed objects now matches the SVG specification.
• Values entered in the numeric input boxes for the selector tool (X/Y/width/height) are much more accurately applied.