Parent Directory
|
Revision Log
Release 2.0.2 tag
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_A8, 62 DDS_FORMAT_L8, 63 DDS_FORMAT_L8A8, 64 DDS_FORMAT_AEXP, 65 DDS_FORMAT_YCOCG, 66 DDS_FORMAT_MAX 67 } DDS_FORMAT_TYPE; 68 69 typedef enum 70 { 71 DDS_COLOR_DEFAULT = 0, 72 DDS_COLOR_DISTANCE, 73 DDS_COLOR_LUMINANCE, 74 DDS_COLOR_INSET_BBOX, 75 DDS_COLOR_MAX 76 } DDS_COLOR_TYPE; 77 78 #define DDS_HEADERSIZE 128 79 80 #define DDSD_CAPS 0x00000001 81 #define DDSD_HEIGHT 0x00000002 82 #define DDSD_WIDTH 0x00000004 83 #define DDSD_PITCH 0x00000008 84 #define DDSD_PIXELFORMAT 0x00001000 85 #define DDSD_MIPMAPCOUNT 0x00020000 86 #define DDSD_LINEARSIZE 0x00080000 87 #define DDSD_DEPTH 0x00800000 88 89 #define DDPF_ALPHAPIXELS 0x00000001 90 #define DDPF_ALPHA 0x00000002 91 #define DDPF_FOURCC 0x00000004 92 #define DDPF_PALETTEINDEXED8 0x00000020 93 #define DDPF_RGB 0x00000040 94 #define DDPF_LUMINANCE 0x00020000 95 96 #define DDSCAPS_COMPLEX 0x00000008 97 #define DDSCAPS_TEXTURE 0x00001000 98 #define DDSCAPS_MIPMAP 0x00400000 99 100 #define DDSCAPS2_CUBEMAP 0x00000200 101 #define DDSCAPS2_CUBEMAP_POSITIVEX 0x00000400 102 #define DDSCAPS2_CUBEMAP_NEGATIVEX 0x00000800 103 #define DDSCAPS2_CUBEMAP_POSITIVEY 0x00001000 104 #define DDSCAPS2_CUBEMAP_NEGATIVEY 0x00002000 105 #define DDSCAPS2_CUBEMAP_POSITIVEZ 0x00004000 106 #define DDSCAPS2_CUBEMAP_NEGATIVEZ 0x00008000 107 #define DDSCAPS2_VOLUME 0x00200000 108 109 typedef struct __attribute__((packed)) 110 { 111 unsigned int size; 112 unsigned int flags; 113 char fourcc[4]; 114 unsigned int bpp; 115 unsigned int rmask; 116 unsigned int gmask; 117 unsigned int bmask; 118 unsigned int amask; 119 } dds_pixel_format_t; 120 121 typedef struct __attribute__((packed)) 122 { 123 unsigned int caps1; 124 unsigned int caps2; 125 unsigned int reserved[2]; 126 } dds_caps_t; 127 128 typedef struct __attribute__((packed)) 129 { 130 char magic[4]; 131 unsigned int size; 132 unsigned int flags; 133 unsigned int height; 134 unsigned int width; 135 unsigned int pitch_or_linsize; 136 unsigned int depth; 137 unsigned int num_mipmaps; 138 unsigned char reserved[4 * 11]; 139 dds_pixel_format_t pixelfmt; 140 dds_caps_t caps; 141 unsigned int reserved2; 142 } dds_header_t; 143 144 #endif
| ViewVC Help | |
| Powered by ViewVC 1.0.4 |