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-11-02Images: refactor how failed image load attempts are rememberedJacques Lucke
Previously, `ImageTile->ok` and `ImageUser->ok` were used to indicate whether an image failed to load. There were three possible values which (probably) had the following meanings: * `0`: There was an error while loading the image. Don't try to load again. * `1`: Default value. Try to load the image. * `2`: The image was loaded successfully. This image-wide flag did not make sense unfortunately, because loading may work for some frames of an image sequence but not for others. Remember than an image data block can also contain a movie. The purpose of the `->ok` flag was to serve as an optimization to avoid trying to load a file over and over again when there is an error (e.g. the file does not exist or is invalid). To get the optimization back, the patch is changing `MovieCache` so that it can also cache failed load attempts. As a consequence, `ibuf` is allowed to be `NULL` in a few more places. I added the appropriate null checks. This also solves issues when image sequences are used with the Image Texture node in Geometry nodes (also see D12827). Differential Revision: https://developer.blender.org/D12957
2021-10-26Cleanup: spelling in commentsCampbell Barton
2021-10-22Fix T92290: Linked Color Palette datablocks can not be used.Bastien Montagne
* Forbid editing linked palettes. * Make `color` RNA property of ColorPalette '`LIB_EXCEPTION`', so that the color buttons in the palette template remain active on linked data. NOTE: This incidently makes linked palettes' colors editable from RNA, not from UI though, so think this is OK for now.
2021-10-21Cleanup: use underscore separators for event struct membersCampbell Barton
Improve readability using underscores for separators, e.g. prev_click_time instead of prevclicktime.
2021-10-20Cleanup: use an array for wmEvent cursor position variablesAaron Carlisle
Use arrays for wmEvent coordinates, this quiets warnings with GCC11. - `x, y` -> `xy`. - `prevx, prevy` -> `prev_xy`. - `prevclickx, prevclicky` -> `prev_click_xy`. There is still some cleanup such as using `copy_v2_v2_int()`, this can be done separately. Reviewed By: campbellbarton, Severin Ref D12901
2021-10-20Cleanup: use elem macrosCampbell Barton
2021-10-18Fix T79005: Vertex color conversion operators changing the colorsPablo Dobarro
CD_PROP_COLOR vertex data is stored in scene linear while legacy vertex colors are srgb, so both operators also need to do this conversion Reviewed By: sergey Maniphest Tasks: T79005 Differential Revision: https://developer.blender.org/D8320
2021-10-18Cleanup: spelling in commentsCampbell Barton
2021-10-14Cleanup: pass the sizeof(..) as the second arg for array allocationCampbell Barton
By argument naming and convention this is the intended argument order.
2021-10-07Revert commit, turns out this isn't a bug?Joseph Eagar
2021-10-07Fix mask expand not properly supportingJoseph Eagar
both inverse and keep mask modes being on at the same time.
2021-10-06Cleanup: spelling in commentsCampbell Barton
2021-09-29Fix T89164: Sculpt "Smooth" brush crash with zero pressurePhilipp Oeser
Caused by {rB3e5431fdf439} Issue is that sculpting could start with using `SCULPT_smooth` and (because of the Pressure sensitivity dropping to zero) code would switch to `SCULPT_enhance_details_brush` at strength zero. Issue with this though is that this can be in the middle or end of a stroke and the necessary `ss->cache->detail_directions` are only initialized for the first brush step (see `SCULPT_stroke_is_first_brush_step` in `SCULPT_enhance_details_brush`). With these missing, it could only go downhill from there. Suggest to prevent the "mode-flip" from `SCULPT_smooth` to `SCULPT_enhance_details_brush` (happening solely because of pressure strength) by changing the condition. Now do `SCULPT_enhance_details_brush` only if strength is **below** zero and `SCULPT_smooth` else (flipping from enhance_details to regular smooth is fine). If inverting the brush in the middle of the stroke will be supported at some point, the codepath of `smooth` would have to inform the cache that invert changed and detail_directions would have to be initialized then (even if not at the start of the stroke). Maniphest Tasks: T89164 Differential Revision: https://developer.blender.org/D12676
2021-09-23Fix T91557: Texture Paint Stencil doesnt use assigned UV LayerPhilipp Oeser
Choosing a UV layer would actually affect the overlay in the viewport and also painting with the mask brush was in that UV space, but the resulting stencil mask was always applied with the active UV (not the explicitly selected stencil UV -- the one one is looking at in the viewport!) to painting. This has been like that as far as I have checked back (at least 2.79b), I am surprised this has not come up before, but it does not seem to make sense at all... Now use the UV specified for the stencil layer when applying the mask for painting, so it corresponds to the stencil mask one is looking at in the viewport. Maniphest Tasks: T91557 Differential Revision: https://developer.blender.org/D12583
2021-09-17UI: enable the depend-on-cursor flag for some operatorsCampbell Barton
- Bend (Transform). - Extrude to Cursor. - Lasso Select (related operators such as node-cut links, mask.. etc). - Rip Mesh / UV's. - Vertex/Edge Slide.
2021-09-15Cleanup: Use function to mark mesh normals dirtyHans Goudey
2021-08-31Cleanup: remove unnecessary obedit argument from ED_space_image_setCampbell Barton
This was left over from when changing the image set the faces texture.
2021-08-06Cleanup: use MEM_SAFE_FREE macroCampbell Barton
2021-08-05Fix T90235: Smooth Brush not working with interior vertices with two ↵Pablo Dobarro
adjacent edges The exception to automatically pin vertices of grid corners also has to take into account that the vertex is in a boundary. Reviewed By: JacquesLucke Maniphest Tasks: T90235 Differential Revision: https://developer.blender.org/D12044
2021-08-05Fix T90236: Sculpt automasking failing when the stroke does not start over ↵Pablo Dobarro
the mesh The active geometry element are usually updated by the cursor drawing code (as they are needed for the cursor preview) and when an sculpt operator starts. For brushes, this was not happening. This was making brushes rely by default on the last cursor drawing update, which can be incorrect if the mouse moved after starting the stroke without hovering the active geometry. Reviewed By: JacquesLucke Maniphest Tasks: T90236 Differential Revision: https://developer.blender.org/D12045
2021-08-05Cleanup: remove redundant parenthesisCampbell Barton
2021-08-03Cleanup: use C++ comments or 'if 0' for commented codeCampbell Barton
2021-07-26Cleanup: spelling in commentsCampbell Barton
2021-07-23Cleanup: code comments punctuation / spacingCampbell Barton
2021-07-20Cleanup: use single back-tick quoting in commentsCampbell Barton
While doxygen supports both, conform to our style guide. Note that single back-tick's are already used in a majority of comments.
2021-07-16Cleanup: remove redundant parenthesesCampbell Barton
2021-07-15Cleanup: replace BLI_assert(!"text") with BLI_assert_msg(0, "text")Campbell Barton
This shows the text as part of the assertion message.
2021-07-13Refactor: Move vertex group names to object dataHans Goudey
This commit moves the storage of `bDeformGroup` and the active index to `Mesh`, `Lattice`, and `bGPdata` instead of `Object`. Utility functions are added to allow easy access to the vertex groups given an object or an ID. As explained in T88951, the list of vertex group names is currently stored separately per object, even though vertex group data is stored on the geometry. This tends to complicate code and cause bugs, especially as geometry is created procedurally and tied less closely to an object. The "Copy Vertex Groups to Linked" operator is removed, since they are stored on the geometry anyway. This patch leaves the object-level python API for vertex groups in place. Creating a geometry-level RNA API can be a separate step; the changes in this commit are invasive enough as it is. Note that opening a file saved in 3.0 in an earlier version means the vertex groups will not be available. Differential Revision: https://developer.blender.org/D11689
2021-07-13Undo System: avoid redundant decoding on undoCampbell Barton
In most cases the undo system was loading undo steps twice. This was needed since some undo systems (sculpt, paint, text) require stepping out of the current undo step. Use a flag to limit this to the undo systems that need it. This improves performance for other undo systems. This gives around 1.96x speedup in edit-mesh for high-poly objects. Reviewed by: mont29 Ref D11893
2021-07-07Cleanup: spelling in commentsCampbell Barton
2021-07-05Cleanup: spelling, punctuationCampbell Barton
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-07-02Cleanup: Use const variables for object's evaluated meshHans Goudey
Generally the evaluated mesh should not be changed, since that is the job of the modifier stack. Current code is far from const correct in that regard. This commit uses a const variable for the reult of `BKE_object_get_evaluated_mesh` in some cases. The most common remaining case is retrieving a BVH tree from the mesh.
2021-06-28Cleanup: repeated terms in code comments & error messagesCampbell Barton
2021-06-26Cleanup: full sentences in comments, improve comment formattingCampbell Barton
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-23Fix T89221: Sculpt tools symmetry failing with non symmetrical meshesPablo Dobarro
SCULPT_nearest_vertex_get expects a distance, not a distance squared. This should make symmetry work as expected, but it still can fail if the mesh topology is not completely symmetrical. Reviewed By: JacquesLucke Maniphest Tasks: T89221 Differential Revision: https://developer.blender.org/D11642
2021-06-23Cleanup: reformat trailing comments that caused line wrappingCampbell Barton
2021-06-22Cleanup: Spelling MistakesLeon Zandman
This patch fixes many minor spelling mistakes, all in comments or console output. Mostly contractions like can't, won't, don't, its/it's, etc. Differential Revision: https://developer.blender.org/D11663 Reviewed by Harley Acheson
2021-06-15BLI: use explicit task isolation, no longer part of parallel operationsBrecht Van Lommel
After looking into task isolation issues with Sergey, we couldn't find the reason behind the deadlocks that we are getting in T87938 and a Sprite Fright file involving motion blur renders. There is no apparent place where we adding or waiting on tasks in a task group from different isolation regions, which is what is known to cause problems. Yet it still hangs. Either we do not understand some limitation of TBB isolation, or there is a bug in TBB, but we could not figure it out. Instead the idea is to use isolation only where we know we need it: when holding a mutex lock and then doing some multithreaded operation within that locked region. Three places where we do this now: * Generated images * Cached BVH tree building * OpenVDB lazy grid loading Compared to the more automatic approach previously used, there is the downside that it is easy to miss places where we need isolation. Yet doing it more automatically is also causing unexpected issue and bugs that we found no solution for, so this seems better. Patch implemented by Sergey and me. Differential Revision: https://developer.blender.org/D11603
2021-06-13Cleanup: redundant initializationCampbell Barton
These were limited to obvious cases. Some less obvious cases were kept as refactoring might make them necessary in future.
2021-06-10Cleanup: spelling in commentsCampbell Barton
2021-06-08BLI: support disabling task isolation in task poolJacques Lucke
Under some circumstances using task isolation can cause deadlocks. Previously, our task pool implementation would run all tasks in an isolated region. Now using task isolation is optional and can be turned on/off for individual task pools. Task pools that spawn new tasks recursively should never enable task isolation. There is a new check that finds these cases at runtime. Right now this check is disabled, so that this commit is a pure refactor. It will be enabled in an upcoming commit. This fixes T88598. Differential Revision: https://developer.blender.org/D11415
2021-06-01BMesh: remove checks for tessellating 2 sided facesCampbell Barton
2 sided faces aren't supported and will cause problems in many areas of Blender's code. Removing (implied) support for faces with fewer than 3 sides means the total number of triangles is known ahead of time. This simplifies adding support for multi-threading and partial updates to an existing tessellation - as the face and loop indices can be used to access the range of triangles associated with a face. Also correct outdated comments.
2021-06-01Cleanup: correct sculpt quat argument sizeCampbell Barton
2021-06-01GPU: add 2D projection functionCampbell Barton
When projecting into screen space Z value isn't always needed. Add 2D projection functions, renaming them to avoid accidents happening again. - Add GPU_matrix_project_2fv - Add ED_view3d_project_v2 - Rename ED_view3d_project to ED_view3d_project_v3 - Use the 2D versions of these functions when the Z value isn't used.
2021-06-01Fix buffer overrun in paint_line_strokes_spacingCampbell Barton
Error in 87cafe92ce2f99d8da620b80e1c26f8078554f93
2021-05-21Cleanup: quiet -Warray-parameter warnings from GCC11Campbell Barton
Some warnings remain that require larger changes.
2021-05-18Merge branch 'blender-v2.93-release'Pablo Dobarro
2021-05-18Fix T88230: Properly handle Face Set visibility in Expand Face Sets editingPablo Dobarro
Expand is not expected to update the visibility state of the PBVH, only the Face Sets IDs. If visibility updates are made accidentally, PBVH rendering breaks. In order for this to work properly, the following fixes are needed: - Expand should always check for active component before attempting to modify a Face Set ID - Expand should always check the visibility state on original_face_sets, as it is the array that contains the visiblilty state that corresponds with the current state used for PBVH rendering. This implies that after any modification done by Expand, the visibility state of ss->face_sets and expand_cache->original_face_sets should match (like in any other tool that does not modify visibility). - Expand should never modify the Face Set ID of a poly that is hidden in expand_cache->original_face_sets. - When deleting an ID, hidden Face Sets should be skipped when picking IDs for content filling. This avoids introducing hidden IDs back into the visible geometry even after updating its visibility state. Reviewed By: JulienKaspar, JacquesLucke Maniphest Tasks: T88230 Differential Revision: https://developer.blender.org/D11243