Improved error messages presented when trying to paste keyframes.
Previously, "No keyframes to paste" would always be displayed, even if
the copy/paste buffer had some contents but couldn't be pasted if
there weren't any F-Curves selected to paste to.
Added a visitor function to simplify processing of file paths that are attached to IDs. This is used for images, and could be used for other ID types in future.
Code reviewed by ideasman_42.
- Upgrade Eigen2 library to Eigen3
- Upgrade colamd library and placed in extern/ so other libraries from extern/ can use it
NOTE: With previous version of Eigen (3.0.1) it was necessary to define
EIGEN_DONT_ALIGN_STATICALLY macro to make it compilable on windows 32bit.
After latest upgrade it seems to be unnecessary (at least when was testing libmv),
so i removed that defines which can reduce speed and lead to other problems.
Implementation of cache for general movie-related areas
such as sequencer and clip editor (in the future)
Some changes in limiter were necessary:
- Limiter counted mapped memory twice when was checking how many memory is used.
- It was using "global" memory usage not memory usage by cached elements.
It will cause big problems when there's large mesh or plenty of undo steps are
in memory nothing would be cached in sequencer.
- To solve this problem introduced "callback" to measure cached element size.
It could be not very accurate in general, but it works well for image buffers.
And if this callback isn't set old-school memory usage check would be used.
- The whole cache used to get freed when memory limit exceeded, now it'll drop only
as much elements as necessary to reduce memory usage.
Seqcache is switched to use this new cache code.
- Add *.cc files to qtcreator project as well as .cpp and .cxx
(would be needed for correct generating projects with libmv library).
- Added negate_v2 and negate_v2_v2 functions. They'll be needed for
camera tracking project.
- Fixed issue with generating proxies from 32bit images.
(generated jpg-s opened fine in blender, but were dark in osx viewer).
- Marked unused arg in indexer as UNUSED.
Several issues were discovered when was looking into this bug:
- MPEG file format didn't set needed codec settings such as frame
rate and so, Was caused by not very correct fix fix#21351.
- "Expert" codec settings stored in idprops was affected on
formats which don't actually need them causing some conflicts
in codec settings.
- Flash codec doesn't support b-frames.
Now C presets shouldn't affect on each other and flash coded wouldn't
use b-frames even when using h264 format. Should work fine for files
created from scratch. If existing files fails to render, try to
switch file format to something else and then back to needed value.
without this printing a unicode string may raise an error which is a real pain especially since script authors often forget this and print the path of a file for example on export which can make a script fail outright when writing to paths with certain encodings.