Write BC6/BC7 headers in TexImage path.
This commit is contained in:
parent
528b93ab14
commit
cfdc731634
@ -80,6 +80,12 @@ namespace
|
|||||||
else if (format == Format_CTX1) {
|
else if (format == Format_CTX1) {
|
||||||
return 8;
|
return 8;
|
||||||
}
|
}
|
||||||
|
else if (format == Format_BC6) {
|
||||||
|
return 16;
|
||||||
|
}
|
||||||
|
else if (format == Format_BC7) {
|
||||||
|
return 16;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -706,25 +712,32 @@ bool Compressor::Private::outputHeader(const TexImage & tex, int mipmapCount, co
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (compressionOptions.format == Format_DXT1 || compressionOptions.format == Format_DXT1a || compressionOptions.format == Format_DXT1n) {
|
if (compressionOptions.format == Format_DXT1 || compressionOptions.format == Format_DXT1a || compressionOptions.format == Format_DXT1n) {
|
||||||
header.setDX10Format(71);
|
header.setDX10Format(70); // DXGI_FORMAT_BC1_TYPELESS
|
||||||
if (compressionOptions.format == Format_DXT1a) header.setHasAlphaFlag(true);
|
if (compressionOptions.format == Format_DXT1a) header.setHasAlphaFlag(true);
|
||||||
if (tex.isNormalMap()) header.setNormalFlag(true);
|
if (tex.isNormalMap()) header.setNormalFlag(true);
|
||||||
}
|
}
|
||||||
else if (compressionOptions.format == Format_DXT3) {
|
else if (compressionOptions.format == Format_DXT3) {
|
||||||
header.setDX10Format(74);
|
header.setDX10Format(73); // DXGI_FORMAT_BC2_TYPELESS
|
||||||
}
|
}
|
||||||
else if (compressionOptions.format == Format_DXT5) {
|
else if (compressionOptions.format == Format_DXT5) {
|
||||||
header.setDX10Format(77);
|
header.setDX10Format(76); // DXGI_FORMAT_BC3_TYPELESS
|
||||||
}
|
}
|
||||||
else if (compressionOptions.format == Format_DXT5n) {
|
else if (compressionOptions.format == Format_DXT5n) {
|
||||||
header.setDX10Format(77);
|
header.setDX10Format(76); // DXGI_FORMAT_BC3_TYPELESS
|
||||||
if (tex.isNormalMap()) header.setNormalFlag(true);
|
if (tex.isNormalMap()) header.setNormalFlag(true);
|
||||||
}
|
}
|
||||||
else if (compressionOptions.format == Format_BC4) {
|
else if (compressionOptions.format == Format_BC4) {
|
||||||
header.setDX10Format(80);
|
header.setDX10Format(79); // DXGI_FORMAT_BC4_TYPELESS
|
||||||
}
|
}
|
||||||
else if (compressionOptions.format == Format_BC5) {
|
else if (compressionOptions.format == Format_BC5) {
|
||||||
header.setDX10Format(83);
|
header.setDX10Format(82); // DXGI_FORMAT_BC5_TYPELESS
|
||||||
|
if (tex.isNormalMap()) header.setNormalFlag(true);
|
||||||
|
}
|
||||||
|
else if (compressionOptions.format == Format_BC6) {
|
||||||
|
header.setDX10Format(94); // DXGI_FORMAT_BC6H_TYPELESS
|
||||||
|
}
|
||||||
|
else if (compressionOptions.format == Format_BC7) {
|
||||||
|
header.setDX10Format(97); // DXGI_FORMAT_BC7_TYPELESS
|
||||||
if (tex.isNormalMap()) header.setNormalFlag(true);
|
if (tex.isNormalMap()) header.setNormalFlag(true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -832,6 +845,13 @@ bool Compressor::Private::outputHeader(const TexImage & tex, int mipmapCount, co
|
|||||||
header.setSwizzleCode('A', '2', 'X', 'Y');
|
header.setSwizzleCode('A', '2', 'X', 'Y');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (compressionOptions.format == Format_BC6) {
|
||||||
|
header.setFourCC('Z', 'O', 'H', ' ');
|
||||||
|
}
|
||||||
|
else if (compressionOptions.format == Format_BC7) {
|
||||||
|
header.setFourCC('Z', 'O', 'L', 'A');
|
||||||
|
if (tex.isNormalMap()) header.setNormalFlag(true);
|
||||||
|
}
|
||||||
else if (compressionOptions.format == Format_CTX1) {
|
else if (compressionOptions.format == Format_CTX1) {
|
||||||
header.setFourCC('C', 'T', 'X', '1');
|
header.setFourCC('C', 'T', 'X', '1');
|
||||||
if (tex.isNormalMap()) header.setNormalFlag(true);
|
if (tex.isNormalMap()) header.setNormalFlag(true);
|
||||||
|
Loading…
Reference in New Issue
Block a user