Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-08-22Fix T68971: Copy As New Driver from Material node creates a bad reference.Alexander Gavrilov
NodeTree structures of materials and some other data blocks are effectively node group data block objects that are contained inside the parent block. Thus, direct references to them are only valid while blender is running, and are lost on save. Fix Copy As New Driver to create a reference that goes through the owner data block, by adding a new runtime field to bNodeTree.
2019-08-16Cleanup: spellingCampbell Barton
2019-08-14Cleanup: move trailing comments to avoid wrapping codeCampbell Barton
Some statements were split across multiple lines because of their trailing comments. In most cases it's clearer to put the comments above.
2019-08-14Eevee: Remove Additive & Multiply Blend modeClément Foucault
This commit also provide a compatibility code that will convert old materials using Additive or Multiply Blend mode to their node equivalent. This conversion is only done on outputs that are enabled for eevee.
2019-08-12Fix T67032: Do not systematically link 'orphaned' indirectly linked objects ↵Bastien Montagne
to scene. Not even in append case. If those objects are already part of a collection, we can now leave them fully un-instantiated in any scene, since user can easily do it themselves as they need to.
2019-08-12Fix crashes caused by library placeholders.Bastien Montagne
This fixes inconsistencies in materials between objects and obdata due to placeholders generation for missing libdata. Note that we cannot do that when generating the obdata placeholder, as not all objects using it might be already loaded... So this has to be done near the end of the reading/linking process. Reported here by Blender Studio. Reviewers: brecht Subscribers: jbakker, zeddb Tags: #datablocks_and_libraries Differential Revision: https://developer.blender.org/D5428
2019-08-06Cleanup: use BKE_ prefix for BKE_colortools.hCampbell Barton
2019-08-05Cleanup: use unsigned char for theme colorsCampbell Barton
Nearly all byte-color functions use 'uchar' causing casts when then colors were passed in. Declare as uchar to remove the need for casts.
2019-08-01Cleanup: misc spelling fixesCampbell Barton
T68035 by @luzpaz
2019-08-01Cleanup: use braces, unused variable, unused enumCampbell Barton
2019-07-31Fix several undefined-behaviour-sanitizer warningsLukas Stockner
Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4222
2019-07-30Fix T65691: GPencil Drawing long strokes turn invisibleAntonioya
There was a fixed limit to the number of points available in a buffer stroke. Now, the array is expanded as needed using a predefined number of points for each expansion, instead to add one by one. This is done to reduce the number of times the memory allocation is required. As part of the fix, some variables have been renamed to reflect better their use.
2019-07-30Fix T66629: Library override - fails when armature and mesh are in separate ↵Bastien Montagne
collections. Some ugly very low-level collection code was using the generic LIB_TAG_DOIT tag... should never happen, that one is for rather high-level code to use, core process shall use own tags.
2019-07-26Fix T66325: Animation Keyframe Undo/Redo BugSergey Sharybin
The issue was caused by dependency graph always ignoring animation update when it is first time constructed. This was a way to make it preserve unkeyed changes on undo/redo. This, however, made it so changes of animation data itself (such as deleting/moving keyframes) did not trigger animation update by the dependency graph. This worked prior to copy-on-write because animation recalc flags were stored in the DNA and never re-set on file/undo load. This was giving dependency graph a clue that animation is to be re-evaluated when operator explicitly asked to (more precisely, when such operator was undone/redone). This change makes it so original ID's recalc flags are storing recalc flags when ID is tagged for update as an response to user input. This way re-building dependency graph can force animation to be updated on redo. Tricky part here is that ID's recalc flag is no longer to be zeroed when loading undo step (which is the same as reading .blend file). This is something what works differently comparing to legacy dependency graph, which was zeroing object's recalc flags there but not animation data's recalc flags. Shouldn't be causing issues, since unkeyed changes are not preserved upon opening a file anyway, at least to my knowledge. Related reports which are to be taken into account and verified they are not re-introduced when making changes in the area: - T63111: Auto-Bake stuck at constant re-rendering - T54296: Cycles viewport render stuck on constant re-render Reviewers: campbellbarton, brecht Reviewed By: campbellbarton, brecht Maniphest Tasks: T66325 Differential Revision: https://developer.blender.org/D5316
2019-07-10Cleanup: avoid line breaks from trailing commentsCampbell Barton
2019-07-07Cleanup: spellingCampbell Barton
2019-07-02Cleanup: move comments onto own lines to avoid breaking linesCampbell Barton
2019-06-21Revert "Particle system: Move runtime data to runtime field"Sergey Sharybin
This reverts commit 36faf739a71624b6ca10cec7233779f9eeace0bd. Somewhat annoying but this change had some unforeseen consequences, which lead to an actual bug. Since this change was not sufficient to get original report fixed is easier to simply revert for now. Fixes T65842: Hair disappears when clicking on particle system name
2019-06-21Fix T62876: Camera Background ImagesJeroen Bakker
Migrate old legacy code to the draw mamager/object mode. The old legacy version did not work with wireframe. By migrating the code to modern draw manager code we have mode control on the drawing process. Still background images do not work with OIT, the cause seems to be that the transparent pixels are treated as background pixels. Also There are some artifacts when working with Holdouts and DoF, this is because the draw engines do not pass the correct alpha values. Reviewers: fclem, brecht Differential Revision: https://developer.blender.org/D4638
2019-06-17Fix T63706: crash in files with custom node trees that contain builtin nodesBrecht Van Lommel
Don't make assumptions about which nodes exist in which node trees when loading.
2019-06-17Fix T63867: image sequence not updating in Eevee animation renderBrecht Van Lommel
2019-06-17Cleanup: comment, RNA spellingCampbell Barton
2019-06-15Cleanup: Rename: Static Override -> Library Override.Bastien Montagne
Better to make internal code naming match official/UI naming to some extent, this will reduce confusion in the future. This is 'breaking' scripts and files that would use that feature, but since it is not yet officially supported nor exposed in 2.80, as far as that release is concerned, it is effectively a 'no functional changes' commit.
2019-06-13Particle system: Move runtime data to runtime fieldSergey Sharybin
Allows it to be preserved during copy-on-write update when on-geometry related update is needed. This is a required part for T63537, where we need to preserve the entire evaluation data when object is tagged for only RECALC_COPY_ON_WRITE. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D5023
2019-06-12Cleanup: spelling in commentsCampbell Barton
2019-06-06Remove mutex lock from node localizationSergey Sharybin
There is no obvious threading-unsafe code in the localization. The main source of issues were the new_node/new_socket pointers which are no longer used during node tree duplication.
2019-06-05Sound: Port to a copy-on-write conceptSergey Sharybin
This change makes it so sound handles are created for evaluated scene, sequencer and speakers. This allows to have properly evaluated animation on them. For the viewport playback sound uses regular dependency graph. For the final render sound uses dependency graph created for render pipeline, which now also contains sequencer and sound datablocks. All the direct sound update calls are replaced with corresponding dependency graph recalc tag.
2019-06-04Fix T65054: Blender 2.80 crashes when opening a scene created by blender ↵Bastien Montagne
2.7x with hierarchy duplication set to "group". Regression introduced by rB7fe3d1e7d718 (fixing T57934). This effectively reverts rBrB7fe3d1e7d718, since changing the type of an object is a very bad idea in general, and would need a careful and complex check of all of its usages (many object usages assume a specific type of object...). Instead, we simply remove duplicollection on those objects, and give a warning in case dupligroup was effectively used (in many reported cases, dupligroup was a 'mistake setting', without actually instancing aniything). Note that the otehr idea to fix that versioning issue (to create a new empty object for the instancing) is much less easy than it might look (one would need to take into account potential animations, relations between objects, etc.). Doable probably, but way overkill for a corner-case 'bad' usage of the feature in the first place.
2019-05-31Fix T65308: edit studio light state stays active after restarting BlenderBrecht Van Lommel
This is only temporary for editing, should not be preserved.
2019-05-31Cleanup: style, use braces in source/ (include disabled blocks)Campbell Barton
2019-05-31Fix missing file read/write of proxy/transform/crop settings when not usedBrecht Van Lommel
This was inconsistent with other data handling in Blender.
2019-05-27blenloader: Fix warnings with MSVCRay Molenkamp
these macros are mostly used with size_t types, leading to msvc warning : warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits
2019-05-23Cleanup: remove redundant separatorsCampbell Barton
2019-05-23Fix (unreported) broken collections after undo/redo, or remapping (leading ↵Bastien Montagne
to crashes). Those are two cases where keeping infamous backward `parents` pointers of collections in sync is kind of impossible to do... So rebuilding those relationships from scratch instead. Fixes e.g. a crash when undoing, then reloading a library, and likely many more weird ones like that. Uncovered while investigating T64764.
2019-05-23BKE Collection: Add new function to rebuild parent relationships.Bastien Montagne
It's not always possible to keep 'by hand' parent relationships valid in collections hierarchy. Add functions to remake those (re-using/factorizing code from `readfile.c` `lib_link_collection_data()` function). Can't stress again how painful it is to have those kind of backward relationships in our data structures, those *always* end up being serious issues to keep in sync... Should only be generated on the fly when needed, period. :(
2019-05-22Fix T64981: background images do not come along with linked camerasBrecht Van Lommel
2019-05-17Cycles/Eevee: unify depth of field settings for camerasJeroen Bakker
There is now a checkbox to enable/disable depth of field per camera. For Eevee this replace the scene level setting. For Cycles there is now only an F-Stop value, no longer a Radius. Existing files are converted based on Cycles or Eevee being set in the scene. Differential Revision: https://developer.blender.org/D4882
2019-05-16Refactor: Simplify ID Property freeingJacques Lucke
This also makes `IDP_CopyProperty` the "opposite" of `IDP_FreeProperty`, which is what I'd expect. Two refactoring steps: * rename IDP_FreeProperty to IDP_FreePropertyContent * new IDP_FreeProperty function that actually frees the property Reviewers: brecht Differential Revision: https://developer.blender.org/D4872
2019-05-16Cleanup: remove 2.4x panel tabsCampbell Barton
This makes the code confusing since we now have two other kinds of tabs (navigation bar and panel categories).
2019-05-14Armature: implement universal hash table lookup of Bone objects by name.Alexander Gavrilov
Since drivers on Bone properties are really supposed to be stored in Armature data and access bones via its bones[] collection, this lookup path should work efficiently. Mass lookup of bones by name was already done through hashes, but they were built temporarily every time that was needed. This simply replaces it with a common hash table computed immediately after file load, copy, or Edit to Object mode switch.
2019-05-13Fix unintended autosaving of preferences in a few casesBrecht Van Lommel
* Dirty flag was not cleared on load * Navigating tabs should not cause save * Background mode should not autosave (for e.g. render farms and tests)
2019-05-13readfile: support preferences without loading data-blocksCampbell Barton
Needed to support reading preferences without replacing blend file data.
2019-05-07Sound: Revert all the recent changes to soundSergey Sharybin
This happened to be a bigger rabbit hole to hell than it originally seemed, and there are higher priority design tasks to be handled (at this point high priority design task is more important than high priority bug fix). After talking to Brecht the decision was made to revert to the known isolated issue, which will allow everyone in the studio work same as prior to last Friday. The remaining bits will be worked on after all the design tasks are out of the way. This commit reverts: 4cdb4b9532c Fix T64161: Crashing using undo and multiple windows 064273a4ae7 Sound: Port more cases to be a part of dependency graph 2e582f8ab53 Sound: Fix access wrong dependency graph 5fc49d9c915 Sound: add stubs to build without audaspace c68c81a870b Sound: Make sure spin lock is initialized for new sound datablocks c02534469ac Sound: Delay creating sound scene handle for until is needed 9f681bea68f Fix T64144: Crash when displaying audio waveforms in VSE 2f79286453e Cleanup: unused vars bed8ad6f95a Fix crash in background rendering after recent sound changes 773691310f9 Fix T64143: Crash when scrubbing in the graph editor 888852055c1 Sound: Fix for being unable to jump to a frame during playback with A/V sync 6ab7b384645 Sound: More fixes for access of original scene 35db1195455 Sound: Fix access original scene during playback 211c4fd2e9a Depsgraph: Make comment about evaluation more obvious c5fe16e121e Sound: Make sound handles only be in evaluated datablocks b4e1e0946bf Depsgraph: Preserve sound and audio pointers through copy-on-write 4eedf784b04 Depsgraph: Store original sequencer strip pointer 6990ef151c1 Sound: Move evaluation to dependency graph d02da8de23b Sound: Delay opening handlers for until really needed 3369b828916 Depsgraph: Add scene audio component e8f10d64757 Depsgraph: Tag sequencer for update on changes 6e4b7a6e4d9 Depsgraph: Initial work to cover sequencer 17447ac5a6b Depsgraph: Make sound ID part of the graph
2019-05-06Fix T63046, T61413: crash reading paint slots from 32 bit .blend on 64 bitBrecht Van Lommel
Thanks to matc for helping to find this, it was writing the paint slots wrong.
2019-05-04Sound: Delay creating sound scene handle for until is neededSergey Sharybin
Solves crash loading volume Cycles regression files.
2019-05-04Fix T64144: Crash when displaying audio waveforms in VSESergey Sharybin
2019-05-03Sound: Make sound handles only be in evaluated datablocksSergey Sharybin
Quite straightforward change, which makes it so audio handles are only created inside of evaluated datablocks. Exception is adding sound strip to the sequencer, which needs an audio handle to query length and number of channels. This is done by temporarily loading sound file into an original datablock, and then tossing it away. There is an assert in sound.c which verifies that audio system is used from an evaluated domain, which should help porting all the cases which are likely missed by this commit. Some annoying parts: - `BKE_sound_update_scene()` is iterating over all bases, and does special ID tags to see whether sound has been handled or not already. This can not be done the old fashion now. Ideally, this will be done as a speaker datablock evaluation, but seems that would require a lock since audio API is not safe for threading. So this is not a desired way i'd say. Possible solution here would be to iterate over ID datablocks using dependency graph query API. - Frame jump needs to call `BKE_sound_seek_scene()` directly because there might be some flags assigned to the scene which could be clear after operator execution is over. Need to verify if that's the case though. This is a bit hairy code, so sticking to a safest and known to work approach for now. - Removed check for format when opening new sound file. Maybe we can have some utility function which queries channel and duration information, leaving the caller's code clean and tidy. Tested following cases: - Adding/removing/moving sequencer's sound strips. - Adding/moving speakers in viewport. - Rendering audio. Reviewers: brecht Differential Revision: https://developer.blender.org/D4779
2019-05-03Sound: Delay opening handlers for until really neededSergey Sharybin
Needs to be done in order to localize sound handlers to the evaluated IDs only. This commit might not be fully optimal, since it does more things on every scene update request, but that will be solved by the upcoming change which will put those updates to a dependency graph.
2019-05-02Fix T63697: correct stuck R_NO_CAMERA_SWITCH in scene->r.mode.Alexander Gavrilov
This flag becomes stuck in certain situations, causing the marker camera switch feature to not work. To fix old files with the problem, clear the flag on file load. Also, the line that is supposed to clear it has wrong bit math, causing seq_render_scene_strip to effectively toggle the flag on or off every time it's run, instead of restoring to original state. The flag and code were added in 001789d7337a by @campbellbarton.
2019-05-01Alembic: integrate cache file into the dependency graphBrecht Van Lommel
* The cache file datablock is now evaluated as part of the dependency graph, creating/freeing the Alembic file handle matching the current frame. Modifiers and constraints depend on this evaluation. * Cache file handles and readers now only exist on COW datablocks, never the original ones. * Object data paths are flushed back to the original for the user interface. * The cache file keeps a list of all readers associated with its handle, and automatically frees them when the handle is freed. This kind of sharing of data across datablocks is weak but we have no better mechanism for it. Fix T62720: Alembic sequences not working and crashing Differential Revision: https://developer.blender.org/D4774