Blender V4.3
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#include "kernel/types.h"
9
11
12class DeviceQueue;
13
14/* Pass accessor implementation for GPU side. */
16 public:
18 const PassAccessInfo &pass_access_info,
19 float exposure,
20 int num_samples);
21
22 protected:
24 const RenderBuffers *render_buffers,
25 const BufferParams &buffer_params,
26 const Destination &destination) const;
27
28#define DECLARE_PASS_ACCESSOR(pass) \
29 virtual void get_pass_##pass(const RenderBuffers *render_buffers, \
30 const BufferParams &buffer_params, \
31 const Destination &destination) const override;
32
33 /* Float (scalar) passes. */
36 DECLARE_PASS_ACCESSOR(sample_count);
38
39 /* Float3 passes. */
42
43 /* Float4 passes. */
46 DECLARE_PASS_ACCESSOR(shadow_catcher);
47 DECLARE_PASS_ACCESSOR(shadow_catcher_matte_with_shadow);
50
51#undef DECLARE_PASS_ACCESSOR
52
54};
55
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(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(float3)
PassAccessorGPU(DeviceQueue *queue, const PassAccessInfo &pass_access_info, float exposure, int num_samples)
DECLARE_PASS_ACCESSOR(cryptomatte)
#define CCL_NAMESPACE_END
DeviceKernel