00001 //***************************************************************************** 00011 //***************************************************************************** 00012 00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER) 00014 #pragma once 00015 #endif 00016 00017 #ifndef __XSISHADERDEF_H__ 00018 #define __XSISHADERDEF_H__ 00019 00020 #include <xsi_valuemap.h> 00021 #include <xsi_metashaderrendererdef.h> 00022 #include <xsi_shaderballoptions.h> 00023 #include <xsi_shaderparamdefcontainer.h> 00024 #include <xsi_siobject.h> 00025 #include <xsi_ppglayout.h> 00026 00027 namespace XSI { 00028 00029 //***************************************************************************** 00057 //***************************************************************************** 00058 class SICPPSDKDECL ShaderDef : public SIObject 00059 { 00060 public: 00064 ShaderDef(); 00065 00069 ~ShaderDef(); 00070 00075 ShaderDef(const CRef& in_ref); 00076 00081 ShaderDef(const ShaderDef& in_obj); 00082 00088 bool IsA( siClassID in_ClassID) const; 00089 00094 siClassID GetClassID() const; 00095 00102 ShaderDef& operator=(const ShaderDef& in_obj); 00103 00110 ShaderDef& operator=(const CRef& in_ref); 00111 00112 00125 MetaShaderRendererDef AddRendererDef( const CString& in_renderer ); 00126 00132 ValueMap GetAttributes( ) const; 00133 00143 CString GetCategory( ) const; 00144 00157 CStatus PutCategory( const CString& in_category ); 00158 00169 CString GetDefinitionPath( ) const; 00170 00183 CStatus PutDefinitionPath( const CString& in_path ); 00184 00193 CString GetDisplayName( ) const; 00194 00203 CStatus PutDisplayName( const CString& in_name ); 00204 00214 MetaShaderRendererDef GetRendererDefByName( const CString& in_renderer ) const; 00215 00224 ShaderParamDefContainer GetInputParamDefs( ) const; 00225 00234 ShaderParamDefContainer GetOutputParamDefs( ) const; 00235 00245 bool GetParsed( ) const; 00246 00257 CStatus PutParsed( bool in_parsed ); 00258 00270 CString GetParser( ) const; 00271 00286 CStatus PutParser( const CString& in_parser ); 00287 00301 bool GetParserBased( ) const; 00302 00312 CString GetPlugin( ) const; 00313 00325 CStatus PutPlugin( const CString& in_plugin ); 00326 00338 bool GetPluginBased( ) const; 00339 00346 CString GetPluginFilename( ) const; 00347 00362 CString GetProgID( ) const; 00363 00370 CStatus RemoveRendererDef( const MetaShaderRendererDef& in_rendererdef ); 00371 00378 CRefArray GetRendererDefs( ) const; 00379 00385 ULONG GetShaderInstanceCount( ) const; 00386 00392 CRefArray GetShaderInstances( ) const; 00393 00398 ShaderballOptions GetShaderballOptions( ) const; 00399 00421 CStatus AddShaderFamily( const CString& in_type, bool in_bPrimary = false ); 00422 00432 bool IsShaderFamily( const CString& in_type ) const; 00433 00441 CString GetPrimaryShaderFamily( ); 00442 00450 CStringArray GetShaderFamilies() const; 00451 00458 PPGLayout GetPPGLayout() const; 00459 00467 PPGLayout GetRenderTreeLayout() const; 00468 00469 private: 00470 ShaderDef * operator&() const; 00471 ShaderDef * operator&(); 00472 }; 00473 00474 }; 00475 00476 #endif 00477