MCPcopy Create free account
hub / github.com/RenderKit/embree / rtcSetNewGeometryBuffer

Function rtcSetNewGeometryBuffer

kernels/common/rtcore.cpp:1918–1941  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1916 }
1917
1918 RTC_API void* rtcSetNewGeometryBuffer(RTCGeometry hgeometry, RTCBufferType type, unsigned int slot, RTCFormat format, size_t byteStride, size_t itemCount)
1919 {
1920 Geometry* geometry = (Geometry*) hgeometry;
1921 RTC_CATCH_BEGIN;
1922 RTC_TRACE(rtcSetNewGeometryBuffer);
1923 RTC_VERIFY_HANDLE(hgeometry);
1924
1925 if (itemCount > 0xFFFFFFFFu)
1926 throw_RTCError(RTC_ERROR_INVALID_ARGUMENT,"buffer too large");
1927
1928 if (byteStride > 0xFFFFFFFFu)
1929 throw_RTCError(RTC_ERROR_INVALID_ARGUMENT,"stride too large");
1930
1931 /* vertex buffers need to get overallocated slightly as elements are accessed using SSE loads */
1932 size_t bytes = itemCount*byteStride;
1933 if (type == RTC_BUFFER_TYPE_VERTEX || type == RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE)
1934 bytes += (16 - (byteStride%16))%16;
1935
1936 Ref<Buffer> buffer = new Buffer(geometry->device, bytes, nullptr);
1937 geometry->setBuffer(type, slot, format, buffer, 0, byteStride, (unsigned int)itemCount);
1938 return buffer->data();
1939 RTC_CATCH_END2(geometry);
1940 return nullptr;
1941 }
1942
1943 RTC_API void rtcSetNewGeometryBufferHostDevice(RTCGeometry hgeometry, RTCBufferType bufferType, unsigned int slot, RTCFormat format, size_t byteStride, size_t itemCount, void** ptr, void** dptr)
1944 {

Callers 15

test.cppFile · 0.85
createTriangulatedSphereFunction · 0.85
createGroundPlaneFunction · 0.85
addCubeFunction · 0.85
addGroundPlaneFunction · 0.85
initializeSceneFunction · 0.85
addSphereFunction · 0.85
addTriangleCubeFunction · 0.85
addQuadCubeFunction · 0.85
addSubdivCubeFunction · 0.85
addCurveFunction · 0.85

Calls 2

setBufferMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected