Blender V4.3
cachefile.cc File Reference
#include <cstring>
#include <optional>
#include "DNA_cachefile_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_fileops.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_path_utils.hh"
#include "BLI_string.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "BKE_bpath.hh"
#include "BKE_cachefile.hh"
#include "BKE_idtype.hh"
#include "BKE_lib_id.hh"
#include "BKE_main.hh"
#include "BKE_scene.hh"
#include "DEG_depsgraph_query.hh"
#include "RE_engine.h"
#include "BLO_read_write.hh"
#include "MEM_guardedalloc.h"

Go to the source code of this file.

Functions

static void cachefile_handle_free (CacheFile *cache_file)
 
static void cache_file_init_data (ID *id)
 
static void cache_file_copy_data (Main *, std::optional< Library * >, ID *id_dst, const ID *id_src, const int)
 
static void cache_file_free_data (ID *id)
 
static void cache_file_foreach_path (ID *id, BPathForeachPathData *bpath_data)
 
static void cache_file_blend_write (BlendWriter *writer, ID *id, const void *id_address)
 
static void cache_file_blend_read_data (BlendDataReader *reader, ID *id)
 
void BKE_cachefiles_init ()
 
void BKE_cachefiles_exit ()
 
void BKE_cachefile_reader_open (CacheFile *cache_file, CacheReader **reader, Object *object, const char *object_path)
 
void BKE_cachefile_reader_free (CacheFile *cache_file, CacheReader **reader)
 
void * BKE_cachefile_add (Main *bmain, const char *name)
 
void BKE_cachefile_reload (Depsgraph *depsgraph, CacheFile *cache_file)
 
void BKE_cachefile_eval (Main *bmain, Depsgraph *depsgraph, CacheFile *cache_file)
 
bool BKE_cachefile_filepath_get (const Main *bmain, const Depsgraph *depsgraph, const CacheFile *cache_file, char r_filepath[FILE_MAX])
 
double BKE_cachefile_time_offset (const CacheFile *cache_file, const double time, const double fps)
 
bool BKE_cache_file_uses_render_procedural (const CacheFile *cache_file, Scene *scene)
 
CacheFileLayerBKE_cachefile_add_layer (CacheFile *cache_file, const char filepath[1024])
 
CacheFileLayerBKE_cachefile_get_active_layer (CacheFile *cache_file)
 
void BKE_cachefile_remove_layer (CacheFile *cache_file, CacheFileLayer *layer)
 

Variables

IDTypeInfo IDType_ID_CF
 
static SpinLock spin
 

Function Documentation

◆ BKE_cache_file_uses_render_procedural()

bool BKE_cache_file_uses_render_procedural ( const CacheFile * cache_file,
Scene * scene )

Determine whether the CacheFile should use a render engine procedural. If so, data is not read from the file and bounding boxes are used to represent the objects in the Scene. Render engines will receive the bounding box as a placeholder but can instead load the data directly if they support it.

Definition at line 418 of file cachefile.cc.

References CACHEFILE_TYPE_ALEMBIC, RE_engine_supports_alembic_procedural(), RE_engines_find(), CacheFile::type, and CacheFile::use_render_procedural.

Referenced by depends_on_time(), modify_geometry_set(), modify_mesh(), and transformcache_evaluate().

◆ BKE_cachefile_add()

void * BKE_cachefile_add ( Main * bmain,
const char * name )

Definition at line 318 of file cachefile.cc.

References BKE_id_new(), and ID_CF.

Referenced by import_file(), and blender::io::usd::import_startjob().

◆ BKE_cachefile_add_layer()

CacheFileLayer * BKE_cachefile_add_layer ( CacheFile * cache_file,
const char filepath[1024] )

Add a layer to the cache_file. Return NULL if the filepath is already that of an existing layer or if the number of layers exceeds the maximum allowed layer count.

Definition at line 431 of file cachefile.cc.

References CacheFile::active_layer, BLI_addtail(), BLI_listbase_count(), CacheFile::layers, LISTBASE_FOREACH, MEM_callocN, STREQ, and STRNCPY.

Referenced by cachefile_layer_add_exec().

◆ BKE_cachefile_eval()

◆ BKE_cachefile_filepath_get()

◆ BKE_cachefile_get_active_layer()

CacheFileLayer * BKE_cachefile_get_active_layer ( CacheFile * cache_file)

◆ BKE_cachefile_reader_free()

◆ BKE_cachefile_reader_open()

◆ BKE_cachefile_reload()

void BKE_cachefile_reload ( Depsgraph * depsgraph,
CacheFile * cache_file )

◆ BKE_cachefile_remove_layer()

void BKE_cachefile_remove_layer ( CacheFile * cache_file,
CacheFileLayer * layer )

◆ BKE_cachefile_time_offset()

double BKE_cachefile_time_offset ( const CacheFile * cache_file,
const double time,
const double fps )

◆ BKE_cachefiles_exit()

void BKE_cachefiles_exit ( )

Definition at line 161 of file cachefile.cc.

References BLI_spin_end(), and spin.

Referenced by BKE_blender_free().

◆ BKE_cachefiles_init()

void BKE_cachefiles_init ( )

Definition at line 156 of file cachefile.cc.

References BLI_spin_init(), and spin.

Referenced by main().

◆ cache_file_blend_read_data()

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

◆ cache_file_blend_write()

◆ cache_file_copy_data()

static void cache_file_copy_data ( Main * ,
std::optional< Library * > ,
ID * id_dst,
const ID * id_src,
const int  )
static

◆ cache_file_foreach_path()

static void cache_file_foreach_path ( ID * id,
BPathForeachPathData * bpath_data )
static

Definition at line 85 of file cachefile.cc.

References BKE_bpath_foreach_path_fixed_process(), and CacheFile::filepath.

◆ cache_file_free_data()

static void cache_file_free_data ( ID * id)
static

◆ cache_file_init_data()

static void cache_file_init_data ( ID * id)
static

◆ cachefile_handle_free()

Variable Documentation

◆ IDType_ID_CF

IDTypeInfo IDType_ID_CF
Initial value:
= {
0,
sizeof(CacheFile),
"CacheFile",
N_("cache_files"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:39
#define BLT_I18NCONTEXT_ID_CACHEFILE
#define FILTER_ID_CF
Definition DNA_ID.h:1192
@ INDEX_ID_CF
Definition DNA_ID.h:1285
@ ID_CF
struct CacheFile CacheFile
static void cache_file_free_data(ID *id)
Definition cachefile.cc:77
static void cache_file_copy_data(Main *, std::optional< Library * >, ID *id_dst, const ID *id_src, const int)
Definition cachefile.cc:62
static void cache_file_init_data(ID *id)
Definition cachefile.cc:51
static void cache_file_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition cachefile.cc:92
static void cache_file_foreach_path(ID *id, BPathForeachPathData *bpath_data)
Definition cachefile.cc:85
static void cache_file_blend_read_data(BlendDataReader *reader, ID *id)
Definition cachefile.cc:111
#define N_(msgid)

Definition at line 123 of file cachefile.cc.

◆ spin