Commit Graph

16067 Commits

Author SHA1 Message Date
Sergey Sharybin
e1b5fe156d Support showing metadata for multilayer EXR files
Quite straightforward: first, convert metadata from file to
stamp data which is stored in the render result, and then
for every requested layer/pass use that as a metadata.
2019-02-05 14:25:36 +01:00
Bastien Montagne
1b4230d4b5 Cleanup: Add precision to comment. 2019-02-05 10:53:17 +01:00
Bastien Montagne
41a15b7d6d Fix (unreported) linestyle/greasepencil actions not being duplicated by full scene copy.
Noted those as missing in XXX comments some time ago, running again on
that code I still see no reason for this missing feature, so now when
doing a full scene copy, including duplication of Freestyl's linestyles
and scene's greasepencil data, their potential Actions will also be
properly duplicated (like it was already the case for world, and scene
itself).
2019-02-05 10:53:17 +01:00
Bastien Montagne
cfe8f76616 Cleanup: typo in comment. 2019-02-05 10:53:16 +01:00
Bastien Montagne
8b716655e2 Cleanup: replace BKE_id_copy_ex by BKE_id_copy where possible.
That way it is obvious when we are using default ID copy behaviour, and
when we are using advanced/specialized ones.
2019-02-05 10:53:16 +01:00
Bastien Montagne
846105d254 Cleanup: use LIB_ID_COPY_LOCALIZE in BKE_libblock_copy_for_localize().
This is a slightly more risky commit, as it is very difficult to fathom
all that may happen when localazing IDs. Would not expect any issue
though.

Note that a big TODO remain to refactor fully that ID localization
process (for 'shading IDs'), it's still doing pretty much same thing as
regular out-of-main copies, but the infamous ntree topic makes it
delicate to handle...
2019-02-05 10:53:16 +01:00
Bastien Montagne
9469ebe1cc Cleanup: sanitize BKE_libblock_copy_for_localize() copy flags.
Asking to not copy animdata, but copy actions, is pure nonsense (and
make LIB_ID_COPY_ACTIONS flag totally useless/no-op).
2019-02-05 10:53:16 +01:00
Bastien Montagne
5123ee74f8 Cleanup: Remove old deprecated BKE_libblock_copy_nolib() from BKE_library.
Was not used anymore, time to get rid of it.
2019-02-05 10:53:16 +01:00
Bastien Montagne
b6771ccaf6 BKE_library: id_copy: More general usage of LIB_ID_COPY_LOCALIZE.
Turns out most of our 'local working copy' cases can use same set of
flags.

Note that this commit adds LIB_ID_COPY_CACHES to all our local meshes
copying, however this is no-op since that flag is unused during mesh
copying... We may want to add another set of flags without that one at
some point, but for now it would not be useful imho.
2019-02-05 10:53:16 +01:00
Bastien Montagne
72724211df BKE_library: add 'no preview' flag to LIB_ID_COPY_LOCALIZE.
No local work copy is expected to need preview data, at least it should
not. Part of copy flags cleanup, done in separate commit in case
something goes wrong here...
2019-02-05 10:53:11 +01:00
Bastien Montagne
b26c9dfcb2 Cleanup: initial regrouping of ID create/copy flags.
Those two first sets of flags should represent some common use cases.
The goal here is to reduce verbosity of calls to BKE_id_copy_ex, and
help make it more obvious the 'common behaviours' of ID copying across
codebase.
2019-02-05 09:49:50 +01:00
Bastien Montagne
8ebb8add85 Cleanup: comments before items in enums. 2019-02-05 09:49:50 +01:00
Bastien Montagne
6a686b0bfb Cleanup: BKE_library: rename id_copy to BKE_id_copy.
Time to follow conventions for that one as well.
2019-02-05 09:49:50 +01:00
Bastien Montagne
7636e9785d Cleanup: BKE_library: remove 'test' param of id_copy.
This was used in *one* place only... much better to have a dedicated
helper for that kind of things. ;)
2019-02-05 09:49:50 +01:00
Campbell Barton
445433a691 Fix empty object front/back display in perspective views 2019-02-05 10:43:16 +11:00
Campbell Barton
2c84c23a07 Fix T61163: Single sided images show when viewed from side 2019-02-05 10:29:19 +11:00
Campbell Barton
ab5e69e660 Cleanup: remove contributors for CMake files
Following removal from C source code.

