Blender V4.3
displacement_shader.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5/* Functions to evaluate displacement shader. */
6
7#pragma once
8
9#ifdef __SVM__
10# include "kernel/svm/svm.h"
11#endif
12#ifdef __OSL__
13# include "kernel/osl/osl.h"
14#endif
15
17
18template<typename ConstIntegratorGenericState>
20 ConstIntegratorGenericState state,
22{
23 sd->num_closure = 0;
24 sd->num_closure_left = 0;
25
26 /* this will modify sd->P */
27#ifdef __OSL__
28 if (kernel_data.kernel_features & KERNEL_FEATURE_OSL) {
30 }
31 else
32#endif
33 {
34#ifdef __SVM__
36 kg, state, sd, NULL, 0);
37#endif
38 }
39}
40
void osl_eval_nodes< SHADER_TYPE_DISPLACEMENT >(const KernelGlobalsCPU *kg, const void *state, ShaderData *sd, uint32_t path_flag)
Definition closures.cpp:263
#define kernel_data
const KernelGlobalsCPU *ccl_restrict KernelGlobals
#define ccl_device
#define ccl_private
#define CCL_NAMESPACE_END
#define NULL
CCL_NAMESPACE_BEGIN ccl_device void displacement_shader_eval(KernelGlobals kg, ConstIntegratorGenericState state, ccl_private ShaderData *sd)
ccl_device void svm_eval_nodes(KernelGlobals kg, ConstIntegratorGenericState state, ccl_private ShaderData *sd, ccl_global float *render_buffer, uint32_t path_flag)
#define KERNEL_FEATURE_OSL
ShaderData
static ulong state[N]