Blender V4.3
SVMShaderManager Class Reference

#include <svm.h>

Inherits ShaderManager.

Public Member Functions

 SVMShaderManager ()
 
 ~SVMShaderManager ()
 
void reset (Scene *scene) override
 
void device_update_specific (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress) override
 
void device_free (Device *device, DeviceScene *dscene, Scene *scene) override
 
- Public Member Functions inherited from ShaderManager
virtual ~ShaderManager ()
 
virtual bool use_osl ()
 
void device_update (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
 
void device_update_common (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
 
void device_free_common (Device *device, DeviceScene *dscene, Scene *scene)
 
virtual uint64_t get_attribute_id (ustring name)
 
virtual uint64_t get_attribute_id (AttributeStandard std)
 
int get_shader_id (Shader *shader, bool smooth=false)
 
uint get_kernel_features (Scene *scene)
 
float linear_rgb_to_gray (float3 c)
 
float3 rec709_to_scene_linear (float3 c)
 
string get_cryptomatte_materials (Scene *scene)
 
void tag_update (Scene *scene, uint32_t flag)
 
bool need_update () const
 
void init_xyz_transforms ()
 

Protected Member Functions

void device_update_shader (Scene *scene, Shader *shader, Progress *progress, array< int4 > *svm_nodes)
 
- Protected Member Functions inherited from ShaderManager
 ShaderManager ()
 
template<std::size_t n>
size_t ensure_bsdf_table (DeviceScene *dscene, Scene *scene, const float(&table)[n])
 
size_t ensure_bsdf_table_impl (DeviceScene *dscene, Scene *scene, const float *table, size_t n)
 
uint get_graph_kernel_features (ShaderGraph *graph)
 

Additional Inherited Members

- Public Types inherited from ShaderManager
enum  : uint32_t { SHADER_ADDED = (1 << 0) , SHADER_MODIFIED = (1 << 2) , UPDATE_ALL = ~0u , UPDATE_NONE = 0u }
 
- Static Public Member Functions inherited from ShaderManager
static ShaderManagercreate (int shadingsystem, Device *device)
 
static void add_default (Scene *scene)
 
static void free_memory ()
 
- Protected Types inherited from ShaderManager
typedef unordered_map< ustring, uint64_t, ustringHash > AttributeIDMap
 
- Protected Attributes inherited from ShaderManager
uint32_t update_flags
 
AttributeIDMap unique_attribute_id
 
unordered_map< const float *, size_t > bsdf_tables
 
thread_spin_lock attribute_lock_
 
float3 xyz_to_r
 
float3 xyz_to_g
 
float3 xyz_to_b
 
float3 rgb_to_y
 
float3 white_xyz
 
float3 rec709_to_r
 
float3 rec709_to_g
 
float3 rec709_to_b
 
bool is_rec709
 
- Static Protected Attributes inherited from ShaderManager
static thread_mutex lookup_table_mutex
 

Detailed Description

Definition at line 30 of file scene/svm.h.

Constructor & Destructor Documentation

◆ SVMShaderManager()

CCL_NAMESPACE_BEGIN SVMShaderManager::SVMShaderManager ( )

Definition at line 26 of file svm.cpp.

◆ ~SVMShaderManager()

SVMShaderManager::~SVMShaderManager ( )

Definition at line 28 of file svm.cpp.

Member Function Documentation

◆ device_free()

void SVMShaderManager::device_free ( Device * device,
DeviceScene * dscene,
Scene * scene )
overridevirtual

◆ device_update_shader()

void SVMShaderManager::device_update_shader ( Scene * scene,
Shader * shader,
Progress * progress,
array< int4 > * svm_nodes )
protected

◆ device_update_specific()

void SVMShaderManager::device_update_specific ( Device * device,
DeviceScene * dscene,
Scene * scene,
Progress & progress )
overridevirtual

Implements ShaderManager.

Definition at line 52 of file svm.cpp.

References ShaderManager::need_update(), and timer.

◆ reset()

void SVMShaderManager::reset ( Scene * scene)
overridevirtual

Implements ShaderManager.

Definition at line 30 of file svm.cpp.


The documentation for this class was generated from the following files: