00001 //***************************************************************************** 00011 //***************************************************************************** 00012 00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER) 00014 #pragma once 00015 #endif 00016 00017 #ifndef __XSIHARDWARESURFACE_H__ 00018 #define __XSIHARDWARESURFACE_H__ 00019 00020 #include <xsi_siobject.h> 00021 00022 namespace XSI { 00023 00024 class ImageClip2 ; 00025 00026 //***************************************************************************** 00033 //***************************************************************************** 00034 class SICPPSDKDECL HardwareSurface : public SIObject 00035 { 00036 public: 00038 HardwareSurface(); 00039 00041 ~HardwareSurface(); 00042 00046 HardwareSurface(const CRef& in_ref); 00047 00051 HardwareSurface(const HardwareSurface& in_obj); 00052 00057 bool IsA( siClassID in_ClassID) const; 00058 00062 siClassID GetClassID() const; 00063 00069 HardwareSurface& operator=(const HardwareSurface& in_obj); 00070 00076 HardwareSurface& operator=(const CRef& in_ref); 00077 00083 void* GetInterface(); 00084 00085 //************************************************************************* 00092 //************************************************************************* 00093 00094 class SICPPSDKDECL Options 00095 { 00096 public: 00097 friend class HardwareSurface; 00098 friend class HardwareShaderContext; 00099 friend class ImageClip2; 00100 00102 Options(); 00103 00105 ~Options(); 00106 00140 CStatus PutFormat( const CString& in_format ); 00141 00146 CStatus PutWidth( UINT in_nWidth ); 00147 00152 CStatus PutHeight( UINT in_nHeight ); 00153 00158 CStatus PutGraphicDriver( siGraphicDriver in_eGraphicDriver ); 00159 00164 CStatus PutSharing( siResourceSharing in_eShareCap ); 00165 00170 CStatus PutDimension( siHardwareSurfaceDimension in_eDimension ); 00171 00172 // internal 00173 CStatus PutFlags( LONG in_lFlags ); 00174 00175 protected: 00176 void* m_pImpl; 00177 }; 00178 00179 private: 00180 HardwareSurface * operator&() const; 00181 HardwareSurface * operator&(); 00182 }; 00183 00184 }; 00185 00186 #endif 00187