Fixed infinite loop in OpenGL BackgroundRectangle.get_color()
#3732
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.
Overview: What does this pull request change?
Fixes #3634 by modifying adding a line and changing a line in opengl_vectorized_mobject.py. After reproducing the issue with the given test case, I found that there was an infinite loop involving calls to get_color() in opengl_vectorized_mobject.py for the background object.
Motivation and Explanation: Why and how do your changes improve the library?
I compared opengl_vectorized_mobject.py (OVM) to vectorized_mobject.py (VM) used by cairo. I noticed the if condition was the only difference. The condition in VM did not check stroke but instead checked fill opacities.
I essentially made the OVM condition equivalent to the VM condition - using OVM's has_fill(). This change, along with adding a missing attribute (mobject_style["fill_opacity"]), fixed the bug. For reference:
in vectorized_mobject.py:
current opengl_vectorized_mobject.py:
proposed opengl_vectorized_mobject.py:
Links to added or changed documentation pages
Further Information and Comments
Reviewer Checklist