コード例 #1
0
        private static Squish.DDS.PixelFormat GetPixelFormat(TextureFile texture)
        {
            // https://msdn.microsoft.com/en-us/library/windows/desktop/bb173059.aspx "DXGI_FORMAT enumeration"
            // https://msdn.microsoft.com/en-us/library/windows/desktop/cc308051.aspx "Legacy Formats: Map Direct3D 9 Formats to Direct3D 10"

            switch (texture.Format)
            {
            case 71:     // DXGI_FORMAT_BC1_UNORM
            {
                var pixelFormat = new Squish.DDS.PixelFormat();
                pixelFormat.Initialise(Squish.DDS.FileFormat.DXT1);
                return(pixelFormat);
            }

            case 74:     // DXGI_FORMAT_BC2_UNORM
            {
                var pixelFormat = new Squish.DDS.PixelFormat();
                pixelFormat.Initialise(Squish.DDS.FileFormat.DXT3);
                return(pixelFormat);
            }

            case 77:     // DXGI_FORMAT_BC3_UNORM
            {
                var pixelFormat = new Squish.DDS.PixelFormat();
                pixelFormat.Initialise(Squish.DDS.FileFormat.DXT5);
                return(pixelFormat);
            }

            case 87:     // DXGI_FORMAT_B8G8R8A8_UNORM
            {
                var pixelFormat = new Squish.DDS.PixelFormat();
                pixelFormat.Initialise(Squish.DDS.FileFormat.A8R8G8B8);
                return(pixelFormat);
            }

            case 61:     // DXGI_FORMAT_R8_UNORM
            case 80:     // DXGI_FORMAT_BC4_UNORM
            case 83:     // DXGI_FORMAT_BC5_UNORM
            case 98:     // DXGI_FORMAT_BC7_UNORM
            {
                var pixelFormat = new Squish.DDS.PixelFormat();
                pixelFormat.Size   = pixelFormat.GetSize();
                pixelFormat.FourCC = 0x30315844;         // 'DX10'
                return(pixelFormat);
            }
            }

            throw new NotSupportedException();
        }
コード例 #2
0
        // https://msdn.microsoft.com/en-us/library/windows/desktop/bb173059.aspx "DXGI_FORMAT enumeration"
        // https://msdn.microsoft.com/en-us/library/windows/desktop/cc308051.aspx "Legacy Formats: Map Direct3D 9 Formats to Direct3D 10"
        private static Squish.DDS.PixelFormat GetPixelFormat(TextureDX10ArchiveFile.Entry entry)
        {
            switch (entry.Format)
            {
            case 71:     // DXGI_FORMAT_BC1_UNORM
            {
                var pixelFormat = new Squish.DDS.PixelFormat();
                pixelFormat.Initialise(Squish.DDS.FileFormat.DXT1);
                return(pixelFormat);
            }

            case 74:     // DXGI_FORMAT_BC2_UNORM
            {
                var pixelFormat = new Squish.DDS.PixelFormat();
                pixelFormat.Initialise(Squish.DDS.FileFormat.DXT3);
                return(pixelFormat);
            }

            case 77:     // DXGI_FORMAT_BC3_UNORM
            {
                var pixelFormat = new Squish.DDS.PixelFormat();
                pixelFormat.Initialise(Squish.DDS.FileFormat.DXT5);
                return(pixelFormat);
            }

            case 87:     // DXGI_FORMAT_B8G8R8A8_UNORM
            {
                var pixelFormat = new Squish.DDS.PixelFormat();
                pixelFormat.Initialise(Squish.DDS.FileFormat.A8R8G8B8);
                return(pixelFormat);
            }

            case 61:     // DXGI_FORMAT_R8_UNORM
            case 83:     // DXGI_FORMAT_BC5_UNORM
            case 98:     // DXGI_FORMAT_BC7_UNORM
            {
                var pixelFormat = new Squish.DDS.PixelFormat();
                pixelFormat.Size   = pixelFormat.GetSize();
                pixelFormat.FourCC = 0x30315844;     // 'DX10'
                return(pixelFormat);
            }
            }

            throw new NotSupportedException();
        }