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