00001 //***************************************************************************** 00011 //***************************************************************************** 00012 00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER) 00014 #pragma once 00015 #endif 00016 00017 #ifndef __XSIHARDWAREATTRIBUTE_H__ 00018 #define __XSIHARDWAREATTRIBUTE_H__ 00019 00020 #include "sicppsdk.h" 00021 #include "xsi_ref.h" 00022 #include "xsi_value.h" 00023 #include "xsi_string.h" 00024 00025 namespace XSI { 00026 00027 class CHardwareAttributeArray; 00028 00029 //***************************************************************************** 00040 //***************************************************************************** 00041 00042 class SICPPSDKDECL CHardwareAttribute 00043 { 00044 public: 00045 00047 CHardwareAttribute(); 00048 00050 virtual ~CHardwareAttribute(); 00051 00055 CHardwareAttribute(const CHardwareAttribute& valSrc); 00056 00060 CHardwareAttribute& operator=(const CHardwareAttribute& valSrc); 00061 00065 bool operator==(const CHardwareAttribute& valSrc) const; 00066 00070 bool operator!=(const CHardwareAttribute& valSrc) const; 00071 00076 CStatus PutSemanticValue ( const siHardwareInputSemantic inSemantic, const CValue& valSrc); 00077 00080 XSI::siHardwareInputSemantic GetSemantic() const; 00081 00084 XSI::CValue GetSemanticValue () const; 00085 00088 CStatus SetAttributeData (XSI::CValue in_data, XSI::siShaderParameterType in_type, ULONG in_ulArraySize ); 00089 00092 XSI::CValue GetAttributeData (); 00093 00096 XSI::siShaderParameterType GetAttributeType (); 00097 00100 ULONG GetAttributeArraySize(); 00101 00102 void* m_pImpl; 00103 00104 }; 00105 00106 //************************************************************************* 00115 //************************************************************************* 00116 class SICPPSDKDECL CHardwareAttributeArray 00117 { 00118 public: 00122 CHardwareAttributeArray(LONG in_size=0); 00123 00127 CHardwareAttributeArray(const CHardwareAttributeArray& in_array); 00128 00130 ~CHardwareAttributeArray(); 00131 00136 CHardwareAttributeArray& operator=( const CHardwareAttributeArray& in_array ); 00137 00141 LONG GetCount() const; 00142 00147 CStatus Add( const CHardwareAttribute& in_item ); 00148 00152 CStatus Clear(); 00153 00160 CStatus Resize( LONG in_size); 00161 00168 const CHardwareAttribute& operator[]( LONG in_index ) const; 00169 00175 CHardwareAttribute& operator[]( LONG in_index ); 00176 00182 bool operator==(const CHardwareAttributeArray& in_array) const; 00183 00189 bool operator!=(const CHardwareAttributeArray& in_array) const; 00190 00191 00192 private: 00193 00194 void* m_ptr; 00195 }; 00196 00197 00198 }; 00199 00200 #endif // __XSIHARDWAREATTRIBUTE_H__