Fix rendering issues with Panda3D #1559
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Despite previous fixes, creating and destroying panda3d renderers still generated some issues (Segmentation faults, wrong data in retrieved images). This PR also improves some of the tests to detect these issues and the tracking tests, which rely on Panda3D.
This PR introduces a singleton class
vpPanda3DFramework
that manages the Panda3D state. If an application is using Panda3D, it should call ``vpPanda3DFramework::getInstance().exit()` to ensure that the buffers, windows, etc. are correctly released. Otherwise, an exception may be raised. This exception seems to only appear when the program exits.