Commit Graph

76640 Commits

Author SHA1 Message Date
926b426073 GPU: Add debug groups inside wm_draw.c
This makes the debugging easier
2020-09-16 01:40:45 +02:00
8eda18f789 GPUDebug: Add function to test if inside a debug group
This is a nice way to check certain GPU codepaths only for some
regions or callers paths.
2020-09-16 01:40:45 +02:00
fafc1fbd7f Fix T80107 Selection: Regression in Box selection
The Draw State now needs to be in sync with what the selection
code set. We query the state just before locking it.
2020-09-16 01:40:45 +02:00
6624c4c225 Fix T75061 Grease Pencil: MacOS: broken Gradient and Texture
There is a driver bug that makes all the end of the structure unreadable.
Workaround this by just declaring a vec4 an unpacking manually.
2020-09-16 00:03:12 +02:00
1572da858d Outliner: Modifier/constraint/shaderfx drag and drop operator
This adds an operator to allow drag and drop of modifiers, constraints,
and shader effects within the outliner. Referred to as "data stack" in
the code for simplicity.

The following operations are allowed:
* Reordering within an object or bone
* Copying a single modifier/constraint/effect to another object or bone
* Copying (linking) all modifiers/constraints/effects to another object
  or bone.

This complements the recent work done for panel-based modifier layouts
by allowing reordering in the outliner. It also makes it simple to copy
a single modifier/constraint/effect to another object.

Differential Revision: https://developer.blender.org/D8642
2020-09-15 15:29:59 -06:00
583354e9e9 Modifiers: Add link and copy functions
Adds functions to copy a modifier between objects, and an ED_ level
function for linking modifiers between objects. This will be used in
outliner modifier drag and drop.

These functions support both regular and grease pencil modifiers.

Differential Revision: https://developer.blender.org/D8642
2020-09-15 15:29:19 -06:00
f4a2024c44 Constraints: Add link and copy functions
Add functions to copy a single constraint between objects or between
bones, and another function to link constraints. This is in preparation
for constraint drag and drop in the outliner.

Differential Revision: https://developer.blender.org/D8642
2020-09-15 15:29:19 -06:00
4d04a345a6 Cleanup: Move notifiers to move_to_index functions
Move the notifiers and DEG tagging to the ED_* level functions for
modifiers and gpencil shaderfx in preparation for outliner modifier and
shaderfx drag and drop. No functional changes.

Differential Revision: https://developer.blender.org/D8642
2020-09-15 15:29:19 -06:00
a6434ff417 Cleanup: Extract editor function from constraint_move_to_index_exec
No functional changes. Move the constraint reordering logic into an ED_
level function to be used by outliner constraint drag and drop.

Differential Revision: https://developer.blender.org/D8642
2020-09-15 15:29:19 -06:00
18701c19fa GPencil: Add link and copy functions for shaderfx
Adds two functions: one to copy a shaderfx between two gpencil objects,
and another to link all shaderfx between two gpencil objects. Added in
preparation for outliner shaderfx drag and drop.

Differential Revision: https://developer.blender.org/D8642
2020-09-15 15:29:19 -06:00
1c5d0deb2a Cleanup: Separate BKE_object_link_modifiers into functions
No functional changes. Split the grease pencil and object copy logic
into separate functions. This makes the code cleaner and prepares
utility functions for outliner modiifier drag and drop.

Differential Revision: https://developer.blender.org/D8642
2020-09-15 15:29:19 -06:00
cf0791bf38 Property Search: Properly set expansion for instanced panels
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-15 15:57:30 -05:00
8aab26b3b3 UI: Refactor some list panel expansion code
This commit moves the "get panel expansion from list data" function to
UI_panels_end, which is an improvement because it's more centralized.
2020-09-15 15:34:27 -05:00
7b3d38a72d Outliner: Hierarchy line drawing
Adds a new hierarchy line that draws to the left of collections. If the
collection is color tagged, then the hierarchy line is drawn in that
color. This is useful to see the color tag of a collection that exceeds
the vertical height of the outliner when expanded.

