Blender V4.3
pass_accessor_cpu.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#pragma once
6
7#include "device/cpu/kernel.h"
8
10
12
14
15/* Pass accessor implementation for CPU side. */
17 public:
19
20 protected:
22 const KernelFilmConvert *kfilm_convert,
23 const RenderBuffers *render_buffers,
24 const BufferParams &buffer_params,
25 const Destination &destination,
26 const CPUKernels::FilmConvertFunction func) const;
27
29 const KernelFilmConvert *kfilm_convert,
30 const RenderBuffers *render_buffers,
31 const BufferParams &buffer_params,
32 const Destination &destination,
34
35#define DECLARE_PASS_ACCESSOR(pass) \
36 virtual void get_pass_##pass(const RenderBuffers *render_buffers, \
37 const BufferParams &buffer_params, \
38 const Destination &destination) const override;
39
40 /* Float (scalar) passes. */
43 DECLARE_PASS_ACCESSOR(sample_count)
45
46 /* Float3 passes. */
47 DECLARE_PASS_ACCESSOR(light_path)
48 DECLARE_PASS_ACCESSOR(shadow_catcher)
50
51 /* Float4 passes. */
53 DECLARE_PASS_ACCESSOR(cryptomatte)
54 DECLARE_PASS_ACCESSOR(shadow_catcher_matte_with_shadow)
55 DECLARE_PASS_ACCESSOR(combined)
57
58#undef DECLARE_PASS_ACCESSOR
59};
60
void run_get_pass_kernel_processor_float(const KernelFilmConvert *kfilm_convert, const RenderBuffers *render_buffers, const BufferParams &buffer_params, const Destination &destination, const CPUKernels::FilmConvertFunction func) const
void run_get_pass_kernel_processor_half_rgba(const KernelFilmConvert *kfilm_convert, const RenderBuffers *render_buffers, const BufferParams &buffer_params, const Destination &destination, const CPUKernels::FilmConvertHalfRGBAFunction func) const
PassAccessor(const PassAccessInfo &pass_access_info, float exposure, int num_samples)
#define CCL_NAMESPACE_END
#define DECLARE_PASS_ACCESSOR(pass)