xsi_shader.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 __XSISHADER_H__
00018 #define __XSISHADER_H__
00019 
00020 #include <xsi_projectitem.h>
00021 #include <xsi_texturelayer.h>
00022 
00023 namespace XSI {
00024 
00025 class Property ;
00026 
00027 //*****************************************************************************
00153 //*****************************************************************************
00154 
00155 class SICPPSDKDECL Shader : public ProjectItem
00156 {
00157 public:
00159     Shader();
00160 
00162     ~Shader();
00163 
00167     Shader(const CRef& in_ref);
00168 
00172     Shader(const Shader& in_obj);
00173 
00179     bool IsA( siClassID in_ClassID) const;
00180 
00184     siClassID GetClassID() const;
00185 
00190     Shader& operator=(const Shader& in_obj);
00191 
00192 
00198     Shader& operator=(const CRef& in_ref);
00199 
00203     CRefArray   GetShaders() const;
00204 
00209     CRefArray   GetImageClips() const;
00210 
00219     CString     GetProgID() const;
00220 
00224     siShaderParameterType GetOutputType2() const;
00225 
00229     siShaderOutputType GetOutputType() const;
00230 
00231 
00246     CStatus GetColorParameterValue(
00247                 const CString& in_name,
00248                 float& out_red,
00249                 float& out_green,
00250                 float& out_blue,
00251                 float& out_alpha,
00252                 double in_time = DBL_MAX ) ;
00253 
00268     CStatus PutColorParameterValue(
00269                 const CString& in_name,
00270                 float in_red,
00271                 float in_green,
00272                 float in_blue,
00273                 float in_alpha = 1.0f,
00274                 double in_time = DBL_MAX ) ;
00275 
00276     //
00277     // Texture layering methods -- same as in Material.
00278     //
00279 
00289     TextureLayer    CreateTextureLayer( const CString& in_strName = CString(), bool in_bAfter = true, const TextureLayer& in_refLayer = TextureLayer() );
00290 
00302     CStatus         AddSharedTextureLayer( const TextureLayer& in_layer, bool in_bAfter = true, const TextureLayer& in_refLayer = TextureLayer() );
00303 
00308     CRefArray       GetTextureLayers() const;
00309 
00317     CStatus         RemoveTextureLayer( const TextureLayer& in_layer );
00318 
00319 
00325     bool HasRenderer( const CString &in_strRenderer ) const;
00326 
00334     CValue GetRendererOption(
00335         const CString   &in_strRenderer,
00336         const CString   &in_strOption
00337         ) const;
00338 
00345     CString GetSymbolName(
00346         const CString   &in_strRenderer
00347         ) const;
00348 
00355     CString GetCodePath(
00356         const CString   &in_strRenderer
00357         ) const;
00358 
00364     CString GetCodeText(
00365         const CString   &in_strRenderer
00366         ) const;
00367 
00377     Property    AddProperty
00378     (
00379         const CString&  in_preset,
00380         bool            in_bBranch = false ,
00381         const CString&  in_name = CString()
00382     );
00383 
00389     CRefArray GetProperties() const ;
00390 
00399     siShaderParameterType GetShaderInputType(const CString& in_scriptname) const;
00400 
00406     CString GetPortDisplayName( const CString &in_portScriptName ) const;
00407 
00414     CStatus PutPortDisplayName( const CString &in_portScriptName, const CString &in_displayName );
00415 
00420     CRef GetRoot(void) const;
00421 
00426     siShaderType GetShaderType() const;
00427 
00439     siShaderParameterType GetShaderParameterType( const CString& in_paramscriptname, bool& out_input ) const;
00440 
00447     CRefArray   GetAllShaders() const;
00448 
00455     CRef        GetShaderContainer() const;
00456 
00463     CRefArray GetShaderParameterTargets( const CString& in_paramscriptname ) const;
00464 
00472     CRefArray   GetAllImageClips() const;
00473 
00478     CRef    GetShaderDef() const;
00479 
00480     private:
00481     Shader * operator&() const;
00482     Shader * operator&();
00483 };
00484 
00485 };
00486 
00487 #endif // __XSISHADER_H__