Blender V5.0
texture.cc File Reference
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <optional>
#include "MEM_guardedalloc.h"
#include "BLI_kdopbvh.hh"
#include "BLI_listbase.h"
#include "BLI_math_matrix.h"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "BKE_node_legacy_types.hh"
#include "DNA_brush_types.h"
#include "DNA_color_types.h"
#include "DNA_defaults.h"
#include "DNA_linestyle_types.h"
#include "DNA_material_types.h"
#include "DNA_node_types.h"
#include "DNA_particle_types.h"
#include "DNA_texture_types.h"
#include "BKE_brush.hh"
#include "BKE_colorband.hh"
#include "BKE_colortools.hh"
#include "BKE_icons.h"
#include "BKE_idtype.hh"
#include "BKE_image.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_query.hh"
#include "BKE_node_runtime.hh"
#include "BKE_preview_image.hh"
#include "BKE_texture.h"
#include "NOD_texture.h"
#include "RE_texture.h"
#include "DRW_engine.hh"
#include "BLO_read_write.hh"

Go to the source code of this file.

Macros

#define DNA_DEPRECATED_ALLOW

Functions

static void texture_init_data (ID *id)
static void texture_copy_data (Main *bmain, std::optional< Library * > owner_library, ID *id_dst, const ID *id_src, const int flag)
static void texture_free_data (ID *id)
static void texture_foreach_id (ID *id, LibraryForeachIDData *data)
static void texture_blend_write (BlendWriter *writer, ID *id, const void *id_address)
static void texture_blend_read_data (BlendDataReader *reader, ID *id)
void BKE_texture_mtex_foreach_id (LibraryForeachIDData *data, MTex *mtex)
TexMappingBKE_texture_mapping_add (int type)
void BKE_texture_mapping_default (TexMapping *texmap, int type)
void BKE_texture_mapping_init (TexMapping *texmap)
ColorMappingBKE_texture_colormapping_add ()
void BKE_texture_colormapping_default (ColorMapping *colormap)
void BKE_texture_default (Tex *tex)
void BKE_texture_type_set (Tex *tex, int type)
TexBKE_texture_add (Main *bmain, const char *name)
void BKE_texture_mtex_default (MTex *mtex)
MTexBKE_texture_mtex_add ()
MTexBKE_texture_mtex_add_id (ID *id, int slot)
Texgive_current_linestyle_texture (FreestyleLineStyle *linestyle)
void set_current_linestyle_texture (FreestyleLineStyle *linestyle, Tex *newtex)
bool give_active_mtex (ID *id, MTex ***mtex_ar, short *act)
void set_active_mtex (ID *id, short act)
Texgive_current_brush_texture (Brush *br)
void set_current_brush_texture (Brush *br, Tex *newtex)
Texgive_current_particle_texture (ParticleSettings *part)
void set_current_particle_texture (ParticleSettings *part, Tex *newtex)
bool BKE_texture_is_image_user (const Tex *tex)
bool BKE_texture_dependsOnTime (const Tex *texture)
void BKE_texture_get_value_ex (Tex *texture, const float *tex_co, TexResult *texres, ImagePool *pool, bool use_color_management)
void BKE_texture_get_value (Tex *texture, const float *tex_co, TexResult *texres, bool use_color_management)
static void texture_nodes_fetch_images_for_pool (Tex *texture, bNodeTree *ntree, ImagePool *pool)
void BKE_texture_fetch_images_for_pool (Tex *texture, ImagePool *pool)

Variables

IDTypeInfo IDType_ID_TE

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 27 of file texture.cc.

Function Documentation

◆ BKE_texture_add()

Tex * BKE_texture_add ( Main * bmain,
const char * name )

Definition at line 370 of file texture.cc.

References BKE_id_new(), and name.

Referenced by new_texture_exec().

◆ BKE_texture_colormapping_add()

ColorMapping * BKE_texture_colormapping_add ( void )

Definition at line 328 of file texture.cc.

References BKE_texture_colormapping_default(), and MEM_callocN().

◆ BKE_texture_colormapping_default()

◆ BKE_texture_default()

void BKE_texture_default ( Tex * tex)

Definition at line 358 of file texture.cc.

References Tex::id, and texture_init_data().

Referenced by init().

◆ BKE_texture_dependsOnTime()

bool BKE_texture_dependsOnTime ( const Tex * texture)

Definition at line 598 of file texture.cc.

References BKE_image_is_animated(), TEX_NOISE, and texture().

◆ BKE_texture_fetch_images_for_pool()

void BKE_texture_fetch_images_for_pool ( struct Tex * texture,
struct ImagePool * pool )

Make sure all images used by texture are loaded into pool.

Definition at line 661 of file texture.cc.

References BKE_image_pool_acquire_ibuf(), TEX_IMAGE, texture(), and texture_nodes_fetch_images_for_pool().

Referenced by displaceModifier_do(), and shader_preview_texture().

◆ BKE_texture_get_value()

void BKE_texture_get_value ( Tex * texture,
const float * tex_co,
TexResult * texres,
bool use_color_management )

Definition at line 638 of file texture.cc.

References BKE_texture_get_value_ex(), and texture().

Referenced by warpModifier_do(), waveModifier_do(), and weightvg_do_mask().

◆ BKE_texture_get_value_ex()

