xsi_graphicsequencer.h Source File
 
 
 
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__