Commit Graph

42522 Commits

Author SHA1 Message Date
Campbell Barton
e5c7535beb Code Cleanup: float/double promotions 2014-01-15 13:40:40 +11:00
Campbell Barton
da8619fe23 Math Lib: add iroundf function for: (int)floorf(a + 0.5f) 2014-01-15 13:40:40 +11:00
Joshua Leung
9e8428b09a Code cleanup - Commented out some code which wasn't actually doing anything
gpf->framenum is an int, not a float. Hence, this type of rounding has no effect.
2014-01-15 14:54:00 +13:00
Joshua Leung
fcec99d9cc Whitespace/Style fix 2014-01-15 14:45:46 +13:00
Joshua Leung
5196c4fd12 Fix uninitialised var warning 2014-01-15 14:45:45 +13:00
Antony Riakiotakis
53f93ef66d Fix build issues with mingw's 2014-01-15 00:33:55 +02:00
Sergej Reich
eda49cf58e Rigidbody: Remove keyboard shortcuts to add/remove bodies
We had several reports where users would create rigid bodies by accident
and then wonder why transformations behave differently.
Since these actions aren't used that often, just remove the shortcuts.
2014-01-15 01:07:50 +01:00
Campbell Barton
fab5438943 Code Cleanup: avoid duplicate calls to WM_window_pixels_x/y 2014-01-15 10:41:13 +11:00
Campbell Barton
cc978dc0c1 Fix for minor precision glitch while zooming on clamped view2d 2014-01-15 10:06:12 +11:00
gaiaclary
c00b8c538c fixed wrong comment 2014-01-14 23:08:29 +01:00
gaiaclary
875ddfcee0 Added missing include 2014-01-14 22:54:18 +01:00
Campbell Barton
a9f761708c Fix for icon generation with MSVC
Big thanks to Gaia for getting this working!
2014-01-15 08:40:56 +11:00
Bastien Montagne
a294d3a18f Cleanup: some boolean int to real bool. 2014-01-14 21:52:17 +01:00
Sv. Lockal
6e8321f2c0 Fix GLSL compatible_pow to give 1.0 for 0 ^ 0 2014-01-14 22:58:07 +04:00
Campbell Barton
1908c31b06 Fix for icon pin drawing too large when (U.pixelsize != 1) 2014-01-15 04:57:27 +11:00
Sergey Sharybin
43c2b36431 Correction to assert in previous commit 2014-01-14 23:51:26 +06:00
Howard Trickey
dad1d30bbf Fix to recent commit, == instead of = in do_version 2014-01-14 12:29:03 -05:00
Dalai Felinto
8a8ee2c601 fix #T37894: IK constraint desactivation does not work as expected
patch suggested by Séverin Lemaignan (skadge)
2014-01-14 14:45:00 -02:00
Howard Trickey
c5d3abc863 Bevel fix to clamping for percent type.
The clamp code is still very crude and over-conservative,
but was totally wrong for the percent amount type.
2014-01-14 11:21:56 -05:00
Howard Trickey
86616c675a Bevel Modifier: add width type and profile control.
This adds to the modifier the new controls that have been
added to the bevel tool.
2014-01-14 11:07:45 -05:00
Dalai Felinto
dfac6c4189 fix #T37892 BL_ArmatureConstraint.active returns wrong value
patch (with changes from me) by Séverin Lemaignan (skadge)
2014-01-14 13:22:41 -02:00
Campbell Barton
54e56cd309 Fix T38209: Curve's didn't account for negative scale
Would use the face winding from the previously drawn mesh
2014-01-15 00:35:43 +11:00
Campbell Barton
1fb9bb815a Fix for own regression, editmode object selection (Ctrl+RMB)
Wasn't working because of editmode override (which uses regular object selection in editmode)
2014-01-15 00:28:55 +11:00
Sergey Sharybin
ca2a14491e Fix T38196: Crash with smoke simulation
Issue was caused by KD tree being allocated with the wrong size.
2014-01-14 17:17:24 +06:00
Sergey Sharybin
e7d18eb7bd Add check for KD tree size to BLI_kdtree_insert()
Makes sure we're not trying to insert more nodes than we've
been expecting to.
2014-01-14 17:16:06 +06:00
Campbell Barton
aa986c3f3d Correct bad mistake in own recent to commit to angle calculation 2014-01-14 13:47:24 +11:00
Campbell Barton
20cea92db1 Code Cleanup: minor edits to recent commit 2014-01-14 13:39:55 +11:00
Jonathan Williamson
0f30231686 Missed a comment on last commit.
This was missed in the previous commit. Adding back for future readability. Thanks @campbellbarton for spotting it.
2014-01-13 20:35:35 -06:00
Jonathan Williamson
b3101aba6a Make Toolbar Tabs more readable
This makes the tabs slightly larger, increases the text size slightly, and adjusts the colors a bit to improve overall contrast. It also makes inactive tabs draw with a full tab shape, improving the readability at a glance, particularly when tabs are very small.

