Before proceeding into application object details, we must understand how VR Juggler calls the application, and we must know what a frame is. In the code above, the statement on line 9 tells the kernel thread to start running. When the kernel begins its execution, it follows the sequence shown in Figure 2.2, “Kernel loop sequence”. The specific methods called are described in more detail in the following section. This diagram will be useful in understanding the order in which the application object methods are invoked.
The VR Juggler kernel calls each of the methods in the application object based on a strictly scheduled frame of execution. The frame of execution is shown in Figure 2.2, “Kernel loop sequence”; it makes up all the lines within the “while(!quit)” clause.
During the frame of execution, the kernel calls the
application methods and performs internal updates (the
updateAllData() method call). Because
the kernel has complete control over the frame, it can make
changes at pre-defined “safe” times when the
application is not doing any processing. At these times, the
kernel can change the virtual platform configuration as long as
the interface remains the same.
The frame of execution also serves as a framework for the
application. That is, the application can expect that when
preFrame() is called, the devices have
just been updated. Applications can rely upon the system being
in well-defined stages of the frame when the kernel invokes the
application object's methods.