* This really isn't ideal as it means the python module will only work
with that specific major.minor version of python, when it could in
theory work with any python version above 3.2 or so, depending on what
features are used.
* Since we're not distributing these modules yet though, add this
linking to support -Wl,--no-undefined.
* glGetQueryObjecti64vEXT was used twice as an alias.
* Added missing glIsQueryEXT alias.
* Removed the query related methods from the unhandled block.
* This fixes a bug with replay proxies where looking at the last bound
buffer type lead to buffers being created with insufficient flags on
the local replay.
* It will also handle the case where a buffer is used as e.g. both
vertex and index and needs to have the flags for both specified.
* This is a grey area between valid and invalid. Technically we're still
passing a valid IDXGIOutput to the functions, but in practice the
function will then probably turn around and cast it to an internal
concrete type which it no longer points to, and explode.
* Since the record pointer is really just the native window handle and
not actually a record. We don't care about names for surfaces as we
don't replay them, so just do a special unwrap and pass it along.
* Annoyingly although Qt has an internal bool allowUserMoveOfSection0
which does exactly what we want allowing the tree column to be
movable, we can't enable it because it's private. So instead we have
to re-implement section moving ourselves.
* Minor tweak - also made RDTreeWidgets non-movable by default since
usually we don't want to allow it.
* There's a messy order-of-operations thing to deal with various
different themes, as well as a couple of minor problems, but at least
the highlight and selection bars draw fairly consistently and don't
leave an ugly gap over the branches.
* Instead of hacking in some data in unused fields in the output sig we
side-band the data we need to form the access chain.
* We also fix some issues with the SPIR-V generation for mesh dumping
that were caught by validation.
* When we add it, if a log is already open that's when we get the
callback to OnLogFileOpened to initialised. If we close afterwards,
we'll be in an inconsistent state.
* This still isn't perfect with some custom style stuff but it's next
to impossible to get working right. In theory we should manually
draw PE_PanelItemViewItem in the gap in drawRow() or so to make sure
we also draw any on-hover highlight over objects, but that doesn't
seem to work.
* It's not entirely clear if this is the intended fix, but otherwise
since we're not running QApplication::exec() the main event loop has
the same 'loop level' of 0 as the event level when it's fired. The
proper functioning seems to be that the posted deleteLater event
should have an event level of 1 which then means it will be processed
when coming back to the exec() loop level of 0, but since we don't get
that, just run it manually after all other events.
* If we create non-wrapped objects for debugging purposes like states
and scratch buffers, then this can interact poorly with the device
context which expects all objects bound to it to be wrapped.
* In particular if the pixel history is running and binds an unwrapped
rasterizer state, then tries to replay a draw which is a command list
execute the current device context pipeline state is saved (to be
restored at the end of the command list) and when querying the current
state an unwrapped object is found and everything blows up.
* There wasn't really a good reason for using unwrapped objects. The
primary reason to do so is to avoid polluting captures but little of
this code runs at capture time. We can also filter out debug-only
objects at replay time by ensuring only things with a valid original
ID are returned.
* Note we also need to allow for state objects in the capture to be
duplicates of debug states we created. We already handled this for
blend states but apparently not for other types of states.