Age | Commit message (Collapse) | Author |
|
- minf, maxf, mini, maxi --> min_ff, max_ff, min_ii, max_ii
|
|
crash caused by own commit r50969, the fix exposed a crash in an area of code that must have never been used before.
|
|
- movieclip unlink didn't clear node ID pointers from the scene (leaving dangling pointers).
- mask datablock unlink was clearning references from scene nodes twice.
|
|
C with gcc.
helps for finding unused functions and making functions static, also did some minor code cleanup.
|
|
- freeing a mask from RNA BKE_libblock_free() twice on the mask.
- loading a new blend file would only free the mask and not unlink it from nodes - it would access freed memory.
|
|
|
|
[Even | Smooth]
- Even preserves thickness but can give unsightly loops
- Smooth gives nicer shape but can give unsightly feather/spline mismatch for 'S' shapes created by beziers.
This is an example where smooth works much nicer.
http://www.graphicall.org/ftp/ideasman42/mask_compare.png
|
|
some mask evaluation funcs into mask_evaluate.c
|
|
|
|
feather on overlapping masks when one subtracts from another.
|
|
only drawing on one side of an unfilled spline.
|
|
feathered masks.
now do intersection checks for both sides of the feather.
|
|
of problems with library linking.
|
|
Useful in cases when masking stuff like self-intersecting
ropes. This could probably be smarter option, but can't
currently think about robust approach here.
|
|
Enable self-intersection check for preview. In own tests average
time for this operation on mango files was ~0.0015sec, and it was
like 20 splines max which still gives pretty smooth performance
on my core quad machine.
Would think let's check how it works for now, if it'll give some
issues here, would just avoid tessellation on every redraw by
storing tessellation in some cache (probably in mask user).
Another change is related on a way which loop to collapse.
Changed length check with AABB size check. A bit slower but
should be a bit more predictable.
|
|
|
|
double promotions.
|
|
- resolution could become so high that it would wrap around to a negative number, now check for small numbers before doing float division.
- resolution was being calculated in some cases when it already met the clamp value - now this is skipped.
|
|
- use Alt to modify all mask feather at once while dragging.
- copying a multi-user mask from the interface works now.
- show masks when UV editing isnt used, rather then checking editmode (would give some odd/annoying image space header).
- add a fake mask user by default.
- moving points with LMB drag no longer selects them.
|
|
|
|
from Troy Sobotka (sobotka)
This gives nicer blending then 'ADD', setting as default for new masks.
|
|
when adding feather points very close together.
|
|
Used in mask parenting stuff.
|
|
|
|
|
|
image viewer should be generally usable now though still some TODO's left.
|
|
|
|
|
|
--
svn merge -r49075:49076 -r49086:49087 ^/branches/soc-2011-tomato
|
|
|
|
It was wrongly calculated bucket number per side in cases when some
of segments is filling the whole bounding box across some of dimension.
Solved by limiting buckets at least to 1 in such cases.
|
|
Made some minor optimization such as:
- Avoid using "%" operation in loops, replace with a check
for index "overflow".
- Use pre-computed values for scaling feather coordinates
to 0 .. 1 space.
This allowed to reach couple of milliseconds of boost.
Another change is to use higher number of buckets (up to 512).
This doesn't took significantly more memory (like uses only 10MB
of memory for average splines) and allows to have 30-50x boost
for average splines.
Use dynamically calculated number of buckets for this, to be
sure segments would fit two buckets.
Also fixed intersection detection in some cases when edge is
shared between two buckets -- it is possible that such edge
would cross third bucket and intersect edge from there.
|
|
It was an issue in new feather self-intersection test code.
|
|
|
|
Real fix would be to find a point which is definitely now on loop
to be collapsed, but that's for a bit later. This commit should
remove possible stoppers.
|
|
|
|
This implements simple function which collapses internal loops
caused by self-intersections into a singularity.
This loops can't be removed because rasterizer expects points
of feather be aligned with points from spline itself.
|
|
|
|
|
|
mostly functional but disabled by default (still a little wip).
|
|
|
|
functions)
|
|
being developed. Also adds a bit more mask tiling code.
|
|
groundwork code to support tiles's pixel processor
|
|
This creates a list of splines to be rasterized in nitExecution which
is being called from main thread. This should resolve possible threading
issues discovered in tomato branch.
|
|
|
|
key data.
useful if you add many keys to one part of a curve, then later want to key another part - but dont want to continuously make the same corrections.
|
|
masks its useful to be able to disable.
also rename RNA to 'use_antialiasing'
|
|
|
|
return valid marker. If not -- let blender crash, because that means
something went really bad and silencing this isn't good idea.
Also made mask parenting to tracking data aware of clip's start frame.
|