The users most affected will be those on smaller displays, where previously tabs were very difficult to read.

Reviewers: @billrey, @campbellbarton

Differential Revision: https://developer.blender.org/D170
2014-01-13 20:25:40 -06:00
Campbell Barton
5611fb6a32 Fix T38186: mesh inset didn't follow edge directions for flat surfaces
also improve evenness when the inset direction wasn't exactly between both edges,
2014-01-14 09:48:59 +11:00
Campbell Barton
8cb9b42c9c Math Lib: minor optimization for angle functions 2014-01-14 09:48:59 +11:00
Brecht Van Lommel
6eedf08cca Fix T38176: can't set vertex coordinate to 0.0 when it's set to 0.0000001. 2014-01-13 23:19:46 +01:00
Geoffroy Krantz
ff98be83a9 Empties with Images draw type: add support for movies and image sequences
This adds an ImageUser to such empties with all the typical settings.

Reviewed By: brecht, campbellbarton

Differential Revision: https://developer.blender.org/D108
2014-01-13 22:18:31 +01:00
Campbell Barton
c48c62a831 Code Cleanup: replace checks for ima->source with BKE_image_is_animated 2014-01-14 04:59:58 +11:00
Campbell Barton
800e2283aa Fix T38171: Vertical tabs don't respond to clicks on the left most pixels 2014-01-14 04:15:54 +11:00
Howard Trickey
22c9e532dc Color control for bl_debug_draw functions 2014-01-14 03:59:22 +11:00
Antony Riakiotakis
02386bd1e3 fix compilation for mingw-w64 2014-01-13 15:46:46 +02:00
Sergey Sharybin
5ad5883ce3 Fix crash happening on render after recent imbuf PERSISTENT flag 2014-01-13 20:25:42 +06:00
Campbell Barton
4c9a3a53bd UI Icons: store icons in git as uncompressed pixmaps (D196)
this allows for updating icons without committing a new PNG each time
(which is inefficient with git). The data files are converted into a
PNG at builds time and used just as they were before.
2014-01-14 00:14:03 +11:00
Sergey Sharybin
08981f3a91 Fix T37886: Material does no update when changing keyframes in dopesheet
It was a missing fcurve evaluation in scene update function which lead to
materials only being updated on frame change.

Added the same exception as we've got for the scene animation. It only
runs when there're materials tagged for the update, so wouldn't expect
speed regressions or so.
2014-01-13 19:02:23 +06:00
Sergey Sharybin
b1bb7d2ee0 Fix T38040: Crash after loading big image file in compositor
Issue was caused by cache limitor removing viewer image buffer
from the memory during compositing. Now made it so all viewer
images are persistent in the memory.

This solves the crash mentioned above and also makes it so
render/compo results are never lost.

Further tweaks are possible, but pretty much happy now, at
least no stoppers for work are there.
2014-01-13 18:47:15 +06:00
Sergey Sharybin
2ebe4f69a9 Compilation error fix and strict warning silence for previous commits 2014-01-13 16:33:18 +06:00
Sergey Sharybin
a8b3abc7fc Remove direct lattice modifiers calc from the drawing code
Same as mballs and curves it was only to work around DAG stupidness
which hopefully was fixed in one of the previous commits.

From quick tests everything works fine, if something is broken now
poke me to find a proper solution.
2014-01-13 16:29:07 +06:00
Sergey Sharybin
d01bb0b8b6 Avoid memcpy to self when validating UV layer name 2014-01-13 16:27:05 +06:00
Sergey Sharybin
63095e492b Remove direct mball creation from object conversion
Same as previous commit, mball shall be visible before conversion
meaning it is to be evaluated already.
2014-01-13 16:20:20 +06:00
Sergey Sharybin
b82cce04d6 Remove direct mball creation from the drawing code
This is the same case as curves, and really this is now
totally up to DAG, If something fails, poke me to fix the DAG.
2014-01-13 16:18:08 +06:00
Sergey Sharybin
881fb43878 Make bvhutil safe for multi-threaded usage
There were couple of reasons why it wasn't safe for usage from
multiple threads.

