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__