Commit Graph

49420 Commits

Author SHA1 Message Date
Brecht Van Lommel
e6830300b7 Fix incorrect GLSL bump mapping in editmode when the UV coordinates are
flipped, was not passing sign on to GLSL shader.
2013-07-01 14:49:08 +00:00
Joshua Leung
7a304c2d11 Bugfix [#35744] FCurve select changes on Graph Editor Resize
Selection state of F-Curves is lost when resizing the Graph Editor.

The problem was that SIPO_TEMP_NEEDCHANSYNC was getting set in the graph_init()
callback, which gets called everytime the view resizes, and not just the very
first time this happens. However, setting this flag forces the selection state
to the updated/pulled from the scene data.

In the past, it was necessary to set this flag so that we could force F-Curve
colors to get initialised correctly. However, things probably changed at some
point, so this behaviour is no longer needed. At worst now, opening a new graph
editor may not show F-Curve selection correctly synced with the viewport, though
that's easily worked around by reselecting whatever it is in the 3d view.
2013-07-01 14:14:21 +00:00
Joshua Leung
64bc3ce89a Bugfix [#35856] Bones gets scaled chaotically when during NLA Strip Blend In/Out
This was one of the consequences of r.57333 (i.e. influence shouldn't be ignored
on the first strip that animates a channel), as scale should really default to a
base value of 1 (instead of things being blended against 0 as per all other
properties). The end result was that bones were getting scaled to zero here when
the influence of their strip fell to zero.

Now, we use the RNA default values of properties to initialise their initial
values. This may/may not work well in all cases:
1) For properties which don't have the appropriate RNA defaults set, this will
be problematic. But, most properties people are likely to animate here I think
are already set up correctly.
2) It may not always be nice to have values "snapping back" to default values.
In this case, you should still be defining a strip at the bottom of your NLA
stack which defines what the appropriate rest poses *should* be for your shot.
2013-07-01 13:57:00 +00:00
Joshua Leung
72a5c1f007 Bugfix [#35887] Keyframes inserted at wrong time on offsetted NLA Strips when
using "Auto Keying" + "Insert Available Only"

Patch from Campbell.

The problem was that NLA offset/mapping correction was only done when no
destination action was supplied to insert_keyframe(). In most cases, this is not
a problem, since all normal keyframing goes through keyingset or the insert-
button operators, and these just pass action=NULL (since they're too lazy to
look it up). However, there is one situation where this bug gets triggered (the
specific combination of autokeyframing and "insert available only"), where the
caller of insert_keyframe() actually passed in an action (to prevent it from
creating one itself!).
2013-07-01 13:19:38 +00:00
Joshua Leung
4f3f95751a Bugfix [#35936] Can't create new vertex group when using Ctrl G menu
This was caused by r.57812

There were two problems here:
  1) vertex_group_vert_select_unlocked_poll()  had faulty logic which meant that
it always failed when there were no vgroups present yet - the final return
always just fell through
  2) Since the "Assign to New Groups" option was actually implemented using the
same operator as "Assign to Active Group" (just with an extra parameter set), if
the active group was locked, it was not possible to "Assign to New Group" (even
though a new group would not be locked).
2013-07-01 13:02:53 +00:00
Sergey Sharybin
b763876cae Made modifiers_getVirtualModifierList safe for threading
Move static variables to context filling in by this fcuntion
and owned by a callee function. This ensures no conflicts
between threads happens because of static variables used in
this function.

Also moved modifier types and virtual modifiers data to a
function called from creator. This is needed to be sure all
the information is properly initialied to the time when
threads starts to use this data.
2013-07-01 11:00:22 +00:00
Sergey Sharybin
16efede680 Merging r57816 through r57896 from trunk into soc-2013-depsgraph_mt 2013-07-01 09:07:21 +00:00
Sergey Sharybin
61d37cd47c Fix for Make Local -> All not working correct with multy-user datablocks
Make Local operator uses BKE_library_make_local function if all the
datablocks needs to be made local. And this function was calling
id_clear_lib_data for every datablock, which only clears library
data. But this function doesn't work correct for datablocks which
areshared by multiple users (this is also mentioned in comment
for this function).

This lead to situations when two datablocks shares the same runtime
data leading to crashes later. For example making everythig local in
scales cycles scene from durian ends up in a crash when toggling
rig edit mode.

Solved by using id_make_local instead of id_clear_lib_data, which
will ensure all the data are nicely expanded and made local.

