Commit Graph

14300 Commits

Author SHA1 Message Date
Campbell Barton
a2c0a382cd Merge branch 'master' into blender2.8 2018-04-03 14:19:51 +02:00
Dalai Felinto
1f291d5814 Collections: API to get automatic name of new collection 2018-04-02 17:25:22 -03:00
Milan Jaros
888a04c7e4 Build: fixes for the Intel compiler versions 2016, 2017, 2018.
Differential Revision: https://developer.blender.org/D3109
2018-04-02 16:39:04 +02:00
Campbell Barton
b65ea517eb Merge branch 'master' into blender2.8
- Undo that changes modes currently asserts,
  since undo is now screen data.

  Most likely we will change how object mode and workspaces work
  since it's not practical/maintainable at the moment.

- Removed view_layer from particle settings
  (wasn't needed and complicated undo).
2018-04-01 11:03:25 +02:00
Campbell Barton
b6ba3c682d Cleanup: remove global header 2018-04-01 07:24:45 +02:00
Campbell Barton
651b8fb14e Undo: unified undo system w/ linear history
- Use a single undo history for all operations.
- UndoType's are registered and poll the context to check if they
  should be used when performing an undo push.
- Mode switching is used to ensure the state is correct before
  undo data is restored.
- Some undo types accumulate changes (image & text editing)
  others store the state multiple times (with de-duplication).
  This is supported by checking UndoStack.mode `ACCUMULATE` / `STORE`.
- Each undo step stores ID datablocks they use with utilities to help
  manage restoring correct ID's.
  Needed since global undo is now mixed with other modes undo.
- Currently performs each undo step when going up/down history
  Previously this wasn't done, making history fail in some cases.
  This can be optimized to skip some combinations of undo steps.

grease-pencil is an exception which has not been updated
since it integrates undo into the draw-session.

See D3113
2018-03-31 20:40:37 +02:00
Campbell Barton
891c1cfc9a C Logging: use instead of printf for messages
- See `--log` help message for usage.
- Supports enabling categories.
- Color severity.
- Optionally logs to a file.
- Currently use to replace printf calls in wm module.

See D3120 for details.
2018-03-30 18:57:41 +02:00
Dalai Felinto
41a81fece4 Collections: API to select all scene collection objects 2018-03-29 20:03:47 -03:00
Dalai Felinto
156b548208 Collections: API to get collection from index 2018-03-29 20:03:47 -03:00
Dalai Felinto
1251043636 Collections: API to check if object is in collection 2018-03-29 20:03:47 -03:00
Sergey Sharybin
72b4d444f6 Particles: Fix missing hair dynamics
Only if all the nasty looking bugs had such a simple solution...
2018-03-29 12:43:00 +02:00
Sergey Sharybin
44cd24a9ce Particles: Remove dedicated recalc field from ParticleSettings
Use more generic id->recalc flag.

Also sanitize flag flush from settings to particle system.
Need to do such flush before triggering point cache reset, since
point cache reset will do some logic based on what flags are set.

This will solve crash caused by threaded update which will set
some bitflags while point cache reset is in progress.
2018-03-29 12:41:11 +02:00
Dalai Felinto
f167226b79 Move to Collection - initial operator
How to use: Select a few objects, and press "M" in the viewport.

If you hold ctrl the objects will be added to the selected collection.
Otherwise they are removed from all their original collections and moved
to the selected one instead.

Development Notes
=================
The ideal solution would be to implement an elegant generic multi-level
menu system similar to toolbox_generic() in 2.49.

Instead I used `uiItemMenuF` to acchieve the required nesting of the menus.

The downside is that `uiItemMenuF` requires the data its callback uses to be
always valid until the menu is discarded. But since there is no callback we
can call when the menu is discarded for operators that exited with
`OPERATOR_INTERFACE`.

That means we are using static allocated data, that is only freed next time
the operator is called. Which also means there will always be some
memory leakage.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D3117
2018-03-28 17:14:51 -03:00
Campbell Barton
90b7bcb48d Merge branch 'master' into blender2.8 2018-03-27 15:09:00 +02:00
Campbell Barton
e22b870b4a Cleanup: global undo (minor changes to internals)
- Get memory usage from MemFile instead of MEM API
  avoids possible invalid when threads alloc memory.
- Use size_t instead of uint and uintptr_t to store size.
- Rename UndoElem.str -> filename
- Rename MemFileChunk.ident -> is_identical
2018-03-27 14:56:54 +02:00
Sergey Sharybin
21aca14e43 Merge branch 'master' into blender2.8 2018-03-26 14:56:00 +02:00
Campbell Barton
977a4e7f5d Text: re-allocate exact lengths for undo
Undo sometimes reserved too much space in the buffer,
now assert when this happens and allocate the exact size needed.

Note prepares for moving text editor undo out of the text block (D3113)
which will split the undo buffer into a list of undo steps.
2018-03-24 14:27:31 +01:00
Campbell Barton
3f9d5ea0ec Fix text editor undo w/ 4+ byte utf8 characters 2018-03-24 14:14:19 +01:00
Campbell Barton
9d1de621e2 Cleanup: move undo opcodes out of public header 2018-03-24 12:46:25 +01:00
Campbell Barton
8eb8aa4939 Merge branch 'master' into blender2.8 2018-03-23 12:05:55 +01:00
Campbell Barton
7cc2b27099 Cleanup: stray tabs
Tabs in middle of code (mostly for no reason / by accident).
2018-03-23 11:51:19 +01:00
Clément Foucault
47acd706fd GPUCompositing: Remove entire module.
This module has no use now with the new DrawManager and DrawEngines and it
is using deprecated paths.

Moving gpu_shader_fullscreen_vert.glsl
to draw/modes/shaders/common_fullscreen_vert.glsl
2018-03-22 16:11:49 +01:00
Sergey Sharybin
e0388bc61a Merge branch 'master' into blender2.8 2018-03-20 16:55:16 +01:00
Sergey Sharybin
69e35429bf Remove debug only code from previous commit 2018-03-20 16:54:50 +01:00
Sergey Sharybin
a5bb918392 Memory allocator: Clarify consistency check function
Also make it to return truth when everything is good and
false otherwise.
2018-03-20 16:51:33 +01:00
Sybren A. Stüvel
09c88fed1f Fixed: cache clearing when using multiple Alembic files. 2018-03-20 12:54:48 +01:00
Bastien Montagne
04b8b1a167 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/library_query.c
2018-03-20 11:33:59 +01:00
Bastien Montagne
60ff803998 Fix missing ID pointer handling in materials in ID remapping code. 2018-03-20 11:32:16 +01:00
Sergey Sharybin
46a391b668 Fix missing array duplication when copying material
Texture paint slots were copied as a pointer, causing double-free.
2018-03-20 11:22:47 +01:00
Campbell Barton
5e81d993af Merge branch 'master' into blender2.8 2018-03-19 18:14:05 +01:00
Campbell Barton
c78ebf9f26 Cleanup: split lattice into own library
Was mixed with object functionality.
2018-03-19 15:45:50 +01:00
Bastien Montagne
dc08df659e Merge branch 'master' into blender2.8 2018-03-16 17:50:07 +01:00
Bastien Montagne
5389964eea Add an assert to BKE_icon_changed() that we are actually dealing with ID icon.
Otherwise, ID->obj is an opaque pointer, wrong usage here could lead to
a vast amount of bad things.
2018-03-16 17:17:19 +01:00
Bastien Montagne
1a71d5ae85 Fix T54310: Assert when enable Brush custom icon.
We had a mix of two issues here actually:
* First, Brush are currently using their own sauce for custom previews,
this is not great, but moving them to use common ImagePreview system of
IDs is a low-priority TODO. For now, they should totally ignore their
own ImagePreview.
* Second, BKE_icon_changed() would systematically create a PreviewImage
for ID types supporting it, which does not really makes sense, this
function is merely here to 'tag' previews as outdated. Actual creation
of previews is deferred to later, when we actually need them.
2018-03-16 17:06:43 +01:00
Bastien Montagne
67e2806dcb Cleanup: naming and const parameter. 2018-03-16 16:44:23 +01:00
Sergey Sharybin
36e7de9eb3 Merge branch 'master' into blender2.8 2018-03-16 12:26:37 +01:00
Sergey Sharybin
da4efaeb87 Depsgraph: Support colored addresses in debug prints
Enabled with --debug-depsgraph-pretty, only works with ANSI terminals.

Thanks Bastien for review!
2018-03-16 12:24:51 +01:00
Sergey Sharybin
5baf0de6e7 Merge branch 'master' into blender2.8 2018-03-16 11:24:41 +01:00
Sergey Sharybin
3baf31e73a Depsgraph: Move evaluation debug prints to depsgraph
This way we can easily control format and keep it consistent.

And also possibly do other trickery, like coloring addresses!
2018-03-16 11:14:38 +01:00
Bastien Montagne
9009622b54 Merge branch 'master' into blender2.8 2018-03-14 18:10:31 +01:00
Bastien Montagne
b0823962e9 Style cleanup. 2018-03-14 18:05:09 +01:00
Bastien Montagne
d34b1b35bf Fix (unreported) broken IDarray case in IDP_EqualsProperties_ex.
For IDProps IDarray, IDP_EqualsProperties was called for each item,
instead of IDP_EqualsProperties_ex, discarding value of `is_strict`
option.

Probably not an issue with current code, though.
2018-03-14 17:53:29 +01:00
Sergey Sharybin
9521b67ac0 Depsgraph: Fix missing updates with drivers
The issue was only visible with copy-on-write enabled, and related to the
fact, that dependency graph builder binds original FCurves.

For now use smallest patch possible to make things to work and to make
draguu happy.

Need to think of a smarter way to deal with drivers, bones and view layers.
2018-03-14 15:21:31 +01:00
Campbell Barton
585208e0e9 Merge branch 'master' into blender2.8 2018-03-14 02:15:37 +11:00
Campbell Barton
bf8f5f5142 Cleanup: doxygen comments 2018-03-14 02:08:07 +11:00
Campbell Barton
028580fd1e Merge branch 'master' into blender2.8 2018-03-13 18:39:51 +11:00
Campbell Barton
3106f18176 Cleanup: long lines, use doxy sections 2018-03-13 18:07:10 +11:00
Sergey Sharybin
733b9e4f99 Merge branch 'master' into blender2.8 2018-03-12 17:31:46 +01:00
Sergey Sharybin
629d44e049 Fix type in comment 2018-03-12 17:03:54 +01:00
Sergey Sharybin
a752bc148e Depsgraph: Make timing profile a command line option
This way we can add even more statistics, even one which will be print
to the console.

Would be nice if we also have verbosity level control.
2018-03-12 17:01:02 +01:00