Public Member Functions
CGraphicSequencer Class Reference

Detailed Description

The CGraphicSequencer object offers several services to enable custom rendering passes in the OpenGL viewport.

You cannot instantiate a CGraphicSequencer object directly. Rather, you receive an instance when your XGS plug-ins are called; that is, in a Custom Display callback or a Custom OpenGL Pass.

See also:
GraphicSequencerContext, siViewMode, siXGSRenderFlag
Since:
4.0

#include <xsi_graphicsequencer.h>

List of all members.

Public Member Functions

 CGraphicSequencer ()
 ~CGraphicSequencer ()
CStatus RegisterDisplayCallback (const CString &in_szName, const LONG in_lStateFlags, const siDisplayCallback in_eType, const siViewMode in_eViewMode, const CString &in_szCustomViewModeName) const
CStatus RegisterPassCallback (const CString &in_szPassName, const LONG in_lStateFlags, const LONG in_lPassFlags, const CString &in_szRelativePassName) const
CStatus RenderSceneUsingMode (const siViewMode in_eViewMode, INT in_lRenderFlags) const
CStatus RenderSceneUsingMaterial (const CString &in_szShaderName, INT in_lRenderFlags) const
CStatus RenderListUsingMode (const CRefArray &in_pObjectList, const siViewMode in_eViewMode) const
CStatus RenderListUsingMaterial (const CRefArray &in_pObjectList, const CString &in_szShaderName) const
CStatus GetNbStates (siXGSStateType in_eType, INT *out_pNbStates) const
CStatus DeleteState (siXGSStateType in_eType, const CString &in_pID) const
CStatus CreateState (siXGSStateType in_eType, const CString &in_pID, void *in_pValuePtr, void **out_pStateHandle) const
CStatus GetStateHandle (siXGSStateType in_eType, const CString &in_pID, void **out_pStateHandle) const
CStatus GetStateValue (siXGSStateType in_eType, void *in_lStateHandle, void *out_pStateValue) const
CStatus SetStateValue (siXGSStateType in_eType, void *in_lStateHandle, void *in_pStateValue) const
CStatus GetSceneDirtyFlag (bool *out_bBool) const
CStatus GetContextFlags (LONG *out_lFlags) const
CValueArray GetFramebufferInfo () const
CStatus PutFramebufferData (UINT in_uiFramebufferIndex, ULONG in_ulSizeInBytes, void *in_pData) const
CValue GetSetting (XSI::CString in_name) const
Property GetRendererProperty (const CTime &in_rTime) const
CRef GetCamera () const
CStatus RegisterViewportMode (const CString &in_szName, const siGraphicDriver in_eAPI, LONG in_lFeatures) const
CStatus RegisterViewportCallback (const CString &in_szName, const LONG in_lStateFlags, const siDisplayCallback in_eType, const siGraphicDriver in_eDriver, const siViewMode in_eViewMode, const CStringArray &in_szCustomViewModeList) const
CRef GetGraphicDriver () const
CStatus GetViewportSize (UINT &out_uiStartX, UINT &out_uiStartY, UINT &out_Width, UINT &out_Height) const
bool IsPlayback ()

Constructor & Destructor Documentation

Default constructor.

Default destructor.


Member Function Documentation

CStatus RegisterDisplayCallback ( const CString in_szName,
const LONG  in_lStateFlags,
const siDisplayCallback  in_eType,
const siViewMode  in_eViewMode,
const CString in_szCustomViewModeName 
) const

Registers a new Display callback with the OGS.

Parameters:
in_szNameThe display callback name
in_lStateFlagsThe callback state flags
in_eTypeThe type of callback (see siDisplayCallback)
in_eViewModeThe view mode (see siViewMode)
in_szCustomViewModeNameThe name to use for the new custom view mode
Returns:
CStatus::OK if the new display callback was registered
CStatus::Fail if the registration failed
Deprecated:
9.0 (2011) This version is kept for backward compatibility, please use CGraphicSequencer::RegisterViewportCallback instead.
CStatus RegisterPassCallback ( const CString in_szPassName,
const LONG  in_lStateFlags,
const LONG  in_lPassFlags,
const CString in_szRelativePassName 
) const

Registers a new Pass callback with the XGS.

Warning:
Not Implemented. Use CGraphicSequencer::RegisterDisplayCallback with the in_eType parameter set to siPass instead.
Parameters:
in_szPassNameThe pass callback name
in_lStateFlagsThe callback state flags
in_lPassFlagsThe pass callback flags
in_szRelativePassNameThe name of the pass used for relative insertion.
Returns:
CStatus::OK if the new pass callback was registered
CStatus::Fail if the registration failed
Deprecated:
9.0 (2011) This version is kept for backward compatibility, please use CGraphicSequencer::RegisterViewportMode instead.
CStatus RenderSceneUsingMode ( const siViewMode  in_eViewMode,
INT  in_lRenderFlags 
) const

