Commit Graph

14803 Commits

Author SHA1 Message Date
Sergey Sharybin
86aaa3efba Fix T55126: COW problem: there is an active object even if unselectable 2018-06-07 16:31:10 +02:00
Sergey Sharybin
8366c3ecd8 Depsgraph: Ensure collections are up to date after modifications
Before that copied collection in copy-on-write were running out
of sync with original ones. This was causing crash with the
following scenario:

- Delete some objects from scene
- Add particle system to an object
- Change particle mode to Hair

Thanks Dalai for debug session! Pair programming ftw!
2018-06-07 14:41:29 +02:00
Campbell Barton
da8d33e2e3 Merge branch 'master' into blender2.8 2018-06-07 13:41:32 +02:00
Campbell Barton
5330f1c5d1 Fix sculpt assert on initialization 2018-06-07 13:39:49 +02:00
Sergey Sharybin
a54235e0c6 Particle mode: Support children drawing
The issue is that children drawing is done by object mode,
which operates with data from evaluated context. But that
data needs edit mode's cache to be properly updated first.
2018-06-07 11:31:56 +02:00
Sergey Sharybin
1aa89d9a1c Particle edit: Simplify code by benefiting from single edit context
Makes ADD brush to work.

At some point children particles draw got broken, children are not
visible for until first stroke is done. Still looking into it.
2018-06-07 11:31:56 +02:00
Campbell Barton
ba80d8440f Cleanup: style 2018-06-06 22:17:06 +02:00
Campbell Barton
36000e6da3 Cleanup: unused function 2018-06-06 16:36:00 +02:00
Brecht Van Lommel
d706101559 Depsgraph: remove legacy code for dupli group updates.
This caused crashes in some cases, and should be fully handled by
the depsgraph now.
2018-06-06 16:00:25 +02:00
Brecht Van Lommel
f55f418867 Fix incorrect double checked lock in collection object cache. 2018-06-06 16:00:25 +02:00
Sybren A. Stüvel
4a52531a11 Alembic: Fix double-free of mutex
The mutex was shared between CoW copies of the CacheFile datablock, and
as a result also freed multiple times. It is now only freed when the
original datablock is freed; the CoW copies share the same mutex.
2018-06-06 14:38:17 +02:00
Sybren A. Stüvel
4c4fa3d49b Fix double-free of custom data
This causes a temporary spike in memory usage when creating a copy; the
entire copy will be removed anyway when DerivedMesh is removed.
2018-06-06 14:38:17 +02:00
Sergey Sharybin
180e8f8bfb Depsgraph: Remove confusing metaball logic
DATA datablock must evaluation must never depend on object it is
used for. If there is something what depends on an object, it must
be done on object level.

At least the actual callback was empty.
2018-06-06 12:36:51 +02:00
Sybren A. Stüvel
7a76223f1f Ensure BKE_mesh_new_nomain_from_template() always has valid mxxx pointers
When the source mesh doesn't have the primary layers (CD_VERT for vdata,
etc.) the returned mesh also didn't have those layers, even when non-zero
elements were requested (for example requesting 4 vertices would still
result in mvert = NULL).
2018-06-06 12:27:25 +02:00
Sybren A. Stüvel
8a0e6a3143 Consolidated custom data layer initialisation
Code shared between BKE_mesh_new_nomain() and
BKE_mesh_new_nomain_from_template() is now in separate functions, instead
of copy-pasted.
2018-06-06 12:27:25 +02:00
Sybren A. Stüvel
5e180ebffc Set mesh->totface in nomain-mesh creation
The totxxx fields should match the number of elements in their respective
custom data layers.
2018-06-06 12:27:25 +02:00
Sybren A. Stüvel
23db3a5ade Renamed BKE_nomain_mesh_xxx → BKE_mesh_nomain_xxx
This maintains the `BKE_mesh_` prefix for the mesh-related BKE functions.
2018-06-06 10:30:24 +02:00
Sybren A. Stüvel
783d31c3a3 DerivedMesh deprecation: Removed some functions in displist.c
Those functions were using DerivedMesh but are not called from anywhere.
As a result, they cannot be tested after porting DerivedMesh to Mesh.
2018-06-06 10:11:31 +02:00
Sybren A. Stüvel
abccde4d68 DerivedMesh deprecation: marked no-longer-in-use function
Functions that are no longer in use can be marked as such, so that later
we can easily remove them.
2018-06-06 10:11:31 +02:00
Sybren A. Stüvel
5f543915e8 Modifiers: ported curve_calc_modifiers_post() internals from DerivedMesh → Mesh
The function still returns a DerivedMesh, but internally it uses Mesh
now.
2018-06-06 10:11:31 +02:00
Campbell Barton
a9f9236670 Merge branch 'master' into blender2.8 2018-06-06 09:39:35 +02:00
Campbell Barton
bfbd85e9d6 Fix error using freed bmain
Regression in 481cdb08ed
2018-06-06 09:36:50 +02:00
Campbell Barton
ab375079df Cleanup: rename WITH -> USE for internal defines 2018-06-06 09:29:54 +02:00
Campbell Barton
3c9e2e82fa Cleanup: style 2018-06-05 21:32:49 +02:00
Bastien Montagne
f0d9dbae0d Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/blendfile.c
	source/blender/blenloader/intern/readfile.h
	source/blender/blenloader/intern/versioning_250.c
	source/blender/blenloader/intern/versioning_260.c
	source/blender/blenloader/intern/versioning_270.c
	source/blender/blenloader/intern/versioning_legacy.c
	source/blender/editors/render/render_shading.c
	source/blender/makesrna/intern/rna_movieclip.c
	source/blender/render/intern/source/pipeline.c
	source/blender/render/intern/source/voxeldata.c
