Blender V4.3
osl.h File Reference

Go to the source code of this file.

Macros

#define OSL_CLOSURE_STRUCT_BEGIN(Upper, lower)
 

Functions

CCL_NAMESPACE_BEGIN ccl_device_inline void shaderdata_to_shaderglobals (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, ccl_private ShaderGlobals *globals)
 
ccl_device void flatten_closure_tree (KernelGlobals kg, ccl_private ShaderData *sd, uint32_t path_flag, ccl_private const OSLClosure *closure)
 
template<ShaderType type>
void osl_eval_nodes (const KernelGlobalsCPU *kg, const void *state, ShaderData *sd, uint32_t path_flag)
 

Macro Definition Documentation

◆ OSL_CLOSURE_STRUCT_BEGIN

#define OSL_CLOSURE_STRUCT_BEGIN ( Upper,
lower )
Value:
case OSL_CLOSURE_##Upper##_ID: { \
ccl_private const OSLClosureComponent *comp = \
static_cast<ccl_private const OSLClosureComponent *>(closure); \
float3 albedo = one_float3(); \
osl_closure_##lower##_setup(kg, \
sd, \
path_flag, \
weight * comp->weight, \
reinterpret_cast<ccl_private const Upper##Closure *>(comp + 1), \
(layer_stack_level >= 0) ? &albedo : NULL); \
if (layer_stack_level >= 0) { \
layer_albedo += albedo; \
} \
break; \
}
#define ccl_private
#define NULL
ccl_device_inline float3 one_float3()
Definition math_float3.h:24

Function Documentation

◆ flatten_closure_tree()

◆ osl_eval_nodes()

template<ShaderType type>
void osl_eval_nodes ( const KernelGlobalsCPU * kg,
const void * state,
ShaderData * sd,
uint32_t path_flag )

◆ shaderdata_to_shaderglobals()