51#define ALPHA(rgba) ((uint8_t)(rgba))
52#define FULLALPHA(rgba) ((uint8_t)(rgba) == 255)
53#define NULLALPHA(rgba) ((uint8_t)(rgba) == 0)
54#define NEWALPHA(rgb,a) (((rgba)(rgb) & 0xFFFFFF00) + (a))
56#ifdef PRECOMPUTED_SCALETABLE
58#define INIT_SCALETABLE_IF(foo) ((void)0)
63#define INIT_SCALETABLE_IF(foo) \
64 (ok_scaletable || !(foo) || (mk_scaletable(),0) )
77#define TILEXn(dim,tx) \
78 ((tx)==(dim).tilesx ? (dim).c.r : (dim).c.l + ((tx)*TILE_WIDTH))
79#define TILEYn(dim,ty) \
80 ((ty)==(dim).tilesy ? (dim).c.b : (dim).c.t + ((ty)*TILE_HEIGHT))
93#define TILESUMMARY_UPTODATE 8
94#define TILESUMMARY_ALLNULL 4
95#define TILESUMMARY_ALLFULL 2
96#define TILESUMMARY_CRISP 1
110#define assertTileCompatibility(t1,t2) assert((t1)->count==(t2)->count)
115#define invalidateSummary(tile,mask) \
116 do{ assert((tile)->refcount==1); (tile)->summary &= mask; } while(0)
summary_t tileSummary(struct Tile *tile)
int initLayer(struct xcfLayer *)
struct Tile * getLayerTile(struct xcfLayer *, const struct rect *)
void fillTile(struct Tile *, rgba)
const rgba graytable[256]
struct Tile * newTile(struct rect)
struct Tile * getMaskOrLayerTile(struct tileDimensions *dim, struct xcfTiles *tiles, struct rect want)
uint8_t scaletable[256][256]
void applyMask(struct Tile *tile, struct Tile *mask)
struct Tile * forkTile(struct Tile *)
void freeTile(struct Tile *)
rgba pixels[TILE_WIDTH *TILE_HEIGHT]