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
2022-08-19Fix: nurbs basis cache not computed before it is usedJacques Lucke
2022-08-19Cleanup: spelling in commentsCampbell Barton
2022-08-19Cleanup: spelling in commentsCampbell Barton
2022-08-18Outliner: Refactor outliner tree-hash interfaces with C++Julian Eisel
- Turn storage into an object with "automatic" memory management (RAII) so freeing is implicit and reliable. - Turn functions into member functions, to have the data and its functions close together with controlled access that increases encapsulation and hiding implementation details. - Use references to indicate null is not an expected value. - Related minor cleanup (comments, use const etc.) Couldn't spot any changes in performance.
2022-08-18Outliner: Use C++ container for tree hash element storageJulian Eisel
Simplifies code quite a bit, since this was doing the typical work of such a container. I may remove this vector entirely as I'm working on performance fixes, not sure, but simplifying this helps reason about the design. Couldn't spot performance differences in some benchmarks, and I wouldn't expect any. Maybe some minor onces thanks to the small buffer optimization of `blender::Vector`.
2022-08-18Cleanup: General style improvements for Outliner tree hashing codeJulian Eisel
- Use C++ nullptr instead of C's NULL (clang-tidy warns otherwise) - Use early exit/continue to avoid indentation (helps readability because visual scope of no-op branches is minimized). - Use const for local variables, to separate them clearly from the mutable ones. - Avoid struct typedef, this is not needed in C++
2022-08-18Merge branch 'blender-v3.3-release'Bastien Montagne
2022-08-18LibOverride: Preserve active object when creating overrides.Bastien Montagne
2022-08-18Cleanup: spelling, formatCampbell Barton
2022-08-18Cleanup: Move subdiv_mesh.c to C++Hans Goudey
2022-08-17Outliner: Compile outliner tree-hashing files in C++Julian Eisel
Some performance issues were found here with a heavy production file and we want to look into using some C++ to improve things for this ancient code.
2022-08-17Cleanup: Improvements to Outliner tree writing code, add assertJulian Eisel
Comments there weren't really helpful, took me a while to get what they try to say. This attempts to add a better explanation. Also add an assert for a previous, implicit (but commented) assumption, and some minor cleanups.
2022-08-17Outliner: Avoid unnecessary Outliner storage copyJulian Eisel
Was always creating a copy of `SpaceOutliner`, even though it's only needed for one conditional branch. This is a shallow copy, so shouldn't be that expensive, still trivial to avoid.
2022-08-17Fix: Compiler warning in macro after recent C++ conversionHans Goudey
The iterator parameters struct should be initialized to zero in both C and C++. Using memset seems to be the only reliable way to do that.
2022-08-17Cleanup: Fix outdated commentHans Goudey
2022-08-17Cleanup: Remove unused functionHans Goudey
Also remove two DispList references I missed in the previous commit.
2022-08-17Cleanup: Fix outdated comments referring to DispListHans Goudey
2022-08-17Metaball: Evaluate metaball objects as mesh componentsHans Goudey
With the ultimate goal of simplifying drawing and evaluation, this patch makes the following changes and removes code: - Use `Mesh` instead of `DispList` for evaluated basis metaballs. - Remove all `DispList` drawing code, which is now unused. - Simplify code that converts evaluated metaballs to meshes. - Store the evaluated mesh in the evaluated geometry set. This has the following indirect benefits: - Evaluated meshes from metaball objects can be used in geometry nodes. - Renderers can ignore evaluated metaball objects completely - Cycles rendering no longer has to convert to mesh from `DispList`. - We get closer to removing `DispList` completely. - Optimizations to mesh rendering will also apply to metaball objects. The vertex normals on the evaluated mesh are technically invalid; the regular calculation wouldn't reproduce them. Metaball objects don't support modifiers though, so it shouldn't be a problem. Eventually we can support per-vertex custom normals (T93551). Differential Revision: https://developer.blender.org/D14593
2022-08-17Cleanup: Remove unused Outliner search element storageJulian Eisel
This is old code to keep track of an active search element, so you could step through the search results. This isn't used anymore, and not needed since searching now filters the tree to only show matches. If we ever wanted to have support for stepping through elements again, that should be done via the active element instead.
2022-08-17Cleanup: Move view3d_select.c to C++Hans Goudey
Almost entirely adding casting and standard clang tidy changes. Also switch to `blender::Vector` instead of the macro-based `BLI_array`.
2022-08-17Merge branch 'blender-v3.3-release'Philipp Oeser
2022-08-17Use report warning opening file written by newer Blender binaryPhilipp Oeser
handle_subversion_warning() was reporting with RPT_ERROR type, replaced with RPT_WARNING. RPT_ERROR would stop python scripts opening files written by newer Blender binary with bpy.ops.wm.open_mainfile(), preventing further code from running. This does not seem right since Blender itself still loads the files. Ran into this checking T100446 in 2.93. Differential Revision: https://developer.blender.org/D15712
2022-08-17Merge branch 'blender-v3.3-release'Campbell Barton
2022-08-17Cleanup: spelling in commentsCampbell Barton
2022-08-17Cleanup: strip blank lines around comment blocksCampbell Barton
2022-08-17Cleanup: Move view layer array utils from macros to functionsHans Goudey
These macros don't compile in C++ because of taking an address of a temporary and use of designated initializers. Besides that, using functions can improve debugging and type safety. Differentil Revision: https://developer.blender.org/D15693
2022-08-16Merge branch 'blender-v3.3-release'Bastien Montagne
2022-08-16Fix (unreported) bug in liboverride 'leaves' detection.Bastien Montagne
Loopback ID pointers should be ignored here as well, otherwise they are very efficient at preventing proper detection of 'leaf' override IDs in a hierarchy.
2022-08-16Cleanup: some refactoring in mapped mesh extractionBrecht Van Lommel
* Flip the logic to first detect if we are dealing with an unmodified mesh in editmode. And then if not, detect if we need a mapping or not. * runtime.is_original is only valid for the bmesh wrapper. Rename it to clarify that and only check it when the mesh is a bmesh wrapper. * Remove MR_EXTRACT_MAPPED and instead check only for the existence of the origindex arrays. Previously it would sometimes access those arrays without MR_EXTRACT_MAPPED set, which according to a comment means they are invalid. Differential Revision: https://developer.blender.org/D15676
2022-08-16Cleanup: spelling in commentsCampbell Barton
2022-08-16Cleanup: formatCampbell Barton
2022-08-16Sculpt: Improve sculpt debug drawJoseph Eagar
* Fixed crash in debug draw code. Apparently this is only used by PBVH draw? * Debug draw code can now be forcibly enabled in release mode (i.e. RelWithDebugInfo) by uncommenting a commented out #define. * Fixed colors in debug draw mode. * PBVH node boxes in debug mode now flash a different color when they are updated.
2022-08-15GPU: replace GLEW with libepoxyChristian Rauch
With libepoxy we can choose between EGL and GLX at runtime, as well as dynamically open EGL and GLX libraries without linking to them. This will make it possible to build with Wayland, EGL, GLVND support while still running on systems that only have X11, GLX and libGL. It also paves the way for headless rendering through EGL. libepoxy is a new library dependency, and is included in the precompiled libraries. GLEW is no longer a dependency, and WITH_SYSTEM_GLEW was removed. Includes contributions by Brecht Van Lommel, Ray Molenkamp, Campbell Barton and Sergey Sharybin. Ref T76428 Differential Revision: https://developer.blender.org/D15291
2022-08-15Cleanup: fix typosBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D15680
2022-08-15Cleanup: make formatBrecht Van Lommel
2022-08-15Fix regression: crash with uv constrain to bounds without imageChris Blackbourn
Merge confusion between cc1daa9b766d and 0d62e963b06e.
2022-08-12Merge branch 'blender-v3.3-release'Bastien Montagne
Conflicts: source/blender/editors/space_outliner/outliner_tools.cc
2022-08-12Merge branch 'blender-v3.3-release'Campbell Barton
2022-08-12Fix T100350: missing brush falloff preview in sculpt modeBrecht Van Lommel
2022-08-12Merge branch 'blender-v3.3-release'Bastien Montagne
2022-08-12Cleanup: Typos in comments.Bastien Montagne
2022-08-12Merge branch 'blender-v3.3-release'Bastien Montagne
Conflicts: source/blender/blenkernel/BKE_lib_override.h
2022-08-12Fix (unreported) infinite tie building Outliner liboverride hierarchy tree.Bastien Montagne
In complex scenes featuring thousands of connections between IDs in their liboverride hierarchies (e.g. Heist files), the time required to check if tree items were available (before allocated a new one) would become insanely long (O(n^2)). This commit brings it back to roughly a constant time, only re-checking the whole array for unused items once in a while (once every 10k times currently), since in almost all cases is the index after `lastused` value is not unused, and you have reached the end of the currently used array of items, you actually need to 'allocate' a new one anyway. It also improves the handling of `lastused` index, in particular in `tse_group_add_element`. This makes switching to the Outliner override hierarchy view in Heist scenes from virtually infinite time (more than 30mins for sure) to about 20 seconds on my machine. Still far from being effectively usable. Note that this is only a bandaid fix anyway, root of the issue is that this view has to deal with way too many items in its tree, current code is not designed for that. Either outliner has to improve its tree handling (by only building subsets of the whole tree maybe?), or we have to cull/filter out some of the ID relationships between overridden IDs to make this view actually usable. Maybe limit the depth of the tree?
2022-08-12IDType `get_owner`: add an optional hint about owner ID.Bastien Montagne
In some cases, there is a chance code already knows who might be the owner of the given ID, in which case it can be more efficient to check it first (especially in cases like embedded node trees or scene collections, where the only other way is to loop over all possible owners currently). Will be used in next commit in some Outliner fix.
2022-08-12Cleanup: repeated words in commentsCampbell Barton
2022-08-12Cleanup: use enum type for argumentCampbell Barton
2022-08-12Cleanup: use short names for verts & polys as they're unambiguousCampbell Barton
Follow conventions used in most existing code.
2022-08-12Cleanup: replace magic number with flagCampbell Barton
2022-08-12Cleanup: replace term face with polyCampbell Barton
Be consistent with naming to avoid mixing MPoly/MFace.
2022-08-11Fix: Use of uninitialized variable in recent commitHans Goudey
Mistake in 2480b55f216c.