Two bugfixes:
[blender.git] / source / blender / makesdna / DNA_texture_types.h
index 6711ffbf3a80f5a9964acdbd7dd06b3c7418a8d9..bc2b0521d4f65dde07ebb5db011e2178faa90921 100644 (file)
@@ -35,6 +35,7 @@
 #define DNA_TEXTURE_TYPES_H
 
 #include "DNA_ID.h"
+#include "DNA_image_types.h"
 
 struct Ipo;
 struct PluginTex;
@@ -43,19 +44,23 @@ struct EnvMap;
 struct Object;
 struct Tex;
 struct Image;
+struct PreviewImage;
+struct ImBuf;
 
 typedef struct MTex {
 
        short texco, mapto, maptoneg, blendtype;
        struct Object *object;
        struct Tex *tex;
+       char uvname[32];
        
        char projx, projy, projz, mapping;
        float ofs[3], size[3];
        
-       short texflag, colormodel;
+       short texflag, colormodel, pmapto, pmaptoneg;
+       short normapspace, pad[3];
        float r, g, b, k;
-       float def_var;
+       float def_var, rt;
        
        float colfac, norfac, varfac;
        float dispfac; 
@@ -89,6 +94,7 @@ typedef struct PluginTex {
        float data[32];
 
        int (*doit)(void);
+       void (*instance_init)(void *);
 
        /* should be void (*)(unsigned short)... patched */     
        void (*callback)(dna_ushort_fix);
@@ -101,24 +107,27 @@ typedef struct CBData {
        int cur;
 } CBData;
 
+/* 32 = MAXCOLORBAND */
+/* note that this has to remain a single struct, for UserDef */
 typedef struct ColorBand {
        short flag, tot, cur, ipotype;
-       CBData data[16];
+       CBData data[32];
        
 } ColorBand;
 
 typedef struct EnvMap {
        struct Object *object;
        struct Image *ima;              /* type ENV_LOAD */
-       struct Image *cube[6];          /* these images are dynamic, not part of the main struct */
+       struct ImBuf *cube[6];          /* these images are dynamic, not part of the main struct */
        float imat[4][4];
+       float obimat[3][3];
        short type, stype;
        float clipsta, clipend;
+       float viewscale;        /* viewscale is for planar envmaps to zoom in or out */
        unsigned int notlay;
        short cuberes, depth;
-       short ok, lastframe;
+       int ok, lastframe;
        short recalc, lastsize;
-       int pad1;
 } EnvMap;
 
 typedef struct Tex {
@@ -148,18 +157,24 @@ typedef struct Tex {
        
        float cropxmin, cropymin, cropxmax, cropymax;
        short xrepeat, yrepeat;
-       short extend, len;
+       short extend;
+
+       /* variables disabled, moved to struct iuser */
+       short fie_ima;
+       int len;
+       int frames, offset, sfra;
+       
        float checkerdist, nabla;
-       short frames, offset, sfra, fie_ima;
        float norfac;
        
+       struct ImageUser iuser;
+       
        struct Ipo *ipo;
        struct Image *ima;
        struct PluginTex *plugin;
        struct ColorBand *coba;
        struct EnvMap *env;
-       
-       short fradur[4][2];
+       struct PreviewImage * preview;
        
 } Tex;
 
@@ -229,18 +244,19 @@ typedef struct TexMapping {
 #define TEX_INTERPOL   1
 #define TEX_USEALPHA   2
 #define TEX_MIPMAP             4
-#define TEX_FIELDS             8
 #define TEX_IMAROT             16
 #define TEX_CALCALPHA  32
-#define TEX_ANIMCYCLIC 64
-#define TEX_ANIM5              128
-#define TEX_ANTIALI            256
-#define TEX_ANTISCALE  512
-#define TEX_STD_FIELD  1024
 #define TEX_NORMALMAP  2048
 #define TEX_GAUSS_MIP  4096
+#define TEX_FILTER_MIN 8192
 
-#define TEX_MORKPATCH  16384
+/* imaflag unused, only for version check */
+#define TEX_FIELDS_            8
+#define TEX_ANIMCYCLIC_        64
+#define TEX_ANIM5_             128
+#define TEX_ANTIALI_   256
+#define TEX_ANTISCALE_ 512
+#define TEX_STD_FIELD_ 1024
 
 /* flag */
 #define TEX_COLORBAND          1
@@ -248,6 +264,11 @@ typedef struct TexMapping {
 #define TEX_NEGALPHA           4
 #define TEX_CHECKER_ODD                8
 #define TEX_CHECKER_EVEN       16
+#define TEX_PRV_ALPHA          32
+#define TEX_PRV_NOR                    64
+#define TEX_REPEAT_XMIR                128
+#define TEX_REPEAT_YMIR                256
+#define TEX_FLAG_MASK          ( TEX_COLORBAND | TEX_FLIPBLEND | TEX_NEGALPHA | TEX_CHECKER_ODD | TEX_CHECKER_EVEN | TEX_PRV_ALPHA | TEX_PRV_NOR | TEX_REPEAT_XMIR | TEX_REPEAT_YMIR ) 
 
 /* extend (starts with 1 because of backward comp.) */
 #define TEX_EXTEND             1
@@ -271,6 +292,10 @@ typedef struct TexMapping {
 #define TEX_BANDNOISE  2
 #define TEX_RINGNOISE  3
 
+/* tex->stype in texture.c - cloud types */
+#define TEX_DEFAULT            0
+#define TEX_COLOR              1
+
 /* tex->stype in texture.c - marble types */
 #define TEX_SOFT               0
 #define TEX_SHARP              1
@@ -285,6 +310,23 @@ typedef struct TexMapping {
 #define TEX_HALO               5
 #define TEX_RAD                        6
 
+/* tex->stype in texture.c - stucci types */
+#define TEX_PLASTIC            0
+#define TEX_WALLIN             1
+#define TEX_WALLOUT            2
+
+/* tex->stype in texture.c - voronoi types */
+#define TEX_INTENSITY  0
+#define TEX_COL1               1
+#define TEX_COL2               2
+#define TEX_COL3               3
+
+/* mtex->normapspace */
+#define MTEX_NSPACE_CAMERA     0
+#define MTEX_NSPACE_WORLD      1
+#define MTEX_NSPACE_OBJECT     2
+#define MTEX_NSPACE_TANGENT    3
+
 /* wrap */
 #define MTEX_FLAT              0
 #define MTEX_CUBE              1
@@ -305,11 +347,12 @@ typedef struct TexMapping {
 #define PROJ_Z                 3
 
 /* texflag */
-#define MTEX_RGBTOINT  1
-#define MTEX_STENCIL   2
-#define MTEX_NEGATIVE  4
-#define MTEX_ALPHAMIX  8
-#define MTEX_VIEWSPACE 16
+#define MTEX_RGBTOINT          1
+#define MTEX_STENCIL           2
+#define MTEX_NEGATIVE          4
+#define MTEX_ALPHAMIX          8
+#define MTEX_VIEWSPACE         16
+#define MTEX_DUPLI_MAPTO       32
 
 /* blendtype */
 #define MTEX_BLEND             0
@@ -322,6 +365,10 @@ typedef struct TexMapping {
 #define MTEX_LIGHT             7
 #define MTEX_SCREEN            8
 #define MTEX_OVERLAY   9
+#define MTEX_BLEND_HUE         10
+#define MTEX_BLEND_SAT         11
+#define MTEX_BLEND_VAL         12
+#define MTEX_BLEND_COLOR       13
 
 /* **************** EnvMap ********************* */