xsi_shaderdef.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 __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