2018-06-05 17:02:50 +02:00
Sybren A. Stüvel
ce6db959c7 Moved function declarations from BKE_DerivedMesh.h to BKE_mesh_runtime.h
The function definitions still reside in DerivedMesh.c. Once we're done
porting all the DerivedMesh use to Mesh, we'll move the still-relevant
functions to mesh_runtime.c. This move is now cumbersome due to shared
statically-declared utility functions in DerivedMesh.c
2018-06-05 16:59:25 +02:00
Sybren A. Stüvel
a9ed50514c Moved function declarations from BKE_mesh.h → BKE_mesh_runtime.h 2018-06-05 16:59:18 +02:00
Bastien Montagne
481cdb08ed Cleanup: use new accessors to blendfile path (Main.name). 2018-06-05 16:33:46 +02:00
Bastien Montagne
1d97e948d2 Cleanup: add hleper functions to get filepath from Main.
This helps making things clearer and cleaner. Func returning filepath of
G.main is separate, so that we can easily track its usages, and
hopefully deprecate it at some point. Though that usage of G.main is
likely the less evil one, you nearly always want current blendfile path
in those cases anyway.
2018-06-05 16:33:46 +02:00
Campbell Barton
d94df18550 Cleanup: doxy grouping for mesh runtime API 2018-06-05 15:55:16 +02:00
Campbell Barton
24bd483ee1 Object Modes: Flush COW on mode switching
Caused glitch w/ sculpt mode not updating.
2018-06-05 12:48:25 +02:00
Jeroen Bakker
a3815f8777 Workbench: Matcaps T55291
- users can use their own matcaps
.config/blender/2.80/datafiles/studiolights/matcap/ folder
- upto 100 matcaps can be loaded
- color of the matcap is influenced by the color of the material/single
color etc. To show the plain matcap use single color at 1.0
- chosing a matcap is at lighting level (flat/studio/matcap)
- matcap only possible in solid mode
- also works for X-Ray mode

As the old matcaps are still in used by the clay engine I didn't remove
it yet.
2018-06-05 11:38:33 +02:00
Campbell Barton
84becb870f Merge branch 'master' into blender2.8 2018-06-04 17:58:07 +02:00
Campbell Barton
747534af00 Particle System: move data creation into RNA update
Relying on evaluation to initialize data causes issues w/ 2.8.
2018-06-04 17:55:19 +02:00
Sergey Sharybin
18e8350cd1 Cleanup: Hopefully more clear name 2018-06-04 16:22:36 +02:00
Campbell Barton
4b5670ac11 Cleanup: redundant headers 2018-06-04 16:03:52 +02:00
Sergey Sharybin
3b4c7a8c9b Weight paint: Use helper function to get original mesh
Makes it one line to get needed mesh, no code duplication. And can easily
update asserts and tighten the nuts.
2018-06-04 15:49:11 +02:00
Sergey Sharybin
0e8edbbc01 Add utility functions to get different "levels" of evaluated/original mesh 2018-06-04 15:48:37 +02:00
Sergey Sharybin
2b22a61152 Depsgraph: Only store original mesh pointer for mesh object 2018-06-04 15:24:41 +02:00
Campbell Barton
52f9023fbf Fix weight paint crash
The PBVH was referencing runtime custom data which was freed on refresh.
2018-06-04 15:18:48 +02:00
Sergey Sharybin
07f0046203 Fix crash when making objects to share same mesh
Make it more reliable and predictable way of getting pointer to
an original mesh which came from copy-on-write engine.

Related change: made it (hopefully) more clear name for flags.
2018-06-04 15:17:16 +02:00
Brecht Van Lommel
d7c2b78822 UI: add subpanel support.
In the Python API, any panel becomes a subpanel by setting bl_parent_id
to the name of the parent panel. These subpanels can contain advanced or
less commonly used settings.
2018-06-03 21:30:35 +02:00
Campbell Barton
81dbf08eb4 Merge branch 'master' into blender2.8 2018-06-03 17:09:07 +02:00
Campbell Barton
38eb91c848 Cleanup: correct variable name, doxy sections 2018-06-03 17:06:13 +02:00
Campbell Barton
e657a4af13 Merge branch 'master' into blender2.8 2018-06-03 15:20:11 +02:00
Campbell Barton
335b193336 Cleanup: add argument names to screen callbacks 2018-06-03 15:11:31 +02:00
Dalai Felinto
fec317de8d --debug-gpu-shader: Dump GLSL shaders to disk
This is really convenient for development. Either for profiling the
generated shaders or to check if the generated code is correct.

It writes the shaders to the temporary blender session folder.

(ported over from blender2.8)
2018-06-02 20:29:27 +02:00
Campbell Barton
a08a8aa928 Merge branch 'master' into blender2.8 2018-06-02 13:09:12 +02:00
Campbell Barton
c140f11946 Cleanup: warning 2018-06-02 11:58:01 +02:00
Campbell Barton
bfe1d0e0dc Merge branch 'master' into blender2.8 2018-06-01 18:26:42 +02:00