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

Method run

tutorials/verify/verify.cpp:3023–3117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3021 }
3022
3023 VerifyApplication::TestReturnValue run(VerifyApplication* state, bool silent)
3024 {
3025 std::string cfg = state->rtcore + ",isa="+stringOfISA(isa);
3026 RTCDeviceRef device = rtcNewDevice(cfg.c_str());
3027 errorHandler(nullptr,rtcGetDeviceError(device));
3028
3029 Ref<SceneGraph::Node> sphere = SceneGraph::createQuadSphere(Vec3fa(0.f), 1.f, 32);
3030
3031 sflags.sflags = sflags.sflags | RTC_SCENE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS;
3032
3033 VerifyScene bl_scene(device, sflags);
3034 bl_scene.addGeometry(quality, sphere);
3035 rtcCommitScene(bl_scene);
3036 AssertNoError(device);
3037
3038 bool passed = true;
3039 {
3040 std::vector<AffineSpace3fa> transforms;
3041 for (int i = 1; i < 16; ++i) {
3042 transforms.push_back(AffineSpace3fa::translate(Vec3fa(i * 5.f, 0.f, 0.f)));
3043 }
3044
3045 RTCScene tl_scene = rtcNewScene(device);
3046 RTCGeometry instance_array = rtcNewGeometry (device, RTC_GEOMETRY_TYPE_INSTANCE_ARRAY);
3047 rtcSetSharedGeometryBuffer(instance_array, RTC_BUFFER_TYPE_TRANSFORM, 0, RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR, (void*)transforms.data(), 0, sizeof(AffineSpace3fa), transforms.size());
3048 rtcSetGeometryInstancedScene(instance_array, bl_scene);
3049 rtcAttachGeometry(tl_scene,instance_array);
3050 rtcReleaseGeometry(instance_array);
3051 rtcCommitGeometry(instance_array);
3052 rtcCommitScene(tl_scene);
3053 AssertNoError(device);
3054
3055 passed &= doIntersectionTests(tl_scene);
3056 assert(passed);
3057 rtcReleaseScene(tl_scene);
3058 }
3059
3060 {
3061 std::vector<AffineSpace3f> transforms;
3062 for (int i = 1; i < 16; ++i) {
3063 transforms.push_back(AffineSpace3f::translate(Vec3f(i * 5.f, 0.f, 0.f)));
3064 }
3065
3066 RTCScene tl_scene = rtcNewScene(device);
3067 RTCGeometry instance_array = rtcNewGeometry (device, RTC_GEOMETRY_TYPE_INSTANCE_ARRAY);
3068 rtcSetSharedGeometryBuffer(instance_array, RTC_BUFFER_TYPE_TRANSFORM, 0, RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR, (void*)transforms.data(), 0, sizeof(AffineSpace3f), transforms.size());
3069 rtcSetGeometryInstancedScene(instance_array, bl_scene);
3070 rtcAttachGeometry(tl_scene,instance_array);
3071 rtcReleaseGeometry(instance_array);
3072 rtcCommitGeometry(instance_array);
3073 rtcCommitScene(tl_scene);
3074 AssertNoError(device);
3075
3076 passed &= doIntersectionTests(tl_scene);
3077 assert(passed);
3078 rtcReleaseScene(tl_scene);
3079 }
3080

Callers

nothing calls this directly

Calls 15

stringOfISAFunction · 0.85
rtcNewDeviceFunction · 0.85
errorHandlerFunction · 0.85
rtcGetDeviceErrorFunction · 0.85
rtcCommitSceneFunction · 0.85
AssertNoErrorFunction · 0.85
rtcNewSceneFunction · 0.85
rtcAttachGeometryFunction · 0.85
rtcReleaseGeometryFunction · 0.85
rtcCommitGeometryFunction · 0.85

Tested by

no test coverage detected