Blender V4.5
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_mutex.hh"
#include "BLI_path_utils.hh"
#include "BLI_string.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_library.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_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)
double BKE_cachefile_frame_offset (const CacheFile *cache_file, const double time)
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 blender::Mutex cache_mutex

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 415 of file cachefile.cc.

References CACHEFILE_TYPE_ALEMBIC, RenderData::engine, Scene::r, 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 308 of file cachefile.cc.

References BKE_id_new().

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 428 of file cachefile.cc.

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

Referenced by cachefile_layer_add_exec().

◆ BKE_cachefile_eval()

◆ BKE_cachefile_filepath_get()

◆ BKE_cachefile_frame_offset()

double BKE_cachefile_frame_offset ( const CacheFile * cache_file,
const double time )

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

◆ cache_file_blend_read_data()

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

◆ cache_file_blend_write()

◆ cache_file_copy_data()

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

◆ cache_file_foreach_path()

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

Definition at line 86 of file cachefile.cc.

References BKE_bpath_foreach_path_fixed_process(), and CacheFile::filepath.

◆ cache_file_free_data()

void cache_file_free_data ( ID * id)
static

◆ cache_file_init_data()

◆ cachefile_handle_free()

Variable Documentation

◆ cache_mutex

blender::Mutex cache_mutex
static

◆ IDType_ID_CF

IDTypeInfo IDType_ID_CF
Initial value:
= {
CacheFile::id_type,
0,
sizeof(CacheFile),
"CacheFile",
N_("cache_files"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:44
#define BLT_I18NCONTEXT_ID_CACHEFILE
@ INDEX_ID_CF
Definition DNA_ID.h:1226
static void cache_file_free_data(ID *id)
Definition cachefile.cc:78
static void cache_file_copy_data(Main *, std::optional< Library * >, ID *id_dst, const ID *id_src, const int)
Definition cachefile.cc:63
static void cache_file_init_data(ID *id)
Definition cachefile.cc:52
static void cache_file_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition cachefile.cc:93
static void cache_file_foreach_path(ID *id, BPathForeachPathData *bpath_data)
Definition cachefile.cc:86
static void cache_file_blend_read_data(BlendDataReader *reader, ID *id)
Definition cachefile.cc:112
#define FILTER_ID_CF
#define N_(msgid)

Definition at line 124 of file cachefile.cc.