MCPcopy Create free account
hub / github.com/RenderKit/oidn / OIDNBuffer oidnNewSharedBufferFromFD

Function OIDNBuffer oidnNewSharedBufferFromFD

api/api.cpp:608–624  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

606 }
607
608 OIDN_API OIDNBuffer oidnNewSharedBufferFromFD(OIDNDevice deviceC,
609 OIDNExternalMemoryTypeFlags fdTypeC,
610 int fd, size_t byteSize)
611 {
612 Device* device = reinterpret_cast<Device*>(deviceC);
613 OIDN_TRY
614 checkHandle(deviceC);
615 OIDN_LOCK_DEVICE(device);
616 device->checkCommitted();
617 const ExternalMemoryTypeFlags fdType = static_cast<ExternalMemoryTypeFlags>(fdTypeC);
618 if ((fdType & device->getExternalMemoryTypes()) != fdType)
619 throw Exception(Error::InvalidArgument, "external memory type not supported by the device");
620 Ref<Buffer> buffer = device->newExternalUserBuffer(fdType, fd, byteSize);
621 return reinterpret_cast<OIDNBuffer>(buffer.detach());
622 OIDN_CATCH_DEVICE(device)
623 return nullptr;
624 }
625
626 OIDN_API OIDNBuffer oidnNewSharedBufferFromWin32Handle(OIDNDevice deviceC,
627 OIDNExternalMemoryTypeFlags handleTypeC,

Callers

nothing calls this directly

Calls 5

ExceptionFunction · 0.85
checkCommittedMethod · 0.80
newExternalUserBufferMethod · 0.80
detachMethod · 0.45

Tested by

no test coverage detected