C++ API Reference
ddsFloatReader.h
//
//-
// ==========================================================================
// Copyright 1995,2006,2008 Autodesk, Inc. All rights reserved.
//
// Use of this software is subject to the terms of the Autodesk
// license agreement provided at the time of installation or download,
// or which otherwise accompanies this software in either electronic
// or hard copy form.
// ==========================================================================
//+
//
#ifndef DDS_FLOAT_READER_H
#define DDS_FLOAT_READER_H
#define DEBUG_DDS( x)
//#define DEBUG_DDS( x) 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
{
//
// Our DDS constants
//
#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
// Float and half float formats specified in FourCC
#define DDS_R16F 111
#define DDS_G16R16F 112
#define DDS_A16B16G16R16F 113
#define DDS_R32F 114
#define DDS_G32R32F 115
#define DDS_A32B32G32R32F 116
//
// This structure describes the format of the file's pixel data
//
typedef struct DDS_FORMAT {
DWORD fSize;
DWORD fFlags;
DWORD fPixelFormat; //fFourCC;
DWORD fRGBBitCount;
DWORD fRedBitMask;
DWORD fGreenBitMask;
DWORD fBlueBitMask;
DWORD fAlphaBitMask;
} DDS_FORMAT;
//
// DDS capabilities structure
//
typedef struct DDSCAPS2 {
DWORD dwCaps; // capabilities of surface wanted
DWORD dwCaps2;
DWORD dwCaps3;
union
{
DWORD dwCaps4;
DWORD dwVolumeDepth;
};
} DDSCAPS2;
//
// The header for a DDS file
//
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; // Pixel format
DDSCAPS2 fCapabilities;
DWORD fReserved2;
} DDS_HEADER;
}
#ifdef _WIN32
#pragma pack()
#endif /*WIN32*/
#endif