WebGLRenderer: Remove program reference from materials. #19839
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.
This PR ensures that
Material.program
is not set by the renderer anymore. If the renderer needs access to the current material's program, the following approach should be used:The refactoring makes the code more clear since the instance of
WebGLProgram
is now retrieved in a single way. Besides, it does not leak in materials and thus is no part of the public API anymore. It's also necessary to removeMaterial.program
for solving #15047 anyway.The only place that was necessary to change was
WebGLRenderLists
.