===========================
Implemented basic structures and operators for markers manipulaiton.
Markers contains:
- Position of marker at frame in unified 0..1 coordinates
- Relative positions of left-bottom and right-top corners of pattern area
- Relative positions of left-bottom and right-top corners of search area
- Selection flags
New operators:
- Create new maerker. It's a modal operator which creates markers
at mouse position when LMB is clicking.
- Delete selected markers.
- Select marker using RMB. Some parts of marker (point, patter, search)
could be deselected.
- Select markers using rectangular selection.
- Select markers using circle selection.
- Marker translation (G-key).
- Marker scaling (S-key).
UI changes:
- Added mode to space clip. Currently supported modes are:
* View mode
* Tracking mode
This was intended to separate different categories of tools,
so interface shouldn't be overheaded with plenty of tools
which aren't actually using in the same time.
- Created new panel when actiev tool is 'MARKER' and there's
active marker where positions could be adjusted in pixel space.
Internal changes:
- Splitted DNA/RNA movieclip files to make separation of
tracking data and movie data more clear. This could be useful
in the future when we'll want to support multiplie moies
for single camera tracking (to make tracking more accurate).
- Added new file in blenkernel, where all tracking-related function
would be stored. Not very much function here at this moment,
but in the future all stuff related on converting DNA to external
tracking data would be stored here.
blender_add_lib now takes a separate include argument to suppress warnings in system includes (mostly ffmpeg & python).
also only build wm_apple.c on apple+carbon configuration.
===========================
- Initial implementaiton of new ID named MovieClip.
Currently it has plactically the same functionality as
images, but this functionality would be widen in nearest future.
- Initial implementation of SpaceClip.
This space is supposed to be used for acting with MovieClips
(opening, playbacking, math-moving interaction and so on).
Currently you could open image sequence/movie file here, pan/zoom,
use a playback here.
I've added cache visualizer to this space, but it's currently more
a developer's feature to see how cache system works, but it could
be adopted for further artists' usage (something like cache visuzlizer
for simulations).
- Added new theme area for Space Clip.
No special colors were defined here yet.
- Implementation of basic cache system for movies.
This cache system is very familiar with sequence cache system,
but it supposed to be more portable: at least cache keys aren't
limited with sequence-based data and current seqcache could
became an interface between sequencer and moviecache without
much logic (only logic related on keys handling would be necessary
here).
Implemented basic limitors (ab\mount of cached imbuf's), so it'll
be a bit more difficult to go out of memory when playing long
animations in Image Editor (this cache system could be used for
images too, in the future).
- Very basic tools implementation -- only sceletion added, no
real tool implemented (only camera focal length added to the UI
which hasn't got real affect on anything).
Assorted notes:
- Not sure about best behaviour for Unlink clip button: should
it be imageeditor-like (with de-referencing only) or text-editor
like (with removing datablock from file).
- Also not sure if tools/properties should be splitted into
different areas or it'll be better to have tools and settings
for this tool/item/etc in the same area (tools at the top,
properties are under them).
Code for properties area is '#if 0'-ed.
- Sound isn't supported during playback in movie clip.
Some reorg of modules/pages, start makesdna and makesrna.
In many places license block needs to be changed to not start with /**, because otherwise documentation will go weird.
This comes in handy for testing importers against 100's of files, quickly showing breakages and easier to setup then unit tests.
Example usage:
blender.bin --background --python source/tests/batch_import.py -- \
--operator="bpy.ops.import_scene.obj" \
--path="/data/testfiles/obj" \
--match="*.obj" \
--start=0 --end=50 \
--save_path="/tmp/test"
Also found my name was spelt wrong in some places :)
DNA reconstruct now terminates strings, when the new string
in a file is longer than in current definition. This will
enable a safer ID and other name lengthening, keeping at
least some forward compitability.
- set_frame() --> frame_set()
- set_context_pointer() --> context_pointer_set()
material adding works for curves and metaballs, new function to remove materials.
materials.link() didnt well fit how this is used elsewhere
- order matters
- it can be linked more than once.
- remove(material), isnt that useful since you need to manage indicies.
... use list style functions instead. materials.append(mat) / materials.pop(index)
struct members "gravity" and "[3]". Now it throws an error in this case,
safer than trying to fix the parsing code. Also patches the old DNA of
ClothSimSettings which had this problem .. very ugly code.
Fixes#20330: cloth sim settings getting corrupted when read from 2.49.
float (*disps)[3];
It still isn't advised to use this syntax, best to just use regular pointers,
however at least it is working better now. Previously this would lead to the
rest of the header file to be included right in the SDNA. If you look into an
existing .B25.blend file with a text editor, you can see the second half of
DNA_meshdata_types.h...
replaces another so it can do updates (e.g. dopesheet editor can
sync channel selection).
Also coded a simple optimization for allocating small objects,
based on mempools. It's #ifdef'd out, you can enabled it by
defining OPTIMIZE_SMALL_BLOCKS (e.g. adding -DDOPTIMIZE_SMALL_BLOCKS to
your compiler flags).
We suffer from a great deal of performance loss from the system allocator
(vgroups, ghash, edgehash, the singly-linked list implementation in blenlib,
editmesh, and likely a great many areas I'm forgetting), and this is the
common solution for handling the many-small-objects problem. It's not
really production-ready yet (it's long-term memory consequencers need to
be profiled first, and the implementation tweaked as necassary), but for
people on systems with slow system allocators it's worth trying.
Note that since this creates a guardedalloc<->blenlib link, the build systems
need to be updated accordingly (I've already done this for scons, though I'm
not sure if the player builds).