| 1843 | } |
| 1844 | |
| 1845 | RTC_API void rtcSetGeometryBuffer(RTCGeometry hgeometry, RTCBufferType type, unsigned int slot, RTCFormat format, RTCBuffer hbuffer, size_t byteOffset, size_t byteStride, size_t itemCount) |
| 1846 | { |
| 1847 | Geometry* geometry = (Geometry*) hgeometry; |
| 1848 | Ref<Buffer> buffer = (Buffer*)hbuffer; |
| 1849 | RTC_CATCH_BEGIN; |
| 1850 | RTC_TRACE(rtcSetGeometryBuffer); |
| 1851 | RTC_VERIFY_HANDLE(hgeometry); |
| 1852 | RTC_VERIFY_HANDLE(hbuffer); |
| 1853 | |
| 1854 | if (geometry->device != buffer->device) |
| 1855 | throw_RTCError(RTC_ERROR_INVALID_ARGUMENT,"inputs are from different devices"); |
| 1856 | |
| 1857 | if (itemCount > 0xFFFFFFFFu) |
| 1858 | throw_RTCError(RTC_ERROR_INVALID_ARGUMENT,"buffer too large"); |
| 1859 | |
| 1860 | if (byteStride > 0xFFFFFFFFu) |
| 1861 | throw_RTCError(RTC_ERROR_INVALID_ARGUMENT,"stride too large"); |
| 1862 | |
| 1863 | geometry->setBuffer(type, slot, format, buffer, byteOffset, byteStride, (unsigned int)itemCount); |
| 1864 | RTC_CATCH_END2(geometry); |
| 1865 | } |
| 1866 | |
| 1867 | RTC_API void rtcSetSharedGeometryBuffer(RTCGeometry hgeometry, RTCBufferType type, unsigned int slot, RTCFormat format, const void* ptr, size_t byteOffset, size_t byteStride, size_t itemCount) |
| 1868 | { |
no test coverage detected