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.
* 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.
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.
* Doing this lets us more consistently reference the color attachments in the
correct indices and makes it easier to match for blends. It also allows the
user to show unused/empty attachments
* When searching for the start of a range of instructions mapped to a single
line when stepping backwards, we need to ignore instructions that don't have
any debug info because they will look like a 'different' smaller stack.