ShaderInstanceData.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _SHADER_INSTANCE_DATA_H
00015 #define _SHADER_INSTANCE_DATA_H
00016 
00017 #include "Template.h"
00018 
00019 class CSLVariantParameter;
00020 
00026 class XSIEXPORT CSLShaderInstanceData
00027     : public CSLTemplate
00028 {
00029 public:
00030 
00037     CSLShaderInstanceData
00038     (
00039         CSLScene* in_pScene,
00040         CSLModel *in_pModel,
00041         CdotXSITemplate* in_pTemplate
00042     );
00043 
00046     ~CSLShaderInstanceData();
00047 
00051     inline ETemplateType Type();
00052 
00056     SI_Error Synchronize();
00057 
00058     // Reference Functionality ////////////////////////////////////////////////////
00059 
00063     CSLModel* GetReference();
00064 
00068     SI_Void SetReference( CSLModel* in_pReferedModel);
00069 
00070 
00071     // Parameters Functionality ///////////////////////////////////////////////
00072 
00076     CSLVariantParameter* AddParameter();
00077 
00082     SI_Error RemoveParameter( SI_Int in_nIndex );
00083 
00088     SI_Error RemoveParameter( CSLVariantParameter* in_pToRemove );
00089 
00093     SI_Error ClearParameters();
00094 
00099     CSLVariantParameter* ConnectParameter( CSLVariantParameter* in_pToConnect );
00100 
00104     CSLVariantParameter** GetParameterList();
00105 
00109     SI_Int GetParameterCount();
00110 
00115     virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00116 
00122     CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00123 
00124 private:
00125     CSLModel *m_pReferedModel;
00126     CSIBCArray<CSLVariantParameter *> m_Parameters;
00127 
00128     SI_Void *m_pReserved;   // reserved for future extension
00129 };
00130 
00131 
00132 #endif // _SHADER_INSTANCE_DATA_H