Commit Graph

74117 Commits

Author SHA1 Message Date
Philipp Oeser
9c062ac310 Fix T72089: Image Editor - Paint mode, Clone Tool - disfunctional clear
button in the Image slot in the Brush panel

Caused/exposed by rBaf9ca138ba7b
Also relevant was rB828905190e12

Above commits moved the WM_UI_HANDLER_BREAK around so it would not be
returned anymore.
We need WM_UI_HANDLER_BREAK, otherwise we wont get through to to
KM_RELEASE. There are two places that explicitly check for KM_RELEASE
(call to `ui_do_but_extra_operator_icon` in both
`ui_do_but_SEARCH_UNLINK` / `ui_do_button`), and without the above we
only ever get here with KM_PRESS.

This patch restores the behavior regarding WM_UI_HANDLER_BREAK to what
is was before the two culprit commits.

Checked that both this report (T72089) and T69755 are working.

Maniphest Tasks: T72089

Differential Revision: https://developer.blender.org/D6363
2020-01-29 11:09:14 +01:00
Philipp Oeser
8410aa2684 Fix T67654: missing ui refresh when changing active particle system
Since changing the active particle system uses NC_OBJECT | ND_DRAW
for 'RNA_def_property_update()' we need to redraw/refresh
BCONTEXT_PARTICLE in 'buttons_area_listener()' as well.

Maniphest Tasks: T67654

Differential Revision: https://developer.blender.org/D6702
2020-01-29 10:55:25 +01:00
Henrik Dick
9c190dea4c Fix solidify complex fixed thickness on flipped normal boundary
Fixed thickness with zero offset gave uneven results for complex
solidify cases (3+ faces sharing an edge).

See D6643 for steps to redo the error.
2020-01-29 14:30:06 +11:00
Campbell Barton
337ce7c984 UI: hide filter alembic option
This was showing along side image save options.
2020-01-29 12:59:57 +11:00
Clément Foucault
b0f6fb8369 EEVEE: Micro optimize disk light
Try to never do operation twice and try to use MADD operations. Even if this
is very unlikely to make any difference, it can help compilers do some
optimization. I did not measure any difference as probes have much higher
impact on render time because of texture lookups.

Note that disk light is currently the most expensive light type so it
does not hurt to micro optimize.
2020-01-29 01:02:14 +01:00
Clément Foucault
3d73609832 Fix T67060 EEVEE: Noise caused by disk lights
This is an issue on some drivers that might output NaN out of sqrt if the
number is infinity.
2020-01-29 01:02:14 +01:00
Clément Foucault
b2034c6ba2 Fix T62730 Overlay: Selected edit hair points highlight is incorrect
This was due to the fact the drawing code was expecting the editpoints
to be equaly spaced. Reuse the code in particle.c to output the select
mask in red color channel of the particle (which is unused in new code).
2020-01-28 18:28:48 +01:00
Brecht Van Lommel
ca572e9970 Cleanup: fix compiler warnings related to deprecated members
For Freestyle, it helps to move the struct copy from C++ to C, where the
compiler knows that copying deprecated members is ok.
2020-01-28 18:25:31 +01:00
Sybren A. Stüvel
12865caf4f Alembic depsgraph: explicitly add ANIMATION -> CACHE dependency
This dependency was removed in fd0bc7e002,
as there already were dependencies ANIMATION -> PARAMETERS and
PARAMETERS -> CACHE, making ANIMATION -> CACHE unnecessary.

Upon subsequent inspection, the ANIMATION -> PARAMETERS dependency was
there due to the fallback behaviour in
`RNANodeQuery::construct_node_identifier()`. Now this is no longer
relied upon, and the required relation is made explicit again.
2020-01-28 17:58:19 +01:00
Brecht Van Lommel
5d36a2e587 Fix T72143: editing image frame start/offset does not update in Eevee 2020-01-28 17:48:30 +01:00
Clément Foucault
3fd4c88e3a Fix T72593 Blender crashes when modifier change the material count
Instead of changing the modifiers behavior, we make sure to always use
the data->totcol instead of the ob->totcol. Also we centralize getting
this number to avoid future issues.

