7#if defined(WITH_OPENIMAGEDENOISE)
18 friend class OIDNDenoiseContext;
30 const int num_samples,
31 bool allow_inplace_modification)
override;
33 static bool is_device_supported(
const DeviceInfo &device);
52 virtual bool denoise_run(
const DenoiseContext &context,
const DenoisePass &pass)
override;
54 OIDNFilter create_filter();
55 bool commit_and_execute_filter(OIDNFilter filter, ExecMode mode = ExecMode::SYNC);
57 void set_filter_pass(OIDNFilter filter,
63 size_t offset_in_bytes,
64 size_t pixel_stride_in_bytes,
65 size_t row_stride_in_bytes);
68 void release_all_resources();
70 OIDNDevice oidn_device_ =
nullptr;
71 OIDNFilter oidn_filter_ =
nullptr;
72 OIDNFilter albedo_filter_ =
nullptr;
73 OIDNFilter normal_filter_ =
nullptr;
75 bool is_configured_ =
false;
80 bool use_pass_albedo_ =
false;
81 bool use_pass_normal_ =
false;
virtual bool denoise_run(const DenoiseContext &context, const DenoisePass &pass)=0
virtual bool denoise_create_if_needed(DenoiseContext &context)=0
virtual bool denoise_buffer(const BufferParams &buffer_params, RenderBuffers *render_buffers, const int num_samples, bool allow_inplace_modification) override
virtual bool denoise_configure_if_needed(DenoiseContext &context)=0
virtual uint get_device_type_mask() const =0
#define CCL_NAMESPACE_END