When we were viewing an huge sprite, a temporal buffer (os::Surface*)
used to render it would increase its size to the size of the
canvas. After that, whatever other sprite that we saw (even for the
smallest one) we were unnecessary clearing the entire (huge) internal
buffer with os::Surface::clear() on each render.
This problem was visible only using the new render engine.
* Fixed Jumble tool behavior: When brush is circular, all the brush
bounds (square) where randomized. And at the end all the pixels were
re-randomized.
* Solved the double-point in IntertwineAsLines from
62802cfbdf in an alternative way: Just
don't draw the first point when we join consecutive 2 points
strokes (the issue here is that freehand controller generates
strokes of two points, so every call on joinStroke() of
IntertwineAsLines has only two points, we have to check if we're
drawing the first stroke, and if we are drawing the second 2 points
stroke, we skip the first pixel to avoid drawing it two times,
solved with IntertwineAsLines::m_firstStroke).
The purpose of this fix is draw correctly the
first stroke point as result of a joinStroke() execution
from class IntertwineAsLines when following
conditions are meet:
- pencil tool
- pixel perfect OFF,
- custom brush
- try to draw a line of 2 pixel.
The original issue was detected by the tests functions
based in useTool function on Lua scripts.
The issue was presented in tool.lua.
The purpose of this fix is that createUnion handles situations
which union results in contiguous segment collapses.
Added some treatments of eventual illogical inputs arguments like:
- pairs.size() < ints
- ints is 1
- ints is a odd number
Fixed treatment of some union cases like:
- x == pairs[i+1] + 1
- x == pairs[i+1]
Simplification of some vector::insert execution.
Added a bool return type to know if the function was
successfully executed when is called (used in tests).
We change the “static void createUnion(…)” to
“bool algorithm::createUnion(…)” to conditioning it to
future tests.
Added some comments modifications.
Added tests to polygon_tests.cpp
Change the way we calculate the first-execution of the
program (without depending on the UUID of the updater, e.g. because
the server didn't return an UUID, etc.).
* Change the Home status bar text
* Show the full path of the document (if the user preferences allow
us) when we move the mouse over the document tab
* We weren't calling onWorkspaceViewSelected() from
WorkspacePanel::setActiveView()
Added special treatment in cases of horizontal lines which input
argument to createUnion is “ints == 0”. Conditionals were sorted, it
was being generate extra scan segment pair next to pair in analysis,
instead of an augmentation of it.
The purpose of this fix is to correct the outline preview of the
Contour Tool when:
- is used with custom brush,
- with alpha content,
- and pixel perfect mode OFF.
Before this fix, the outline was being printed more than twice in some
places (only noticed with alpha content), giving a bad appearance.
We have to join the BackupObserver thread before we delete all docs,
if not we could use a deleted doc when deleting/joining the backup
observer thread.
Regression introduced in f3731c9c28 (which
fixed 065ad4f1dc). I think this is the
final version of the blur tool: doesn't make pixels more darker nor
transparent.
Also some extra improvements like:
* Wake up every X seconds/minutes to check if we have to save some
backup data (instead of each one second)
* Use a condition variable to wakeup when we quit the application
The purpose of this fix is to match polygon preview with the polygon
result when using Polygon Tool (before this fix, we were been see few
pixels differences on the shape closing segment). To achieve this, the
way how we draw the entire joinStroke has to match how polygon
function interpolate the final stroke which closes the shape. So, the
input vertices of doPointshapeLine function were swapped.
This fix is intended to create a polygon that matches with its preview
in one drawing step (needed when we want to draw with Contour or
Polygon tool with custom brushes with alpha content). Before this fix,
the polygon was being created in a first step, and then a second step
that patches the contour (over writing the Image with an extra
joinStroke execution of the entire contour).
- Added createUnion function in polygon.cpp to force drawing of the
input points in each scan line render.
- Added algo_line_continuous inside polygon function to interpolate
holes between input vertices.
- Deleted extra joinStroke execution in fillStroke function in class
IntertwineAsLines and class IntertwineAsPixelPerfect inside
intertwines.h
- Added Stroke::erase function to Stroke class. It is needed inside
IntertwineAsPixelPerfect class to get a clear m_pts (without the
extra points due to mini L shapes, due to pixel perfect process). In
fillStroke function in class IntertwineAsPixelPerfect inside
intertwiners.h, when it executed, m_pts is delivered to polygon
function instead of stroke argument in order to pass a pixel perfect
processed vector instead of stroke vector which is a raw vector of
vertices.