Fix T72593 Blender crashes when separating mesh
Fix T72017 Crash on set visibility change
2020-01-28 16:39:37 +01:00
Sybren A. Stüvel
fd0bc7e002 Fix T72660: Alembic caches are not properly updated by drivers
Drivers were not considered when building the dependency graph for
`CacheFile` datablocks.
2020-01-28 16:28:44 +01:00
Bastien Montagne
864cb7f376 Partially fix & comment about bad handling of wrong_id in read_libblock().
Not fully fixing it for now since I do not see an easy way to remove freed
pointer from libmap, and it does not seem to be an actual, practical
issue currently, but eeek...
2020-01-28 16:09:57 +01:00
Jeroen Bakker
d33f4bce8d Fix T67006: Crash RenderEngine with preview
In a minimal render engine blender crashes as it cannot create a preview
of the material yet. This patch adds a failsafe test for this specific
scenario.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6633
2020-01-28 15:54:34 +01:00
Clément Foucault
ecab41e44f Fix T54422 FluidSim: ColorRamp set position does not update the viewport
This was a missing notification because of wrong type. Also remove
the id tag as the changes are still picked up by workbench and does not
affect geometry or the particle system directly.
2020-01-28 15:54:07 +01:00
Clément Foucault
ed4cbde967 Fix T66699 EEVEE: Material Preview "World" option doesn't work
Just hide the button for now.
2020-01-28 14:34:35 +01:00
Yevgeny Makarov
cdd223039b Fix T65350: scrolling popovers with trackpad not working on macOS
Differential Revision: https://developer.blender.org/D6483
2020-01-28 10:27:59 +01:00
Yevgeny Makarov
50d65d5a2e Fix: icon alpha theme option does not affect toolbar icons correctly
Differential Revision: https://developer.blender.org/D6535
2020-01-28 10:14:13 +01:00
Campbell Barton
2a39fb1345 Fix T68960: Crash loading app-template keymap 2020-01-28 16:44:24 +11:00
Clément Foucault
507a331f01 Fix T67552 EEVEE: Vector Curves node clamps maximum input value at 1.0 2020-01-27 19:52:20 +01:00
Clément Foucault
0366c46ec6 Fix T69070 EEVEE: Volume shader glitch if object as axis with 0.0 scale 2020-01-27 19:52:20 +01:00
Miguel Pozo
6bf0e9dbb1 Fix particle instance modifier generating NaN polygons in some cases
Particles that don't exist should not be used, for example due to a
density texture.

Differential Revision: https://developer.blender.org/D6561
2020-01-27 17:38:21 +01:00
Yevgeny Makarov
f4f57ed21a Fix part of T65404: quit dialog doesn't show if Blender is minimized
This solves the problem for macOS and Linux, but not Windows yet.

Differential Revision: https://developer.blender.org/D6673
2020-01-27 17:38:21 +01:00
mano-wii
2662ba2438 Fix T59804: Expose hidden bmesh.ops.symmetrize options in python
The operator actually supports a 6-item enum

Differential Revision: https://developer.blender.org/D6613
2020-01-27 12:59:11 -03:00
Brecht Van Lommel
3788901107 Cleanup: fix compiler warnings 2020-01-27 12:19:49 +01:00
Bastien Montagne
34c8ba6d3e Fix T73399: Crash trying to move the origin of an empty.
Empty objects have no obdata, so we need to check for NULL id...
2020-01-27 11:48:44 +01:00
Antonio Vazquez
7e8e7bfe69 Fix T72862: Viewport Render doesn't render Grease Pencil Overlays
Fix by @campbellbarton
Note: Duplicated commit done in master first by error
2020-01-27 11:40:38 +01:00
Campbell Barton
756b9acaf5 Fix T71719: Unrelated menus open on hover
Logic to open menus on hover changed since 2.7x for convenience
switching between popovers in the top-bar.
This also made hover open menus in situations where it isn't useful.

Restrict this to buttons placed side-by-side.
2020-01-27 19:45:20 +11:00
Campbell Barton
3ca9eaf187 BLI_rect: add rect-rect intersection checks on a single axis 2020-01-27 17:57:51 +11:00
Campbell Barton
9ee87231e1 Fix T72449: Stale outliner selection after object duplicate 2020-01-27 16:57:48 +11:00
Campbell Barton
9a8dd37d1a makesdna: avoid 'alloca' in a for loop
Issue raised by Sergey in D6634
2020-01-27 13:39:58 +11:00
Alexander Gavrilov
fc1f5bded4 Depsgraph: fix false positive time dependencies for simple drivers.
The dependency graph has to know whether a driver must be re-evaluated
every frame due to a dependency on the current frame number. For python
drivers it was using a heuristic based on searching for certain sub-
strings in the expression, notably including '('.

