Commit graph

52729 commits

Author SHA1 Message Date
Sergey Sharybin
daa1487425 Cycles: Prevent crash in special cases when object has less slots than mesh
This is something what was guaranteed in give_current_material(), just
copied some range checking logic from there.

Not sure what would be a proper fix here tho.
2016-09-26 10:51:51 +02:00
Bastien Montagne
c5558b3ccd Fix crash in own recent rB776a8548f03a049.
New ID may be null, have to check this too!

Reported by @panzergame over IRC, thanks.

To be ported to 2.78 as well.
2016-09-26 10:51:50 +02:00
Bastien Montagne
94e91ca7e5 Fix T49430: append scene with gamelogic broken.
In fact, it was the whole remapping process that was broken in logic bricks area,
due to terrible design of links between those bricks...

Object copying was also broken in that case, fixed as well.

To be backported to 2.78.

Note that issue was actually probably there since ages, hidden behind dirty hacks
used in previous append code (though likely visible in some corner cases).

Listen kids: do not, never, ever, do what has been done for links between logic bricks. Never. Ever.
Even as pure runtime data it would have been bad, but as stored data...
2016-09-26 10:51:50 +02:00
Joshua Leung
4ed7fb581a Fix T49441: Grease Pencil - pie menu - brush name field crashes blender
Using context.active_gpencil_brush to access the active Grease Pencil brush
would result in a crash if trying to rename the brush, because the "ID" pointer
was not set.

To be backported to 2.78
2016-09-26 10:51:50 +02:00
Gaia Clary
08d14a86d4 Collada: Trying to get rid of some warning messages on linux 2016-09-26 10:51:50 +02:00
Gaia Clary
a5d8efe16c Collada: Trying to get rif of some warning messages on linux 2016-09-26 10:51:49 +02:00
Gaia Clary
01ed1de0d8 Fix: Collada Importer did not import the Blender Profile information correctly when multiple objects are bound to same armature. This caused Bone tails to be placed wrong. 2016-09-26 10:51:49 +02:00
Bastien Montagne
35f81587b5 Fix T49427: Drivers of Shapekeys break when Append a group.
Optimization attempt with BKE_library_idtype_can_use_idtype() was not taking into account
the fact that drivers may link virtually against any datablock...

Has to be rethinked, but for after 2.78 release, this commit is safe to backport.
2016-09-22 16:52:10 +02:00
Bastien Montagne
42f42cbfdc Fix T49425: Freestyle in viewport keeps updating over and over.
Regression caused by rBb27ba26, we would always tag datablocks to update in G.main,
ignoring given bmain, now always use this one instead.

To be backported to 2.78.
2016-09-22 15:02:32 +02:00
Julian Eisel
53ff09bc97 GPencil: Fix memory leak using stroke arrange OP 2016-09-22 15:02:25 +02:00
Sergey Sharybin
bca6aa47bc Blender 2.78: Move to release cycle 2016-09-22 11:13:58 +02:00
Sergey Sharybin
22b39901e3 Fix non-finite normalization factor in certain cases 2016-09-22 11:07:37 +02:00
Joshua Leung
213e9aeb8c Fix: Grease Pencil sculpting crashes when sculpting on layers without any strokes
Reported by @loochmunz. I've also gone through checking for and fixing other places
where this was also occurring.


To be included in 2.78
2016-09-22 11:07:37 +02:00
Gaia Clary
83bbf57b5b regression fix for 1346482d23: The length of leaf bones should always be set to the length of the smallest bone. since the mentioned commit the importer did only recalculate the leaf bone length when the 'fix leaf bones' option was also enabled. 2016-09-22 11:07:36 +02:00
Sergey Sharybin
ea7d500b6d Fix T49386: Blender crashes when told to load an OCIO LUT that does not exist 2016-09-22 11:07:36 +02:00
Martijn Berger
0247547b6b Lowercase includes for psapi.h and dbghelp.h windows includes.
This makes cross compilation a little less painful
2016-09-22 11:07:36 +02:00
Kévin Dietrich
1782263ef8 CacheFile: make sure SpinLock is destroyed when exiting Blender.
Missed in rB62b1cdd6.
2016-09-22 11:07:36 +02:00
Sergey Sharybin
fc2b8c9793 Fix T49372: Fresnel node: difference between 2.76 and 2.78 GLSL output 2016-09-22 11:07:35 +02:00
Bastien Montagne
8909ff0e67 Fix filebrowser not getting back to valid dir in Release builds.
Stupid mistake wrapping path validation code inside a BLI_assert, which means it was
only called in Debug builds...

