* Reflect changes stated in prev commit about contexts in py code.
* Add a "Plural" context, to handle cases where english does not mark plural at all (e.g. shorten labels of only one adjective). Not so happy with that, but can't see any other way to do it, for now.
* Abuse "ID_CURVE" context for all falloff curves (this should solve some confusion issues, e.g. "sharp"...).
Couple of precision issues here:
- Interpolation was rounding trunkcating colors, and because
of some precision issues value 254.999 became 254 leading
to troubles later.
Now color interpolaiton will do rounding to nearest int.
- Subtract was setting channels to something negative which
confused color management (especially negative alpha),
Now subtract effect will clamp channels to 0 from bottom
and also do some tricks to prevent small alpha which
could also confuse color management.
To complete previous commit:
New "Activate same type next/prev" operator - replaces the two not working previous ones.
This selects/activates and views the next or previous node of same type.
Shortcuts: Shift ] and Shift [
This is the first half of the commit, it's going to be reviewed further.
It also depends on other work in node drawing (to not reshuffle order on
every select/activate).
At least it works quite nice for the shortcuts shift [ and shift ]
"View selected strip(s)" now includes the active strip (which can be deselected
in cases). Less confusing this way, also because active strip is being drawn
very visible.
Issue was caused by delayed or missing image user frame
number update, which lead to image loading failure in
cases node is updating from image signal callback.
Solved in a way that file from image datablock is used
for sockets detection instead of loading image for
current frame.
The time it was printing was excluding the time spent on color and file saving.
Now it includes this too, plus it prints the time spent on color/files.
Makes quite a difference when you do sequencer conversions or grading in
terminals - time that was printed was very misleading.
For readablity of logs, also added an extra empty line after this print.
In this case edgenet_fill operator failed and it would fallback to filling as unordered vertices which was mostly fine but failed on some concave loops.
Add a new bmesh operator 'edgeloop_fill' fills in closed loops even if they don't make a valid edge-net.
Added new build option WITH_JACK_DYNLOAD for CMake and
WITH_BF_JACK_DYNLOAD for SCons, which means there'll be
no build-time linking against libjack and getting symbols
from libjack will happen runtime using dlopen and dlsym
tricks.
Alternative would be to use weak linking, but it'll require
having wrapper for preloading libjack.
This new options are disabled by default and they only
intended to be used on linux. Other platforms shall not
be using this and there shall be no functional changes
on non-linux platforms at all.
There was no good way to UV project from a camera with non-square view-border without it stretching the image (even using 'Correct Aspect').
While this isnt a bug its useful to do a UV projection without stretching the image, added 'Camera Bounds' option.
- Scopes in Sequencer were not drawing OK (drawing code assumed alpha)
- Histogram in Sequencer now uses same formula to quantify R G B as the
other histogram in Blender (per channel).
I seriously thought of dropping this, and add the same sidebar here as we
have for Image window. However, what stops me is that current code is
very optimized, and has OMP hints.
Will check instead on cleaner drawing here now.
After this revision BLI_stringdec worked incorrect
in cases there's no digits in original file name,
making head one character shorter than it should be.
Time to cover BLI with unit-tests?
Brought back old tools "Remove Gap(s)" and "Insert Gap".
It's actually one of the first tools I ever coded for it in 90ies, so useful!
* Remove Gap(s)
This checks if there's no strip at a given position, and slides all strips
together to the left, until the gap is closed.
- BackSpace key, remove gap at current frame (or first gap at right of frame)
- SHIFT+BackSpace, remove all gaps at or to right of current frame.
* Insert Gap
Shifts all strips to right of current frame with 10 frames. (Amount can be
set in Toolbar redo panel).
Project the triangle pair into 2d coords before measuring.
before/after - http://www.graphicall.org/ftp/ideasman42/beauty_fill_fix.png
note: I committed this r54403 but it caused eternal looping so I reverted for 2.66 release.
ran extensive tests and its not giving problems so re-applying this improvement.
- make it clear that navmesh visualize option only works in path mode.
- use 2 decimal places for motion-blur shutter speed (user request).
- use 'const' for some bmesh functions.
The way beauty fill was working was too fragile and prone to eternal loops,
Solution used is to is to store previous states and ensure edges don't get rotated back into those.
Also added an optimization to avoid testing the same edge rotation many times - using edge tags to only re-test edge rotations around areas that have been modified.
As those two properties do not need a custom set func, yet need recalc of strips drawing/positions in addition to usual rna_Sequencer_update() (cache invalidating), I renamed rna_Sequence_frame_change_update to do_sequence_frame_change_update, and made a new rna_Sequence_frame_change_update which is directly usable as RNA update func, and call both the strip and cache update funcs.
Thanks to Sergey for advices!
Now prefetching happens from cursor up to scene end frame
and then from cursor down to scene start frame.
Also disabled prefetching for non-unidistorted proxies
because of issues with timecodes (seek horribly fails
in some cases). This seek need to be fixed since it's
actually happens for manual timeline scrubbing as well,
but that's another story..
When trying to load file below actual sequence range
(like trying to load file for scene frame 10 when clip's
start frame is 20) first frame from file sequence is used.
Before this change first file used to be loaded for every
scene frame below start frame, which polluted memory with
unwanted data.
Now first frame would be loaded only once in this case.
- Theme color for the brush popup was not correctly coded. Now it follows menu item
style correctly, which also allows all the themes we have to give readable text.
- RMB cancel also added for slider buttons and the color picker.
In text editor, the CTRL+F find now opens property region (or keeps it) and
activates the search button for input.
That's already nice! But next step should be to do a search on exit of
the button (or while typing). That's stuff I need Campbell to help with though.
Notes:
- Probably Py api for property buttons could get an "operator=" arg?
- The warning menu "not found" should go away
- I also suggest to make "wrap" search default for new editors
Node Editor and Sequencer were not using grid theme color, but 'back'.
This commit adds versioning to copy background color to grid. I do this
without increasing sub-version, which allows to add correct drawing when
the subversion has to go up anyway for something else.
* Remove already commented "use_radiosity" flag from RNA.
* Remove some commented exceptions for old 2.4x 3D View preview region.
* Remove empty and commented function declarations from 2.4x UI times