master e5a30421a82c cached
146 files
4.0 MB
1.1M tokens
556 symbols
1 requests
Download .txt
Showing preview only (4,203K chars total). Download the full file or copy to clipboard to get everything.
Repository: GameTechDev/Intel-Texture-Works-Plugin
Branch: master
Commit: e5a30421a82c
Files: 146
Total size: 4.0 MB

Directory structure:
gitextract_5vvclg95/

├── .gitignore
├── 3rdParty/
│   ├── DirectXTex/
│   │   ├── .gitignore
│   │   ├── DDSTextureLoader/
│   │   │   ├── DDSTextureLoader.cpp
│   │   │   └── DDSTextureLoader.h
│   │   ├── DDSView/
│   │   │   ├── DDSView.rc
│   │   │   ├── DDSView_Desktop_2012.sln
│   │   │   ├── DDSView_Desktop_2012.vcxproj
│   │   │   ├── DDSView_Desktop_2012.vcxproj.filters
│   │   │   ├── DDSView_Desktop_2013.sln
│   │   │   ├── DDSView_Desktop_2013.vcxproj
│   │   │   ├── DDSView_Desktop_2013.vcxproj.filters
│   │   │   ├── DDSView_Desktop_2015.sln
│   │   │   ├── DDSView_Desktop_2015.vcxproj
│   │   │   ├── DDSView_Desktop_2015.vcxproj.filters
│   │   │   ├── ddsview.cpp
│   │   │   ├── ddsview.fx
│   │   │   ├── hlsl.cmd
│   │   │   └── shaders/
│   │   │       ├── ps1D.h
│   │   │       ├── ps1Darray.h
│   │   │       ├── ps2D.h
│   │   │       ├── ps2Darray.h
│   │   │       ├── ps3D.h
│   │   │       ├── psCube.h
│   │   │       └── vs.h
│   │   ├── DirectXTex/
│   │   │   ├── BC.cpp
│   │   │   ├── BC.h
│   │   │   ├── BC4BC5.cpp
│   │   │   ├── BC6HBC7.cpp
│   │   │   ├── BCDirectCompute.cpp
│   │   │   ├── BCDirectCompute.h
│   │   │   ├── DDS.h
│   │   │   ├── DirectXTex.h
│   │   │   ├── DirectXTex.inl
│   │   │   ├── DirectXTexCompress.cpp
│   │   │   ├── DirectXTexCompressGPU.cpp
│   │   │   ├── DirectXTexConvert.cpp
│   │   │   ├── DirectXTexD3D11.cpp
│   │   │   ├── DirectXTexDDS.cpp
│   │   │   ├── DirectXTexFlipRotate.cpp
│   │   │   ├── DirectXTexImage.cpp
│   │   │   ├── DirectXTexMipmaps.cpp
│   │   │   ├── DirectXTexMisc.cpp
│   │   │   ├── DirectXTexNormalMaps.cpp
│   │   │   ├── DirectXTexP.h
│   │   │   ├── DirectXTexPMAlpha.cpp
│   │   │   ├── DirectXTexResize.cpp
│   │   │   ├── DirectXTexTGA.cpp
│   │   │   ├── DirectXTexUtil.cpp
│   │   │   ├── DirectXTexWIC.cpp
│   │   │   ├── DirectXTex_Desktop_2012.sln
│   │   │   ├── DirectXTex_Desktop_2012.vcxproj
│   │   │   ├── DirectXTex_Desktop_2012.vcxproj.filters
│   │   │   ├── DirectXTex_Desktop_2013.sln
│   │   │   ├── DirectXTex_Desktop_2013.vcxproj
│   │   │   ├── DirectXTex_Desktop_2013.vcxproj.filters
│   │   │   ├── DirectXTex_Desktop_2015.sln
│   │   │   ├── DirectXTex_Desktop_2015.vcxproj
│   │   │   ├── DirectXTex_Desktop_2015.vcxproj.filters
│   │   │   ├── DirectXTex_Windows10.sln
│   │   │   ├── DirectXTex_Windows10.vcxproj
│   │   │   ├── DirectXTex_Windows10.vcxproj.filters
│   │   │   ├── DirectXTex_Windows81.sln
│   │   │   ├── DirectXTex_Windows81.vcxproj
│   │   │   ├── DirectXTex_Windows81.vcxproj.filters
│   │   │   ├── DirectXTex_WindowsPhone81.sln
│   │   │   ├── DirectXTex_WindowsPhone81.vcxproj
│   │   │   ├── DirectXTex_WindowsPhone81.vcxproj.filters
│   │   │   ├── DirectXTex_XboxOneADK.sln
│   │   │   ├── DirectXTex_XboxOneADK.vcxproj
│   │   │   ├── DirectXTex_XboxOneADK.vcxproj.filters
│   │   │   ├── DirectXTex_XboxOneXDK.sln
│   │   │   ├── DirectXTex_XboxOneXDK.vcxproj
│   │   │   ├── DirectXTex_XboxOneXDK.vcxproj.filters
│   │   │   ├── Filters.h
│   │   │   ├── Shaders/
│   │   │   │   ├── BC6HEncode.hlsl
│   │   │   │   ├── BC7Encode.hlsl
│   │   │   │   ├── CompileShaders.cmd
│   │   │   │   └── Compiled/
│   │   │   │       ├── BC6HEncode_EncodeBlockCS.inc
│   │   │   │       ├── BC6HEncode_TryModeG10CS.inc
│   │   │   │       ├── BC6HEncode_TryModeLE10CS.inc
│   │   │   │       ├── BC7Encode_EncodeBlockCS.inc
│   │   │   │       ├── BC7Encode_TryMode02CS.inc
│   │   │   │       ├── BC7Encode_TryMode137CS.inc
│   │   │   │       └── BC7Encode_TryMode456CS.inc
│   │   │   └── scoped.h
│   │   ├── MIT.txt
│   │   ├── ReadMe.txt
│   │   ├── ScreenGrab/
│   │   │   ├── ScreenGrab.cpp
│   │   │   └── ScreenGrab.h
│   │   ├── Texassemble/
│   │   │   ├── Texassemble_Desktop_2012.sln
│   │   │   ├── Texassemble_Desktop_2012.vcxproj
│   │   │   ├── Texassemble_Desktop_2012.vcxproj.filters
│   │   │   ├── Texassemble_Desktop_2013.sln
│   │   │   ├── Texassemble_Desktop_2013.vcxproj
│   │   │   ├── Texassemble_Desktop_2013.vcxproj.filters
│   │   │   ├── Texassemble_Desktop_2015.sln
│   │   │   ├── Texassemble_Desktop_2015.vcxproj
│   │   │   ├── Texassemble_Desktop_2015.vcxproj.filters
│   │   │   ├── texassemble.cpp
│   │   │   └── texassemble.rc
│   │   ├── Texconv/
│   │   │   ├── Texconv.rc
│   │   │   ├── Texconv_Desktop_2012.sln
│   │   │   ├── Texconv_Desktop_2012.vcxproj
│   │   │   ├── Texconv_Desktop_2012.vcxproj.filters
│   │   │   ├── Texconv_Desktop_2013.sln
│   │   │   ├── Texconv_Desktop_2013.vcxproj
│   │   │   ├── Texconv_Desktop_2013.vcxproj.filters
│   │   │   ├── Texconv_Desktop_2015.sln
│   │   │   ├── Texconv_Desktop_2015.vcxproj
│   │   │   ├── Texconv_Desktop_2015.vcxproj.filters
│   │   │   └── texconv.cpp
│   │   └── WICTextureLoader/
│   │       ├── WICTextureLoader.cpp
│   │       └── WICTextureLoader.h
│   └── Intel/
│       └── Source/
│           ├── StopWatch.cpp
│           ├── StopWatch.h
│           ├── ispc_texcomp.cpp
│           ├── ispc_texcomp.h
│           ├── win32Threads.cpp
│           └── win32Threads.h
├── IntelCompressionPlugin/
│   ├── IntelPlugin.cpp
│   ├── IntelPlugin.h
│   ├── IntelPlugin.r
│   ├── IntelPlugin.rc
│   ├── IntelPluginName.h
│   ├── IntelPluginUIWin.cpp
│   ├── IntelPluginUIWin.h
│   ├── IntelTextureWorks.vcxproj
│   ├── IntelTextureWorks.vcxproj.filters
│   ├── PreviewDialog.cpp
│   ├── PreviewDialog.h
│   ├── SaveOptionsDialog.cpp
│   ├── SaveOptionsDialog.h
│   ├── kernel.ispc
│   └── resource.h
├── IntelTextureWorks.sln
├── PhotoshopScripts/
│   ├── IntelTextureWorks-ConvertCubeMap.jsx
│   └── IntelTextureWorks-CubeMapGaussianBlur.jsx
├── README.md
├── Sample Images/
│   ├── CubeMapByLayerTestImage.psd
│   ├── HDR.hdr
│   ├── baboon-MipMapAsLayers.psd
│   ├── mandrill-MipMapAsLayers.psd
│   ├── monkey-32bit.hdr
│   ├── monkey-MipMapAsLayers.psd
│   └── monkey.tif
└── license.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================

# ignore these types

*.cache
*.log
*.suo
*.sdf
*.opensdf
*.pdb
*.user
*.tmp_proj
*.bsc
*.ilk

# intel compiler generated
*_ispc*.h

#ignore these folders

Debug/
Release/
bin/
obj/
ipch/
	
*.DS_Store

*.pipl
Plugins/
*.dds
*.aps
*.zip
*.tmp


================================================
FILE: 3rdParty/DirectXTex/.gitignore
================================================
*.psess
*.vsp
*.log
*.err
*.wrn
*.suo
*.sdf
*.user
*.i
*.vspscc
*.opensdf
*.ipch
*.cache
*.tlog
*.lastbuildstate
*.ilk
Bin
/ipch
Debug
Profile
Release
x64
/Tests
/wiki

================================================
FILE: 3rdParty/DirectXTex/DDSTextureLoader/DDSTextureLoader.cpp
================================================
//--------------------------------------------------------------------------------------
// File: DDSTextureLoader.cpp
//
// Functions for loading a DDS texture and creating a Direct3D 11 runtime resource for it
//
// Note these functions are useful as a light-weight runtime loader for DDS files. For
// a full-featured DDS file reader, writer, and texture processing pipeline see
// the 'Texconv' sample and the 'DirectXTex' library.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/?LinkId=248926
// http://go.microsoft.com/fwlink/?LinkId=248929
//--------------------------------------------------------------------------------------

#include <assert.h>
#include <algorithm>
#include <memory>

#include "DDSTextureLoader.h"

#if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) )
#pragma comment(lib,"dxguid.lib")
#endif

using namespace DirectX;

//--------------------------------------------------------------------------------------
// Macros
//--------------------------------------------------------------------------------------
#ifndef MAKEFOURCC
    #define MAKEFOURCC(ch0, ch1, ch2, ch3)                              \
                ((uint32_t)(uint8_t)(ch0) | ((uint32_t)(uint8_t)(ch1) << 8) |       \
                ((uint32_t)(uint8_t)(ch2) << 16) | ((uint32_t)(uint8_t)(ch3) << 24 ))
#endif /* defined(MAKEFOURCC) */

//--------------------------------------------------------------------------------------
// DDS file structure definitions
//
// See DDS.h in the 'Texconv' sample and the 'DirectXTex' library
//--------------------------------------------------------------------------------------
#pragma pack(push,1)

const uint32_t DDS_MAGIC = 0x20534444; // "DDS "

struct DDS_PIXELFORMAT
{
    uint32_t    size;
    uint32_t    flags;
    uint32_t    fourCC;
    uint32_t    RGBBitCount;
    uint32_t    RBitMask;
    uint32_t    GBitMask;
    uint32_t    BBitMask;
    uint32_t    ABitMask;
};

#define DDS_FOURCC      0x00000004  // DDPF_FOURCC
#define DDS_RGB         0x00000040  // DDPF_RGB
#define DDS_LUMINANCE   0x00020000  // DDPF_LUMINANCE
#define DDS_ALPHA       0x00000002  // DDPF_ALPHA

#define DDS_HEADER_FLAGS_VOLUME         0x00800000  // DDSD_DEPTH

#define DDS_HEIGHT 0x00000002 // DDSD_HEIGHT
#define DDS_WIDTH  0x00000004 // DDSD_WIDTH

#define DDS_CUBEMAP_POSITIVEX 0x00000600 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEX
#define DDS_CUBEMAP_NEGATIVEX 0x00000a00 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEX
#define DDS_CUBEMAP_POSITIVEY 0x00001200 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEY
#define DDS_CUBEMAP_NEGATIVEY 0x00002200 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEY
#define DDS_CUBEMAP_POSITIVEZ 0x00004200 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEZ
#define DDS_CUBEMAP_NEGATIVEZ 0x00008200 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEZ

#define DDS_CUBEMAP_ALLFACES ( DDS_CUBEMAP_POSITIVEX | DDS_CUBEMAP_NEGATIVEX |\
                               DDS_CUBEMAP_POSITIVEY | DDS_CUBEMAP_NEGATIVEY |\
                               DDS_CUBEMAP_POSITIVEZ | DDS_CUBEMAP_NEGATIVEZ )

#define DDS_CUBEMAP 0x00000200 // DDSCAPS2_CUBEMAP

enum DDS_MISC_FLAGS2
{
    DDS_MISC_FLAGS2_ALPHA_MODE_MASK = 0x7L,
};

struct DDS_HEADER
{
    uint32_t        size;
    uint32_t        flags;
    uint32_t        height;
    uint32_t        width;
    uint32_t        pitchOrLinearSize;
    uint32_t        depth; // only if DDS_HEADER_FLAGS_VOLUME is set in flags
    uint32_t        mipMapCount;
    uint32_t        reserved1[11];
    DDS_PIXELFORMAT ddspf;
    uint32_t        caps;
    uint32_t        caps2;
    uint32_t        caps3;
    uint32_t        caps4;
    uint32_t        reserved2;
};

struct DDS_HEADER_DXT10
{
    DXGI_FORMAT     dxgiFormat;
    uint32_t        resourceDimension;
    uint32_t        miscFlag; // see D3D11_RESOURCE_MISC_FLAG
    uint32_t        arraySize;
    uint32_t        miscFlags2;
};

#pragma pack(pop)

//--------------------------------------------------------------------------------------
namespace
{

struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } };

typedef public std::unique_ptr<void, handle_closer> ScopedHandle;

inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALUE) ? 0 : h; }

template<UINT TNameLength>
inline void SetDebugObjectName(_In_ ID3D11DeviceChild* resource, _In_ const char (&name)[TNameLength])
{
#if defined(_DEBUG) || defined(PROFILE)
    resource->SetPrivateData(WKPDID_D3DDebugObjectName, TNameLength - 1, name);
#else
    UNREFERENCED_PARAMETER(resource);
    UNREFERENCED_PARAMETER(name);
#endif
}

};

//--------------------------------------------------------------------------------------
static HRESULT LoadTextureDataFromFile( _In_z_ const wchar_t* fileName,
                                        std::unique_ptr<uint8_t[]>& ddsData,
                                        DDS_HEADER** header,
                                        uint8_t** bitData,
                                        size_t* bitSize
                                      )
{
    if (!header || !bitData || !bitSize)
    {
        return E_POINTER;
    }

    // open the file
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
    ScopedHandle hFile( safe_handle( CreateFile2( fileName,
                                                  GENERIC_READ,
                                                  FILE_SHARE_READ,
                                                  OPEN_EXISTING,
                                                  nullptr ) ) );
#else
    ScopedHandle hFile( safe_handle( CreateFileW( fileName,
                                                  GENERIC_READ,
                                                  FILE_SHARE_READ,
                                                  nullptr,
                                                  OPEN_EXISTING,
                                                  FILE_ATTRIBUTE_NORMAL,
                                                  nullptr ) ) );
#endif

    if ( !hFile )
    {
        return HRESULT_FROM_WIN32( GetLastError() );
    }

    // Get the file size
    LARGE_INTEGER FileSize = { 0 };

#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
    FILE_STANDARD_INFO fileInfo;
    if ( !GetFileInformationByHandleEx( hFile.get(), FileStandardInfo, &fileInfo, sizeof(fileInfo) ) )
    {
        return HRESULT_FROM_WIN32( GetLastError() );
    }
    FileSize = fileInfo.EndOfFile;
#else
    GetFileSizeEx( hFile.get(), &FileSize );
#endif

    // File is too big for 32-bit allocation, so reject read
    if (FileSize.HighPart > 0)
    {
        return E_FAIL;
    }

    // Need at least enough data to fill the header and magic number to be a valid DDS
    if (FileSize.LowPart < ( sizeof(DDS_HEADER) + sizeof(uint32_t) ) )
    {
        return E_FAIL;
    }

    // create enough space for the file data
    ddsData.reset( new (std::nothrow) uint8_t[ FileSize.LowPart ] );
    if (!ddsData)
    {
        return E_OUTOFMEMORY;
    }

    // read the data in
    DWORD BytesRead = 0;
    if (!ReadFile( hFile.get(),
                   ddsData.get(),
                   FileSize.LowPart,
                   &BytesRead,
                   nullptr
                 ))
    {
        return HRESULT_FROM_WIN32( GetLastError() );
    }

    if (BytesRead < FileSize.LowPart)
    {
        return E_FAIL;
    }

    // DDS files always start with the same magic number ("DDS ")
    uint32_t dwMagicNumber = *( const uint32_t* )( ddsData.get() );
    if (dwMagicNumber != DDS_MAGIC)
    {
        return E_FAIL;
    }

    auto hdr = reinterpret_cast<DDS_HEADER*>( ddsData.get() + sizeof( uint32_t ) );

    // Verify header to validate DDS file
    if (hdr->size != sizeof(DDS_HEADER) ||
        hdr->ddspf.size != sizeof(DDS_PIXELFORMAT))
    {
        return E_FAIL;
    }

    // Check for DX10 extension
    bool bDXT10Header = false;
    if ((hdr->ddspf.flags & DDS_FOURCC) &&
        (MAKEFOURCC( 'D', 'X', '1', '0' ) == hdr->ddspf.fourCC))
    {
        // Must be long enough for both headers and magic value
        if (FileSize.LowPart < ( sizeof(DDS_HEADER) + sizeof(uint32_t) + sizeof(DDS_HEADER_DXT10) ) )
        {
            return E_FAIL;
        }

        bDXT10Header = true;
    }

    // setup the pointers in the process request
    *header = hdr;
    ptrdiff_t offset = sizeof( uint32_t ) + sizeof( DDS_HEADER )
                       + (bDXT10Header ? sizeof( DDS_HEADER_DXT10 ) : 0);
    *bitData = ddsData.get() + offset;
    *bitSize = FileSize.LowPart - offset;

    return S_OK;
}


//--------------------------------------------------------------------------------------
// Return the BPP for a particular format
//--------------------------------------------------------------------------------------
static size_t BitsPerPixel( _In_ DXGI_FORMAT fmt )
{
    switch( fmt )
    {
    case DXGI_FORMAT_R32G32B32A32_TYPELESS:
    case DXGI_FORMAT_R32G32B32A32_FLOAT:
    case DXGI_FORMAT_R32G32B32A32_UINT:
    case DXGI_FORMAT_R32G32B32A32_SINT:
        return 128;

    case DXGI_FORMAT_R32G32B32_TYPELESS:
    case DXGI_FORMAT_R32G32B32_FLOAT:
    case DXGI_FORMAT_R32G32B32_UINT:
    case DXGI_FORMAT_R32G32B32_SINT:
        return 96;

    case DXGI_FORMAT_R16G16B16A16_TYPELESS:
    case DXGI_FORMAT_R16G16B16A16_FLOAT:
    case DXGI_FORMAT_R16G16B16A16_UNORM:
    case DXGI_FORMAT_R16G16B16A16_UINT:
    case DXGI_FORMAT_R16G16B16A16_SNORM:
    case DXGI_FORMAT_R16G16B16A16_SINT:
    case DXGI_FORMAT_R32G32_TYPELESS:
    case DXGI_FORMAT_R32G32_FLOAT:
    case DXGI_FORMAT_R32G32_UINT:
    case DXGI_FORMAT_R32G32_SINT:
    case DXGI_FORMAT_R32G8X24_TYPELESS:
    case DXGI_FORMAT_D32_FLOAT_S8X24_UINT:
    case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS:
    case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT:
    case DXGI_FORMAT_Y416:
    case DXGI_FORMAT_Y210:
    case DXGI_FORMAT_Y216:
        return 64;

    case DXGI_FORMAT_R10G10B10A2_TYPELESS:
    case DXGI_FORMAT_R10G10B10A2_UNORM:
    case DXGI_FORMAT_R10G10B10A2_UINT:
    case DXGI_FORMAT_R11G11B10_FLOAT:
    case DXGI_FORMAT_R8G8B8A8_TYPELESS:
    case DXGI_FORMAT_R8G8B8A8_UNORM:
    case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:
    case DXGI_FORMAT_R8G8B8A8_UINT:
    case DXGI_FORMAT_R8G8B8A8_SNORM:
    case DXGI_FORMAT_R8G8B8A8_SINT:
    case DXGI_FORMAT_R16G16_TYPELESS:
    case DXGI_FORMAT_R16G16_FLOAT:
    case DXGI_FORMAT_R16G16_UNORM:
    case DXGI_FORMAT_R16G16_UINT:
    case DXGI_FORMAT_R16G16_SNORM:
    case DXGI_FORMAT_R16G16_SINT:
    case DXGI_FORMAT_R32_TYPELESS:
    case DXGI_FORMAT_D32_FLOAT:
    case DXGI_FORMAT_R32_FLOAT:
    case DXGI_FORMAT_R32_UINT:
    case DXGI_FORMAT_R32_SINT:
    case DXGI_FORMAT_R24G8_TYPELESS:
    case DXGI_FORMAT_D24_UNORM_S8_UINT:
    case DXGI_FORMAT_R24_UNORM_X8_TYPELESS:
    case DXGI_FORMAT_X24_TYPELESS_G8_UINT:
    case DXGI_FORMAT_R9G9B9E5_SHAREDEXP:
    case DXGI_FORMAT_R8G8_B8G8_UNORM:
    case DXGI_FORMAT_G8R8_G8B8_UNORM:
    case DXGI_FORMAT_B8G8R8A8_UNORM:
    case DXGI_FORMAT_B8G8R8X8_UNORM:
    case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM:
    case DXGI_FORMAT_B8G8R8A8_TYPELESS:
    case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB:
    case DXGI_FORMAT_B8G8R8X8_TYPELESS:
    case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB:
    case DXGI_FORMAT_AYUV:
    case DXGI_FORMAT_Y410:
    case DXGI_FORMAT_YUY2:
        return 32;

    case DXGI_FORMAT_P010:
    case DXGI_FORMAT_P016:
        return 24;

    case DXGI_FORMAT_R8G8_TYPELESS:
    case DXGI_FORMAT_R8G8_UNORM:
    case DXGI_FORMAT_R8G8_UINT:
    case DXGI_FORMAT_R8G8_SNORM:
    case DXGI_FORMAT_R8G8_SINT:
    case DXGI_FORMAT_R16_TYPELESS:
    case DXGI_FORMAT_R16_FLOAT:
    case DXGI_FORMAT_D16_UNORM:
    case DXGI_FORMAT_R16_UNORM:
    case DXGI_FORMAT_R16_UINT:
    case DXGI_FORMAT_R16_SNORM:
    case DXGI_FORMAT_R16_SINT:
    case DXGI_FORMAT_B5G6R5_UNORM:
    case DXGI_FORMAT_B5G5R5A1_UNORM:
    case DXGI_FORMAT_A8P8:
    case DXGI_FORMAT_B4G4R4A4_UNORM:
        return 16;

    case DXGI_FORMAT_NV12:
    case DXGI_FORMAT_420_OPAQUE:
    case DXGI_FORMAT_NV11:
        return 12;

    case DXGI_FORMAT_R8_TYPELESS:
    case DXGI_FORMAT_R8_UNORM:
    case DXGI_FORMAT_R8_UINT:
    case DXGI_FORMAT_R8_SNORM:
    case DXGI_FORMAT_R8_SINT:
    case DXGI_FORMAT_A8_UNORM:
    case DXGI_FORMAT_AI44:
    case DXGI_FORMAT_IA44:
    case DXGI_FORMAT_P8:
        return 8;

    case DXGI_FORMAT_R1_UNORM:
        return 1;

    case DXGI_FORMAT_BC1_TYPELESS:
    case DXGI_FORMAT_BC1_UNORM:
    case DXGI_FORMAT_BC1_UNORM_SRGB:
    case DXGI_FORMAT_BC4_TYPELESS:
    case DXGI_FORMAT_BC4_UNORM:
    case DXGI_FORMAT_BC4_SNORM:
        return 4;

    case DXGI_FORMAT_BC2_TYPELESS:
    case DXGI_FORMAT_BC2_UNORM:
    case DXGI_FORMAT_BC2_UNORM_SRGB:
    case DXGI_FORMAT_BC3_TYPELESS:
    case DXGI_FORMAT_BC3_UNORM:
    case DXGI_FORMAT_BC3_UNORM_SRGB:
    case DXGI_FORMAT_BC5_TYPELESS:
    case DXGI_FORMAT_BC5_UNORM:
    case DXGI_FORMAT_BC5_SNORM:
    case DXGI_FORMAT_BC6H_TYPELESS:
    case DXGI_FORMAT_BC6H_UF16:
    case DXGI_FORMAT_BC6H_SF16:
    case DXGI_FORMAT_BC7_TYPELESS:
    case DXGI_FORMAT_BC7_UNORM:
    case DXGI_FORMAT_BC7_UNORM_SRGB:
        return 8;

    default:
        return 0;
    }
}