Renders the scene using the specified legacy mode.

Parameters:
in_eViewModeThe legacy mode to use
in_lRenderFlagsThe render flags to use (one of the siXGSRenderFlag values)
Returns:
CStatus::OK if the scene was successfully rendered
CStatus::Fail if the registration failed or if the mode was not found
See also:
siXGSRenderFlag
CStatus RenderSceneUsingMaterial ( const CString in_szShaderName,
INT  in_lRenderFlags 
) const

Renders the scene using the specified Shader material.

Parameters:
in_szShaderNameThe name of the Shader to use for rendering
in_lRenderFlagsThe render flags to use (one of the siXGSRenderFlag values)
Returns:
CStatus::OK if the scene was successfully rendered
CStatus::Fail if the registration failed or if the material was invalid
See also:
siXGSRenderFlag
CStatus RenderListUsingMode ( const CRefArray in_pObjectList,
const siViewMode  in_eViewMode 
) const

Renders a list of objects using the specified legacy mode.

Parameters:
in_pObjectListThe list of objects to draw (array of references to objects)
in_eViewModeThe legacy mode to use
Returns:
CStatus::OK if the list was successfully rendered
CStatus::Fail if the registration failed or if the mode was not found
CStatus RenderListUsingMaterial ( const CRefArray in_pObjectList,
const CString in_szShaderName 
) const

Renders a list of objects using a specific Shader material.

Parameters:
in_pObjectListThe list of objects to draw (array of references to objects)
in_szShaderNameThe name of the Shader to use for rendering
Returns:
CStatus::OK if the list was successfully rendered
CStatus::Fail if the registration failed or if the mode was not found
CStatus GetNbStates ( siXGSStateType  in_eType,
INT *  out_pNbStates 
) const

Returns the number of states matching the specified type.

Parameters:
in_eTypeThe state type to count (one of the siXGSStateType values)
Return values:
out_pNbStatesPointer to an integer holding the number of states
Returns:
CStatus::OK on success
CStatus::Fail if the arguments are invalid
CStatus DeleteState ( siXGSStateType  in_eType,
const CString in_pID 
) const

Deletes a state by its identification (CString).

Parameters:
in_eTypeThe state type to delete (one of the siXGSStateType values)
in_pIDString identifying the state
Returns:
CStatus::OK on success
CStatus::Fail if the state was not found
CStatus CreateState ( siXGSStateType  in_eType,
const CString in_pID,
void *  in_pValuePtr,
void **  out_pStateHandle 
) const

Creates a new state.

Parameters:
in_eTypeThe state type to create (one of the siXGSStateType values)
in_pIDString identifying the new state
in_pValuePtrThe state value
Return values:
out_pStateHandleThe state handle
Returns:
CStatus::OK on success
CStatus::Fail if the arguments are invalid
CStatus GetStateHandle ( siXGSStateType  in_eType,
const CString in_pID,
void **  out_pStateHandle 
) const

Returns the state handle by its identification (CString).

Parameters:
in_eTypeThe state type to get (one of the siXGSStateType values)
in_pIDString identifying the state
Return values:
out_pStateHandleThe state handle
Returns:
CStatus::OK on success
CStatus::Fail if the arguments are invalid
CStatus GetStateValue ( siXGSStateType  in_eType,
void *  in_lStateHandle,
void *  out_pStateValue 
) const

Returns the specified state's value.

Parameters:
in_eTypeThe state type to get (one of the siXGSStateType values)
in_lStateHandleThe handle to the state
Return values:
out_pStateValuePointer to the state value
Returns:
CStatus::OK on success
CStatus::Fail if the arguments are invalid
CStatus SetStateValue ( siXGSStateType  in_eType,
void *  in_lStateHandle,
void *  in_pStateValue 
) const

Sets the specified state's value.

Parameters:
in_eTypeThe state type to set (one of the siXGSStateType values)
in_lStateHandleThe handle to the state
in_pStateValuePointer to the state value
Returns:
CStatus::OK on success
CStatus::Fail if the arguments are invalid
CStatus GetSceneDirtyFlag ( bool *  out_bBool) const

Indicates whether the scene has changed since the last frame.

Return values:
out_bBoolTrue if the scene has changed, false otherwise
Returns:
CStatus::OK on success
CStatus::Fail if the arguments are invalid
CStatus GetContextFlags ( LONG *  out_lFlags) const

Returns a flag that indicates the context in which the rendering is occuring.

Return values:
out_lFlagsThe context flags. These are bitwise flags of siXGSContextFlag values
Returns:
CStatus::OK on success
CStatus::Fail if the arguments are invalid
See also:
siXGSContextFlag
Since:
4.2
CValueArray GetFramebufferInfo ( ) const

Returns a list of values describing active framebuffers. The first element in the array is the number of framebuffers. The second element is the number of values provided for each framebuffer in the array. So the size of the array is 2 + (number of values provided * number of active framebuffers).

