xsi_shaderdef.h Source File
 
 
 
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