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
2020-11-06Cleanup: use ELEM macroCampbell Barton
2020-10-28Outliner: Properties editor sync on selectionNathan Craddock
When outliner datablocks are selected, switch to the corresponding tab for that datablock in properties editors. Only properties editors that share an edge with the outliner will change tabs. Additionally, when modifiers, constraints, and shader effects are selected from the outliner, the panel will be expanded in all properties editors. Part of T77408 Manifest Task: https://developer.blender.org/T63991 Differential Revision: https://developer.blender.org/D8638
2020-10-23Fix T81969 VSE: Wrong UI colorspace after scene strip updateClément Foucault
This regression was caused by rB57de5686048f which disabled srgb transform after the python callback. The right thing to do is to only rebind the framebuffer once to reset the no-srgb override.
2020-10-19Fix use of uninitialized variableHans Goudey
2020-10-19Fix ASAN warning after recent cleanupHans Goudey
rB78a5895c96 introduced a "use after scope" warning, where a buffer from a lower scope was used later. The solution is to only use one variable and store whether to use it more explicitely with a bool.
2020-10-17Cleanup: Reduce variable scope in area.cHans Goudey
2020-10-16Property Search: Reset panel expansion when exiting searchHans Goudey
This patch implements panel expansion saving and resetting for property search. While search is active, the panel expansion is based on whether or not it has a search result. When the search finishes, the panel expansion returns to its state before the search started. However, any panels interacted with during the search won't reset their expansion. This requires adding a new runtime flag for panels to store whether to use search result status as expansion. It also requires better handling for animation when panel expansion changes with another new runtime flag. `UI_panel_is_closed` gets the search-dependent expansion, but it is intentionally not used to access expansion in every case-- sometimes it's necessary to use `PNL_CLOSED` directly. Differential Revision: https://developer.blender.org/D8984
2020-10-14Fix T81004 Python: Images drawn in the Sequence Editor have wrong colorsClément Foucault
This was caused by the sequencer using a sRGB buffer without using the sRGB transform. This patch make it so that the framebuffer is rebound using the sRGB transform before the python draw callbacks.
2020-10-14Cleanup: spellingCampbell Barton
2020-10-13Property Search: Find results in all tabsHans Goudey
This patch enables property search for all tabs in the property editor. To make interaction faster, if the editor's current tab doesn't have a result, the current tab changes to the next tab that has a match. This patch implements basic code that only searches panels. While we could run the existing "single tab" property search for every tab, that would also do everything else related to the layout pass, which would be less efficient, and maybe more complicated to maintain. The search match status for every current tab of the property editor is stored in a runtime bitfield and them displayed later by dimming icons in the tab selector panel to the left. Using `BLI_bitmap` properly in the runtime struct required moving it to `buttons_intern.h` and adding a small API to access the search filter instead. To make sure the editor isn't influenced by anything that happens while building the layout for other tabs, most of the context is duplicated and the new search is run in the duplicated editor. Note that the tool settings tab works slightly different than the other tabs, so I've disabled searching it for this commit. That would be a relatively simple improvement, but would just require a bit of refactoring of existing code. Differential Revision: https://developer.blender.org/D8859
2020-10-03Property Search: Set panel expansion when tab changesHans Goudey
This commit makes the panel expansion set based on the search results when the active tab in the properties editor changes. The multi-tab search patch (D8859) actually doesn't handle this because it uses a different code path. This feature uncovered a subtle but fairly significant issue with the implementation of property search (More details in T81113). Basically, the search needed multiple redraws to properly display the expansion of panels based on the search results. Because there is no animation of panel expansion when switching tabs, the problem was exposed only now. With this commit, hiding of "search only" buttons and panel size calculation happens in a single final step of the panel layout pass. The "search only" layout root flag is removed. Instead every button inside a panel header is in a single "uiButtonGroup" marked with a specific "in header" flag, an idea which could be generalized in the future. Differential Revision: https://developer.blender.org/D9006
2020-09-28Fix T79275: Missing redraw for pinned active tool settings panelsDavid Friedli
In the 3D view sidebar, the active tool settings panel can be pinned to other categories, and in those other categories it doesn't redraw when the active tool changes. This commit checks for pinned panels from the "Tool" category when checking whether to redraw. Note that the relatively expensive string comparison is only done for currently visible pinned panels. Differential Revision: https://developer.blender.org/D9012
2020-09-24Cleanup: Remove unecessary storage of search filter in uiBlockHans Goudey
Since the search is applied all in one phase, there is no need to store a reference to the search filter in every uiBlock. Instead just pass it as an argument to UI_block_apply_search_filter.
2020-09-17UI: only draw a single header in the header regionCampbell Barton
While this isn't an issue with the default configuration it's possible to register extra header types for a single region. In this case the first header-type to successfully poll is drawn without drawing other header types. This issue was raised by T60195.
2020-09-16UI: Add grid-related theme optionsRed Mser
This commit makes grid theming more consistent and capable by adding some new theme colors related to grid rendering. - Add grid theme color for node editor. `UI_view2d_multi_grid_draw` is called with TH_GRID instead of a shaded `TH_BACK`. Also color-blend `TH_NODE_GROUP`. - Make the movie clip editor's clip preview grid respect grid theme color (`ED_region_grid_draw` uses color-blended `TH_GRID`). - Add versioning code to allow fixing existing themes (the resulting themes should visually look the same as before) These changes did cause some inconsistencies in the movie clip editor, even after adjusting the themes accordingly: 1. The alpha slider of the grid color affects the background and not the grid lines themselves. 2. The grids used by graph and dopesheet mode could already be themed in the past. Now that the clip preview's grid can also be themed, two different modes share the same theme color. Differential Revision: https://developer.blender.org/D8699
2020-09-15Property Search: Properly set expansion for instanced panelsHans Goudey
Stack panels (for modifiers, etc..) also get their expansion from their associated list data. This means that property search expansion needs to properly update the list data, which can be accomplished by calling `set_panels_list_data_expand_flag`. This commit also moves this logic to `UI_panels_end`, where it fits better.
2020-09-15UI: Single tab property searchHans Goudey
This adds a search bar to the properties editor. The full search for every tab isn't included in this patch, but the interaction with panels, searching behavior, UI, region level, and DNA changes are included here. The block-level search works by iterating over the block's button groups and checking whether they match the search. If they do, they are tagged with a flag, and the block's panel is tagged too. For every update (text edit), the panel's expansion is set to whether the panel has a result or not. The search also checks for matching strings inside enums and in panel labels. One complication to this that isn't immediately apparent is that closed panel's subpanels have to be searched too. This adds some complexity to the area-level panel layout code. Possible Future Improvements: - Use the new fuzzy search in BLI - Reset panels to their expansion before the search started if the user escape out of the text box. - Open all child panels of a panel with expansion. Differential Revision: https://developer.blender.org/D8856
2020-09-15Cleanup: Split off parts of large panel layout functionHans Goudey
The ED_region_panels_layout_ex function was quite long, so separating some pieces of it can make it easier to understand and more modular. Additionally, the parts that were split off can be reused for future property search code.
2020-09-09Cleanup: reduce variable scopeJacques Lucke
2020-09-02UI: Use instanced panel custom data instead of list indexHans Goudey
For modifier shortcuts we added a "custom_data" field to panels. This commit uses the same system for accessing the list data that corresponds to each panel. This way the context is only used once and the modifier for each panel can be accessed more easily later. This ends up being mostly a cleanup commit with a few small changes in interface_panel.c. The large changes in the UI functions are due to the fact that the panel custom data is now passed around as a single pointer instead of being created again for every panel. The list_index variable in Panel.runtime is removed as it's now unnecessary. Differential Revision: https://developer.blender.org/D8559
2020-08-23Cleanup: GPU: Use explicit clear value in GPU_clear* commandsClément Foucault
This replace `GPU_clear()` by `GPU_clear_color()` and `GPU_clear_depth()`. Since we always set the clear value before clearing, it is unecessary to track the clear color state. Moreover, it makes it clearer what we clear the framebuffer to.
2020-08-21Cleanup: Use LISTBASE_FOREACH in editors/screen directoryHans Goudey
Differential Revision: https://developer.blender.org/D8653
2020-08-20UI: Fix collapsed panels not drawing header buttonsHans Goudey
Error in rB940b239ad473 left a check for open panels after the "vertical" check was removed.
2020-08-20Revert "Cleanup: Use LISTBASE_FOREACH in editors screen directory"Hans Goudey
This reverts commit 52f40bcff21b285b7eaa21aaa9c6c7b9d6fa8669. Apologies for the noise. I caught a problem with this that I hadn't before. I will commit later after thorough testing.
2020-08-20Cleanup: Use LISTBASE_FOREACH in editors screen directoryHans Goudey
Differential Revision: https://developer.blender.org/D8653
2020-08-20Cleanup: Remove unused variables for horizontal panelsHans Goudey
Continuing the work of eb9055a572c3, remove remaining unecessary variables and arguments that were related tabbing and horizontal alignment of panels. For example, "vertical" was always true, and removing that exposed other unused variables.
2020-08-20Cleanup: Remove unused variableHans Goudey
2020-08-19UI: Remove panel X axis closing codeHans Goudey
Horizontal panel alignment hasn't been used for years, and we have no plans to use it in the future. It adds a fair amount of complexity to the panel code which makes adding features take longer. This code removes the X closing flag, and all of the logic / variables unused without it. This commit includes a file subversion bump. Differential Revision: https://developer.blender.org/D8601
2020-08-18Cleanup: GPUState: remove double GPU_blend callsClément Foucault
2020-08-18GPUState: GPU_blend final API renamingClément Foucault
We now use GPU_blend for enabling / disabling blending and explicitly set the blend equation.
2020-08-18Cleanup: GPUState: Replace blend func separate by enumClément Foucault
2020-08-18Cleanup: GPU: Move towards an explicit Blend stateClément Foucault
This make use of the GLStateStack functions for: - `GPU_blend()` - `GPU_blend_set_func()` - `GPU_blend_set_func_separate()` The goal is to unify them using an explicit state setting. This will remove the need to use obscure blend functions
2020-08-18Cleanup: GPUState: remove float variant of GPU_scissor_getClément Foucault
2020-08-16Merge branch 'blender-v2.90-release' into masterCampbell Barton
2020-08-16Fix popups opening in the wrong direction over headersCampbell Barton
Checks for header alignment didn't account for tool-header & header having different alignment. There is no reason to use a lookup function on the area (ED_area_header_alignment) as we already have region. Check the regions alignment directly, remove access functions.
2020-08-16Merge branch 'blender-v2.90-release' into masterCampbell Barton
2020-08-16Fix T78426: Header flips when changing editorsCampbell Barton
The existing header flip detection didn't account for mixed tool-header and header flipping & visibility between space-types. Now alignment syncing handles any combination of header, tool-header & footer flipped state, in a way that can be extended to other region types in the future.
2020-08-12UI: Category support for instanced panelsHans Goudey
This adds support for panel categories to the instanced panel system used for modifiers and others. The change is pulled from D7997 where it is needed for FCurve modifiers, but it is unused now. The change is simple and basically amounts to checking the panel category where it was overlooked before.
2020-08-07Cleanup: declare arrays arrays where possibleCampbell Barton
2020-08-04Refactor: rename SpaceType->new to SpaceType->createJacques Lucke
The data member `new` was conflicting with the `new` keyword when `BKE_screen.h` was included in C++ files. Reviewers: sergey Differential Revision: https://developer.blender.org/D8459
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-18Cleanup: GPU: Replace glBlendFunc by GPU equivalentClément Foucault
2020-07-16Cleanup: Port glClear calls to GPU module functionsClément Foucault
2020-07-03Cleanup: Editors/Screen, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/editors/screen` module. No functional changes.
2020-06-27Docs: correct invalid doxygen params & referencesCampbell Barton
2020-06-23Cleanup: renamed `do_draw_overlay` to `do_draw_paintcursor`Jeroen Bakker
To make a better distinction with region overlay.
2020-06-22Refactoring: View2DScrollers memory allocationJeroen Bakker
View2DScrollers used the memory manager to allocate memory. This isn't a problem but in a upcoming change the scrollers will be drawn more often than it used to (See {D8066}). To limit the number of allocations and frees this patch will use the stack for allocation. Reviewed By: Campbell Barton Differential Revision: https://developer.blender.org/D8076
2020-06-19UI: Avoid rebuilding outliner tree when changing area sizeJulian Eisel
In big files, ie typical production files, resizing the outliner area would be very slow. The outliner tree would be rebuilt then, which can easily be avoided.
2020-06-18Cleanup: redundant parenthesisCampbell Barton
2020-05-26UI: List Panel SystemHans Goudey
This implements a general system to implement drag and drop, subpanels, and UI animation for the stack UIs in Blender. There are NO functional changes in this patch, but it makes it relatively trivial to implement these features for stacks. The biggest complication to using panels to implement the UI for lists is that there can be multiple modifiers of the same type. Currently there is an assumed 1 to 1 relationship between every panel and its type, but there can be multiple list items of the same type, so we have to break this relationship. The mapping between panels and their data is stored with an index in the panel's runtime struct. To make use the system for a list like modifiers, four components must be added: 1. A panel type defined and registered for each list data type, with a known mapping between list data types and panel idnames. 1. A function called by interface code to build the add the panel layouts with the provided helper functions. - UI_panel_list_matches_data will check if the panel list needs to be rebuilt. - UI_panels_free_instanced will remove the existing list panels - UI_panel_add_instanced adds a list panel of a given type. 3. An expand flag for the list data and implementations of get_list_data_expand_flag and set_list_data_expand_flag. 4. For reordering, the panel type's reorder callback. This is called when the instanced panels are drag-dropped. This requires implementing a "move to index" operator for the list data. Reviewed By: Severin, brecht Differential Revision: https://developer.blender.org/D7490