When the expression is actually evaluated using Python, this can't be
easily improved; however if the Simple Expression evaluator is used,
this check can be done precisely by accessing the parsed data.

Differential Revision: https://developer.blender.org/D6624
2020-01-24 20:48:02 +03:00
Pablo Dobarro
300f937aec Sculpt: Rename Topology Brush to Slide Relax Brush
The full name was "Topology Slide/Relax", but it didn't fit in the
toolbar UI. This was causing some problems:

- The mesh filter that does the same thing is called "Relax"
- We may want to add a "Topology Brush" tool in the future that is more
oriented to retopology task (like creating strips of quads), so by doing
this we avoid having two tools with the same name in the UI.

Reviewed By: billreynish

Differential Revision: https://developer.blender.org/D6590
2020-01-24 18:21:19 +01:00
Pablo Dobarro
5186bb56b5 Fix T71373: Sculpt Mask not extracting correctly on scaled objects
This patch applies the original object scale to the coordinates of the
extracted mask mesh. Without this patch, the mesh was no taking the
original object scale into account and the shrinkwrap will fail.

The other solution would be copying the objecty scale to the new
extracted mask object, but I would like to avoid entering sculpt mode
with scaled objects as it may produce wrong behaviors in some tools.

Reviewed By: jbakker

Maniphest Tasks: T71373

Differential Revision: https://developer.blender.org/D6207
2020-01-24 18:14:13 +01:00
Sebastián Barschkis
7a9f102537 Fix T72975: [Mantaflow] Mesh generation bug
The initial value for phi was too high.
2020-01-24 17:23:50 +01:00
mano-wii
2bd62ca7eb Fix T73349: X-Ray Mode - snapping through object stop working on value = 1 2020-01-24 10:06:27 -03:00
Sergey Sharybin
18343c230d Fix/workaround initialization order of static TBB/MKL
Was caused by recent refactor of dependencies in 517870a4a1.

While there is no fully reliable solution to this issue other than
making TBB a dynamic library dependency (as documentation tells us
to do), there seems to be simple workaround which doesn't require
deeper changed in build process and packaging.

