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

Method run

tutorials/verify/verify.cpp:2397–2454  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2395 }
2396
2397 VerifyApplication::TestReturnValue run(VerifyApplication* state, bool silent)
2398 {
2399 std::string cfg = state->rtcore + ",isa="+stringOfISA(isa);
2400 RTCDeviceRef device = rtcNewDevice(cfg.c_str());
2401 errorHandler(nullptr,rtcGetDeviceError(device));
2402
2403 size_t M = num_interpolation_hair_vertices*N+16; // pads the arrays with some valid data
2404
2405 RTCGeometry geom = rtcNewGeometry(device, RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE);
2406 AssertNoError(device);
2407 rtcSetGeometryVertexAttributeCount(geom,2);
2408
2409 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_INDEX, 0, RTC_FORMAT_UINT, interpolation_hair_indices, 0, sizeof(unsigned int), num_interpolation_hairs);
2410 AssertNoError(device);
2411
2412 std::vector<float> vertices0(M);
2413 for (size_t i=0; i<M; i++) vertices0[i] = random_float();
2414 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX, 0, RTC_FORMAT_FLOAT4, vertices0.data(), 0, N*sizeof(float), num_interpolation_hair_vertices);
2415 AssertNoError(device);
2416
2417 /*std::vector<float> vertices1(M);
2418 for (size_t i=0; i<M; i++) vertices1[i] = random_float();
2419 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX, 1, RTC_FORMAT_FLOAT4, vertices1.data(), 0, N*sizeof(float), num_interpolation_hair_vertices);
2420 AssertNoError(device);*/
2421
2422 std::vector<float> user_vertices0(M);
2423 for (size_t i=0; i<M; i++) user_vertices0[i] = random_float();
2424 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE, 0, RTCFormat(RTC_FORMAT_FLOAT+N), user_vertices0.data(), 0, N*sizeof(float), num_interpolation_hair_vertices);
2425 AssertNoError(device);
2426
2427 std::vector<float> user_vertices1(M);
2428 for (size_t i=0; i<M; i++) user_vertices1[i] = random_float();
2429 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE, 1, RTCFormat(RTC_FORMAT_FLOAT+N), user_vertices1.data(), 0, N*sizeof(float), num_interpolation_hair_vertices);
2430 AssertNoError(device);
2431
2432 rtcDisableGeometry(geom);
2433 AssertNoError(device);
2434 rtcCommitGeometry(geom);
2435 AssertNoError(device);
2436
2437 bool passed = true;
2438 if (N >= 4) {
2439 passed &= checkHairInterpolation(geom,RTC_BUFFER_TYPE_VERTEX,0,vertices0.data(),4,N);
2440 //passed &= checkHairInterpolation(geom,RTC_BUFFER_TYPE_VERTEX,1,vertices1.data(),4,N);
2441 }
2442 passed &= checkHairInterpolation(geom,RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE,0,user_vertices0.data(),N,N);
2443 passed &= checkHairInterpolation(geom,RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE,1,user_vertices1.data(),N,N);
2444
2445 passed &= checkHairInterpolation(geom,RTC_BUFFER_TYPE_VERTEX,0,vertices0.data(),1,N);
2446 //passed &= checkHairInterpolation(geom,RTC_BUFFER_TYPE_VERTEX,1,vertices1.data(),1,N);
2447 passed &= checkHairInterpolation(geom,RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE,0,user_vertices0.data(),1,N);
2448 passed &= checkHairInterpolation(geom,RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE,1,user_vertices1.data(),1,N);
2449
2450 rtcReleaseGeometry(geom);
2451 AssertNoError(device);
2452
2453 return (VerifyApplication::TestReturnValue) passed;
2454 }

Callers

nothing calls this directly

Calls 13

stringOfISAFunction · 0.85
rtcNewDeviceFunction · 0.85
errorHandlerFunction · 0.85
rtcGetDeviceErrorFunction · 0.85
AssertNoErrorFunction · 0.85
rtcDisableGeometryFunction · 0.85
rtcCommitGeometryFunction · 0.85
rtcReleaseGeometryFunction · 0.85
RTCFormatEnum · 0.50
c_strMethod · 0.45

Tested by

no test coverage detected