Blender V4.3
texture.cc File Reference
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <optional>
#include "MEM_guardedalloc.h"
#include "BLI_kdopbvh.h"
#include "BLI_listbase.h"
#include "BLI_math_color.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 "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_object_types.h"
#include "DNA_particle_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)
 
void BKE_texture_pointdensity_init_data (PointDensity *pd)
 
PointDensityBKE_texture_pointdensity_add ()
 
PointDensityBKE_texture_pointdensity_copy (const PointDensity *pd, const int)
 
void BKE_texture_pointdensity_free_data (PointDensity *pd)
 
void BKE_texture_pointdensity_free (PointDensity *pd)
 
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 28 of file texture.cc.

Function Documentation

◆ BKE_texture_add()

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

Definition at line 383 of file texture.cc.

References BKE_id_new(), ID_TE, and tex.

Referenced by new_texture_exec().

◆ BKE_texture_colormapping_add()

ColorMapping * BKE_texture_colormapping_add ( void )

Definition at line 341 of file texture.cc.

References BKE_texture_colormapping_default().

◆ BKE_texture_colormapping_default()

◆ BKE_texture_default()

void BKE_texture_default ( Tex * tex)

Definition at line 371 of file texture.cc.

References Tex::id, tex, and texture_init_data().

Referenced by init().

◆ BKE_texture_dependsOnTime()

bool BKE_texture_dependsOnTime ( const Tex * texture)

Definition at line 682 of file texture.cc.

References BKE_image_is_animated().

◆ 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 745 of file texture.cc.

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

Referenced by blender::realtime_compositor::CachedTexture::CachedTexture(), 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 722 of file texture.cc.

References BKE_texture_get_value_ex().

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 671 of file texture.cc.

References tex, TEX_IMAGE, and Tex::type.

Referenced by texture_copy_data().

◆ BKE_texture_mapping_add()

TexMapping * BKE_texture_mapping_add ( int type)

◆ 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 412 of file texture.cc.

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

◆ BKE_texture_mtex_default()

void BKE_texture_mtex_default ( MTex * mtex)

Definition at line 394 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 230 of file texture.cc.

References BKE_LIB_FOREACHID_PROCESS_IDSUPER, 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_pointdensity_add()

PointDensity * BKE_texture_pointdensity_add ( void )

Definition at line 630 of file texture.cc.

References BKE_texture_pointdensity_init_data(), and MEM_callocN.

◆ BKE_texture_pointdensity_copy()

PointDensity * BKE_texture_pointdensity_copy ( const PointDensity * pd,
const int  )

◆ BKE_texture_pointdensity_free()

void BKE_texture_pointdensity_free ( PointDensity * pd)

Definition at line 664 of file texture.cc.

References BKE_texture_pointdensity_free_data(), and MEM_freeN().

◆ BKE_texture_pointdensity_free_data()

◆ BKE_texture_pointdensity_init_data()

◆ BKE_texture_type_set()

void BKE_texture_type_set ( Tex * tex,
int type )

Definition at line 376 of file texture.cc.

References tex, and Tex::type.

◆ give_active_mtex()

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

Definition at line 493 of file texture.cc.

References GS, ID_LS, and ID_PA.

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 540 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)

◆ give_current_particle_texture()

Tex * give_current_particle_texture ( ParticleSettings * part)

Definition at line 558 of file texture.cc.

References int, MTex::tex, and tex.

◆ set_active_mtex()

void set_active_mtex ( ID * id,
short act )

Definition at line 519 of file texture.cc.

References GS, ID_LS, ID_PA, and MAX_MTEX.

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()

void set_current_particle_texture ( ParticleSettings * part,
Tex * newtex )

◆ texture_blend_read_data()

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

◆ texture_blend_write()

◆ texture_copy_data()

◆ texture_foreach_id()

◆ texture_free_data()

static void texture_free_data ( ID * id)
static

◆ texture_init_data()

static void texture_init_data ( ID * id)
static

◆ texture_nodes_fetch_images_for_pool()

static 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:
= {
sizeof(Tex),
"Texture",
N_("textures"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:39
#define BLT_I18NCONTEXT_ID_TEXTURE
#define FILTER_ID_OB
Definition DNA_ID.h:1181
#define FILTER_ID_TE
Definition DNA_ID.h:1187
@ INDEX_ID_TE
Definition DNA_ID.h:1279
#define FILTER_ID_IM
Definition DNA_ID.h:1171
@ ID_TE
struct Tex Tex
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:140
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:157
static void texture_blend_read_data(BlendDataReader *reader, ID *id)
Definition texture.cc:188
static void texture_free_data(ID *id)
Definition texture.cc:121
#define N_(msgid)

Definition at line 200 of file texture.cc.