.\" Automatically generated by Pandoc 2.9.2.1
.\"
.TH "rtcGetSYCLDeviceFunctionPointer" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetSYCLDeviceFunctionPointer - obtains a device side
  function pointer for some SYCL function
\f[R]
.fi
.SS SYNOPSIS
.IP
.nf
\f[C]
#include <embree4/rtcore.h>

template<auto F>
inline decltype(F) rtcGetSYCLDeviceFunctionPointer(sycl::queue& queue);
\f[R]
.fi
.SS DESCRIPTION
.PP
This function returns a device side function pointer for some function
F.
This function F must be defined using the
\f[C]RTC_SYCL_INDIRECTLY_CALLABLE\f[R] attribute, e.g.:
.IP
.nf
\f[C]
RTC_SYCL_INDIRECTLY_CALLABLE void filter(
  const RTCFilterFunctionNArguments* args) { ... }

RTCFilterFunctionN fptr = rtcGetSYCLDeviceFunctionPointer<filter>(queue);
\f[R]
.fi
.PP
Such a device side function pointers of some filter callbacks can get
assigned to a geometry using the
\f[C]rtcSetGeometryIntersectFilterFunction\f[R] and
\f[C]rtcSetGeometryOccludedFilterFunction\f[R] API functions.
.PP
Further, device side function pointers for user geometry callbacks can
be assigned to geometries using the
\f[C]rtcSetGeometryIntersectFunction\f[R] and
\f[C]rtcSetGeometryOccludedFunction\f[R] API calls.
.PP
These geometry versions of the callback functions are disabled in SYCL
by default, and we recommend not using them for performance reasons.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[C]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcSetGeometryIntersectFunction], [rtcSetGeometryOccludedFunction],
[rtcSetGeometryIntersectFilterFunction],
[rtcSetGeometryOccludedFilterFunction]
