#pragma once
#include "rtcore_common.h"
RTC_NAMESPACE_BEGIN
RTCDevice;
RTC_API RTCDevice rtcNewDevice(const char* config);
#if defined(EMBREE_SYCL_SUPPORT) && defined(SYCL_LANGUAGE_VERSION)
RTC_API_EXTERN_C RTCDevice rtcNewSYCLDevice(sycl::context context, const char* config);
RTC_API bool rtcIsSYCLDeviceSupported(const sycl::device sycl_device);
RTC_API int rtcSYCLDeviceSelector(const sycl::device sycl_device);
RTC_API void rtcSetDeviceSYCLDevice(RTCDevice device, const sycl::device sycl_device);
#endif
RTC_API void rtcRetainDevice(RTCDevice device);
RTC_API void rtcReleaseDevice(RTCDevice device);
enum RTCDeviceProperty
{ … };
RTC_API ssize_t rtcGetDeviceProperty(RTCDevice device, enum RTCDeviceProperty prop);
RTC_API void rtcSetDeviceProperty(RTCDevice device, const enum RTCDeviceProperty prop, ssize_t value);
enum RTCError
{ … };
RTC_API enum RTCError rtcGetDeviceError(RTCDevice device);
RTCErrorFunction;
RTC_API void rtcSetDeviceErrorFunction(RTCDevice device, RTCErrorFunction error, void* userPtr);
RTCMemoryMonitorFunction;
RTC_API void rtcSetDeviceMemoryMonitorFunction(RTCDevice device, RTCMemoryMonitorFunction memoryMonitor, void* userPtr);
RTC_NAMESPACE_END