Merge changes from The Witness.

This commit is contained in:
castano
2011-04-06 02:41:15 +00:00
parent 9ebcff93de
commit 8a837981b6
19 changed files with 212 additions and 45 deletions

View File

@ -54,6 +54,16 @@ const uint nv::FOURCC_RXGB = MAKEFOURCC('R', 'X', 'G', 'B');
const uint nv::FOURCC_ATI1 = MAKEFOURCC('A', 'T', 'I', '1');
const uint nv::FOURCC_ATI2 = MAKEFOURCC('A', 'T', 'I', '2');
const uint nv::D3DFMT_A16B16G16R16 = 36;
// Floating point formats
const uint nv::D3DFMT_R16F = 111;
const uint nv::D3DFMT_G16R16F = 112;
const uint nv::D3DFMT_A16B16G16R16F = 113;
const uint nv::D3DFMT_R32F = 114;
const uint nv::D3DFMT_G32R32F = 115;
const uint nv::D3DFMT_A32B32G32R32F = 116;
namespace
{
@ -82,8 +92,6 @@ namespace
static const uint D3DFMT_G16R16 = 34;
static const uint D3DFMT_A2R10G10B10 = 35;
static const uint D3DFMT_A16B16G16R16 = 36;
// Palette formats.
static const uint D3DFMT_A8P8 = 40;
static const uint D3DFMT_P8 = 41;
@ -94,13 +102,6 @@ namespace
static const uint D3DFMT_A4L4 = 52;
static const uint D3DFMT_L16 = 81;
// Floating point formats
static const uint D3DFMT_R16F = 111;
static const uint D3DFMT_G16R16F = 112;
static const uint D3DFMT_A16B16G16R16F = 113;
static const uint D3DFMT_R32F = 114;
static const uint D3DFMT_G32R32F = 115;
static const uint D3DFMT_A32B32G32R32F = 116;
static const uint DDSD_CAPS = 0x00000001U;
static const uint DDSD_PIXELFORMAT = 0x00001000U;
@ -501,7 +502,7 @@ namespace
uint amask;
};
static const FormatDescriptor s_d3dFormats[] =
static const FormatDescriptor s_d3d9Formats[] =
{
{ D3DFMT_R8G8B8, 24, 0xFF0000, 0xFF00, 0xFF, 0 },
{ D3DFMT_A8R8G8B8, 32, 0xFF0000, 0xFF00, 0xFF, 0xFF000000 }, // DXGI_FORMAT_B8G8R8A8_UNORM
@ -525,21 +526,21 @@ namespace
{ D3DFMT_L16, 16, 16, 0, 0, 0 }, // DXGI_FORMAT_R16_UNORM
};
static const uint s_d3dFormatCount = sizeof(s_d3dFormats) / sizeof(s_d3dFormats[0]);
static const uint s_d3d9FormatCount = NV_ARRAY_SIZE(s_d3d9Formats);
} // namespace
uint nv::findD3D9Format(uint bitcount, uint rmask, uint gmask, uint bmask, uint amask)
{
for (int i = 0; i < s_d3dFormatCount; i++)
for (int i = 0; i < s_d3d9FormatCount; i++)
{
if (s_d3dFormats[i].bitcount == bitcount &&
s_d3dFormats[i].rmask == rmask &&
s_d3dFormats[i].gmask == gmask &&
s_d3dFormats[i].bmask == bmask &&
s_d3dFormats[i].amask == amask)
if (s_d3d9Formats[i].bitcount == bitcount &&
s_d3d9Formats[i].rmask == rmask &&
s_d3d9Formats[i].gmask == gmask &&
s_d3d9Formats[i].bmask == bmask &&
s_d3d9Formats[i].amask == amask)
{
return s_d3dFormats[i].format;
return s_d3d9Formats[i].format;
}
}
@ -547,7 +548,6 @@ uint nv::findD3D9Format(uint bitcount, uint rmask, uint gmask, uint bmask, uint
}
DDSHeader::DDSHeader()
{
this->fourcc = FOURCC_DDS;

View File

@ -44,6 +44,15 @@ namespace nv
extern const uint FOURCC_ATI1;
extern const uint FOURCC_ATI2;
extern const uint D3DFMT_G16R16;
extern const uint D3DFMT_A16B16G16R16;
extern const uint D3DFMT_R16F;
extern const uint D3DFMT_R32F;
extern const uint D3DFMT_G16R16F;
extern const uint D3DFMT_G32R32F;
extern const uint D3DFMT_A16B16G16R16F;
extern const uint D3DFMT_A32B32G32R32F;
extern uint findD3D9Format(uint bitcount, uint rmask, uint gmask, uint bmask, uint amask);
struct NVIMAGE_CLASS DDSPixelFormat

View File

@ -395,7 +395,7 @@ float nv::rmsAngularError(const FloatImage * img0, const FloatImage * img1)
n0 = normalizeSafe(n0, Vector3(0), 0.0f);
n1 = normalizeSafe(n1, Vector3(0), 0.0f);
float angle = acos(clamp(dot(n0, n1), -1.0f, 1.0f));
float angle = acosf(clamp(dot(n0, n1), -1.0f, 1.0f));
error += angle * angle;
}