Tested on Brecht's computer who managed to reproduce the issue on
Linux (T72015#857423).
2020-01-24 12:47:35 +01:00
Sybren A. Stüvel
71d53ab465 Fix T73001: Shader Node with driver not updating when animated
When there are ID properties on an object, and these are animated and
used by a driver, the depsgraph has proper connections between ACTION →
ID PROPERTY → DRIVER.

When these properties are defined on a mesh, however, the depsgraph
relations are incorrectly created between GEOMETRY → PROPERTIES_EXIT →
DRIVER (because it's assumed that 'source = ENTRY' implies 'geometry').

This patch solves this by first checking whether the targeted property
is an ID property and handling it accordingly. This also made it
possible to remove some special cases from pose bone relations.

Maniphest Tasks: T73001

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D6571
2020-01-24 12:16:33 +01:00
Bastien Montagne
316d2c1522 Fix T73336: Several issues (including crashes) with ID pointer IDProps and RNA.
`RNA_property_pointer_set()` was just broken when assigning to an ID
pointer IDProp, on both debug/checks and actual assignment.

That was at least affecting RNA copying and liboverrides area...
2020-01-24 11:39:21 +01:00
Bastien Montagne
af00fab312 IDProps: add utility to set an ID pointer IDProp value. 2020-01-24 11:39:21 +01:00
Philipp Oeser
005af1e274 Fix T72083: Object.proxy_collection is been set to linked target object
even when target is not a collection

Looks like this was (accidentally) removed in {rBbe9e469ead22}
https://developer.blender.org/
rBbe9e469ead227aee8d4c29b98a125cf599c5c8bb#change-pFg0VUTAHY2q

This could also result in a missing update in
object_handle_update_proxy, see T72083 for an example.

Thx @Macroni investigating!

Maniphest Tasks: T72083

Differential Revision: https://developer.blender.org/D6651
2020-01-24 09:54:03 +01:00
Clément Foucault
c5436883c6 Fix T69121 DRW: Missing depth buffer refresh with GPencil + Cycles
I just cleaned up the logic and checked for GPencil objects in the scene.
2020-01-23 21:38:06 +01:00
Clément Foucault
c2e21b2329 Fix T71374 EEVEE: Fix Node group socket not converting inputs as in Cycles
Pretty straight Forward. Create a temp node during sockets expansion to
force the conversion to float.
2020-01-23 19:56:50 +01:00
Sergey Sharybin
517870a4a1 CMake: Refactor external dependencies handling
This is a more correct fix to the issue Brecht was fixing in D6600.

While the fix in that patch worked fine for linking it broke ASAN
runtime under some circumstances.
For example, `make full debug developer` would compile, but trying
to start blender will cause assert failure in ASAN (related on check
that ASAN is not running already).

Top-level idea: leave it to CMake to keep track of dependency graph.

The root of the issue comes to the fact that target like "blender" is
configured to use a lot of static libraries coming from Blender sources
and to use external static libraries. There is nothing which ensures
order between blender's and external libraries. Only order of blender
libraries is guaranteed.

It was possible that due to a cycle or other circumstances some of
blender libraries would have been passed to linker after libraries
it uses, causing linker errors.

For example, this order will likely fail:

  libbf_blenfont.a libfreetype6.a libbf_blenfont.a

This change makes it so blender libraries are explicitly provided
their dependencies to an external libraries, which allows CMake to
ensure they are always linked against them.

General rule here: if bf_foo depends on an external library it is
to be provided to LIBS for bf_foo.
For example, if bf_blenkernel depends on opensubdiv then LIBS in
blenkernel's CMakeLists.txt is to include OPENSUBDIB_LIBRARIES.

The change is made based on searching for used include folders
such as OPENSUBDIV_INCLUDE_DIRS and adding corresponding libraries
to LIBS ion that CMakeLists.txt. Transitive dependencies are not
simplified by this approach, but I am not aware of any downside of
this: CMake should be smart enough to simplify them on its side.
And even if not, this shouldn't affect linking time.

Benefit of not relying on transitive dependencies is that build
system is more robust towards future changes. For example, if
bf_intern_opensubiv is no longer depends on OPENSUBDIV_LIBRARIES
and all such code is moved to bf_blenkernel this will not break
linking.

The not-so-trivial part is change to blender_add_lib (and its
version in Cycles). The complexity is caused by libraries being
provided as a single list argument which doesn't allow to use
different release and debug libraries on Windows. The idea is:

- Have every library prefixed as "optimized" or "debug" if
  separation is needed (non-prefixed libraries will be considered
  "generic").

- Loop through libraries passed to function and do simple parsing
  which will look for "optimized" and "debug" words and specify
  following library to corresponding category.

This isn't something particularly great. Alternative would be to
use target_link_libraries() directly, which sounds like more code
but which is more explicit and allows to have more flexibility
and control comparing to wrapper approach.

Tested the following configurations on Linux, macOS and Windows:

- make full debug developer
- make full release developer
- make lite debug developer
- make lite release developer

NOTE: Linux libraries needs to be compiled with D6641 applied,
otherwise, depending on configuration, it's possible to run into
duplicated zlib symbols error.

Differential Revision: https://developer.blender.org/D6642
2020-01-23 16:59:18 +01:00
Antonio Vazquez
d9d11e2faf Fix T73327: GPencil strength sculpt brush not working with small brush radius
The problem was related to the smooth of the strength. As the factor was very low and the value was smoothed , the result was almost nothing when the radius was very small. Now the factor is higher and the smooth is done after clamping pressure.
2020-01-23 16:55:37 +01:00
Clément Foucault
170844135a Fix T67050 Overlay: Forcefield limits are not dashed
This adds some kind of dashing to the tube and cone limits. Although the
dashing is in object space and is not a good as old dashing. But it is
the least time consuming and least complex solution.
2020-01-23 15:41:41 +01:00
Clément Foucault
3cd32c376d Fix T66956 EEVEE: NaN produced by bad geometry mess with the DoF
Sanitize the source of the depth of field.
2020-01-23 15:41:41 +01:00
Clément Foucault
6dcbc3cd5a Fix T73335 Overlay: Light Distance line does not represent custom distance
This is a fix to the issue that light distance line end does not represent
anything now that shadow bounds are computed automatically.
2020-01-23 15:41:41 +01:00
Sybren A. Stüvel
fb0136f908 Fix T71311 Bridge Edge Loops crash when bridging cube edges
This commit will prevent the crash. It does produce a result that may not
be desirable (only briding one face of the cube), but at least it's better
than crashing.
2020-01-23 14:39:50 +01:00
Sergey Sharybin
cbbbb9d179 Fix wrong DNA alignment on arm{el,hf} and mipsel
Technically, pointers are to be padded with followup pointer.
2020-01-22 15:34:27 +01:00