This also modifies the object hierarchy line drawing to match the new
collection hierarchy line, with no horizontal lines, and moved a unit to
the left. Object lines are not drawn colored.

Manifest Task: https://developer.blender.org/T77777

Differential Revision: https://developer.blender.org/D8622
2020-09-15 12:47:10 -06:00
16f625ee65 Outliner: Draw colored collection icons
This replaces the collection icon with the filled collection icon.

If the collection is color tagged, then the icon draws in the tagged
color.

Manifest Task: https://developer.blender.org/T77777

Differential Revision: https://developer.blender.org/D8622
2020-09-15 12:47:10 -06:00
33d7b36cec Outliner: Set collection color tag operator
This adds a new operator to the outliner context menu. The collections
context menu now shows inline icons to set the color tag for all
selected collections.

Manifest Task: https://developer.blender.org/T77777

Differential Revision: https://developer.blender.org/D8622
2020-09-15 12:47:09 -06:00
26a40ac8fa UI: Fix spacing of inline row icon buttons
A follow-up to rbe17df47303e1. Fix the horizontal spacing of aligned row
icon buttons in menus.
2020-09-15 12:47:09 -06:00
4c3813fb32 UI: Show color tagged collection icons in menus
Draw color tagged collection icons in the link to collection, add
collection instance, collection instance search, and remove collection
menus.

Manifest Task: https://developer.blender.org/T77777

Differential Revision: https://developer.blender.org/D8622
2020-09-15 12:47:09 -06:00
452a1c7b38 Collections: Add color tagging
This adds color tagging to collections. There are 8 color
options which are themable in the user preferences, with an additional
option for no color tag by default.

This adds a new filled collection icon and 8 colored variants of the
icon that can be themed in the user preferences.

In this commit the only interface to setting the color tags is through
Python, and there is nowhere in the interface where the collections are
shown colored. Setting and viewing the color tags from the outliner will
follow.

Manifest Task: https://developer.blender.org/T77777

Differential Revision: https://developer.blender.org/D8622
2020-09-15 12:47:09 -06:00
f137022f99 Liquid Simulation Display Options (GSoC 2020)
All the changes made in the branch `soc-2020-fluid-tools` are included in this patch.

**Major changes:**

=== Viewport Display ===

- //Raw voxel display// or //closest (nearest-neighbor)// interpolation for displaying the underlying voxel data of the simulation grids more clearly.
- An option to display //gridlines// when the slicing method is //single//.

==== Grid Display ====

- Visualization for flags, pressure and level-set representation grids with a fixed color coding based on Manta GUI.

==== Vector Display ====

- //**M**arker **A**nd **C**ell// grid visualization options for vector grids like velocity or external forces.
- Made vector display options available for external forces.

==== Coloring options for //gridlines// ====

- Range highlighting and cell filtering options for displaying the simulation grid data more precisely.
- Color gridlines with flags.

- Also, made slicing and interpolation options available for Volume Object.

Reviewed By: JacquesLucke, sebbas

Differential Revision: https://developer.blender.org/D8705
2020-09-15 23:13:01 +05:30
bedbd8655e Property Search: Quick start and clear operators
`ctrl-F` to start the search is obviously necessary, but the clear
operator, `alt-F` requires some of explanation. First, it maps nicely
to the paradigm of "key to set, alt-key to clear," which makes it
unobtrusive. Second, it can be a quicker way to clear the search than
moving the mouse to the top. Finally, in the future, it could a reset
the panels to their expansion before the search started.

