00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _XSISHADERCOMPOUNDPORT_H 00015 #define _XSISHADERCOMPOUNDPORT_H 00016 00017 #include "Template.h" 00018 00019 class CSLXSIShader; 00020 00026 class XSIEXPORT CSLXSIShaderCompoundPort 00027 : public CSLTemplate 00028 { 00029 public: 00031 enum EPortType 00032 { 00033 SI_INPUT_PORT, 00034 SI_OUTPUT_PORT, 00035 }; 00036 00042 CSLXSIShaderCompoundPort(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate); 00043 00045 virtual ~CSLXSIShaderCompoundPort(); 00046 00050 SI_Error Synchronize(); 00051 00055 ETemplateType Type(){ return XSI_SHADER_COMPOUND_PORT; } 00056 00060 EPortType GetPortType(); 00061 00065 SI_Void SetPortType( EPortType in_eValue ); 00066 00070 SI_Char* GetDisplayName(); 00071 00075 SI_Void SetDisplayName( SI_Char* in_pValue ); 00076 00080 SI_Char* GetPPGMinValue(); 00081 00085 SI_Void SetPPGMinValue( SI_Char* in_pValue ); 00086 00090 SI_Char* GetPPGMaxValue(); 00091 00095 SI_Void SetPPGMaxValue( SI_Char* in_pValue ); 00096 00100 SI_Char* GetPPGEnumValues(); 00101 00105 SI_Void SetPPGEnumValues( SI_Char* in_pValue ); 00106 00110 SI_Bool GetPPGLayoutVisible(); 00111 00115 SI_Void SetPPGLayoutVisible ( SI_Bool in_nValue ); 00116 00120 SI_Char* GetPPGLayoutGroup(); 00121 00125 SI_Void SetPPGLayoutGroup( SI_Char* in_pValue ); 00126 00130 SI_Char* GetPPGLayoutTab(); 00131 00135 SI_Void SetPPGLayoutTab( SI_Char* in_pValue ); 00136 00140 SI_Bool GetRTLayoutVisible(); 00141 00145 SI_Void SetRTLayoutVisible( SI_Bool in_pValue ); 00146 00150 SI_Char* GetRTLayoutGroup (); 00151 00155 SI_Void SetRTLayoutGroup ( SI_Char* in_pValue ); 00156 00160 CSLXSIShader* GetSourceShader (); 00161 00165 SI_Void SetSourceShader ( CSLXSIShader* in_pSourceShader ); 00166 00167 CSLEnumProxy<EPortType, SI_OUTPUT_PORT>* GetPortTypeProxy() { return &m_PortType; }; 00168 CSLStringProxy* GetDisplayNameProxy() { return &m_DisplayName; }; 00169 CSLStringProxy* GetPPGMinValueProxy() { return &m_PPGMinValue; }; 00170 CSLStringProxy* GetPPGMaxValueProxy() { return &m_PPGMaxValue; }; 00171 CSLStringProxy* GetPPGEnumValuesProxy() { return &m_PPGEnumValues; }; 00172 CSLBoolProxy* GetPPGLayoutVisibleProxy() { return &m_PPGLayoutVisible; }; 00173 CSLStringProxy* GetPPGLayoutGroupProxy() { return &m_PPGLayoutGroup; }; 00174 CSLStringProxy* GetPPGLayoutTabProxy() { return &m_PPGLayoutTab; }; 00175 CSLBoolProxy* GetRTLayoutVisibleProxy() { return &m_RTLayoutVisible; }; 00176 CSLStringProxy* GetRTLayoutGroupProxy() { return &m_RTLayoutGroup; }; 00177 00178 private: 00179 CSLEnumProxy<EPortType, SI_OUTPUT_PORT> m_PortType; 00180 CSLStringProxy m_DisplayName; 00181 CSLStringProxy m_PPGMinValue; 00182 CSLStringProxy m_PPGMaxValue; 00183 CSLStringProxy m_PPGEnumValues; 00184 CSLBoolProxy m_PPGLayoutVisible; 00185 CSLStringProxy m_PPGLayoutGroup; 00186 CSLStringProxy m_PPGLayoutTab; 00187 CSLBoolProxy m_RTLayoutVisible; 00188 CSLStringProxy m_RTLayoutGroup; 00189 CSLXSIShader* m_pSourceShader; 00190 00191 SI_Void *m_pReserved; 00192 }; 00193 00194 #endif