| 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 | { |
| 1869 | Geometry* geometry = (Geometry*) hgeometry; |
| 1870 | RTC_CATCH_BEGIN; |
| 1871 | RTC_TRACE(rtcSetSharedGeometryBuffer); |
| 1872 | RTC_VERIFY_HANDLE(hgeometry); |
| 1873 | |
| 1874 | if (itemCount > 0xFFFFFFFFu) |
| 1875 | throw_RTCError(RTC_ERROR_INVALID_ARGUMENT,"buffer too large"); |
| 1876 | |
| 1877 | if (byteStride > 0xFFFFFFFFu) |
| 1878 | throw_RTCError(RTC_ERROR_INVALID_ARGUMENT,"stride too large"); |
| 1879 | |
| 1880 | Ref<Buffer> buffer = new Buffer(geometry->device, itemCount*byteStride, (char*)ptr + byteOffset); |
| 1881 | geometry->setBuffer(type, slot, format, buffer, 0, byteStride, (unsigned int)itemCount); |
| 1882 | RTC_CATCH_END2(geometry); |
| 1883 | } |
| 1884 | |
| 1885 | RTC_API void rtcSetSharedGeometryBufferHostDevice(RTCGeometry hgeometry, RTCBufferType type, unsigned int slot, RTCFormat format, const void* ptr, const void* dptr, size_t byteOffset, size_t byteStride, size_t itemCount) |
| 1886 | { |
no test coverage detected