Fix compilation error of OCIO with MSVC

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60650 954f8c5b-7b00-dc11-b283-0030488c597c
style cleanup


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60652 954f8c5b-7b00-dc11-b283-0030488c597c
Weight Paint Tools: Add "Subset" option to "Normalize All"

This option is needed when vertex groups are used for both armature
deformation and the other purpose such as influence of mesh modifier.

Thanks to Campbell for code review!


git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60655 954f8c5b-7b00-dc11-b283-0030488c597c
Support for baking vertex colors to textures.

It allows effects such as baking vertex dirt maps to textures.
Also vertex based painting painting may be faster in the future,
so this is useful to have.

Thanks to Sergey for the review!

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60656 954f8c5b-7b00-dc11-b283-0030488c597c
Cleanup: Consistent names for draw callbacks in bNodeType.

This aims to establish a common pattern for the various confusing draw callback function pointers in bNodeType:

draw_<purpose>_<nodetype>[_ex]

Currently there are 4 different types of draw callbacks:
* draw_nodetype, draw_nodetype_prepare: Main draw functions, allows specialized node drawing for things like frames and reroute nodes. Not exposed in the API.
* draw_buttons, draw_buttons_ex: Optional non-socket buttons, most commonly used callback. Extended version used in sidebar for verbose buttons that don't fit into a node.
* draw_backdrop: Draw elements in the backdrop (compositor only). Not exposed in the API.
* draw_input, draw_output: Specialized socket drawing for some nodes, only for OutputFile node. Should not be used any further and be removed at some point. Not exposed in the API.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60657 954f8c5b-7b00-dc11-b283-0030488c597c
Lock-free memory allocator

Release builds will now use lock-free allocator by
default without any internal locks happening.

MemHead is also reduces to as minimum as it's possible.
It still need to be size_t stored in a MemHead in order
to make us keep track on memory we're requesting from
the system, not memory which system is allocating. This
is probably also faster than using a malloc's usable
size function.

Lock-free guarded allocator will say you whether all
the blocks were freed, but wouldn't give you a list
of unfreed blocks list. To have such a list use a
--debug or --debug-memory command line arguments.

Debug builds does have the same behavior as release
builds. This is so tools like valgrind are not
screwed up by guarded allocator as they're currently
are.

--
svn merge -r59941:59942 -r60072:60073 -r60093:60094 \
          -r60095:60096 ^/branches/soc-2013-depsgraph_mt



git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60658 954f8c5b-7b00-dc11-b283-0030488c597c
Bake vertex colors should include vertex color alpha as well.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60659 954f8c5b-7b00-dc11-b283-0030488c597c
NodeSocket RNA property 'in_out' renamed as boolean 'is_output'. This is a more useful name and follows the API naming conventions better.
http://wiki.blender.org/index.php/Extensions:2.6/Py/API_Changes#Node_Socket_in_out

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60660 954f8c5b-7b00-dc11-b283-0030488c597c
Change to node output socket drawing: Instead of always drawing only the socket label for outputs, leave this check up to the socket type draw function. This gives custom node scripts more flexibility in
how to draw socket values by allowing buttons on output sockets as well.

http://wiki.blender.org/index.php/Extensions:2.6/Py/API_Changes#Python_Node_Output_Drawing

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60661 954f8c5b-7b00-dc11-b283-0030488c597c
Get rid of the draw_input/draw_output callbacks for nodes. These are pretty useless wrappers around socket draw functions. Only use-case is the File Output node, which draws socket format type instead of
an input value. This is now a special case in the standard socket type drawing, but should eventually become a socket type of its own for the File Output node.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60662 954f8c5b-7b00-dc11-b283-0030488c597c
Made node socket flags into enum.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@60663 954f8c5b-7b00-dc11-b283-0030488c597c