Found by Sergey, thanks.

Should be backported to 2.78.
2016-09-22 11:07:35 +02:00
Bastien Montagne
7b748e9478 Fix crash in some cases when deleting particle systems.
Those 'never null' ID pointers are really a PITA to handle... luckily we don't have much of those around!

Found by Sybren, thanks.

Should be backported to 2.78.
2016-09-22 11:07:35 +02:00
Bastien Montagne
4733544195 Fix Py's IDs user mapping: do not consider ShapeKeys' from here.
This is internal pointer helper for scene evaluation and tools, though exposed to bpy API,
it can give false 'dependency cycles' in bpy.data.user_map() results.

That's followup to rBe007552442634 really, both should be backported to 2.78
2016-09-22 11:07:35 +02:00
Bastien Montagne
ca5f91951c Fix Py's IDs user mapping: do not consider proxy_from here.
This is internal pointer helper for scene evaluation and tools, it's not exposed to bpy API anyway,
and can give false 'dependency cycles' in bpy.data.user_map() results.

Found by sybren in his Splode work.
2016-09-22 11:07:35 +02:00
Sergey Sharybin
fb85484e6c Fix memory leak in copy pose operator 2016-09-22 11:07:34 +02:00
Bastien Montagne
d5eb0b58a0 Cleanup: Fix epic indent failure in previous commit :/ 2016-09-14 16:24:16 +02:00
Bastien Montagne
c11fcc34c4 Fix missing PaintCurves list in bpy.data
Minimal list features for now, no add/remove stuff, that we can add later...

Reported by sybren.

Should be safe for 2.78.
2016-09-14 16:15:58 +02:00
Bastien Montagne
14d26df2f1 Fix T49342: TypeError when autocompleting bpy.app.something.
Regression from rB036c006cefe471. We can't use self here, self is bpy.app, not pydescriptor of python path getsetter...

So for now, do not try to replace getsetter by actual value in bpy.app's dict,
just return static var generated on first run.

Should be safe for 2.78.
2016-09-14 15:58:17 +02:00
Bastien Montagne
e02c63df1b Attempt to fix broken path remapping in own rB443b3ca9b9cb. 2016-09-14 13:26:30 +02:00
Joshua Leung
b6508da380 Code Cleanup: Deduplicate undo node freeing code 2016-09-14 13:26:04 +02:00
Joshua Leung
929701931d Fix: GPencil drawing sessions now respect limits for maximum undo steps
When drawing with Grease Pencil "continous drawing" for a long time
(i.e. basically, drawing a very large number of strokes), it could be
possible to cause lower-specced machines to run out of RAM and start
swapping. This was because there was no limit on the number of undo
states that the GP undo code was storing; since the undo states grow
exponentially on each stroke (i.e. each stroke results in another undo
state which contains all the existing strokes AND the newest stroke), this
could cause issues when taken to the extreme.
2016-09-14 13:26:01 +02:00
Bastien Montagne
9a35ebc1ea Fix two issues related to 'partial' .blend files:
I) Filename was not put in temp Main generated to save selected data only,
this was breaking readcode when trying to open partial file, leading to missing
filename in final loaded Main data.

II) Read code would confuse partial .blend files with Undo ones, when they had no screen in them
(which happens to 99.999% of partial .blend files I guess).

Reported by @sybren, thanks.

Should be safe enough for 2.78 release.
2016-09-14 11:41:16 +02:00
Sergey Sharybin
df4602ee3b Fix compilation error: Shadowing of variable 2016-09-14 11:04:34 +02:00
Sergey Sharybin
fa47bd1796 2.78 release: Update splash screen label 2016-09-14 10:37:35 +02:00
Bastien Montagne
c6e0c674ee Fix T35333: Update some WM/UI API functions docstrings.
Based on patch by @codemanx, but with slightly less verbose descriptions.

More detailed behavior etc. rather belongs to doc/python_api/examples/bpy.ops.x.py imho.
2016-09-14 10:26:22 +02:00
Bastien Montagne
1e5ac3b648 Fix bpy.data.user_map() ignoring unused datablocks.
Should be backported to 2.78.
Found by Sybren here in studio, thanks!
2016-09-14 10:26:22 +02:00
Philipp Oeser
dcccf4be30 Outliner: Report linked datablock edit failure when trying to rename linked data in outliner 2016-09-14 10:26:22 +02:00
Sergey Sharybin
50452f5b67 Fix T49323: Ineffective bone roll calculation with low rig scale
The code was expecting vector to be normalized, however after
applying inverted object matrix it was possible to have scale
applied to it.
2016-09-14 10:26:21 +02:00
Sergey Sharybin
4271c1cc71 Fix T49336: Outliner allows to edit restrict flags for linked objects 2016-09-14 10:26:21 +02:00
Howard Trickey
90f920c138 Fix T49296, assert failure in Bevel code.
The mesh interpolation function failed to fill a fractions-of-the-way
array properly when the distances are very small but nonzero.
2016-09-14 10:26:21 +02:00
Bastien Montagne
16135990cd Fix missing 'prop_required' flags in some ID RNA funcs.
Not critical, but would rather have this in 2.78 (for API doc reasons mostly).
2016-09-14 10:26:20 +02:00
Sergey Sharybin
00abe6ecf1 Fix/Workaround T49297: Crash related to custom data draw (Blender with ASAN)
Root of the issue is that active render index became wrong. This is the actual
thing to be fixed, but as usual this is quite tricky to reproduce. Since such
bad situation might have happened more and fix isn't really difficult or
intruisive let's avoid crash for now.

Can be revisited once we figure out root of the issue.

Nice for 2.78 release.
2016-09-14 10:26:20 +02:00
Bastien Montagne
3f5960b869 Fix T49299: Removing offset object in modifiers doesn't update mesh.
Own fault in new ID management work, thought rebuild the DAG itself was
enough to actually update whole scene, but we actually need to tag datablocks
for update as well, when we change (or remove) one of their ID pointers...
2016-09-14 10:26:20 +02:00
Bastien Montagne
faec666bbe Fix T49283: Crash in BKE_ptcache_make_particle_key.
This is really hack-fix actually, not sure why `get_pointcache_keys_for_time()` seems to assume
it will always find key for given part index at least for current frame, and whether this assumption
is wrong or whether bug happens elsewhere...

Anyway, this is to be wiped out in 2.8, so no point loosing too much time on it, for now merely
returning unchanged (i.e. zero'ed) ParticleKeys in case index2 is invalid. Won't hurt anyway,
even if this did not crash in release builds, would be returning giberish values.
2016-09-14 10:26:19 +02:00
Bastien Montagne
4929de9df7 Fix T49273: Crash during access to dupli weights at launch time.
See commit's comments for details, but this boils down to: do not try to use
purely runtime cache data as a 'real' ID pointer in readcode, it's likely
doomed to fail in some cases, and is bad practice in any case!

Thix fix implies dupliweight's object will be invalid until first scene update
(i.e. first particles evaluation).
2016-09-14 10:26:19 +02:00
Sergey Sharybin
9663471bb7 OpenSubdiv: Support multiple materials drawing in Cycles textured view
Consider for inclusion into 2.78.
2016-09-14 10:26:19 +02:00
Sergey Sharybin
7aa0103ca2 Revert "Depsgraph: Prioritize evaluation of the new scheduled nodes"
This reverts commit 9444cd56db.

This commit caused some flickering in the bones when swapping IK to Fk.

While it's unclear why such change caused any regressions, let's revert
it to unlock the studio.
2016-09-14 10:26:18 +02:00
Sergey Sharybin
b281df01c7 Fix T41883: Strip keyframes not respected for scenes rendered by other scenes 2016-09-14 10:26:18 +02:00
Mike Erwin
559e116a36 Fix cast shadows (material option) in the viewport
Fix cast shadows options (in material tab) not working in the viewport.
An off-by-one error. See D2194 for more.

Committing for Ulysse Martin (youle) who found & fixed this.
2016-09-14 10:26:18 +02:00
Sergey Sharybin
29f7a4abbd OpenSubdiv: Fix missing ORCO when enabling OSD but having dependency to the geometry
Was causing huge viewport lags.

Reported by angavrilov in IRC, thanks!

Safe and nice for 2.78.
2016-09-14 10:26:18 +02:00
Alexander Gavrilov
802d253a46 Fix T49251: moving smoke domain with additional resolution causes crash.
This is a bug in the multithreaded task manager in negative value range.

The problem here is that if previter is unsigned, the comparison in the
return statement is unsigned, and works incorrectly if stop < 0 &&
iter >= 0. This in turn can happen if stop is close to 0, because this
code is designed to overrun the stop by chunk_size*num_threads as
the threads terminate.

This probably should go into 2.78 as it prevents a crash.
2016-09-14 10:26:18 +02:00
Bastien Montagne
a2e08ef997 Fix own mistake in recent rB8b2a45052093, broke saving render results as images in some cases.
Reported by sebastian_k over IRC, thanks.

To be backported to 2.78.
2016-09-14 10:26:18 +02:00