Blender V4.3
closures.cpp File Reference
#include <OSL/genclosure.h>
#include <OSL/oslclosure.h>
#include "kernel/types.h"
#include "kernel/osl/globals.h"
#include "kernel/osl/services.h"
#include "util/math.h"
#include "util/param.h"
#include "kernel/device/cpu/compat.h"
#include "kernel/device/cpu/globals.h"
#include "kernel/geom/object.h"
#include "kernel/util/differential.h"
#include "kernel/osl/osl.h"
#include "closures_template.h"

Go to the source code of this file.

Macros

#define TO_VEC3(v)
#define TO_FLOAT3(v)
#define OSL_CLOSURE_STRUCT_BEGIN(Upper, lower)
#define OSL_CLOSURE_STRUCT_END(Upper, lower)
#define OSL_CLOSURE_STRUCT_MEMBER(Upper, TYPE, type, name, key)
#define OSL_CLOSURE_STRUCT_ARRAY_MEMBER(Upper, TYPE, type, name, key, size)
#define OSL_CLOSURE_STRUCT_BEGIN(Upper, lower)

Functions

static OSL::ClosureParam * osl_closure_layer_params ()
template<>
void osl_eval_nodes< SHADER_TYPE_SURFACE > (const KernelGlobalsCPU *kg, const void *state, ShaderData *sd, uint32_t path_flag)
template<>
void osl_eval_nodes< SHADER_TYPE_VOLUME > (const KernelGlobalsCPU *kg, const void *state, ShaderData *sd, uint32_t path_flag)
template<>
void osl_eval_nodes< SHADER_TYPE_DISPLACEMENT > (const KernelGlobalsCPU *kg, const void *state, ShaderData *sd, uint32_t path_flag)

Variables

 CCL_NAMESPACE_BEGIN

Macro Definition Documentation

◆ OSL_CLOSURE_STRUCT_ARRAY_MEMBER

#define OSL_CLOSURE_STRUCT_ARRAY_MEMBER ( Upper,
TYPE,
type,
name,
key,
size )
Value:
CLOSURE_##TYPE##_ARRAY_PARAM(Upper##Closure, name, size),
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52

Definition at line 53 of file closures.cpp.

◆ OSL_CLOSURE_STRUCT_BEGIN [1/2]

#define OSL_CLOSURE_STRUCT_BEGIN ( Upper,
lower )
Value:
static OSL::ClosureParam *osl_closure_##lower##_params() \
{ \
static OSL::ClosureParam params[] = {
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]

Definition at line 41 of file closures.cpp.

◆ OSL_CLOSURE_STRUCT_BEGIN [2/2]

#define OSL_CLOSURE_STRUCT_BEGIN ( Upper,
lower )
Value:
ss->register_closure( \
#lower, OSL_CLOSURE_##Upper##_ID, osl_closure_##lower##_params(), nullptr, nullptr);

Definition at line 41 of file closures.cpp.

◆ OSL_CLOSURE_STRUCT_END

#define OSL_CLOSURE_STRUCT_END ( Upper,
lower )
Value:
CLOSURE_STRING_KEYPARAM(Upper##Closure, label, "label"), CLOSURE_FINISH_PARAM(Upper##Closure) \
} \
; \
return params; \
}

Definition at line 45 of file closures.cpp.

◆ OSL_CLOSURE_STRUCT_MEMBER

#define OSL_CLOSURE_STRUCT_MEMBER ( Upper,
TYPE,
type,
name,
key )
Value:
CLOSURE_##TYPE##_KEYPARAM(Upper##Closure, name, key),

Definition at line 51 of file closures.cpp.

◆ TO_FLOAT3

#define TO_FLOAT3 ( v)
Value:
make_float3(v[0], v[1], v[2])
ATTR_WARN_UNUSED_RESULT const BMVert * v
ccl_device_forceinline float3 make_float3(const float x, const float y, const float z)

Definition at line 28 of file closures.cpp.

Referenced by osl_eval_nodes< SHADER_TYPE_DISPLACEMENT >().

◆ TO_VEC3

#define TO_VEC3 ( v)
Value:
OSL::Vec3(v.x, v.y, v.z)

Definition at line 27 of file closures.cpp.

Referenced by osl_eval_nodes< SHADER_TYPE_SURFACE >().

Function Documentation

◆ osl_closure_layer_params()

OSL::ClosureParam * osl_closure_layer_params ( )
static

Definition at line 58 of file closures.cpp.

References params, and top.

Referenced by OSLRenderServices::register_closures().

◆ osl_eval_nodes< SHADER_TYPE_DISPLACEMENT >()

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

Definition at line 263 of file closures.cpp.

References SHADER_MASK, ShaderData, shaderdata_to_shaderglobals(), state, and TO_FLOAT3.

Referenced by displacement_shader_eval().

◆ osl_eval_nodes< SHADER_TYPE_SURFACE >()

◆ osl_eval_nodes< SHADER_TYPE_VOLUME >()

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

Variable Documentation

◆ CCL_NAMESPACE_BEGIN

CCL_NAMESPACE_BEGIN

Definition at line 32 of file closures.cpp.