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