Before, only MenuButtonPopup had an arrow. This makes it more obvious
as to whether the button will immediately do something when clicked or
if it will open a menu to choose a specific action.
This means the full rect won't be returned for SC_ToolButtonMenu if it
is used in a context where the default style doesn't expect the menu.
This is a separate commit to isolate future changes to this function.
MakeExecuteAction already sets tooltips for each QAction it creates,
but these are not used in a QMenu unless the toolTipsVisible property
is set to true.
There is no action associated with clicking the button itself, only for
the menu associated with it. Using QToolButton::MenuButtonPopup means
that the majority of the button is for the button's own action, and
there is a small arrow next to the button that shows the menu. Since
there's no action, this means that the small menu arrow needs to be
clicked each time instead of the big button, which is annoying.
QToolButton::InstantPopup instead always shows the menu (though it
doesn't have the arrow indicating a menu exists, although this is not
particularly important).
InstantPopup is also already used for the "Insert" button used when
editing a custom shader for the texture viewer. MenuButtonPopup is used
in many other places throughout RenderDoc, but they are all save or
export buttons where there is a meaningful default action.
Specifically, the open button in the Python shell window and the blue
channel (only) in the texture viewer had values specified even though
they do not have an actual menu associated with the buttons. For the
texture viewer, this was explicitly set to the default value (delayed
popup); for the Python shell window the value is custom. The popup
mode is only used "for tool buttons that has a menu set or contains
a list of actions".
These were added in early commits for each feature, probably by
accident: 0837e66939 for the texture
viewer and 2a4596e06a for the Python
shell.
* If the overall preview widget doesn't resize but the thumbnail does because
the preview text label has changed in size, we should emit a resize event so
the thumbnail can be redrawn.
* This is only relevant when using a custom shader since otherwise nothing is
'updated', though could also affect overlays potentially. If we don't then the
custom shader texture may not have been re-rendered before we fetch the
histogram data and we'll get stale information.
* This distinction unfortunately does not exist in SPIR-V so we have to carry
around this metadata ourselves. Rather than allowing free specification of
tools based on API, instead pretend that Vulkan and GL SPIR-V are separate
format, and duplicate all SPIR-V tools to handle "both" types. This allows
appropriate tool selection based on the encoding.
Use QTextBrowser for the counter description widget, which allows for opening
links in an external browser.
This change is needed to make the link to NVIDIA Nsight Perf SDK clickable.
* When used in richcompare this would throw an exception and return
Py_NotImplemented causing a failure. Instead we should just return NULL, which
is fine and will be considered as a not-equal comparison for
equality/inequality and throw the kind of exception we want for less than or
greater than.
Added interface functions:
- GetComboBoxCount() the function returns the number of
combo box options currently set,
- SelectComboBoxOption() - selects an active combo box
option by name from the list of set options.
Updated interface functions:
- Changed SetComboOptions() to SetComboBoxOptions to keep
consistency in naming.
* Previously we iterated over each bind, and found the matching resources. Now
we iterate over resources and find the matching bind. This matters when there
are multiple overlapping binds so they are only found once (we don't
disambguate which bind was used, as we don't elsewhere currently)
* There seems to be a significant slowdown when using real swapchains, both for
creation and display. Since thumbnails don't update often (only on event
change, or if the panel is resized which is not a regular occurence)
counterintuitively it's better to render and readback the image offscreen and
re-upload it on the CPU.