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-10-08Sequencer: add option to toggle gizmosCampbell Barton
Use shortcut matching the 3D view & popover in the header
2021-10-07Sequencer: 2D cursor for the preview & transformCampbell Barton
- Use 2D cursor in the preview space using shortcuts matching the UV editor and 3D view. - Add Cursor tool, cursor transform. - Support for cursor and bound-box pivot. - Add pivot pie menu.
2021-10-07Asset Browser: Rework layout & behavior of catalog tree-viewJulian Eisel
This reworks how tree rows are constructed in the layout and how they behave in return. * To open or collapse a row, the triangle/chevron icon has to be clicked now. The previous behavior of allowing to do it on the entire row, but only if the item was active already, was just too unusual and felt weird. * Reduce margin between chevron icon and the row label. * Indent child items without chevron some more, otherwise they feel like a row on the same level as their parent, just without chevron. * Fix renaming button taking entire row width. Respect indentation now. * Fix double-clicking to rename toggling collapsed state on each click. Some hacks/special-handling was needed so tree-rows always highlight while the mouse is hovering them, even if the mouse is actually hovering another button inside the row.
2021-10-06Asset Browser: Show catalog add & delete icons on mouse hover (only)Julian Eisel
Now the icons to add or delete catalogs are only shown when mouse hovering a catalog item in the tree. This is convenient for quick creation of catalogs, and doesn't require activating a catalog to edit it first. Determining if a tree item is hovered isn't trivial actually. The UI tree-view code has to find the matching tree-row button in the previous layout to do so, since the new layout isn't calculated yet.
2021-10-06Fix possibly wrong matching of tree-view item buttonsJulian Eisel
The UI code to ensure consistent button state over redraws was just comparing the name of the item, ignoring the parent names. So with multiple items of the same name, there might have been glitches (didn't see any myself though). There's a leftover to-do though, we don't check yet if the matched buttons are actually from the same tree. Added TODO comment.
2021-10-06Assets: Support Renaming Catalogs in the UIJulian Eisel
Catalogs can now be renamed by double clicking them in the Asset Browser. This is mostly done through the tree-view API, the asset specific code is very little. There is some polish left to be done here, e.g. the double click currently also collapses/uncollapses and activates the clicked item. And the rename button takes the full width of the row. But addressing these is better done as part of some other behavioral changes that are planned anyway.
2021-10-06Cleanup: Improve readability & comments in UI tree-view headerJulian Eisel
2021-10-05Fix T91940: Asset Browser catalogs continuously redrawJulian Eisel
Issue was that the `on_activate()` callback of tree-items were continuously called, because the active-state was queried before we fully reconstructed the tree and its state from the previous redraw. Such issues could happen in more places, so I've refactored the API a bit to reflect the requirements for state queries, and include some sanity checks. The actual fix for the issue is to delay the state change until the tree is fully reconstructed, by letting the tree-items pass a callback to check if they should be active.
2021-10-05Cleanup: Better way to pass activate callbacks to Tree-View itemsJulian Eisel
The `ui::BasicTreeViewItem` took a function-like object to execute on item activation via the constructor. This was mainly intended to be used with lambdas. However, it's confusing to just have this lambda there, with no indication of what it's for (activation). Instead, assign the function-like object via an explicit `on_activate()` function.
2021-10-05Cleanup: remove unused parameterPeter Kim
2021-10-05XR: Add runtime window area for XR eventsPeter Kim
This adds an offscreen View3D window area for the VR view in order to execute XR events/operators in the proper context. The area is created as runtime data before XR events are dispatched and set as the active area during XR event handling. Since the area is runtime-only, it will not be saved in files and since the area is offscreen, it will not interfere with regular window areas. The area is removed with the rest of the XR runtime data on exit, file read, or when stopping the VR session. Note: This also adds internal types (EVT_DATA_XR, EVT_XR_ACTION) and structs (wmXrActionData) for XR events. Reviewed By: Severin Differential Revision: https://developer.blender.org/D12472
2021-10-04UI Tree-View API: Enforce active item to be un-collapsedJulian Eisel
Makes sure that the active item of a tree never has collapsed parent items, which can be confusing if it happens. E.g. for the asset catalogs UI, the active catalog decides which assets are visible. Having it hidden while being the main factor deciding which assets are visible is quite confusing. I think it makes sense to have this at the UI Tree-View level, rather than doing it manually in the asset catalog code for example. Seems like something you'd commonly want. We can make it optional in the API if needed. Renamed the `set_active()` function to make clear that it is more than a mere setter.
2021-09-30UI: Support easy dropping into/onto rows in new tree-view APIJulian Eisel
Adds an easy way to add drop support for tree-view rows. Most of the work is handled by the tree-view UI code. The tree items can simply override a few functions (`can_drop()`, `on_drop()`, `drop_tooltip()`) to implement their custom drop behavior. While dragging over a tree-view item that can be dropped into/onto, the item can show a custom and dynamic tooltip explaining what's gonna happen on drop. This isn't used yet, but will soon be for asset catalogs. See documentation here: https://wiki.blender.org/wiki/Source/Interface/Views#Further_Customizations
2021-09-30Cleanup: isolate UDIM parameters into a structCampbell Barton
Passing multiple UDIM arguments into the packing function is awkward especially since the caller may not be using UDIM. Use an argument to store UDIM packing parameters which can be NULL, which operates without any UDIM support. Add a function that extracts these parameters out of the image space allowing for multiple functions to take UDIM parameters in the future.
2021-09-29Asset Browser: Initial Asset Catalog UIJulian Eisel
The Asset Browser now displays a tree with asset catalogs in the left sidebar. This replaces the asset categories. It uses the new UI tree-view API (https://wiki.blender.org/wiki/Source/Interface/Views#Tree-View). Buttons are displayed for adding and removing of catalogs. Parent items can be collapsed, but the collapsed/uncollapsed state is not stored in files yet. Note that edits to catalogs (e.g. new or removed catalogs) are only written to the asset library's catalog definition files when saving a .blend. In the "Current File" asset library, we try to show asset catalogs from a parent asset library, or if that fails, from the directory the file is stored in. See adaf4f56e1ed. There are plenty of TODOs and smaller glitches to be fixed still. Plus a UI polishing pass should be done. Important missing UI features: * Dragging assets into catalogs (WIP, close to being ready). * Renaming catalogs * Proper handling of catalogs in the "Current File" asset library (currently not working well). The "Current File" asset library is especially limited still. Since this is the only place where you can assign assets to a catalog, this makes the catalogs very cumbersome in general. To assign an asset to a catalog, one has to manually copy the Catalog ID (a random hash like number) to the asset metadata through a temporary UI in the Asset Browser Sidebar. These limitations should be addressed over the next few days, they are high priority. Differential Revision: https://developer.blender.org/D12670
2021-09-29Texts in Outliner dont activatePhilipp Oeser
Texts in Outliner dont activate on selecting (Text Editor did not change to selected text) which is a bit inconsistent to other ID types. ref T90862 Maniphest Tasks: T90862 Differential Revision: https://developer.blender.org/D12412
2021-09-29VSE: Add color tags to stripsFalk David
This patch adds color tags to VSE strips, an overlay option to toggle the colors on and off, a section in the theme settings to define the 9 possible colors and two ways of changing the color tag through the UI. You can change the color through the right-click context menu, or in the strip side panel next to the strip name. Color tags are defined in user preferences and they can be disabled in overlay settings. Reviewed By: campbellbarton, ISS Differential Revision: https://developer.blender.org/D12405
2021-09-29UV: Pack to closest/active UDIMSiddhartha Jejurkar
Implements T78397 Extends the functionality of pack islands operator to allow packing UVs to either the closest or active UDIM tile. This provides 2 new options for packing UVs : * Closest UDIM: Selected UVs will be packed to the UDIM tile they were placed on. If not present on a valid UDIM tile, the UVs will be packed to the closest UDIM in UV space * Active UDIM: Selected UVs will be packed to the active UDIM image tile In case, no image is present in the UV editor, then UVs will be packed to the tile on the UDIM grid where the 2D cursor is located. Reviewed By: campbellbarton Maniphest Tasks: T78397 Ref D12680
2021-09-29UV Editor: Grid and snapping improvementsSiddhartha Jejurkar
Implements T89789, T89792, custom grid (described as dynamic grid in T78389) and UV grid snapping (T78391) Replaces the default UV editor grid with 2 new types of grid : * Custom grid: Allows the user to create an NxN grid, where the value of N is specified by the user. * Subdividing grid: Subdivides the UV editor grid when the user zooms in the viewport and vice versa when zooming out. UV snapping improvements : * Increment snapping: Increment values for snapping are calculated based on which grid type is being used in the UV editor (subdividing or custom). In general the increment value is equal to the distance between 2 visible grid lines. * Absolute grid snap: New toggle added to increment snapping option in the UV editor, allows UV grid snapping during translation. Reviewed By: campbellbarton Ref D12684
2021-09-29Fix T91237: Wrong Editors could sync animation 'Visible Range'Philipp Oeser
This was reported for the Outliner. It was possible to set 'show_locked_time' on any space (via python, not sure if there are other ways to achieve this). Navigating in an animation editor obviously ruined the layout in certain Editors that are not made for this. Now restrict syncing to editors that support it well (the ones that have this setting exposed in their menus) and prevent setting this in RNA. Maniphest Tasks: T91237 Differential Revision: https://developer.blender.org/D12512
2021-09-28Fix T91393: Duplicating an action with python crashes Blender.Bastien Montagne
Own mistake when making NLA overridable, instead of assuming things about the ID owner of the animation data being processed, properly return and use the one found by `ED_actedit_animdata_from_context`.
2021-09-28Fix Drivers Editor showing playhead on the X AxisPhilipp Oeser
Currently the Drivers Editor shows this (the blue thing can be dragged to change frame): {F10647661} But the Drivers Editors X axis is the output of the driver [which can be further tweaked by the curve] not time(frame). So it seems better to not mix them here, it is just confusing to have two different units on one axis. Especially since what we really want to look at in X (the drivers output value) can be in a totally unrelated range compared to frames, so e.g. we might be interested in a drivers range from 0.0 to 1.0 and a framerange of 100 to 200, so putting this on one axis just does not make sense. Better to use a separate timeline for this. Note 2.79 also did not do this. Maniphest Tasks: T91157 Differential Revision: https://developer.blender.org/D12392
2021-09-23Fix: Build issue with MSVCCharlie Jolly
header for std::function was not included reported/fixed by Charlie on chat
2021-09-23Cleanup: Use const in previously committed functionJulian Eisel
2021-09-23UI: Tree-View API for easy creation of tree UIsJulian Eisel
This follows three main targets: * Make creation of new tree UIs easy. * Groundwork to generalize tree UIs (so e.g. Outliner, animation channels, asset catalogs and spreadsheet data-sets don't have to re-implement basic tree UI code) or even other data-view UIs. * Better separate data and UI state. E.g. with this, tree-item selection or the open/collapsed state can be stored on the UI level, rather than in data. (Asset Catalogs need this, storing UI state info in them is not an option.) In addition, the design should be well testable and could even be exposed to Python. Note that things will likely change in master still. E.g. the actually resulting UI isn't very nice visually yet. The design is documented here: https://wiki.blender.org/wiki/Source/Interface/Views Differential Revision: https://developer.blender.org/D12573
2021-09-23Cleanup: Remove hardcoded values and rename keyframe shape shadersDalai Felinto
No functional change. The shader is complicated by itself, having hardcoded values makes it even more cryptic. I also renamed the shader because the shader is not for the keyfarme diamond only, but for all the keyframe shapes. Differential Revision: https://developer.blender.org/D12615
2021-09-13Asset Template: Extra UI optionsDalai Felinto
This allow users to show/hide: * Library name / refresh. * Assets names. * Filter. To set them in Python use: display_options={'NO_NAMES', 'NO_FILTER', 'NO_LIBRARY'} With contributions by Julian Eisel. Differential Revision: https://developer.blender.org/D12476
2021-09-13Fix T84638: Wrong scale for primitives with radiusFalk David
Creating some primitives allows for a scale value (via python) that will scale the object accordingly. For objects with a radius parameter (like cylinders, spheres, etc.) passing a scale different to (1,1,1) would result in unexpected behavior. For example: `>>> bpy.ops.mesh.primitive_uv_sphere_add(radius=2, scale=(1,1,2))` We would expect this to create a sphere with a radius of 2 (dimensions 4,4,4) and then be scaled *2 along the z-axis (dimensions 4,4,8). But this would previously create a scaled sphere with dimensions (2,2,4). The scale was simply divided by two. Maybe because the "radius" parameter for creating the primitives was confusingly named "diameter" (but used as the radius). The fix adds a scale parameter to `ED_object_new_primitive_matrix` and also renames the wrongly named "diameter" parameters to "radius". Reviewed By: campbellbarton Maniphest Tasks: T84638 Ref D10093
2021-09-10Anim: Keylist drawing optimization by using arrays.Jeroen Bakker
Change data structure of keylists. Reducing the balancing overhead and therefore increases performance. | **Function** | **Master** | **Patch** | |`draw_summary_channel`| 0.202105s| 0.083874s | When adding items to the keylist it will store it in a linked list. This linked list is accompanied with the length (key_len) and a `last_accessed_column`. last_accessed_column is a cursor that improve the performance when adding new items as they are mostly ordered by frame numbers. last_accessed_column is reset when a new fcurve/mask/... is added to the keylist. Before searching or array access. the listbase needs to be converted to an array. `ED_keylist_prepare_for_direct_access`. After that the caller can use `ED_keylist_find_*` or `ED_keylist_array*` functions. The internal array can also be accessed via the `ED_keylist_listbase` function. The items inside the array link to the previous/next item in the list. Reviewed By: sybren Differential Revision: https://developer.blender.org/D12052
2021-09-08Asset: Dropping Material assets on material slot under mouse cursor.Jeroen Bakker
This patch allows dropping material assets from material slot under the mouse cursor. Before this change the material slot had to be hand-picked from the properties panel. For consistency it is chosen to do this in any shading mode as the tooltip shows what is exactly going to happen during release. The feature also works for other object types than Meshes as it uses the drawn surface on the GPU to detect the material slots. Performance of this patch has been tested with AMD GCN3.0 cards and are very responsive. Reviewed By: fclem, Severin Differential Revision: https://developer.blender.org/D12190
2021-09-06Fix T90414: New GPencil iconsAntonio Vazquez
Designed by @mendio The new icons are: * Dot-Dash modifier * Length Modifier * Line Art modifier
2021-09-03GPencil: Smooth thickness when joining strokesAntonio Vazquez
When joining two strokes in paint mode using the auto merge option, the join was very hard if the thickness was too different. This patch adds a smooth to the join in order to get better transition. Also fixed the problem to join existing strokes very far from actual stroke. Some cleanup and rename of old code is included in order to make code more readable. Reviewed By: pepeland Differential Revision: https://developer.blender.org/D12362
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-31Transform: avoid passing the context to extended orientation functionsCampbell Barton
This makes it possible to calculate orientation from functions that don't have the context.
2021-08-31Cleanup: add CTX_data_pointer_set_ptr & CTX_data_list_add_ptrCampbell Barton
Many callers expanded a PointerRNA argument, so add a version of these functions that takes a PointerRNA.
2021-08-31Context: add "active_nla_track" & "active_nla_strip" context membersCampbell Barton
Selection was already accessible but not active. Add utility functions: - ANIM_nla_context_track to access the active track, following the convention of ANIM_nla_context_strip. - ANIM_nla_context_*_ptr versions of these functions, needed to for creating context members to access the ID pointer. Part of fix for T90723.
2021-08-26Cleanup: sort struct blocksCampbell Barton
2021-08-24Nodes: Improvements to edge panning in the node editor.Lukas Tönne
- New operator property to toggle edge panning in the keymap: This is disabled by default to avoid edge-panning in cases where it gets distracting, such as adding a new node. Only the explicit translate operator(s) (GKEY or drag) have this enabled now. - Restore the initial view rect on edge pan cancel: The initial view rect is now stored in the edge pan operator data. When an operator with edge panning is cancelled it can now call the `UI_view2d_edge_pan_cancel` function to restore the original View2D rect. - Less delay in node editor scrolling: Delay is useful when scrolling through long lists, such as in the outliner, but makes node scrolling feel sluggish and unresponsive. The lower scroll speed here makes a faster response the better option. - Zoom influence feature: Somewhat slower scrolling in UI-space when zoomed out. With the 0.5 zoom influence factor nodes behave as if zoom factor is halved, otherwise it gets too fast when zoomed out. Previously scrolling would always be constant-speed in UI space, now it's half-way between UI space and node (view) space.
2021-08-23Fix T88107: rename Convertor to Converter nodes to correct spellingJames Partsafas
Differential Revision: https://developer.blender.org/D11198
2021-08-13Keyframe: Reduce GPU context switches.Jeroen Bakker
This change reduces the GPU context switches when drawing keyframes. In the previous situation the keyframe blocks and keyframe keys were drawn per channel. With this patch first all the keyframe blocks are drawn for all channels and after that the keyframe keys are collected for all channels and send to the GPU in a single draw call.
2021-08-13Cleanup: remove unused draw_gpencil_channel.Jeroen Bakker
Code is integrated with draw_scene_channel since 2.80.
2021-08-11Cleanup: moved keyframe drawing to a draw list.Jeroen Bakker
In preparation to do threaded drawing preparation. There should not be any functional changes.
2021-08-06Cleanup: use const result in `ED_keyframes_find_*` functions.Jeroen Bakker
2021-08-06Cleanup: use range2f in `ED_keylist_find_any_between`.Jeroen Bakker
2021-08-06Cleanup: const pass `keyframes_keylist`.Jeroen Bakker
2021-08-05GPencil: New Caps iconsAntonio Vazquez
These icons are used to define the type of caps. Designed by: Matias Mendiola Reviewed by: Pablo Vazquez
2021-08-05Cleanup: make formatAaron Carlisle
2021-08-04Viewport normal drawing with constant lengthJeroen Bakker
Patch for: T37878 {F10169694} Reviewed By: fclem Differential Revision: https://developer.blender.org/D11487
2021-08-04T90371: Asset: Drop Material Tooltip.Jeroen Bakker
This patch changes the drop named material tooltip to give feedback to the user what is going to happen when they invoke the change. There are 3 states: * "": Operator will be canceled as not all data is present (dropping on background.) * "Drop <named material> on <object name> (slot <slot number>, replacing <current material in slot>). * "Drop <named material> on <object name> (slot <slot number). Reviewed By: Severin Maniphest Tasks: T90371 Differential Revision: https://developer.blender.org/D12106
2021-08-03Silenced clang-tidy warnings.Jeroen Bakker