//--------------------------------------------------------------------------------------
// Get surface information for a particular format
//--------------------------------------------------------------------------------------
static void GetSurfaceInfo( _In_ size_t width,
                            _In_ size_t height,
                            _In_ DXGI_FORMAT fmt,
                            _Out_opt_ size_t* outNumBytes,
                            _Out_opt_ size_t* outRowBytes,
                            _Out_opt_ size_t* outNumRows )
{
    size_t numBytes = 0;
    size_t rowBytes = 0;
    size_t numRows = 0;

    bool bc = false;
    bool packed = false;
    bool planar = false;
    size_t bpe = 0;
    switch (fmt)
    {
    case DXGI_FORMAT_BC1_TYPELESS:
    case DXGI_FORMAT_BC1_UNORM:
    case DXGI_FORMAT_BC1_UNORM_SRGB:
    case DXGI_FORMAT_BC4_TYPELESS:
    case DXGI_FORMAT_BC4_UNORM:
    case DXGI_FORMAT_BC4_SNORM:
        bc=true;
        bpe = 8;
        break;

    case DXGI_FORMAT_BC2_TYPELESS:
    case DXGI_FORMAT_BC2_UNORM:
    case DXGI_FORMAT_BC2_UNORM_SRGB:
    case DXGI_FORMAT_BC3_TYPELESS:
    case DXGI_FORMAT_BC3_UNORM:
    case DXGI_FORMAT_BC3_UNORM_SRGB:
    case DXGI_FORMAT_BC5_TYPELESS:
    case DXGI_FORMAT_BC5_UNORM:
    case DXGI_FORMAT_BC5_SNORM:
    case DXGI_FORMAT_BC6H_TYPELESS:
    case DXGI_FORMAT_BC6H_UF16:
    case DXGI_FORMAT_BC6H_SF16:
    case DXGI_FORMAT_BC7_TYPELESS:
    case DXGI_FORMAT_BC7_UNORM:
    case DXGI_FORMAT_BC7_UNORM_SRGB:
        bc = true;
        bpe = 16;
        break;

    case DXGI_FORMAT_R8G8_B8G8_UNORM:
    case DXGI_FORMAT_G8R8_G8B8_UNORM:
    case DXGI_FORMAT_YUY2:
        packed = true;
        bpe = 4;
        break;

    case DXGI_FORMAT_Y210:
    case DXGI_FORMAT_Y216:
        packed = true;
        bpe = 8;
        break;

    case DXGI_FORMAT_NV12:
    case DXGI_FORMAT_420_OPAQUE:
        planar = true;
        bpe = 2;
        break;

    case DXGI_FORMAT_P010:
    case DXGI_FORMAT_P016:
        planar = true;
        bpe = 4;
        break;
    }

    if (bc)
    {
        size_t numBlocksWide = 0;
        if (width > 0)
        {
            numBlocksWide = std::max<size_t>( 1, (width + 3) / 4 );
        }
        size_t numBlocksHigh = 0;
        if (height > 0)
        {
            numBlocksHigh = std::max<size_t>( 1, (height + 3) / 4 );
        }
        rowBytes = numBlocksWide * bpe;
        numRows = numBlocksHigh;
        numBytes = rowBytes * numBlocksHigh;
    }
    else if (packed)
    {
        rowBytes = ( ( width + 1 ) >> 1 ) * bpe;
        numRows = height;
        numBytes = rowBytes * height;
    }
    else if ( fmt == DXGI_FORMAT_NV11 )
    {
        rowBytes = ( ( width + 3 ) >> 2 ) * 4;
        numRows = height * 2; // Direct3D makes this simplifying assumption, although it is larger than the 4:1:1 data
        numBytes = rowBytes * numRows;
    }
    else if (planar)
    {
        rowBytes = ( ( width + 1 ) >> 1 ) * bpe;
        numBytes = ( rowBytes * height ) + ( ( rowBytes * height + 1 ) >> 1 );
        numRows = height + ( ( height + 1 ) >> 1 );
    }
    else
    {
        size_t bpp = BitsPerPixel( fmt );
        rowBytes = ( width * bpp + 7 ) / 8; // round up to nearest byte
        numRows = height;
        numBytes = rowBytes * height;
    }

    if (outNumBytes)
    {
        *outNumBytes = numBytes;
    }
    if (outRowBytes)
    {
        *outRowBytes = rowBytes;
    }
    if (outNumRows)
    {
        *outNumRows = numRows;
    }
}


//--------------------------------------------------------------------------------------
#define ISBITMASK( r,g,b,a ) ( ddpf.RBitMask == r && ddpf.GBitMask == g && ddpf.BBitMask == b && ddpf.ABitMask == a )

