| | 1 | = !WindowLoop = |
| | 2 | == where we render graphics == |
| | 3 | |
| | 4 | '''!WindowLoop''' is an instance of '''soy._internals.!LoopThread''' which calls each '''soy.windows.Window''' object so that rendering is performed in the background. This allows physics (processed in SceneLoop) and Python code to continue without interruptions to or by rendering. |
| | 5 | |
| | 6 | Each window will then render it's widgets, each an instance of '''soy.widgets.Widget'''. The more popular of these include: |
| | 7 | * '''soy.widgets.Canvas''' - renders a texture directly, used to display graphics and text |
| | 8 | * '''soy.widgets.Projector''' - renders the "output" of a '''soy.bodies.Camera''' |
| | 9 | * '''soy.widgets.StackX''' - this stacks children widgets horizontally |
| | 10 | * '''soy.widgets.StackY''' - this stacks children widgets vertically |
| | 11 | * '''soy.widgets.StackZ''' - this stacks children widgets over each other, akin to root-level widgets |
| | 12 | |
| | 13 | Interactive widgets have not yet been written but are planned for the future. |
| | 14 | |
| | 15 | '''!WindowLoop''' has not yet replaced this function of CoreLoop, this is a work in progress. |