]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - libs/ddslib.h
Callback: work at any arity
[xonotic/netradiant.git] / libs / ddslib.h
index 3f5f124c047e0932955a81954f40bbcb73b54b99..4961f6ef6b17cca7817bf9f94c12d4edd7c3041f 100644 (file)
@@ -1,39 +1,39 @@
 /* -----------------------------------------------------------------------------
 
-DDS Library 
+   DDS Library
 
-Based on code from Nvidia's DDS example:
-http://www.nvidia.com/object/dxtc_decompression_code.html
+   Based on code from Nvidia's DDS example:
+   http://www.nvidia.com/object/dxtc_decompression_code.html
 
-Copyright (c) 2003 Randy Reddig
-All rights reserved.
+   Copyright (c) 2003 Randy Reddig
+   All rights reserved.
 
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
+   Redistribution and use in source and binary forms, with or without modification,
+   are permitted provided that the following conditions are met:
 
-Redistributions of source code must retain the above copyright notice, this list
-of conditions and the following disclaimer.
+   Redistributions of source code must retain the above copyright notice, this list
+   of conditions and the following disclaimer.
 
-Redistributions in binary form must reproduce the above copyright notice, this
-list of conditions and the following disclaimer in the documentation and/or
-other materials provided with the distribution.
+   Redistributions in binary form must reproduce the above copyright notice, this
+   list of conditions and the following disclaimer in the documentation and/or
+   other materials provided with the distribution.
 
-Neither the names of the copyright holders nor the names of its contributors may
-be used to endorse or promote products derived from this software without
-specific prior written permission. 
+   Neither the names of the copyright holders nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
 
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+   DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+   ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+   ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
------------------------------------------------------------------------------ */
+   ----------------------------------------------------------------------------- */
 
 
 
@@ -72,86 +72,86 @@ ddsPF_t;
 
 
 /* 16bpp stuff */
-#define DDS_LOW_5              0x001F;
-#define DDS_MID_6              0x07E0;
-#define DDS_HIGH_5             0xF800;
-#define DDS_MID_555            0x03E0;
-#define DDS_HI_555             0x7C00;
+#define DDS_LOW_5       0x001F;
+#define DDS_MID_6       0x07E0;
+#define DDS_HIGH_5      0xF800;
+#define DDS_MID_555     0x03E0;
+#define DDS_HI_555      0x7C00;
 
 
 /* structures */
 typedef struct ddsColorKey_s
 {
-       unsigned int            colorSpaceLowValue;
-       unsigned int            colorSpaceHighValue;
-} 
+       unsigned int colorSpaceLowValue;
+       unsigned int colorSpaceHighValue;
+}
 ddsColorKey_t;
 
 
 typedef struct ddsCaps_s
 {
-       unsigned int            caps1;
-       unsigned int            caps2;
-       unsigned int            caps3;
-       unsigned int            caps4;
-} 
+       unsigned int caps1;
+       unsigned int caps2;
+       unsigned int caps3;
+       unsigned int caps4;
+}
 ddsCaps_t;
 
 
 typedef struct ddsMultiSampleCaps_s
 {
-       unsigned short          flipMSTypes;
-       unsigned short          bltMSTypes;
+       unsigned short flipMSTypes;
+       unsigned short bltMSTypes;
 }
 ddsMultiSampleCaps_t;
 
 
 typedef struct ddsPixelFormat_s
 {
-       unsigned int            size;
-       unsigned int            flags;
-       unsigned int            fourCC;
+       unsigned int size;
+       unsigned int flags;
+       unsigned int fourCC;
        union
        {
-               unsigned int    rgbBitCount;
-               unsigned int    yuvBitCount;
-               unsigned int    zBufferBitDepth;
-               unsigned int    alphaBitDepth;
-               unsigned int    luminanceBitCount;
-               unsigned int    bumpBitCount;
-               unsigned int    privateFormatBitCount;
+               unsigned int rgbBitCount;
+               unsigned int yuvBitCount;
+               unsigned int zBufferBitDepth;
+               unsigned int alphaBitDepth;
+               unsigned int luminanceBitCount;
+               unsigned int bumpBitCount;
+               unsigned int privateFormatBitCount;
        };
        union
        {
-               unsigned int    rBitMask;
-               unsigned int    yBitMask;
-               unsigned int    stencilBitDepth;
-               unsigned int    luminanceBitMask;
-               unsigned int    bumpDuBitMask;
-               unsigned int    operations;
+               unsigned int rBitMask;
+               unsigned int yBitMask;
+               unsigned int stencilBitDepth;
+               unsigned int luminanceBitMask;
+               unsigned int bumpDuBitMask;
+               unsigned int operations;
        };
        union
        {
-               unsigned int    gBitMask;
-               unsigned int    uBitMask;
-               unsigned int    zBitMask;
-               unsigned int    bumpDvBitMask;
-               ddsMultiSampleCaps_t    multiSampleCaps;
+               unsigned int gBitMask;
+               unsigned int uBitMask;
+               unsigned int zBitMask;
+               unsigned int bumpDvBitMask;
+               ddsMultiSampleCaps_t multiSampleCaps;
        };
        union
        {
-               unsigned int    bBitMask;
-               unsigned int    vBitMask;
-               unsigned int    stencilBitMask;
-               unsigned int    bumpLuminanceBitMask;
+               unsigned int bBitMask;
+               unsigned int vBitMask;
+               unsigned int stencilBitMask;
+               unsigned int bumpLuminanceBitMask;
        };
        union
        {
-               unsigned int    rgbAlphaBitMask;
-               unsigned int    yuvAlphaBitMask;
-               unsigned int    luminanceAlphaBitMask;
-               unsigned int    rgbZBitMask;
-               unsigned int    yuvZBitMask;
+               unsigned int rgbAlphaBitMask;
+               unsigned int yuvAlphaBitMask;
+               unsigned int luminanceAlphaBitMask;
+               unsigned int rgbZBitMask;
+               unsigned int yuvZBitMask;
        };
 }
 ddsPixelFormat_t;
