Viewport modes and callbacks use Softimage's C++ API. Before you begin, make sure you have set up your environment as described in Building C++ Plug-ins. In addition to these settings, the xsi_graphicsequencer.h and xsi_graphicsequencercontext.h header files are required when developing graphic sequencer plug-ins.
Viewport modes and callbacks are implemented in C++ as self-installing plug-ins, so you need to implement XSILoadPlugin to call the PluginRegistrar::RegisterDisplayCallback (to register a viewport callback) and PluginRegistrar::RegisterDisplayPass (to register a viewport mode) functions, which instantiate the CGraphicSequencer object. The CGraphicSequencer object provides services to enable custom rendering passes in the OpenGL viewport.
In the Init callback you get a pointer to the CGraphicSequencer object via the GraphicSequencerContext which you can use to:
Register a new viewport callback, via CGraphicSequencer::RegisterViewportCallback
Register a new viewport mode, via CGraphicSequencer::RegisterViewportMode
These registration functions allow you to declare what type of viewport callback you want to define as well as which view mode will be used.
The Execute callback is the real workhorse function: it is where you implement what happens when the matching viewport callback is fired.
See the Graphic Sequencer Callbacks reference for more details about the list of callbacks you need to implement in your graphic sequencer plug-in.
You can also see the SampleDisplayCallback example that shows a Display Callback (MyClearScreenBuffer) and a Display Pass (MyCustomPass). This example is available in the examples folder of the Softimage SDK installation directory.
Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License