#ifndef DDS_FLOAT_READER_H
#define DDS_FLOAT_READER_H
#define DEBUG_DDS( x) 
#ifdef _WIN32
#pragma pack(1)
#endif
#ifndef _WIN32
typedef unsigned char BYTE;
typedef unsigned int DWORD;
typedef unsigned short WORD;
#endif
namespace dds_Float_Reader
{
#define DDS_MAGIC_NUMBER                0x20534444
#define DDS_CAPS_FLAG                   0x00000001
#define DDS_HEIGHT_FLAG                 0x00000002
#define DDS_WIDTH_FLAG                  0x00000004
#define DDS_PITCH_FLAG                  0x00000008
#define DDS_PIXEL_FORMAT_FLAG           0x00001000
#define DDS_MIPMAP_COUNT_FLAG           0x00020000
#define DDS_LINEARSIZE_FLAG             0x00080000
#define DDS_DEPTH_FLAG                  0x00800000
#define DDS_HAS_ALPHA_FLAG              0x00000001
#define DDS_FOURCC_FLAG                 0x00000004
#define DDS_RGB_FLAG                    0x00000040
#define DDS_PALETTEINDEXED8             0x00000020          
#define DDS_PALETTEINDEXED4TO8          0x00000010
#define DDS_PALETTEINDEXED4             0x00000008
#define DDSCAPS_COMPLEX_FLAG            0x00000008
#define DDSCAPS_TEXTURE_FLAG            0x00001000
#define DDSCAPS_MIPMAP_FLAG             0x00400000
#define DDSCAPS2_CUBEMAP_FLAG           0x00000200
#define DDSCAPS2_CUBEMAP_POSITIVEX_FLAG 0x00000400
#define DDSCAPS2_CUBEMAP_NEGATIVEX_FLAG 0x00000800
#define DDSCAPS2_CUBEMAP_POSITIVEY_FLAG 0x00001000
#define DDSCAPS2_CUBEMAP_NEGATIVEY_FLAG 0x00002000
#define DDSCAPS2_CUBEMAP_POSITIVEZ_FLAG 0x00004000
#define DDSCAPS2_CUBEMAP_NEGATIVEZ_FLAG 0x00008000
#define DDSCAPS2_VOLUME_FLAG            0x00200000
#define DDS_DXT1                        0x31545844
#define DDS_DXT2                        0x32545844
#define DDS_DXT3                        0x33545844
#define DDS_DXT4                        0x34545844
#define DDS_DXT5                        0x35545844
#define DDS_R16F                        111
#define DDS_G16R16F                     112
#define DDS_A16B16G16R16F               113
#define DDS_R32F                        114
#define DDS_G32R32F                     115
#define DDS_A32B32G32R32F               116
typedef struct DDS_FORMAT {
    DWORD       fSize;
    DWORD       fFlags;
    DWORD       fPixelFormat; 
    DWORD       fRGBBitCount;
    DWORD       fRedBitMask;
    DWORD       fGreenBitMask;
    DWORD       fBlueBitMask;
    DWORD       fAlphaBitMask;
} DDS_FORMAT;
typedef struct DDSCAPS2 {
    DWORD       dwCaps;         
    DWORD       dwCaps2;
    DWORD       dwCaps3;
    union
    {
        DWORD       dwCaps4;
        DWORD       dwVolumeDepth;
    };
} DDSCAPS2;
typedef struct DDS_HEADER {
    DWORD       fDDSMagicNumber;
    DWORD       fSize;
    DWORD       fFlags;
    DWORD       fHeight;
    DWORD       fWidth;
    union {
        DWORD       fUncompressedPitch;
        DWORD       fCompressedSize;
    };
    DWORD       fDepth;
    DWORD       fMipMapCount;
    DWORD       fReserved1[11];
    DDS_FORMAT  fFormat;            
    DDSCAPS2    fCapabilities;
    DWORD       fReserved2;
} DDS_HEADER;
}
#ifdef _WIN32
#pragma pack()
#endif 
#endif