Blender  V3.3
Macros | Functions | Variables
texture.c File Reference
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_kdopbvh.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_math_color.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_brush_types.h"
#include "DNA_color_types.h"
#include "DNA_defaults.h"
#include "DNA_key_types.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 "IMB_imbuf.h"
#include "BKE_main.h"
#include "BKE_anim_data.h"
#include "BKE_colorband.h"
#include "BKE_colortools.h"
#include "BKE_icons.h"
#include "BKE_idtype.h"
#include "BKE_image.h"
#include "BKE_key.h"
#include "BKE_lib_id.h"
#include "BKE_lib_query.h"
#include "BKE_material.h"
#include "BKE_node.h"
#include "BKE_scene.h"
#include "BKE_texture.h"
#include "NOD_texture.h"
#include "RE_texture.h"
#include "BLO_read_write.h"

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, 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)
 
static void texture_blend_read_lib (BlendLibReader *reader, ID *id)
 
static void texture_blend_read_expand (BlendExpander *expander, 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)
 
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 (void)
 
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 (void)
 
PointDensityBKE_texture_pointdensity_copy (const PointDensity *pd, const int UNUSED(flag))
 
void BKE_texture_pointdensity_free_data (PointDensity *pd)
 
void BKE_texture_pointdensity_free (PointDensity *pd)
 
bool BKE_texture_is_image_user (const struct Tex *tex)
 
bool BKE_texture_dependsOnTime (const struct Tex *texture)
 
void BKE_texture_get_value_ex (const Scene *scene, Tex *texture, const float *tex_co, TexResult *texres, struct ImagePool *pool, bool use_color_management)
 
void BKE_texture_get_value (const Scene *scene, Tex *texture, const float *tex_co, TexResult *texres, bool use_color_management)
 
static void texture_nodes_fetch_images_for_pool (Tex *texture, bNodeTree *ntree, struct ImagePool *pool)
 
void BKE_texture_fetch_images_for_pool (Tex *texture, struct ImagePool *pool)
 

Variables

IDTypeInfo IDType_ID_TE
 

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 24 of file texture.c.

Function Documentation

◆ BKE_texture_add()

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

Definition at line 373 of file texture.c.

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 331 of file texture.c.

References BKE_texture_colormapping_default(), and MEM_callocN.

◆ BKE_texture_colormapping_default()

void BKE_texture_colormapping_default ( ColorMapping colormap)

◆ BKE_texture_default()

void BKE_texture_default ( Tex tex)

Definition at line 361 of file texture.c.

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

Referenced by init().

◆ BKE_texture_dependsOnTime()

bool BKE_texture_dependsOnTime ( const struct Tex texture)

Definition at line 670 of file texture.c.

References Tex::adt, BKE_image_is_animated(), Tex::ima, TEX_NOISE, and Tex::type.

Referenced by dependsOnTime().

◆ 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 743 of file texture.c.

References BKE_image_pool_acquire_ibuf(), Tex::ima, Tex::iuser, Tex::nodetree, NULL, blender::compositor::pool, TEX_IMAGE, texture_nodes_fetch_images_for_pool(), and Tex::type.

Referenced by displaceModifier_do(), and shader_preview_texture().

◆ BKE_texture_get_value()

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

Definition at line 717 of file texture.c.

References BKE_texture_get_value_ex(), NULL, and scene.

◆ BKE_texture_get_value_ex()

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

◆ BKE_texture_is_image_user()

bool BKE_texture_is_image_user ( const struct Tex tex)
Returns
true if this texture can use its #Texture.ima (even if its NULL).

Definition at line 659 of file texture.c.

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

void BKE_texture_mapping_default ( TexMapping texmap,
int  type 
)

◆ BKE_texture_mapping_init()

void BKE_texture_mapping_init ( TexMapping texmap)

◆ 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 402 of file texture.c.

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

◆ BKE_texture_mtex_default()

void BKE_texture_mtex_default ( MTex mtex)

Definition at line 384 of file texture.c.

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 221 of file texture.c.

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

PointDensity* BKE_texture_pointdensity_add ( void  )

Definition at line 619 of file texture.c.

