Blender V4.5
DNA_image_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "DNA_ID.h"
12#include "DNA_color_types.h" /* for color management */
13#include "DNA_defs.h"
14
15#ifdef __cplusplus
16namespace blender::bke {
17struct ImageRuntime;
18} // namespace blender::bke
20#else
22#endif
23
24struct GPUTexture;
25struct MovieReader;
26struct MovieCache;
27struct PackedFile;
28struct RenderResult;
29struct Scene;
30
35typedef struct ImageUser {
37 struct Scene *scene;
38
42 int frames;
46 char cycl;
47
50 short pass;
51
52 int tile;
53
56 short flag;
58
59typedef struct ImageAnim {
60 struct ImageAnim *next, *prev;
63
64typedef struct ImageView {
65 struct ImageView *next, *prev;
66 char name[/*MAX_NAME*/ 64];
67 char filepath[/*FILE_MAX*/ 1024];
69
70typedef struct ImagePackedFile {
73
74 /* Which view and tile this ImagePackedFile represents. Normal images will use 0 and 1001
75 * respectively when creating their ImagePackedFile. Must be provided for each packed image. */
76 int view;
78 char filepath[/*FILE_MAX*/ 1024];
80
81typedef struct RenderSlot {
82 struct RenderSlot *next, *prev;
83 char name[/*MAX_NAME*/ 64];
86
93
94typedef struct ImageTile {
95 struct ImageTile *next, *prev;
96
98
100
101 /* for generated images */
105 float gen_color[4];
106
107 char label[64];
109
111enum {
113 // IMA_UNUSED_1 = 1 << 1,
114 // IMA_UNUSED_2 = 1 << 2,
117 // IMA_UNUSED_5 = 1 << 5,
118};
119
120/* Used to get the correct gpu texture from an Image datablock. */
127
128typedef struct Image {
129#ifdef __cplusplus
131 static constexpr ID_Type id_type = ID_IM;
132#endif
133
135 struct AnimData *adt;
136
138 char filepath[/*FILE_MAX*/ 1024];
139
143 struct GPUTexture *gputexture[/*TEXTARGET_COUNT*/ 3][2];
144
145 /* sources from: */
148
151
152 int flag;
153 short source, type;
155
156 /* GPU texture flag. */
158 short gpuflag;
159 short gpu_pass;
161 short gpu_view;
162
163 /* Number of iterations to perform when extracting mask for uv seam fixing. */
165
166 char _pad2[2];
167
169 struct PackedFile *packedfile DNA_DEPRECATED;
172
174
175 /* for generated images */
177 char gen_type DNA_DEPRECATED, gen_flag DNA_DEPRECATED;
178 short gen_depth DNA_DEPRECATED;
179 float gen_color[4] DNA_DEPRECATED;
180
181 /* display aspect - for UV editing images resized for faster openGL display */
182 float aspx, aspy;
183
184 /* color management */
187
188 char _pad;
189
190 /* Multiview */
192 char eye;
194
195 /* ImageTile list for UDIMs. */
198
202
205
206/* **************** IMAGE ********************* */
207
209enum {
211 IMA_FLAG_UNUSED_1 = (1 << 1), /* cleared */
212#ifdef DNA_DEPRECATED_ALLOW
213 IMA_DO_PREMUL = (1 << 2),
214#endif
215 IMA_FLAG_UNUSED_4 = (1 << 4), /* cleared */
216 IMA_NOCOLLECT = (1 << 5),
217 IMA_FLAG_UNUSED_6 = (1 << 6), /* cleared */
218 IMA_OLD_PREMUL = (1 << 7),
219 IMA_FLAG_UNUSED_8 = (1 << 8), /* cleared */
224 IMA_FLAG_UNUSED_12 = (1 << 12), /* cleared */
225 IMA_DEINTERLACE = (1 << 13),
226 IMA_USE_VIEWS = (1 << 14),
227 IMA_FLAG_UNUSED_15 = (1 << 15), /* cleared */
228 IMA_FLAG_UNUSED_16 = (1 << 16), /* cleared */
229};
230
232enum {
235};
236
237/* Image.source, where the image comes from */
238typedef enum eImageSource {
239 /* IMA_SRC_CHECK = 0, */ /* UNUSED */
247
248/* Image.type, how to handle or generate the image */
258
260enum {
264};
265
267#define IMA_MAX_RENDER_TEXT_SIZE 512
268
270enum {
271 IMA_GEN_FLOAT = (1 << 0),
272 IMA_GEN_TILE = (1 << 1),
273};
274
276enum {
281};
282
283/* Image gpu runtime defaults */
284#define IMAGE_GPU_FRAME_NONE INT_MAX
285#define IMAGE_GPU_PASS_NONE SHRT_MAX
286#define IMAGE_GPU_LAYER_NONE SHRT_MAX
287#define IMAGE_GPU_VIEW_NONE SHRT_MAX
ID and Library types, which are fundamental for SDNA.
ID_Type
@ ID_IM
@ IMA_ALPHA_IGNORE
@ IMA_ALPHA_STRAIGHT
@ IMA_ALPHA_PREMUL
@ IMA_ALPHA_CHANNEL_PACKED
eImageSource
@ IMA_SRC_FILE
@ IMA_SRC_MOVIE
@ IMA_SRC_GENERATED
@ IMA_SRC_VIEWER
@ IMA_SRC_TILED
@ IMA_SRC_SEQUENCE
@ IMA_GEN_TILE
@ IMA_GEN_FLOAT
@ IMA_ANIM_ALWAYS
@ IMA_NEED_FRAME_RECALC
@ IMA_SHOW_STEREO
@ IMA_GPU_MIPMAP_COMPLETE
@ IMA_GENTYPE_GRID_COLOR
@ IMA_GENTYPE_GRID
@ IMA_GENTYPE_BLANK
eImageType
@ IMA_TYPE_MULTILAYER
@ IMA_TYPE_UV_TEST
@ IMA_TYPE_R_RESULT
@ IMA_TYPE_COMPOSITE
@ IMA_TYPE_IMAGE
@ IMA_FLAG_UNUSED_16
@ IMA_FLAG_UNUSED_8
@ IMA_NOCOLLECT
@ IMA_FLAG_UNUSED_6
@ IMA_DEINTERLACE
@ IMA_USED_FOR_RENDER
@ IMA_FLAG_UNUSED_12
@ IMA_FLAG_UNUSED_1
@ IMA_FLAG_UNUSED_15
@ IMA_HIGH_BITDEPTH
@ IMA_USER_FRAME_IN_RANGE
@ IMA_USE_VIEWS
@ IMA_FLAG_UNUSED_4
@ IMA_OLD_PREMUL
@ IMA_VIEW_AS_RENDER
struct ImageRuntimeHandle ImageRuntimeHandle
eGPUTextureTarget
@ TEXTARGET_2D
@ TEXTARGET_2D_ARRAY
@ TEXTARGET_COUNT
@ TEXTARGET_TILE_MAPPING
Definition DNA_ID.h:404
struct ImageAnim * next
struct ImageAnim * prev
struct MovieReader * anim
struct PackedFile * packedfile
struct ImagePackedFile * next
char filepath[1024]
struct ImagePackedFile * prev
struct ImageTile * prev
char label[64]
struct ImageTile * next
struct ImageTile_Runtime runtime
float gen_color[4]
short multi_index
struct Scene * scene
char name[64]
char filepath[1024]
struct ImageView * next
struct ImageView * prev
short gpuflag
struct MovieCache * cache
struct ListBase packedfiles
struct PreviewImage * preview
short last_render_slot
ListBase anims
ColorManagedColorspaceSettings colorspace_settings
short gpu_pass
ListBase renderslots
short gpu_layer
char views_format
short gpu_view
char filepath[1024]
ListBase tiles
struct GPUTexture * gputexture[3][2]
short source
short render_slot
struct RenderResult * rr
short seam_margin
ListBase views
struct AnimData * adt
char alpha_mode
struct Stereo3dFormat * stereo3d_format
ImageRuntimeHandle * runtime
char _pad2[2]
int active_tile_index
struct PackedFile *packedfile DNA_DEPRECATED
struct RenderResult * render
struct RenderSlot * next
char name[64]
struct RenderSlot * prev