Differential Revision: https://developer.blender.org/D8857
2020-09-15 11:39:25 -05:00
8bcdcab659 UI: Single tab property search
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-15 11:25:49 -05:00
7a0a60dde8 Dont show temporary IK constraints in the constraint stack
Those constraints are added when using AutoIK (or targetless IK as
well).
While not strictly incorrect, these kinds of constraints were not
showing in the UI prior to rBeaa44afe703e (and I think they should not).

ref T80437

Maniphest Tasks: T80437

Differential Revision: https://developer.blender.org/D8895
2020-09-15 17:57:37 +02:00
2b36e6bee6 Fix T80333: cursor disappears after using navigation gizmo in editmode
Caused by rBe490dc4346db: UI: Skip unnecessary cursor setting

Above commit returned early if the cursor was already set, but did this
before visibility was regained, now return (still early) after setting
visibility.

Reviewed by @Severin in T80333
2020-09-15 17:50:45 +02:00
f59ce4d55c Property Search: Add "search match" theme color
We will use a highlight on panel headers to convey that they have
a search match, so this commit initializes the theme color for the
properties editor.

Differential Revision: https://developer.blender.org/D8854
2020-09-15 10:34:38 -05:00
6b29c3fa07 Property Search: Move properties context buttons back to a panel
The context path "breadcrumbs" used to be in a panel in 2.79.
Although they look a bit better in the header, there isn't enough
space for them with the property search field in the header as well.

Maybe there will be another solution in the long term to fit both
the search field and this panel in the header, but for now, this
commit moves these labels back to a header-less panel.

Differential Revision: https://developer.blender.org/D8853
2020-09-15 09:50:14 -05:00
67e630609b Property Search: Build button groups for Search
This is needed for property search (upcoming patch D8856) where a
buttons labels are often separate buttons, but we need to highlight
the label to show that a property is a search result. This is
especially important in "property split" layouts where the label is
almost always another button in a separate column.

The button groups here are basically a flattened view of the buttons
in the layout tree. Every function that adds a new set of buttons
creates a new button group, and the new buttons are automatically
added to the most recent group. Then, each group is searched
separately in the property search phase. It's important that every
function adding a new button set calls layout_root_new_button_group.

Note that this won't be disabled when property search isn't active.
It may be useful for other things in the future, and trying to pass
that information to layout functions didn't feel worth it to me.

Differential Revision: https://developer.blender.org/D8783
2020-09-15 09:38:19 -05:00
f886e13836 Cleanup: Remove unneeded parameter
A parameter was added during development, but it was not needed and was
never removed. No functional changes.
2020-09-15 08:11:55 -06:00
dedd9ce0aa Fix T80787: Fix White edges when rendering transparent smoke
The UV/Image editor was doing interpolation including over the alpha
value what makes will render incorrectly when interpolating between pure
emissive colors and pre multiplied colors. This change disabled the
interpolation.
2020-09-15 15:43:19 +02:00
93b8040f57 UI: Add icon_only argument to operator_enum
Add an option to only draw icons for operator_enum menus. This is used
for drawing inline icon buttons in the outliner context menu for
collection color tagging.

Part of T77408

Differential Revision: https://developer.blender.org/D8880
2020-09-15 07:40:38 -06:00
e17df47303 UI: Add support for row-aligned icon buttons in menus
This adds support for drawing icon buttons as a row in menus. This is
needed for drawing collection color tagging icons in the outliner
context menu in T77777.

Part of T77408

