Represents an interface for creating extensions to enhance the functionality of a host program. Extensions allow developers to hook into the lifecycle of the program, enabling custom behavior during setup, drawing, and shutdown phases.
Invoked after the drawing phase of the program's lifecycle, allowing the extension to execute any custom logic or operations needed post-rendering.
Invoked before the drawing phase of the program's lifecycle, allowing the extension to perform custom operations or adjustments prior to rendering.
Allows an extension to perform its setup process with the given Program instance.
Allows the extension to perform clean-up or resource deallocation tasks during the shutdown phase of the program's lifecycle.