See: 8c68ed6df1
2019-02-05 09:10:32 +11:00
Sergey Sharybin
38984b10ff T61148: Particle properties can not be edited after keyframing
Was happening with certain settings for hair. Need to make a copy
of particle settings before modifying them via animation system.
2019-02-04 14:09:22 +01:00
Campbell Barton
55c29e36dc Undo System: add function to print undo steps
Useful for debugging.
2019-02-04 15:01:55 +11:00
Campbell Barton
b5c841498c Fix adding a paint texture slot not refreshing
Adding a new slot wasn't refreshing when the
object had no material.
2019-02-04 14:47:02 +11:00
Pablo Vazquez
3be845ce20 Cleanup: Typos in comments (to to) 2019-02-04 01:23:48 +01:00
Campbell Barton
744f633986 Cleanup: trailing commas
Needed for clan-format not to wrap onto one line.
2019-02-03 14:59:11 +11:00
Campbell Barton
141c6073ca WM: Event simulation support for Python
This feature is intended only for testing,
to automate simulating user input.

- Enabled by '--enable-event-simulate'.
- Disables handling all real input events.
- Access by calling `Window.event_simulate(..)`
- Disabling `bpy.app.use_event_simulate`
  to allow handling real events (can only disable).

Currently only mouse & keyboard events work well,
NDOF, IME... etc could be added as needed.

See D4286 for example usage.
2019-02-02 15:23:55 +11:00
Campbell Barton
99b8eef6a5 BKE_global: clear deprecated flags on load (all of them) 2019-02-02 14:45:42 +11:00
Campbell Barton
d46c910b1a Cleanup: match logic for merging G.f & G.fileflags on load 2019-02-02 14:01:48 +11:00
Campbell Barton
afcbf7cf13 Cleanup: use G_FLAG_*/G_FILE_* for G.f/fileflags
Was confusing eg: G_AUTOPACK belonged to G.fileflags, G_PICKSEL to G.f.
2019-02-02 13:49:13 +11:00
Campbell Barton
a53011d520 Cleanup: use enum for BKE globals 2019-02-02 13:29:52 +11:00
Campbell Barton
4ef09cf937 Cleanup: remove author/date info from doxy headers 2019-02-02 11:58:24 +11:00
Brecht Van Lommel
9a63fa21eb Color management: change view transform for color pickers and display modes.
* Use simple default view transform for color pickers, as Filmic does not work
  well for all types of colors. We better handle this with an option and tagging
  of colors as emissive or albedo like.
* For solid/workbench we also no longer use Filmic, as there is not enough contrast
  and it's not really needed since this is not physically based lighting.
* For lookdev always take into account the view transform and look. Other view
  settings like exposure are only taken into account if scene lighting is used,
  since these are often dependent on scene light intensity.

Fixes T61022, T57649, T59363.
2019-02-01 20:56:42 +01:00
Campbell Barton
3b57a0d854 Cleanup: remove original author
Missed when removing contributors.
2019-02-02 02:32:20 +11:00
Campbell Barton
6cbb4c576a Cleanup: manually remove header text not handled by automation 2019-02-02 01:49:31 +11:00
Campbell Barton
65ec7ec524 Cleanup: remove redundant, invalid info from headers
BF-admins agree to remove header information that isn't useful,
to reduce noise.

- BEGIN/END license blocks

  Developers should add non license comments as separate comment blocks.
  No need for separator text.

- Contributors

  This is often invalid, outdated or misleading
  especially when splitting files.

  It's more useful to git-blame to find out who has developed the code.

See P901 for script to perform these edits.
2019-02-02 01:36:28 +11:00
Brecht Van Lommel
7b05b2564d Fix T61088: Cycles particle viewport render stuck in loop.
Object to be instanced should not be modified.
2019-02-01 13:56:13 +01:00
Campbell Barton
552b2287db Logging: Use CLOG for blenkernel
Part of D4277 by @sobakasu
2019-02-01 12:46:39 +11:00
Brecht Van Lommel
5c5de14ad7 Cleanup: avoid some unnecessary inverse matrix math. 2019-01-31 18:01:47 +01:00
Sergey Sharybin
d2f3378249 Fix T59339: Particle render without baking issues
The issue was caused by dependency graph resetting particles
when evaluating copy-on-write version of object. Solved by
only doing reset from dependency graph on user edits.

Other issue was caused by modifier itself trying to compare
topology and reset particles when number of vertices or faces
changed. This isn't reliable, since topology might change even
with same number of elements. But also, since copy-on-written
object initially always have those fields zero-ed the reset
was happening on every F12.

