Seemed simple but actually turned out to be quite complex.
ND_MODE notifier was being misused, changed to ND_TOOLSETTINGS
Note: Although the fix itself doesn't involve this much, debugging uncovered
that listeners can't rely on notifier->swinid to be correct, since notifiers can
now be added from RNA without a region context.
- scene.render_data.frame_path(frame=num), returns the output path for rending images of video.
- scene.render_data.file_extension, readonly attribute, gives the extension ".jpg", ".mov" etc
- player support was guessing names, use the above functions to get the actual names used, accounting for #'s replacing numbers.
This works with operator properties - if you pass the name of a scene and renderlayer to
the screen.render operator, it will render that layer as a single layer re-render.
Most likely will not compile for others, I'd appreciate any build errors
and missing files reports (I can never seem to get everything committed
and all the build systems working without help).
Porting over the sculpt/multires tools was a breeze,
thanks goes to brecht for a design that didn't exclude
ngons and was easy to port.
Note that I've not tested externally-backed multires
file support yet. Also, I still need to write version
patch code for some cases.
Some notes:
* Like trunk, topological changes don't update multires right,
so e.g. subdivide will duplicate multires data on the new faces,
instead of subdividing it.
* If you set the debug value (ctrl-alt-d) to 1 it'll turn on
my experiments in speeding up sculpting on higher-res multires
meshes (but note it makes partial redraw not completely accurate).
* There's a bug where you have to go through editmode to get out
of sculpt mode, not sure if I inherited or created this myself.
- appending scenes would not append the sound and scene ID's for sequence strips
- reload button in sequence header now reloads sounds as well.
- redrawing the sequence image view didnt work while plaing (unless play was activated from that region)
- generic functions for running a callback on sequence strips recursively. seqbase_recursive_apply() and seq_recursive_apply()
- bind marker with camera was set to home key, use Ctrl+B instead.
Fix# 20043 & 20392
The issue is that OSX lib does not implement TLS (Thread Local Storage), so libgomp uses pthread functions to read/write thread specific vars.
But this implementation is currently (gcc 4.2) buggy : the write function is called only at lib start (in main thread), and the var is undefined for background thread.
The workaround is to perform this gomp_tls_key var write at beginning of background threads that use openMP. (Currently: render & fluidsim)
Currently access by selecting a marking and binding with the active camera from the view menu.
Note:
after long discussion we decieded there is no nice way to do this.. animate pointers? animate multiple camera visibility?, use sequencer? use NLA?.... have a kind of event system (like framechange scriptlinks)... etc
so this is ifdef'd with DURIAN_CAMERA_SWITCH
customisable player.
You can choose a player in User Preferences -> File Paths. You can
choose a plan custom command line, otherwise there are presets available
for the Blender 2.4 player or DJV (where it will give it the correct filename,
fps, etc on the command line). So for example if you have a Blender 2.4
version installed, you can enter the path to the blender 2.4 executable,
and the playback will work just like before.
Any info on other frame players (FrameCycler? pdplayer?) and their
command line settings could be useful for adding some more presets too,
if anyone knows of them.
It's available in Render->Play Rendered Animation (Ctrl F11)
* Property update functions no longer get context, instead they get only
Main and Scene. The RNA api was intended to be as context-less as
possible, since it doesn't really matter who is changing the property,
everything that uses the property should be updated.
* There's still one exception case that use it now, screen operations
still depend on context too much. It also revealed a few places using
context where they shouldn't.
* Ideally Scene shouldn't be passed, but much of Blender still depends on
it, should be dropped when we try to support multiple scene editing.
Change was planned for a while, but need this now to be able to call
update without a context pointer.
Now, temp screens are hidden from being accessed directly, with a new 'Back to Previous' button appearing in place of the screen menu when (for example) fullscreen render image areas are present. Window type menus also get disabled here too, to prevent things from getting too mixed up.
Did a lot of cleaning Object operator poll functions to check if the object's linked
or not. For this, added the function ED_operator_object_active_editable() as
opposed to ED_operator_object_active()
I've had to add a special operator for this, since the generic region-flip operator doesn't seem to be getting the right region from RNA. This operator explicitly searches for an appropriate header region before beginning. I suspect by default, operators get the main region set as being context target...
This contains two entries - one which calls the region flip operator, and one which calls the maxmize area operator.
Unfortunately, there seem to be some context issues which are causing the wrong region to get activated for use by the region flipping, meaning that nothing happens.
Also, fixed own typo in 3d-view header/menu code...
Playback of animation will now be restored to the frame that playback started on when stopping if the SCREEN_OT_animation_cancel operator is used (i.e. ESCKEY).
All other ways of stopping playback (pause button, alt-a) should act more like toggles, and do not reset the playhead.
Added some more methods for the Red-Black Tree implementation in Blender (used for runtime viewing and searching of keyframes) which abstract away some of the lower-level handling of the BST (i.e. adding nodes without balancing and searching for nodes).
Also, improved the implementation of the jump next/prev keyframe operator so that it pops up an error message when the last keyframe in whatever direction is encountered.
* Convert all code to use new functions.
* Branch maintainers may want to skip this commit, and run this
conversion script instead, if they use a lot of math functions
in new code:
http://www.pasteall.org/9052/python
The timestep used for the playback timer now gets adjusted accordingly when the frames-per-second setting gets changed during playback (i.e. in the "animation_step" operator). This is not as ideal as only updating this when the framerate setting is changed, but using an appropriate update function for this failed miserably.
I tried to make it integrate more with regular render but couldn't
do it well, it still needs a 3D view to take the settings from, and
can't run in a separate thread due to OpenGL.
However, it is now rendering to an offscreen buffer which then gets
displayed in the image window. This requires FBO's to be available, so
a fallback creating a new window is still needed. Currently available
from the Render menu in the top header.
- Generated and uploaded api docs - http://www.blender.org/documentation/250PythonDoc
- Added Edit docs menu item & operators as discussed with Mindrones, Brecht, Stani & Letterip @ bconf, needs some web backend. python operator can aparently use xml/rpc to upload docstrings.
- Added operator invoke function - context.manager.invoke_props_popup(self.__operator__, event)
this calls a popup for invoke by default (which intern calls execute())
- Own recent commit to game framing applied to non-camera views too.
- v3d->persp is deprecated but still used in some places.
- Transforming strips could overlap 1 frame if moving them below frame 0
- Transforming overlapping strips could go into an eternal loop (though overlapping strips should not exist)
wm.context_set(path="scene.tool_settings.someattr", somevalue)
wm.context_toggle(path="scene.tool_settings.somebool")
wm.context_toggle_values(path="scene.tool_settings.some_enum", value_1="somevalue", value_2="othervalue") # switch between 2 values
wm.context_cycle_enum(path="scene.tool_settings.some_enum", reverse=False)
the path value is taken from the context so the full path is
context.scene.tool_settings...
This means in keymaps you can cycle draw modes, change PET- anything with rna access.
If its not so nice to map keys to operators like wm.context_set we could use macro's to wrap it and have its own name
Use this for PET and setting pivot options
- Made userpref key shortcut Ctrl+Alt+U since its not used in 2.4x
- added pivot_point_align (Alt+Comma)
- added PET wasnt rna wrapped correctly.