diff options
author | Ton Roosendaal <ton@blender.org> | 2006-12-20 20:57:56 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-12-20 20:57:56 +0300 |
commit | 253432bfc7c2a1dae224a03fb3055de19743ec67 (patch) | |
tree | 2cea30606f9f29be51d5366ddf0d3747b9649b90 /source/blender/imbuf/IMB_imbuf_types.h | |
parent | 0a0753b409221b66f5003d8c257426043ada227e (diff) |
The Big Image refactor!
Please read:
http://www.blender3d.org/cms/Imaging.834.0.html
Or in short:
- adding MultiLayer Image support
- recoded entire Image API
- better integration of movie/sequence Images
Was a whole load of work... went down for a week to do this. So, will need
a lot of testing! Will be in irc all evening.
Diffstat (limited to 'source/blender/imbuf/IMB_imbuf_types.h')
-rw-r--r-- | source/blender/imbuf/IMB_imbuf_types.h | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/source/blender/imbuf/IMB_imbuf_types.h b/source/blender/imbuf/IMB_imbuf_types.h index 586dedc54e8..f5487bb9ac0 100644 --- a/source/blender/imbuf/IMB_imbuf_types.h +++ b/source/blender/imbuf/IMB_imbuf_types.h @@ -56,6 +56,8 @@ struct _AviMovie; struct Mdec; +#define IB_MIPMAP_LEVELS 10 + /** * \brief The basic imbuf type * \ingroup imbuf @@ -70,36 +72,41 @@ struct Mdec; * * Also, that iff.h needs to be in the final release "plugins/include" dir, too! */ -typedef struct ImBuf{ - short x, y; /**< width and Height of our image buffer */ - short skipx; /**< Width in ints to get to the next scanline */ +typedef struct ImBuf { + struct ImBuf *next, *prev; /**< allow lists of ImBufs, for caches or flipbooks */ + short x, y; /**< width and Height of our image buffer */ + short skipx; /**< Width in ints to get to the next scanline */ unsigned char depth; /**< Active amount of bits/bitplanes */ unsigned char cbits; /**< Amount of active bits in cmap */ unsigned short mincol; /**< smallest color in colormap */ unsigned short maxcol; /**< Largest color in colormap */ - int type; /**< 0=abgr, 1=bitplanes */ - int ftype; /**< File type we are going to save as */ + int type; /**< 0=abgr, 1=bitplanes */ + int ftype; /**< File type we are going to save as */ unsigned int *cmap; /**< Color map data. */ unsigned int *rect; /**< pixel values stored here */ unsigned int **planes; /**< bitplanes */ - int flags; /**< Controls which components should exist. */ - int mall; /**< what is malloced internal, and can be freed */ + int flags; /**< Controls which components should exist. */ + int mall; /**< what is malloced internal, and can be freed */ short xorig, yorig; /**< Cordinates of first pixel of an image used in some formats (example: targa) */ char name[1023]; /**< The file name assocated with this image */ char namenull; /**< Unused don't want to remove it thought messes things up */ - int userflags; /**< Used to set imbuf to Dirty and other stuff */ - int *zbuf; /**< z buffer data, original zbuffer */ - float *zbuf_float; /**< z buffer data, camera coordinates */ + int userflags; /**< Used to set imbuf to Dirty and other stuff */ + int *zbuf; /**< z buffer data, original zbuffer */ + float *zbuf_float; /**< z buffer data, camera coordinates */ void *userdata; unsigned char *encodedbuffer; /**< Compressed image only used with png currently */ unsigned int encodedsize; /**< Size of data written to encodedbuffer */ unsigned int encodedbuffersize; /**< Size of encodedbuffer */ float *rect_float; /**< floating point Rect equivilant */ + int channels; /**< amount of channels in rect_float (0 = 4 channel default) */ float dither; /**< random dither value, for conversion from float -> byte rect */ struct MEM_CacheLimiterHandle_s * c_handle; /**< handle for cache limiter */ - int refcounter; /**< Refcounter for multiple users */ + int refcounter; /**< Refcounter for multiple users */ + int index; /**< reference index for ImBuf lists */ + + struct ImBuf *mipmap[IB_MIPMAP_LEVELS]; /**< MipMap levels, a series of halved images */ } ImBuf; /* Moved from BKE_bmfont_types.h because it is a userflag bit mask. */ @@ -138,8 +145,9 @@ typedef enum { #define IB_zbuf (1 << 13) #define IB_mem (1 << 14) -#define IB_rectfloat (1 << 15) -#define IB_zbuffloat (1 << 16) +#define IB_rectfloat (1 << 15) +#define IB_zbuffloat (1 << 16) +#define IB_multilayer (1 << 17) /* * The bit flag is stored in the ImBuf.ftype variable. |