First of all, it was trying to cache BVH in derived mesh, which
wasn't safe because multiple threads might have requested BVH
tree and simultaneous reading and writing to the cache became a
big headache.

Solved this with RW lock so now access to BVH cache is safe.

Another issue is causes by the fact that it's not guaranteed
DM to have vert/edge/face arrays pre-allocated and when one
was calling functions like getVertDataArray() array could
have been allocated and marked as temporary. This is REALLY
bad, because NO ONE is ever allowed to modify data which
doesn't belong to him. This lead to situations when multiple
threads were using BVH tree and they run into race condition
with this temporary allocated arrays.

Now bvhtree owns allocated arrays and keeps track of them, so
no race condition happens with temporary data stored in the
derived mesh. This solved threading issues and likely wouldn't
introduce noticeable slowdown. Even when DM was keeping track
of this arrays, they were re-allocated on every BVH creation
anyway, because those arrays were temporary and were freed
with dm->release() call.

We might re-consider this a bit and make it so BVH trees are
allocated when DM itself is being allocated based on the DAG
layout, but that i'd consider an optimization and not something
we need to do 1st priority.

Fixes crash happening with 05_4g_track.blend from Mango after
the threaded object update landed to master.
2014-01-13 15:57:52 +06:00
Sergey Sharybin
bc989497de Fix T38139: Objects which are in cyclic dependency are not updated
Graph traversal which is based on counting parents which are still
to be updated fails in cases there are cycles in the graph.

If there are cyclic dependencies in the scene all the objects from
the cycles will be updated in a single thread now one by one. This
makes blender behave the same way as it was before multi-threaded
DAG landed to master.

This needed to tweak depsgraph a bit so now dag_check_cycle() sets
is_acyclic field of DAG forest if there are cycles in the graph.

TODO: It might be possible to save some time on evaluation when
      all the tagged objects were updated in multi-threaded DAG
      traversal.
2014-01-13 15:57:51 +06:00
Sergey Sharybin
e618d8238e Fix T38054: High CPU usage with many objects
This is a regression since threaded dependency graph landed to master.
Root of the issue goes to the loads of graph preparation being done
even if there's nothing to be updated.

The idea of this change is to use ID type recalc bits to determine
whether there're objects to be updated. Generally speaking, we now
check object and object data datablocks with DAG_id_type_tagged()
and if there's no such IDs tagged we skip the whole task pool creation
and so,

The only difficult aspect was that in some circumstances it was possible
that there are tagged objects but nothing in ID recalc bit fields.

There were several different circumstances when it was possible:

* When one assigns object->recalc flag directly DAG flush didn't
  set corresponding bits to ID recalc bits. Partially it is fixed
  by making it so flush will set bitfield, but also for object
  types there's no reason to assign recalc flag directly. Using
  generic DAG_id_type_tag works almost the same fast as direct
  assignment, ensures all the bitflags are set properly and for the
  long run it seems it's what we would actually want to.

* DAG_on_visible_update() didn't set recalc bits at all.

* Some areas were checking for object->recalc != 0, however it is was
  possible that object recalc flag contains PSYS_RECALC_CHILD which
  was never cleaned from there.

  No idea why would we need to assign such a flag when enabling
  scene simplification, this is to be investigated separately.

* It is possible that scene_update_post and frame_update_post handlers
  will modify objects. The issue is that DAG_ids_clear_recalc is called
  just after callbacks, which leaves objects with recalc flags but no
  corresponding bit in ID recalc bitfield. This leads to some kind of
  regression when using ID type tag fields to check whether there objects
  to be updated internally comparing threaded DAG with legacy one.

  For now let's have a workaround which will preserve tag for ID_OB
  if there're objects with OB_RECALC_ALL bits. This keeps behavior
  unchanged comparing with 2.69 release.
2014-01-13 15:57:51 +06:00
Sergey Sharybin
ac077f016d Remove direct displist creation from array modifier
First of all, it was needed to have that set scenes fix which
was done recently so curve is being evaluated properly on file
load.

And last but not least, also needed to tag DAG node to evaluate
path regardless to curve datablock settings so curve length is
always known.
2014-01-13 15:57:51 +06:00