[gimp-dds] / tags / release-2.0.1 / dds.h Repository:
ViewVC logotype

View of /tags/release-2.0.1/dds.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 88 - (download) (as text) (annotate)
Wed Nov 7 23:49:28 2007 UTC (2 years ago) by cocidius
File size: 3861 byte(s)
Replacing 2.0.1 release tag, phase 2 of 2
    1 /*
    2    DDS GIMP plugin
    3 
    4    Copyright (C) 2004 Shawn Kirst <skirst@fuse.net>,
    5    with parts (C) 2003 Arne Reuter <homepage@arnereuter.de> where specified.
    6 
    7    This program is free software; you can redistribute it and/or
    8    modify it under the terms of the GNU General Public
    9    License as published by the Free Software Foundation; either
   10    version 2 of the License, or (at your option) any later version.
   11 
   12    This program is distributed in the hope that it will be useful,
   13    but WITHOUT ANY WARRANTY; without even the implied warranty of
   14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   15    General Public License for more details.
   16 
   17    You should have received a copy of the GNU General Public License
   18    along with this program; see the file COPYING.  If not, write to
   19    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   20    Boston, MA 02111-1307, USA.
   21 */
   22 
   23 #ifndef DDS_H
   24 #define DDS_H
   25 
   26 typedef enum
   27 {
   28    DDS_COMPRESS_NONE = 0,
   29    DDS_COMPRESS_BC1,        /* DXT1  */
   30    DDS_COMPRESS_BC2,        /* DXT3  */
   31    DDS_COMPRESS_BC3,        /* DXT5  */
   32    DDS_COMPRESS_BC3N,       /* DXT5n */
   33    DDS_COMPRESS_BC4,        /* ATI1  */
   34    DDS_COMPRESS_BC5,        /* ATI2  */
   35    DDS_COMPRESS_AEXP,       /* DXT5  */
   36    DDS_COMPRESS_YCOCG,      /* DXT5  */
   37    DDS_COMPRESS_YCOCGS,     /* DXT5  */
   38    DDS_COMPRESS_MAX
   39 } DDS_COMPRESSION_TYPE;
   40 
   41 typedef enum
   42 {
   43    DDS_SAVE_SELECTED_LAYER = 0,
   44    DDS_SAVE_CUBEMAP,
   45    DDS_SAVE_VOLUMEMAP,
   46    DDS_SAVE_MAX
   47 } DDS_SAVE_TYPE;
   48 
   49 typedef enum
   50 {
   51    DDS_FORMAT_DEFAULT = 0,
   52    DDS_FORMAT_RGB8,
   53    DDS_FORMAT_RGBA8,
   54    DDS_FORMAT_BGR8,
   55    DDS_FORMAT_ABGR8,
   56    DDS_FORMAT_R5G6B5,
   57    DDS_FORMAT_RGBA4,
   58    DDS_FORMAT_RGB5A1,
   59    DDS_FORMAT_RGB10A2,
   60    DDS_FORMAT_R3G3B2,
   61    DDS_FORMAT_L8,
   62    DDS_FORMAT_L8A8,
   63    DDS_FORMAT_AEXP,
   64    DDS_FORMAT_YCOCG,
   65    DDS_FORMAT_MAX
   66 } DDS_FORMAT_TYPE;
   67 
   68 typedef enum
   69 {
   70    DDS_COLOR_DEFAULT = 0,
   71    DDS_COLOR_DISTANCE,
   72    DDS_COLOR_LUMINANCE,
   73    DDS_COLOR_INSET_BBOX,
   74    DDS_COLOR_MAX
   75 } DDS_COLOR_TYPE;
   76 
   77 #define DDS_HEADERSIZE             128
   78 
   79 #define DDSD_CAPS                  0x00000001
   80 #define DDSD_HEIGHT                0x00000002
   81 #define DDSD_WIDTH                 0x00000004
   82 #define DDSD_PITCH                 0x00000008
   83 #define DDSD_PIXELFORMAT           0x00001000
   84 #define DDSD_MIPMAPCOUNT           0x00020000
   85 #define DDSD_LINEARSIZE            0x00080000
   86 #define DDSD_DEPTH                 0x00800000
   87 
   88 #define DDPF_ALPHAPIXELS           0x00000001
   89 #define DDPF_FOURCC                0x00000004
   90 #define DDPF_PALETTEINDEXED8       0x00000020
   91 #define DDPF_RGB                   0x00000040
   92 #define DDPF_LUMINANCE             0x00020000
   93 
   94 #define DDSCAPS_COMPLEX            0x00000008
   95 #define DDSCAPS_TEXTURE            0x00001000
   96 #define DDSCAPS_MIPMAP             0x00400000
   97 
   98 #define DDSCAPS2_CUBEMAP           0x00000200
   99 #define DDSCAPS2_CUBEMAP_POSITIVEX 0x00000400
  100 #define DDSCAPS2_CUBEMAP_NEGATIVEX 0x00000800
  101 #define DDSCAPS2_CUBEMAP_POSITIVEY 0x00001000
  102 #define DDSCAPS2_CUBEMAP_NEGATIVEY 0x00002000
  103 #define DDSCAPS2_CUBEMAP_POSITIVEZ 0x00004000
  104 #define DDSCAPS2_CUBEMAP_NEGATIVEZ 0x00008000
  105 #define DDSCAPS2_VOLUME            0x00200000
  106 
  107 typedef struct __attribute__((packed))
  108 {
  109    unsigned int size;
  110    unsigned int flags;
  111    char fourcc[4];
  112    unsigned int bpp;
  113    unsigned int rmask;
  114    unsigned int gmask;
  115    unsigned int bmask;
  116    unsigned int amask;
  117 } dds_pixel_format_t;
  118 
  119 typedef struct __attribute__((packed))
  120 {
  121    unsigned int caps1;
  122    unsigned int caps2;
  123    unsigned int reserved[2];
  124 } dds_caps_t;
  125 
  126 typedef struct __attribute__((packed))
  127 {
  128    char magic[4];
  129    unsigned int size;
  130    unsigned int flags;
  131    unsigned int height;
  132    unsigned int width;
  133    unsigned int pitch_or_linsize;
  134    unsigned int depth;
  135    unsigned int num_mipmaps;
  136    unsigned char reserved[4 * 11];
  137    dds_pixel_format_t pixelfmt;
  138    dds_caps_t caps;
  139    unsigned int reserved2;
  140 } dds_header_t;
  141 
  142 #endif

ViewVC Help
Powered by ViewVC 1.0.4