8 years agoMerging r58194 through r58195 from trunk into soc-2013-depsgraph_mt
Sergey Sharybin [Fri, 12 Jul 2013 11:31:15 +0000 (11:31 +0000)]
Merging r58194 through r58195 from trunk into soc-2013-depsgraph_mt

8 years agoGet rid of global originmat matrix from object.c
Sergey Sharybin [Fri, 12 Jul 2013 11:18:34 +0000 (11:18 +0000)]
Get rid of global originmat matrix from object.c

This matrix was used to store the space the object is in,
which then was accessed by snapping code. No reason to
keep it as a global variable (which isn't safe for threading,
unlikely it'll give issues now, but it's easy to avoid
issues early here).

Now made it so BKE_object_where_is_calc_ex will get an
optional parameter originmat and set this matrix in

Original patch by self, minor changes by Campbell, thanks!

8 years agoMerging r58166 through r58193 from trunk into soc-2013-depsgraph_mt
Sergey Sharybin [Fri, 12 Jul 2013 09:13:15 +0000 (09:13 +0000)]
Merging r58166 through r58193 from trunk into soc-2013-depsgraph_mt

8 years agofix [#36093] Stationary Particle system - particle Y axis fails to follow emitter...
Campbell Barton [Fri, 12 Jul 2013 08:41:27 +0000 (08:41 +0000)]
fix [#36093] Stationary Particle system - particle Y axis fails to follow emitter object rotation

8 years agoExpose exec callback to an operator
Sergey Sharybin [Fri, 12 Jul 2013 08:31:39 +0000 (08:31 +0000)]
Expose exec callback to an operator

Internally it was only invoke callback set for an
operator template. This invoke was setting such
properties as mouse_x and mouse_y and was calling
an exec function.

This meant that t seemed to be really easy to
use operator from by giving a mouse
positions, but in fact it wasn't possible (because
it requires exec callback)

This commit sets operator's template exec callback,
which makes it possible using from

8 years agofix for crash with texture-baking caused by recent changes to render-database initial...
Campbell Barton [Fri, 12 Jul 2013 05:42:16 +0000 (05:42 +0000)]
fix for crash with texture-baking caused by recent changes to render-database initialization, running bake 3 times would crash.

8 years agofix [#36106] Defining the Loopcut number with the keyboard is limited to 130
Campbell Barton [Fri, 12 Jul 2013 01:33:42 +0000 (01:33 +0000)]
fix [#36106] Defining the Loopcut number with the keyboard is limited to 130
mousewheel value is now clamped too and raised the limit to 500.

8 years agooptimize interp_weights_poly_v2(), well tested, was calculating the area twice as...
Campbell Barton [Fri, 12 Jul 2013 00:18:27 +0000 (00:18 +0000)]
optimize interp_weights_poly_v2(), well tested, was calculating the area twice as much as was needed.

8 years agoUI / Cycles:
Thomas Dinges [Fri, 12 Jul 2013 00:08:55 +0000 (00:08 +0000)]
UI / Cycles:
* Make it more clear for the user what affects 3D View and Final render.
* Static / Dynamic BVH only affects viewport, BVH Cache only final. (see BlenderSync::get_scene_params)

8 years agoFix for Bug #35695: Freestyle produces extra line across an object with pointed areas.
Tamito Kajiyama [Thu, 11 Jul 2013 17:25:18 +0000 (17:25 +0000)]
Fix for Bug #35695: Freestyle produces extra line across an object with pointed areas.

The cause of inconsistent edge connectivity in the view map (documented in the commit
log of revision 58006) was identified and fixed.  The problem was that when a ViewEdge
was split at a cusp vertex (ViewMapBuilder::computeCusps()), the ViewVertex at one end
of a newly created ViewEdge in ViewMap::InsertViewVertex() was not properly updated to
take account of edge connectivity changes.

8 years agofix [#36105] Bevel UV Flicker
Campbell Barton [Thu, 11 Jul 2013 15:57:22 +0000 (15:57 +0000)]
fix [#36105] Bevel UV Flicker
interp_weights_poly_v2/3 functions used much too small an epsilon value, caused flickering.

8 years agoutility function for printing arbitrary sizes vectors.
Campbell Barton [Thu, 11 Jul 2013 15:32:26 +0000 (15:32 +0000)]
utility function for printing arbitrary sizes vectors.

8 years agofix [#36100] bevel lost selection
Campbell Barton [Thu, 11 Jul 2013 14:21:50 +0000 (14:21 +0000)]
fix [#36100] bevel lost selection
interpolating loop was copying face attributes including selection, checked all users of this function and its safe to remove the call (which is bad to begin with).

8 years agoFix bevel when there is a gap in faces around vertex.
Howard Trickey [Thu, 11 Jul 2013 13:29:52 +0000 (13:29 +0000)]
Fix bevel when there is a gap in faces around vertex.
Fixes bug #35927 (Vertex Bevel bug) but even edge
bevel didn't work on the example there. Problem
was with forming the proper ccw ordering of edges
around the bevel.
Also appears to fix bug #35582 (Bevel, weird results).

8 years agoadd BM_elem_attrs_copy_ex() which can take a flag arg to define which flags should...
Campbell Barton [Thu, 11 Jul 2013 12:43:34 +0000 (12:43 +0000)]
add BM_elem_attrs_copy_ex() which can take a flag arg to define which flags should be copied. (mainly to be able to avoid copying selection/hidden state)

8 years agoFix #36091: external render engines like Luxrender don't work well with the save
Brecht Van Lommel [Thu, 11 Jul 2013 12:22:29 +0000 (12:22 +0000)]
Fix #36091: external render engines like Luxrender don't work well with the save
buffers option, it requires specific tile sizes and if they don't match what
OpenEXR expects file saving can get stuck.

Now I've made support for his optional, with a bl_use_save_buffers property for
RenderEngine, set to False by default.

8 years agofix [#36099] Undo crashes on an armature with ID-Properties
Campbell Barton [Thu, 11 Jul 2013 11:38:28 +0000 (11:38 +0000)]
fix [#36099] Undo crashes on an armature with ID-Properties
armatures undo state now stores ID-properties.

8 years agoCode cleanup: de-duplicate display list minmax routines
Sergey Sharybin [Thu, 11 Jul 2013 11:29:45 +0000 (11:29 +0000)]
Code cleanup: de-duplicate display list minmax routines

8 years agoAdded an operator to match texture space to object's bounding box
Sergey Sharybin [Thu, 11 Jul 2013 11:05:56 +0000 (11:05 +0000)]
Added an operator to match texture space to object's bounding box

This operator could be useful after recent changes to how curve's
texture space is calculated.

8 years agoMove curve's boundbox and texspace calculation out of modifier stack
Sergey Sharybin [Thu, 11 Jul 2013 10:45:01 +0000 (10:45 +0000)]
Move curve's boundbox and texspace calculation out of modifier stack

There were several issues with how bounding box and texture space
are calculated:

- This was done at the same time as applying modifiers, meaning if
  several objects are sharing the same curve datablock, bounding
  box and texture space will be calculated multiple times.

  Further, allocating bounding box wasn't safe for threading.

- Bounding box and texture space were evaluated after pre-tessellation
  modifiers are applied. This means Curve-level data is actually
  depends on object data, and it's really bad because different
  objects could have different modifiers and this leads to
  conflicts (curve's data depends on object evaluation order)
  and doesn't behave in a predictable way.

This commit moves bounding box and texture space evaluation from
modifier stack to own utility functions, just like it's was done
for meshes.

This makes curve objects update thread-safe, but gives some
limitations as well. Namely, with such approach it's not so
clear how to preserve the same behavior of texture space:
before this change texture space and bounding box would match
bevelled curve as accurate as possible.

Old behavior was nice for quick texturing -- in most cases you
don;t need to modify texture space at all. But texture space
was depending on render/preview settings which could easily lead
to situations, when final result would be far different from
preview one.

Now we're using CV points coordinates and their radius to approximate
the bounding box. This doesn't give the same exact texture space,
but it helps a lot keeping texture space in a nice predictable way.

We could make approximation smarter in the future or add operator
like "match texture space to object's bounding box".

8 years agoMake fonts safe(r) for threading
Sergey Sharybin [Thu, 11 Jul 2013 09:15:19 +0000 (09:15 +0000)]
Make fonts safe(r) for threading

Getting vfont data wasn't safe for threading, because it
was modifying font data which is in bmain and could be
shared by multiple objects.

For now made it so getting vfont uses critical section,
meaning vfont->data is initializing from inside a locked

8 years agofix for bridge tool where the 2 loops overlap (typical use for scanfill), however...
Campbell Barton [Thu, 11 Jul 2013 08:37:30 +0000 (08:37 +0000)]
fix for bridge tool where the 2 loops overlap (typical use for scanfill), however its nice to support with bridge too since it can do subdivisions, handles customdata and fills in quads.

8 years agoMerging r58148 through r58165 from trunk into soc-2013-depsgraph_mt
Sergey Sharybin [Thu, 11 Jul 2013 08:25:37 +0000 (08:25 +0000)]
Merging r58148 through r58165 from trunk into soc-2013-depsgraph_mt

8 years agofix [#36090] Blender displays strange symbol in edge length
Campbell Barton [Thu, 11 Jul 2013 05:11:10 +0000 (05:11 +0000)]
fix [#36090] Blender displays strange symbol in edge length

8 years agofix [#36089] crash when using a tiff without TIFFTAG_EXTRASAMPLES
Campbell Barton [Thu, 11 Jul 2013 04:38:47 +0000 (04:38 +0000)]
fix [#36089] crash when using a tiff without TIFFTAG_EXTRASAMPLES

8 years agofix for problem with edge slide where it would stop shapekey modifier from being...
Campbell Barton [Thu, 11 Jul 2013 04:24:36 +0000 (04:24 +0000)]
fix for problem with edge slide where it would stop shapekey modifier from being applied (because of added vertices),
now, instead of making hidden copies of faces, the faces are copied into a temp bmesh.

also remove a hash that was being created and not used (old code).

8 years agobm_loop_interp_mdisps was doing multiple lookups in the same pointer in a nested...
Campbell Barton [Thu, 11 Jul 2013 01:28:27 +0000 (01:28 +0000)]
bm_loop_interp_mdisps was doing multiple lookups in the same pointer in a nested loop. only need one, also avoid multiple layer lookups with mdisp calculation/smoothing

8 years agoFix #36053: slow GPU render with panorama camera + depth of field.
Brecht Van Lommel [Wed, 10 Jul 2013 17:25:52 +0000 (17:25 +0000)]
Fix #36053: slow GPU render with panorama camera + depth of field.

8 years agoFix #36082: animation playback not working after rendering of background scenes and
Brecht Van Lommel [Wed, 10 Jul 2013 16:46:13 +0000 (16:46 +0000)]
Fix #36082: animation playback not working after rendering of background scenes and
multiple render layer nodes. Also fixes issue with database free with vector blur
after recent thread safety changes.

8 years agoTag object-data level boundbox as invalid rather than freeing it
Sergey Sharybin [Wed, 10 Jul 2013 14:26:31 +0000 (14:26 +0000)]
Tag object-data level boundbox as invalid rather than freeing it

Object update used to free object-data level bounding box to trigger
it's re-calculation in the future. Such a freeing performed from
object update isn't thread-safe because mesh could be shared between
multiple objects.

Rather than freeing bounding box, tag it's as invalid, this is safe
from threading point of view and also prevents unnecessary memory

Object-level bounding box is still reallocating, but think we could
change this easily in the future as well.

8 years agoBM_mesh_clear was setting toolflags incorrectly, also no meed to calloc when shrinkin...
Campbell Barton [Wed, 10 Jul 2013 13:06:31 +0000 (13:06 +0000)]
BM_mesh_clear was setting toolflags incorrectly, also no meed to calloc when shrinking toolflags array.

8 years agoskip duplicating faces for edge slide unless its used, this causes update problems...
Campbell Barton [Wed, 10 Jul 2013 12:37:15 +0000 (12:37 +0000)]
skip duplicating faces for edge slide unless its used, this causes update problems for shape keys at the moment, Ill check on that but no need to run in most cases.

8 years agono need to copy mat4x4 -> 3x3 in mat4_to_scale
Campbell Barton [Wed, 10 Jul 2013 12:12:58 +0000 (12:12 +0000)]
no need to copy mat4x4 -> 3x3 in mat4_to_scale

8 years agoRemove unused bounding box from MetaBall
Sergey Sharybin [Wed, 10 Jul 2013 11:36:52 +0000 (11:36 +0000)]
Remove unused bounding box from MetaBall

8 years agoGet rid of confusing usage of cu->bb in BKE_object_minmax
Sergey Sharybin [Wed, 10 Jul 2013 11:36:47 +0000 (11:36 +0000)]
Get rid of confusing usage of cu->bb in BKE_object_minmax

Curve-type objects now always does have object'level
bounding box, meaning cu->bb wouldn't evenr used in

So zapping this confusing check for whether ob->bb
exists, which is always truth. Makes it easier to
follow what cu->bb is for and what ob->bb is for.

8 years agoFix #36080: fix cycles crash with certain group node setups, accessing freed
Brecht Van Lommel [Wed, 10 Jul 2013 10:50:19 +0000 (10:50 +0000)]
Fix #36080: fix cycles crash with certain group node setups, accessing freed

8 years agoMerging r58144 through r58147 form trunk into soc-2013-depsgraph_mt
Sergey Sharybin [Wed, 10 Jul 2013 10:31:59 +0000 (10:31 +0000)]
Merging r58144 through r58147 form trunk into soc-2013-depsgraph_mt

8 years agoFix #36076: Metaballs as particles with particle texture (size influence) crashes...
Sergey Sharybin [Wed, 10 Jul 2013 10:24:06 +0000 (10:24 +0000)]
Fix #36076: Metaballs as particles with particle texture (size influence) crashes Blender

Issue was caused by size influence affecting on object's matrix, which
is nice by it's own. But mball code was using ob->size to check whether
it's zero-sized object or not, but then was using ob->obmat to scale
the meta elements.

This lead to situation when zero-sized elements were trying to tessellate,
which is for sure a really bad idea.

8 years agopatch [#36078] Fixes joining behavior for curves and armatures (when active object...
Campbell Barton [Wed, 10 Jul 2013 09:55:10 +0000 (09:55 +0000)]
patch [#36078] Fixes joining behavior for curves and armatures (when active object not selected).

8 years agoremove reference to wrong python version in comments & pedantic style edit.
Campbell Barton [Wed, 10 Jul 2013 09:40:49 +0000 (09:40 +0000)]
remove reference to wrong python version in comments & pedantic style edit.

8 years agoMerging r58125 through r58143 from trunk into soc-2013-depsgraph_mt
Sergey Sharybin [Wed, 10 Jul 2013 09:13:45 +0000 (09:13 +0000)]
Merging r58125 through r58143 from trunk into soc-2013-depsgraph_mt

8 years agofix for possible bug with compilers that dont have boolean support.
Campbell Barton [Wed, 10 Jul 2013 08:01:06 +0000 (08:01 +0000)]
fix for possible bug with compilers that dont have boolean support.

8 years agofix [#36065] UI labels are shown in the theme color for unselected list items
Campbell Barton [Wed, 10 Jul 2013 08:00:00 +0000 (08:00 +0000)]
fix [#36065] UI labels are shown in the theme color for unselected list items

8 years agoFix #36041, Chroma key broken. Compositor node was using wrong socket index to link...
Lukas Toenne [Wed, 10 Jul 2013 07:23:55 +0000 (07:23 +0000)]
Fix #36041, Chroma key broken. Compositor node was using wrong socket index to link the output of the RGBToYCC operation to the chroma matte input.

This mistake happens over and over, it's just not clear what the index arguments in these relink functions mean ... We really need to clean up that interface.

8 years agofix [#36079] Use Modifier Stack Crash with Particles
Campbell Barton [Wed, 10 Jul 2013 05:46:45 +0000 (05:46 +0000)]
fix [#36079] Use Modifier Stack Crash with Particles

8 years agoadd asserts for passing in bad index values to DM_get_***_data, CustomData_get()
Campbell Barton [Wed, 10 Jul 2013 05:38:36 +0000 (05:38 +0000)]
add asserts for passing in bad index values to DM_get_***_data, CustomData_get()

8 years agofix for particle lasso-select inverting the selection.
Campbell Barton [Wed, 10 Jul 2013 05:01:49 +0000 (05:01 +0000)]
fix for particle lasso-select inverting the selection.

8 years agofix [#35406] Hair puff brush bug
Campbell Barton [Wed, 10 Jul 2013 04:54:14 +0000 (04:54 +0000)]
fix [#35406] Hair puff brush bug
- puff was interpolating hair that made longer strands cirl up.
- also fixed problem with puff-volume option, it was over-accumulating so unselected parts of the hair would have too much offset applied.

8 years agodraw loopcut display on the deformed mesh when in editmode.
Campbell Barton [Wed, 10 Jul 2013 02:05:16 +0000 (02:05 +0000)]
draw loopcut display on the deformed mesh when in editmode.

8 years agofix [#35948] Toggle-Draw AutoKeyframe Bug
Campbell Barton [Wed, 10 Jul 2013 01:13:24 +0000 (01:13 +0000)]
fix [#35948] Toggle-Draw AutoKeyframe Bug

8 years agoFix #36075: editing shading nodes could still crash blender internal rendered
Brecht Van Lommel [Wed, 10 Jul 2013 01:05:56 +0000 (01:05 +0000)]
Fix #36075: editing shading nodes could still crash blender internal rendered
draw mode. This happens because it uses node data structures in threads, now
it does same as preview render, which is to immediately stop the render thread
when e.g. deleting nodes.

8 years agofix [#36073] Changing list items misses undo push
Campbell Barton [Tue, 9 Jul 2013 23:40:53 +0000 (23:40 +0000)]
fix [#36073] Changing list items misses undo push

8 years agoFix for bug #36009: Rendered ortho view messes up Freestyle lines in 3D viewport.
Tamito Kajiyama [Tue, 9 Jul 2013 23:25:02 +0000 (23:25 +0000)]
Fix for bug #36009: Rendered ortho view messes up Freestyle lines in 3D viewport.

Clipping start is negative when the viewport preview is used with the orthographic view,
while Freestyle assumes that imported mesh data are in the camera coordinate system
with the view point located at origin.  The present solution is to adjust the clipping
start/end and introduce a Z-axis offset for mesh vertices so as to satisfy the assumption.

8 years agoFix missing cycles viewport update when changing manual texture space
Brecht Van Lommel [Tue, 9 Jul 2013 22:27:18 +0000 (22:27 +0000)]
Fix missing cycles viewport update when changing manual texture space
location or size in the properties editor.

8 years agoMerging r58112 through r58124 from trunk into soc-2013-depsgraph_mt
Sergey Sharybin [Tue, 9 Jul 2013 19:22:26 +0000 (19:22 +0000)]
Merging r58112 through r58124 from trunk into soc-2013-depsgraph_mt

8 years agoPartial revert of rev58110
Sergey Sharybin [Tue, 9 Jul 2013 18:38:33 +0000 (18:38 +0000)]
Partial revert of rev58110

There's one thing we didn't foresee from the beginning,
which is apparently TLS is only available in OSX starting
from version 10.7, and we still do support of 10.6.

After recent Brecht's changes about locked viewport
while initializing BI render this TLS is not needed
in trunk anymore. So reverting this chunk of base
iteration to use static variable. But leaving all the
other static variables warped into context still, it
should help a bit in the future refactor.

Real fix would be to have some kind of graph context
evaluation structure which would be passing to update
routines (which will solve threaded mballs update) and
making depsgraph responsible for getting a motherball.
But this is all for GSoC project.

8 years agofix [#36004] Vertex parent on curve point results in blank 'parent_type' on child...
Campbell Barton [Tue, 9 Jul 2013 13:50:22 +0000 (13:50 +0000)]
fix [#36004] Vertex parent on curve point results in blank 'parent_type' on child object

8 years agoFix blender environment map texture looking different on the first render with
Brecht Van Lommel [Tue, 9 Jul 2013 13:47:19 +0000 (13:47 +0000)]
Fix blender environment map texture looking different on the first render with
an image file, the image extend is set automatically when render starts but not
when the image was never loaded yet.

8 years agofix [#36055] Edge/Face Info display on wrong position with key frames
Campbell Barton [Tue, 9 Jul 2013 12:59:31 +0000 (12:59 +0000)]
fix [#36055] Edge/Face Info display on wrong position with key frames
display editmesh stats with deform modifiers.

8 years agoFix #36030: datablock drag and drop to buttons not working with a certain number
Brecht Van Lommel [Tue, 9 Jul 2013 11:31:49 +0000 (11:31 +0000)]
Fix #36030: datablock drag and drop to buttons not working with a certain number
of objects in the scene.

8 years agoFix #36050, backdrop not working. The compositor backdrop requires a restart of the...
Lukas Toenne [Tue, 9 Jul 2013 09:10:42 +0000 (09:10 +0000)]
Fix #36050, backdrop not working. The compositor backdrop requires a restart of the compositing job, which does not happen if just enabling backdrop after adding a viewer node. To fix this added the appropriate notifiers in a update callback for the show_backdrop property.

8 years agoMerging r58073 through r58111 from trunk into soc-2013-depsgraph_mt
Sergey Sharybin [Tue, 9 Jul 2013 08:44:06 +0000 (08:44 +0000)]
Merging r58073 through r58111 from trunk into soc-2013-depsgraph_mt

8 years agoadd checks in paintface_flush_flags for faces which have no original index values...
Campbell Barton [Tue, 9 Jul 2013 08:25:30 +0000 (08:25 +0000)]
add checks in paintface_flush_flags for faces which have no original index values. (could give out of bounds writes)

8 years agoFixed more threading issues with metaballs
Sergey Sharybin [Tue, 9 Jul 2013 08:23:01 +0000 (08:23 +0000)]
Fixed more threading issues with metaballs

This time issue was caused by static variables used in
BKE_scene_base_iter_next function.

Change is not so much ultimate actually, but didn't
find more clear solution for now. So the changes are:

- Wrap almost all the static variables into own context-
  like structure, which is owned by the callee function
  and getting passed to the iteration function.

- Recursion detection wasn't possible with such approach,
  so recursion detection still uses static in_next_object
  variable, but which is now stored in thread local
  storage (TLS, or thread variable if this names are more
  clear for you).

This makes code thread-safe, but for sure final solution
shall be completely different. Ideally, dependency graph
shall be possible to answer on question "which object is
a motherball for this metaball". This will avoid iterating
via all the bases, objects and duplis just to get needed

Further, metaball evaluation ideally will use the same
kind of depsgraph filtering, which will get result for
question like "which objects belongs to this group of

But this ideal things are to be solved in Joshua's and
mind GSoC projects.

Tested on linux (gcc and clang) and windows (msvc2008),
hopefully no compilation error will happen.

Thanks to Brecht for reviewing the change and getting
feedback for other possible ways we've dicussed!

8 years agofix [#36039] Texture paint bug with face selection on subdivided object
Campbell Barton [Tue, 9 Jul 2013 08:17:14 +0000 (08:17 +0000)]
fix [#36039] Texture paint bug with face selection on subdivided object
original patch by Antony Riakiotakis, made some edits to only check origindex when needed.

8 years agofix for error in vertex_group_vert_select_unlocked_poll, check for non existing group...
Campbell Barton [Tue, 9 Jul 2013 07:50:16 +0000 (07:50 +0000)]
fix for error in vertex_group_vert_select_unlocked_poll, check for non existing group wasn't right.

8 years agofix error where if you tried to bridge an odd number of loops after bridging pairs...
Campbell Barton [Tue, 9 Jul 2013 06:34:54 +0000 (06:34 +0000)]
fix error where if you tried to bridge an odd number of loops after bridging pairs, there was no way to change the options.
eventually I think the operator api should support this but for now return finished.

8 years agofix [#36066] crash when Tab out text object
Campbell Barton [Tue, 9 Jul 2013 06:21:45 +0000 (06:21 +0000)]
fix [#36066] crash when Tab out text object
the way Curve.len is used at the moment is really stupid, calculate string size on save for now, but should really store the length in bytes and total number of characters.

8 years agofix [#36008] Can't set values higher than 1.0 in HSV colour picker (But can in RGB...
Campbell Barton [Tue, 9 Jul 2013 04:00:56 +0000 (04:00 +0000)]
fix [#36008] Can't set values higher than 1.0 in HSV colour picker (But can in RGB) - also some strange behavior

8 years agofix for own error in normal-recalc r58077, initial face flipping wasn't checking...
Campbell Barton [Tue, 9 Jul 2013 01:18:15 +0000 (01:18 +0000)]
fix for own error in normal-recalc r58077, initial face flipping wasn't checking against face-island center.

8 years agominor improvements
Campbell Barton [Tue, 9 Jul 2013 00:13:17 +0000 (00:13 +0000)]
minor improvements
- calc normals only check flag when needed.
- keymap, dont get name unless its needed.
- keymap, avoid property lookup.
- idprop debug print, include pointer, helpful for troubleshooting.

8 years agofix [#35806] Unable to check "Correct UVs" option in "Loop Cut and Slide" (Keymap...
Campbell Barton [Tue, 9 Jul 2013 00:08:18 +0000 (00:08 +0000)]
fix [#35806] Unable to check "Correct UVs" option in "Loop Cut and Slide" (Keymap Editor)

8 years agoFix #36064: cycles direct/indirect light passes with materials that have zero
Brecht Van Lommel [Mon, 8 Jul 2013 23:31:45 +0000 (23:31 +0000)]
Fix #36064: cycles direct/indirect light passes with materials that have zero
RGB color components gave non-grey results when you might no expect it.

What happens is that some of the color channels are zero in the direct light
pass because their channel is zero in the color pass. The direct light pass is
defined as lighting divided by the color pass, and we can't divide by zero. We
do a division after all samples are added together to ensure that multiplication
in the compositor gives the exact combined pass even with antialiasing, DoF, ..

Found a simple tweak here, instead of setting such channels to zero it will set
it to the average of other non-zero color channels, which makes the results look
like the expected grey.

8 years agomove keymap ui into modules, its not loaded on startup anymore.
Campbell Barton [Mon, 8 Jul 2013 22:57:51 +0000 (22:57 +0000)]
move keymap ui into modules, its not loaded on startup anymore.

8 years agoFix #35969: blender internal and cycles not updating mesh while in edit mode.
Brecht Van Lommel [Mon, 8 Jul 2013 22:41:14 +0000 (22:41 +0000)]
Fix #35969: blender internal and cycles not updating mesh while in edit mode.
Patch for blender internal made by Campbell.

8 years agoFix #36063: cycles 3D viewport was incorrectly influenced by blender internal
Brecht Van Lommel [Mon, 8 Jul 2013 22:41:12 +0000 (22:41 +0000)]
Fix #36063: cycles 3D viewport was incorrectly influenced by blender internal
material halo settings.

8 years agoFix #35979, #35937, #35739: undo crashes and missing updates with blender
Brecht Van Lommel [Mon, 8 Jul 2013 22:26:10 +0000 (22:26 +0000)]
Fix #35979, #35937, #35739: undo crashes and missing updates with blender
internal viewport rendering. Lots of tweaks here, mainly:

* Stop 3D viewport render and free database before undo.
* Accumulate update flags rather than replace them each time it rerenders, to
  avoid previous updates getting lost.
* Don't check against Render struct view parameters for changes, those are set
  in the job thread which might not run before the next update call.

8 years agoFix #36059: region overlap did not show scopes overlapping in the image editor.
Brecht Van Lommel [Mon, 8 Jul 2013 18:27:32 +0000 (18:27 +0000)]
Fix #36059: region overlap did not show scopes overlapping in the image editor.
It's only enabled for some particular regions, this one makes sense to show.

8 years agoFix #35960, #36044: blender internal viewport rendering crash while editing data.
Brecht Van Lommel [Mon, 8 Jul 2013 17:56:51 +0000 (17:56 +0000)]
Fix #35960, #36044: blender internal viewport rendering crash while editing data.
Now the viewport rendering thread will lock the main thread while it is exporting
objects to render data. This is not ideal if you have big scenes that might block
the UI, but Cycles does the same, and it's fairly quick because the same evaluated
mesh can be used as for viewport drawing. It's the only way to get things stable
until the thread safe dependency graph is here.

This adds a mechanism to the job system for jobs to lock the main thread, using a
new 'ticket mutex lock' which is a mutex lock that gives priority to the first
thread that tries to lock the mutex.

Still to solve: undo/redo crashes.

8 years agoAttempt to fix #35057, disable threading if diameter of the brush
Antony Riakiotakis [Mon, 8 Jul 2013 15:35:53 +0000 (15:35 +0000)]
Attempt to fix #35057, disable threading if diameter of the brush
becomes too small. Typically this would happen if the number of buckets
is clipped to the maximum value. This avoids thread overhead.

A better fix might be to do bucket-brush intersection on main thread and
dispatch threads to process bucket hits as they become available. This
way only one thread at most would end up being used in such cases
anyway. A better task scheduler is needed for that though, leaving for
after GSOC.

8 years agoWorkaround for crash caused by threaded dupligorup update
Sergey Sharybin [Mon, 8 Jul 2013 13:56:34 +0000 (13:56 +0000)]
Workaround for crash caused by threaded dupligorup update

Some objects from scene could have dupligroup with objects
which are not in the scene. This case wasn't checked by
workaround for threaded display object free routines.

We really need to have threading issues with display
objects solved.

8 years agofix/improve normal calculation, noticed when checking on the previous bugfix.
Campbell Barton [Mon, 8 Jul 2013 13:30:11 +0000 (13:30 +0000)]
fix/improve normal calculation, noticed when checking on the previous bugfix.
- normals depended on the meshes rotation, so you could rotate Suzzane and in some cases one of the eye normals would be flipped.
- normals depended on the meshes placement in relation to the meshes center, now find the outer most face by each face-island center.

8 years agoFix bevel bugs 34445 and 35109, copying over edge data.
Howard Trickey [Mon, 8 Jul 2013 13:02:21 +0000 (13:02 +0000)]
Fix bevel bugs 34445 and 35109, copying over edge data.

The bugs were about not respecting edge smoothness and
not respecting edge crease.  This change copies the
edge attributes from a beveled edge to the two outside
edges of the bevel.

8 years agoFix #36024. This part fixes user counting for node editor trees. The user count previ...
Lukas Toenne [Mon, 8 Jul 2013 11:38:11 +0000 (11:38 +0000)]
Fix #36024. This part fixes user counting for node editor trees. The user count previously would only work correctly for node trees which are part of material, scene, etc. or linked by group nodes. Any
custom pynodes tree edited directly as library data would get a 0 user count on reload and subsequently not be saved. Now the node space follows the same pattern as the image space: the node tree(s) user
count gets incremented on file load and opening in the editor ensures a real user. This leads to 1 "unreal" user for the editor (dropped on reload), but seems to be the only viable solution atm.

8 years agoPartial fix for #36024, don't always reset the node editor tree pointer if the type...
Lukas Toenne [Mon, 8 Jul 2013 11:38:09 +0000 (11:38 +0000)]
Partial fix for #36024, don't always reset the node editor tree pointer if the type is undefined. This can happen if the tree type is defined by addon or script, in which case the tree type would be unknown the first time the context is checked, but registered right afterward. Also unknown tree types are handled fine, they just display dummy nodes in red warning color.

8 years agoMerging r57989 through r58072 from trunk into soc-2013-depsgraph_mt
Sergey Sharybin [Mon, 8 Jul 2013 11:29:08 +0000 (11:29 +0000)]
Merging r57989 through r58072 from trunk into soc-2013-depsgraph_mt

8 years agoremove unused normal-recalc flags.
Campbell Barton [Mon, 8 Jul 2013 08:56:46 +0000 (08:56 +0000)]
remove unused normal-recalc flags.

8 years agomove normal recalculation into its own source file.
Campbell Barton [Mon, 8 Jul 2013 08:50:04 +0000 (08:50 +0000)]
move normal recalculation into its own source file.

8 years agoFix #36042: Subdividing a cyclic spline shifts start/end points
Sergey Sharybin [Mon, 8 Jul 2013 08:02:37 +0000 (08:02 +0000)]
Fix #36042: Subdividing a cyclic spline shifts start/end points

Issue goes back to 2.4x days at least (but very much likely the
issue is even older). It's caused by subdivision code was starting
to iterate points from previous one, which shifted all the points
by one.

Reshuffled code so now iteration starts from first spline point.

Thanks to Campbell for review and tests! :)

8 years agofix [#36043] Missing Tooltip for Excluded Paths field of Auto Run Python Scripts...
Campbell Barton [Mon, 8 Jul 2013 07:40:32 +0000 (07:40 +0000)]
fix [#36043] Missing Tooltip for Excluded Paths field of Auto Run Python Scripts in User Preferences -> File

also select more/less were flipped for mesh menu compared to everywhere else.

8 years agore-arrange space_userpref_keymap, no need to use a subclass here, just import the...
Campbell Barton [Mon, 8 Jul 2013 07:25:33 +0000 (07:25 +0000)]
re-arrange space_userpref_keymap, no need to use a subclass here, just import the module and call draw_keymaps().

- making this change now because some addons developers are interested in showing keymap UI in their addons prefs and using the class involved making a fake class instance which isnt needed.

8 years agoedit on own commit r57801, don't check the size of dynamic arrays
Campbell Barton [Mon, 8 Jul 2013 01:28:43 +0000 (01:28 +0000)]
edit on own commit r57801, don't check the size of dynamic arrays

8 years agofix [#36047] Recalculate normals produces faulty normals on certain simple meshes
Campbell Barton [Mon, 8 Jul 2013 00:51:30 +0000 (00:51 +0000)]
fix [#36047] Recalculate normals produces faulty normals on certain simple meshes

The mesh in the report had 3 faces-user-edges, resolve the problem by not walking over these edges.
also don't recurse anymore (avoids realloc's).

8 years agoArrempt to fix Cycles compilation with Clang
Sergey Sharybin [Sun, 7 Jul 2013 18:29:57 +0000 (18:29 +0000)]
Arrempt to fix Cycles compilation with Clang

Issue is caused by missing sse flags for Clang compilers,
this flags only was set for GNU C compilers.

Added if branch for Clang now, which contains the same
flags apart from -mfpmath=sse, This is because Clang was
claiming it's unused argument.

Probably OSX would need some further checks since it's
also using Clang. I've got no idea why it could have
worked for OSX before..

8 years agoFix for Bug #35970: Freestyle + Particles = Crash.
Tamito Kajiyama [Sun, 7 Jul 2013 17:24:30 +0000 (17:24 +0000)]
Fix for Bug #35970: Freestyle + Particles = Crash.

The crash was caused by a reference of freed memory in add_halo_flare() that relied
on the global variable R to retrieve a list of objects.  The value of this variable
is invalidated by a nested execution of the Blender Internal renderer for Freestyle
stroke rendering, leading to the documented memory reference issue.

8 years agoFix for incorrect clipping of Freestyle strokes when the viewport preview is used.
Tamito Kajiyama [Sun, 7 Jul 2013 15:29:00 +0000 (15:29 +0000)]
Fix for incorrect clipping of Freestyle strokes when the viewport preview is used.

8 years agoBugfix [35841] WM_OT_context_[toggle/cycle/etc.] operators dont show shortcut
Joshua Leung [Sun, 7 Jul 2013 12:53:15 +0000 (12:53 +0000)]
Bugfix [35841] WM_OT_context_[toggle/cycle/etc.] operators dont show shortcut
keys in menus (or tooltips) for properties they are used to toggle/cycle through

Some properties can be toggled using hotkeys via WM_OT_context_* operators, but
these hotkeys aren't really shown anywhere obvious like other hotkeys (i.e.
they're not shown in tooltips or menus). Although it is possible to look these
up in the userprefs/keymaps editor, it is quite tricky doing so, and most users
would just assume that since no shortcut is displayed, there simply isn't one at

This commit introduces a slightly hacky fix which basically amounts to checking
if a property can be set by any of the few operators which are used for this
purpose. In order to keep this from being too sluggish, I've currently limited
this to only working on Editor (e.g. "Show Seconds" in Anim Editors) and
ToolSettings (e.g. "Use Proportional Edit") properties.

There are still some corner cases that would be nice to solve too (i.e. the
Pivot Type enum menu/dropdown should really be able to show the hotkeys which
have been assigned for each of those items, since they're by-and-large quite
hidden and obscure), though being able to show some of these is perhaps better
than not showing any!

8 years agoFix #36037: cycles from dupli generated texture coordinates were wrong, should
Brecht Van Lommel [Sun, 7 Jul 2013 10:39:56 +0000 (10:39 +0000)]
Fix #36037: cycles from dupli generated texture coordinates were wrong, should
have been normalized to 0..1 range.

8 years agoFix #36038: Auto Keying warning message is clamped in Japanese
Sv. Lockal [Sat, 6 Jul 2013 20:42:24 +0000 (20:42 +0000)]
Fix #36038: Auto Keying warning message is clamped in Japanese

8 years agofix [#36022] inconsistent naming for new images
Campbell Barton [Sat, 6 Jul 2013 08:10:41 +0000 (08:10 +0000)]
fix [#36022] inconsistent naming for new images