19 if (sd->num_closure_left == 0) {
23 ccl_private ShaderClosure *sc = &sd->closure[sd->num_closure];
29 sd->num_closure_left--;
42 const int num_extra = ((
size +
sizeof(ShaderClosure) - 1) /
sizeof(ShaderClosure));
44 if (num_extra > sd->num_closure_left) {
47 sd->num_closure_left++;
51 sd->num_closure_left -= num_extra;
52 return (
ccl_private void *)(sd->closure + sd->num_closure + sd->num_closure_left);
78 sc->sample_weight = sample_weight;
CCL_NAMESPACE_BEGIN ccl_device ccl_private ShaderClosure * closure_alloc(ccl_private ShaderData *sd, const uint size, ClosureType type, Spectrum weight)
ccl_device_inline ccl_private ShaderClosure * bsdf_alloc(ccl_private ShaderData *sd, const int size, Spectrum weight)
ccl_device ccl_private void * closure_alloc_extra(ccl_private ShaderData *sd, const int size)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
#define kernel_assert(cond)
#define ccl_device_inline
#define CCL_NAMESPACE_END
#define CLOSURE_WEIGHT_CUTOFF
@ SD_IS_VOLUME_SHADER_EVAL
ccl_device_inline bool isfinite_safe(const float f)
CCL_NAMESPACE_BEGIN ccl_device_inline float3 zero_float3()