| 868 | } |
| 869 | |
| 870 | OIDN_API void oidnSetFilterImage(OIDNFilter filterC, const char* name, |
| 871 | OIDNBuffer bufferC, OIDNFormat format, |
| 872 | size_t width, size_t height, |
| 873 | size_t byteOffset, |
| 874 | size_t pixelByteStride, size_t rowByteStride) |
| 875 | { |
| 876 | Filter* filter = reinterpret_cast<Filter*>(filterC); |
| 877 | OIDN_TRY |
| 878 | checkHandle(filterC); |
| 879 | OIDN_LOCK_DEVICE(filter); |
| 880 | checkString(name); |
| 881 | checkHandle(bufferC); |
| 882 | Ref<Buffer> buffer = reinterpret_cast<Buffer*>(bufferC); |
| 883 | if (buffer->getDevice() != filter->getDevice()) |
| 884 | throw Exception(Error::InvalidArgument, "the specified objects are bound to different devices"); |
| 885 | auto image = makeRef<Image>(buffer, static_cast<Format>(format), |
| 886 | static_cast<int>(width), static_cast<int>(height), |
| 887 | byteOffset, pixelByteStride, rowByteStride); |
| 888 | filter->setImage(name, image); |
| 889 | OIDN_CATCH_DEVICE(filter) |
| 890 | } |
| 891 | |
| 892 | OIDN_API void oidnSetSharedFilterImage(OIDNFilter filterC, const char* name, |
| 893 | void* devPtr, OIDNFormat format, |
no test coverage detected