static DXGI_FORMAT GetDXGIFormat( const DDS_PIXELFORMAT& ddpf )
{
    if (ddpf.flags & DDS_RGB)
    {
        // Note that sRGB formats are written using the "DX10" extended header

        switch (ddpf.RGBBitCount)
        {
        case 32:
            if (ISBITMASK(0x000000ff,0x0000ff00,0x00ff0000,0xff000000))
            {
                return DXGI_FORMAT_R8G8B8A8_UNORM;
            }

            if (ISBITMASK(0x00ff0000,0x0000ff00,0x000000ff,0xff000000))
            {
                return DXGI_FORMAT_B8G8R8A8_UNORM;
            }

            if (ISBITMASK(0x00ff0000,0x0000ff00,0x000000ff,0x00000000))
            {
                return DXGI_FORMAT_B8G8R8X8_UNORM;
            }

            // No DXGI format maps to ISBITMASK(0x000000ff,0x0000ff00,0x00ff0000,0x00000000) aka D3DFMT_X8B8G8R8

            // Note that many common DDS reader/writers (including D3DX) swap the
            // the RED/BLUE masks for 10:10:10:2 formats. We assume
            // below that the 'backwards' header mask is being used since it is most
            // likely written by D3DX. The more robust solution is to use the 'DX10'
            // header extension and specify the DXGI_FORMAT_R10G10B10A2_UNORM format directly

            // For 'correct' writers, this should be 0x000003ff,0x000ffc00,0x3ff00000 for RGB data
            if (ISBITMASK(0x3ff00000,0x000ffc00,0x000003ff,0xc0000000))
            {
                return DXGI_FORMAT_R10G10B10A2_UNORM;
            }

            // No DXGI format maps to ISBITMASK(0x000003ff,0x000ffc00,0x3ff00000,0xc0000000) aka D3DFMT_A2R10G10B10

            if (ISBITMASK(0x0000ffff,0xffff0000,0x00000000,0x00000000))
            {
                return DXGI_FORMAT_R16G16_UNORM;
            }

            if (ISBITMASK(0xffffffff,0x00000000,0x00000000,0x00000000))
            {
                // Only 32-bit color channel format in D3D9 was R32F
                return DXGI_FORMAT_R32_FLOAT; // D3DX writes this out as a FourCC of 114
            }
            break;

        case 24:
            // No 24bpp DXGI formats aka D3DFMT_R8G8B8
            break;

        case 16:
            if (ISBITMASK(0x7c00,0x03e0,0x001f,0x8000))
            {
                return DXGI_FORMAT_B5G5R5A1_UNORM;
            }
            if (ISBITMASK(0xf800,0x07e0,0x001f,0x0000))
            {
                return DXGI_FORMAT_B5G6R5_UNORM;
            }

            // No DXGI format maps to ISBITMASK(0x7c00,0x03e0,0x001f,0x0000) aka D3DFMT_X1R5G5B5

            if (ISBITMASK(0x0f00,0x00f0,0x000f,0xf000))
            {
                return DXGI_FORMAT_B4G4R4A4_UNORM;
            }

            // No DXGI format maps to ISBITMASK(0x0f00,0x00f0,0x000f,0x0000) aka D3DFMT_X4R4G4B4

            // No 3:3:2, 3:3:2:8, or paletted DXGI formats aka D3DFMT_A8R3G3B2, D3DFMT_R3G3B2, D3DFMT_P8, D3DFMT_A8P8, etc.
            break;
        }
    }
    else if (ddpf.flags & DDS_LUMINANCE)
    {
        if (8 == ddpf.RGBBitCount)
        {
            if (ISBITMASK(0x000000ff,0x00000000,0x00000000,0x00000000))
            {
                return DXGI_FORMAT_R8_UNORM; // D3DX10/11 writes this out as DX10 extension
            }

            // No DXGI format maps to ISBITMASK(0x0f,0x00,0x00,0xf0) aka D3DFMT_A4L4
        }

        if (16 == ddpf.RGBBitCount)
        {
            if (ISBITMASK(0x0000ffff,0x00000000,0x00000000,0x00000000))
            {
                return DXGI_FORMAT_R16_UNORM; // D3DX10/11 writes this out as DX10 extension
            }
            if (ISBITMASK(0x000000ff,0x00000000,0x00000000,0x0000ff00))
            {
                return DXGI_FORMAT_R8G8_UNORM; // D3DX10/11 writes this out as DX10 extension
            }
        }
    }
    else if (ddpf.flags & DDS_ALPHA)
    {
        if (8 == ddpf.RGBBitCount)
        {
            return DXGI_FORMAT_A8_UNORM;
        }
    }
    else if (ddpf.flags & DDS_FOURCC)
    {
        if (MAKEFOURCC( 'D', 'X', 'T', '1' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC1_UNORM;
        }
        if (MAKEFOURCC( 'D', 'X', 'T', '3' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC2_UNORM;
        }
        if (MAKEFOURCC( 'D', 'X', 'T', '5' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC3_UNORM;
        }

        // While pre-multiplied alpha isn't directly supported by the DXGI formats,
        // they are basically the same as these BC formats so they can be mapped
        if (MAKEFOURCC( 'D', 'X', 'T', '2' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC2_UNORM;
        }
        if (MAKEFOURCC( 'D', 'X', 'T', '4' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC3_UNORM;
        }

        if (MAKEFOURCC( 'A', 'T', 'I', '1' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC4_UNORM;
        }
        if (MAKEFOURCC( 'B', 'C', '4', 'U' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC4_UNORM;
        }
        if (MAKEFOURCC( 'B', 'C', '4', 'S' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC4_SNORM;
        }

        if (MAKEFOURCC( 'A', 'T', 'I', '2' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC5_UNORM;
        }
        if (MAKEFOURCC( 'B', 'C', '5', 'U' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC5_UNORM;
        }
        if (MAKEFOURCC( 'B', 'C', '5', 'S' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_BC5_SNORM;
        }

        // BC6H and BC7 are written using the "DX10" extended header

        if (MAKEFOURCC( 'R', 'G', 'B', 'G' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_R8G8_B8G8_UNORM;
        }
        if (MAKEFOURCC( 'G', 'R', 'G', 'B' ) == ddpf.fourCC)
        {
            return DXGI_FORMAT_G8R8_G8B8_UNORM;
        }

        if (MAKEFOURCC('Y','U','Y','2') == ddpf.fourCC)
        {
            return DXGI_FORMAT_YUY2;
        }

        // Check for D3DFORMAT enums being set here
        switch( ddpf.fourCC )
        {
        case 36: // D3DFMT_A16B16G16R16
            return DXGI_FORMAT_R16G16B16A16_UNORM;

        case 110: // D3DFMT_Q16W16V16U16
            return DXGI_FORMAT_R16G16B16A16_SNORM;

        case 111: // D3DFMT_R16F
            return DXGI_FORMAT_R16_FLOAT;

        case 112: // D3DFMT_G16R16F
            return DXGI_FORMAT_R16G16_FLOAT;

        case 113: // D3DFMT_A16B16G16R16F
            return DXGI_FORMAT_R16G16B16A16_FLOAT;

        case 114: // D3DFMT_R32F
            return DXGI_FORMAT_R32_FLOAT;

        case 115: // D3DFMT_G32R32F
            return DXGI_FORMAT_R32G32_FLOAT;

        case 116: // D3DFMT_A32B32G32R32F
            return DXGI_FORMAT_R32G32B32A32_FLOAT;
        }
    }

    return DXGI_FORMAT_UNKNOWN;
}


//--------------------------------------------------------------------------------------
static DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format )
{
    switch( format )
    {
    case DXGI_FORMAT_R8G8B8A8_UNORM:
        return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB;

    case DXGI_FORMAT_BC1_UNORM:
        return DXGI_FORMAT_BC1_UNORM_SRGB;

    case DXGI_FORMAT_BC2_UNORM:
        return DXGI_FORMAT_BC2_UNORM_SRGB;

    case DXGI_FORMAT_BC3_UNORM:
        return DXGI_FORMAT_BC3_UNORM_SRGB;

    case DXGI_FORMAT_B8G8R8A8_UNORM:
        return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;

    case DXGI_FORMAT_B8G8R8X8_UNORM:
        return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB;

    case DXGI_FORMAT_BC7_UNORM:
        return DXGI_FORMAT_BC7_UNORM_SRGB;

    default:
        return format;
    }
}


//--------------------------------------------------------------------------------------
static HRESULT FillInitData( _In_ size_t width,
                             _In_ size_t height,
                             _In_ size_t depth,
                             _In_ size_t mipCount,
                             _In_ size_t arraySize,
                             _In_ DXGI_FORMAT format,
                             _In_ size_t maxsize,
                             _In_ size_t bitSize,
                             _In_reads_bytes_(bitSize) const uint8_t* bitData,
                             _Out_ size_t& twidth,
                             _Out_ size_t& theight,
                             _Out_ size_t& tdepth,
                             _Out_ size_t& skipMip,
                             _Out_writes_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData )
{
    if ( !bitData || !initData )
    {
        return E_POINTER;
    }

    skipMip = 0;
    twidth = 0;
    theight = 0;
    tdepth = 0;

    size_t NumBytes = 0;
    size_t RowBytes = 0;
    const uint8_t* pSrcBits = bitData;
    const uint8_t* pEndBits = bitData + bitSize;

    size_t index = 0;
    for( size_t j = 0; j < arraySize; j++ )
    {
        size_t w = width;
        size_t h = height;
        size_t d = depth;
        for( size_t i = 0; i < mipCount; i++ )
        {
            GetSurfaceInfo( w,
                            h,
                            format,
                            &NumBytes,
                            &RowBytes,
                            nullptr
                          );

            if ( (mipCount <= 1) || !maxsize || (w <= maxsize && h <= maxsize && d <= maxsize) )
            {
                if ( !twidth )
                {
                    twidth = w;
                    theight = h;
                    tdepth = d;
                }

                assert(index < mipCount * arraySize);
                _Analysis_assume_(index < mipCount * arraySize);
                initData[index].pSysMem = ( const void* )pSrcBits;
                initData[index].SysMemPitch = static_cast<UINT>( RowBytes );
                initData[index].SysMemSlicePitch = static_cast<UINT>( NumBytes );
                ++index;
            }
            else if ( !j )
            {
                // Count number of skipped mipmaps (first item only)
                ++skipMip;
            }

            if (pSrcBits + (NumBytes*d) > pEndBits)
            {
                return HRESULT_FROM_WIN32( ERROR_HANDLE_EOF );
            }
  
            pSrcBits += NumBytes * d;

            w = w >> 1;
            h = h >> 1;
            d = d >> 1;
            if (w == 0)
            {
                w = 1;
            }
            if (h == 0)
            {
                h = 1;
            }
            if (d == 0)
            {
                d = 1;
            }
        }
    }

    return (index > 0) ? S_OK : E_FAIL;
}


//--------------------------------------------------------------------------------------
static HRESULT CreateD3DResources( _In_ ID3D11Device* d3dDevice,
                                   _In_ uint32_t resDim,
                                   _In_ size_t width,
                                   _In_ size_t height,
                                   _In_ size_t depth,
                                   _In_ size_t mipCount,
                                   _In_ size_t arraySize,
                                   _In_ DXGI_FORMAT format,
                                   _In_ D3D11_USAGE usage,
                                   _In_ unsigned int bindFlags,
                                   _In_ unsigned int cpuAccessFlags,
                                   _In_ unsigned int miscFlags,
                                   _In_ bool forceSRGB,
                                   _In_ bool isCubeMap,
                                   _In_reads_opt_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData,
                                   _Outptr_opt_ ID3D11Resource** texture,
                                   _Outptr_opt_ ID3D11ShaderResourceView** textureView )
{
    if ( !d3dDevice )
        return E_POINTER;

    HRESULT hr = E_FAIL;

    if ( forceSRGB )
    {
        format = MakeSRGB( format );
    }

    switch ( resDim ) 
    {
        case D3D11_RESOURCE_DIMENSION_TEXTURE1D:
            {
                D3D11_TEXTURE1D_DESC desc;
                desc.Width = static_cast<UINT>( width ); 
                desc.MipLevels = static_cast<UINT>( mipCount );
                desc.ArraySize = static_cast<UINT>( arraySize );
                desc.Format = format;
                desc.Usage = usage;
                desc.BindFlags = bindFlags;
                desc.CPUAccessFlags = cpuAccessFlags;
                desc.MiscFlags = miscFlags & ~D3D11_RESOURCE_MISC_TEXTURECUBE;

                ID3D11Texture1D* tex = nullptr;
                hr = d3dDevice->CreateTexture1D( &desc,
                                                 initData,
                                                 &tex
                                               );
                if (SUCCEEDED( hr ) && tex != 0)
                {
                    if (textureView != 0)
                    {
                        D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc;
                        memset( &SRVDesc, 0, sizeof( SRVDesc ) );
                        SRVDesc.Format = format;

                        if (arraySize > 1)
                        {
                            SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE1DARRAY;
                            SRVDesc.Texture1DArray.MipLevels = (!mipCount) ? -1 : desc.MipLevels;
                            SRVDesc.Texture1DArray.ArraySize = static_cast<UINT>( arraySize );
                        }
                        else
                        {
                            SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE1D;
                            SRVDesc.Texture1D.MipLevels = (!mipCount) ? -1 : desc.MipLevels;
                        }

                        hr = d3dDevice->CreateShaderResourceView( tex,
                                                                  &SRVDesc,
                                                                  textureView
                                                                );
                        if ( FAILED(hr) )
                        {
                            tex->Release();
                            return hr;
                        }
                    }

                    if (texture != 0)
                    {
                        *texture = tex;
                    }
                    else
                    {
                        SetDebugObjectName(tex, "DDSTextureLoader");
                        tex->Release();
                    }
                }
            }
           break;

        case D3D11_RESOURCE_DIMENSION_TEXTURE2D:
            {
                D3D11_TEXTURE2D_DESC desc;
                desc.Width = static_cast<UINT>( width );
                desc.Height = static_cast<UINT>( height );
                desc.MipLevels = static_cast<UINT>( mipCount );
                desc.ArraySize = static_cast<UINT>( arraySize );
                desc.Format = format;
                desc.SampleDesc.Count = 1;
                desc.SampleDesc.Quality = 0;
                desc.Usage = usage;
                desc.BindFlags = bindFlags;
                desc.CPUAccessFlags = cpuAccessFlags;
                if ( isCubeMap )
                {
                    desc.MiscFlags = miscFlags | D3D11_RESOURCE_MISC_TEXTURECUBE;
                }
                else
                {
                    desc.MiscFlags = miscFlags & ~D3D11_RESOURCE_MISC_TEXTURECUBE;
                }

                ID3D11Texture2D* tex = nullptr;
                hr = d3dDevice->CreateTexture2D( &desc,
                                                 initData,
                                                 &tex
                                               );
                if (SUCCEEDED( hr ) && tex != 0)
                {
                    if (textureView != 0)
                    {
                        D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc;
                        memset( &SRVDesc, 0, sizeof( SRVDesc ) );
                        SRVDesc.Format = format;

                        if ( isCubeMap )
                        {
                            if (arraySize > 6)
                            {
                                SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBEARRAY;
                                SRVDesc.TextureCubeArray.MipLevels = (!mipCount) ? -1 : desc.MipLevels;

                                // Earlier we set arraySize to (NumCubes * 6)
                                SRVDesc.TextureCubeArray.NumCubes = static_cast<UINT>( arraySize / 6 );
                            }
                            else
                            {
                                SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBE;
                                SRVDesc.TextureCube.MipLevels = (!mipCount) ? -1 : desc.MipLevels;
                            }
                        }
                        else if (arraySize > 1)
                        {
                            SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY;
                            SRVDesc.Texture2DArray.MipLevels = (!mipCount) ? -1 : desc.MipLevels;
                            SRVDesc.Texture2DArray.ArraySize = static_cast<UINT>( arraySize );
                        }
                        else
                        {
                            SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
                            SRVDesc.Texture2D.MipLevels = (!mipCount) ? -1 : desc.MipLevels;
                        }

                        hr = d3dDevice->CreateShaderResourceView( tex,
                                                                  &SRVDesc,
                                                                  textureView
                                                                );
                        if ( FAILED(hr) )
                        {
                            tex->Release();
                            return hr;
                        }
                    }

                    if (texture != 0)
                    {
                        *texture = tex;
                    }
                    else
                    {
                        SetDebugObjectName(tex, "DDSTextureLoader");
                        tex->Release();
                    }
                }
            }
            break;

        case D3D11_RESOURCE_DIMENSION_TEXTURE3D:
            {
                D3D11_TEXTURE3D_DESC desc;
                desc.Width = static_cast<UINT>( width );
                desc.Height = static_cast<UINT>( height );
                desc.Depth = static_cast<UINT>( depth );
                desc.MipLevels = static_cast<UINT>( mipCount );
                desc.Format = format;
                desc.Usage = usage;
                desc.BindFlags = bindFlags;
                desc.CPUAccessFlags = cpuAccessFlags;
                desc.MiscFlags = miscFlags & ~D3D11_RESOURCE_MISC_TEXTURECUBE;

                ID3D11Texture3D* tex = nullptr;
                hr = d3dDevice->CreateTexture3D( &desc,
                                                 initData,
                                                 &tex
                                               );
                if (SUCCEEDED( hr ) && tex != 0)
                {
                    if (textureView != 0)
                    {
                        D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc;
                        memset( &SRVDesc, 0, sizeof( SRVDesc ) );
                        SRVDesc.Format = format;

                        SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D;
                        SRVDesc.Texture3D.MipLevels = (!mipCount) ? -1 : desc.MipLevels;

                        hr = d3dDevice->CreateShaderResourceView( tex,
                                                                  &SRVDesc,
                                                                  textureView
                                                                );
                        if ( FAILED(hr) )
                        {
                            tex->Release();
                            return hr;
                        }
                    }

                    if (texture != 0)
                    {
                        *texture = tex;
                    }
                    else
                    {
                        SetDebugObjectName(tex, "DDSTextureLoader");
                        tex->Release();
                    }
                }
            }
            break; 
    }

    return hr;
}


//--------------------------------------------------------------------------------------
static HRESULT CreateTextureFromDDS( _In_ ID3D11Device* d3dDevice,
                                     _In_opt_ ID3D11DeviceContext* d3dContext,
                                     _In_ const DDS_HEADER* header,
                                     _In_reads_bytes_(bitSize) const uint8_t* bitData,
                                     _In_ size_t bitSize,
                                     _In_ size_t maxsize,
                                     _In_ D3D11_USAGE usage,
                                     _In_ unsigned int bindFlags,
                                     _In_ unsigned int cpuAccessFlags,
                                     _In_ unsigned int miscFlags,
                                     _In_ bool forceSRGB,
                                     _Outptr_opt_ ID3D11Resource** texture,
                                     _Outptr_opt_ ID3D11ShaderResourceView** textureView )
{
    HRESULT hr = S_OK;

    UINT width = header->width;
    UINT height = header->height;
    UINT depth = header->depth;

    uint32_t resDim = D3D11_RESOURCE_DIMENSION_UNKNOWN;
    UINT arraySize = 1;
    DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN;
    bool isCubeMap = false;

    size_t mipCount = header->mipMapCount;
    if (0 == mipCount)
    {
        mipCount = 1;
    }

    if ((header->ddspf.flags & DDS_FOURCC) &&
        (MAKEFOURCC( 'D', 'X', '1', '0' ) == header->ddspf.fourCC ))
    {
        auto d3d10ext = reinterpret_cast<const DDS_HEADER_DXT10*>( (const char*)header + sizeof(DDS_HEADER) );

        arraySize = d3d10ext->arraySize;
        if (arraySize == 0)
        {
           return HRESULT_FROM_WIN32( ERROR_INVALID_DATA );
        }

        switch( d3d10ext->dxgiFormat )
        {
        case DXGI_FORMAT_AI44:
        case DXGI_FORMAT_IA44:
        case DXGI_FORMAT_P8:
        case DXGI_FORMAT_A8P8:
            return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );

        default:
            if ( BitsPerPixel( d3d10ext->dxgiFormat ) == 0 )
            {
                return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
            }
        }
           
        format = d3d10ext->dxgiFormat;

        switch ( d3d10ext->resourceDimension )
        {
        case D3D11_RESOURCE_DIMENSION_TEXTURE1D:
            // D3DX writes 1D textures with a fixed Height of 1
            if ((header->flags & DDS_HEIGHT) && height != 1)
            {
                return HRESULT_FROM_WIN32( ERROR_INVALID_DATA );
            }
            height = depth = 1;
            break;

        case D3D11_RESOURCE_DIMENSION_TEXTURE2D:
            if (d3d10ext->miscFlag & D3D11_RESOURCE_MISC_TEXTURECUBE)
            {
                arraySize *= 6;
                isCubeMap = true;
            }
            depth = 1;
            break;

        case D3D11_RESOURCE_DIMENSION_TEXTURE3D:
            if (!(header->flags & DDS_HEADER_FLAGS_VOLUME))
            {
                return HRESULT_FROM_WIN32( ERROR_INVALID_DATA );
            }

            if (arraySize > 1)
            {
                return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
            }
            break;

        default:
            return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
        }

        resDim = d3d10ext->resourceDimension;
    }
    else
    {
        format = GetDXGIFormat( header->ddspf );

        if (format == DXGI_FORMAT_UNKNOWN)
        {
           return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
        }

        if (header->flags & DDS_HEADER_FLAGS_VOLUME)
        {
            resDim = D3D11_RESOURCE_DIMENSION_TEXTURE3D;
        }
        else 
        {
            if (header->caps2 & DDS_CUBEMAP)
            {
                // We require all six faces to be defined
                if ((header->caps2 & DDS_CUBEMAP_ALLFACES ) != DDS_CUBEMAP_ALLFACES)
                {
                    return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
                }

                arraySize = 6;
                isCubeMap = true;
            }

            depth = 1;
            resDim = D3D11_RESOURCE_DIMENSION_TEXTURE2D;

            // Note there's no way for a legacy Direct3D 9 DDS to express a '1D' texture
        }

        assert( BitsPerPixel( format ) != 0 );
    }

    // Bound sizes (for security purposes we don't trust DDS file metadata larger than the D3D 11.x hardware requirements)
    if (mipCount > D3D11_REQ_MIP_LEVELS)
    {
        return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
    }

    switch ( resDim )
    {
    case D3D11_RESOURCE_DIMENSION_TEXTURE1D:
        if ((arraySize > D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION) ||
            (width > D3D11_REQ_TEXTURE1D_U_DIMENSION) )
        {
            return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
        }
        break;

    case D3D11_RESOURCE_DIMENSION_TEXTURE2D:
        if ( isCubeMap )
        {
            // This is the right bound because we set arraySize to (NumCubes*6) above
            if ((arraySize > D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION) ||
                (width > D3D11_REQ_TEXTURECUBE_DIMENSION) ||
                (height > D3D11_REQ_TEXTURECUBE_DIMENSION))
            {
                return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
            }
        }
        else if ((arraySize > D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION) ||
                    (width > D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION) ||
                    (height > D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION))
        {
            return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
        }
        break;

    case D3D11_RESOURCE_DIMENSION_TEXTURE3D:
        if ((arraySize > 1) ||
            (width > D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION) ||
            (height > D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION) ||
            (depth > D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION) )
        {
            return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
        }
        break;

    default:
        return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
    }

    bool autogen = false;
    if ( mipCount == 1 && d3dContext != 0 && textureView != 0 ) // Must have context and shader-view to auto generate mipmaps
    {
        // See if format is supported for auto-gen mipmaps (varies by feature level)
        UINT fmtSupport = 0;
        hr = d3dDevice->CheckFormatSupport( format, &fmtSupport );
        if ( SUCCEEDED(hr) && ( fmtSupport & D3D11_FORMAT_SUPPORT_MIP_AUTOGEN ) )
        {
            // 10level9 feature levels do not support auto-gen mipgen for volume textures
            if ( ( resDim != D3D11_RESOURCE_DIMENSION_TEXTURE3D )
                 || ( d3dDevice->GetFeatureLevel() >= D3D_FEATURE_LEVEL_10_0 ) )
            {
                autogen = true;
            }
        }
    }

    if ( autogen )
    {
        // Create texture with auto-generated mipmaps
        ID3D11Resource* tex = nullptr;
        hr = CreateD3DResources( d3dDevice, resDim, width, height, depth, 0, arraySize,
                                 format, usage,
                                 bindFlags | D3D11_BIND_RENDER_TARGET,
                                 cpuAccessFlags,
                                 miscFlags | D3D11_RESOURCE_MISC_GENERATE_MIPS, forceSRGB,
                                 isCubeMap, nullptr, &tex, textureView );
        if ( SUCCEEDED(hr) )
        {
            size_t numBytes = 0;
            size_t rowBytes = 0;
            GetSurfaceInfo( width, height, format, &numBytes, &rowBytes, nullptr );

            if ( numBytes > bitSize )
            {
                (*textureView)->Release();
                *textureView = nullptr;
                tex->Release();
                return HRESULT_FROM_WIN32( ERROR_HANDLE_EOF );
            }

            D3D11_SHADER_RESOURCE_VIEW_DESC desc;
            (*textureView)->GetDesc( &desc );

            UINT mipLevels = 1;

            switch( desc.ViewDimension )
            {
            case D3D_SRV_DIMENSION_TEXTURE1D:       mipLevels = desc.Texture1D.MipLevels; break;
            case D3D_SRV_DIMENSION_TEXTURE1DARRAY:  mipLevels = desc.Texture1DArray.MipLevels; break;
            case D3D_SRV_DIMENSION_TEXTURE2D:       mipLevels = desc.Texture2D.MipLevels; break;
            case D3D_SRV_DIMENSION_TEXTURE2DARRAY:  mipLevels = desc.Texture2DArray.MipLevels; break;
            case D3D_SRV_DIMENSION_TEXTURECUBE:     mipLevels = desc.TextureCube.MipLevels; break;
            case D3D_SRV_DIMENSION_TEXTURECUBEARRAY:mipLevels = desc.TextureCubeArray.MipLevels; break;
            case D3D_SRV_DIMENSION_TEXTURE3D:       mipLevels = desc.Texture3D.MipLevels; break;
            default:
                (*textureView)->Release();
                *textureView = nullptr;
                tex->Release();
                return E_UNEXPECTED;
            }

            if ( arraySize > 1 )
            {
                const uint8_t* pSrcBits = bitData;
                const uint8_t* pEndBits = bitData + bitSize;
                for( UINT item = 0; item < arraySize; ++item )
                {
                    if ( (pSrcBits + numBytes) > pEndBits )
                    {
                        (*textureView)->Release();
                        *textureView = nullptr;
                        tex->Release();
                        return HRESULT_FROM_WIN32( ERROR_HANDLE_EOF );
                    }

                    UINT res = D3D11CalcSubresource( 0, item, mipLevels );
                    d3dContext->UpdateSubresource( tex, res, nullptr, pSrcBits, static_cast<UINT>(rowBytes), static_cast<UINT>(numBytes) );
                    pSrcBits += numBytes;
                }
            }
            else
            {
                d3dContext->UpdateSubresource( tex, 0, nullptr, bitData, static_cast<UINT>(rowBytes), static_cast<UINT>(numBytes) );
            }

            d3dContext->GenerateMips( *textureView );

            if ( texture )
            {
                *texture = tex;
            }
            else
            {
                tex->Release();
            }
        }
    }
    else
    {
        // Create the texture
        std::unique_ptr<D3D11_SUBRESOURCE_DATA[]> initData( new (std::nothrow) D3D11_SUBRESOURCE_DATA[ mipCount * arraySize ] );
        if ( !initData )
        {
            return E_OUTOFMEMORY;
        }

        size_t skipMip = 0;
        size_t twidth = 0;
        size_t theight = 0;
        size_t tdepth = 0;
        hr = FillInitData( width, height, depth, mipCount, arraySize, format, maxsize, bitSize, bitData,
                           twidth, theight, tdepth, skipMip, initData.get() );

        if ( SUCCEEDED(hr) )
        {
            hr = CreateD3DResources( d3dDevice, resDim, twidth, theight, tdepth, mipCount - skipMip, arraySize,
                                     format, usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB,
                                     isCubeMap, initData.get(), texture, textureView );

            if ( FAILED(hr) && !maxsize && (mipCount > 1) )
            {
                // Retry with a maxsize determined by feature level
                switch( d3dDevice->GetFeatureLevel() )
                {
                case D3D_FEATURE_LEVEL_9_1:
                case D3D_FEATURE_LEVEL_9_2:
                    if ( isCubeMap )
                    {
                        maxsize = 512 /*D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION*/;
                    }
                    else
                    {
                        maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D)
                                  ? 256 /*D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/
                                  : 2048 /*D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION*/;
                    }
                    break;

                case D3D_FEATURE_LEVEL_9_3:
                    maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D)
                              ? 256 /*D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/
                              : 4096 /*D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION*/;
                    break;

                default: // D3D_FEATURE_LEVEL_10_0 & D3D_FEATURE_LEVEL_10_1
                    maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D)
                              ? 2048 /*D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/
                              : 8192 /*D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION*/;
                    break;
                }

                hr = FillInitData( width, height, depth, mipCount, arraySize, format, maxsize, bitSize, bitData,
                                   twidth, theight, tdepth, skipMip, initData.get() );
                if ( SUCCEEDED(hr) )
                {
                    hr = CreateD3DResources( d3dDevice, resDim, twidth, theight, tdepth, mipCount - skipMip, arraySize,
                                             format, usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB,
                                             isCubeMap, initData.get(), texture, textureView );
                }
            }
        }
    }

    return hr;
}


//--------------------------------------------------------------------------------------
static DDS_ALPHA_MODE GetAlphaMode( _In_ const DDS_HEADER* header )
{
    if ( header->ddspf.flags & DDS_FOURCC )
    {
        if ( MAKEFOURCC( 'D', 'X', '1', '0' ) == header->ddspf.fourCC )
        {
            auto d3d10ext = reinterpret_cast<const DDS_HEADER_DXT10*>( (const char*)header + sizeof(DDS_HEADER) );
            auto mode = static_cast<DDS_ALPHA_MODE>( d3d10ext->miscFlags2 & DDS_MISC_FLAGS2_ALPHA_MODE_MASK );
            switch( mode )
            {
            case DDS_ALPHA_MODE_STRAIGHT:
            case DDS_ALPHA_MODE_PREMULTIPLIED:
            case DDS_ALPHA_MODE_OPAQUE:
            case DDS_ALPHA_MODE_CUSTOM:
                return mode;
            }
        }
        else if ( ( MAKEFOURCC( 'D', 'X', 'T', '2' ) == header->ddspf.fourCC )
                  || ( MAKEFOURCC( 'D', 'X', 'T', '4' ) == header->ddspf.fourCC ) )
        {
            return DDS_ALPHA_MODE_PREMULTIPLIED;
        }
    }

    return DDS_ALPHA_MODE_UNKNOWN;
}


//--------------------------------------------------------------------------------------
_Use_decl_annotations_
HRESULT DirectX::CreateDDSTextureFromMemory( ID3D11Device* d3dDevice,
                                             const uint8_t* ddsData,
                                             size_t ddsDataSize,
                                             ID3D11Resource** texture,
                                             ID3D11ShaderResourceView** textureView,
                                             size_t maxsize,
                                             DDS_ALPHA_MODE* alphaMode )
{
    return CreateDDSTextureFromMemoryEx( d3dDevice, nullptr, ddsData, ddsDataSize, maxsize,
                                         D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false,
                                         texture, textureView, alphaMode );
}

_Use_decl_annotations_
HRESULT DirectX::CreateDDSTextureFromMemory( ID3D11Device* d3dDevice,
                                             ID3D11DeviceContext* d3dContext,
                                             const uint8_t* ddsData,
                                             size_t ddsDataSize,
                                             ID3D11Resource** texture,
                                             ID3D11ShaderResourceView** textureView,
                                             size_t maxsize,
                                             DDS_ALPHA_MODE* alphaMode )
{
    return CreateDDSTextureFromMemoryEx( d3dDevice, d3dContext, ddsData, ddsDataSize, maxsize,
                                         D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false,
                                         texture, textureView, alphaMode );
}

_Use_decl_annotations_
HRESULT DirectX::CreateDDSTextureFromMemoryEx( ID3D11Device* d3dDevice,
                                               const uint8_t* ddsData,
                                               size_t ddsDataSize,
                                               size_t maxsize,
                                               D3D11_USAGE usage,
                                               unsigned int bindFlags,
                                               unsigned int cpuAccessFlags,
                                               unsigned int miscFlags,
                                               bool forceSRGB,
                                               ID3D11Resource** texture,
                                               ID3D11ShaderResourceView** textureView,
                                               DDS_ALPHA_MODE* alphaMode )
{
    return CreateDDSTextureFromMemoryEx( d3dDevice, nullptr, ddsData, ddsDataSize, maxsize,
                                         usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB,
                                         texture, textureView, alphaMode );
}

_Use_decl_annotations_
HRESULT DirectX::CreateDDSTextureFromMemoryEx( ID3D11Device* d3dDevice,
                                               ID3D11DeviceContext* d3dContext,
                                               const uint8_t* ddsData,
                                               size_t ddsDataSize,
                                               size_t maxsize,
                                               D3D11_USAGE usage,
                                               unsigned int bindFlags,
                                               unsigned int cpuAccessFlags,
                                               unsigned int miscFlags,
                                               bool forceSRGB,
                                               ID3D11Resource** texture,
                                               ID3D11ShaderResourceView** textureView,
                                               DDS_ALPHA_MODE* alphaMode )
{
    if ( texture )
    {
        *texture = nullptr;
    }
    if ( textureView )
    {
        *textureView = nullptr;
    }
    if ( alphaMode )
    {
        *alphaMode = DDS_ALPHA_MODE_UNKNOWN;
    }

    if (!d3dDevice || !ddsData || (!texture && !textureView))
    {
        return E_INVALIDARG;
    }

    // Validate DDS file in memory
    if (ddsDataSize < (sizeof(uint32_t) + sizeof(DDS_HEADER)))
    {
        return E_FAIL;
    }

    uint32_t dwMagicNumber = *( const uint32_t* )( ddsData );
    if (dwMagicNumber != DDS_MAGIC)
    {
        return E_FAIL;
    }

    auto header = reinterpret_cast<const DDS_HEADER*>( ddsData + sizeof( uint32_t ) );

    // Verify header to validate DDS file
    if (header->size != sizeof(DDS_HEADER) ||
        header->ddspf.size != sizeof(DDS_PIXELFORMAT))
    {
        return E_FAIL;
    }

    // Check for DX10 extension
    bool bDXT10Header = false;
    if ((header->ddspf.flags & DDS_FOURCC) &&
        (MAKEFOURCC( 'D', 'X', '1', '0' ) == header->ddspf.fourCC) )
    {
        // Must be long enough for both headers and magic value
        if (ddsDataSize < (sizeof(DDS_HEADER) + sizeof(uint32_t) + sizeof(DDS_HEADER_DXT10)))
        {
            return E_FAIL;
        }

        bDXT10Header = true;
    }

    ptrdiff_t offset = sizeof( uint32_t )
                       + sizeof( DDS_HEADER )
                       + (bDXT10Header ? sizeof( DDS_HEADER_DXT10 ) : 0);

    HRESULT hr = CreateTextureFromDDS( d3dDevice, d3dContext, header,
                                       ddsData + offset, ddsDataSize - offset, maxsize,
                                       usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB,
                                       texture, textureView );
    if ( SUCCEEDED(hr) )
    {
        if (texture != 0 && *texture != 0)
        {
            SetDebugObjectName(*texture, "DDSTextureLoader");
        }

        if (textureView != 0 && *textureView != 0)
        {
            SetDebugObjectName(*textureView, "DDSTextureLoader");
        }

        if ( alphaMode )
            *alphaMode = GetAlphaMode( header );
    }

    return hr;
}

//--------------------------------------------------------------------------------------
_Use_decl_annotations_
HRESULT DirectX::CreateDDSTextureFromFile( ID3D11Device* d3dDevice,
                                           const wchar_t* fileName,
                                           ID3D11Resource** texture,
                                           ID3D11ShaderResourceView** textureView,
                                           size_t maxsize,
                                           DDS_ALPHA_MODE* alphaMode )
{
    return CreateDDSTextureFromFileEx( d3dDevice, nullptr, fileName, maxsize,
                                       D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false,
                                       texture, textureView, alphaMode );
}

_Use_decl_annotations_
HRESULT DirectX::CreateDDSTextureFromFile( ID3D11Device* d3dDevice,
                                           ID3D11DeviceContext* d3dContext,
                                           const wchar_t* fileName,
                                           ID3D11Resource** texture,
                                           ID3D11ShaderResourceView** textureView,
                                           size_t maxsize,
                                           DDS_ALPHA_MODE* alphaMode )
{
    return CreateDDSTextureFromFileEx( d3dDevice, d3dContext, fileName, maxsize,
                                       D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false,
                                       texture, textureView, alphaMode );
}

_Use_decl_annotations_
HRESULT DirectX::CreateDDSTextureFromFileEx( ID3D11Device* d3dDevice,
                                             const wchar_t* fileName,
                                             size_t maxsize,
                                             D3D11_USAGE usage,
                                             unsigned int bindFlags,
                                             unsigned int cpuAccessFlags,
                                             unsigned int miscFlags,
                                             bool forceSRGB,
                                             ID3D11Resource** texture,
                                             ID3D11ShaderResourceView** textureView,
                                             DDS_ALPHA_MODE* alphaMode )
{
    return CreateDDSTextureFromFileEx( d3dDevice, nullptr, fileName, maxsize,
                                       usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB,
                                       texture, textureView, alphaMode );
}

_Use_decl_annotations_
HRESULT DirectX::CreateDDSTextureFromFileEx( ID3D11Device* d3dDevice,
                                             ID3D11DeviceContext* d3dContext,
                                             const wchar_t* fileName,
                                             size_t maxsize,
                                             D3D11_USAGE usage,
                                             unsigned int bindFlags,
                                             unsigned int cpuAccessFlags,
                                             unsigned int miscFlags,
                                             bool forceSRGB,
                                             ID3D11Resource** texture,
                                             ID3D11ShaderResourceView** textureView,
                                             DDS_ALPHA_MODE* alphaMode )
{
    if ( texture )
    {
        *texture = nullptr;
    }
    if ( textureView )
    {
        *textureView = nullptr;
    }
    if ( alphaMode )
    {
        *alphaMode = DDS_ALPHA_MODE_UNKNOWN;
    }

    if (!d3dDevice || !fileName || (!texture && !textureView))
    {
        return E_INVALIDARG;
    }

    DDS_HEADER* header = nullptr;
    uint8_t* bitData = nullptr;
    size_t bitSize = 0;

    std::unique_ptr<uint8_t[]> ddsData;
    HRESULT hr = LoadTextureDataFromFile( fileName,
                                          ddsData,
                                          &header,
                                          &bitData,
                                          &bitSize
                                        );
    if (FAILED(hr))
    {
        return hr;
    }

    hr = CreateTextureFromDDS( d3dDevice, d3dContext, header,
                               bitData, bitSize, maxsize,
                               usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB,
                               texture, textureView );

    if ( SUCCEEDED(hr) )
    {
#if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) )
        if (texture != 0 || textureView != 0)
        {
            CHAR strFileA[MAX_PATH];
            int result = WideCharToMultiByte( CP_ACP,
                                              WC_NO_BEST_FIT_CHARS,
                                              fileName,
                                              -1,
                                              strFileA,
                                              MAX_PATH,
                                              nullptr,
                                              FALSE
                               );
            if ( result > 0 )
            {
                const CHAR* pstrName = strrchr( strFileA, '\\' );
                if (!pstrName)
                {
                    pstrName = strFileA;
                }
                else
                {
                    pstrName++;
                }

                if (texture != 0 && *texture != 0)
                {
                    (*texture)->SetPrivateData( WKPDID_D3DDebugObjectName,
                                                static_cast<UINT>( strnlen_s(pstrName, MAX_PATH) ),
                                                pstrName
                                              );
                }

                if (textureView != 0 && *textureView != 0 )
                {
                    (*textureView)->SetPrivateData( WKPDID_D3DDebugObjectName,
                                                    static_cast<UINT>( strnlen_s(pstrName, MAX_PATH) ),
                                                    pstrName
                                                  );
                }
            }
        }
#endif

        if ( alphaMode )
            *alphaMode = GetAlphaMode( header );
    }

    return hr;
}


================================================
FILE: 3rdParty/DirectXTex/DDSTextureLoader/DDSTextureLoader.h
================================================
//--------------------------------------------------------------------------------------
// File: DDSTextureLoader.h
//
// Functions for loading a DDS texture and creating a Direct3D 11 runtime resource for it
//
// Note these functions are useful as a light-weight runtime loader for DDS files. For
// a full-featured DDS file reader, writer, and texture processing pipeline see
// the 'Texconv' sample and the 'DirectXTex' library.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/?LinkId=248926
// http://go.microsoft.com/fwlink/?LinkId=248929
//--------------------------------------------------------------------------------------

#ifdef _MSC_VER
#pragma once
#endif

#include <d3d11_1.h>

#pragma warning(push)
#pragma warning(disable : 4005)
#include <stdint.h>
#pragma warning(pop)

#if defined(_MSC_VER) && (_MSC_VER<1610) && !defined(_In_reads_)
#define _In_reads_(exp)
#define _Out_writes_(exp)
#define _In_reads_bytes_(exp)
#define _In_reads_opt_(exp)
#define _Outptr_opt_
#endif

#ifndef _Use_decl_annotations_
#define _Use_decl_annotations_
#endif

namespace DirectX
{
    enum DDS_ALPHA_MODE
    {
        DDS_ALPHA_MODE_UNKNOWN       = 0,
        DDS_ALPHA_MODE_STRAIGHT      = 1,
        DDS_ALPHA_MODE_PREMULTIPLIED = 2,
        DDS_ALPHA_MODE_OPAQUE        = 3,
        DDS_ALPHA_MODE_CUSTOM        = 4,
    };

    // Standard version
    HRESULT CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice,
                                        _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData,
                                        _In_ size_t ddsDataSize,
                                        _Outptr_opt_ ID3D11Resource** texture,
                                        _Outptr_opt_ ID3D11ShaderResourceView** textureView,
                                        _In_ size_t maxsize = 0,
                                        _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr
                                      );

    HRESULT CreateDDSTextureFromFile( _In_ ID3D11Device* d3dDevice,
                                      _In_z_ const wchar_t* szFileName,
                                      _Outptr_opt_ ID3D11Resource** texture,
                                      _Outptr_opt_ ID3D11ShaderResourceView** textureView,
                                      _In_ size_t maxsize = 0,
                                      _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr
                                    );

    // Standard version with optional auto-gen mipmap support
    HRESULT CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice,
                                        _In_opt_ ID3D11DeviceContext* d3dContext,
                                        _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData,
                                        _In_ size_t ddsDataSize,
                                        _Outptr_opt_ ID3D11Resource** texture,
                                        _Outptr_opt_ ID3D11ShaderResourceView** textureView,
                                        _In_ size_t maxsize = 0,
                                        _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr
                                      );

    HRESULT CreateDDSTextureFromFile( _In_ ID3D11Device* d3dDevice,
                                      _In_opt_ ID3D11DeviceContext* d3dContext,
                                      _In_z_ const wchar_t* szFileName,
                                      _Outptr_opt_ ID3D11Resource** texture,
                                      _Outptr_opt_ ID3D11ShaderResourceView** textureView,
                                      _In_ size_t maxsize = 0,
                                      _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr
                                    );

    // Extended version
    HRESULT CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice,
                                          _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData,
                                          _In_ size_t ddsDataSize,
                                          _In_ size_t maxsize,
                                          _In_ D3D11_USAGE usage,
                                          _In_ unsigned int bindFlags,
                                          _In_ unsigned int cpuAccessFlags,
                                          _In_ unsigned int miscFlags,
                                          _In_ bool forceSRGB,
                                          _Outptr_opt_ ID3D11Resource** texture,
                                          _Outptr_opt_ ID3D11ShaderResourceView** textureView,
                                          _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr
                                      );

    HRESULT CreateDDSTextureFromFileEx( _In_ ID3D11Device* d3dDevice,
                                        _In_z_ const wchar_t* szFileName,
                                        _In_ size_t maxsize,
                                        _In_ D3D11_USAGE usage,
                                        _In_ unsigned int bindFlags,
                                        _In_ unsigned int cpuAccessFlags,
                                        _In_ unsigned int miscFlags,
                                        _In_ bool forceSRGB,
                                        _Outptr_opt_ ID3D11Resource** texture,
                                        _Outptr_opt_ ID3D11ShaderResourceView** textureView,
                                        _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr
                                    );

    // Extended version with optional auto-gen mipmap support
    HRESULT CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice,
                                          _In_opt_ ID3D11DeviceContext* d3dContext,
                                          _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData,
                                          _In_ size_t ddsDataSize,
                                          _In_ size_t maxsize,
                                          _In_ D3D11_USAGE usage,
                                          _In_ unsigned int bindFlags,
                                          _In_ unsigned int cpuAccessFlags,
                                          _In_ unsigned int miscFlags,
                                          _In_ bool forceSRGB,
                                          _Outptr_opt_ ID3D11Resource** texture,
                                          _Outptr_opt_ ID3D11ShaderResourceView** textureView,
                                          _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr
                                      );

    HRESULT CreateDDSTextureFromFileEx( _In_ ID3D11Device* d3dDevice,
                                        _In_opt_ ID3D11DeviceContext* d3dContext,
                                        _In_z_ const wchar_t* szFileName,
                                        _In_ size_t maxsize,
                                        _In_ D3D11_USAGE usage,
                                        _In_ unsigned int bindFlags,
                                        _In_ unsigned int cpuAccessFlags,
                                        _In_ unsigned int miscFlags,
                                        _In_ bool forceSRGB,
                                        _Outptr_opt_ ID3D11Resource** texture,
                                        _Outptr_opt_ ID3D11ShaderResourceView** textureView,
                                        _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr
                                    );
}

================================================
FILE: 3rdParty/DirectXTex/DDSView/DDSView.rc
================================================
// Microsoft Visual C++ generated resource script.
//
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define IDC_STATIC -1
#define IDI_MAIN_ICON 100
#include <WinResRc.h>

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_MAIN_ICON           ICON                    "directx.ico"

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE 
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE 
BEGIN
    "#define IDC_STATIC -1\r\n"
    "#include <winresrc.h>\r\n"
    "\r\n"
    "\r\n"
    "\0"
END

3 TEXTINCLUDE 
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

#endif    // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED



================================================
FILE: 3rdParty/DirectXTex/DDSView/DDSView_Desktop_2012.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DDSView", "DDSView_Desktop_2012.vcxproj", "{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTex", "..\DirectXTex\DirectXTex_Desktop_2012.vcxproj", "{371B9FA9-4C90-4AC6-A123-ACED756D6C77}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Win32 = Debug|Win32
		Debug|x64 = Debug|x64
		Profile|Win32 = Profile|Win32
		Profile|x64 = Profile|x64
		Release|Win32 = Release|Win32
		Release|x64 = Release|x64
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|Win32.ActiveCfg = Debug|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|Win32.Build.0 = Debug|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|x64.ActiveCfg = Debug|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|x64.Build.0 = Debug|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|Win32.ActiveCfg = Profile|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|Win32.Build.0 = Profile|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|x64.ActiveCfg = Profile|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|x64.Build.0 = Profile|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|Win32.ActiveCfg = Release|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|Win32.Build.0 = Release|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|x64.ActiveCfg = Release|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|x64.Build.0 = Release|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|Win32.ActiveCfg = Debug|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|Win32.Build.0 = Debug|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|x64.ActiveCfg = Debug|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|x64.Build.0 = Debug|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|Win32.ActiveCfg = Profile|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|Win32.Build.0 = Profile|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|x64.ActiveCfg = Profile|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|x64.Build.0 = Profile|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|Win32.ActiveCfg = Release|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|Win32.Build.0 = Release|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|x64.ActiveCfg = Release|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|x64.Build.0 = Release|x64
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
EndGlobal


================================================
FILE: 3rdParty/DirectXTex/DDSView/DDSView_Desktop_2012.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Profile|Win32">
      <Configuration>Profile</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Profile|x64">
      <Configuration>Profile</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <ProjectName>DDSView</ProjectName>
    <ProjectGuid>{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}</ProjectGuid>
    <RootNamespace>DDSView</RootNamespace>
    <Keyword>Win32Proj</Keyword>
    <VCTargetsPath Condition="'$(VCTargetsPath11)' != '' and '$(VSVersion)' == '' and $(VisualStudioVersion) == ''">$(VCTargetsPath11)</VCTargetsPath>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v110</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v110</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v110</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v110</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v110</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v110</PlatformToolset>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings" />
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <LinkIncremental>true</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
    <LinkIncremental>true</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>Disabled</Optimization>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX86</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>Disabled</Optimization>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX64</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX86</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX64</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX86</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX64</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="DDSView.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="DDSView.rc" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\DirectXTex\DirectXTex_Desktop_2012.vcxproj">
      <Project>{371b9fa9-4c90-4ac6-a123-aced756d6c77}</Project>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <None Include="ddsview.fx" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets" />
</Project>

================================================
FILE: 3rdParty/DirectXTex/DDSView/DDSView_Desktop_2012.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Filter Include="Resource Files">
      <UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
    </Filter>
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="DDSView.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="DDSView.rc">
      <Filter>Resource Files</Filter>
    </ResourceCompile>
  </ItemGroup>
  <ItemGroup>
    <None Include="ddsview.fx" />
  </ItemGroup>
</Project>

================================================
FILE: 3rdParty/DirectXTex/DDSView/DDSView_Desktop_2013.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DDSView", "DDSView_Desktop_2013.vcxproj", "{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTex", "..\DirectXTex\DirectXTex_Desktop_2013.vcxproj", "{371B9FA9-4C90-4AC6-A123-ACED756D6C77}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Win32 = Debug|Win32
		Debug|x64 = Debug|x64
		Profile|Win32 = Profile|Win32
		Profile|x64 = Profile|x64
		Release|Win32 = Release|Win32
		Release|x64 = Release|x64
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|Win32.ActiveCfg = Debug|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|Win32.Build.0 = Debug|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|x64.ActiveCfg = Debug|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|x64.Build.0 = Debug|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|Win32.ActiveCfg = Profile|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|Win32.Build.0 = Profile|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|x64.ActiveCfg = Profile|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|x64.Build.0 = Profile|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|Win32.ActiveCfg = Release|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|Win32.Build.0 = Release|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|x64.ActiveCfg = Release|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|x64.Build.0 = Release|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|Win32.ActiveCfg = Debug|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|Win32.Build.0 = Debug|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|x64.ActiveCfg = Debug|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|x64.Build.0 = Debug|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|Win32.ActiveCfg = Profile|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|Win32.Build.0 = Profile|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|x64.ActiveCfg = Profile|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|x64.Build.0 = Profile|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|Win32.ActiveCfg = Release|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|Win32.Build.0 = Release|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|x64.ActiveCfg = Release|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|x64.Build.0 = Release|x64
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
EndGlobal


================================================
FILE: 3rdParty/DirectXTex/DDSView/DDSView_Desktop_2013.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Profile|Win32">
      <Configuration>Profile</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Profile|x64">
      <Configuration>Profile</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <ProjectName>DDSView</ProjectName>
    <ProjectGuid>{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}</ProjectGuid>
    <RootNamespace>DDSView</RootNamespace>
    <Keyword>Win32Proj</Keyword>
    <VCTargetsPath Condition="'$(VCTargetsPath11)' != '' and '$(VSVersion)' == '' and $(VisualStudioVersion) == ''">$(VCTargetsPath11)</VCTargetsPath>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v120</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v120</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v120</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v120</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v120</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v120</PlatformToolset>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings" />
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <LinkIncremental>true</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
    <LinkIncremental>true</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>Disabled</Optimization>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX86</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>Disabled</Optimization>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX64</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX86</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX64</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX86</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX64</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="DDSView.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="DDSView.rc" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\DirectXTex\DirectXTex_Desktop_2013.vcxproj">
      <Project>{371b9fa9-4c90-4ac6-a123-aced756d6c77}</Project>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <None Include="ddsview.fx" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets" />
</Project>

================================================
FILE: 3rdParty/DirectXTex/DDSView/DDSView_Desktop_2013.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Filter Include="Resource Files">
      <UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
    </Filter>
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="DDSView.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="DDSView.rc">
      <Filter>Resource Files</Filter>
    </ResourceCompile>
  </ItemGroup>
  <ItemGroup>
    <None Include="ddsview.fx" />
  </ItemGroup>
</Project>

================================================
FILE: 3rdParty/DirectXTex/DDSView/DDSView_Desktop_2015.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2015
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DDSView", "DDSView_Desktop_2015.vcxproj", "{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTex", "..\DirectXTex\DirectXTex_Desktop_2015.vcxproj", "{371B9FA9-4C90-4AC6-A123-ACED756D6C77}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Win32 = Debug|Win32
		Debug|x64 = Debug|x64
		Profile|Win32 = Profile|Win32
		Profile|x64 = Profile|x64
		Release|Win32 = Release|Win32
		Release|x64 = Release|x64
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|Win32.ActiveCfg = Debug|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|Win32.Build.0 = Debug|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|x64.ActiveCfg = Debug|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Debug|x64.Build.0 = Debug|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|Win32.ActiveCfg = Profile|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|Win32.Build.0 = Profile|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|x64.ActiveCfg = Profile|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Profile|x64.Build.0 = Profile|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|Win32.ActiveCfg = Release|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|Win32.Build.0 = Release|Win32
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|x64.ActiveCfg = Release|x64
		{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}.Release|x64.Build.0 = Release|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|Win32.ActiveCfg = Debug|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|Win32.Build.0 = Debug|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|x64.ActiveCfg = Debug|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Debug|x64.Build.0 = Debug|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|Win32.ActiveCfg = Profile|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|Win32.Build.0 = Profile|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|x64.ActiveCfg = Profile|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Profile|x64.Build.0 = Profile|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|Win32.ActiveCfg = Release|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|Win32.Build.0 = Release|Win32
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|x64.ActiveCfg = Release|x64
		{371B9FA9-4C90-4AC6-A123-ACED756D6C77}.Release|x64.Build.0 = Release|x64
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
EndGlobal


================================================
FILE: 3rdParty/DirectXTex/DDSView/DDSView_Desktop_2015.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Profile|Win32">
      <Configuration>Profile</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Profile|x64">
      <Configuration>Profile</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <ProjectName>DDSView</ProjectName>
    <ProjectGuid>{9D3EDCAD-A800-43F0-B77F-FE6E4DFA3D84}</ProjectGuid>
    <RootNamespace>DDSView</RootNamespace>
    <Keyword>Win32Proj</Keyword>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v140</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v140</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v140</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v140</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v140</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PlatformToolset>v140</PlatformToolset>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings" />
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <LinkIncremental>true</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
    <LinkIncremental>true</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
    <LinkIncremental>false</LinkIncremental>
    <GenerateManifest>true</GenerateManifest>
    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(IncludePath)</IncludePath>
    <LibraryPath>$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>Disabled</Optimization>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX86</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>Disabled</Optimization>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX64</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX86</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX64</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX86</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
    <ClCompile>
      <WarningLevel>Level4</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <OpenMPSupport>false</OpenMPSupport>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <FloatingPointModel>Fast</FloatingPointModel>
      <ExceptionHandling>Sync</ExceptionHandling>
      <AdditionalIncludeDirectories>..\DirectXTex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
      <AdditionalDependencies>d3d11.lib;ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <LargeAddressAware>true</LargeAddressAware>
      <RandomizedBaseAddress>true</RandomizedBaseAddress>
      <DataExecutionPrevention>true</DataExecutionPrevention>
      <TargetMachine>MachineX64</TargetMachine>
      <UACExecutionLevel>AsInvoker</UACExecutionLevel>
      <DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
    </Link>
    <Manifest>
      <EnableDPIAwareness>false</EnableDPIAwareness>
    </Manifest>
    <PreBuildEvent>
      <Command>
      </Command>
    </PreBuildEvent>
    <PostBuildEvent>
      <Command>
      </Command>
    </PostBuildEvent>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="DDSView.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="DDSView.rc" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\DirectXTex\DirectXTex_Desktop_2015.vcxproj">
      <Project>{371b9fa9-4c90-4ac6-a123-aced756d6c77}</Project>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <None Include="ddsview.fx" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets" />
</Project>

================================================
FILE: 3rdParty/DirectXTex/DDSView/DDSView_Desktop_2015.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Filter Include="Resource Files">
      <UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
    </Filter>
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="DDSView.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="DDSView.rc">
      <Filter>Resource Files</Filter>
    </ResourceCompile>
  </ItemGroup>
  <ItemGroup>
    <None Include="ddsview.fx" />
  </ItemGroup>
</Project>

================================================
FILE: 3rdParty/DirectXTex/DDSView/ddsview.cpp
================================================
//--------------------------------------------------------------------------------------
// File: DDSView.cpp
//
// DirectX 11 DDS File Viewer
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//--------------------------------------------------------------------------------------

#include <assert.h>
#include <windows.h>
#include <stdio.h>
#include <dxgiformat.h>
#include <d3d11.h>

#include <directxmath.h>

#include "DirectXTex.h"

using namespace DirectX;

//--------------------------------------------------------------------------------------
#define IDI_MAIN_ICON 100

//--------------------------------------------------------------------------------------
#pragma pack(push,1)
struct SimpleVertex
{
    XMFLOAT4 Pos;
    XMFLOAT4 Tex;
};

struct CBArrayControl
{
    float Index;
    float pad[3];
};
#pragma pack(pop)

//--------------------------------------------------------------------------------------

// fxc ddsview.fx /nologo /EVS /Tvs_4_1 /Fhshaders\vs.h
#include "shaders\vs.h"

// fxc ddsview.fx /nologo /EPS_1D /Tps_4_1 /Fhshaders\ps1D.h
#include "shaders\ps1D.h"

// fxc ddsview.fx /nologo /EPS_1DArray /Tps_4_1 /Fhshaders\ps1Darray.h
#include "shaders\\ps1Darray.h"

// fxc ddsview.fx /nologo /EPS_2D /Tps_4_1 /Fhshaders\ps2D.h
#include "shaders\\ps2D.h"

// fxc ddsview.fx /nologo /EPS_2DArray /Tps_4_1 /Fhshaders\ps2Darray.h
#include "shaders\ps2Darray.h"

// fxc ddsview.fx /nologo /EPS_3D /Tps_4_1 /Fhshaders\ps3D.h
#include "shaders\ps3D.h"

// fxc ddsview.fx /nologo /EPS_Cube /Tps_4_1 /Fhshaders\psCube.h
#include "shaders\psCube.h"

//--------------------------------------------------------------------------------------
HINSTANCE                   g_hInst = NULL;
HWND                        g_hWnd = NULL;
D3D_DRIVER_TYPE             g_driverType = D3D_DRIVER_TYPE_NULL;
D3D_FEATURE_LEVEL           g_featureLevel = D3D_FEATURE_LEVEL_11_0;
ID3D11Device*               g_pd3dDevice = NULL;
ID3D11DeviceContext*        g_pImmediateContext = NULL;
IDXGISwapChain*             g_pSwapChain = NULL;
ID3D11RenderTargetView*     g_pRenderTargetView = NULL;
ID3D11Texture2D*            g_pDepthStencil = NULL;
ID3D11DepthStencilView*     g_pDepthStencilView = NULL;
ID3D11VertexShader*         g_pVertexShader = NULL;
ID3D11PixelShader*          g_pPixelShader = NULL;
ID3D11InputLayout*          g_pVertexLayout = NULL;
ID3D11Buffer*               g_pVertexBuffer = NULL;
ID3D11Buffer*               g_pIndexBuffer = NULL;
ID3D11Buffer*               g_pCBArrayControl = NULL;
ID3D11ShaderResourceView*   g_pSRV = NULL;
ID3D11BlendState*           g_AlphaBlendState = NULL;
ID3D11SamplerState*         g_pSamplerLinear = NULL;

UINT                        g_iCurrentIndex = 0;
UINT                        g_iMaxIndex = 1;

UINT                        g_iIndices = 0;


//--------------------------------------------------------------------------------------
HRESULT InitWindow( HINSTANCE hInstance, int nCmdShow, const TexMetadata& mdata );
HRESULT InitDevice( const TexMetadata& mdata );
void CleanupDevice();
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
void Render();

//--------------------------------------------------------------------------------------
#pragma warning( suppress : 6262 )
int WINAPI wWinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow )
{
    UNREFERENCED_PARAMETER( hPrevInstance );
    UNREFERENCED_PARAMETER( lpCmdLine );

    if ( !*lpCmdLine )
    {
        MessageBox( NULL, L"Usage: ddsview <filename>", L"DDSView", MB_OK | MB_ICONEXCLAMATION );
        return 0;
    }

    TexMetadata mdata;
    HRESULT hr = GetMetadataFromDDSFile( lpCmdLine, DDS_FLAGS_NONE, mdata );
    if ( FAILED(hr) )
    {
        WCHAR buff[2048];
        swprintf_s( buff, L"Failed to open texture file\n\nFilename = %ls\nHRESULT %08X", lpCmdLine, hr );
        MessageBox( NULL, buff, L"DDSView", MB_OK | MB_ICONEXCLAMATION );
        return 0;
    }

    if( FAILED( InitWindow( hInstance, nCmdShow, mdata ) ) )
        return 0;

    SetWindowTextW( g_hWnd, lpCmdLine );

    if( FAILED( InitDevice( mdata ) ) )
    {
        CleanupDevice();
        return 0;
    }

    if (mdata.dimension == TEX_DIMENSION_TEXTURE3D)
    {
        if ( mdata.arraySize > 1 )
        {
            WCHAR buff[2048];
            swprintf_s( buff, L"Arrays of volume textures are not supported\n\nFilename = %ls\nArray size %Iu", lpCmdLine, mdata.arraySize );
            MessageBox( NULL, buff, L"DDSView", MB_OK | MB_ICONEXCLAMATION );
            return 0;
        }

        g_iMaxIndex = static_cast<UINT>( mdata.depth );
    }
    else
    {
        g_iMaxIndex = static_cast<UINT>( mdata.arraySize );
    }

    switch( mdata.format )
    {
    case DXGI_FORMAT_BC6H_TYPELESS:
    case DXGI_FORMAT_BC6H_UF16:
    case DXGI_FORMAT_BC6H_SF16:
    case DXGI_FORMAT_BC7_TYPELESS:
    case DXGI_FORMAT_BC7_UNORM:
    case DXGI_FORMAT_BC7_UNORM_SRGB:
        if ( g_featureLevel < D3D_FEATURE_LEVEL_11_0 )
        {
            WCHAR buff[2048];
            swprintf_s( buff, L"BC6H/BC7 requires DirectX 11 hardware\n\nFilename = %ls\nDXGI Format %d\nFeature Level %d", lpCmdLine, mdata.format, g_featureLevel );
            MessageBox( NULL, buff, L"DDSView", MB_OK | MB_ICONEXCLAMATION );
            return 0;
        }
        break;

    default:
        {
            UINT flags = 0;
            hr = g_pd3dDevice->CheckFormatSupport ( mdata.format, &flags );
            if ( FAILED(hr) || !(flags & (D3D11_FORMAT_SUPPORT_TEXTURE1D|D3D11_FORMAT_SUPPORT_TEXTURE2D|D3D11_FORMAT_SUPPORT_TEXTURE3D)) )
            {
                WCHAR buff[2048];
                swprintf_s( buff, L"Format not supported by DirectX hardware\n\nFilename = %ls\nDXGI Format %d\nFeature Level %d\nHRESULT = %08X", lpCmdLine, mdata.format, g_featureLevel, hr );
                MessageBox( NULL, buff, L"DDSView", MB_OK | MB_ICONEXCLAMATION );
                return 0;
            }
        }
        break;
    }

    ScratchImage image;
    hr = LoadFromDDSFile( lpCmdLine, DDS_FLAGS_NONE, &mdata, image );
    if ( FAILED(hr) )
    {
        WCHAR buff[2048];
        swprintf_s( buff, L"Failed to load texture file\n\nFilename = %ls\nHRESULT %08X", lpCmdLine, hr );
        MessageBox( NULL, buff, L"DDSView", MB_OK | MB_ICONEXCLAMATION );
        return 0;
    }

    // Special case to make sure Texture cubes remain arrays
    mdata.miscFlags &= ~TEX_MISC_TEXTURECUBE;

    hr = CreateShaderResourceView( g_pd3dDevice, image.GetImages(), image.GetImageCount(), mdata, &g_pSRV );
    if ( FAILED(hr) )
    {
        WCHAR buff[2048];
        swprintf_s( buff, L"Failed creating texture from file\n\nFilename = %ls\nHRESULT = %08X", lpCmdLine, hr );
        MessageBox( NULL, buff, L"DDSView", MB_OK | MB_ICONEXCLAMATION );
        return 0;
    }

    // Main message loop
    MSG msg = {0};
    while( WM_QUIT != msg.message )
    {
        if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
        {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else
        {
            Render();
        }
    }

    CleanupDevice();

    return ( int )msg.wParam;
}

//--------------------------------------------------------------------------------------
HRESULT InitWindow( HINSTANCE hInstance, int nCmdShow, const TexMetadata& mdata )
{
    // Register class
    WNDCLASSEX wcex;
    wcex.cbSize = sizeof( WNDCLASSEX );
    wcex.style = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc = WndProc;
    wcex.cbClsExtra = 0;
    wcex.cbWndExtra = 0;
    wcex.hInstance = hInstance;
    wcex.hIcon = LoadIcon( hInstance, ( LPCTSTR )IDI_MAIN_ICON );
    wcex.hCursor = LoadCursor( NULL, IDC_ARROW );
    wcex.hbrBackground = ( HBRUSH )( COLOR_WINDOW + 1 );
    wcex.lpszMenuName = NULL;
    wcex.lpszClassName = L"DDSViewWindowClass";
    wcex.hIconSm = LoadIcon( wcex.hInstance, ( LPCTSTR )IDI_MAIN_ICON );
    if( !RegisterClassEx( &wcex ) )
        return E_FAIL;

    // Create window
    g_hInst = hInstance;
    RECT rc = { 0, 0, 640, 480 };

    int cxborder = GetSystemMetrics( SM_CXBORDER );
    int cxedge = GetSystemMetrics( SM_CXEDGE );
    int screenX = GetSystemMetrics( SM_CXSCREEN ) - max( cxborder, cxedge );
    if( rc.right < (LONG)mdata.width )
        rc.right = (LONG)mdata.height;
    if ( rc.right > screenX )
        rc.right = screenX;

    int cyborder = GetSystemMetrics( SM_CYBORDER );
    int cyedge = GetSystemMetrics( SM_CYEDGE );
    int screenY = GetSystemMetrics( SM_CYSCREEN ) - max( cyborder, cyedge );
    if ( rc.bottom < (LONG)mdata.height )
        rc.bottom = (LONG)mdata.height;
    if ( rc.bottom > screenY )
        rc.bottom = screenY;

    AdjustWindowRect( &rc, WS_OVERLAPPEDWINDOW, FALSE );
    g_hWnd = CreateWindow( L"DDSViewWindowClass", L"DDS View", WS_OVERLAPPEDWINDOW,
                           CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance,
                           NULL );
    if( !g_hWnd )
        return E_FAIL;

    ShowWindow( g_hWnd, nCmdShow );

    return S_OK;
}


//--------------------------------------------------------------------------------------
LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
    PAINTSTRUCT ps;
    HDC hdc;

    switch( message )
    {
        case WM_PAINT:
            hdc = BeginPaint( hWnd, &ps );
            EndPaint( hWnd, &ps );
            break;

        case WM_DESTROY:
            PostQuitMessage( 0 );
            break;

        case WM_KEYDOWN:
            if ( wParam == VK_RIGHT )
            {
                if ( g_iCurrentIndex < g_iMaxIndex-1 )
                    ++g_iCurrentIndex;
            }
            else if ( wParam == VK_LEFT )
            {
                if ( g_iCurrentIndex > 0 )
                {
                    --g_iCurrentIndex;
                }
            }
            else if ( wParam >= '0' && wParam <= '9' )
            {
                UINT index = (wParam == '0') ? 10 : ((UINT) (wParam - '1'));
                if ( index < g_iMaxIndex )
                    g_iCurrentIndex = index;
            }
            InvalidateRect( hWnd, NULL, FALSE );
            break;

        default:
            return DefWindowProc( hWnd, message, wParam, lParam );
    }

    return 0;
}


//--------------------------------------------------------------------------------------
HRESULT InitDevice( const TexMetadata& mdata )
{
    HRESULT hr = S_OK;

    RECT rc;
    GetClientRect( g_hWnd, &rc );
    UINT width = rc.right - rc.left;
    UINT height = rc.bottom - rc.top;

    UINT createDeviceFlags = 0;
#if defined( DEBUG ) || defined( _DEBUG )
    createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif

    D3D_DRIVER_TYPE driverTypes[] =
    {
        D3D_DRIVER_TYPE_HARDWARE,
        D3D_DRIVER_TYPE_WARP,
        D3D_DRIVER_TYPE_REFERENCE,
    };
    UINT numDriverTypes = ARRAYSIZE( driverTypes );

    D3D_FEATURE_LEVEL featureLevels[] =
    {
        D3D_FEATURE_LEVEL_11_0,
        D3D_FEATURE_LEVEL_10_1,
        D3D_FEATURE_LEVEL_10_0,
    };
	UINT numFeatureLevels = ARRAYSIZE( featureLevels );

    DXGI_SWAP_CHAIN_DESC sd;
    ZeroMemory( &sd, sizeof( sd ) );
    sd.BufferCount = 1;
    sd.BufferDesc.Width = width;
    sd.BufferDesc.Height = height;
    sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
    sd.BufferDesc.RefreshRate.Numerator = 60;
    sd.BufferDesc.RefreshRate.Denominator = 1;
    sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
    sd.OutputWindow = g_hWnd;
    sd.SampleDesc.Count = 1;
    sd.SampleDesc.Quality = 0;
    sd.Windowed = TRUE;

    for( UINT driverTypeIndex = 0; driverTypeIndex < numDriverTypes; driverTypeIndex++ )
    {
        g_driverType = driverTypes[driverTypeIndex];
        hr = D3D11CreateDeviceAndSwapChain( NULL, g_driverType, NULL, createDeviceFlags, featureLevels, numFeatureLevels,
                                            D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice, &g_featureLevel, &g_pImmediateContext );
        if( SUCCEEDED( hr ) )
            break;
    }
    if( FAILED( hr ) )
        return hr;

    // Create a render target view
    ID3D11Texture2D* pBackBuffer = NULL;
    hr = g_pSwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&pBackBuffer );
    if( FAILED( hr ) )
        return hr;

    hr = g_pd3dDevice->CreateRenderTargetView( pBackBuffer, NULL, &g_pRenderTargetView );
    pBackBuffer->Release();
    if( FAILED( hr ) )
        return hr;

    // Create depth stencil texture
    D3D11_TEXTURE2D_DESC descDepth;
    ZeroMemory( &descDepth, sizeof(descDepth) );
    descDepth.Width = width;
    descDepth.Height = height;
    descDepth.MipLevels = 1;
    descDepth.ArraySize = 1;
    descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT;
    descDepth.SampleDesc.Count = 1;
    descDepth.SampleDesc.Quality = 0;
    descDepth.Usage = D3D11_USAGE_DEFAULT;
    descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL;
    descDepth.CPUAccessFlags = 0;
    descDepth.MiscFlags = 0;
    hr = g_pd3dDevice->CreateTexture2D( &descDepth, NULL, &g_pDepthStencil );
    if( FAILED( hr ) )
        return hr;

    // Create the depth stencil view
    D3D11_DEPTH_STENCIL_VIEW_DESC descDSV;
    ZeroMemory( &descDSV, sizeof(descDSV) );
    descDSV.Format = descDepth.Format;
    descDSV.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D;
    descDSV.Texture2D.MipSlice = 0;
    hr = g_pd3dDevice->CreateDepthStencilView( g_pDepthStencil, &descDSV, &g_pDepthStencilView );
    if( FAILED( hr ) )
        return hr;

    g_pImmediateContext->OMSetRenderTargets( 1, &g_pRenderTargetView, g_pDepthStencilView );

    // Setup the viewport
    D3D11_VIEWPORT vp;
    vp.Width = (FLOAT)width;
    vp.Height = (FLOAT)height;
    vp.MinDepth = 0.0f;
    vp.MaxDepth = 1.0f;
    vp.TopLeftX = 0;
    vp.TopLeftY = 0;
    g_pImmediateContext->RSSetViewports( 1, &vp );

    // Create the vertex shader
    hr = g_pd3dDevice->CreateVertexShader( g_VS, sizeof(g_VS), NULL, &g_pVertexShader );
    if( FAILED( hr ) )
        return hr;

    // Define the input layout
    D3D11_INPUT_ELEMENT_DESC layout[] =
    {
        { "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
        { "TEXCOORD", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, sizeof(XMFLOAT4), D3D11_INPUT_PER_VERTEX_DATA, 0 },
    };
    UINT numElements = ARRAYSIZE( layout );

    // Create the input layout
    hr = g_pd3dDevice->CreateInputLayout( layout, numElements, g_VS, sizeof(g_VS), &g_pVertexLayout );
    if( FAILED( hr ) )
        return hr;

    // Set the input layout
    g_pImmediateContext->IASetInputLayout( g_pVertexLayout );

    // Select the pixel shader
    bool isCubeMap = false;
    bool is1D = false;
    const BYTE* pshader = NULL;
    size_t pshader_size = 0;

    switch ( mdata.dimension )
    {
    case TEX_DIMENSION_TEXTURE1D:
        if ( mdata.arraySize > 1)
        {
            pshader = g_PS_1DArray;
            pshader_size = sizeof(g_PS_1DArray);
        }
        else
        {
            pshader = g_PS_1D;
            pshader_size = sizeof(g_PS_1D);
        }
        is1D = true;
        break;

    case TEX_DIMENSION_TEXTURE2D:
        if ( mdata.miscFlags & TEX_MISC_TEXTURECUBE )
        {
            pshader = g_PS_Cube;
            pshader_size = sizeof(g_PS_Cube);
            isCubeMap = true;
        }
        else if ( mdata.arraySize > 1 )
        {
            pshader = g_PS_2DArray;
            pshader_size = sizeof(g_PS_2DArray);
        }
        else
        {
            pshader = g_PS_2D;
            pshader_size = sizeof(g_PS_2D);
        }
        break;

    case TEX_DIMENSION_TEXTURE3D:
        pshader = g_PS_3D;
        pshader_size = sizeof(g_PS_3D);
        break;

    default:
        return E_FAIL;
    }

    assert( pshader && pshader_size > 0 );

    // Create the pixel shader
    hr = g_pd3dDevice->CreatePixelShader( pshader, pshader_size, NULL, &g_pPixelShader );
    if( FAILED( hr ) )
        return hr;

    // Create vertex buffer
    UINT nverts;
    D3D11_SUBRESOURCE_DATA InitData;
    ZeroMemory( &InitData, sizeof(InitData) );

    static const SimpleVertex verticesCube[] =
    {
        // Render cubemaps as horizontal cross

        // XPOS
        { XMFLOAT4( .5f, .25f, 0.f, 1.f ), XMFLOAT4( 0.f, 0.f, 0.f, 0.f ) },
        { XMFLOAT4( 1.f, .25f, 0.f, 1.f ), XMFLOAT4( 1.f, 0.f, 0.f, 0.f ) },
        { XMFLOAT4( .5f, -.25f, 0.f, 1.f ), XMFLOAT4( 0.f, 1.f, 0.f, 0.f ) },
        { XMFLOAT4( 1.f, -.25f, 0.f, 1.f ), XMFLOAT4( 1.f, 1.f, 0.f, 0.f ) },

        // XNEG
        { XMFLOAT4( -.5f, .25f, 0.f, 1.f ), XMFLOAT4( 0.f, 0.f, 1.f, 0.f ) },
        { XMFLOAT4( 0.f, .25f, 0.f, 1.f ), XMFLOAT4( 1.f, 0.f, 1.f, 0.f ) },
        { XMFLOAT4( -.5f, -.25f, 0.f, 1.f ), XMFLOAT4( 0.f, 1.f, 1.f, 0.f ) },
        { XMFLOAT4( 0.f, -.25f, 0.f, 1.f ), XMFLOAT4( 1.f, 1.f, 1.f, 0.f ) },

        // YPOS
        { XMFLOAT4( -.5f, .75f, 0.f, 1.f ), XMFLOAT4( 0.f, 0.f, 2.f, 0.f ) },
        { XMFLOAT4( 0.f, .75f, 0.f, 1.f ), XMFLOAT4( 1.f, 0.f, 2.f, 0.f ) },
        { XMFLOAT4( -.5f, .25f, 0.f, 1.f ), XMFLOAT4( 0.f, 1.f, 2.f, 0.f ) },
        { XMFLOAT4( 0.f, .25f, 0.f, 1.f ), XMFLOAT4( 1.f, 1.f, 2.f, 0.f ) },

        // YNEG
        { XMFLOAT4( -.5f, -.25f, 0.f, 1.f ), XMFLOAT4( 0.f, 0.f, 3.f, 0.f ) },
        { XMFLOAT4( 0.f, -.25f, 0.f, 1.f ), XMFLOAT4( 1.f, 0.f, 3.f, 0.f ) },
        { XMFLOAT4( -.5f, -.75f, 0.f, 1.f ), XMFLOAT4( 0.f, 1.f, 3.f, 0.f ) },
        { XMFLOAT4( 0.f, -.75f, 0.f, 1.f ), XMFLOAT4( 1.f, 1.f, 3.f, 0.f ) },

        // ZPOS
        { XMFLOAT4( 0.f, .25f, 0.f, 1.f ), XMFLOAT4( 0.f, 0.f, 4.f, 0.f ) },
        { XMFLOAT4( .5f, .25f, 0.f, 1.f ), XMFLOAT4( 1.f, 0.f, 4.f, 0.f ) },
        { XMFLOAT4( 0.f, -.25f, 0.f, 1.f ), XMFLOAT4( 0.f, 1.f, 4.f, 0.f ) },
        { XMFLOAT4( .5f, -.25f, 0.f, 1.f ), XMFLOAT4( 1.f, 1.f, 4.f, 0.f ) },

        // ZNEG
        { XMFLOAT4( -1.f, .25f, 0.f, 1.f ), XMFLOAT4( 0.f, 0.f, 5.f, 0.f ) },
        { XMFLOAT4( -.5f, .25f, 0.f, 1.f ), XMFLOAT4( 1.f, 0.f, 5.f, 0.f ) },
        { XMFLOAT4( -1.f, -.25f, 0.f, 1.f ), XMFLOAT4( 0.f, 1.f, 5.f, 0.f ) },
        { XMFLOAT4( -.5f, -.25f, 0.f, 1.f ), XMFLOAT4( 1.f, 1.f, 5.f, 0.f ) },
    };

    static const SimpleVertex vertices[] =
    {
        { XMFLOAT4( -1.f, 1.f, 0.f, 1.f ), XMFLOAT4( 0.f, 0.f, 0.f, 0.f ) },
        { XMFLOAT4( 1.f, 1.f, 0.f, 1.f ), XMFLOAT4( 1.f, 0.f, 0.f, 0.f ) },
        { XMFLOAT4( -1.f, -1.f, 0.f, 1.f ), XMFLOAT4( 0.f, 1.f, 0.f, 0.f ) },
        { XMFLOAT4( 1.f, -1.f, 0.f, 1.f ), XMFLOAT4( 1.f, 1.f, 0.f, 0.f ) },
    };

    static const SimpleVertex vertices1D[] =
    {
        { XMFLOAT4( -1.f, .05f, 0.f, 1.f ), XMFLOAT4( 0.f, 0.f, 0.f, 0.f ) },
        { XMFLOAT4( 1.f, .05f, 0.f, 1.f ), XMFLOAT4( 1.f, 0.f, 0.f, 0.f ) },
        { XMFLOAT4( -1.f, -.05f, 0.f, 1.f ), XMFLOAT4( 0.f, 0.f, 0.f, 0.f ) },
        { XMFLOAT4( 1.f, -.05f, 0.f, 1.f ), XMFLOAT4( 1.f, 0.f, 0.f, 0.f ) },
    };

    if ( isCubeMap )
    {
        nverts = _countof(verticesCube);
        InitData.pSysMem = verticesCube;
    }
    else if ( is1D )
    {
        nverts = _countof(vertices1D);
        InitData.pSysMem = vertices1D;
    }
    else
    {
        nverts = _countof(vertices);
        InitData.pSysMem = vertices;
    }

    D3D11_BUFFER_DESC bd;
    ZeroMemory( &bd, sizeof(bd) );
    bd.Usage = D3D11_USAGE_DEFAULT;
    bd.ByteWidth = sizeof( SimpleVertex ) * nverts;
    bd.BindFlags = D3D11_BIND_VERTEX_BUFFER;
    bd.CPUAccessFlags = 0;
    hr = g_pd3dDevice->CreateBuffer( &bd, &InitData, &g_pVertexBuffer );
    if( FAILED( hr ) )
        return hr;

    // Set vertex buffer
    UINT stride = sizeof( SimpleVertex );
    UINT offset = 0;
    g_pImmediateContext->IASetVertexBuffers( 0, 1, &g_pVertexBuffer, &stride, &offset );

    // Create index buffer
    static const WORD indicesCube[] =
    {
            0, 1, 2,
            2, 1, 3,
            4, 5, 6,
            6, 5, 7,
            8, 9, 10,
            10, 9, 11,
            12, 13, 14,
            14, 13, 15,
            16, 17, 18,
            18, 17, 19,
            20, 21, 22,
            22, 21, 23
    };

    static const WORD indices[] =
    {
            0, 1, 2,
            2, 1, 3
    };

    if ( isCubeMap )
    {
        g_iIndices = _countof(indicesCube);
        InitData.pSysMem = indicesCube;
    }
    else
    {
        g_iIndices = _countof(indices);
        InitData.pSysMem = indices;
    }

    bd.Usage = D3D11_USAGE_DEFAULT;
    bd.ByteWidth = g_iIndices * sizeof(WORD);
    bd.BindFlags = D3D11_BIND_INDEX_BUFFER;
    bd.CPUAccessFlags = 0;
    hr = g_pd3dDevice->CreateBuffer( &bd, &InitData, &g_pIndexBuffer );
    if( FAILED( hr ) )
        return hr;

    // Set index buffer
    g_pImmediateContext->IASetIndexBuffer( g_pIndexBuffer, DXGI_FORMAT_R16_UINT, 0 );

    // Set primitive topology
    g_pImmediateContext->IASetPrimitiveTopology( D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST );

    // Create the constant buffers
    bd.Usage = D3D11_USAGE_DEFAULT;
    bd.ByteWidth = sizeof(CBArrayControl);
    bd.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
    bd.CPUAccessFlags = 0;
    hr = g_pd3dDevice->CreateBuffer( &bd, NULL, &g_pCBArrayControl );
    if( FAILED( hr ) )
        return hr;

    // Create the state objects
    D3D11_SAMPLER_DESC sampDesc;
    ZeroMemory( &sampDesc, sizeof(sampDesc) );
    sampDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_POINT;
    sampDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP;
    sampDesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP;
    sampDesc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP;
    sampDesc.ComparisonFunc = D3D11_COMPARISON_NEVER;
    sampDesc.MinLOD = 0;
    sampDesc.MaxLOD = D3D11_FLOAT32_MAX;
    hr = g_pd3dDevice->CreateSamplerState( &sampDesc, &g_pSamplerLinear );
    if( FAILED( hr ) )
        return hr;

    D3D11_BLEND_DESC dsc = 
    {
        false,
        false,
        {
        true,
        D3D11_BLEND_SRC_ALPHA,
        D3D11_BLEND_INV_SRC_ALPHA,
        D3D11_BLEND_OP_ADD,
        D3D11_BLEND_ZERO,
        D3D11_BLEND_ZERO,
        D3D11_BLEND_OP_ADD,
        D3D11_COLOR_WRITE_ENABLE_ALL
        } 
    };
    hr = g_pd3dDevice->CreateBlendState(&dsc, &g_AlphaBlendState );
    if( FAILED(hr) )
        return hr;

    return S_OK;
}


//--------------------------------------------------------------------------------------
void Render()
{
    float ClearColor[4] = { 0.f, 1.f, 1.f, 1.0f }; //red,green,blue,alpha
    g_pImmediateContext->ClearRenderTargetView( g_pRenderTargetView, ClearColor );
    g_pImmediateContext->ClearDepthStencilView( g_pDepthStencilView, D3D11_CLEAR_DEPTH, 1.0f, 0 );

    float bf [4] = {1.0f, 1.0f, 1.0f, 1.0f};
    g_pImmediateContext->OMSetBlendState( g_AlphaBlendState, bf, 0xffffffff );

    CBArrayControl cb;
    cb.Index = (float)g_iCurrentIndex;
    g_pImmediateContext->UpdateSubresource( g_pCBArrayControl, 0, NULL, &cb, 0, 0 );

    g_pImmediateContext->VSSetShader( g_pVertexShader, NULL, 0 );
    g_pImmediateContext->PSSetShader( g_pPixelShader, NULL, 0 );
    g_pImmediateContext->PSSetConstantBuffers( 0, 1, &g_pCBArrayControl );
    g_pImmediateContext->PSSetShaderResources( 0, 1, &g_pSRV );
    g_pImmediateContext->PSSetSamplers( 0, 1, &g_pSamplerLinear );
    g_pImmediateContext->DrawIndexed( g_iIndices, 0, 0 );

    g_pSwapChain->Present( 0, 0 );
}


//--------------------------------------------------------------------------------------
void CleanupDevice()
{
    if( g_pImmediateContext ) g_pImmediateContext->ClearState();

    if( g_pSamplerLinear ) g_pSamplerLinear->Release();
    if( g_AlphaBlendState ) g_AlphaBlendState->Release();
    if( g_pSRV ) g_pSRV->Release();
    if( g_pVertexBuffer ) g_pVertexBuffer->Release();
    if( g_pIndexBuffer ) g_pIndexBuffer->Release();
    if( g_pCBArrayControl ) g_pCBArrayControl->Release();
    if( g_pVertexLayout ) g_pVertexLayout->Release();
    if( g_pVertexShader ) g_pVertexShader->Release();
    if( g_pPixelShader ) g_pPixelShader->Release();
    if( g_pDepthStencil ) g_pDepthStencil->Release();
    if( g_pDepthStencilView ) g_pDepthStencilView->Release();
    if( g_pRenderTargetView ) g_pRenderTargetView->Release();
    if( g_pSwapChain ) g_pSwapChain->Release();
    if( g_pImmediateContext ) g_pImmediateContext->Release();
    if( g_pd3dDevice ) g_pd3dDevice->Release();
}



================================================
FILE: 3rdParty/DirectXTex/DDSView/ddsview.fx
================================================
//--------------------------------------------------------------------------------------
// File: ddsview.fx
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//--------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------
// Constant Buffer Variables
//--------------------------------------------------------------------------------------
Texture1D tx1D : register( t0 );
Texture1DArray tx1DArray : register( t0 );

Texture2D tx2D : register( t0 );
Texture2DArray tx2DArray : register( t0 );

Texture3D tx3D : register( t0 );

SamplerState samLinear : register( s0 );

cbuffer cbArrayControl  : register( b0 )
{
    float Index;
};

//--------------------------------------------------------------------------------------
struct VS_INPUT
{
    float4 Pos : POSITION;
    float4 Tex : TEXCOORD0;
};

struct PS_INPUT
{
    float4 Pos : SV_POSITION;
    float4 Tex : TEXCOORD0;
};


//--------------------------------------------------------------------------------------
// Vertex Shader
//--------------------------------------------------------------------------------------
PS_INPUT VS( VS_INPUT input )
{
    PS_INPUT output = (PS_INPUT)0;
    output.Pos = input.Pos;
    output.Tex = input.Tex;
    return output;
}


//--------------------------------------------------------------------------------------
// Pixel Shader
//--------------------------------------------------------------------------------------
float4 PS_1D( PS_INPUT input) : SV_Target
{
    return tx1D.Sample( samLinear, input.Tex.x );
}

float4 PS_1DArray( PS_INPUT input) : SV_Target
{
    return tx1DArray.Sample( samLinear, float2(input.Tex.x, Index) );
}

float4 PS_2D( PS_INPUT input) : SV_Target
{
    return tx2D.Sample( samLinear, input.Tex.xy );
}

float4 PS_2DArray( PS_INPUT input) : SV_Target
{
    return tx2DArray.Sample( samLinear, float3(input.Tex.xy, Index) );
}

float4 PS_3D( PS_INPUT input) : SV_Target
{
    int Width, Height, Depth;
    tx3D.GetDimensions( Width, Height, Depth);

    return tx3D.Sample( samLinear, float3(input.Tex.xy, Index / Depth) );
}

float4 PS_Cube( PS_INPUT input) : SV_Target
{
    return tx2DArray.Sample( samLinear, float3(input.Tex.xy, input.Tex.z + (6*Index)) );
}


================================================
FILE: 3rdParty/DirectXTex/DDSView/hlsl.cmd
================================================
fxc ddsview.fx /nologo /EVS /Tvs_4_1 /Fhshaders\vs.h
fxc ddsview.fx /nologo /EPS_1D /Tps_4_1 /Fhshaders\ps1D.h
fxc ddsview.fx /nologo /EPS_1DArray /Tps_4_1 /Fhshaders\ps1Darray.h
fxc ddsview.fx /nologo /EPS_2D /Tps_4_1 /Fhshaders\ps2D.h
fxc ddsview.fx /nologo /EPS_2DArray /Tps_4_1 /Fhshaders\ps2Darray.h
fxc ddsview.fx /nologo /EPS_3D /Tps_4_1 /Fhshaders\ps3D.h
fxc ddsview.fx /nologo /EPS_Cube /Tps_4_1 /Fhshaders\psCube.h



================================================
FILE: 3rdParty/DirectXTex/DDSView/shaders/ps1D.h
================================================
#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
//   fxc ddsview.fx /nologo /EPS_1D /Tps_4_1 /Fhshaders\ps1D.h
//
//
// Buffer Definitions: 
//
// cbuffer cbArrayControl
// {
//
//   float Index;                       // Offset:    0 Size:     4 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// samLinear                         sampler      NA          NA    0        1
// tx1D                              texture  float4          1d    0        1
// cbArrayControl                    cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue Format   Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_POSITION              0   xyzw        0      POS  float       
// TEXCOORD                 0   xyzw        1     NONE  float   x   
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue Format   Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_Target                0   xyzw        0   TARGET  float   xyzw
//
ps_4_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[1], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture1d (float,float,float,float) t0
dcl_input_ps linear v1.x
dcl_output o0.xyzw
sample o0.xyzw, v1.xxxx, t0.xyzw, s0
ret 
// Approximately 2 instruction slots used
#endif

const BYTE g_PS_1D[] =
{
     68,  88,  66,  67,  71,  33, 
    105, 235, 206, 215,  61, 110, 
    190,  73,  39, 172,  36, 251, 
     31, 148,   1,   0,   0,   0, 
    220,   2,   0,   0,   5,   0, 
      0,   0,  52,   0,   0,   0, 
     84,   1,   0,   0, 172,   1, 
      0,   0, 224,   1,   0,   0, 
     96,   2,   0,   0,  82,  68, 
     69,  70,  24,   1,   0,   0, 
      1,   0,   0,   0, 156,   0, 
      0,   0,   3,   0,   0,   0, 
     28,   0,   0,   0,   1,   4, 
    255, 255,   0,   1,   0,   0, 
    228,   0,   0,   0, 124,   0, 
      0,   0,   3,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   1,   0, 
      0,   0,   1,   0,   0,   0, 
    134,   0,   0,   0,   2,   0, 
      0,   0,   5,   0,   0,   0, 
      2,   0,   0,   0, 255, 255, 
    255, 255,   0,   0,   0,   0, 
      1,   0,   0,   0,  13,   0, 
      0,   0, 139,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
      1,   0,   0,   0, 115,  97, 
    109,  76, 105, 110, 101,  97, 
    114,   0, 116, 120,  49,  68, 
      0,  99,  98,  65, 114, 114, 
     97, 121,  67, 111, 110, 116, 
    114, 111, 108,   0, 171, 171, 
    139,   0,   0,   0,   1,   0, 
      0,   0, 180,   0,   0,   0, 
     16,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
    204,   0,   0,   0,   0,   0, 
      0,   0,   4,   0,   0,   0, 
      0,   0,   0,   0, 212,   0, 
      0,   0,   0,   0,   0,   0, 
     73, 110, 100, 101, 120,   0, 
    171, 171,   0,   0,   3,   0, 
      1,   0,   1,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
     77, 105,  99, 114, 111, 115, 
    111, 102, 116,  32,  40,  82, 
     41,  32,  72,  76,  83,  76, 
     32,  83, 104,  97, 100, 101, 
    114,  32,  67, 111, 109, 112, 
    105, 108, 101, 114,  32,  57, 
     46,  50,  57,  46,  57,  53, 
     50,  46,  51,  49,  49,  49, 
      0, 171, 171, 171,  73,  83, 
     71,  78,  80,   0,   0,   0, 
      2,   0,   0,   0,   8,   0, 
      0,   0,  56,   0,   0,   0, 
      0,   0,   0,   0,   1,   0, 
      0,   0,   3,   0,   0,   0, 
      0,   0,   0,   0,  15,   0, 
      0,   0,  68,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   3,   0,   0,   0, 
      1,   0,   0,   0,  15,   1, 
      0,   0,  83,  86,  95,  80, 
     79,  83,  73,  84,  73,  79, 
     78,   0,  84,  69,  88,  67, 
     79,  79,  82,  68,   0, 171, 
    171, 171,  79,  83,  71,  78, 
     44,   0,   0,   0,   1,   0, 
      0,   0,   8,   0,   0,   0, 
     32,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      3,   0,   0,   0,   0,   0, 
      0,   0,  15,   0,   0,   0, 
     83,  86,  95,  84,  97, 114, 
    103, 101, 116,   0, 171, 171, 
     83,  72,  68,  82, 120,   0, 
      0,   0,  65,   0,   0,   0, 
     30,   0,   0,   0, 106,   8, 
      0,   1,  89,   0,   0,   4, 
     70, 142,  32,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
     90,   0,   0,   3,   0,  96, 
     16,   0,   0,   0,   0,   0, 
     88,  16,   0,   4,   0, 112, 
     16,   0,   0,   0,   0,   0, 
     85,  85,   0,   0,  98,  16, 
      0,   3,  18,  16,  16,   0, 
      1,   0,   0,   0, 101,   0, 
      0,   3, 242,  32,  16,   0, 
      0,   0,   0,   0,  69,   0, 
      0,   9, 242,  32,  16,   0, 
      0,   0,   0,   0,   6,  16, 
     16,   0,   1,   0,   0,   0, 
     70, 126,  16,   0,   0,   0, 
      0,   0,   0,  96,  16,   0, 
      0,   0,   0,   0,  62,   0, 
      0,   1,  83,  84,  65,  84, 
    116,   0,   0,   0,   2,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   2,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      1,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0
};


================================================
FILE: 3rdParty/DirectXTex/DDSView/shaders/ps1Darray.h
================================================
#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
//   fxc ddsview.fx /nologo /EPS_1DArray /Tps_4_1 /Fhshaders\ps1Darray.h
//
//
// Buffer Definitions: 
//
// cbuffer cbArrayControl
// {
//
//   float Index;                       // Offset:    0 Size:     4
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// samLinear                         sampler      NA          NA    0        1
// tx1DArray                         texture  float4     1darray    0        1
// cbArrayControl                    cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue Format   Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_POSITION              0   xyzw        0      POS  float       
// TEXCOORD                 0   xyzw        1     NONE  float   x   
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue Format   Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_Target                0   xyzw        0   TARGET  float   xyzw
//
ps_4_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[1], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture1darray (float,float,float,float) t0
dcl_input_ps linear v1.x
dcl_output o0.xyzw
dcl_temps 1
mov r0.x, v1.x
mov r0.y, cb0[0].x
sample o0.xyzw, r0.xyxx, t0.xyzw, s0
ret 
// Approximately 4 instruction slots used
#endif

const BYTE g_PS_1DArray[] =
{
     68,  88,  66,  67, 210, 249, 
    153, 123, 172,  65,  50, 100, 
    250,   1,  76, 219,  67, 149, 
    143, 209,   1,   0,   0,   0, 
     20,   3,   0,   0,   5,   0, 
      0,   0,  52,   0,   0,   0, 
     88,   1,   0,   0, 176,   1, 
      0,   0, 228,   1,   0,   0, 
    152,   2,   0,   0,  82,  68, 
     69,  70,  28,   1,   0,   0, 
      1,   0,   0,   0, 160,   0, 
      0,   0,   3,   0,   0,   0, 
     28,   0,   0,   0,   1,   4, 
    255, 255,   0,   1,   0,   0, 
    232,   0,   0,   0, 124,   0, 
      0,   0,   3,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   1,   0, 
      0,   0,   1,   0,   0,   0, 
    134,   0,   0,   0,   2,   0, 
      0,   0,   5,   0,   0,   0, 
      3,   0,   0,   0, 255, 255, 
    255, 255,   0,   0,   0,   0, 
      1,   0,   0,   0,  13,   0, 
      0,   0, 144,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
      1,   0,   0,   0, 115,  97, 
    109,  76, 105, 110, 101,  97, 
    114,   0, 116, 120,  49,  68, 
     65, 114, 114,  97, 121,   0, 
     99,  98,  65, 114, 114,  97, 
    121,  67, 111, 110, 116, 114, 
    111, 108,   0, 171, 144,   0, 
      0,   0,   1,   0,   0,   0, 
    184,   0,   0,   0,  16,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0, 208,   0, 
      0,   0,   0,   0,   0,   0, 
      4,   0,   0,   0,   2,   0, 
      0,   0, 216,   0,   0,   0, 
      0,   0,   0,   0,  73, 110, 
    100, 101, 120,   0, 171, 171, 
      0,   0,   3,   0,   1,   0, 
      1,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,  77, 105, 
     99, 114, 111, 115, 111, 102, 
    116,  32,  40,  82,  41,  32, 
     72,  76,  83,  76,  32,  83, 
    104,  97, 100, 101, 114,  32, 
     67, 111, 109, 112, 105, 108, 
    101, 114,  32,  57,  46,  50, 
     57,  46,  57,  53,  50,  46, 
     51,  49,  49,  49,   0, 171, 
    171, 171,  73,  83,  71,  78, 
     80,   0,   0,   0,   2,   0, 
      0,   0,   8,   0,   0,   0, 
     56,   0,   0,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
      3,   0,   0,   0,   0,   0, 
      0,   0,  15,   0,   0,   0, 
     68,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      3,   0,   0,   0,   1,   0, 
      0,   0,  15,   1,   0,   0, 
     83,  86,  95,  80,  79,  83, 
     73,  84,  73,  79,  78,   0, 
     84,  69,  88,  67,  79,  79, 
     82,  68,   0, 171, 171, 171, 
     79,  83,  71,  78,  44,   0, 
      0,   0,   1,   0,   0,   0, 
      8,   0,   0,   0,  32,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   3,   0, 
      0,   0,   0,   0,   0,   0, 
     15,   0,   0,   0,  83,  86, 
     95,  84,  97, 114, 103, 101, 
    116,   0, 171, 171,  83,  72, 
     68,  82, 172,   0,   0,   0, 
     65,   0,   0,   0,  43,   0, 
      0,   0, 106,   8,   0,   1, 
     89,   0,   0,   4,  70, 142, 
     32,   0,   0,   0,   0,   0, 
      1,   0,   0,   0,  90,   0, 
      0,   3,   0,  96,  16,   0, 
      0,   0,   0,   0,  88,  56, 
      0,   4,   0, 112,  16,   0, 
      0,   0,   0,   0,  85,  85, 
      0,   0,  98,  16,   0,   3, 
     18,  16,  16,   0,   1,   0, 
      0,   0, 101,   0,   0,   3, 
    242,  32,  16,   0,   0,   0, 
      0,   0, 104,   0,   0,   2, 
      1,   0,   0,   0,  54,   0, 
      0,   5,  18,   0,  16,   0, 
      0,   0,   0,   0,  10,  16, 
     16,   0,   1,   0,   0,   0, 
     54,   0,   0,   6,  34,   0, 
     16,   0,   0,   0,   0,   0, 
     10, 128,  32,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
     69,   0,   0,   9, 242,  32, 
     16,   0,   0,   0,   0,   0, 
     70,   0,  16,   0,   0,   0, 
      0,   0,  70, 126,  16,   0, 
      0,   0,   0,   0,   0,  96, 
     16,   0,   0,   0,   0,   0, 
     62,   0,   0,   1,  83,  84, 
     65,  84, 116,   0,   0,   0, 
      4,   0,   0,   0,   1,   0, 
      0,   0,   0,   0,   0,   0, 
      2,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   1,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   2,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0
};


================================================
FILE: 3rdParty/DirectXTex/DDSView/shaders/ps2D.h
================================================
#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
//   fxc ddsview.fx /nologo /EPS_2D /Tps_4_1 /Fhshaders\ps2D.h
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// samLinear                         sampler      NA          NA    0        1
// tx2D                              texture  float4          2d    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue Format   Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_POSITION              0   xyzw        0      POS  float       
// TEXCOORD                 0   xyzw        1     NONE  float   xy  
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue Format   Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_Target                0   xyzw        0   TARGET  float   xyzw
//
ps_4_1
dcl_globalFlags refactoringAllowed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps linear v1.xy
dcl_output o0.xyzw
sample o0.xyzw, v1.xyxx, t0.xyzw, s0
ret 
// Approximately 2 instruction slots used
#endif

const BYTE g_PS_2D[] =
{
     68,  88,  66,  67,  45,  73, 
    251,  77, 247,  44, 253,  34, 
    100,  41, 211,  74, 100, 236, 
     72,  69,   1,   0,   0,   0, 
     80,   2,   0,   0,   5,   0, 
      0,   0,  52,   0,   0,   0, 
    216,   0,   0,   0,  48,   1, 
      0,   0, 100,   1,   0,   0, 
    212,   1,   0,   0,  82,  68, 
     69,  70, 156,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   2,   0,   0,   0, 
     28,   0,   0,   0,   1,   4, 
    255, 255,   0,   1,   0,   0, 
    107,   0,   0,   0,  92,   0, 
      0,   0,   3,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   1,   0, 
      0,   0,   1,   0,   0,   0, 
    102,   0,   0,   0,   2,   0, 
      0,   0,   5,   0,   0,   0, 
      4,   0,   0,   0, 255, 255, 
    255, 255,   0,   0,   0,   0, 
      1,   0,   0,   0,  13,   0, 
      0,   0, 115,  97, 109,  76, 
    105, 110, 101,  97, 114,   0, 
    116, 120,  50,  68,   0,  77, 
    105,  99, 114, 111, 115, 111, 
    102, 116,  32,  40,  82,  41, 
     32,  72,  76,  83,  76,  32, 
     83, 104,  97, 100, 101, 114, 
     32,  67, 111, 109, 112, 105, 
    108, 101, 114,  32,  57,  46, 
     50,  57,  46,  57,  53,  50, 
     46,  51,  49,  49,  49,   0, 
     73,  83,  71,  78,  80,   0, 
      0,   0,   2,   0,   0,   0, 
      8,   0,   0,   0,  56,   0, 
      0,   0,   0,   0,   0,   0, 
      1,   0,   0,   0,   3,   0, 
      0,   0,   0,   0,   0,   0, 
     15,   0,   0,   0,  68,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   3,   0, 
      0,   0,   1,   0,   0,   0, 
     15,   3,   0,   0,  83,  86, 
     95,  80,  79,  83,  73,  84, 
     73,  79,  78,   0,  84,  69, 
     88,  67,  79,  79,  82,  68, 
      0, 171, 171, 171,  79,  83, 
     71,  78,  44,   0,   0,   0, 
      1,   0,   0,   0,   8,   0, 
      0,   0,  32,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   3,   0,   0,   0, 
      0,   0,   0,   0,  15,   0, 
      0,   0,  83,  86,  95,  84, 
     97, 114, 103, 101, 116,   0, 
    171, 171,  83,  72,  68,  82, 
    104,   0,   0,   0,  65,   0, 
      0,   0,  26,   0,   0,   0, 
    106,   8,   0,   1,  90,   0, 
      0,   3,   0,  96,  16,   0, 
      0,   0,   0,   0,  88,  24, 
      0,   4,   0, 112,  16,   0, 
      0,   0,   0,   0,  85,  85, 
      0,   0,  98,  16,   0,   3, 
     50,  16,  16,   0,   1,   0, 
      0,   0, 101,   0,   0,   3, 
    242,  32,  16,   0,   0,   0, 
      0,   0,  69,   0,   0,   9, 
    242,  32,  16,   0,   0,   0, 
      0,   0,  70,  16,  16,   0, 
      1,   0,   0,   0,  70, 126, 
     16,   0,   0,   0,   0,   0, 
      0,  96,  16,   0,   0,   0, 
      0,   0,  62,   0,   0,   1, 
     83,  84,  65,  84, 116,   0, 
      0,   0,   2,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   2,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      1,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   1,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0
};


================================================
FILE: 3rdParty/DirectXTex/DDSView/shaders/ps2Darray.h
================================================
#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
//   fxc ddsview.fx /nologo /EPS_2DArray /Tps_4_1 /Fhshaders\ps2Darray.h
//
//
// Buffer Definitions: 
//
// cbuffer cbArrayControl
// {
//
//   float Index;                       // Offset:    0 Size:     4
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// samLinear                         sampler      NA          NA    0        1
// tx2DArray                         texture  float4     2darray    0        1
// cbArrayControl                    cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue Format   Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_POSITION              0   xyzw        0      POS  float       
// TEXCOORD                 0   xyzw        1     NONE  float   xy  
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue Format   Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_Target                0   xyzw        0   TARGET  float   xyzw
//
ps_4_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[1], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2darray (float,float,float,float) t0
dcl_input_ps linear v1.xy
dcl_output o0.xyzw
dcl_temps 1
mov r0.xy, v1.xyxx
mov r0.z, cb0[0].x
sample o0.xyzw, r0.xyzx, t0.xyzw, s0
ret 
// Approximately 4 instruction slots used
#endif

const BYTE g_PS_2DArray[] =
{
     68,  88,  66,  67,  55, 138, 
     65,  43, 181, 212,  29, 116, 
    142, 112,  89,  51, 193,  95, 
    148,  33,   1,   0,   0,   0, 
     20,   3,   0,   0,   5,   0, 
      0,   0,  52,   0,   0,   0, 
     88,   1,   0,   0, 176,   1, 
      0,   0, 228,   1,   0,   0, 
    152,   2,   0,   0,  82,  68, 
     69,  70,  28,   1,   0,   0, 
      1,   0,   0,   0, 160,   0, 
      0,   0,   3,   0,   0,   0, 
     28,   0,   0,   0,   1,   4, 
    255, 255,   0,   1,   0,   0, 
    232,   0,   0,   0, 124,   0, 
      0,   0,   3,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   1,   0, 
      0,   0,   1,   0,   0,   0, 
    134,   0,   0,   0,   2,   0, 
      0,   0,   5,   0,   0,   0, 
      5,   0,   0,   0, 255, 255, 
    255, 255,   0,   0,   0,   0, 
      1,   0,   0,   0,  13,   0, 
      0,   0, 144,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
      1,   0,   0,   0, 115,  97, 
    109,  76, 105, 110, 101,  97, 
    114,   0, 116, 120,  50,  68, 
     65, 114, 114,  97, 121,   0, 
     99,  98,  65, 114, 114,  97, 
    121,  67, 111, 110, 116, 114, 
    111, 108,   0, 171, 144,   0, 
      0,   0,   1,   0,   0,   0, 
    184,   0,   0,   0,  16,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0, 208,   0, 
      0,   0,   0,   0,   0,   0, 
      4,   0,   0,   0,   2,   0, 
      0,   0, 216,   0,   0,   0, 
      0,   0,   0,   0,  73, 110, 
    100, 101, 120,   0, 171, 171, 
      0,   0,   3,   0,   1,   0, 
      1,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,  77, 105, 
     99, 114, 111, 115, 111, 102, 
    116,  32,  40,  82,  41,  32, 
     72,  76,  83,  76,  32,  83, 
    104,  97, 100, 101, 114,  32, 
     67, 111, 109, 112, 105, 108, 
    101, 114,  32,  57,  46,  50, 
     57,  46,  57,  53,  50,  46, 
     51,  49,  49,  49,   0, 171, 
    171, 171,  73,  83,  71,  78, 
     80,   0,   0,   0,   2,   0, 
      0,   0,   8,   0,   0,   0, 
     56,   0,   0,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
      3,   0,   0,   0,   0,   0, 
      0,   0,  15,   0,   0,   0, 
     68,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      3,   0,   0,   0,   1,   0, 
      0,   0,  15,   3,   0,   0, 
     83,  86,  95,  80,  79,  83, 
     73,  84,  73,  79,  78,   0, 
     84,  69,  88,  67,  79,  79, 
     82,  68,   0, 171, 171, 171, 
     79,  83,  71,  78,  44,   0, 
      0,   0,   1,   0,   0,   0, 
      8,   0,   0,   0,  32,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   3,   0, 
      0,   0,   0,   0,   0,   0, 
     15,   0,   0,   0,  83,  86, 
     95,  84,  97, 114, 103, 101, 
    116,   0, 171, 171,  83,  72, 
     68,  82, 172,   0,   0,   0, 
     65,   0,   0,   0,  43,   0, 
      0,   0, 106,   8,   0,   1, 
     89,   0,   0,   4,  70, 142, 
     32,   0,   0,   0,   0,   0, 
      1,   0,   0,   0,  90,   0, 
      0,   3,   0,  96,  16,   0, 
      0,   0,   0,   0,  88,  64, 
      0,   4,   0, 112,  16,   0, 
      0,   0,   0,   0,  85,  85, 
      0,   0,  98,  16,   0,   3, 
     50,  16,  16,   0,   1,   0, 
      0,   0, 101,   0,   0,   3, 
    242,  32,  16,   0,   0,   0, 
      0,   0, 104,   0,   0,   2, 
      1,   0,   0,   0,  54,   0, 
      0,   5,  50,   0,  16,   0, 
      0,   0,   0,   0,  70,  16, 
     16,   0,   1,   0,   0,   0, 
     54,   0,   0,   6,  66,   0, 
     16,   0,   0,   0,   0,   0, 
     10, 128,  32,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
     69,   0,   0,   9, 242,  32, 
     16,   0,   0,   0,   0,   0, 
     70,   2,  16,   0,   0,   0, 
      0,   0,  70, 126,  16,   0, 
      0,   0,   0,   0,   0,  96, 
     16,   0,   0,   0,   0,   0, 
     62,   0,   0,   1,  83,  84, 
     65,  84, 116,   0,   0,   0, 
      4,   0,   0,   0,   1,   0, 
      0,   0,   0,   0,   0,   0, 
      2,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   1,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   2,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0
};


================================================
FILE: 3rdParty/DirectXTex/DDSView/shaders/ps3D.h
================================================
#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
//   fxc ddsview.fx /nologo /EPS_3D /Tps_4_1 /Fhshaders\ps3D.h
//
//
// Buffer Definitions: 
//
// cbuffer cbArrayControl
// {
//
//   float Index;                       // Offset:    0 Size:     4
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// samLinear                         sampler      NA          NA    0        1
// tx3D                              texture  float4          3d    0        1
// cbArrayControl                    cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue Format   Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_POSITION              0   xyzw        0      POS  float       
// TEXCOORD                 0   xyzw        1     NONE  float   xy  
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue Format   Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_Target                0   xyzw        0   TARGET  float   xyzw
//
ps_4_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[1], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture3d (float,float,float,float) t0
dcl_input_ps linear v1.xy
dcl_output o0.xyzw
dcl_temps 1
resinfo r0.x, l(0), t0.zxyw
div r0.z, cb0[0].x, r0.x
mov r0.xy, v1.xyxx
sample o0.xyzw, r0.xyzx, t0.xyzw, s0
ret 
// Approximately 5 instruction slots used
#endif

const BYTE g_PS_3D[] =
{
     68,  88,  66,  67, 119,  18, 
    113,  52,  66, 105,  65,  45, 
    139,  58, 175, 102,  69, 213, 
    121, 186,   1,   0,   0,   0, 
     52,   3,   0,   0,   5,   0, 
      0,   0,  52,   0,   0,   0, 
     84,   1,   0,   0, 172,   1, 
      0,   0, 224,   1,   0,   0, 
    184,   2,   0,   0,  82,  68, 
     69,  70,  24,   1,   0,   0, 
      1,   0,   0,   0, 156,   0, 
      0,   0,   3,   0,   0,   0, 
     28,   0,   0,   0,   1,   4, 
    255, 255,   0,   1,   0,   0, 
    228,   0,   0,   0, 124,   0, 
      0,   0,   3,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   1,   0, 
      0,   0,   1,   0,   0,   0, 
    134,   0,   0,   0,   2,   0, 
      0,   0,   5,   0,   0,   0, 
      8,   0,   0,   0, 255, 255, 
    255, 255,   0,   0,   0,   0, 
      1,   0,   0,   0,  13,   0, 
      0,   0, 139,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
      1,   0,   0,   0, 115,  97, 
    109,  76, 105, 110, 101,  97, 
    114,   0, 116, 120,  51,  68, 
      0,  99,  98,  65, 114, 114, 
     97, 121,  67, 111, 110, 116, 
    114, 111, 108,   0, 171, 171, 
    139,   0,   0,   0,   1,   0, 
      0,   0, 180,   0,   0,   0, 
     16,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
    204,   0,   0,   0,   0,   0, 
      0,   0,   4,   0,   0,   0, 
      2,   0,   0,   0, 212,   0, 
      0,   0,   0,   0,   0,   0, 
     73, 110, 100, 101, 120,   0, 
    171, 171,   0,   0,   3,   0, 
      1,   0,   1,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
     77, 105,  99, 114, 111, 115, 
    111, 102, 116,  32,  40,  82, 
     41,  32,  72,  76,  83,  76, 
     32,  83, 104,  97, 100, 101, 
    114,  32,  67, 111, 109, 112, 
    105, 108, 101, 114,  32,  57, 
     46,  50,  57,  46,  57,  53, 
     50,  46,  51,  49,  49,  49, 
      0, 171, 171, 171,  73,  83, 
     71,  78,  80,   0,   0,   0, 
      2,   0,   0,   0,   8,   0, 
      0,   0,  56,   0,   0,   0, 
      0,   0,   0,   0,   1,   0, 
      0,   0,   3,   0,   0,   0, 
      0,   0,   0,   0,  15,   0, 
      0,   0,  68,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      0,   0,   3,   0,   0,   0, 
      1,   0,   0,   0,  15,   3, 
      0,   0,  83,  86,  95,  80, 
     79,  83,  73,  84,  73,  79, 
     78,   0,  84,  69,  88,  67, 
     79,  79,  82,  68,   0, 171, 
    171, 171,  79,  83,  71,  78, 
     44,   0,   0,   0,   1,   0, 
      0,   0,   8,   0,   0,   0, 
     32,   0,   0,   0,   0,   0, 
      0,   0,   0,   0,   0,   0, 
      3,   0,   0,   0,   0,   0, 
      0,   0,  15,   0,   0,   0, 
     83,  86,  95,  84,  97, 114, 
    103, 101, 116,   0, 171, 171, 
     83,  72,  68,  82, 208,   0, 
      0,   0,  65,   0,   0,   0, 
     52,   0,   0,   0, 106,   8, 
      0,   1,  89,   0,   0,   4, 
     70, 142,  32,   0,   0,   0, 
      0,   0,   1,   0,   0,   0, 
     90,   0,   0,   3,   0,  96, 
     16,   0,   0,   0,   0,   0, 
     88,  40,   0,   4,   0, 112, 
     16,   0,   0,   0,
Download .txt
gitextract_5vvclg95/

├── .gitignore
├── 3rdParty/
│   ├── DirectXTex/
│   │   ├── .gitignore
│   │   ├── DDSTextureLoader/
│   │   │   ├── DDSTextureLoader.cpp
│   │   │   └── DDSTextureLoader.h
│   │   ├── DDSView/
│   │   │   ├── DDSView.rc
│   │   │   ├── DDSView_Desktop_2012.sln
│   │   │   ├── DDSView_Desktop_2012.vcxproj
│   │   │   ├── DDSView_Desktop_2012.vcxproj.filters
│   │   │   ├── DDSView_Desktop_2013.sln
│   │   │   ├── DDSView_Desktop_2013.vcxproj
│   │   │   ├── DDSView_Desktop_2013.vcxproj.filters
│   │   │   ├── DDSView_Desktop_2015.sln
│   │   │   ├── DDSView_Desktop_2015.vcxproj
│   │   │   ├── DDSView_Desktop_2015.vcxproj.filters
│   │   │   ├── ddsview.cpp
│   │   │   ├── ddsview.fx
│   │   │   ├── hlsl.cmd
│   │   │   └── shaders/
│   │   │       ├── ps1D.h
│   │   │       ├── ps1Darray.h
│   │   │       ├── ps2D.h
│   │   │       ├── ps2Darray.h
│   │   │       ├── ps3D.h
│   │   │       ├── psCube.h
│   │   │       └── vs.h
│   │   ├── DirectXTex/
│   │   │   ├── BC.cpp
│   │   │   ├── BC.h
│   │   │   ├── BC4BC5.cpp
│   │   │   ├── BC6HBC7.cpp
│   │   │   ├── BCDirectCompute.cpp
│   │   │   ├── BCDirectCompute.h
│   │   │   ├── DDS.h
│   │   │   ├── DirectXTex.h
│   │   │   ├── DirectXTex.inl
│   │   │   ├── DirectXTexCompress.cpp
│   │   │   ├── DirectXTexCompressGPU.cpp
│   │   │   ├── DirectXTexConvert.cpp
│   │   │   ├── DirectXTexD3D11.cpp
│   │   │   ├── DirectXTexDDS.cpp
│   │   │   ├── DirectXTexFlipRotate.cpp
│   │   │   ├── DirectXTexImage.cpp
│   │   │   ├── DirectXTexMipmaps.cpp
│   │   │   ├── DirectXTexMisc.cpp
│   │   │   ├── DirectXTexNormalMaps.cpp
│   │   │   ├── DirectXTexP.h
│   │   │   ├── DirectXTexPMAlpha.cpp
│   │   │   ├── DirectXTexResize.cpp
│   │   │   ├── DirectXTexTGA.cpp
│   │   │   ├── DirectXTexUtil.cpp
│   │   │   ├── DirectXTexWIC.cpp
│   │   │   ├── DirectXTex_Desktop_2012.sln
│   │   │   ├── DirectXTex_Desktop_2012.vcxproj
│   │   │   ├── DirectXTex_Desktop_2012.vcxproj.filters
│   │   │   ├── DirectXTex_Desktop_2013.sln
│   │   │   ├── DirectXTex_Desktop_2013.vcxproj
│   │   │   ├── DirectXTex_Desktop_2013.vcxproj.filters
│   │   │   ├── DirectXTex_Desktop_2015.sln
│   │   │   ├── DirectXTex_Desktop_2015.vcxproj
│   │   │   ├── DirectXTex_Desktop_2015.vcxproj.filters
│   │   │   ├── DirectXTex_Windows10.sln
│   │   │   ├── DirectXTex_Windows10.vcxproj
│   │   │   ├── DirectXTex_Windows10.vcxproj.filters
│   │   │   ├── DirectXTex_Windows81.sln
│   │   │   ├── DirectXTex_Windows81.vcxproj
│   │   │   ├── DirectXTex_Windows81.vcxproj.filters
│   │   │   ├── DirectXTex_WindowsPhone81.sln
│   │   │   ├── DirectXTex_WindowsPhone81.vcxproj
│   │   │   ├── DirectXTex_WindowsPhone81.vcxproj.filters
│   │   │   ├── DirectXTex_XboxOneADK.sln
│   │   │   ├── DirectXTex_XboxOneADK.vcxproj
│   │   │   ├── DirectXTex_XboxOneADK.vcxproj.filters
│   │   │   ├── DirectXTex_XboxOneXDK.sln
│   │   │   ├── DirectXTex_XboxOneXDK.vcxproj
│   │   │   ├── DirectXTex_XboxOneXDK.vcxproj.filters
│   │   │   ├── Filters.h
│   │   │   ├── Shaders/
│   │   │   │   ├── BC6HEncode.hlsl
│   │   │   │   ├── BC7Encode.hlsl
│   │   │   │   ├── CompileShaders.cmd
│   │   │   │   └── Compiled/
│   │   │   │       ├── BC6HEncode_EncodeBlockCS.inc
│   │   │   │       ├── BC6HEncode_TryModeG10CS.inc
│   │   │   │       ├── BC6HEncode_TryModeLE10CS.inc
│   │   │   │       ├── BC7Encode_EncodeBlockCS.inc
│   │   │   │       ├── BC7Encode_TryMode02CS.inc
│   │   │   │       ├── BC7Encode_TryMode137CS.inc
│   │   │   │       └── BC7Encode_TryMode456CS.inc
│   │   │   └── scoped.h
│   │   ├── MIT.txt
│   │   ├── ReadMe.txt
│   │   ├── ScreenGrab/
│   │   │   ├── ScreenGrab.cpp
│   │   │   └── ScreenGrab.h
│   │   ├── Texassemble/
│   │   │   ├── Texassemble_Desktop_2012.sln
│   │   │   ├── Texassemble_Desktop_2012.vcxproj
│   │   │   ├── Texassemble_Desktop_2012.vcxproj.filters
│   │   │   ├── Texassemble_Desktop_2013.sln
│   │   │   ├── Texassemble_Desktop_2013.vcxproj
│   │   │   ├── Texassemble_Desktop_2013.vcxproj.filters
│   │   │   ├── Texassemble_Desktop_2015.sln
│   │   │   ├── Texassemble_Desktop_2015.vcxproj
│   │   │   ├── Texassemble_Desktop_2015.vcxproj.filters
│   │   │   ├── texassemble.cpp
│   │   │   └── texassemble.rc
│   │   ├── Texconv/
│   │   │   ├── Texconv.rc
│   │   │   ├── Texconv_Desktop_2012.sln
│   │   │   ├── Texconv_Desktop_2012.vcxproj
│   │   │   ├── Texconv_Desktop_2012.vcxproj.filters
│   │   │   ├── Texconv_Desktop_2013.sln
│   │   │   ├── Texconv_Desktop_2013.vcxproj
│   │   │   ├── Texconv_Desktop_2013.vcxproj.filters
│   │   │   ├── Texconv_Desktop_2015.sln
│   │   │   ├── Texconv_Desktop_2015.vcxproj
│   │   │   ├── Texconv_Desktop_2015.vcxproj.filters
│   │   │   └── texconv.cpp
│   │   └── WICTextureLoader/
│   │       ├── WICTextureLoader.cpp
│   │       └── WICTextureLoader.h
│   └── Intel/
│       └── Source/
│           ├── StopWatch.cpp
│           ├── StopWatch.h
│           ├── ispc_texcomp.cpp
│           ├── ispc_texcomp.h
│           ├── win32Threads.cpp
│           └── win32Threads.h
├── IntelCompressionPlugin/
│   ├── IntelPlugin.cpp
│   ├── IntelPlugin.h
│   ├── IntelPlugin.r
│   ├── IntelPlugin.rc
│   ├── IntelPluginName.h
│   ├── IntelPluginUIWin.cpp
│   ├── IntelPluginUIWin.h
│   ├── IntelTextureWorks.vcxproj
│   ├── IntelTextureWorks.vcxproj.filters
│   ├── PreviewDialog.cpp
│   ├── PreviewDialog.h
│   ├── SaveOptionsDialog.cpp
│   ├── SaveOptionsDialog.h
│   ├── kernel.ispc
│   └── resource.h
├── IntelTextureWorks.sln
├── PhotoshopScripts/
│   ├── IntelTextureWorks-ConvertCubeMap.jsx
│   └── IntelTextureWorks-CubeMapGaussianBlur.jsx
├── README.md
├── Sample Images/
│   ├── CubeMapByLayerTestImage.psd
│   ├── HDR.hdr
│   ├── baboon-MipMapAsLayers.psd
│   ├── mandrill-MipMapAsLayers.psd
│   ├── monkey-32bit.hdr
│   ├── monkey-MipMapAsLayers.psd
│   └── monkey.tif
└── license.txt
Download .txt
SYMBOL INDEX (556 symbols across 49 files)

FILE: 3rdParty/DirectXTex/DDSTextureLoader/DDSTextureLoader.cpp
  type DDS_PIXELFORMAT (line 51) | struct DDS_PIXELFORMAT
  type DDS_MISC_FLAGS2 (line 86) | enum DDS_MISC_FLAGS2
  type DDS_HEADER (line 91) | struct DDS_HEADER
  type DDS_HEADER_DXT10 (line 109) | struct DDS_HEADER_DXT10
  type handle_closer (line 124) | struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h)...
  function HANDLE (line 128) | inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALU...
  function SetDebugObjectName (line 131) | inline void SetDebugObjectName(_In_ ID3D11DeviceChild* resource, _In_ co...
  function HRESULT (line 144) | static HRESULT LoadTextureDataFromFile( _In_z_ const wchar_t* fileName,
  function BitsPerPixel (line 272) | static size_t BitsPerPixel( _In_ DXGI_FORMAT fmt )
  function GetSurfaceInfo (line 422) | static void GetSurfaceInfo( _In_ size_t width,
  function DXGI_FORMAT (line 554) | static DXGI_FORMAT GetDXGIFormat( const DDS_PIXELFORMAT& ddpf )
  function DXGI_FORMAT (line 766) | static DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format )
  function HRESULT (line 798) | static HRESULT FillInitData( _In_ size_t width,
  function HRESULT (line 896) | static HRESULT CreateD3DResources( _In_ ID3D11Device* d3dDevice,
  function HRESULT (line 1133) | static HRESULT CreateTextureFromDDS( _In_ ID3D11Device* d3dDevice,
  function DDS_ALPHA_MODE (line 1484) | static DDS_ALPHA_MODE GetAlphaMode( _In_ const DDS_HEADER* header )
  function _Use_decl_annotations_ (line 1513) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 1527) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 1542) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 1561) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 1657) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 1670) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 1684) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 1702) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DDSTextureLoader/DDSTextureLoader.h
  function namespace (line 44) | namespace DirectX

FILE: 3rdParty/DirectXTex/DDSView/ddsview.cpp
  type SimpleVertex (line 26) | struct SimpleVertex
  type CBArrayControl (line 32) | struct CBArrayControl
  function wWinMain (line 98) | int WINAPI wWinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevI...
  function HRESULT (line 222) | HRESULT InitWindow( HINSTANCE hInstance, int nCmdShow, const TexMetadata...
  function LRESULT (line 275) | LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM...
  function HRESULT (line 322) | HRESULT InitDevice( const TexMetadata& mdata )
  function Render (line 694) | void Render()
  function CleanupDevice (line 719) | void CleanupDevice()

FILE: 3rdParty/DirectXTex/DirectXTex/BC.cpp
  type DirectX (line 26) | namespace DirectX
    function Decode565 (line 40) | inline static void Decode565(_Out_ HDRColorA *pColor, _In_ const uint1...
    function Encode565 (line 48) | inline static uint16_t Encode565(_In_ const HDRColorA *pColor)
    function OptimizeRGB (line 67) | static void OptimizeRGB(_Out_ HDRColorA *pX, _Out_ HDRColorA *pY,
    function DecodeBC1 (line 322) | inline static void DecodeBC1( _Out_writes_(NUM_PIXELS_PER_BLOCK) XMVEC...
    function EncodeBC1 (line 372) | static void EncodeBC1(_Out_ D3DX_BC1 *pBC, _In_reads_(NUM_PIXELS_PER_B...
    function EncodeSolidBC1 (line 681) | static void EncodeSolidBC1(_Out_ D3DX_BC1 *pBC, _In_reads_(NUM_PIXELS_...
    function _Use_decl_annotations_ (line 721) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 728) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 793) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 819) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 896) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 938) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/BC.h
  function namespace (line 22) | namespace DirectX
  function InterpolateRGB (line 104) | static void InterpolateRGB(_In_ const LDRColorA& c0, _In_ const LDRColor...
  function InterpolateA (line 119) | static void InterpolateA(_In_ const LDRColorA& c0, _In_ const LDRColorA&...
  function Interpolate (line 132) | static void Interpolate(_In_ const LDRColorA& c0, _In_ const LDRColorA& ...
  function class (line 141) | class HDRColorA
  function HDRColorA (line 159) | HDRColorA operator + ( _In_ const HDRColorA& c ) const
  function HDRColorA (line 164) | HDRColorA operator - ( _In_ const HDRColorA& c ) const
  function HDRColorA (line 169) | HDRColorA operator * ( _In_ float f ) const
  function HDRColorA (line 174) | HDRColorA operator / ( _In_ float f ) const
  function operator (line 180) | float operator * ( _In_ const HDRColorA& c ) const
  type LDREndPntPair (line 259) | struct LDREndPntPair
  type HDREndPntPair (line 265) | struct HDREndPntPair
  function HDRColorA (line 271) | inline HDRColorA* HDRColorALerp(_Out_ HDRColorA *pOut, _In_ const HDRCol...
  type D3DX_BC1 (line 282) | struct D3DX_BC1
  type D3DX_BC2 (line 289) | struct D3DX_BC2
  type D3DX_BC3 (line 296) | struct D3DX_BC3
  function class (line 304) | class INTColor
  function INTColor (line 315) | INTColor operator - ( _In_ const INTColor& c ) const
  function Set (line 351) | void Set(_In_ const HDRColorA& c, _In_ bool bSigned)
  function ToF16 (line 379) | void ToF16(_Out_writes_(3) PackedVector::HALF aF16[3], _In_ bool bSigned...
  function PackedVector (line 407) | static PackedVector::HALF INT2F16(_In_ int input, _In_ bool bSigned)
  type INTEndPntPair (line 434) | struct INTEndPntPair
  function GetBits (line 454) | uint8_t GetBits(_Inout_ size_t& uStartBit, _In_ size_t uNumBits) const
  function SetBit (line 477) | void SetBit(_Inout_ size_t& uStartBit, _In_ uint8_t uValue)
  function SetBits (line 488) | void SetBits(_Inout_ size_t& uStartBit, _In_ size_t uNumBits, _In_ uint8...
  function class (line 519) | class D3DX_BC6H : private CBits< 16 >
  function class (line 623) | class D3DX_BC7 : private CBits< 16 >

FILE: 3rdParty/DirectXTex/DirectXTex/BC4BC5.cpp
  type DirectX (line 20) | namespace DirectX
    type BC4_UNORM (line 42) | struct BC4_UNORM
      method R (line 44) | float R(size_t uOffset) const
      method DecodeFromIndex (line 50) | float DecodeFromIndex(size_t uIndex) const
      method GetIndex (line 74) | size_t GetIndex(size_t uOffset) const
      method SetIndex (line 79) | void SetIndex(size_t uOffset, size_t uIndex)
    type BC4_SNORM (line 98) | struct BC4_SNORM
      method R (line 100) | float R(size_t uOffset) const
      method DecodeFromIndex (line 106) | float DecodeFromIndex(size_t uIndex) const
      method GetIndex (line 133) | size_t GetIndex(size_t uOffset) const
      method SetIndex (line 138) | void SetIndex(size_t uOffset, size_t uIndex)
    function FloatToSNorm (line 161) | static void inline FloatToSNorm( _In_ float fVal, _Out_ int8_t *piSNorm )
    function FindEndPointsBC4U (line 186) | static void FindEndPointsBC4U( _In_reads_(BLOCK_SIZE) const float theT...
    function FindEndPointsBC4S (line 240) | static void FindEndPointsBC4S(_In_reads_(BLOCK_SIZE) const float theTe...
    function FindEndPointsBC5U (line 296) | static inline void FindEndPointsBC5U( _In_reads_(BLOCK_SIZE) const flo...
    function FindEndPointsBC5S (line 304) | static inline void FindEndPointsBC5S( _In_reads_(BLOCK_SIZE) const flo...
    function FindClosestUNORM (line 314) | static void FindClosestUNORM(_Inout_ BC4_UNORM* pBC, _In_reads_(NUM_PI...
    function FindClosestSNORM (line 339) | static void FindClosestSNORM(_Inout_ BC4_SNORM* pBC, _In_reads_(NUM_PI...
    function _Use_decl_annotations_ (line 372) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 387) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 402) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 423) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 448) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 464) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 480) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 514) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/BC6HBC7.cpp
  type DirectX (line 22) | namespace DirectX
    function TransformForward (line 575) | inline static void TransformForward(_Inout_updates_all_(BC6H_MAX_REGIO...
    function TransformInverse (line 582) | inline static void TransformInverse(_Inout_updates_all_(BC6H_MAX_REGIO...
    function Norm (line 596) | inline static float Norm(_In_ const INTColor& a, _In_ const INTColor& b)
    function NBits (line 605) | inline static int NBits(_In_ int n, _In_ bool bIsSigned)
    function OptimizeRGB (line 627) | static float OptimizeRGB(_In_reads_(NUM_PIXELS_PER_BLOCK) const HDRCol...
    function OptimizeRGBA (line 819) | static float OptimizeRGBA(_In_reads_(NUM_PIXELS_PER_BLOCK) const HDRCo...
    function ComputeError (line 984) | static float ComputeError(_Inout_ const LDRColorA& pixel, _In_reads_(1...
    function FillWithErrorColors (line 1058) | inline static void FillWithErrorColors( _Out_writes_(NUM_PIXELS_PER_BL...
    function _Use_decl_annotations_ (line 1076) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1237) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1284) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1312) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1348) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1363) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1404) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1454) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1488) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1548) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1600) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1626) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1654) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1695) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1716) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1759) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1808) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1843) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1868) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1936) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2145) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2238) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2267) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2309) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2380) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2446) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2469) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2549) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2636) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2685) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2708) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2820) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2828) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2836) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2845) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2858) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2866) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/BCDirectCompute.cpp
  type BufferBC6HBC7 (line 34) | struct BufferBC6HBC7
  type ConstantsBC6HBC7 (line 39) | struct ConstantsBC6HBC7
  function RunComputeShader (line 53) | inline void RunComputeShader( ID3D11DeviceContext* pContext,
  function ResetContext (line 72) | inline void ResetContext( ID3D11DeviceContext* pContext )
  type DirectX (line 85) | namespace DirectX
    function _Use_decl_annotations_ (line 99) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 180) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 344) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/BCDirectCompute.h
  function namespace (line 16) | namespace DirectX

