Blender V4.3
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
9#pragma once
10
11#include "DNA_ID.h"
12#include "DNA_color_types.h" /* for color management */
13#include "DNA_defs.h"
14
15struct GPUTexture;
16struct ImBufAnim;
17struct MovieCache;
18struct PackedFile;
19struct RenderResult;
20struct Scene;
21
26typedef struct ImageUser {
28 struct Scene *scene;
29
33 int frames;
37 char cycl;
38
41 short pass;
42
43 int tile;
44
47 short flag;
49
50typedef struct ImageAnim {
51 struct ImageAnim *next, *prev;
52 struct ImBufAnim *anim;
54
55typedef struct ImageView {
56 struct ImageView *next, *prev;
58 char name[64];
60 char filepath[1024];
62
63typedef struct ImagePackedFile {
66
67 /* Which view and tile this ImagePackedFile represents. Normal images will use 0 and 1001
68 * respectively when creating their ImagePackedFile. Must be provided for each packed image. */
69 int view;
72 char filepath[1024];
74
75typedef struct RenderSlot {
76 struct RenderSlot *next, *prev;
78 char name[64];
81
88
89typedef struct ImageTile {
90 struct ImageTile *next, *prev;
91
93
95
96 /* for generated images */
99 short gen_depth;
100 float gen_color[4];
101
102 char label[64];
104
106enum {
108 // IMA_UNUSED_1 = 1 << 1,
109 // IMA_UNUSED_2 = 1 << 2,
112 // IMA_UNUSED_5 = 1 << 5,
113};
114
115/* Used to get the correct gpu texture from an Image datablock. */
122
123/* Defined in BKE_image.hh. */
124struct PartialUpdateRegister;
125struct PartialUpdateUser;
126
127typedef struct Image_Runtime {
128 /* Mutex used to guarantee thread-safe access to the cached ImBuf of the corresponding image ID.
129 */
131
133 struct PartialUpdateRegister *partial_update_register;
135 struct PartialUpdateUser *partial_update_user;
136
137 /* Compositor viewer might be translated, and that translation will be stored in this runtime
138 * vector by the compositor so that the editor draw code can draw the image translated. */
141
142typedef struct Image {
144 struct AnimData *adt;
150
152 char filepath[1024];
153
157 struct GPUTexture *gputexture[3][2];
158
159 /* sources from: */
162
165
166 int flag;
167 short source, type;
169
170 /* GPU texture flag. */
172 short gpuflag;
173 short gpu_pass;
175 short gpu_view;
176
177 /* Number of iterations to perform when extracting mask for uv seam fixing. */
179
180 char _pad2[2];
181
183 struct PackedFile *packedfile DNA_DEPRECATED;
186
188
189 /* for generated images */
191 char gen_type DNA_DEPRECATED, gen_flag DNA_DEPRECATED;
192 short gen_depth DNA_DEPRECATED;
193 float gen_color[4] DNA_DEPRECATED;
194
195 /* display aspect - for UV editing images resized for faster openGL display */
196 float aspx, aspy;
197
198 /* color management */
201
202 char _pad;
203
204 /* Multiview */
206 char eye;
208
209 /* ImageTile list for UDIMs. */
212
216
219
220/* **************** IMAGE ********************* */
221
223enum {
225 IMA_FLAG_UNUSED_1 = (1 << 1), /* cleared */
226#ifdef DNA_DEPRECATED_ALLOW
227 IMA_DO_PREMUL = (1 << 2),
228#endif
229 IMA_FLAG_UNUSED_4 = (1 << 4), /* cleared */
230 IMA_NOCOLLECT = (1 << 5),
231 IMA_FLAG_UNUSED_6 = (1 << 6), /* cleared */
232 IMA_OLD_PREMUL = (1 << 7),
233 IMA_FLAG_UNUSED_8 = (1 << 8), /* cleared */
238 IMA_FLAG_UNUSED_12 = (1 << 12), /* cleared */
239 IMA_DEINTERLACE = (1 << 13),
240 IMA_USE_VIEWS = (1 << 14),
241 IMA_FLAG_UNUSED_15 = (1 << 15), /* cleared */
242 IMA_FLAG_UNUSED_16 = (1 << 16), /* cleared */
243};
244
246enum {
249};
250
251/* Image.source, where the image comes from */
252typedef enum eImageSource {
253 /* IMA_SRC_CHECK = 0, */ /* UNUSED */
261
262/* Image.type, how to handle or generate the image */
272
274enum {
278};
279
281#define IMA_MAX_RENDER_TEXT_SIZE 512
282
284enum {
285 IMA_GEN_FLOAT = (1 << 0),
286 IMA_GEN_TILE = (1 << 1),
287};
288
290enum {
295};
ID and Library types, which are fundamental for SDNA.
@ IMA_GPU_MIPMAP_COMPLETE
@ IMA_GEN_TILE
@ IMA_GEN_FLOAT
struct ImageTile_Runtime ImageTile_Runtime
struct ImageTile ImageTile
struct ImageAnim ImageAnim
@ IMA_ANIM_ALWAYS
@ IMA_NEED_FRAME_RECALC
@ IMA_SHOW_STEREO
struct Image_Runtime Image_Runtime
eImageSource
@ IMA_SRC_FILE
@ IMA_SRC_MOVIE
@ IMA_SRC_GENERATED
@ IMA_SRC_VIEWER
@ IMA_SRC_TILED
@ IMA_SRC_SEQUENCE
struct ImageUser ImageUser
struct ImageView ImageView
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
@ IMA_ALPHA_IGNORE
@ IMA_ALPHA_STRAIGHT
@ IMA_ALPHA_PREMUL
@ IMA_ALPHA_CHANNEL_PACKED
struct ImagePackedFile ImagePackedFile
struct Image Image
@ IMA_GENTYPE_GRID_COLOR
@ IMA_GENTYPE_GRID
@ IMA_GENTYPE_BLANK
struct RenderSlot RenderSlot
eGPUTextureTarget
@ TEXTARGET_2D
@ TEXTARGET_2D_ARRAY
@ TEXTARGET_COUNT
@ TEXTARGET_TILE_MAPPING
Definition DNA_ID.h:413
struct ImageAnim * next
struct ImageAnim * prev
struct ImBufAnim * 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 filepath[1024]
struct ImageView * next
struct ImageView * prev
struct PartialUpdateUser * partial_update_user
Partial update user for GPUTextures stored inside the Image.
struct PartialUpdateRegister * partial_update_register
Register containing partial updates.
float backdrop_offset[2]
short gpuflag
struct MovieCache * cache
struct ListBase packedfiles
float gen_color[4] DNA_DEPRECATED
struct PreviewImage * preview
short last_render_slot
Image_Runtime runtime
ListBase anims
ColorManagedColorspaceSettings colorspace_settings
short gpu_pass
ListBase renderslots
short gpu_layer
char views_format
short gpu_view
DrawDataList drawdata
char filepath[1024]
int gen_x DNA_DEPRECATED
ListBase tiles
struct GPUTexture * gputexture[3][2]
short source
short render_slot
char gen_type DNA_DEPRECATED
struct RenderResult * rr
short seam_margin
ListBase views
struct AnimData * adt
char alpha_mode
short gen_depth DNA_DEPRECATED
struct Stereo3dFormat * stereo3d_format
char _pad2[2]
int active_tile_index
struct PackedFile *packedfile DNA_DEPRECATED
struct RenderResult * render
struct RenderSlot * next
struct RenderSlot * prev