References BKE_texture_pointdensity_init_data(), and MEM_callocN.

◆ BKE_texture_pointdensity_copy()

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

◆ BKE_texture_pointdensity_free()

void BKE_texture_pointdensity_free ( PointDensity pd)

Definition at line 652 of file texture.c.

References BKE_texture_pointdensity_free_data(), and MEM_freeN.

◆ BKE_texture_pointdensity_free_data()

void BKE_texture_pointdensity_free_data ( PointDensity pd)

◆ BKE_texture_pointdensity_init_data()

void BKE_texture_pointdensity_init_data ( PointDensity pd)

◆ BKE_texture_type_set()

void BKE_texture_type_set ( Tex tex,
int  type 
)

Definition at line 366 of file texture.c.

References tex, type, and Tex::type.

◆ give_active_mtex()

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

Definition at line 483 of file texture.c.

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

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 530 of file texture.c.

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 547 of file texture.c.

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

◆ set_active_mtex()

void set_active_mtex ( ID id,
short  act 
)

Definition at line 509 of file texture.c.

References GS, id, 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 
)

Definition at line 535 of file texture.c.

References Tex::id, id_us_min(), id_us_plus(), Brush::mtex, and MTex::tex.

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

static void texture_blend_read_expand ( BlendExpander expander,
ID id 
)
static

Definition at line 184 of file texture.c.

References BLO_expand, Tex::ima, and tex.

◆ texture_blend_read_lib()

static void texture_blend_read_lib ( BlendLibReader reader,
ID id 
)
static

Definition at line 177 of file texture.c.

References BLO_read_id_address, Tex::id, Tex::ima, ID::lib, and tex.

◆ texture_blend_write()

static void texture_blend_write ( BlendWriter writer,
ID id,
const void id_address 
)
static

◆ texture_copy_data()

static void texture_copy_data ( Main bmain,
ID id_dst,
const ID id_src,
const int  flag 
)
static

◆ texture_foreach_id()

static void texture_foreach_id ( ID id,
LibraryForeachIDData data 
)
static

◆ 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,
struct ImagePool pool 
)
static

Variable Documentation

◆ IDType_ID_TE

IDTypeInfo IDType_ID_TE
Initial value:
= {
.id_code = ID_TE,
.id_filter = FILTER_ID_TE,
.main_listbase_index = INDEX_ID_TE,
.struct_size = sizeof(Tex),
.name = "Texture",
.name_plural = "textures",
.translation_context = BLT_I18NCONTEXT_ID_TEXTURE,
.asset_type_info = NULL,
.copy_data = texture_copy_data,
.free_data = texture_free_data,
.make_local = NULL,
.foreach_id = texture_foreach_id,
.foreach_cache = NULL,
.foreach_path = NULL,
.owner_get = NULL,
.blend_write = texture_blend_write,
.blend_read_data = texture_blend_read_data,
.blend_read_lib = texture_blend_read_lib,
.blend_read_expand = texture_blend_read_expand,
.blend_read_undo_preserve = NULL,
.lib_override_apply_post = NULL,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition: BKE_idtype.h:39
#define BLT_I18NCONTEXT_ID_TEXTURE
@ INDEX_ID_TE
Definition: DNA_ID.h:1011
#define FILTER_ID_TE
Definition: DNA_ID.h:922
@ ID_TE
Definition: DNA_ID_enums.h:52
struct Tex Tex
static void init_data(ModifierData *md)
static void texture_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int flag)
Definition: texture.c:71
static void texture_foreach_id(ID *id, LibraryForeachIDData *data)
Definition: texture.c:126
static void texture_init_data(ID *id)
Definition: texture.c:60
static void texture_blend_read_lib(BlendLibReader *reader, ID *id)
Definition: texture.c:177
static void texture_blend_read_expand(BlendExpander *expander, ID *id)
Definition: texture.c:184
static void texture_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition: texture.c:137
static void texture_blend_read_data(BlendDataReader *reader, ID *id)
Definition: texture.c:163
static void texture_free_data(ID *id)
Definition: texture.c:109

Definition at line 191 of file texture.c.