Blender V5.0
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/globals.h"
#include "kernel/geom/attribute.h"
#include "kernel/geom/object.h"
#include "kernel/geom/primitive.h"
#include "kernel/util/differential.h"
#include "kernel/osl/camera.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 ThreadKernelGlobalsCPU *kg, const void *state, ShaderData *sd, const uint32_t path_flag)
template<>
void osl_eval_nodes< SHADER_TYPE_VOLUME > (const ThreadKernelGlobalsCPU *kg, const void *state, ShaderData *sd, const uint32_t path_flag)
template<>
void osl_eval_nodes< SHADER_TYPE_DISPLACEMENT > (const ThreadKernelGlobalsCPU *kg, const void *state, ShaderData *sd, const uint32_t path_flag)
packed_float3 osl_eval_camera (const ThreadKernelGlobalsCPU *kg, const packed_float3 sensor, const packed_float3 dSdx, const packed_float3 dSdy, const float2 rand_lens, packed_float3 &P, packed_float3 &dPdx, packed_float3 &dPdy, packed_float3 &D, packed_float3 &dDdx, packed_float3 &dDdy)

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
const char * name

Definition at line 55 of file closures.cpp.

◆ OSL_CLOSURE_STRUCT_BEGIN [1/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 43 of file closures.cpp.

◆ OSL_CLOSURE_STRUCT_BEGIN [2/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 43 of file closures.cpp.

Referenced by OSL_CLOSURE_STRUCT_MEMBER().

◆ 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 47 of file closures.cpp.

Referenced by OSL_CLOSURE_STRUCT_MEMBER().

◆ 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 53 of file closures.cpp.

Referenced by OSL_CLOSURE_STRUCT_MEMBER(), and OSL_CLOSURE_STRUCT_MEMBER().

◆ 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 30 of file closures.cpp.

Referenced by osl_eval_nodes< SHADER_TYPE_DISPLACEMENT >(), and osl_eval_nodes< SHADER_TYPE_SURFACE >().

◆ TO_VEC3

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

Definition at line 29 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 60 of file closures.cpp.

References params, and top.

Referenced by OSLRenderServices::register_closures().

◆ osl_eval_camera()

packed_float3 osl_eval_camera ( const ThreadKernelGlobalsCPU * kg,
const packed_float3 sensor,
const packed_float3 dSdx,
const packed_float3 dSdy,
const float2 rand_lens,
packed_float3 & P,
packed_float3 & dPdx,
packed_float3 & dPdy,
packed_float3 & D,
packed_float3 & dDdx,
packed_float3 & dDdy )

Definition at line 284 of file closures.cpp.

References cameradata_to_shaderglobals(), D, dPdx(), dPdy(), make_float3(), output, P, and zero_spectrum.

◆ osl_eval_nodes< SHADER_TYPE_DISPLACEMENT >()

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

Definition at line 246 of file closures.cpp.

References SHADER_MASK, 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 ThreadKernelGlobalsCPU * kg,
const void * state,
ShaderData * sd,
const uint32_t path_flag )

Variable Documentation

◆ CCL_NAMESPACE_BEGIN

CCL_NAMESPACE_BEGIN

Definition at line 34 of file closures.cpp.