| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
| |
SPCanvas::paintXRayBuffer) and other improvements to XRay
|
| | |
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
De-selection were slow for large path sets because disposal of SPCanvasItems needed to perform linear search through SPCanvasGroup::items linked list for every disposed item separately, meaning O(N^2) operation complexity. For large path sets this became excessively slow.
To speed up the disposal operation, changed SPCanvasGroup::items from std::list to boost::intrusive::list that allows getting a linked list position iterator directly from SPCanvasItem pointer in constant time. This reduces the disposal operation complexity from O(N^2) to O(N).
Testing with a large path set consisting of >100k items, de-selection became tens of times faster.
Signed-off-by: Olli Parviainen <oparviai@iki.fi>
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
- add license headers to everything
- convert a few files from public domain or LGPL2.1+ to GPL2+
- some archaeology to clarify which files are from which library
|
| | |
|
| |\ |
|
| | | |
|
| |/
|
|
| |
Allows panning / zooming / rotating the canvas smoothly.
|
| |
|
|
|
| |
This makes it clearer whether an integer or a boolean has to be passed
in this specific call.
|
| |
|
|
|
| |
This replaces all NULL or 0 with nullptr when assigned to or returned as
a pointer.
|
| |
|
|
| |
This reverts commit bba4ff6672494fab59286b50f6c645ad62a47e60.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This shortcut is possible as there are no duplicate items in
SPCanvasGroup. It reverts to the behavior before
ab7cc89c4f9f938575e777530c31312cde116208
which introduced a severe performance regression when deselecting
paths with many nodes while the node tool is active.
Fixed bugs:
- https://bugs.launchpad.net/inkscape/+bug/1652100
- https://bugs.launchpad.net/inkscape/+bug/1745763
|
| |
|
|
|
| |
Avoids reliance on cairo_surface_get_device_scale.
Also necessary for filters.
|
| | |
|
| | |
|
| |
|
|
|
| |
Rendering seems to work but has not been fully tested.
Editting does not work.
|
| |
|
|
| |
Increase default and maximum values of tile multiplier.
|
| |
|
|
|
|
| |
Selecting template in "New from template" dialog, causes Inkscape to crash because the method SPCanvas::paintSingleBuffer is called before _backing_store is initialized.
Checking _backing_store value and returning if null, prebent crash.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this commit, this function creates a new cairo image surface,
draws the tile that it was told to redraw to this buffer and then uses
cairo to copy the drawn data at the right position inside of
_backing_store. Thus, the drawn data was copied around at least once.
This commit changes the code so that it draws directly to
_backing_store: We get the information from _backing_store and then
create a new image surface from this that covers just the part that we
should redraw. Thus, one copy of the data is avoided.
Signed-off-by: Uli Schlachter <psychon@znc.in>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cairo 1.12 adds the function cairo_surface_create_similar_image(). It
works just like cairo_image_surface_create() in that it creates an image
surface. However, when the passed-in surface is a cairo-xlib surface,
the data of the image surface will be allocated in a shared memory
segment. This makes it cheaper to have the X11 server access the surface
since it does not need to be uploaded.
To make use of this, a new _surface_for_similar member is added. This
member is set to a (useless) surface in handle_draw(). On Linux this
creates a cairo-xlib surface, so that _backing_store is latter allocated
in a shared memory segment.
Signed-off-by: Uli Schlachter <psychon@znc.in>
|
| |
|
|
| |
Signed-off-by: Uli Schlachter <psychon@znc.in>
|
| |
|
|
|
|
| |
A larger tile size vastly speeds up rendering for drawings with heavy filter use
by reducing the need to recalculate filter effects that cross multiple tiles.
(bzr r15614)
|