RNA: review of commits in the past days, check the diffs for the
[blender.git] / source / blender / makesdna / DNA_image_types.h
1 /**
2  * blenlib/DNA_image_types.h (mar-2001 nzc)
3  *
4  * $Id$ 
5  *
6  * ***** BEGIN GPL LICENSE BLOCK *****
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21  *
22  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23  * All rights reserved.
24  *
25  * The Original Code is: all of this file.
26  *
27  * Contributor(s): none yet.
28  *
29  * ***** END GPL LICENSE BLOCK *****
30  */
31 #ifndef DNA_IMAGE_TYPES_H
32 #define DNA_IMAGE_TYPES_H
33
34 #include "DNA_ID.h"
35
36 struct PackedFile;
37 struct anim;
38 struct ImBuf;
39 struct RenderResult;
40 struct GPUTexture;
41
42
43 /* ImageUser is in Texture, in Nodes, Background Image, Image Window, .... */
44 /* should be used in conjunction with an ID * to Image. */
45 typedef struct ImageUser {
46         int framenr;                            /* movies, sequences: current to display */
47         int frames;                                     /* total amount of frames to use */
48         int offset, sfra;                       /* offset within movie, start frame in global time */
49         short fie_ima, cycl;            /* fields/image in movie, cyclic flag */
50         short flag, ok;
51         
52         short multi_index, layer, pass;  /* listbase indices, for menu browsing or retrieve buffer */
53         short menunr;                                   /* localized menu entry, for handling browse event */
54 } ImageUser;
55
56 /* iuser->flag */
57 #define IMA_ANIM_ALWAYS         1
58 #define IMA_ANIM_REFRESHED      2
59 /* #define IMA_DO_PREMUL        4 */
60
61 typedef struct Image {
62         ID id;
63         
64         char name[240];                 /* file path */
65         
66         ListBase ibufs;                                 /* not written in file */
67         struct GPUTexture *gputexture;  /* not written in file */
68         
69         /* sources from: */
70         struct anim *anim;
71         struct RenderResult *rr;
72         
73         short ok, flag;
74         short source, type, pad, pad1;
75         int lastframe;
76
77         /* texture page */
78         short tpageflag, totbind;
79         short xrep, yrep;
80         short twsta, twend;
81         unsigned int bindcode;  /* only for current image... */
82         unsigned int *repbind;  /* for repeat of parts of images */
83         
84         struct PackedFile * packedfile;
85         struct PreviewImage * preview;
86
87         float lastupdate;
88         int lastused;
89         short animspeed;
90         
91         short gen_x, gen_y, gen_type;   /* for generated images */
92         
93         /* display aspect - for UV editing images resized for faster openGL display */
94         float aspx, aspy;
95         
96 /*#ifdef WITH_VERSE*/
97         void *vnode;            /* pointer at verse bitmap node */
98 /*#endif*/
99 } Image;
100
101
102 /* **************** IMAGE ********************* */
103
104 /* flag */
105 #define IMA_FIELDS              1
106 #define IMA_STD_FIELD   2
107 #define IMA_DO_PREMUL   4
108
109 #define IMA_REFLECT             16
110 #define IMA_NOCOLLECT   32
111 #define IMA_ANTIALI             64
112 #define IMA_OLD_PREMUL  128
113
114 /* tpageflag */
115 #define IMA_TILES                       1
116 #define IMA_TWINANIM            2
117 #define IMA_COLCYCLE            4       /* Depreciated */
118 #define IMA_MIPMAP_COMPLETE 8   /* all mipmap levels in OpenGL texture set? */
119 #define IMA_CLAMP_U             16 
120 #define IMA_CLAMP_V             32
121
122 /* ima->type and ima->source moved to BKE_image.h, for API */
123
124 #endif
125