= !WindowLoop = == where we render graphics == '''!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. Each window will then render it's widgets, each an instance of '''soy.widgets.Widget'''. The more popular of these include: * '''soy.widgets.Canvas''' - renders a texture directly, used to display graphics and text * '''soy.widgets.Projector''' - renders the "output" of a '''soy.bodies.Camera''' * '''soy.widgets.StackX''' - this stacks children widgets horizontally * '''soy.widgets.StackY''' - this stacks children widgets vertically * '''soy.widgets.StackZ''' - this stacks children widgets over each other, akin to root-level widgets Interactive widgets have not yet been written but are planned for the future. '''!WindowLoop''' has not yet replaced this function of CoreLoop, this is a work in progress.