Draw Manager-Specific Application Classes

Beyond the basic methods common to all applications, there are methods that are specific to a given Draw Manager. The application classes are extended for each of the specific Draw Managers. The graphics API-specific application classes derive from vjApp and extend this interface further. They add extra “hooks” that support the abilities of the specific API.

OpenGL Application Class

The OpenGL application base class adds several methods to the application interface that allow rendering of OpenGL graphics. The extensions to the base vjApp class are shown in Figure 2.4. In the following, we describe the method vjGlApp::draw(), the most important element of the interface. More details about the vjGlApp class are provided in the section called “OpenGL Applications”, found in Chapter 4.

Figure 2.4. vjGlApp interface extensions to vjApp

vjGlApp::draw()

The “draw function” is called by the OpenGL Draw Manager when it needs to render the current scene in an OpenGL graphics window. It is called for each active OpenGL context.

OpenGL Performer Application Class

The OpenGL Performer application base class adds interface functions that deal with the OpenGL Performer scene graph. Some of the interface extensions are shown in Figure 2.5. The following is a description of only two methods in the vjPfApp interface. More detailed discussion on this class is provided in the section called “OpenGL Performer Applications”, found in Chapter 4.

Figure 2.5. vjPfApp interface extensions to vjApp

vjPfApp::initScene()

The initScene() member function is called when the application should create the scene graph it will use.

vjPfApp::getScene()

The getScene() member function is called by the Performer Draw Manager when it needs to know what scene graph it should render for the application.