Blender V5.0
SVMShaderManager Class Reference

#include <svm.h>

Inherits ShaderManager.

Public Member Functions

 SVMShaderManager ()
 ~SVMShaderManager () 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_pre (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
void device_update_post (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
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 (const float3 c)
float3 rec709_to_scene_linear (const float3 c)
string get_cryptomatte_materials (Scene *scene)
void tag_update (Scene *scene, const uint32_t flag)
bool need_update () const
void init_xyz_transforms ()
SceneLinearSpace get_scene_linear_space ()

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, const size_t n)
void compute_thin_film_table (const Transform &xyz_to_rgb)
uint get_graph_kernel_features (ShaderGraph *graph)
void device_update_common (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
void device_free_common (Device *device, DeviceScene *dscene, Scene *scene)

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 }
enum class  SceneLinearSpace { Rec709 , Rec2020 , ACEScg , Unknown }
Static Public Member Functions inherited from ShaderManager
static unique_ptr< ShaderManagercreate (const int shadingsystem)
static void add_default (Scene *scene)
Protected Types inherited from ShaderManager
using AttributeIDMap = unordered_map<ustring, uint64_t>
Protected Attributes inherited from ShaderManager
uint32_t update_flags
AttributeIDMap unique_attribute_id
unordered_map< const float *, size_t > bsdf_tables
size_t thin_film_table_offset_
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
SceneLinearSpace scene_linear_space
vector< floatthin_film_table
Static Protected Attributes inherited from ShaderManager
static thread_mutex lookup_table_mutex

Detailed Description

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

Constructor & Destructor Documentation

◆ SVMShaderManager()

CCL_NAMESPACE_BEGIN SVMShaderManager::SVMShaderManager ( )
default

◆ ~SVMShaderManager()

SVMShaderManager::~SVMShaderManager ( )
overridedefault

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


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