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 f3731c9c282483632301f50c11b1083e09106241 (which
fixed 065ad4f1dca9404e8f66c6a6224dad918e57807c). 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.
We've changed the way the "recover files" option works:
* Now it's an option that is always available (so we can open files
even from sessions that were correctly closed in the past)
* We can open sessions from other Aseprite versions (as in a "best
effort" approach, if it works, ok, if it doesn't -> contact user
support)
This generated a lot of controversy. The new center ((w-1)/2
, (h-1)/2) was useful for scripts, but not too useful for right-handed
users that prefer the most bigger part of even-sized brushes to be in
the top-left edge (instead of bottom-right edge which was the new
behavior).
With this patch we revert the changes, and we'll see if we can add a
new option to change the default brush center which might be useful
for left-handed users.
The "Repeat Last Export" command needs to copy DocPref to params, even
when the UI not used (also we must copy the DocPref to the params only
if sprite sheet type is not defined, which means that a script didn't
specify it).
From time to time the app::BackupObserver::backgroundThread() will use
ui::execute_from_ui_thread() to show/hide the backup notification icon
in the StatusBar (see SwitchBackupIcon class). This
ui::execute_from_ui_thread() function enqueues a ui::FunctionMessage
calling the Manager::enqueueMessage(). The issue here is that
enqueueMessage() uses ui::is_ui_thread() to check if the thread that
wants to enqueue the message is the UI thread or other thread, and
depending on this decission the message will be directly added to
msg_queue or enqueued into concurrent_msg_queue.
The issue was that ui::is_ui_thread() was not working correctly on
Windows because GetCurrentThread() is not useful to check the current
thread with a previous call of GetCurrentThread() from other
thread (the function always return the same value, a special generic
value that identifies the current thread whatever it is).