void BKE_texture_get_value_ex ( Tex * texture,
const float * tex_co,
TexResult * texres,
ImagePool * pool,
bool use_color_management )

◆ BKE_texture_is_image_user()

bool BKE_texture_is_image_user ( const Tex * tex)

Definition at line 587 of file texture.cc.

References TEX_IMAGE, and Tex::type.

Referenced by texture_copy_data().

◆ BKE_texture_mapping_add()

TexMapping * BKE_texture_mapping_add ( int type)

Definition at line 225 of file texture.cc.

References BKE_texture_mapping_default(), and MEM_callocN().

◆ BKE_texture_mapping_default()

◆ BKE_texture_mapping_init()

◆ BKE_texture_mtex_add()

MTex * BKE_texture_mtex_add ( void )

◆ BKE_texture_mtex_add_id()

MTex * BKE_texture_mtex_add_id ( struct ID * id,
int slot )

Slot -1 for first free ID.

Definition at line 399 of file texture.cc.

References BKE_texture_mtex_add(), give_active_mtex(), i, id_us_min(), MAX_MTEX, and MEM_freeN().

◆ BKE_texture_mtex_default()

void BKE_texture_mtex_default ( MTex * mtex)

Definition at line 381 of file texture.cc.

References DNA_struct_default_get.

Referenced by BKE_texture_mtex_add(), blo_do_versions_250(), and blo_do_versions_260().

◆ BKE_texture_mtex_foreach_id()

void BKE_texture_mtex_foreach_id ( struct LibraryForeachIDData * data,
struct MTex * mtex )

Utility for all IDs using those texture slots.

Definition at line 217 of file texture.cc.

References BKE_LIB_FOREACHID_PROCESS_IDSUPER, data, IDWALK_CB_NOP, IDWALK_CB_USER, MTex::object, and MTex::tex.

Referenced by brush_foreach_id(), linestyle_foreach_id(), and particle_settings_foreach_id().

◆ BKE_texture_type_set()

void BKE_texture_type_set ( Tex * tex,
int type )

Definition at line 363 of file texture.cc.

References Tex::type.

◆ give_active_mtex()

bool give_active_mtex ( ID * id,
MTex *** mtex_ar,
short * act )

Definition at line 480 of file texture.cc.

References GS, ID_LS, ID_PA, and ID::name.

Referenced by BKE_texture_mtex_add_id(), and texture_slot_move_exec().

◆ give_current_brush_texture()

Tex * give_current_brush_texture ( Brush * br)

Definition at line 527 of file texture.cc.

References Brush::mtex, and MTex::tex.

Referenced by texture_get_from_context().

◆ give_current_linestyle_texture()

Tex * give_current_linestyle_texture ( FreestyleLineStyle * linestyle)

Definition at line 443 of file texture.cc.

References FreestyleLineStyle::mtex, MTex::tex, and FreestyleLineStyle::texact.

Referenced by texture_get_from_context().

◆ give_current_particle_texture()

Tex * give_current_particle_texture ( ParticleSettings * part)

Definition at line 545 of file texture.cc.

References ParticleSettings::mtex, MTex::tex, and ParticleSettings::texact.

◆ set_active_mtex()

void set_active_mtex ( ID * id,
short act )

Definition at line 506 of file texture.cc.

References GS, ID_LS, ID_PA, MAX_MTEX, and ID::name.

Referenced by texture_slot_move_exec().

◆ set_current_brush_texture()

void set_current_brush_texture ( Brush * br,
Tex * newtex )

◆ set_current_linestyle_texture()

void set_current_linestyle_texture ( FreestyleLineStyle * linestyle,
Tex * newtex )

◆ set_current_particle_texture()

◆ texture_blend_read_data()

void texture_blend_read_data ( BlendDataReader * reader,
ID * id )
static

◆ texture_blend_write()

◆ texture_copy_data()

◆ texture_foreach_id()

◆ texture_free_data()

void texture_free_data ( ID * id)
static

◆ texture_init_data()

void texture_init_data ( ID * id)
static

◆ texture_nodes_fetch_images_for_pool()

void texture_nodes_fetch_images_for_pool ( Tex * texture,
bNodeTree * ntree,
ImagePool * pool )
static

Variable Documentation

◆ IDType_ID_TE

IDTypeInfo IDType_ID_TE
Initial value:
= {
Tex::id_type,
sizeof(Tex),
"Texture",
N_("textures"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:47
#define BLT_I18NCONTEXT_ID_TEXTURE
#define FILTER_ID_OB
Definition DNA_ID.h:1214
#define FILTER_ID_TE
Definition DNA_ID.h:1220
@ INDEX_ID_TE
Definition DNA_ID.h:1311
#define FILTER_ID_IM
Definition DNA_ID.h:1204
static void texture_copy_data(Main *bmain, std::optional< Library * > owner_library, ID *id_dst, const ID *id_src, const int flag)
Definition texture.cc:70
static void texture_foreach_id(ID *id, LibraryForeachIDData *data)
Definition texture.cc:136
static void texture_init_data(ID *id)
Definition texture.cc:59
static void texture_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition texture.cc:148
static void texture_blend_read_data(BlendDataReader *reader, ID *id)
Definition texture.cc:172
static void texture_free_data(ID *id)
Definition texture.cc:119
#define N_(msgid)

Definition at line 186 of file texture.cc.