Skip to content

Commit

Permalink
Disable rendering for the other renderers for which renderFrame was n…
Browse files Browse the repository at this point in the history
…ot called (done by disabling the gsg)
  • Loading branch information
SamFlt committed Dec 13, 2024
1 parent 4559f93 commit a0ba03b
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 8 deletions.
11 changes: 11 additions & 0 deletions modules/ar/src/panda3d-simulator/vpPanda3DBaseRenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,18 @@ void vpPanda3DBaseRenderer::setupCamera()
void vpPanda3DBaseRenderer::renderFrame()
{
beforeFrameRendered();
// Disable rendering for all the other renderers
for (int i = 0; i < framework.get_num_windows(); ++i) {
WindowFramework *fi = framework.get_window(i);
if (fi != m_window) {
fi->get_graphics_output()->get_gsg()->set_active(false);
}
}
m_window->get_graphics_output()->get_engine()->render_frame();
for (int i = 0; i < framework.get_num_windows(); ++i) {
WindowFramework *fi = framework.get_window(i);
fi->get_graphics_output()->get_gsg()->set_active(true);
}
afterFrameRendered();
}

Expand Down
20 changes: 12 additions & 8 deletions modules/ar/test/catchPanda.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,22 +53,26 @@ using namespace VISP_NAMESPACE_NAME;

#include <random>


vpPanda3DRenderParameters defaultRenderParams()
{
vpCameraParameters cam(600, 600, 160, 120);
return vpPanda3DRenderParameters(cam, 240, 320, 0.001, 1.0);
}

SCENARIO("Instanciating multiple Panda3D renderers", "[Panda3D]")
{
GIVEN("A single renderer")
{
vpCameraParameters cam(600, 600, 160, 120);
vpPanda3DRenderParameters renderParams(cam, 240, 320, 0.001, 1.0);
vpPanda3DGeometryRenderer r1(vpPanda3DGeometryRenderer::CAMERA_NORMALS);
r1.setRenderParameters(renderParams);
r1.setRenderParameters(defaultRenderParams());
r1.initFramework();

WHEN("Creating another, uncoupled renderer")
THEN("Creating another, uncoupled renderer is ok and its destruction does not raise an error")
{
// vpPanda3DGeometryRenderer r2(vpPanda3DGeometryRenderer::CAMERA_NORMALS);
// r2.setRenderParameters(renderParams);
// r2.initFramework();

vpPanda3DGeometryRenderer r2(vpPanda3DGeometryRenderer::CAMERA_NORMALS);
r2.setRenderParameters(defaultRenderParams());
r2.initFramework();
}
}
}
Expand Down

0 comments on commit a0ba03b

Please sign in to comment.