Blender V4.5
DNA_material_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_defs.h"
13#include "DNA_listBase.h"
14
15#ifndef MAX_MTEX
16# define MAX_MTEX 18
17#endif
18
19struct AnimData;
20struct Image;
21struct Ipo;
22struct bNodeTree;
23
24/* WATCH IT: change type? also make changes in ipo.h */
25
48
51
52
53 struct Image *sima;
55 struct Image *ima;
57 float stroke_rgba[4];
59 float fill_rgba[4];
61 float mix_rgba[4];
63 short flag;
65 short index;
73 float gradient_angle DNA_DEPRECATED;
75 float gradient_radius DNA_DEPRECATED;
76 char _pad2[4];
78 float gradient_scale[2] DNA_DEPRECATED;
80 float gradient_shift[2] DNA_DEPRECATED;
84 float texture_scale[2];
88 float texture_opacity DNA_DEPRECATED;
92 int mode;
93
96
104
105/* MaterialGPencilStyle->flag */
107 /* Fill Texture is a pattern */
109 /* don't display color */
111 /* protected from further editing */
113 /* do onion skinning */
115 /* clamp texture */
117 /* mix fill texture */
119 /* Flip fill colors */
121 /* Stroke Texture is a pattern */
123 /* Stroke show main switch */
125 /* Fill show main switch */
127 /* mix stroke texture */
129 /* disable stencil clipping (overlap) */
131 /* Material used as stroke masking. */
133 /* Material used as fill masking. */
136
142
143typedef struct MaterialLineArt {
144 /* eMaterialLineArtFlags */
145 int flags;
146
147 /* Used to filter line art occlusion edges */
148 unsigned char material_mask_bits;
149
151 unsigned char mat_occlusion;
152
154
155 char _pad;
157
163
164typedef struct Material {
165#ifdef __cplusplus
168 static constexpr ID_Type id_type = ID_MA;
169#endif
170
173 struct AnimData *adt;
174
175 short flag;
178 char _pad1[1];
179
180 /* Colors from Blender Internal that we are still using. */
181 float r, g, b, a;
183 float alpha DNA_DEPRECATED;
184 float ray_mirror DNA_DEPRECATED;
185 float spec;
187 float gloss_mir DNA_DEPRECATED;
189 float metallic;
190
193
197 short pr_flag;
198
200 short index;
201
204 struct Ipo *ipo DNA_DEPRECATED;
206
207 /* Freestyle line settings. */
208 float line_col[4];
211
212 /* Texture painting slots. */
216
217 /* Displacement. */
219
220 /* Thickness. */
222
223 /* Transparency. */
226 char blend_method; /* TODO(fclem): Deprecate once we remove legacy EEVEE. */
227 char blend_shadow; /* TODO(fclem): Deprecate once we remove legacy EEVEE. */
229
230 /* Volume. */
232
233 /* Displacement. */
235
236 char _pad3[4];
237
243
246
251
252/* **************** MATERIAL ********************* */
253
254/* maximum number of materials per material array.
255 * (on object, mesh, light, etc.). limited by
256 * short mat_nr in verts, faces.
257 * -1 because for active material we store the index + 1 */
258#define MAXMAT (32767 - 1)
259
261enum {
263 MA_IS_USED = 1 << 0, /* UNUSED */
265 MA_DS_EXPAND = 1 << 1,
272};
273
274/* ramps */
275enum {
295};
296
298enum {
299 TEXCO_ORCO = 1 << 0,
300 // TEXCO_REFL = 1 << 1, /* Deprecated. */
301 // TEXCO_NORM = 1 << 2, /* Deprecated. */
302 TEXCO_GLOB = 1 << 3,
303 TEXCO_UV = 1 << 4,
304 TEXCO_OBJECT = 1 << 5,
305 // TEXCO_LAVECTOR = 1 << 6, /* Deprecated. */
306 // TEXCO_VIEW = 1 << 7, /* Deprecated. */
307 // TEXCO_STICKY = 1 << 8, /* Deprecated. */
308 // TEXCO_OSA = 1 << 9, /* Deprecated. */
309 TEXCO_WINDOW = 1 << 10,
310 // NEED_UV = 1 << 11, /* Deprecated. */
311 // TEXCO_TANGENT = 1 << 12, /* Deprecated. */
313 TEXCO_STRAND = 1 << 13,
315 TEXCO_PARTICLE = 1 << 13,
316 // TEXCO_STRESS = 1 << 14, /* Deprecated. */
317 // TEXCO_SPEED = 1 << 15, /* Deprecated. */
318};
319
321enum {
322 MAP_COL = 1 << 0,
323 MAP_ALPHA = 1 << 7,
324};
325
327typedef enum ePreviewType {
332 MA_SPHERE_A = 4, /* Used for icon renders only. */
341
343enum {
345};
346
348enum {
351};
352
354enum {
357};
358
360enum {
362 // MA_BM_ADD = 1, /* deprecated */
363 // MA_BM_MULTIPLY = 2, /* deprecated */
367};
368
370enum {
379};
380
382enum {
387};
388
390enum {
394};
395
397enum {
400};
401
402/* Grease Pencil Stroke styles */
403enum {
406};
407
408/* Grease Pencil Fill styles */
409enum {
412 GP_MATERIAL_FILL_STYLE_CHECKER = 2, /* DEPRECATED (only for convert old files) */
414};
415
416/* Grease Pencil Gradient Types */
417enum {
420};
421
422/* Grease Pencil Follow Drawing Modes */
423enum {
427};
ID and Library types, which are fundamental for SDNA.
ID_Type
@ ID_MA
These structs are the foundation for all linked lists in the library system.
@ MA_BM_CLIP
@ MA_BM_HASHED
@ MA_BM_SOLID
@ MA_BM_BLEND
@ MA_DS_SHOW_TEXS
@ MA_DS_EXPAND
@ MA_IS_USED
@ MA_THICKNESS_SLAB
@ MA_THICKNESS_SPHERE
@ MA_PREVIEW_WORLD
@ MA_SPHERE_A
@ MA_SHADERBALL
@ MA_TEXTURE
@ MA_SPHERE
@ GP_MATERIAL_FOLLOW_OBJ
@ GP_MATERIAL_FOLLOW_PATH
@ GP_MATERIAL_FOLLOW_FIXED
@ MA_VOLUME_ISECT_ACCURATE
@ MA_VOLUME_ISECT_FAST
@ MA_BS_HASHED
@ MA_BS_CLIP
@ MA_BS_NONE
@ MA_BS_SOLID
@ GP_MATERIAL_STROKE_STYLE_SOLID
@ GP_MATERIAL_STROKE_STYLE_TEXTURE
@ TEXCO_WINDOW
@ TEXCO_ORCO
@ TEXCO_PARTICLE
@ TEXCO_GLOB
@ TEXCO_OBJECT
@ TEXCO_STRAND
@ MA_RAMP_LIGHT
@ MA_RAMP_COLOR
@ MA_RAMP_SAT
@ MA_RAMP_HUE
@ MA_RAMP_LINEAR
@ MA_RAMP_DIV
@ MA_RAMP_EXCLUSION
@ MA_RAMP_ADD
@ MA_RAMP_DODGE
@ MA_RAMP_SUB
@ MA_RAMP_SCREEN
@ MA_RAMP_SOFT
@ MA_RAMP_DARK
@ MA_RAMP_BURN
@ MA_RAMP_BLEND
@ MA_RAMP_VAL
@ MA_RAMP_OVERLAY
@ MA_RAMP_MULT
@ MA_RAMP_DIFF
struct Material Material
eMaterialGPencilStyle_Flag
@ GP_MATERIAL_LOCKED
@ GP_MATERIAL_FLIP_FILL
@ GP_MATERIAL_STROKE_PATTERN
@ GP_MATERIAL_STROKE_TEX_MIX
@ GP_MATERIAL_FILL_TEX_MIX
@ GP_MATERIAL_HIDE_ONIONSKIN
@ GP_MATERIAL_HIDE
@ GP_MATERIAL_DISABLE_STENCIL
@ GP_MATERIAL_IS_STROKE_HOLDOUT
@ GP_MATERIAL_STROKE_SHOW
@ GP_MATERIAL_IS_FILL_HOLDOUT
@ GP_MATERIAL_FILL_PATTERN
@ GP_MATERIAL_FILL_SHOW
@ GP_MATERIAL_TEX_CLAMP
eMaterialLineArtFlags
@ LRT_MATERIAL_CUSTOM_OCCLUSION_EFFECTIVENESS
@ LRT_MATERIAL_CUSTOM_INTERSECTION_PRIORITY
@ LRT_MATERIAL_MASK_ENABLED
@ MA_SURFACE_METHOD_DEFERRED
@ MA_SURFACE_METHOD_FORWARD
@ MAP_ALPHA
eMaterialGPencilStyle_Mode
@ GP_MATERIAL_MODE_SQUARE
@ GP_MATERIAL_MODE_DOT
@ GP_MATERIAL_MODE_LINE
@ MA_BL_TRANSPARENT_SHADOW
@ MA_BL_LIGHTPROBE_VOLUME_DOUBLE_SIDED
@ MA_BL_THICKNESS_FROM_SHADOW
@ MA_BL_CULL_BACKFACE
@ MA_BL_TRANSLUCENCY
@ MA_BL_SS_REFRACTION
@ MA_BL_CULL_BACKFACE_SHADOW
@ MA_BL_HIDE_BACKFACE
@ GP_MATERIAL_GRADIENT_RADIAL
@ GP_MATERIAL_GRADIENT_LINEAR
@ MA_DISPLACEMENT_BOTH
@ MA_DISPLACEMENT_BUMP
@ MA_DISPLACEMENT_DISPLACE
@ GP_MATERIAL_FILL_STYLE_GRADIENT
@ GP_MATERIAL_FILL_STYLE_TEXTURE
@ GP_MATERIAL_FILL_STYLE_CHECKER
@ GP_MATERIAL_FILL_STYLE_SOLID
struct MaterialLineArt MaterialLineArt
#define typedef
#define DNA_DEFINE_CXX_METHODS(class_name)
Definition DNA_ID.h:404
float gradient_angle DNA_DEPRECATED
unsigned char mat_occlusion
unsigned char intersection_priority
unsigned char material_mask_bits
float line_col[4]
char volume_intersection_method
struct MaterialLineArt lineart
struct bNodeTree * nodetree
short paint_active_slot
struct PreviewImage * preview
struct MaterialGPencilStyle * gp_style
float alpha DNA_DEPRECATED
ListBase gpumaterial
struct AnimData * adt
char surface_render_method
struct TexPaintSlot * texpaintslot
struct Image * ima
struct ImageUser * image_user