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__