The latter issue is solved by moving reset from modifier stack
to places where we exit edit/paint modes which might be changing
topology.

There is still weird issue of particles generated at some
weird location after tapping tab twice, but this is not a new
issue in 2.8 branch and is to be looked separately.
2019-01-31 16:53:19 +01:00
Sergey Sharybin
0d2b977c3b Particles: Fixes for synchronization to original
Was missing synchronization of current frame to the original one,
which is one of the issues why point cache does not properly reset
on edits.

Also clear recalc flag on original particle system.

Ideally we need to get rid of recalc on a particle system, since
that is not really covered by tagging system of dependency graph.
2019-01-31 14:57:58 +01:00
Sergey Sharybin
72863eb036 Remove direct shape key drivers evaluaiton in object update
This is now hanbdled by the nodes in dependency graph.
2019-01-31 14:31:41 +01:00
Jacques Lucke
b5e93b02c9 Fix T60996: Dyntopo flood fill fails due to missing ob->imat
Reviewers: brecht

Differential Revision: https://developer.blender.org/D4285
2019-01-31 12:42:51 +01:00
Jacques Lucke
f4c0dacde7 Fix: allow curve of driver to be evaluated individually
This is necessary when adding a new keyframe to a fcurve
that also has a driver.

Reviewers: brecht, campbellbarton

Differential Revision: https://developer.blender.org/D4278
2019-01-31 12:19:33 +01:00
Brecht Van Lommel
83f8f44791 Fix T59495, T59992, T59904, T59178, T60598: broken keyframed value editing.
This removes a bunch of animation/driver evaluations and recalc flags that
should be redundant in the new depsgraph, and were incorrectly affecting
the evaluated scene in a permanent way.

Still two cases that could be removed if the depsgraph is improved, in
BKE_object_handle_data_update and BKE_cachefile_update_frame.

For physics subframe interpolation there are also still calls to
BKE_object_where_is_calc that should ideally be removed as well, though
they are not known to cause keyframing bugs.

Differential Revision: https://developer.blender.org/D4274
2019-01-31 12:04:57 +01:00
Brecht Van Lommel
7400aa7e59 Depsgraph: remove features incompatible with new system.
Some features are incompatible with multithreading and reliable evaluation
of dependencies. We are now removing them as part of a bigger cleanup to
fix bugs in keyframing and invalid animation evaluations.

* Dupliframes have been removed. This was a hack added before there were
  more powerful features like the array modifier.
* Slow parent has been removed, never worked in 2.8. It was always
  unreliable for use in production due to depending on whatever frame was
  previously evaluated, which was not always the previous frame.
* Particle instanced objects used to have their transform evaluated at
  the particle time. Now it always gets the current time transform.
* Boids can no longer do predictive avoidance of force field objects,
  but still for other particles.

Differential Revision: https://developer.blender.org/D4274
2019-01-31 12:03:05 +01:00
Campbell Barton
e8cea26bd7 Cleanup: use doxy comments, clarify some text 2019-01-31 16:35:33 +11:00
Campbell Barton
c454db2746 Fix T61047: Undo editmesh separate crashes
Favour G_MAIN in functions that might free it.
2019-01-31 15:07:47 +11:00
Campbell Barton
51bba03b31 Undo System: add Main argument to encode/decode
Needed since we don't always have the context,
and avoids adding G_MAIN into undo callbacks.
2019-01-31 12:07:13 +11:00
Campbell Barton
e08156d799 Fix default material using zero alpha 2019-01-30 23:54:07 +11:00
Bastien Montagne
534573f6b9 Fix T60957: ASSERT when reloading double-linked file.
Kind of funny to see that this has been missing presumably since the
first version of library linking in Blender, and only gets noticed now.
Then again, that was not really a critical issue, iirc write code
ensures all libraries directly used get properly written, even if flags
are incorrect.
2019-01-30 11:46:49 +01:00
Bastien Montagne
e074204d2f Cleanup: use proper bitflag operators. 2019-01-30 11:38:13 +01:00
Campbell Barton
fbfe360cb1 Fix T60974: Dyntopo crash on undo after object deleted
Add the ability for undo steps to request memfile undo step added after
them, useful for mode switching, where we need the data to exist for
undo to enter the mode.
2019-01-30 20:44:15 +11:00
Sergey Sharybin
33dcf9fa71 Add missing Shader FX remapping to library query 2019-01-29 15:41:24 +01:00