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-07-10VSE: improve waveform drawing step 1soc-2022-waveform-drawing徐铭
2022-07-09Fix cursor display size with tablet input in GHOST/WaylandCampbell Barton
The scale for tablet cursor surfaces was never set, making them display larger. Now the outputs scale is set for mouse & tablet cursors.
2022-07-09Cleanup: split out wl_buffer creation into a utility functionCampbell Barton
Simplify logic for initializing the wl_buffer, ensure the cursors custom data is never heft in a half initialized state. Also remove the need for multiple calls to close when handling errors.
2022-07-09Cleanup: remove buffer_t in GHOST/WaylandCampbell Barton
This was allocated and only used to store the custom cursor data. Use a pointer & size member instead for simplicity.
2022-07-09Cleanup: split memfd_create into it's own function for WaylandCampbell Barton
Avoid ifdef's in cursor loading by creating a memfd_create_sealed utility function that works irrespective of memfd_create availability.
2022-07-09Fix resource leaks setting custom cursors in WaylandCampbell Barton
- Memory from the prior cursor was never un-mapped. - posix_fallocate failure left a file handle open..
2022-07-09UI: renaming fIle browser thumbnail sizesDaniel Salazar
Rename the thumbnail size from Regular to Medium since it's the typical way to refer to sizing in American English Reviewed By: Campbell Barton Differential Revision: https://developer.blender.org/D15305
2022-07-09Weight & Vertex Paint: always respect edit mode hiding on faces.Alexander Gavrilov
In some cases it is mandatory to be able to hide parts of the mesh in order to paint certain areas. The Mask modifier doesn't work in weight paint, and edit mode hiding requires using selection, which is not always convenient. This makes the weight and vertex paint modes always respect edit mode hiding like sculpt mode. The change in behavior affects drawing and building paint PBVH. Thus it affects brushes, but not menu operators like Smooth or Normalize. In addition, this makes the Alt-H shortcut available even without any selection enabled, and implements Hide for vertex selection. Differential Revision: https://developer.blender.org/D14163
2022-07-09Cleanup: quiet class-memaccess warningCampbell Barton
2022-07-09Cleanup: Remove unused variableHans Goudey
2022-07-08Fix T99494: Transition effects not working correctlyRichard Antalik
This was caused by strip content length and start position being incorrect. Previously this was set from strip boundary by update function, but it was removed. Add back code to set effect strip start and length. Previously content length was always 1 for effects, but now it must correspond to strip length. Because of this workaround for speed effect to get this apparent content length was removed.
2022-07-08Fix bug in recently added MutableVArraySpan move constructorBrecht Van Lommel
2022-07-08Curves: use consistent default radius for Cycles, Eevee, Set Curve Radius nodeBrecht Van Lommel
To avoid Cycles not showing any hair by default, and to avoid very slow render due to many overlaps with the previous 1 meter default in the node. Fixes T97584, T99319 Differential Revision: https://developer.blender.org/D15405
2022-07-08Cleanup: convert brush.c to C++Brecht Van Lommel
In preparation of refactoring for texture nodes.
2022-07-08Geometry Nodes: new geometry attribute APIJacques Lucke
Currently, there are two attribute API. The first, defined in `BKE_attribute.h` is accessible from RNA and C code. The second is implemented with `GeometryComponent` and is only accessible in C++ code. The second is widely used, but only being accessible through the `GeometrySet` API makes it awkward to use, and even impossible for types that don't correspond directly to a geometry component like `CurvesGeometry`. This patch adds a new attribute API, designed to replace the `GeometryComponent` attribute API now, and to eventually replace or be the basis of the other one. The basic idea is that there is an `AttributeAccessor` class that allows code to interact with a set of attributes owned by some geometry. The accessor itself has no ownership. `AttributeAccessor` is a simple type that can be passed around by value. That makes it easy to return it from functions and to store it in containers. For const-correctness, there is also a `MutableAttributeAccessor` that allows changing individual and can add or remove attributes. Currently, `AttributeAccessor` is composed of two pointers. The first is a pointer to the owner of the attribute data. The second is a pointer to a struct with function pointers, that is similar to a virtual function table. The functions know how to access attributes on the owner. The actual attribute access for geometries is still implemented with the `AttributeProvider` pattern, which makes it easy to support different sources of attributes on a geometry and simplifies dealing with built-in attributes. There are different ways to get an attribute accessor for a geometry: * `GeometryComponent.attributes()` * `CurvesGeometry.attributes()` * `bke::mesh_attributes(const Mesh &)` * `bke::pointcloud_attributes(const PointCloud &)` All of these also have a `_for_write` variant that returns a `MutabelAttributeAccessor`. Differential Revision: https://developer.blender.org/D15280
2022-07-08Linux: Move Mesa software OpenGL libraries to sub-directorySergey Sharybin
Allows to put libraries which are always needed by Blender into the lib/ folder and not worry about OpenGL libraries picked up from there. Currently no functional changes as we do not yet have dynamic libraries which we load at startup. It allows to use direct linking of oneAPI Cycles device (see D15397), also it is something which would need to happen to support USD/Hydra/TBB compiler as dynamic libraries in the future. Differential Revision: https://developer.blender.org/D15403
2022-07-08Cycles: enable oneAPI in Linux release buildsXavier Hallade
with a very high min-driver version requirement, placeholder until JIT CentOS runtime compilation issue gets fixed in a defined version. min-driver version check can be worked around by setting CYCLES_ONEAPI_ALL_DEVICES environment variable.
2022-07-08Fix T99191: Boolean modifier creates invalid material indicesHans Goudey
Similar to 1a6d0ec71cf3b0c2c which changed the mesh boolean node (and also caused this bug), this commit changes the material mapping for the exact mode of the boolean modifier. Now the result should contain any material on the faces of the input objects (including materials linked to objects and meshes). The improvement is possible because materials can be changed during evaluation (as of 1a81d268a19f2f1402). Differential Revision: https://developer.blender.org/D15365
2022-07-08Hair Curves: The new curves object is now availableDalai Felinto
This commit doesn't implement any new feature but makes the new curves object type no longer experimental. Documentation: * https://docs.blender.org/manual/en/3.3/modeling/curves/primitives.html#empty-hair * https://docs.blender.org/manual/en/3.3/sculpt_paint/curves_sculpting/introduction.html Note: This also makes the Selection Paint tool available. This tool should have been moved out of the "New Curves Tool" flag when we got the selection drawing to work. Differential Revision: https://developer.blender.org/D15402
2022-07-08Cleanup: make formatDalai Felinto
2022-07-08Curves: support deforming curves on surfaceJacques Lucke
Curves that are attached to a surface can now follow the surface when it is modified using shape keys or modifiers (but not when the original surface is deformed in edit or sculpt mode). The surface is allowed to be changed in any way that keeps uv maps intact. So deformation is allowed, but also some topology changes like subdivision. The following features are added: * A new `Deform Curves on Surface` node, which deforms curves with attachment information based on the surface object and uv map set in the properties panel. * A new `Add Rest Position` checkbox in the shape keys panel. When checked, a new `rest_position` vector attribute is added to the mesh before shape keys and modifiers are applied. This is necessary to support proper deformation of the curves, but can also be used for other purposes. * The `Add > Curve > Empty Hair` operator now sets up a simple geometry nodes setup that deforms the hair. It also makes sure that the rest position attribute is added to the surface. * A new `Object (Attach Curves to Surface)` operator in the `Set Parent To` (ctrl+P) menu, which attaches existing curves to the surface and sets the surface object as parent. Limitations: * Sculpting the procedurally deformed curves will be implemented separately. * The `Deform Curves on Surface` node is not generic and can only be used for one specific purpose currently. We plan to generalize this more in the future by adding support by exposing more inputs and/or by turning it into a node group. Differential Revision: https://developer.blender.org/D14864
2022-07-08Fix build error without unity build, after recent changesBrecht Van Lommel
2022-07-08Fix Crash: Reading canvas tool settings.Jeroen Bakker
Blender would crash when a file was saved where the tool settings is set to paint on a single image (3d texture painting). Reason is that the selected image memory address wasn't updated when the new address.
2022-07-08Draw: Curve outline drawing in object mode.Jeroen Bakker
This patch adds (selected/active) outline around a curve object in object mode. {F13270680} In the past the draw bounds option was enabled for any curve objects. With this patch it isn't needed and will be disabled. In the future the curve outline could also be enabled to improve GPU selection. Reviewed By: dfelinto, HooglyBoogly, fclem Maniphest Tasks: T95933 Differential Revision: https://developer.blender.org/D15308
2022-07-08Add a few missing UI strings to translation.Damien Picard
Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15392
2022-07-08GHOST/Wayland: add logging for listener handlersCampbell Barton
Add logging to all Wayland listener callbacks as it can be difficult to detect the cause of problems. Using break-points often isn't practical for debugging interactive windowing / compositor issues Logging needs to be enabled on the command line, e.g: blender --log "ghost.wl.*" --log-level 2 --log-show-basename
2022-07-08GHOST: use ELEM/ARRAY_SIZE/UNPACK macros to avoid repetitionCampbell Barton
Also use UNLIKELY macro for checks for very unlikely scenarios.
2022-07-08GHOST: add GHOST_utildefinesCampbell Barton
Add macros from BLI_utildefines, mainly to avoid that avoid repetition (ELEM, UNPACK*, CLAMP* & ARRAY_SIZE). Also add macros LIKELY/UNLIKELY as there are quiet a lot of checks for unlikely situations for GHOST/Wayland (not having a keyboard, or mouse for e.g.).
2022-07-08Cleanup: Move mesh legacy conversion to a separate fileHans Goudey
It's helpful to make the separation of legacy data formats explicit, because it declutters actively changed code and makes it clear which areas do not follow Blender's current design. In this case I separated the `MFace`/"tessface" conversion code into a separate blenkernel .cc file and header. This also makes refactoring to remove these functions simpler because they're easier to find. In the future, conversions to the `MLoopUV` type and `MVert` can be implemented here for the same reasons (see T95965). Differential Revision: https://developer.blender.org/D15396
2022-07-08Fix T99364: Unable to select bones when custom shape display is disabledCampbell Barton
Regression in [0] which revealed an error in [1]. Logic for pose channel custom transform ignored ARM_NO_CUSTOM. [0]: 3267c91b4d5caab7da8aef071a446dd2e86f86a9 [1]: c3fef001ee926fc183255b623f56da9fc5fcbb73
2022-07-08Cleanup: spelling in commentsCampbell Barton
Also move mis-placed doc-string.
2022-07-08Cleanup: formatCampbell Barton
2022-07-08Cleanup: Calm GCC Conversion WarningHarley Acheson
Commit b9c0eed206b0 introduced a GCC conversion warning because of an assignment of a long int value to an int. Own Code
2022-07-07BLF: Add Support for Variable FontsHarley Acheson
Add support for Variable/Multiple Master font features. These are fonts that contain a range of design variations along multiple axes. This contains no client-facing options. See D12977 for details and examples Differential Revision: https://developer.blender.org/D12977 Reviewed by Brecht Van Lommel
2022-07-07Fix T99332: resize video in image editor does not update correctlyBrecht Van Lommel
Use the image user from the image editor to correctly get the frame in the operators. Based on patch by Nicolas (john-g-h-doe) with changes by me. Differential Revision: https://developer.blender.org/D15380
2022-07-07Cleanup: Remove unused variableHans Goudey
2022-07-07Cleanup: improve asserts in generic spanJacques Lucke
2022-07-07BLI: make some spans default constructibleJacques Lucke
`GSpan` and spans based on virtual arrays were not default constructible before, which made them hard to use sometimes. It's generally fine for spans to be empty. The main thing the keep in mind is that the type pointer in `GSpan` may be null now. Generally, code receiving spans as input can assume that the type is not-null, but sometimes that may be valid. The old #type() method that returned a reference to the type still exists. It asserts when the type is null.
2022-07-07LibOverride: Make fully editable when creating an experimental user setting.Bastien Montagne
This is temporary to investigate which behavior should be kept when creating an override hierarchy if there are no cherry-picked data defined: make all overrides user-editable, or not. This removes the 'make override - fully editable' menu entries.
2022-07-07UI: Superimposed pin icon for workspace scene pinning in the scene switcherJulian Eisel
Followup to the previous commit, to display a pin icon in the scene switcher. This is a good indicator to have and such workspace-wide functionality should be available in the topbar, close to what it belongs to (scene switching). Downside is that it makes this already crowded region even more crowded. But thanks to the use of superimposed icons, it's not too noisy visually. Differential Revision: https://developer.blender.org/D11890 Reviewed by: Campbell Barton
2022-07-07Workspaces: Option to pin scene to a workspaceJulian Eisel
Adds a "Pin Scene" option to the workspace. When activated, the workspace will remember the scene that was last activated in it, so that when switching back to this workspace, the same scene will be reactivated. This is important for a VSE workflow, so that users can switch between different workspaces displaying a scene and thus a timeline for a specific task. The option can be found in the Properties, Workspace tab. D11890 additionally adds an icon for this to the scene switcher in the topbar. The workspace data contains a pointer to the scene which is a UI to scene data relation. When appending a workspace, the pointer is cleared. Differential Revision: https://developer.blender.org/D9140 Reviewed by: Brecht Van Lommel, Bastien Montagne (no final accept, but was fine with the general design earlier)
2022-07-07Outliner, Library Overrides: List child objects under parentsJulian Eisel
Because children point to, or "use" their parent, the Library Overrides Hierarchies mode in the Outliner would show parents contained in children, not children contained in a parent. See D15339 for pictures. In production files this would make the rig listed under all its children, so it would appear many times in the tree. Now it appears once and the children are collected under it. Refactors the tree building, so instead of using `BKE_library_foreach_ID_link()`, it now uses the ID relations mapping in `MainIDRelations`. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15339
2022-07-07Fix T99256: Regression: Meta balls segfaulting copy-to-selected.Bastien Montagne
Revealed by rB43167a2c251b, but actuall issue is the `rna_MetaBall_update_data` function expecting a never-NULL `scene` pointer, which is not guaranteed. This lead to refactoring the duo `rna_MetaBall_update_data`/`BKE_mball_properties_copy`, since it was doing a very sub-optimal O(n^2) process, new code is O(2n) now (n being the number of Objects). Not sure why the objects were processed through the existing bases of the existing scene in the first place, this could miss a lot of affected objects (e.g. in case said objects are in an excluded collection, etc.). Also noticed that both old and new implementation can fail to fully propagate changes to all affected meta-balls in some specific corner cases, added a comment about it in the code. Reviewed By: sergey Maniphest Tasks: T99256 Differential Revision: https://developer.blender.org/D15338
2022-07-07Compositor: Pre-fill motion tracking fieldsSergey Sharybin
Extends current functionality which was only filling in the active movie clip. Now we also pre-fill tracking object name, as well as (plane)track name.
2022-07-07Cleanup: Use std::move for geometry setHans Goudey
The only real improvement is avoiding some reference counting, but the main for the change is consistency. Also don't move a StringRef, since that doesn't own any data anyway.
2022-07-07Cleanup: Use C++ style of avoiding unused variable warningsHans Goudey
As documented in the best practices section of the style guide: https://wiki.blender.org/wiki/Style_Guide/Best_Practice_C_Cpp
2022-07-07Cleanup: Use generic index mask utilityHans Goudey
This may lead to improved performance from multithreading as well.
2022-07-07Fix: Spreadsheet does not display original curves dataHans Goudey
The spreadsheet ignored the component choice in the data set region for curves and volume objects, and the original curves data-block wasn't retrieved from the original object.
2022-07-07Fix T99505: NLA tweak mode crashes with GPencil dataAmélie Fondevilla
Adding Grease Pencil keyframes in the dopesheet (rB92d7f9ac56e0) lead to crashes from the NLA editor (T99505). This is now resolved, by removing grease pencil keyframes from NLA editor (as it was in 3.2), and filtering them out of all NLA-related operations. Reviewed By: sybren Differential Revision: https://developer.blender.org/D15391
2022-07-07Fix T99453: Regression: Crash on calling menu searchPratik Borhade
Fix T99453. Crash due to null pointer access. So wrap the function call in simple `if` check Reviewed By: sybren Maniphest Tasks: T99453 Differential Revision: https://developer.blender.org/D15370