Note:
CValueArray is empty if called while not in hardware rendering mode.
Returns:
Each framebuffer is represented in the array by the following values ordered as indicated:
See also:
siXGSContextFlag
Since:
9.0 (2011)
CStatus PutFramebufferData ( UINT  in_uiFramebufferIndex,
ULONG  in_ulSizeInBytes,
void *  in_pData 
) const

Writes an array of pixels to a framebuffer

Parameters:
in_uiFramebufferIndexThe index of the framebuffer
in_ulSizeInBytesThe size of the data pointed to by in_pData, in bytes
in_pDataThe pixel data
Returns:
CStatus::OK on success
CStatus::Fail if the arguments are invalid
CStatus::Unexpected Not in Hardware Rendering mode
See also:
siXGSContextFlag
Since:
9.0 (2011)
CValue GetSetting ( XSI::CString  in_name) const

Returns the value of the specified XGS setting (Hardware Rendering mode only). Possible values include:

  • tile_width Integer representing the width of the tile being rendered.
  • tile_height Integer representing the height of the tile being rendered.
  • tile_index Integer representing the zero-based index of the tile being rendered.
  • tile_origin_x Integer representing the origin of the x-coordinate for the current tile.
  • tile_origin_y Integer representing the origin of the y-coordinate for the current tile.
  • tile_count Integer representing the total number of tiles in the current frame.
  • frustum_clip_plane_left Double representing the left clipping plane of the view frustum.
  • frustum_clip_plane_right Double representing the right clipping plane of the view frustum.
  • frustum_clip_plane_bottom Double representing the bottom clipping plane of the view frustum.
  • frustum_clip_plane_top Double representing the top clipping plane of the view frustum.
  • frustum_clip_plane_near Double representing the near clipping plane of the view frustum.
  • frustum_clip_plane_far Double representing the far clipping plane of the view frustum.
  • projection_type Integer value representing the projection type. 0 = Perspective and 1 = Orthographic.
  • renderer_name XSI::CString contaning the name of the current renderer.
    Parameters:
    in_nameThe name of the setting.
    Returns:
    The value of the setting
    Since:
    9.0 (2011)
Property GetRendererProperty ( const CTime in_rTime) const

Returns the renderer's option property evaluated at a specific time. Which particular property instance this is is dependent upon the attribute value passed to the CGraphicSequencerContext.

Parameters:
in_rTimeThe time to evaluate the property at.
Returns:
The evaluated renderer option property.
Since:
9.0 (2011)
CRef GetCamera ( ) const

Returns the current camera object which is used for the current rendering

Returns:
CRef A reference to a Camera object
Since:
7.0
CStatus RegisterViewportMode ( const CString in_szName,
const siGraphicDriver  in_eAPI,
LONG  in_lFeatures 
) const

Registers a new Viewport mode

Parameters:
in_szNameThe name of the viewport
in_eAPIThe graphics driver to use for this viewport. Use siNullGraphicDriver if your viewport will handle its own rendering.
in_lFeaturesThese are bitwise flags of siViewportFeature values
Returns:
CStatus::OK if the new viewport was registered
CStatus::Fail if the registration failed
Since:
9.0 (2011)
CStatus RegisterViewportCallback ( const CString in_szName,
const LONG  in_lStateFlags,
const siDisplayCallback  in_eType,
const siGraphicDriver  in_eDriver,
const siViewMode  in_eViewMode,
const CStringArray in_szCustomViewModeList 
) const

Registers a new Viewport callback

Parameters:
in_szNameThe name of the viewport
in_lStateFlagsThe callback state flags
in_eTypeThe type of callback (see siDisplayCallback)
in_eDriverThe graphics driver to use for this viewport. Use siNullGraphicDriver if your viewport will handle its own rendering.
in_eViewModeThe view mode (see siViewMode)
in_szCustomViewModeListThe list of names to use for the new custom view mode
Returns:
CStatus::OK if the new viewport was registered
CStatus::Fail if the registration failed
Since:
9.0 (2011)
CRef GetGraphicDriver ( ) const

Returns the current graphic driver

Returns:
A reference to the current graphic driver
Since:
9.0 (2011)
CStatus GetViewportSize ( UINT &  out_uiStartX,
UINT &  out_uiStartY,
UINT &  out_Width,
UINT &  out_Height 
) const

Returns the size of the current viewport

Return values:
out_uiStartXleftmost position in X (horizontal start position)
out_uiStartYrightmost position in Y (vertical start position)
out_Widthwidth of viewport
out_Heightheight of viewport
Returns:
Success/failure
Since:
9.0 (2011)
bool IsPlayback ( )

Returns true if the scene is currently in playback mode

Returns:
true if the scene is in playback mode
false otherwise
Since:
9.0 (2011)

The documentation for this class was generated from the following file: