Blender  V3.3
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
ShaderManager Class Referenceabstract

#include <shader.h>

Inheritance diagram for ShaderManager:
SVMShaderManager

Public Types

enum  : uint32_t {
  SHADER_ADDED = (1 << 0) , SHADER_MODIFIED = (1 << 2) , INTEGRATOR_MODIFIED = (1 << 3) , UPDATE_ALL = ~0u ,
  UPDATE_NONE = 0u
}
 

Public Member Functions

virtual ~ShaderManager ()
 
virtual void reset (Scene *scene)=0
 
virtual bool use_osl ()
 
void device_update (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
 
virtual void device_update_specific (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)=0
 
virtual void device_free (Device *device, DeviceScene *dscene, Scene *scene)=0
 
void device_update_common (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
 
void device_free_common (Device *device, DeviceScene *dscene, Scene *scene)
 
uint get_attribute_id (ustring name)
 
uint 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 ()
 

Static Public Member Functions

static ShaderManagercreate (int shadingsystem)
 
static void add_default (Scene *scene)
 
static void free_memory ()
 

Protected Types

typedef unordered_map< ustring, uint, ustringHash > AttributeIDMap
 

Protected Member Functions

 ShaderManager ()
 
uint get_graph_kernel_features (ShaderGraph *graph)
 

Protected Attributes

uint32_t update_flags
 
AttributeIDMap unique_attribute_id
 
size_t beckmann_table_offset
 
thread_spin_lock attribute_lock_
 
float3 xyz_to_r
 
float3 xyz_to_g
 
float3 xyz_to_b
 
float3 rgb_to_y
 
float3 rec709_to_r
 
float3 rec709_to_g
 
float3 rec709_to_b
 
bool is_rec709
 

Static Protected Attributes

static thread_mutex lookup_table_mutex
 
static vector< floatbeckmann_table
 
static bool beckmann_table_ready = false
 

Detailed Description

Definition at line 160 of file scene/shader.h.

Member Typedef Documentation

◆ AttributeIDMap

typedef unordered_map<ustring, uint, ustringHash> ShaderManager::AttributeIDMap
protected

Definition at line 226 of file scene/shader.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : uint32_t
Enumerator
SHADER_ADDED 
SHADER_MODIFIED 
INTEGRATOR_MODIFIED 
UPDATE_ALL 
UPDATE_NONE 

Definition at line 162 of file scene/shader.h.

Constructor & Destructor Documentation

◆ ~ShaderManager()

ShaderManager::~ShaderManager ( )
virtual

Definition at line 394 of file scene/shader.cpp.

◆ ShaderManager()

ShaderManager::ShaderManager ( )
protected

Member Function Documentation

◆ add_default()

void ShaderManager::add_default ( Scene scene)
static

◆ create()

ShaderManager * ShaderManager::create ( int  shadingsystem)
static

Definition at line 398 of file scene/shader.cpp.

References SHADINGSYSTEM_OSL, and void.

Referenced by Scene::Scene().

◆ device_free()

virtual void ShaderManager::device_free ( Device device,
DeviceScene dscene,
Scene scene 
)
pure virtual

Implemented in SVMShaderManager.

Referenced by Scene::free_memory().

◆ device_free_common()

void ShaderManager::device_free_common ( Device device,
DeviceScene dscene,
Scene scene 
)

◆ device_update()

void ShaderManager::device_update ( Device device,
DeviceScene dscene,
Scene scene,
Progress progress 
)

◆ device_update_common()

void ShaderManager::device_update_common ( Device device,
DeviceScene dscene,
Scene scene,
Progress progress 
)

◆ device_update_specific()

virtual void ShaderManager::device_update_specific ( Device device,
DeviceScene dscene,
Scene scene,
Progress progress 
)
pure virtual

Implemented in SVMShaderManager.

Referenced by device_update().

◆ free_memory()

void ShaderManager::free_memory ( )
static

Definition at line 731 of file scene/shader.cpp.

References beckmann_table, and ColorSpaceManager::free_memory().

Referenced by exit_func().

◆ get_attribute_id() [1/2]

uint ShaderManager::get_attribute_id ( AttributeStandard  std)

Definition at line 432 of file scene/shader.cpp.

◆ get_attribute_id() [2/2]

uint ShaderManager::get_attribute_id ( ustring  name)

◆ get_cryptomatte_materials()

string ShaderManager::get_cryptomatte_materials ( Scene scene)

◆ get_graph_kernel_features()

uint ShaderManager::get_graph_kernel_features ( ShaderGraph graph)
protected

◆ get_kernel_features()

uint ShaderManager::get_kernel_features ( Scene scene)

◆ get_shader_id()

int ShaderManager::get_shader_id ( Shader shader,
bool  smooth = false 
)

◆ init_xyz_transforms()

void ShaderManager::init_xyz_transforms ( )

◆ linear_rgb_to_gray()

float ShaderManager::linear_rgb_to_gray ( float3  c)

◆ need_update()

bool ShaderManager::need_update ( ) const

◆ rec709_to_scene_linear()

float3 ShaderManager::rec709_to_scene_linear ( float3  c)

◆ reset()

virtual void ShaderManager::reset ( Scene scene)
pure virtual

Implemented in SVMShaderManager.

Referenced by Scene::reset().

◆ tag_update()

void ShaderManager::tag_update ( Scene scene,
uint32_t  flag 
)

◆ use_osl()

virtual bool ShaderManager::use_osl ( )
inlinevirtual

Member Data Documentation

◆ attribute_lock_

thread_spin_lock ShaderManager::attribute_lock_
protected

Definition at line 237 of file scene/shader.h.

Referenced by get_attribute_id().

◆ beckmann_table

vector< float > ShaderManager::beckmann_table
staticprotected

Definition at line 230 of file scene/shader.h.

Referenced by device_update_common(), and free_memory().

◆ beckmann_table_offset

size_t ShaderManager::beckmann_table_offset
protected

Definition at line 233 of file scene/shader.h.

Referenced by device_free_common(), device_update_common(), and ShaderManager().

◆ beckmann_table_ready

bool ShaderManager::beckmann_table_ready = false
staticprotected

Definition at line 231 of file scene/shader.h.

Referenced by device_update_common().

◆ is_rec709

bool ShaderManager::is_rec709
protected

Definition at line 246 of file scene/shader.h.

Referenced by device_update_common(), and init_xyz_transforms().

◆ lookup_table_mutex

CCL_NAMESPACE_BEGIN thread_mutex ShaderManager::lookup_table_mutex
staticprotected

Definition at line 229 of file scene/shader.h.

Referenced by device_update_common().

◆ rec709_to_b

float3 ShaderManager::rec709_to_b
protected

◆ rec709_to_g

float3 ShaderManager::rec709_to_g
protected

◆ rec709_to_r

float3 ShaderManager::rec709_to_r
protected

◆ rgb_to_y

float3 ShaderManager::rgb_to_y
protected

Definition at line 242 of file scene/shader.h.

Referenced by device_update_common(), init_xyz_transforms(), and linear_rgb_to_gray().

◆ unique_attribute_id

AttributeIDMap ShaderManager::unique_attribute_id
protected

Definition at line 227 of file scene/shader.h.

Referenced by get_attribute_id().

◆ update_flags

uint32_t ShaderManager::update_flags
protected

Definition at line 224 of file scene/shader.h.

Referenced by need_update(), ShaderManager(), and tag_update().

◆ xyz_to_b

float3 ShaderManager::xyz_to_b
protected

Definition at line 241 of file scene/shader.h.

Referenced by device_update_common(), and init_xyz_transforms().

◆ xyz_to_g

float3 ShaderManager::xyz_to_g
protected

Definition at line 240 of file scene/shader.h.

Referenced by device_update_common(), and init_xyz_transforms().

◆ xyz_to_r

float3 ShaderManager::xyz_to_r
protected

Definition at line 239 of file scene/shader.h.

Referenced by device_update_common(), and init_xyz_transforms().


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