Blender V5.0
pass_accessor_gpu.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
8
9#include "kernel/types.h"
10
12
13class DeviceQueue;
14
15/* Pass accessor implementation for GPU side. */
17 public:
19 const PassAccessInfo &pass_access_info,
20 const float exposure,
21 int num_samples);
22
23 protected:
25 const RenderBuffers *render_buffers,
26 const BufferParams &buffer_params,
27 const Destination &destination) const;
28
29#define DECLARE_PASS_ACCESSOR(pass) \
30 virtual void get_pass_##pass(const RenderBuffers *render_buffers, \
31 const BufferParams &buffer_params, \
32 const Destination &destination) const override;
33
34 /* Float (scalar) passes. */
37 DECLARE_PASS_ACCESSOR(volume_majorant);
38 DECLARE_PASS_ACCESSOR(sample_count);
40
41 /* Float3 passes. */
45
46 /* Float4 passes. */
49 DECLARE_PASS_ACCESSOR(shadow_catcher);
50 DECLARE_PASS_ACCESSOR(shadow_catcher_matte_with_shadow);
53
54#undef DECLARE_PASS_ACCESSOR
55
57};
58
PassAccessorGPU(DeviceQueue *queue, const PassAccessInfo &pass_access_info, const float exposure, int num_samples)
DECLARE_PASS_ACCESSOR(sample_count)
DECLARE_PASS_ACCESSOR(light_path)
DECLARE_PASS_ACCESSOR(shadow_catcher)
DECLARE_PASS_ACCESSOR(motion)
DECLARE_PASS_ACCESSOR(float4)
DECLARE_PASS_ACCESSOR(mist)
DeviceQueue * queue_
DECLARE_PASS_ACCESSOR(float)
DECLARE_PASS_ACCESSOR(shadow_catcher_matte_with_shadow)
DECLARE_PASS_ACCESSOR(volume_majorant)
DECLARE_PASS_ACCESSOR(combined)
void run_film_convert_kernels(DeviceKernel kernel, const RenderBuffers *render_buffers, const BufferParams &buffer_params, const Destination &destination) const
DECLARE_PASS_ACCESSOR(depth)
DECLARE_PASS_ACCESSOR(rgbe)
DECLARE_PASS_ACCESSOR(float3)
DECLARE_PASS_ACCESSOR(cryptomatte)
PassAccessor(const PassAccessInfo &pass_access_info, const float exposure, const int num_samples)
#define CCL_NAMESPACE_END
DeviceKernel