diff options
author | Patrick Rudolph <siro@das-labor.org> | 2016-09-02 15:04:00 +0200 |
---|---|---|
committer | Jose Fonseca <jfonseca@vmware.com> | 2016-09-21 11:48:49 +0100 |
commit | 26be65c194445d87602712f4e85b2ac44739a583 (patch) | |
tree | 60eba5549491eda3b267b70c13fdf91aa8856342 /retrace | |
parent | 3fcc2a9fae0dc4625b0610d4b64ceedb81546e3f (diff) |
d3dretrace: Add support for half float formats
Use MESA half-float to float conversion function.
Mesa uses MIT compatibel license which should fit apitrace license.
Copyright header remains untouched.
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Diffstat (limited to 'retrace')
-rw-r--r-- | retrace/d3d9state_formats.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/retrace/d3d9state_formats.cpp b/retrace/d3d9state_formats.cpp index 845ae26d..bd16f567 100644 --- a/retrace/d3d9state_formats.cpp +++ b/retrace/d3d9state_formats.cpp @@ -30,6 +30,7 @@ #include <stdint.h> #include "image.hpp" +#include "halffloat.hpp" #ifdef HAVE_DXGI #include "dxgistate.hpp" @@ -181,6 +182,7 @@ ConvertImage(D3DFORMAT SrcFormat, channelType = image::TYPE_UNORM8; break; case D3DFMT_R32F: + case D3DFMT_R16F: case D3DFMT_D16: case D3DFMT_D16_LOCKABLE: case D3DFMT_D24S8: @@ -251,6 +253,11 @@ ConvertImage(D3DFORMAT SrcFormat, case D3DFMT_R32F: memcpy(dst, src, Width * sizeof(float)); break; + case D3DFMT_R16F: + for (unsigned x = 0; x < Width; ++x) { + ((float *)dst)[x] = util_half_to_float(((const uint16_t *)src)[x]); + } + break; default: assert(0); break; |