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
2021-01-20Cleanup: remove extra in trailing asteriskCampbell Barton
Comment blocks not conforming to convention.
2021-01-20Merge branch 'blender-v2.92-release'Campbell Barton
2021-01-20CMake: add missing headersCampbell Barton
Resolves 'cmake_consistency_check' reports.
2021-01-15Use mmap() IO for reading uncompressed .blendsLukas Stockner
Instead of submitting tons of tiny IO syscalls, we can speed things up significantly by `mmap`ing the .blend file into virtual memory and directly accessing it. In my local testing, this speeds up loading the Dweebs file with all its linked files from 19sec to 10sec (on Linux). As far as I can see, this should be supported on Linux, OSX and BSD. For Windows, a second code path uses `CreateFileMapping` and `MapViewOfFile` to achieve the same result. Reviewed By: mont29, brecht Differential Revision: https://developer.blender.org/D8246
2020-12-15Asset System: Data-block asset metadata storage, reading and APIJulian Eisel
Asset metadata is what turns a regular data-block into an asset. It is a small data-structure, but a key part of the technical design of the asset system. The design foresees that asset data-blocks store an `ID.asset_data` pointer of type `AssetMetaData`. This data **must not** have dependencies on other data-blocks or data-block data, it must be an independent unit. That way we can read asset-metadata from .blends without reading anything else from the file. The Asset Browser will use this metadata (together with the data-block name, preview and file path) to represent assets in the file list. Includes: * New `ID.asset_data` for asset metadata. * Asset tags, description and custom properties. * BKE code to manage asset meta-data and asset tags. * Code to read asset data from files, without reading IDs. * RNA for asset metadata (including tags) Part of the first Asset Browser milestone. Check the #asset_browser_milestone_1 project milestone on developer.blender.org. Differential Revision: https://developer.blender.org/D9716 Reviewed by: Bastien Montagne, Brecht Van Lommel
2020-12-02Geometry Nodes: initial scattering and geometry nodesJacques Lucke
This is the initial merge from the geometry-nodes branch. Nodes: * Attribute Math * Boolean * Edge Split * Float Compare * Object Info * Point Distribute * Point Instance * Random Attribute * Random Float * Subdivision Surface * Transform * Triangulate It includes the initial evaluation of geometry node groups in the Geometry Nodes modifier. Notes on the Generic attribute access API The API adds an indirection for attribute access. That has the following benefits: * Most code does not have to care about how an attribute is stored internally. This is mainly necessary, because we have to deal with "legacy" attributes such as vertex weights and attributes that are embedded into other structs such as vertex positions. * When reading from an attribute, we generally don't care what domain the attribute is stored on. So we want to abstract away the interpolation that that adapts attributes from one domain to another domain (this is not actually implemented yet). Other possible improvements for later iterations include: * Actually implement interpolation between domains. * Don't use inheritance for the different attribute types. A single class for read access and one for write access might be enough, because we know all the ways in which attributes are stored internally. We don't want more different internal structures in the future. On the contrary, ideally we can consolidate the different storage formats in the future to reduce the need for this indirection. * Remove the need for heap allocations when creating attribute accessors. It includes commits from: * Dalai Felinto * Hans Goudey * Jacques Lucke * Léo Depoix
2020-11-19Build-system: Force C linkage for all DNA type headersJulian Eisel
Some DNA headers already did this, most did not. Even though many of them would be included in C++ files and thus compiled as C++. This would be confusing and developers may think they have to add `extern "C"` too a whole lot of (indirect) includes to be able to use a C header in C++. However, this is a misconception. `extern "C"` does not cause code to be compiled with C rather than C++! It only causes the linker to not use C++ function name mangling. See https://stackoverflow.com/a/1041880. Because extern DNA headers don't have function declarations, using `extern "C"` actually should not have any effect. On the other hand, adding it causes no harm and avoids confusion. So let's just have it consistently in C header files. Differential Revision: https://developer.blender.org/D9578 Reviewed by: Bastien Montagne, Sybren Stüvel
2020-11-06Fix T82387: Crash loading file saved with recent master in old versionsJulian Eisel
This fix makes sure new files save `wmWindow.global_areas` under a different name, so old Blender versions don't recognize and 0-initialize it. Since enabling global area writing (ef4aa42ea4ff), loading a file in old Blender versions would cause `wmWindow.global_areas` to be read, because there was already reading code for it and `ScrAreaMap` was in SDNA. However the `ScrArea.global` of the global areas would be NULL, because it was *not* in SDNA (`ScrGlobalAreaData` was excluded). Now, issue is that the code assumes that areas in the global area-map have a valid ScrArea.global pointer. Think this was a mistake in rB5f6c45498c92. We should have cleared all this data on reading, until the global area writing was enabled. Differential Revision: https://developer.blender.org/D9442 Reviewed by: Brecht Van Lommel
2020-11-06Cleanup: use ELEM macroCampbell Barton
2020-11-05Spelling: Predefined, Look Up, No OneHarley Acheson
Fixes 18 misspellings of 'predefined', 'Look Up', 'Lookup', and 'No One'. Differential Revision: https://developer.blender.org/D9466 Reviewed by Hans Goudey
2020-10-19Spelling: MiscellaneousHarley Acheson
Corrects 34 miscellaneous misspelled words. Differential Revision: https://developer.blender.org/D9248 Reviewed by Campbell Barton
2020-10-19Spelling: It's Versus ItsHarley Acheson
Corrects incorrect usage of contraction for 'it is', when possessive 'its' was required. Differential Revision: https://developer.blender.org/D9250 Reviewed by Campbell Barton
2020-10-15Cleanup: Use DNA defaults for grease pencil modifiersHans Goudey
This will make "Reset to Default Value" work properly for grease pencil modifiers. See T80164 for more information.
2020-10-14Cleanup: Use DNA defaults for fluid modifierHans Goudey
This will make the "Reset to Default Value" operator in button right click menus work for the fluid modifier. Before they always reset the values to 0. Differential Revision: https://developer.blender.org/D9206
2020-10-10Cleanup: use C comments for descriptive textCampbell Barton
Follow our code style guide by using C-comments for text descriptions.
2020-10-08Add DNA defaults for ParticleSettings.Bastien Montagne
2020-10-08DNA: cleanup endian switching when loading fileJacques Lucke
This patch "modernizes" `DNA_struct_switch_endian` similar to how I updated `DNA_struct_reconstruct` recently. Furthermore, some special case handling have been moved to another place. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D9089
2020-10-08Add DNA defaults for MovieClip.Bastien Montagne
2020-10-08Add DNA defaults for Collection.Bastien Montagne
2020-10-08Armature: Add minimal DNA defaults for bArmature.Bastien Montagne
Using mainly values used in `BKE_armature_add()`.
2020-10-07Fix T81226: Crash opening 64bit files with endian switchingCampbell Barton
Endian switching when loading 64bit blend files on a 64bit system was crashing as the endian switching is only applicable when loading on 32 bit systems. This crash goes back to 2.7x, it looks like this never worked all the way back to the first commit.
2020-10-05CMake: include DNA_modifier_defaults.hCampbell Barton
2020-10-03Cleanup: Remove/replace C standard library assert() and header usagesJulian Eisel
We have our own assert implementation, `BLI_assert()` that is prefered over the C standard library one. Its output is more consistent across compilers and makes termination on assert failure optional (through `WITH_ASSERT_ABORT`). In many places we'd include the C library header without ever accessing it.
2020-10-03Cleanup: rename main preferences versioning functionCampbell Barton
BLO_version_defaults_userpref_blend -> blo_do_versions_userdef The name was misleading as it was declared along with BLO_update_defaults_startup_blend making it seem these functions were related. In fact preference defaults don't need to be updated as is done for startup.blend since an in-memory blend file isn't used. Rename the function to match other versioning functions called from readfile.c. Also add/update comments on these differences.
2020-10-02Cleanup: reduce variable scopesJacques Lucke
2020-10-01Cleanup: Use DNA defaults for cloth modifierHans Goudey
Followup for rB8398050695 This requires moving a few enum definitions to DNA instead of BKE, and adding default definitions for the two structs the cloth modifier where the cloth modifier stores its settings. The defaults are also reordered to be consistent with the order of each item in the struct.
2020-10-01Use DNA defaults system for modifiersHans Goudey
As noted in T80164, there are quite a few area of Blender where the "Reset to Default Value" operator in button context menus doesn't work. Modifiers are one of them, because the DNA defaults system was never set up for them. Additionally, this should make modifier versioning easier. Whenever a new field is added it should be automatically initialized to the default value. I had to make some ordering changes in the following modifiers to work around an error with `-Wsign-conversion` in the macros: - Solidify Modifier - Corrective Smooth Modifier - Screw Modifier Some modifiers are special cases and are skipped in this commit: - Data Transfer Modifier - Cloth Modifier - Fluid Modifier - Softbody Modifier Differential Revision: https://developer.blender.org/D8747
2020-10-01Cleanup: dna_genfile API for accessing struct member offsetsCampbell Barton
- Rename `find_elem` to `elem_offset` (matching `elem_exists`). - Remove unused `SDNA_StructMember` return argument. - Return an offset instead of a pointer which was being converted back into an offset by one caller, in this case there was no way to tell the difference between and element that doesn't exist and a struct member at the start of the array. Resolves UBSan warning raised in T81340.
2020-09-30Cleanup: spellingCampbell Barton
2020-09-29DNA: optimize struct reconstruction by doing some preprocessingJacques Lucke
When loading large files that are more than a couple weeks old (such that DNA has changed in that time), a significant amount of time is spent in `DNA_struct_reconstruct`. This function takes a struct in the old layout and creates a struct in the new layout from it. This was slow because it was computing the diff between the struct layouts every time a struct is updated. Now the steps for the struct reconstruction is computed only once per struct. This information is then used to actually reconstruct all structs that changed. I measured about 10-20% speedup when loading Spring files. E.g. `10.6s -> 8.7s` for `06_055_A.anim.blend` in BKE_blendfile_read`. This percentage varies a lot based on the number of blocks that have to be reconstructed and how much DNA has changed since they have been written. In none of my tests was the new code slower than the old code. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D8959
2020-09-29DNA: use better type for SDNA->structsJacques Lucke
The data layout remains exactly the same.. This change just gives all the elements in `SDNA->structs` names, making it more comfortable to work with the data. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D8926
2020-09-17Cleanup: reduce variable scopeJacques Lucke
2020-09-17CMake: clean up setting of platform specific linker flagsBrecht Van Lommel
Set flags directly on the target, and use common function for all cases. This refactoring helps with the next commit for test executables. Ref D8714
2020-09-13Cleanup: spelling, update function name in commentsCampbell Barton
2020-09-10DNA: fix asan warning when casting typesJacques Lucke
Reviewers: brecht Differential Revision: https://developer.blender.org/D8865
2020-09-07Docs: add note on updating startup defaults to dna_defaultsCampbell Barton
Without this it's not clear which defaults these values are used for.
2020-09-04Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fixSebastian Parborg
No functional changes
2020-09-02Make rigidbody simulation handle animated objects gracefullySebastian Parborg
The animated objects was not updated for each internal substep for the rigidbody sim. This would lead to unstable simulations or very annoying clipping artifacts. Updated the code to use explicit substeps and tie it to the scene frame rate. Fix T47402: Properly updating the animated objects fixes the reported issue. Reviewed By: Brecht, Jacques Differential Revision: http://developer.blender.org/D8762
2020-08-28DNA: add pragma once to dna_type_offsets.hJacques Lucke
Sometimes, this generated file is included more than once, so it should have an include guard.
2020-08-08Cleanup: replace elem_strcmp with elem_streqCampbell Barton
This is used for equality and didn't have the same behavior as strcmp.
2020-08-08Clenup: use STREQ macroCampbell Barton
2020-08-07Cleanup: Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule. This should be the final commit of the series of commits that addresses this particular rule. No functional changes.
2020-08-07Merge branch 'blender-v2.90-release' into masterJacques Lucke
2020-08-07Code Style: use "#pragma once" in source directoryJacques Lucke
This replaces header include guards with `#pragma once`. A couple of include guards are not removed yet (e.g. `__RNA_TYPES_H__`), because they are used in other places. This patch has been generated by P1561 followed by `make format`. Differential Revision: https://developer.blender.org/D8466
2020-08-06Merge branch 'blender-v2.90-release' into masterCampbell Barton
2020-08-06Cleanup: avoid debug-only includes for BLI_assert.hCampbell Barton
Having includes in debug builds makes it possible to accidentally break release builds. Avoid this by moving calls to other modules out of BLI_assert.h into BLI_assert.c
2020-08-01Cleanup: use term init instead of initialize/initialiseCampbell Barton
The abbreviation 'init' is brief, unambiguous and already used in thousands of places, also initialize is often accidentally written with British spelling.
2020-07-31Merge branch 'blender-v2.90-release'Sergey Sharybin
2020-07-31Add generic session UUID structures to DNASergey Sharybin
Allows to use pre-defined structure for session UUIDs in all data structures which needs it: pose channels, sequencer strips, modifiers. The goal of all this is to have a reliable way of matching original and copy-on-written versions of data, so that it's possible to preserve runtime caches.
2020-07-28Cleanup: incorrect spelling of 'manhattan'Campbell Barton