@@ -160,85 +160,85 @@ ddsPixelFormat_t;
 typedef struct ddsBuffer_s
 {
        /* magic: 'dds ' */
-       char                            magic[ 4 ];
-       
+       char magic[ 4 ];
+
        /* directdraw surface */
-       unsigned int            size;
-       unsigned int            flags;
-       unsigned int            height;
-       unsigned int            width; 
+       unsigned int size;
+       unsigned int flags;
+       unsigned int height;
+       unsigned int width;
        union
        {
-               int                             pitch;
-               unsigned int    linearSize;
+               int pitch;
+               unsigned int linearSize;
        };
-       unsigned int            backBufferCount;
+       unsigned int backBufferCount;
        union
        {
-               unsigned int    mipMapCount;
-               unsigned int    refreshRate;
-               unsigned int    srcVBHandle;
+               unsigned int mipMapCount;
+               unsigned int refreshRate;
+               unsigned int srcVBHandle;
        };
-       unsigned int            alphaBitDepth;
-       unsigned int            reserved;
-       void                            *surface;
+       unsigned int alphaBitDepth;
+       unsigned int reserved;
+       void                *surface;
        union
        {
-               ddsColorKey_t   ckDestOverlay;   
-               unsigned int    emptyFaceColor;
+               ddsColorKey_t ckDestOverlay;
+               unsigned int emptyFaceColor;
        };
-       ddsColorKey_t           ckDestBlt;
-       ddsColorKey_t           ckSrcOverlay;    
-       ddsColorKey_t           ckSrcBlt;     
+       ddsColorKey_t ckDestBlt;
+       ddsColorKey_t ckSrcOverlay;
+       ddsColorKey_t ckSrcBlt;
        union
        {
-               ddsPixelFormat_t        pixelFormat;
-               unsigned int    fvf;
+               ddsPixelFormat_t pixelFormat;
+               unsigned int fvf;
        };
-       ddsCaps_t                       ddsCaps;
-       unsigned int            textureStage;
-       
+       ddsCaps_t ddsCaps;
+       unsigned int textureStage;
+
        /* data (Varying size) */
-       unsigned char           data[ 4 ];
+       unsigned char data[ 4 ];
 }
 ddsBuffer_t;
 
 
 typedef struct ddsColorBlock_s
 {
-       unsigned short          colors[ 2 ];
-       unsigned char           row[ 4 ];
+       unsigned short colors[ 2 ];
+       unsigned char row[ 4 ];
 }
 ddsColorBlock_t;
 
 
 typedef struct ddsAlphaBlockExplicit_s
 {
-       unsigned short          row[ 4 ];
+       unsigned short row[ 4 ];
 }
 ddsAlphaBlockExplicit_t;
 
 
 typedef struct ddsAlphaBlock3BitLinear_s
 {
-       unsigned char           alpha0;
-       unsigned char           alpha1;
-       unsigned char           stuff[ 6 ];
+       unsigned char alpha0;
+       unsigned char alpha1;
+       unsigned char stuff[ 6 ];
 }
 ddsAlphaBlock3BitLinear_t;
 
 
 typedef struct ddsColor_s
 {
-       unsigned char           r, g, b, a;
+       unsigned char r, g, b, a;
 }
 ddsColor_t;
 
 
 
 /* public functions */
-int                                            DDSGetInfo( ddsBuffer_t *dds, int *width, int *height, ddsPF_t *pf );
-int                                            DDSDecompress( ddsBuffer_t *dds, unsigned char *pixels );
+int                     DDSGetInfo( ddsBuffer_t *dds, int *width, int *height, ddsPF_t *pf );
+int                     DDSDecompress( ddsBuffer_t *dds, unsigned char *pixels );