Checked by Brecht, thanks fr the review!
2013-07-01 08:53:45 +00:00
Campbell Barton
0baec4cf2d fix [#35858] there were two bugs here, hidden faces were occluding in vertex selection mode. 2013-07-01 08:25:27 +00:00
Campbell Barton
e9208e99b7 bridge tool: calculate face normals before triangulating, own error when removing normal recalc from the bmesh operator.
also rename `Fill Grid` -> `Grid Fill` to match `Beauty Fill`
2013-07-01 07:15:12 +00:00
Campbell Barton
73d32fdcc2 add type checking assert in bmesh operator iterator. 2013-07-01 07:12:05 +00:00
Campbell Barton
6321f11f03 tweak to commit r57891, dont draw hidden faces/edges in editmode. 2013-07-01 01:25:21 +00:00
Campbell Barton
c729c5ab4b fix [#35911] Show weights not working with a weight edit modifier in edit mode 2013-07-01 00:42:44 +00:00
Campbell Barton
b3ceab896a add some missing members to opengl debug print, also use a macro to avoid passing each arg twice. 2013-06-30 23:50:17 +00:00
Campbell Barton
c9add22b5e opengl debug info, make GPU_state_print() only show values in arrays that are set. (was print 32 values every time) 2013-06-30 23:30:21 +00:00
Campbell Barton
e64ae3ad7c fix [#35914] Blender crashes when trying to use vertex selection masking on a copy directly after using SHIFT+d 2013-06-30 22:04:03 +00:00
Campbell Barton
5dad1b2bb5 minor change for high res displays, scale fcurve handles and view3d axis size. 2013-06-30 21:41:06 +00:00
Jeroen Bakker
d492a9ffa9 Fix for
* [#35922] RGB Input Node doesn't work properly
2013-06-30 13:35:00 +00:00
Brecht Van Lommel
97bf777cba Fix more swapped descriptions for mouse X/Y position properties. 2013-06-29 11:02:36 +00:00
Brecht Van Lommel
3a69d276f8 Fix swapped descriptions for window X/Y position properties. 2013-06-29 10:59:54 +00:00
Brecht Van Lommel
07f4465c77 Fix scons/windows build error, missing pthreads include in blenfont for mutex. 2013-06-29 10:52:18 +00:00
Campbell Barton
32d5b52f59 re-arrange '--help' output into more useful sections (added debug, python).
also minor style cleanup
2013-06-29 10:09:15 +00:00
Gaia Clary
b70c844c5f fixed a compiler warning message in vs 2008 2013-06-29 08:41:20 +00:00
Gaia Clary
23d3c64b59 fixed Blender crash, but unclear when this situation can happen 2013-06-29 08:38:17 +00:00
Sergey Sharybin
11972c0d82 Towards threaded object update
This commit contains changes related on running function
BKE_object_handle_update_ex from multiple threads in order
to increase scene update time when having multiple
independent groups of objects.

Currently this required changes to two areas:

- scene.c, where scene_update_tagged_recursive is now using
  threads for updating the object

  There're some tricks to prevent threads from being spawned
  when it's not needed:

  * Threading will only happen if there're more than one CPU
    core.

  * Threading will happen only if there're more than single
    object which needed to be updated.

  There's currently one crappy part of the change: which is
  freeing object caches (derivedFinal, derivedDeform and so)
  from main thread. This is so because in case VBO are used
  freeing DM is not thread safe. This is because DrawObject
  used global array. Would look into possibility of making
  that code safe later.

  There're also currently some ifdef-ed debug-only code, which
  helps a lot troubleshooting whether everything is working
  fine. This code looks a bit ugly now, will either drop it
  later or make it more cleat.

  And one more thing: threaded update is CURRENTLY DISABLED.
  This is because of some thread-unsafe issues discovered
  while was working on this patch. Namely:

  * I have once a crash in Curve module. Wasn't been able
    to reproduce the crash, but could thing about some
    unsafe code there.

  * Virtual modifier list is not thread-safe (it uses static
    variables).

  * Armature modifier is also doesn't seem to be thread safe
    because of storing some temporary runtime data in actual
    armature.

  All this issues are to be solved next.

- depsgraph.c, where i've added a function which gives list
  of groups, each group contains objects and dependency is
  only allowed between objects inside one group.

  This is needed to make scheduling of objects easier, which
  means update threads will operate on groups, and will handle
  objects one-by-one inside group. Different threads will
  operate on different groups.

  Currently such groups will be generated on every update.
  Actually, on every run of scene_update_objects_threaded which
  only happens if there're objects marked for update. In the
  future we could consider storing such groups in graph itself,
  which will help saving CPU power on building such groups.
  But this is something to be discussed with Joshua first.

P.S. If you really want to test threaded update, you'll
     need to replace:

       #undef USE_THREADED_UPDATE

     with:

       #define USE_THREADED_UPDATE
2013-06-28 21:58:56 +00:00
Sergey Sharybin
f934825a4e Allow some operators when interface is locked
Now it's possible to mark operator as safe to be used
in locked interface mode by adding OPTYPE_ALLOW_LOCKED
bit to operator template flags.

This bit is completely handled by wm_evem_system, not
with operator run routines, so it's still possible to
run operators from drivers and handlers.

Currently allowed image editor navigation and zooming.
2013-06-28 21:58:52 +00:00
Sergey Sharybin
02483146ee Code cleanup: replace bunch of ifdef+if(do_debug_handler) with
a macro which checks all the stuff and keeps code easy to follow.
2013-06-28 21:58:48 +00:00
Campbell Barton
62ab3baea4 replace LATTICE_PT macro with BKE_lattice_index_from_uvw(). 2013-06-28 21:24:38 +00:00
Campbell Barton
f55ef8b3fc fix regression since early 2.5x, there was no way to copy library linked objects. 2013-06-28 19:33:58 +00:00
Campbell Barton
24e8f2f4ce fix for crash linking fonts to other objects with linked obdata (link, undo would crash). 2013-06-28 18:39:39 +00:00
Campbell Barton
b6ffc681b1 view-selected didnt work for metaballs in object mode (radius from previous commit was 2x too large too). 2013-06-28 18:19:55 +00:00
Brecht Van Lommel
77e0709e48 Fix #35551: the topology mirror setting affected shape key and vertex group but
this was confusing as there was no setting visible for it. Now these menus
contain an entry to mirror without and with topology mirror.
2013-06-28 17:13:09 +00:00
Campbell Barton
5d413b523a fix for crash when setting the cursor in background mode. 2013-06-28 16:37:39 +00:00
Campbell Barton
86515e5086 test operator script, add ability to load files from a path while testing operators. 2013-06-28 16:30:34 +00:00
Campbell Barton
8b96383b8f fix [#35860] crash if pressing <F8> in import dialog
disallow reloading scripts while running modal, python operators.
2013-06-28 16:15:44 +00:00
Brecht Van Lommel
dc85135045 Fix #35412: blender internal "from dupli" texture coordinates not working with
particles in linked groups.
2013-06-28 16:06:55 +00:00
Gaia Clary
9e709d82ae changed Pulldown box label for clarity 2013-06-28 15:12:54 +00:00
Brecht Van Lommel
e5f23c00c1 Fix: blender internal transparent shadows were not influenced by object color alpha. 2013-06-28 15:00:05 +00:00
Brecht Van Lommel
a7e7b69a65 Fix #35902: build navigation mesh crash with multiple meshes selected. 2013-06-28 14:15:14 +00:00
Brecht Van Lommel
c57d9cc44b Fix #35900: image editor save multilayer EXR was not using the compression
codec specified by the user.
2013-06-28 13:13:45 +00:00
Brecht Van Lommel
0d7dbbb6e1 Fix #35884: crash opening .blend with generated color grid image and preview render.
Printing text on the color grid image would initialize font glyphs from a thread at
the same time as the UI, causing conflicts. The freetype glyph renderer needs to be
mutex locked because it uses a shared buffer internally even when rendering for
different fonts. Also needed to change the image generate function to use the render
monospace font to avoid conflicts in blenfont.

What's still weak in the blenfont API is that there is no distinction between a font
and a thread using that font to render with some particular size, style, etc.
2013-06-28 13:05:15 +00:00
Campbell Barton
ca33bea285 view-select wasn't working for metaballs. 2013-06-28 06:54:49 +00:00
Campbell Barton
3370b765ec fix [#35901] Hooks on armature bones are calculated in wrong space 2013-06-28 06:00:38 +00:00
Campbell Barton
aa9ffc0bc2 avoid crashes running screendump and screen editing operators in background mode. (not that these would be useful but better not crash) 2013-06-28 05:39:05 +00:00
Brecht Van Lommel
6d400423f9 Fix #35808: blender internal viewport with freestyle would keep continuously
rerendering for no reason.

Update tags were not being done in the proper Main database.
2013-06-27 22:13:40 +00:00
Campbell Barton
eba9b4f6c1 fix for out of bounds read in BLI_path_rel 2013-06-27 20:47:59 +00:00
Campbell Barton
d1f4827a40 IK plugin range check was wrong, could do out of bounds reads. 2013-06-27 19:52:50 +00:00
Gaia Clary
e2e487a877 Fix: Check for locked Vertex Group (returned true where false was expected) 2013-06-27 18:23:03 +00:00
Campbell Barton
73fcfd8651 fix for memory leak in vgroup_copy_active_to_sel 2013-06-27 17:11:23 +00:00
Thomas Dinges
4a113cab0a Merged revision(s) 57768-57827 from trunk/blender into soc-2013-dingto 2013-06-27 16:16:54 +00:00