xsi_hardwaresurface.h
Go to the documentation of this file.
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