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.
In the engine we have the concept of state updates for some objects that represent both jme logical objects and opengl native objects.
This pr extends this approach by introducing a way to store custom states for objects that extend the StatefulObjects class.
This can be used to implement self contained renderers as modules that don't need any change in the core to work nor to maintain large maps to point jme objects to their local representation.
This also allows multiple contexts to be updated and invalidated separately without them being aware of each other and without polling for changes.
As an example let's say we have a Mesh that is needed by the rendering engine and the physics engine:
This pr implements StatefulObjects for some objects that have a representation in our current rendering backend:
Obviously there is nothing that can benefit from this PR atm, but it will allow future development to be less reliant on the core module.