/usr/include/libAfterImage/xcf.h is in libafterimage-dev 2.2.12-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 | #ifndef XCF_H_INCLUDED
#define XCF_H_INCLUDED
/* GIMP's XCF file properties/structures : */
#include "asvisual.h"
#include "scanline.h"
#ifdef __cplusplus
extern "C" {
#endif
#define XCF_MAX_CHANNELS 4
#define XCF_GRAY_PIX 0
#define XCF_ALPHA_G_PIX 1
#define XCF_RED_PIX 0
#define XCF_GREEN_PIX 1
#define XCF_BLUE_PIX 2
#define XCF_ALPHA_PIX 3
#define XCF_INDEXED_PIX 0
#define XCF_ALPHA_I_PIX 1
#define XCF_COLORMAP_SIZE 768
typedef enum
{
XCF_PROP_END = 0,
XCF_PROP_COLORMAP = 1,
XCF_PROP_ACTIVE_LAYER = 2,
XCF_PROP_ACTIVE_CHANNEL = 3,
XCF_PROP_SELECTION = 4,
XCF_PROP_FLOATING_SELECTION = 5,
XCF_PROP_OPACITY = 6,
XCF_PROP_MODE = 7,
XCF_PROP_VISIBLE = 8,
XCF_PROP_LINKED = 9,
XCF_PROP_PRESERVE_TRANSPARENCY = 10,
XCF_PROP_APPLY_MASK = 11,
XCF_PROP_EDIT_MASK = 12,
XCF_PROP_SHOW_MASK = 13,
XCF_PROP_SHOW_MASKED = 14,
XCF_PROP_OFFSETS = 15,
XCF_PROP_COLOR = 16,
XCF_PROP_COMPRESSION = 17,
XCF_PROP_GUIDES = 18,
XCF_PROP_RESOLUTION = 19,
XCF_PROP_TATTOO = 20,
XCF_PROP_PARASITES = 21,
XCF_PROP_UNIT = 22,
XCF_PROP_PATHS = 23,
XCF_PROP_USER_UNIT = 24,
XCF_PROP_Total = 25
} XcfPropType;
typedef enum
{
XCF_COMPRESS_NONE = 0,
XCF_COMPRESS_RLE = 1,
XCF_COMPRESS_ZLIB = 2,
XCF_COMPRESS_FRACTAL = 3 /* Unused. */
} XcfCompressionType;
typedef enum
{
XCF_RED_CHANNEL,
XCF_GREEN_CHANNEL,
XCF_BLUE_CHANNEL,
XCF_GRAY_CHANNEL,
XCF_INDEXED_CHANNEL,
XCF_ALPHA_CHANNEL,
XCF_AUXILLARY_CHANNEL
} XcfChannelType;
typedef enum
{
XCF_EXPAND_AS_NECESSARY,
XCF_CLIP_TO_IMAGE,
XCF_CLIP_TO_BOTTOM_LAYER,
XCF_FLATTEN_IMAGE
} XcfMergeType;
#define XCF_SIGNATURE "gimp xcf"
#define XCF_SIGNATURE_LEN 8 /* use in strncmp() */
#define XCF_SIGNATURE_FULL "gimp xcf file"
#define XCF_SIGNATURE_FULL_LEN 14 /* use in seek() */
#define XCF_TILE_WIDTH 64
#define XCF_TILE_HEIGHT 64
struct XcfProperty;
struct XcfLayer;
struct XcfChannel;
struct XcfHierarchy;
struct XcfLevel;
struct XcfTile;
typedef struct XcfImage
{
int version;
CARD32 width;
CARD32 height;
CARD32 type ;
CARD8 compression ;
CARD32 num_cols ;
CARD8 *colormap ;
struct XcfProperty *properties ;
struct XcfLayer *layers;
struct XcfChannel *channels;
struct XcfLayer *floating_selection;
struct XcfChannel *selection;
ASScanline scanline_buf[XCF_TILE_HEIGHT];
CARD8 tile_buf[XCF_TILE_WIDTH*XCF_TILE_HEIGHT*6];
}XcfImage;
typedef struct XcfProperty
{
CARD32 id ;
CARD32 len;
CARD8 *data;
/* most properties will fit in here - save on memory allocation */
CARD32 buffer[20] ;
struct XcfProperty *next;
}XcfProperty;
typedef struct XcfLayer
{
struct XcfLayer *next;
CARD32 offset ;
/* layer data goes here */
CARD32 width ;
CARD32 height ;
CARD32 type ;
/* we don't give a damn about layer's name - skip it */
struct XcfProperty *properties ;
CARD32 opacity ;
Bool visible ;
Bool preserve_transparency ;
CARD32 mode ;
CARD32 offset_x, offset_y ;
CARD32 hierarchy_offset;
CARD32 mask_offset ;
struct XcfHierarchy *hierarchy ;
struct XcfChannel *mask ;
}XcfLayer;
typedef struct XcfChannel
{
struct XcfChannel *next;
CARD32 offset ;
/* Channel data goes here */
CARD32 width ;
CARD32 height ;
/* we don't give a damn about layer's name - skip it */
struct XcfProperty *properties ;
CARD32 opacity ;
Bool visible ;
ARGB32 color ;
CARD32 hierarchy_offset;
struct XcfHierarchy *hierarchy ;
}XcfChannel;
typedef struct XcfHierarchy
{
/* layer data goes here */
CARD32 width ;
CARD32 height ;
CARD32 bpp ;
/* we don't give a damn about layer's name - skip it */
struct XcfLevel *levels ;
ASImage *image ;
}XcfHierarchy;
typedef struct XcfLevel
{
struct XcfLevel *next ;
CARD32 offset ;
CARD32 width ;
CARD32 height ;
struct XcfTile *tiles ;
}XcfLevel;
typedef struct XcfTile
{
struct XcfTile *next ;
CARD32 offset ;
CARD32 estimated_size ;
CARD8 *data;
}XcfTile;
union XcfListElem;
typedef struct XcfAnyListElem
{
union XcfListElem *next;
CARD32 offset ;
}XcfAnyListElem;
typedef union XcfListElem{
XcfAnyListElem any;
XcfLayer layer;
XcfChannel channel;
XcfLevel level;
XcfTile tile;
}XcfListElem ;
XcfImage *read_xcf_image( FILE *fp );
void print_xcf_image( XcfImage *xcf_im );
void free_xcf_image( XcfImage *xcf_im );
#ifdef __cplusplus
}
#endif
#endif /* #ifndef XCF_H_INCLUDED */
|