xsi_graphicsequencer.h
Go to the documentation of this file.
00001 //*****************************************************************************
00011 //*****************************************************************************
00012 
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016 
00017 #ifndef __XSIXSIGRAPHICSEQUENCER_H__
00018 #define __XSIXSIGRAPHICSEQUENCER_H__
00019 
00020 #include <xsi_decl.h>
00021 #include <xsi_status.h>
00022 #include <xsi_ref.h>
00023 #include <xsi_material.h>
00024 #include <xsi_graphicdriver.h>
00025 #include <xsi_time.h>
00026 #include <xsi_camera.h>
00027 
00028 namespace XSI {
00029 
00030 class RendererContext;
00031 class Renderer;
00032 
00033 //*****************************************************************************
00043 //*****************************************************************************
00044 
00045 class SICPPSDKDECL CGraphicSequencer
00046 {
00047 public:
00049     CGraphicSequencer();
00050 
00052     ~CGraphicSequencer();
00053 
00064     CStatus RegisterDisplayCallback  (  const CString&          in_szName,
00065                                         const LONG              in_lStateFlags,
00066                                         const siDisplayCallback in_eType,
00067                                         const siViewMode        in_eViewMode,
00068                                         const CString&          in_szCustomViewModeName) const;
00069 
00080     CStatus RegisterPassCallback    (   const CString&          in_szPassName,
00081                                         const LONG              in_lStateFlags,
00082                                         const LONG              in_lPassFlags,
00083                                         const CString&          in_szRelativePassName ) const;
00084 
00092     CStatus RenderSceneUsingMode        ( const siViewMode in_eViewMode, INT in_lRenderFlags) const;
00093 
00101     CStatus RenderSceneUsingMaterial    ( const CString&    in_szShaderName, INT in_lRenderFlags ) const;
00102 
00109     CStatus RenderListUsingMode     ( const CRefArray&  in_pObjectList,
00110                                           const siViewMode in_eViewMode ) const;
00111 
00118     CStatus RenderListUsingMaterial     ( const CRefArray&  in_pObjectList,
00119                                           const CString&    in_szShaderName ) const;
00120 
00127     CStatus GetNbStates     ( siXGSStateType in_eType, INT *out_pNbStates) const;
00128 
00135     CStatus DeleteState     ( siXGSStateType in_eType, const CString&   in_pID ) const;
00136 
00145     CStatus CreateState     ( siXGSStateType in_eType, const CString&   in_pID, void* in_pValuePtr, void** out_pStateHandle) const;
00146 
00154     CStatus GetStateHandle  ( siXGSStateType in_eType, const CString&   in_pID, void** out_pStateHandle) const;
00155 
00163     CStatus GetStateValue   ( siXGSStateType in_eType, void* in_lStateHandle, void* out_pStateValue) const;
00164 
00172     CStatus SetStateValue   ( siXGSStateType in_eType, void* in_lStateHandle, void* in_pStateValue) const;
00173 
00179     CStatus GetSceneDirtyFlag   ( bool* out_bBool ) const;
00180 
00188     CStatus GetContextFlags ( LONG* out_lFlags ) const;
00189 
00204     CValueArray GetFramebufferInfo ( ) const;
00205 
00216     CStatus PutFramebufferData( UINT in_uiFramebufferIndex,
00217                                         ULONG in_ulSizeInBytes,
00218                                         void* in_pData) const;
00219 
00239     CValue GetSetting ( XSI::CString in_name ) const;
00240 
00247     Property GetRendererProperty(const CTime &in_rTime) const;
00248 
00253     CRef    GetCamera       () const;
00254 
00264     CStatus RegisterViewportMode      ( const CString&          in_szName,
00265                                         const siGraphicDriver   in_eAPI,
00266                                         LONG    in_lFeatures
00267                                         ) const;
00268 
00281     CStatus RegisterViewportCallback  ( const CString&          in_szName,
00282                                         const LONG              in_lStateFlags,
00283                                         const siDisplayCallback in_eType,
00284                                         const siGraphicDriver   in_eDriver,
00285                                         const siViewMode        in_eViewMode,
00286                                         const CStringArray&     in_szCustomViewModeList
00287                                         ) const;
00288 
00293     CRef GetGraphicDriver  () const;
00294 
00303     CStatus GetViewportSize  (UINT& out_uiStartX, UINT& out_uiStartY, UINT& out_Width, UINT& out_Height) const;
00304 
00310     bool    IsPlayback();
00311 
00312 private:
00313 
00314     CGraphicSequencer * operator&() const;
00315     CGraphicSequencer * operator&();
00316 
00317     void*   m_pImpl;
00318 };
00319 
00320 }
00321 
00322 #endif // __XSIXSIGRAPHICSEQUENCER_H__