Commit Graph

40024 Commits

Author SHA1 Message Date
Brecht Van Lommel
3ce280e825 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.
2013-07-08 17:56:51 +00:00
Antony Riakiotakis
861f9e10f7 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.
2013-07-08 15:35:53 +00:00
Campbell Barton
27734f5bec 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.
2013-07-08 13:30:11 +00:00
Howard Trickey
0a006cce9c 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.
2013-07-08 13:02:21 +00:00
Lukas Toenne
d75e0f320b 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.
2013-07-08 11:38:11 +00:00
Lukas Toenne
fa7e690a91 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. 2013-07-08 11:38:09 +00:00
Campbell Barton
61bbefe40d remove unused normal-recalc flags. 2013-07-08 08:56:46 +00:00
Campbell Barton
335fd7388f move normal recalculation into its own source file. 2013-07-08 08:50:04 +00:00
Sergey Sharybin
96d78e3de9 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! :)
2013-07-08 08:02:37 +00:00
Campbell Barton
8a388a7bef 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.
2013-07-08 07:40:32 +00:00
Campbell Barton
37d1984c53 edit on own commit r57801, don't check the size of dynamic arrays 2013-07-08 01:28:43 +00:00
Campbell Barton
2c8087aa2a 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).
2013-07-08 00:51:30 +00:00
Tamito Kajiyama
22f26b2ce4 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.
2013-07-07 17:24:30 +00:00
Tamito Kajiyama
15a2287a8e Fix for incorrect clipping of Freestyle strokes when the viewport preview is used. 2013-07-07 15:29:00 +00:00
Joshua Leung
bf6a74e3fc 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
all.

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!
2013-07-07 12:53:15 +00:00
Sv. Lockal
862f695d1c Fix #36038: Auto Keying warning message is clamped in Japanese 2013-07-06 20:42:24 +00:00
Campbell Barton
96953c748f fix [#36022] inconsistent naming for new images 2013-07-06 08:10:41 +00:00
Campbell Barton
ae754c6384 fix for crash deleting the world when viewport preview is used. 2013-07-06 07:34:38 +00:00
Campbell Barton
152e1bed45 fix [#36027] Close gap shifts clip leaves keyframes behind 2013-07-06 07:21:08 +00:00
Campbell Barton
0a1bcc78e0 fix for writing past array end with loop filling. 2013-07-06 02:20:39 +00:00
Campbell Barton
e43f25757b only make dynamic paint tag normals as dirty if it moves vertices. 2013-07-06 01:42:45 +00:00
Gaia Clary
fe865b8429 Changed default setting for transfer weights to Group:All 2013-07-05 09:34:17 +00:00
Campbell Barton
0d18f1829a fix [#35989] bridge tool flip mash
open edge loops were calculating flipping incorrectly.
2013-07-05 08:45:42 +00:00
Campbell Barton
970a4c7cc4 fix [#36005] viewport rendering crashes blender 2013-07-05 07:53:22 +00:00
Campbell Barton
02002c2394 fix [#36014] Individual Origin Translation across Normal Orientation doesn't work properly.
makes boundary edges use predictable orientation.
2013-07-05 05:52:49 +00:00
Campbell Barton
a02d256f5e fix [#35987] bevel gives nan vertices
The line intersection function bevel uses could give nan intersections.
2013-07-05 00:30:00 +00:00
Campbell Barton
32e917be8d correct typo in previous commit & minor changes. 2013-07-05 00:13:14 +00:00
Campbell Barton
9747e63094 fix for [#35911] wasn't complete, while weigths would show in editmode, weights that were modified by a weight modifier wouldn't. 2013-07-04 22:24:39 +00:00
Gaia Clary
a07a72d93d Added generic function to Sync pose bone with active vgroup. For use in Weight Paint and Vertex Paint 2013-07-04 21:49:48 +00:00
Gaia Clary
db9f21ddd3 replaced OPERATOR_CANCELLED by OPERATOR_FINISHED to get the redo panel for Transfer Weights 2013-07-04 20:33:52 +00:00
Campbell Barton
50148a0f53 edit on r57996, no need to use for loop. 2013-07-04 20:07:00 +00:00
Campbell Barton
077f2b77b9 missed change needed in r58003, wasn't selecting source group properly. 2013-07-04 19:45:11 +00:00
Campbell Barton
cee5bd4623 changes to weight paint transfer
- Use the active group of the active (target) object (not the active group of the other, unselected object)
- Ensure the active group doesnt change from the one that was set originally.
- defgroup_find_name was doing redundant lookup on its self.
2013-07-04 19:34:49 +00:00
Brecht Van Lommel
5ad4550f22 Fix #36010: missing 3D view header redraw when assigning shortcut key to
mesh automerge.
2013-07-04 19:29:04 +00:00
Campbell Barton
6fb6087c68 correct bad use of bool for cursor arg. 2013-07-04 18:58:00 +00:00
Brecht Van Lommel
6db8fd72f0 Fix #35957: blender internal viewport render did not do correct color management
for image textures.
2013-07-04 18:17:02 +00:00
Sv. Lockal
12d5340a5a Fix non-conditional out-of-bounds memory access in DoubleEdgeMask node 2013-07-04 17:57:03 +00:00
Brecht Van Lommel
ea5f0ec962 Fix #35997: add armature > single bone, then change location or rotation would
move only the origin and not the bone. It doesn't need to use any object
matrices to add the bone, the only reason this worked before is because they
were still unit matrices due to depsgraph not running immediately on add.
2013-07-04 14:59:26 +00:00
Brecht Van Lommel
7eb5cf8699 Fix #36001: crashing copying long strings in text buttons. 2013-07-04 14:37:38 +00:00
Brecht Van Lommel
881f0b1456 Revert revision 57896 to fix Make Local > All with multi user datablocks. It's
causing problems with link/append, needs some deeper changes but it's too close
to release for that.
2013-07-04 14:11:42 +00:00
Brecht Van Lommel
dc44fd032e Fix #36006: appending some datablock types (e.g. node groups) did not work, they
were always linked after a recent bugfix.
2013-07-04 13:03:08 +00:00
Brecht Van Lommel
1c01ad53d5 Remove SDL_VIDEODRIVER=dummy environment variable setting, this may interfere
with other applications launching SDL applications from Blender.

At the time this was added the game engine joystick code was unnecessarily
initializing the SDL video subsystem, and looking at the SDL source code that's
the only place this environment variable is read. That doesn't happen anymore,
though we do have WITH_GHOST_SDL now. But the environment variable is set after
GHOST has been initialized, otherwise this code would have actually broken that.
2013-07-04 11:28:52 +00:00
Campbell Barton
69b8b16464 rename poll functions from r57986, also no need to count the list to check if its empty. 2013-07-04 09:31:33 +00:00
Sergej Reich
a51b5c676e rigidbody: Code clenup
Remove duplicate null check.
2013-07-04 08:52:27 +00:00
Sergej Reich
734e49ade6 rigidbody: Remove constraint when removing one of it's objects
This is not the nicest behaviour but trying to keep both bullet and
blender side objects in sync breaks in this case.
There might be a better soluion but this avoids crashes for now.

Fixes: [#35995] Delete crash on specific scene (Physics)
2013-07-04 08:52:24 +00:00
Gaia Clary
5fc8393dee Moved 'vgroups exist' check into operator poll functions of weight tools 2013-07-04 08:47:42 +00:00
Campbell Barton
32e674c2c9 fix [#35998] Crash when trying rename Driver in Outliner
remove unused script define
2013-07-04 04:57:04 +00:00
Campbell Barton
70dc1d8cb6 stop adding groups from changing the active group with weight transfer, add BKE_defgroup_new function. 2013-07-04 03:56:18 +00:00
Campbell Barton
a0cfa3e420 fix [#35984] no way to know if a datablock is in editmode
the report explains the issue in detail, but basically you couldn't know if a mesh was in editmode without checking all the objects that use it.
add `is_editmode` readonly property for all datatypes which support editmode.

also make rna fail to build on implicit function declarations.
2013-07-03 22:57:00 +00:00
Campbell Barton
374383997c fixes/edits to wright transfer
- poll function now checks for a mesh.
- other selected lattices would crash, check for meshes there too.
- better reporting when transfer fails.
- remove feature to sync with active bone after transfer, other tools don't do this (we could make into a generic function if its needed).
2013-07-03 21:29:30 +00:00