indexes with a size less than uint32 were being ugpraded to uint32,
but the buffer range size was still dependent on the original width.
Before this change, when doing selection on indexed meshes with a
width of 2, the second half of the mesh would be unpickable.
The new vertex picking solution raycasts from the mouse's position,
picking vertices based on
1. The triangle it has intersected (take the nearest triangle)
2. The nearest vertex to the intersection point on the triangle
This is replacing a solution that was based on how close the vertex was
to the mouse in screen space and its depth.
This commit only supports the OpenGL path in the VS Input window.
I have disabled vertex picking in Vulkan for now, as there are some
cross dependencies (debuguniforms.h).
* Pixel shader debugging was right by coincidence because it replayed
the drawcall, but technically that could produce incorrect results as
we would then pick up UAV contents from after the draw, not before.
* This also fixes the problem of capturing 32-bit programs with 64-bit
RenderDoc failing to properly insert environment variables and
error'ing when it tries to do it directly.
In the event browser, the tree nodes which can be expanded are always
showing a range (17-17) even if the range is a single item. This fix
changes that to 17.
For example ASTC/ETC2 textures in Vulkan need to be forced to RGBA8 to be
displayed by D3D11.
IReplayDriver has virtual method IsTextureFormatSupported(ResourceFormat)
so each API can decide if a format should be converted.
Parameters to GetTextureData() are moved to a struct, to save any
non-default behaviour needed for fetching texture data into the proxy.
MakeDXGIFormat now returns DXGI_FORMAT_UNKNOWN for unsupported formats
instead of asserting. We use this to determine whether to remap.
* If a buffer is used as a texbuffer, or a texture as a view, then any
time the underlying data is dirty and needs to be saved as initial
contents but the data object is never referenced directly (only the
view), we need to force the underlying data object to have initial
contents.
* This fixes a couple of cases - the case where a buffer is modified
mid frame would not properly have its contents reset each frame
* Also any buffer that isn't modified during the frame would have its
initial contents overwritten by some partially recorded updates before
a buffer was marked as high traffic/dirty.
* I thought it was using cmake already, but it was using make. Whoops!
* This will make it easier to add a release target in travis in future
though, which is a nice bonus.
* This allows github to identify the content of the license as MIT for
repo metadata, and also cuts down on the redundant duplicate license
credits. 3rd party acknowledgements are still linked from LICENSE.md
and prominently included in both the documentation and installer
license.
* This version contains the fix for sphinx-doc/sphinx#2550 so we want to
assume it is present and tidy up all the external links. However if
needed (and you don't care about the external links being broken) you
can locally remove this version requirement.
* Added r12b, r12, r11c, r11b, r11, r10e.
* This just means if the NDK is in one of the auto-search locations you
won't have to set the ANDROID_NDK environment variable.
* The windows command will now be:
cmake -G "MinGW Makefiles" -DBUILD_ANDROID=On <...>
* The linux command will just be:
cmake -DBUILD_ANDROID=On <...>
* With the rest of the parameters specified as normal. An optional
-DANDROID_ABI can be passed to specify the ABI
* We only want to block windows-for-windows builds with CMake, not cross
compiles for e.g. android from windows.
* We move the fatal error later in the file after the cross-compilation
has been initialised so we can check if we're really still WIN32.
* This means the early-out on windows is a little late (after some
autodetection has happened) but that's not the end of the world.