Differential Revision: https://developer.blender.org/D8317
2020-09-15 07:26:08 -06:00
13c7df1054 Fix T80193 Sequencer: Crash on float images when OCIO GLSL shader can't be used
This was just an oversight from refactoring this code in
rBfaeaf5325554e37981424ded5add7bf2df484c55
2020-09-15 15:22:26 +02:00
cd849076d2 Fix T80681 Wireframe is not visible on square planes with 16384 quads
Fix wrong logic.
2020-09-15 14:56:02 +02:00
dd25d47e8a Cleanup: add missing headers to CMake, formatting 2020-09-15 22:53:44 +10:00
7177a580cc Fix T80630: potential crash in volume grids in Eevee shaders
Found by address sanitizer.
2020-09-15 14:43:50 +02:00
8f7ab26935 Revert "Image Editor: Make Rendering of Pure Emissive Colors Optional"
This reverts commit f492c8d488.
2020-09-15 14:33:22 +02:00
78ea6302f1 Fix T80746: Image blur in compositor creates halo from alpha
When applying alpha, an alpha of 0.0 was always ignored, creating the
Halo
2020-09-15 14:18:35 +02:00
TonyG
da95d1d851 Fix T75881: Animation, limitation of Bézier Handles
Relax limits of FCurve Bézier handles during evaluation. FCurve handles
can be scaled down to avoid the curve looping backward in time. This
scaling was done correctly but over-carefully, posing unnecessary
limitations on the possible slope of FCurves. This commit changes the
scaling approach such that the FCurve can become near-vertical.

Bump Blender's subversion from 291.0.1 to 291.0.2 to ensure that older
animation files are correctly updated.

Reviewed By: sybren

Differential Revision: https://developer.blender.org/D8752
2020-09-15 13:08:18 +02:00
fbdac74c40 Cleanup: move versioning code into "until next bump" block
A bit of versioning code was not part of the "Versioning code until next
subversion bump goes here" block, making the diff of an upcoming bump
harder to read. This commit just moves the code to the appropriate spot.

No functional changes.
2020-09-15 12:55:44 +02:00
Wayde Moss
1555b84f6c Fix: NLA, transition to Meta Strip uses wrong time
Copy correct time to temporary strips used for evaluation of NLA
Transition strips.

When a transition is placed next to a meta strip, the transition would
use the wrong strip time, using the time of the meta strip instead of
its own.

Reviewed by: sybren

Differential Revision: https://developer.blender.org/D8287
2020-09-15 12:47:49 +02:00
271f64e358 Fix T54293: calculate mass does not take object scale into account 2020-09-15 12:43:15 +02:00
7b66c719ae Fix T80363: Progress cursor getting stuck 2020-09-15 12:41:26 +02:00
f492c8d488 Image Editor: Make Rendering of Pure Emissive Colors Optional
There are some areas that don't handle pure emissive colors well. For
example erasing alpha using 2d or 3d painting. Or blurring an image in
the compositor.

This patch makes the rendering of pure emissive colors optional. In the
side panel of the Image editor it can still be enabled when needed.

There currently isn't a better place to store it as it is related on how
the image (or a layer of the image) is created. A future design needs to
make sure that the full workflow is supported.
2020-09-15 12:33:49 +02:00
TonyG
60fee78323 Cleanup: FCurve, comments should be sentences
No functional changes.
2020-09-15 11:04:59 +02:00
6c2c89611c Fix T80775: Image Editor Show Metadata Not Working 2020-09-15 11:02:18 +02:00
d8a7d9deeb Fix Unreported: Repeat Image Regression
Regression introduced by c6210f9bac. The vertex shader still used the
old value for the SIMA_DRAW_FLAG_DO_REPEAT.
2020-09-15 10:34:12 +02:00
7b690619dd CleanUp: Fixed incorrect parameters to GPU_depth_test 2020-09-15 10:15:54 +02:00
69c551089b Fix T79534: Python Operator.bl_translation_context ignored
The default value prevented it from being set on registration,
now only assign the default when the class doesn't define it.
2020-09-15 18:08:38 +10:00
ac58663dec Fix T80776: Cannot switch between Slots of Render Result
Introduced by D8234. Added active render slot to determine if the GPUTexture is still up to date.
2020-09-15 09:29:58 +02:00
91e32bff90 Fix T80796: Frame all ignores geometry from instances
Make "Frame All" share functionality with "Frame Selected",
accounting for duplis when calculating the bounds.
2020-09-15 17:00:12 +10:00