FILE: 3rdParty/DirectXTex/DirectXTex/DDS.h
  function namespace (line 35) | namespace DirectX

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTex.h
  function namespace (line 62) | namespace DirectX
  type DDS_FLAGS (line 163) | enum DDS_FLAGS
  type WIC_FLAGS (line 192) | enum WIC_FLAGS
  type Image (line 244) | struct Image
  function class (line 254) | class ScratchImage
  function TexMetadata (line 281) | const TexMetadata& __cdecl GetMetadata() const { return _metadata; }
  function Image (line 284) | const Image* __cdecl GetImages() const { return _image; }
  function GetImageCount (line 285) | size_t __cdecl GetImageCount() const { return _nimages; }
  function GetPixelsSize (line 288) | size_t __cdecl GetPixelsSize() const { return _size; }
  function GetBufferSize (line 320) | size_t __cdecl GetBufferSize() const { return _size; }
  type WICCodecs (line 377) | enum WICCodecs
  type TEX_FR_FLAGS (line 393) | enum TEX_FR_FLAGS
  type TEX_FILTER_FLAGS (line 408) | enum TEX_FILTER_FLAGS
  type TEX_PMALPHA_FLAGS (line 490) | enum TEX_PMALPHA_FLAGS
  type TEX_COMPRESS_FLAGS (line 508) | enum TEX_COMPRESS_FLAGS
  type CNMAP_FLAGS (line 556) | enum CNMAP_FLAGS
  type Rect (line 587) | struct Rect

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexCompress.cpp
  type DirectX (line 26) | namespace DirectX
    function DWORD (line 29) | inline static DWORD _GetBCFlags( _In_ DWORD compress )
    function DWORD (line 39) | inline static DWORD _GetSRGBFlags( _In_ DWORD compress )
    function _DetermineEncoderSettings (line 47) | inline static bool _DetermineEncoderSettings( _In_ DXGI_FORMAT format,...
    function HRESULT (line 73) | static HRESULT _CompressBC( _In_ const Image& image, _In_ const Image&...
    function HRESULT (line 191) | static HRESULT _CompressBC_Parallel( _In_ const Image& image, _In_ con...
    function DXGI_FORMAT (line 310) | static DXGI_FORMAT _DefaultDecompress( _In_ DXGI_FORMAT format )
    function HRESULT (line 358) | static HRESULT _DecompressBC( _In_ const Image& cImage, _In_ const Ima...
    function _IsAlphaAllOpaqueBC (line 472) | bool _IsAlphaAllOpaqueBC( _In_ const Image& cImage )
    function _Use_decl_annotations_ (line 564) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 606) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 687) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 732) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexCompressGPU.cpp
  type DirectX (line 20) | namespace DirectX
    function DWORD (line 23) | inline static DWORD _GetSRGBFlags( _In_ DWORD compress )
    function HRESULT (line 35) | static HRESULT _ConvertToRGBA32( _In_ const Image& srcImage, _In_ Scra...
    function HRESULT (line 95) | static HRESULT _ConvertToRGBAF32( const Image& srcImage, ScratchImage&...
    function HRESULT (line 140) | inline static HRESULT _GPUCompress( _In_ GPUCompressBC* gpubc, _In_ co...
    function _Use_decl_annotations_ (line 200) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 242) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexConvert.cpp
  function round_to_nearest (line 24) | inline float round_to_nearest( float x )
  function FloatTo7e3 (line 45) | inline uint32_t FloatTo7e3(float Value)
  function FloatFrom7e3 (line 78) | inline float FloatFrom7e3( uint32_t Value )
  function FloatTo6e4 (line 111) | inline uint32_t FloatTo6e4(float Value)
  function FloatFrom6e4 (line 144) | inline float FloatFrom6e4( uint32_t Value )
  type DirectX (line 178) | namespace DirectX
    function _CopyScanline (line 189) | void _CopyScanline(_When_(pDestination == pSource, _Inout_updates_byte...
    function _Use_decl_annotations_ (line 430) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 593) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 728) | _Use_decl_annotations_ bool _LoadScanline( XMVECTOR* pDestination, siz...
    function _Use_decl_annotations_ (line 1600) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2501) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2541) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2567) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2594) | _Use_decl_annotations_
    function XMVECTOR (line 2670) | static inline XMVECTOR XMColorRGBToSRGB( FXMVECTOR rgb )
    function _Use_decl_annotations_ (line 2687) | _Use_decl_annotations_
    function XMVECTOR (line 2758) | static inline XMVECTOR XMColorSRGBToRGB( FXMVECTOR srgb )
    function _Use_decl_annotations_ (line 2775) | _Use_decl_annotations_
    type ConvertData (line 2844) | struct ConvertData
    function _ConvertCompare (line 2939) | static int __cdecl _ConvertCompare( void *context, const void* ptr1, c...
    function _Use_decl_annotations_ (line 2948) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2968) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 3758) | _Use_decl_annotations_
  function _UseWICConversion (line 4161) | static inline bool _UseWICConversion( _In_ DWORD filter, _In_ DXGI_FORMA...
  function HRESULT (line 4272) | static HRESULT _ConvertUsingWIC( _In_ const Image& srcImage, _In_ const ...
  function HRESULT (line 4321) | static HRESULT _Convert( _In_ const Image& srcImage, _In_ DWORD filter, ...
  function DXGI_FORMAT (line 4404) | static DXGI_FORMAT _PlanarToSingle( _In_ DXGI_FORMAT format )
  function HRESULT (line 4474) | static HRESULT _ConvertToSinglePlane( _In_ const Image& srcImage, _In_ c...
  function _Use_decl_annotations_ (line 4560) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 4614) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 4763) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 4806) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexD3D11.cpp
  type DirectX (line 24) | namespace DirectX
    function HRESULT (line 27) | static HRESULT _Capture( _In_ ID3D11DeviceContext* pContext, _In_ ID3D...
    function _Use_decl_annotations_ (line 194) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 382) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 391) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 582) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 591) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 685) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexDDS.cpp
  type DirectX (line 20) | namespace DirectX
    type CONVERSION_FLAGS (line 26) | enum CONVERSION_FLAGS
    type LegacyDDS (line 48) | struct LegacyDDS
    function DXGI_FORMAT (line 144) | static DXGI_FORMAT _GetDXGIFormat( const DDS_PIXELFORMAT& ddpf, DWORD ...
    function HRESULT (line 199) | static HRESULT _DecodeDDSHeader( _In_reads_bytes_(size) LPCVOID pSourc...
    function _Use_decl_annotations_ (line 440) | _Use_decl_annotations_
    type TEXP_LEGACY_FORMAT (line 682) | enum TEXP_LEGACY_FORMAT
    function TEXP_LEGACY_FORMAT (line 697) | inline static TEXP_LEGACY_FORMAT _FindLegacyFormat( DWORD flags )
    function _LegacyExpandScanline (line 726) | static bool _LegacyExpandScanline( _Out_writes_bytes_(outSize) LPVOID ...
    function HRESULT (line 1024) | static HRESULT _CopyImage( _In_reads_bytes_(size) const void* pPixels,...
    function HRESULT (line 1254) | static HRESULT _CopyImageInPlace( DWORD convFlags, _In_ const ScratchI...
    function _Use_decl_annotations_ (line 1308) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1318) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1382) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1435) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1610) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1821) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexFlipRotate.cpp
  type DirectX (line 20) | namespace DirectX
    function HRESULT (line 26) | static HRESULT _PerformFlipRotateUsingWIC( _In_ const Image& srcImage,...
    function HRESULT (line 84) | static HRESULT _PerformFlipRotateViaF32( _In_ const Image& srcImage, _...
    function _Use_decl_annotations_ (line 131) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 213) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexImage.cpp
  type DirectX (line 18) | namespace DirectX
    function _Use_decl_annotations_ (line 28) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 107) | _Use_decl_annotations_
    function ScratchImage (line 232) | ScratchImage& ScratchImage::operator= (ScratchImage&& moveFrom)
    function _Use_decl_annotations_ (line 256) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 341) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 357) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 411) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 464) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 480) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 517) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 577) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 596) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 673) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 692) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexMipmaps.cpp
  type DirectX (line 22) | namespace DirectX
    function ispow2 (line 28) | inline static bool ispow2( _In_ size_t x )
    function _CountMips (line 35) | static size_t _CountMips( _In_ size_t width, _In_ size_t height )
    function _CalculateMipLevels (line 53) | bool _CalculateMipLevels( _In_ size_t width, _In_ size_t height, _Inou...
    function _CountMips3D (line 74) | static size_t _CountMips3D( _In_ size_t width, _In_ size_t height, _In...
    function _CalculateMipLevels3D (line 95) | bool _CalculateMipLevels3D( _In_ size_t width, _In_ size_t height, _In...
    function HRESULT (line 118) | static HRESULT _EnsureWicBitmapPixelFormat( _In_ IWICImagingFactory* p...
    function HRESULT (line 169) | HRESULT _ResizeSeparateColorAndAlpha( _In_ IWICImagingFactory* pWIC, _...
    function _UseWICFiltering (line 375) | static bool _UseWICFiltering( _In_ DXGI_FORMAT format, _In_ DWORD filt...
    function HRESULT (line 446) | static HRESULT _GenerateMipMapsUsingWIC( _In_ const Image& baseImage, ...
    function HRESULT (line 578) | static HRESULT _Setup2DMips( _In_reads_(nimages) const Image* baseImag...
    function HRESULT (line 631) | static HRESULT _Generate2DMipsPointFilter( _In_ size_t levels, _In_ co...
    function HRESULT (line 715) | static HRESULT _Generate2DMipsBoxFilter( _In_ size_t levels, _In_ DWOR...
    function HRESULT (line 809) | static HRESULT _Generate2DMipsLinearFilter( _In_ size_t levels, _In_ D...
    function HRESULT (line 921) | static HRESULT _Generate2DMipsCubicFilter( _In_ size_t levels, _In_ DW...
    function HRESULT (line 1107) | static HRESULT _Generate2DMipsTriangleFilter( _In_ size_t levels, _In_...
    function HRESULT (line 1319) | static HRESULT _Setup3DMips( _In_reads_(depth) const Image* baseImages...
    function HRESULT (line 1371) | static HRESULT _Generate3DMipsPointFilter( _In_ size_t depth, _In_ siz...
    function HRESULT (line 1517) | static HRESULT _Generate3DMipsBoxFilter( _In_ size_t depth, _In_ size_...
    function HRESULT (line 1689) | static HRESULT _Generate3DMipsLinearFilter( _In_ size_t depth, _In_ si...
    function HRESULT (line 1882) | static HRESULT _Generate3DMipsCubicFilter( _In_ size_t depth, _In_ siz...
    function HRESULT (line 2261) | static HRESULT _Generate3DMipsTriangleFilter( _In_ size_t depth, _In_ ...
    function _Use_decl_annotations_ (line 2507) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2676) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2883) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 2985) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexMisc.cpp
  type DirectX (line 18) | namespace DirectX
    function HRESULT (line 23) | static HRESULT _ComputeMSE( _In_ const Image& image1, _In_ const Image...
    function _Use_decl_annotations_ (line 173) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 280) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexNormalMaps.cpp
  type DirectX (line 18) | namespace DirectX
    function _EvaluateColor (line 22) | static inline float _EvaluateColor( _In_ FXMVECTOR val, _In_ DWORD fla...
    function _EvaluateRow (line 51) | static void _EvaluateRow( _In_reads_(width) const XMVECTOR* pSource, _...
    function HRESULT (line 76) | static HRESULT _ComputeNMap( _In_ const Image& srcImage, _In_ DWORD fl...
    function _Use_decl_annotations_ (line 254) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 306) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexP.h
  type IWICImagingFactory (line 47) | struct IWICImagingFactory
  function namespace (line 51) | namespace DirectX

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexPMAlpha.cpp
  type DirectX (line 18) | namespace DirectX
    function HRESULT (line 21) | static HRESULT _PremultiplyAlpha( _In_ const Image& srcImage, _In_ con...
    function HRESULT (line 59) | static HRESULT _PremultiplyAlphaLinear( _In_ const Image& srcImage, _I...
    function _Use_decl_annotations_ (line 110) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 153) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexResize.cpp
  type DirectX (line 22) | namespace DirectX
    function HRESULT (line 33) | static HRESULT _PerformResizeUsingWIC( _In_ const Image& srcImage, _In...
    function HRESULT (line 126) | static HRESULT _PerformResizeViaF32( _In_ const Image& srcImage, _In_ ...
    function _UseWICFiltering (line 167) | static bool _UseWICFiltering( _In_ DXGI_FORMAT format, _In_ DWORD filt...
    function HRESULT (line 242) | static HRESULT _ResizePointFilter( _In_ const Image& srcImage, _In_ co...
    function HRESULT (line 300) | static HRESULT _ResizeBoxFilter( _In_ const Image& srcImage, _In_ DWOR...
    function HRESULT (line 362) | static HRESULT _ResizeLinearFilter( _In_ const Image& srcImage, _In_ D...
    function HRESULT (line 448) | static HRESULT _ResizeCubicFilter( _In_ const Image& srcImage, _In_ DW...
    function HRESULT (line 608) | static HRESULT _ResizeTriangleFilter( _In_ const Image& srcImage, _In_...
    function HRESULT (line 784) | static HRESULT _PerformResizeUsingCustomFilters( _In_ const Image& src...
    function _Use_decl_annotations_ (line 829) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 892) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexTGA.cpp
  type TGAImageType (line 26) | enum TGAImageType
  type TGADescriptorFlags (line 37) | enum TGADescriptorFlags
  type TGA_HEADER (line 48) | struct TGA_HEADER
  type TGA_FOOTER (line 64) | struct TGA_FOOTER
  type TGA_EXTENSION (line 71) | struct TGA_EXTENSION
  type CONVERSION_FLAGS (line 101) | enum CONVERSION_FLAGS
  type DirectX (line 113) | namespace DirectX
    function HRESULT (line 119) | static HRESULT _DecodeTGAHeader( _In_reads_bytes_(size) LPCVOID pSourc...
    function HRESULT (line 234) | static HRESULT _SetAlphaChannelToOpaque( _In_ const Image* image )
    function HRESULT (line 255) | static HRESULT _UncompressPixels( _In_reads_bytes_(size) LPCVOID pSour...
    function HRESULT (line 575) | static HRESULT _CopyPixels( _In_reads_bytes_(size) LPCVOID pSource, si...
    function HRESULT (line 739) | static HRESULT _EncodeTGAHeader( _In_ const Image& image, _Out_ TGA_HE...
    function _Copy24bppScanline (line 802) | static void _Copy24bppScanline( _Out_writes_bytes_(outSize) LPVOID pDe...
    function _Use_decl_annotations_ (line 839) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 849) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 911) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 964) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1213) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1279) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexUtil.cpp
  type WICTranslate (line 21) | struct WICTranslate
  type DirectX (line 57) | namespace DirectX
    function _Use_decl_annotations_ (line 64) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 84) | _Use_decl_annotations_
    function DWORD (line 145) | DWORD _CheckWICColorSpace( _In_ const GUID& sourceGUID, _In_ const GUI...
    function _IsWIC2 (line 172) | bool _IsWIC2()
    function IWICImagingFactory (line 177) | IWICImagingFactory* _GetWIC()
    function _Use_decl_annotations_ (line 237) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 276) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 433) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 600) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 700) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 735) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 851) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 910) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 946) | _Use_decl_annotations_
    function Blob (line 1001) | Blob& Blob::operator= (Blob&& moveFrom)
    function _Use_decl_annotations_ (line 1027) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/DirectXTexWIC.cpp
  function HRESULT (line 31) | static inline HRESULT CreateMemoryStream( _Outptr_ IStream** stream )
  function HRESULT (line 43) | static inline HRESULT CreateMemoryStream( _Outptr_ IStream** stream )
  function HRESULT (line 62) | static inline HRESULT CreateMemoryStream( _Outptr_ IStream** stream )
  type WICConvert (line 74) | struct WICConvert
  type DirectX (line 138) | namespace DirectX
    function DXGI_FORMAT (line 144) | static DXGI_FORMAT _DetermineFormat( _In_ const WICPixelFormatGUID& pi...
    function HRESULT (line 237) | static HRESULT _DecodeMetadata( _In_ DWORD flags,
    function HRESULT (line 344) | static HRESULT _DecodeSingleFrame( _In_ DWORD flags, _In_ const TexMet...
    function HRESULT (line 403) | static HRESULT _DecodeMultiframe( _In_ DWORD flags, _In_ const TexMeta...
    function HRESULT (line 531) | static HRESULT _EncodeMetadata( _In_ IWICBitmapFrameEncode* frame, _In...
    function HRESULT (line 617) | static HRESULT _EncodeImage( _In_ const Image& image, _In_ DWORD flags...
    function HRESULT (line 713) | static HRESULT _EncodeSingleFrame( _In_ const Image& image, _In_ DWORD...
    function HRESULT (line 772) | static HRESULT _EncodeMultiframe( _In_reads_(nimages) const Image* ima...
    function _Use_decl_annotations_ (line 842) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 891) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 924) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 994) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1049) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1096) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1151) | _Use_decl_annotations_
    function _Use_decl_annotations_ (line 1181) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/DirectXTex/Filters.h
  function namespace (line 23) | namespace DirectX

FILE: 3rdParty/DirectXTex/DirectXTex/scoped.h
  type aligned_deleter (line 21) | struct aligned_deleter { void operator()(void* p) { _aligned_free(p); }
  type std (line 23) | typedef std::unique_ptr<float[], aligned_deleter> ScopedAlignedArrayFloat;
  type std (line 25) | typedef std::unique_ptr<DirectX::XMVECTOR[], aligned_deleter> ScopedAlig...
  type handle_closer (line 28) | struct handle_closer { void operator()(HANDLE h) { assert(h != INVALID_H...
  type public (line 30) | typedef public std::unique_ptr<void, handle_closer> ScopedHandle;
  function HANDLE (line 32) | inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALU...

FILE: 3rdParty/DirectXTex/ScreenGrab/ScreenGrab.cpp
  type DDS_PIXELFORMAT (line 67) | struct DDS_PIXELFORMAT
  type handle_closer (line 195) | struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h)...
  function HANDLE (line 199) | inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALU...
  function BitsPerPixel (line 205) | static size_t BitsPerPixel( _In_ DXGI_FORMAT fmt )
  function IsCompressed (line 355) | static bool IsCompressed( _In_ DXGI_FORMAT fmt )
  function GetSurfaceInfo (line 391) | static void GetSurfaceInfo( _In_ size_t width,
  function DXGI_FORMAT (line 521) | static DXGI_FORMAT EnsureNotTypeless( DXGI_FORMAT fmt )
  function HRESULT (line 551) | static HRESULT CaptureTexture( _In_ ID3D11DeviceContext* pContext,
  function IWICImagingFactory (line 653) | static IWICImagingFactory* _GetWIC()
  function HRESULT (line 712) | HRESULT DirectX::SaveDDSTextureToFile( _In_ ID3D11DeviceContext* pContext,
  function HRESULT (line 867) | HRESULT DirectX::SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext,

FILE: 3rdParty/DirectXTex/ScreenGrab/ScreenGrab.h
  function namespace (line 37) | namespace DirectX

FILE: 3rdParty/DirectXTex/Texassemble/texassemble.cpp
  type OPTIONS (line 23) | enum OPTIONS    // Note: dwOptions below assumes 32 or less options.
  type SConversion (line 42) | struct SConversion
  type SValue (line 47) | struct SValue
  function DWORD (line 172) | DWORD LookupByName(const WCHAR *pName, const SValue *pArray)
  function WCHAR (line 185) | const WCHAR* LookupByValue(DWORD pValue, const SValue *pArray)
  function PrintFormat (line 198) | void PrintFormat(DXGI_FORMAT Format)
  function PrintInfo (line 210) | void PrintInfo( const TexMetadata& info )
  function PrintList (line 252) | void PrintList(size_t cch, SValue *pValue)
  function PrintLogo (line 273) | void PrintLogo()
  function PrintUsage (line 281) | void PrintUsage()
  function wmain (line 315) | int __cdecl wmain(_In_ int argc, _In_z_count_(argc) wchar_t* argv[])

FILE: 3rdParty/DirectXTex/Texconv/texconv.cpp
  type OPTIONS (line 25) | enum OPTIONS    // Note: dwOptions below assumes 64 or less options.
  type SConversion (line 67) | struct SConversion
  type SValue (line 73) | struct SValue
  function ispow2 (line 315) | inline static bool ispow2(size_t x)
  function DWORD (line 322) | DWORD LookupByName(const WCHAR *pName, const SValue *pArray)
  function WCHAR (line 335) | const WCHAR* LookupByValue(DWORD pValue, const SValue *pArray)
  function PrintFormat (line 348) | void PrintFormat(DXGI_FORMAT Format)
  function PrintInfo (line 371) | void PrintInfo( const TexMetadata& info )
  function PrintList (line 413) | void PrintList(size_t cch, SValue *pValue)
  function PrintLogo (line 434) | void PrintLogo()
  function PrintUsage (line 445) | void PrintUsage()
  function CreateDevice (line 510) | bool CreateDevice( _Outptr_ ID3D11Device** pDevice )
  function FitPowerOf2 (line 591) | void FitPowerOf2( size_t origx, size_t origy, size_t& targetx, size_t& t...
  function wmain (line 637) | int __cdecl wmain(_In_ int argc, _In_z_count_(argc) wchar_t* argv[])

FILE: 3rdParty/DirectXTex/WICTextureLoader/WICTextureLoader.cpp
  function SetDebugObjectName (line 56) | inline void SetDebugObjectName(_In_ ID3D11DeviceChild* resource, _In_ co...
  type WICTranslate (line 69) | struct WICTranslate
  type WICConvert (line 104) | struct WICConvert
  function IWICImagingFactory (line 173) | static IWICImagingFactory* _GetWIC()
  function DXGI_FORMAT (line 230) | static DXGI_FORMAT _WICToDXGI( const GUID& guid )
  function _WICBitsPerPixel (line 250) | static size_t _WICBitsPerPixel( REFGUID targetGuid )
  function DXGI_FORMAT (line 280) | static DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format )
  function HRESULT (line 312) | static HRESULT CreateTextureFromWIC( _In_ ID3D11Device* d3dDevice,
  function _Use_decl_annotations_ (line 687) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 700) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 714) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 732) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 811) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 823) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 836) | _Use_decl_annotations_
  function _Use_decl_annotations_ (line 853) | _Use_decl_annotations_

FILE: 3rdParty/DirectXTex/WICTextureLoader/WICTextureLoader.h
  function namespace (line 53) | namespace DirectX

FILE: 3rdParty/Intel/Source/StopWatch.h
  function class (line 22) | class StopWatch

FILE: 3rdParty/Intel/Source/ispc_texcomp.cpp
  function GetProfile_ultrafast (line 20) | void GetProfile_ultrafast(bc7_enc_settings* settings)
  function GetProfile_veryfast (line 54) | void GetProfile_veryfast(bc7_enc_settings* settings)
  function GetProfile_fast (line 88) | void GetProfile_fast(bc7_enc_settings* settings)
  function GetProfile_basic (line 122) | void GetProfile_basic(bc7_enc_settings* settings)
  function GetProfile_slow (line 156) | void GetProfile_slow(bc7_enc_settings* settings)
  function GetProfile_alpha_ultrafast (line 191) | void GetProfile_alpha_ultrafast(bc7_enc_settings* settings)
  function GetProfile_alpha_veryfast (line 226) | void GetProfile_alpha_veryfast(bc7_enc_settings* settings)
  function GetProfile_alpha_fast (line 261) | void GetProfile_alpha_fast(bc7_enc_settings* settings)
  function GetProfile_alpha_basic (line 296) | void GetProfile_alpha_basic(bc7_enc_settings* settings)
  function GetProfile_alpha_slow (line 331) | void GetProfile_alpha_slow(bc7_enc_settings* settings)
  function GetProfile_bc6h_veryfast (line 367) | void GetProfile_bc6h_veryfast(bc6h_enc_settings* settings)
  function GetProfile_bc6h_fast (line 376) | void GetProfile_bc6h_fast(bc6h_enc_settings* settings)
  function GetProfile_bc6h_basic (line 385) | void GetProfile_bc6h_basic(bc6h_enc_settings* settings)
  function GetProfile_bc6h_slow (line 394) | void GetProfile_bc6h_slow(bc6h_enc_settings* settings)
  function GetProfile_bc6h_veryslow (line 403) | void GetProfile_bc6h_veryslow(bc6h_enc_settings* settings)
  function GetProfile_etc_slow (line 412) | void GetProfile_etc_slow(etc_enc_settings* settings)
  function CompressBlocksBC1 (line 417) | void CompressBlocksBC1(const rgba_surface* src, uint8_t* dst)
  function CompressBlocksBC3 (line 422) | void CompressBlocksBC3(const rgba_surface* src, uint8_t* dst)
  function CompressBlocksBC7 (line 427) | void CompressBlocksBC7(const rgba_surface* src, uint8_t* dst, bc7_enc_se...
  function CompressBlocksBC6H (line 432) | void CompressBlocksBC6H(const rgba_surface* src, uint8_t* dst, bc6h_enc_...
  function CompressBlocksETC1 (line 437) | void CompressBlocksETC1(const rgba_surface* src, uint8_t* dst, etc_enc_s...

FILE: 3rdParty/Intel/Source/ispc_texcomp.h
  type rgba_surface (line 19) | struct rgba_surface
  type bc7_enc_settings (line 27) | struct bc7_enc_settings
  type bc6h_enc_settings (line 43) | struct bc6h_enc_settings
  type etc_enc_settings (line 52) | struct etc_enc_settings
  type astc_enc_settings (line 57) | struct astc_enc_settings

FILE: 3rdParty/Intel/Source/win32Threads.cpp
  function ReportWinThreadError (line 49) | void ReportWinThreadError(const wchar_t *str) {
  function GetProcessorCount (line 83) | int GetProcessorCount()
  function InitWin32Threads (line 98) | void InitWin32Threads() {
  function DestroyThreads (line 130) | void DestroyThreads()
  function GetBytesPerBlock (line 192) | int GetBytesPerBlock(DXGI_FORMAT format)
  function CompressImageMT (line 211) | bool CompressImageMT(const rgba_surface* input, BYTE* output, Compressio...
  function DWORD (line 251) | DWORD WINAPI CompressImageMT_Thread( LPVOID lpParam )
  function CompressImageST (line 277) | bool CompressImageST(const rgba_surface* input, uint8_t* output, Compres...
  function CompressImageBC1 (line 289) | void CompressImageBC1(const rgba_surface* input, BYTE* output)
  function CompressImageBC3 (line 294) | void CompressImageBC3(const rgba_surface* input, BYTE* output)

FILE: 3rdParty/Intel/Source/win32Threads.h
  type EThreadState (line 26) | enum EThreadState {

FILE: IntelCompressionPlugin/IntelPlugin.cpp
  function IntelPlugin (line 26) | IntelPlugin& IntelPlugin::GetInstance()
  function POINT (line 435) | POINT IntelPlugin::GetPreviewDimensions()
  function rgba_surface (line 893) | rgba_surface IntelPlugin::DoPaddingToMultiplesOf4(const rgba_surface &in...
  function ScratchImage (line 933) | ScratchImage* IntelPlugin::GetCompressedImageForPreview(int planesToGet_...
  function ScratchImage (line 1085) | ScratchImage* IntelPlugin::GetUncompressedImageForPreview(int planesToGet_)
  function HRESULT (line 1856) | HRESULT IntelPlugin::SaveCubeMipLevelToDDSFile(ScratchImage *scrImageScr...
  function OSErr (line 2267) | OSErr IntelPlugin::WriteScriptParamsForWrite (void)
  function OSErr (line 2373) | OSErr IntelPlugin::WriteScriptParamsForRead ()
  function DLLExport (line 3025) | DLLExport MACPASCAL void PluginMain (const int16 selector,

FILE: IntelCompressionPlugin/IntelPlugin.h
  function F16toF32 (line 31) | inline float F16toF32(unsigned short f16)
  function F32toF16 (line 36) | inline unsigned short F32toF16(float val)
  function FloatToByte (line 41) | inline unsigned char FloatToByte(double v)
  function F16toByte (line 50) | inline unsigned char F16toByte(unsigned short f16)
  function unsigned8 (line 56) | inline unsigned8 ConvertTo8Bit(unsigned8 val)
  function unsigned8 (line 60) | inline unsigned8 ConvertTo8Bit(unsigned16 val)
  function unsigned16 (line 77) | inline unsigned16 ConvertTo16Bit(unsigned8 val)
  function unsigned16 (line 81) | inline unsigned16 ConvertTo16Bit(unsigned16 val)
  function unsigned16 (line 88) | inline unsigned16 ConvertTo16Bit(float val)
  type TextureTypeEnum (line 98) | enum TextureTypeEnum
  type MipmapEnum (line 108) | enum MipmapEnum
  type LoadInfoEnum (line 115) | enum LoadInfoEnum
  type CompressionTypeEnum (line 122) | enum CompressionTypeEnum
  function class (line 140) | class IntelPlugin

FILE: IntelCompressionPlugin/IntelPluginUIWin.cpp
  function INT_PTR (line 31) | INT_PTR WINAPI AboutDlgProcIntel(HWND hDlg, UINT wMsg, WPARAM wParam, LP...
  function ShowAboutIntel (line 81) | void ShowAboutIntel (AboutRecordPtr aboutPtr)
  function INT_PTR (line 99) | INT_PTR WINAPI DlgGetNameProc(HWND hDlg, UINT wMsg, WPARAM wParam, LPARA...
  function string (line 148) | string GetPresetName(string str, HWND parent)
  function INT_PTR (line 166) | INT_PTR WINAPI DlgLoadProc(HWND hDlg, UINT wMsg, WPARAM wParam, LPARAM l...
  function unsigned8 (line 310) | unsigned8 ShowLoadDialog (bool showAlphaGroup, bool showMipMapGroup, HWN...
  function errorMessage (line 331) | void errorMessage(std::string msg, std::string title)

FILE: IntelCompressionPlugin/PreviewDialog.cpp
  function T (line 40) | T clampGeneral(T x, T a, T b)
  function BOOL (line 553) | BOOL CALLBACK PreviewDialog::WndEnumProc(HWND hwnd, LPARAM self_lparam)
  function BOOL (line 569) | BOOL PreviewDialog::WindowProc(UINT wMsg, WPARAM wParam, LPARAM lParam) ...
  function INT_PTR (line 897) | INT_PTR WINAPI PreviewDialog::PreviewProc(HWND hwnd, UINT wMsg, WPARAM w...

FILE: IntelCompressionPlugin/PreviewDialog.h
  function class (line 24) | class ScalableOrdinate
  function class (line 66) | class ScalableRect
  function class (line 94) | class PreviewDialog

FILE: IntelCompressionPlugin/SaveOptionsDialog.cpp
  function GetCompressionHelpText (line 1215) | vector<string> GetCompressionHelpText(void)
  function GetTextureTypeHelpText (line 1235) | vector<string> GetTextureTypeHelpText(void)
  function GetPreCompressOpsHelpText (line 1259) | vector<string> GetPreCompressOpsHelpText(void)
  function GetMipMapsHelpText (line 1276) | vector<string> GetMipMapsHelpText(void)
  function uint32 (line 1320) | uint32 OptionsDialog::GetSelectedItem(uint32 comboBoxID)
  function uint32 (line 1331) | uint32 OptionsDialog::GetSelectedMipLevelIndex()
  function int32 (line 1344) | int32 OptionsDialog::DoModal(IntelPlugin* plugin)

FILE: IntelCompressionPlugin/SaveOptionsDialog.h
  type DialogData (line 30) | struct DialogData
  function class (line 47) | class OptionsDialog : public PIDialog

FILE: PhotoshopScripts/IntelTextureWorks-ConvertCubeMap.jsx
  function main_body (line 26) | function main_body()
  function horizontal_corners (line 214) | function horizontal_corners()
  function vertical_corners (line 230) | function vertical_corners()
  function square_corners (line 242) | function square_corners()
  function step_right (line 248) | function step_right(corner,size) { return new Array(corner[0]+size,corne...
  function step_down (line 250) | function step_down(corner,size) { return new Array(corner[0],corner[1]+s...
  function CopyTilesToLayeredFormat (line 253) | function CopyTilesToLayeredFormat(oDoc, nDoc, oCorner, nCorner,  srcLaye...
  function CopyTile (line 290) | function CopyTile(oDoc, nDoc, oCorner, nCorner, angle, srcLayer)

FILE: PhotoshopScripts/IntelTextureWorks-CubeMapGaussianBlur.jsx
  function showPopUp (line 53) | function showPopUp(message)
  function closePopUp (line 59) | function closePopUp()
  function CloseAll (line 64) | function CloseAll(newDoc, tgtDoc, strtRulerUnits)
  function main_body (line 72) | function main_body()
  function finalTouch (line 238) | function finalTouch(frontFacesNames, faceTargetCoords, frontFaceRotation...
  function PasteTouchedBlurredTile (line 281) | function PasteTouchedBlurredTile(layername)
  function BlurCubeMapFaceAlternate (line 290) | function BlurCubeMapFaceAlternate(frontFacesNames, faceTargetCoords, fro...
  function BlurCubeMapFace (line 362) | function BlurCubeMapFace(frontFacesNames, faceTargetCoords, frontFaceRot...
  function PasteToCubeMapBlurredTile (line 418) | function PasteToCubeMapBlurredTile(layername)
  function CopyFromCubeMap (line 424) | function CopyFromCubeMap(frontFacesNames, frontFaceRotations, index)
  function PasteToTempFile (line 431) | function PasteToTempFile(faceTargetCoords, frontFaceRotations, index)
  function warpAdjacentFaces (line 440) | function warpAdjacentFaces()
  function horizontal_corners (line 453) | function horizontal_corners(coords)
  function selecthalf_document (line 462) | function selecthalf_document()
  function square_corners (line 473) | function square_corners()
  function step_right (line 483) | function step_right(corner,size) { return new Array(corner[0]+size,corne...
  function step_down (line 485) | function step_down(corner,size) { return new Array(corner[0],corner[1]+s...
  function step_downright (line 487) | function step_downright(corner,size) { return new Array(corner[0]+size,c...
  function warpHorizontal (line 490) | function warpHorizontal(topDistance, leftDistance, rightDistance, bottom...
  function warpVertical (line 732) | function warpVertical(topDistance, leftDistance, rightDistance, bottomDi...
Condensed preview — 146 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,329K chars).
[
  {
    "path": ".gitignore",
    "chars": 243,
    "preview": "\n# ignore these types\n\n*.cache\n*.log\n*.suo\n*.sdf\n*.opensdf\n*.pdb\n*.user\n*.tmp_proj\n*.bsc\n*.ilk\n\n# intel compiler generat"
  },
  {
    "path": "3rdParty/DirectXTex/.gitignore",
    "chars": 167,
    "preview": "*.psess\n*.vsp\n*.log\n*.err\n*.wrn\n*.suo\n*.sdf\n*.user\n*.i\n*.vspscc\n*.opensdf\n*.ipch\n*.cache\n*.tlog\n*.lastbuildstate\n*.ilk\nB"
  },
  {
    "path": "3rdParty/DirectXTex/DDSTextureLoader/DDSTextureLoader.cpp",
    "chars": 64239,
    "preview": "//--------------------------------------------------------------------------------------\n// File: DDSTextureLoader.cpp\n/"
  },
  {
    "path": "3rdParty/DirectXTex/DDSTextureLoader/DDSTextureLoader.h",
    "chars": 7876,
    "preview": "//--------------------------------------------------------------------------------------\n// File: DDSTextureLoader.h\n//\n"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/DDSView.rc",
    "chars": 1680,
    "preview": "// Microsoft Visual C++ generated resource script.\n//\n#define APSTUDIO_READONLY_SYMBOLS\n////////////////////////////////"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/DDSView_Desktop_2012.sln",
    "chars": 2676,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2012\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/DDSView_Desktop_2012.vcxproj",
    "chars": 19137,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/DDSView_Desktop_2012.vcxproj.filters",
    "chars": 682,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/DDSView_Desktop_2013.sln",
    "chars": 2676,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2013\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/DDSView_Desktop_2013.vcxproj",
    "chars": 19137,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/DDSView_Desktop_2013.vcxproj.filters",
    "chars": 682,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/DDSView_Desktop_2015.sln",
    "chars": 2676,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2015\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/DDSView_Desktop_2015.vcxproj",
    "chars": 18987,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/DDSView_Desktop_2015.vcxproj.filters",
    "chars": 682,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/ddsview.cpp",
    "chars": 24348,
    "preview": "//--------------------------------------------------------------------------------------\n// File: DDSView.cpp\n//\n// Dire"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/ddsview.fx",
    "chars": 2322,
    "preview": "//--------------------------------------------------------------------------------------\n// File: ddsview.fx\n//\n// Copyr"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/hlsl.cmd",
    "chars": 426,
    "preview": "fxc ddsview.fx /nologo /EVS /Tvs_4_1 /Fhshaders\\vs.h\nfxc ddsview.fx /nologo /EPS_1D /Tps_4_1 /Fhshaders\\ps1D.h\nfxc ddsvi"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/shaders/ps1D.h",
    "chars": 5868,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111\n//\n//\n//   fxc ddsview.fx /nologo /EPS_1D /Tps"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/shaders/ps1Darray.h",
    "chars": 6255,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111\n//\n//\n//   fxc ddsview.fx /nologo /EPS_1DArray"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/shaders/ps2D.h",
    "chars": 4779,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111\n//\n//\n//   fxc ddsview.fx /nologo /EPS_2D /Tps"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/shaders/ps2Darray.h",
    "chars": 6260,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111\n//\n//\n//   fxc ddsview.fx /nologo /EPS_2DArray"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/shaders/ps3D.h",
    "chars": 6459,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111\n//\n//\n//   fxc ddsview.fx /nologo /EPS_3D /Tps"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/shaders/psCube.h",
    "chars": 6361,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111\n//\n//\n//   fxc ddsview.fx /nologo /EPS_Cube /T"
  },
  {
    "path": "3rdParty/DirectXTex/DDSView/shaders/vs.h",
    "chars": 4225,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111\n//\n//\n//   fxc ddsview.fx /nologo /EVS /Tvs_4_"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/BC.cpp",
    "chars": 32915,
    "preview": "//-------------------------------------------------------------------------------------\n// BC.cpp\n//  \n// Block-compress"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/BC.h",
    "chars": 30803,
    "preview": "//-------------------------------------------------------------------------------------\n// BC.h\n//  \n// Block-compressio"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/BC4BC5.cpp",
    "chars": 15864,
    "preview": "//-------------------------------------------------------------------------------------\n// BC4BC5.cpp\n//  \n// Block-comp"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/BC6HBC7.cpp",
    "chars": 117359,
    "preview": "//-------------------------------------------------------------------------------------\n// BC6HBC7.cpp\n//  \n// Block-com"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/BCDirectCompute.cpp",
    "chars": 21639,
    "preview": "//-------------------------------------------------------------------------------------\n// BCDirectCompute.cpp\n//  \n// D"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/BCDirectCompute.h",
    "chars": 2805,
    "preview": "//-------------------------------------------------------------------------------------\n// BCDirectCompute.h\n//  \n// Dir"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DDS.h",
    "chars": 9679,
    "preview": "//--------------------------------------------------------------------------------------\n// dds.h\n//\n// This header defi"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex.h",
    "chars": 32443,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTex.h\n//  \n// DirectX "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex.inl",
    "chars": 9988,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTex.inl\n//  \n// Direct"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexCompress.cpp",
    "chars": 26289,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexCompress.cpp\n//  \n/"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexCompressGPU.cpp",
    "chars": 12285,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexCompressGPU.cpp\n// "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexConvert.cpp",
    "chars": 190164,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexConvert.cpp\n//  \n//"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexD3D11.cpp",
    "chars": 31214,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexD3D11.cpp\n//  \n// D"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexDDS.cpp",
    "chars": 77985,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexDDS.cpp\n//  \n// Dir"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexFlipRotate.cpp",
    "chars": 10617,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexFlipRotate.cpp\n//  "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexImage.cpp",
    "chars": 22010,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexImage.cpp\n//  \n// D"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexMipmaps.cpp",
    "chars": 106428,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexMipMaps.cpp\n//  \n//"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexMisc.cpp",
    "chars": 11477,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexMisc.cpp\n//  \n// Di"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexNormalMaps.cpp",
    "chars": 12121,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexNormalMaps.cpp\n//  "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexP.h",
    "chars": 9069,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexp.h\n//  \n// DirectX"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexPMAlpha.cpp",
    "chars": 7308,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexPMAlpha.cpp\n//  \n//"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexResize.cpp",
    "chars": 33289,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexResize.cpp\n//  \n// "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexTGA.cpp",
    "chars": 43897,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexTGA.cpp\n//  \n// Dir"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexUtil.cpp",
    "chars": 31129,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexUtil.cpp\n//  \n// Di"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTexWIC.cpp",
    "chars": 42005,
    "preview": "//-------------------------------------------------------------------------------------\n// DirectXTexWIC.cpp\n//  \n// Dir"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Desktop_2012.sln",
    "chars": 1595,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2012\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Desktop_2012.vcxproj",
    "chars": 20705,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Desktop_2012.vcxproj.filters",
    "chars": 1660,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Desktop_2013.sln",
    "chars": 1595,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2013\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Desktop_2013.vcxproj",
    "chars": 20985,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Desktop_2013.vcxproj.filters",
    "chars": 1660,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Desktop_2015.sln",
    "chars": 1595,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2015\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Desktop_2015.vcxproj",
    "chars": 21057,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Desktop_2015.vcxproj.filters",
    "chars": 1660,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Windows10.sln",
    "chars": 1631,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2015\nVisualStudioVersion = 14.0.22609.0\nMi"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Windows10.vcxproj",
    "chars": 14556,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Windows10.vcxproj.filters",
    "chars": 1436,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Windows81.sln",
    "chars": 2199,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2013\nVisualStudioVersion = 12.0.21005.1\nMi"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Windows81.vcxproj",
    "chars": 30605,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_Windows81.vcxproj.filters",
    "chars": 1704,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schemas"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_WindowsPhone81.sln",
    "chars": 1319,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2013\nVisualStudioVersion = 12.0.30324.0\nMi"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_WindowsPhone81.vcxproj",
    "chars": 9548,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_WindowsPhone81.vcxproj.filters",
    "chars": 3082,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"12.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_XboxOneADK.sln",
    "chars": 1114,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2012\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_XboxOneADK.vcxproj",
    "chars": 11556,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_XboxOneADK.vcxproj.filters",
    "chars": 3481,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_XboxOneXDK.sln",
    "chars": 1114,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2012\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_XboxOneXDK.vcxproj",
    "chars": 11557,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/DirectXTex_XboxOneXDK.vcxproj.filters",
    "chars": 3481,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Filters.h",
    "chars": 12725,
    "preview": "//-------------------------------------------------------------------------------------\n// filters.h\n//  \n// Utility hea"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Shaders/BC6HEncode.hlsl",
    "chars": 120731,
    "preview": "//--------------------------------------------------------------------------------------\n// File: BC6HEncode.hlsl\n//\n// "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Shaders/BC7Encode.hlsl",
    "chars": 73418,
    "preview": "//--------------------------------------------------------------------------------------\n// File: BC7Encode.hlsl\n//\n// T"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Shaders/CompileShaders.cmd",
    "chars": 940,
    "preview": "@echo off\nrem THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF\nrem ANY KIND, EITHER EXPRESSED OR IMPLIE"
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Shaders/Compiled/BC6HEncode_EncodeBlockCS.inc",
    "chars": 789389,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) D3D Shader Disassembler\n//\n//\n///\n// Input signature:\n//\n// Name                 "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Shaders/Compiled/BC6HEncode_TryModeG10CS.inc",
    "chars": 117706,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) D3D Shader Disassembler\n//\n//\n///\n// Input signature:\n//\n// Name                 "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Shaders/Compiled/BC6HEncode_TryModeLE10CS.inc",
    "chars": 178524,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) D3D Shader Disassembler\n//\n//\n///\n// Input signature:\n//\n// Name                 "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Shaders/Compiled/BC7Encode_EncodeBlockCS.inc",
    "chars": 361651,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) D3D Shader Disassembler\n//\n//\n///\n// Input signature:\n//\n// Name                 "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Shaders/Compiled/BC7Encode_TryMode02CS.inc",
    "chars": 133931,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) D3D Shader Disassembler\n//\n//\n///\n// Input signature:\n//\n// Name                 "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Shaders/Compiled/BC7Encode_TryMode137CS.inc",
    "chars": 137307,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) D3D Shader Disassembler\n//\n//\n///\n// Input signature:\n//\n// Name                 "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/Shaders/Compiled/BC7Encode_TryMode456CS.inc",
    "chars": 107021,
    "preview": "#if 0\n//\n// Generated by Microsoft (R) D3D Shader Disassembler\n//\n//\n///\n// Input signature:\n//\n// Name                 "
  },
  {
    "path": "3rdParty/DirectXTex/DirectXTex/scoped.h",
    "chars": 1321,
    "preview": "//-------------------------------------------------------------------------------------\n// scoped.h\n//  \n// Utility head"
  },
  {
    "path": "3rdParty/DirectXTex/MIT.txt",
    "chars": 1127,
    "preview": "                               The MIT License (MIT)\n\nCopyright (c) 2015 Microsoft Corp\n\nPermission is hereby granted, f"
  },
  {
    "path": "3rdParty/DirectXTex/ReadMe.txt",
    "chars": 15603,
    "preview": "DIRECTX TEXTURE LIBRARY (DirectXTex)\n------------------------------------\n\nCopyright (c) Microsoft Corporation. All righ"
  },
  {
    "path": "3rdParty/DirectXTex/ScreenGrab/ScreenGrab.cpp",
    "chars": 41872,
    "preview": "//--------------------------------------------------------------------------------------\n// File: ScreenGrab.cpp\n//\n// F"
  },
  {
    "path": "3rdParty/DirectXTex/ScreenGrab/ScreenGrab.h",
    "chars": 1935,
    "preview": "//--------------------------------------------------------------------------------------\n// File: ScreenGrab.h\n//\n// Fun"
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/Texassemble_Desktop_2012.sln",
    "chars": 2684,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2012\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/Texassemble_Desktop_2012.vcxproj",
    "chars": 19059,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/Texassemble_Desktop_2012.vcxproj.filters",
    "chars": 627,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/Texassemble_Desktop_2013.sln",
    "chars": 2684,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2013\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/Texassemble_Desktop_2013.vcxproj",
    "chars": 19059,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/Texassemble_Desktop_2013.vcxproj.filters",
    "chars": 627,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/Texassemble_Desktop_2015.sln",
    "chars": 2684,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2015\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/Texassemble_Desktop_2015.vcxproj",
    "chars": 18909,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/Texassemble_Desktop_2015.vcxproj.filters",
    "chars": 627,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/texassemble.cpp",
    "chars": 22744,
    "preview": "//--------------------------------------------------------------------------------------\n// File: Texassemble.cpp\n//\n// "
  },
  {
    "path": "3rdParty/DirectXTex/Texassemble/texassemble.rc",
    "chars": 1656,
    "preview": "// Microsoft Visual C++ generated resource script.\n//\n#define APSTUDIO_READONLY_SYMBOLS\n////////////////////////////////"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/Texconv.rc",
    "chars": 1656,
    "preview": "// Microsoft Visual C++ generated resource script.\n//\n#define APSTUDIO_READONLY_SYMBOLS\n////////////////////////////////"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/Texconv_Desktop_2012.sln",
    "chars": 2676,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2012\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/Texconv_Desktop_2012.vcxproj",
    "chars": 19037,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/Texconv_Desktop_2012.vcxproj.filters",
    "chars": 619,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/Texconv_Desktop_2013.sln",
    "chars": 2676,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2013\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/Texconv_Desktop_2013.vcxproj",
    "chars": 19037,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/Texconv_Desktop_2013.vcxproj.filters",
    "chars": 619,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/Texconv_Desktop_2015.sln",
    "chars": 2676,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2015\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/Texconv_Desktop_2015.vcxproj",
    "chars": 18887,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/Texconv_Desktop_2015.vcxproj.filters",
    "chars": 619,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns:atg=\"http://atg.xbox.com\" xmlns=\"http://schema"
  },
  {
    "path": "3rdParty/DirectXTex/Texconv/texconv.cpp",
    "chars": 59015,
    "preview": "//--------------------------------------------------------------------------------------\n// File: TexConv.cpp\n//\n// Dire"
  },
  {
    "path": "3rdParty/DirectXTex/WICTextureLoader/WICTextureLoader.cpp",
    "chars": 36159,
    "preview": "//--------------------------------------------------------------------------------------\n// File: WICTextureLoader.cpp\n/"
  },
  {
    "path": "3rdParty/DirectXTex/WICTextureLoader/WICTextureLoader.h",
    "chars": 7329,
    "preview": "//--------------------------------------------------------------------------------------\n// File: WICTextureLoader.h\n//\n"
  },
  {
    "path": "3rdParty/Intel/Source/StopWatch.cpp",
    "chars": 3237,
    "preview": "////////////////////////////////////////////////////////////////////////////////\n// Copyright 2017 Intel Corporation\n//\n"
  },
  {
    "path": "3rdParty/Intel/Source/StopWatch.h",
    "chars": 1153,
    "preview": "////////////////////////////////////////////////////////////////////////////////\n// Copyright 2017 Intel Corporation\n//\n"
  },
  {
    "path": "3rdParty/Intel/Source/ispc_texcomp.cpp",
    "chars": 11087,
    "preview": "////////////////////////////////////////////////////////////////////////////////\n// Copyright 2017 Intel Corporation\n//\n"
  },
  {
    "path": "3rdParty/Intel/Source/ispc_texcomp.h",
    "chars": 3927,
    "preview": "////////////////////////////////////////////////////////////////////////////////\n// Copyright 2017 Intel Corporation\n//\n"
  },
  {
    "path": "3rdParty/Intel/Source/win32Threads.cpp",
    "chars": 10303,
    "preview": "////////////////////////////////////////////////////////////////////////////////\n// Copyright 2017 Intel Corporation\n//\n"
  },
  {
    "path": "3rdParty/Intel/Source/win32Threads.h",
    "chars": 2984,
    "preview": "////////////////////////////////////////////////////////////////////////////////\n// Copyright 2017 Intel Corporation\n//\n"
  },
  {
    "path": "IntelCompressionPlugin/IntelPlugin.cpp",
    "chars": 112670,
    "preview": "////////////////////////////////////////////////////////////////////////////////\r\n// Copyright 2017 Intel Corporation\r\n/"
  },
  {
    "path": "IntelCompressionPlugin/IntelPlugin.h",
    "chars": 12239,
    "preview": "////////////////////////////////////////////////////////////////////////////////\r\n// Copyright 2017 Intel Corporation\r\n/"
  },
  {
    "path": "IntelCompressionPlugin/IntelPlugin.r",
    "chars": 7864,
    "preview": "// ADOBE SYSTEMS INCORPORATED\n// Copyright  1993 - 2002 Adobe Systems Incorporated\n// All Rights Reserved\n//\n// NOTICE: "
  },
  {
    "path": "IntelCompressionPlugin/IntelPlugin.rc",
    "chars": 9167,
    "preview": "// Microsoft Visual C++ generated resource script.\n//\n#include \"resource.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////"
  },
  {
    "path": "IntelCompressionPlugin/IntelPluginName.h",
    "chars": 1397,
    "preview": "////////////////////////////////////////////////////////////////////////////////\r\n// Copyright 2017 Intel Corporation\r\n/"
  },
  {
    "path": "IntelCompressionPlugin/IntelPluginUIWin.cpp",
    "chars": 9128,
    "preview": "////////////////////////////////////////////////////////////////////////////////\r\n// Copyright 2017 Intel Corporation\r\n/"
  },
  {
    "path": "IntelCompressionPlugin/IntelPluginUIWin.h",
    "chars": 1133,
    "preview": "////////////////////////////////////////////////////////////////////////////////\r\n// Copyright 2017 Intel Corporation\r\n/"
  },
  {
    "path": "IntelCompressionPlugin/IntelTextureWorks.vcxproj",
    "chars": 26948,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "IntelCompressionPlugin/IntelTextureWorks.vcxproj.filters",
    "chars": 4576,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "IntelCompressionPlugin/PreviewDialog.cpp",
    "chars": 32242,
    "preview": "////////////////////////////////////////////////////////////////////////////////\r\n// Copyright 2017 Intel Corporation\r\n/"
  },
  {
    "path": "IntelCompressionPlugin/PreviewDialog.h",
    "chars": 5824,
    "preview": "////////////////////////////////////////////////////////////////////////////////\r\n// Copyright 2017 Intel Corporation\r\n/"
  },
  {
    "path": "IntelCompressionPlugin/SaveOptionsDialog.cpp",
    "chars": 49601,
    "preview": "////////////////////////////////////////////////////////////////////////////////\r\n// Copyright 2017 Intel Corporation\r\n/"
  },
  {
    "path": "IntelCompressionPlugin/SaveOptionsDialog.h",
    "chars": 5200,
    "preview": "////////////////////////////////////////////////////////////////////////////////\r\n// Copyright 2017 Intel Corporation\r\n/"
  },
  {
    "path": "IntelCompressionPlugin/kernel.ispc",
    "chars": 101557,
    "preview": "////////////////////////////////////////////////////////////////////////////////\n// Copyright 2017 Intel Corporation\n//\n"
  },
  {
    "path": "IntelCompressionPlugin/resource.h",
    "chars": 2833,
    "preview": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by IntelPlugin.rc\n//\n#define IDC_PRESETDEL"
  },
  {
    "path": "IntelTextureWorks.sln",
    "chars": 2952,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2012\nProject(\"{2150E333-8FDC-42A3-9474-1A3"
  },
  {
    "path": "PhotoshopScripts/IntelTextureWorks-ConvertCubeMap.jsx",
    "chars": 14033,
    "preview": "// Description:\n//\tThis script has been tried on Adobe Photoshop CC 2014.\n//\tThe script runs on both Windows or Mac-OS "
  },
  {
    "path": "PhotoshopScripts/IntelTextureWorks-CubeMapGaussianBlur.jsx",
    "chars": 48060,
    "preview": "// Description:\n//\tThis script has been tried on Adobe Photoshop CC 2014.\n//\tThe script runs on both Windows or Mac-OS "
  },
  {
    "path": "README.md",
    "chars": 4363,
    "preview": "# DISCONTINUATION OF PROJECT #\nThis project will no longer be maintained by Intel.\nIntel has ceased development and cont"
  },
  {
    "path": "license.txt",
    "chars": 10425,
    "preview": "\nApache License\n Version 2.0, January 2004\n\n http://www.apache.org/licenses/ \n\nTERMS AND CONDITIONS FOR USE, REPRODUCTIO"
  }
]

// ... and 7 more files (download for full content)

About this extraction

This page contains the full source code of the GameTechDev/Intel-Texture-Works-Plugin GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 146 files (4.0 MB), approximately 1.1M tokens, and a symbol index with 556 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!