Blender V5.0
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#include "kernel/globals.h"
10
11#ifdef __SVM__
12# include "kernel/svm/svm.h"
13#endif
14#ifdef __OSL__
15# include "kernel/osl/osl.h"
16#endif
17
19
20template<typename ConstIntegratorGenericState>
22 ConstIntegratorGenericState state,
23 ccl_private ShaderData *sd)
24{
25 sd->num_closure = 0;
26 sd->num_closure_left = 0;
27
28 /* this will modify sd->P */
29#ifdef __OSL__
30 if (kernel_data.kernel_features & KERNEL_FEATURE_OSL_SHADING) {
32 }
33 else
34#endif
35 {
36#ifdef __SVM__
38 kg, state, sd, nullptr, 0);
39#endif
40 }
41}
42
void osl_eval_nodes< SHADER_TYPE_DISPLACEMENT >(const ThreadKernelGlobalsCPU *kg, const void *state, ShaderData *sd, const uint32_t path_flag)
Definition closures.cpp:246
#define kernel_data
#define KERNEL_FEATURE_OSL_SHADING
#define ccl_private
const ThreadKernelGlobalsCPU * KernelGlobals
#define CCL_NAMESPACE_END
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, const uint32_t path_flag)
static ulong state[N]
#define ccl_device