10 # include <OSL/oslexec.h>
125 OSL::ShaderGroupRef osl_surface_ref;
126 OSL::ShaderGroupRef osl_surface_bump_ref;
127 OSL::ShaderGroupRef osl_volume_ref;
128 OSL::ShaderGroupRef osl_displacement_ref;
typedef float(TangentPoint)[2]
string get_cryptomatte_materials(Scene *scene)
void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
void device_update_common(Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)
static bool beckmann_table_ready
static void free_memory()
virtual void device_free(Device *device, DeviceScene *dscene, Scene *scene)=0
uint get_attribute_id(ustring name)
AttributeIDMap unique_attribute_id
float linear_rgb_to_gray(float3 c)
unordered_map< ustring, uint, ustringHash > AttributeIDMap
void init_xyz_transforms()
virtual void device_update_specific(Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)=0
size_t beckmann_table_offset
thread_spin_lock attribute_lock_
int get_shader_id(Shader *shader, bool smooth=false)
static ShaderManager * create(int shadingsystem)
void device_free_common(Device *device, DeviceScene *dscene, Scene *scene)
static vector< float > beckmann_table
static thread_mutex lookup_table_mutex
void tag_update(Scene *scene, uint32_t flag)
uint get_kernel_features(Scene *scene)
float3 rec709_to_scene_linear(float3 c)
static void add_default(Scene *scene)
uint get_graph_kernel_features(ShaderGraph *graph)
virtual void reset(Scene *scene)=0
bool has_surface_spatial_varying
bool has_surface_link() const
bool need_update_attribute
bool has_volume_attribute_dependency
void set_graph(ShaderGraph *graph)
bool need_update_geometry() const
NODE_DECLARE ShaderGraph * graph
float prev_volume_step_rate
bool has_integrator_dependency
bool need_update_displacement
bool has_surface_emission
bool has_surface_raytrace
AttributeRequestSet attributes
bool has_surface_transparent
void tag_update(Scene *scene)
bool is_constant_emission(float3 *emission)
bool has_volume_connected
void tag_used(Scene *scene)
bool has_volume_spatial_varying
#define CCL_NAMESPACE_END
#define NODE_SOCKET_API(type_, name)
smooth(Type::FLOAT, "mask_weight")
@ VOLUME_NUM_INTERPOLATION
@ VOLUME_INTERPOLATION_LINEAR
@ VOLUME_INTERPOLATION_CUBIC
@ VOLUME_SAMPLING_DISTANCE
@ VOLUME_SAMPLING_EQUIANGULAR
@ VOLUME_SAMPLING_MULTIPLE_IMPORTANCE
CCL_NAMESPACE_BEGIN typedef std::mutex thread_mutex
tbb::spin_mutex thread_spin_lock