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

Function device_render

tutorials/viewer/viewer_device.cpp:370–405  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

368
369/* called by the C++ code to render */
370extern "C" void device_render (int* pixels,
371 const unsigned int width,
372 const unsigned int height,
373 const float time,
374 const ISPCCamera& camera)
375{
376 bool camera_changed = g_changed; g_changed = false;
377
378 /* create scene */
379 if (data.scene == nullptr) {
380 g_scene = data.scene = convertScene(g_ispc_scene);
381 if (data.subdiv_mode) updateEdgeLevels(g_ispc_scene, camera.xfm.p);
382 rtcCommitScene (data.scene);
383 data.traversable = rtcGetSceneTraversable(data.scene);
384 old_p = camera.xfm.p;
385 }
386
387 else
388 {
389 /* check if camera changed */
390 if (ne(camera.xfm.p,old_p)) {
391 camera_changed = true;
392 old_p = camera.xfm.p;
393 }
394
395 /* update edge levels if camera changed */
396 if (camera_changed && data.subdiv_mode) {
397 updateEdgeLevels(g_ispc_scene,camera.xfm.p);
398 rtcCommitScene (data.scene);
399 data.traversable = rtcGetSceneTraversable(data.scene);
400 }
401
402 if (g_animation_mode)
403 UpdateScene(g_ispc_scene, time);
404 }
405}
406
407/* called by the C++ code for cleanup */
408extern "C" void device_cleanup ()

Callers

nothing calls this directly

Calls 5

rtcCommitSceneFunction · 0.85
UpdateSceneFunction · 0.85
convertSceneFunction · 0.70
updateEdgeLevelsFunction · 0.70
neFunction · 0.50

Tested by

no test coverage detected