- Add a new combo box and button to camera settings for mesh viewer
- Add a new dialog window for custom axis mappings
- Implement the axis mappings in gl driver (other drivers to come)
* We also add the ability to toggle on/off the replacement being active without
needing to intentionally add a compile error (and this also makes it more
explicitly clear when the shader replacement is enabled or not. This could be
useful for quick A/B testing between the edited version and the original.
In some cases it is easier to know the dispatch thread ID you want to
debug rather than the group/thread IDs. This change adds a new window
when the debug button is clicked, to allow you to specify which thread
to debug in the most convenient way.
* We need to update the scrollbar bounds first based on the current zoom level,
then change the scroll position. Otherwise the scroll will be visually correct
but the scrollbars won't match.
* We still need to handle multiple elements in the root of a struct specially by
commenting out the fixed members, but the final element needs to go through
the normal DeclareStruct() path to handle things like per-column padding in
matrices etc.
* If we save the current capture from a connection window we want to do that via
the main window so the UI can be properly updated and so we can save it
properly through the replay manager, so the old one can be removed safely.
* When using VS In we want to ignore the W component, but that already happens
explicitly for vulkan/GL in the shader. Mirror that same solution to D3D
instead of trying to force a 3-component format which may not be supported
(e.g. on AMD R16G16B16_*)
* This applies when selecting a marker region, the effective EID is the one
actually replayed to an represented in the UI. As-if it were directly
selected.
* In v1.15 if you upgraded from a previous version and had a renderdoc config
file then the persistent storage storing the filters would get loaded with an
empty variant map, so the defaults could be set. However if you had no config
file at all this wouldn't happen so no defaults would be set.
* We detect the case where we load an old profile and it has blank current
filter or saved filters, and fill in the defaults now. If the filter has been
customised or some saved filters exist, respectively, we don't touch them.