* Bash overrides getenv/setenv to look up its own variable set, but breaks since
we need to modify the environment before main() when it initialises its
variable set. Instead what happens is the first setenv initialises that
variable in a blank set and so all subsequent environment variables are NULL.
Then in main() the variable set gets initialised from environ, removing any
changes that were made.
* Pointer types implicitly referenced by objects but not directly (like global
variable or alloc/gep pointers) are not guaranteed to be present, so we need
to add them ourselves to parse correctly and identically to LLVM.
* This interface does some undocumented things and then creates unwrapped
resources, which can't be wrapped and hooked. Since the interface is not
public it can't be wrapped safely, and must be blocked.
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.
* We don't change very much, we use uvec2 instead of uint64 for passing the
address in on KHR_BDA, and then do manual carry'd additions for address
offsets.
If MTL:Drawable is not found by pointer, fallback and search for it by drawableID (which should be unique and monotonically increasing).
This fixes a problem preventing frame capture when launching RenderDoc UI from Xcode with "GPU Frame Capture" enabled.
This allows setting the CLANG_FORMAT environment variable to (e.g.)
`C:/Program Files/LLVM3.8.1/bin/clang-format.exe` and then using the
script from Git Bash on Windows. Before, it would break if there
were spaces in the path. (If a suitable clang-format were in the PATH
environment variable, though, I don't think spaces caused problems.)
The CMake option "CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE" is available starting from CMake version 3.23.0.
Increase the minimum CMake version for building Apple to 3.23.0 from 3.20.0
Changes to make metal-cpp options work nicely with RenderDoc serialization
_MTL_OPTIONS -> _NS_ENUM
RenderDoc serialization works with fixed sized types