############
RenderShader
############

.. cpp:namespace:: RED::RenderShader

.. default-domain:: cpp

Functions
=========

===================================== =================================================================================================================================================================================================================================================================================
:doc:`classRED_1_1CID`                :cpp:func:`GetClassID <static RED::CID RED::RenderShader::GetClassID()>`                                                                                                                                                                                                         
unsigned int                          :cpp:func:`GetChunkSignature <static unsigned int RED::RenderShader::GetChunkSignature()>`                                                                                                                                                                                       
:cpp:enumerator:`~RED_RC`             :cpp:func:`Interpret <static RED_RC RED::RenderShader::Interpret(RED::IReferenceManager *iReferenceManager, RED::IStream *iStream, const RED::StreamingPolicy &iPolicy, unsigned int iChunkSignature, RED::uint64 iChunkSize, RED::Object **oResult, const RED::State &iState)>` 
:cpp:enumerator:`~RED_RC`             :cpp:func:`FakeColorWithImage <static RED_RC RED::RenderShader::FakeColorWithImage(RED::Object *&oImage, const RED::Color &iColor, RED::Object *iResourceManager)>`                                                                                                              
int                                   :cpp:func:`VertexProgramSelection <static int RED::RenderShader::VertexProgramSelection(int iNbInputs, RED::MESH_CHANNEL iUV[7], const RED::Object *iTexture[7], const RED::Matrix *iTransform[7])>`                                                                             
int                                   :cpp:func:`CompositeTextureSelection <static int RED::RenderShader::CompositeTextureSelection(int iNbInputs, const RED::Object *iTexture[16])>`                                                                                                                                  
:cpp:enumerator:`~RED::MESH_CHANNEL`  :cpp:func:`SelectSingleUV <static RED::MESH_CHANNEL RED::RenderShader::SelectSingleUV(int iNbInputs, RED::MESH_CHANNEL iUV[16], const RED::Object *iTexture[16])>`                                                                                                               
void *                                :cpp:func:`As <virtual void * RED::RenderShader::As(const RED::CID &iCID)>`                                                                                                                                                                                                      
const void *                          :cpp:func:`As <virtual const void * RED::RenderShader::As(const RED::CID &iCID) const>`                                                                                                                                                                                          
class T_As                            :cpp:func:`As <T_As * RED::RenderShader::As()>`                                                                                                                                                                                                                                  
class T_As                            :cpp:func:`As <const T_As * RED::RenderShader::As() const>`                                                                                                                                                                                                                      
..                                    :cpp:func:`RenderShader <RED::RenderShader::RenderShader>`                                                                                                                                                                                                                       
:doc:`classRED_1_1Shader` *           :cpp:func:`Clone <virtual RED::Shader * RED::RenderShader::Clone() const>`                                                                                                                                                                                                       
..                                    :cpp:func:`~RenderShader <virtual RED::RenderShader::~RenderShader>`                                                                                                                                                                                                             
:cpp:enumerator:`~RED_RC`             :cpp:func:`operator= <RED_RC RED::RenderShader::operator=(const RenderShader &iSrc)>`                                                                                                                                                                                            
void                                  :cpp:func:`Reset <void RED::RenderShader::Reset()>`                                                                                                                                                                                                                              
void                                  :cpp:func:`ResetPlatform <void RED::RenderShader::ResetPlatform(RED::HARDWARE_PLATFORM iPlatformId)>`                                                                                                                                                                            
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetVertexProgramId <virtual RED_RC RED::RenderShader::SetVertexProgramId(const RED::ShaderProgramID &iVshProgramID, int iShaderTarget, RED::Object *iResourceManager, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC)>`                                           
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetVertexProgramId <RED_RC RED::RenderShader::GetVertexProgramId(RED::ShaderProgramID &oProgram, int iShaderTarget, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC) const>`                                                                                       
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetVertexProgramId <RED_RC RED::RenderShader::GetVertexProgramId(RED::Vector< RED::ShaderProgramID > &oProgramList, RED::Vector< RED::HARDWARE_PLATFORM > &oPlatformList, RED::Vector< int > &oTargetList) const>`                                                    
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetGeometryProgramId <virtual RED_RC RED::RenderShader::SetGeometryProgramId(const RED::ShaderProgramID &iGshProgramID, int iShaderTarget, RED::Object *iResourceManager, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC)>`                                       
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetGeometryProgramId <RED_RC RED::RenderShader::GetGeometryProgramId(RED::ShaderProgramID &oProgram, int iShaderTarget, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC) const>`                                                                                   
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetGeometryProgramId <RED_RC RED::RenderShader::GetGeometryProgramId(RED::Vector< RED::ShaderProgramID > &oProgramList, RED::Vector< RED::HARDWARE_PLATFORM > &oPlatformList, RED::Vector< int > &oTargetList) const>`                                                
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetPixelProgramId <virtual RED_RC RED::RenderShader::SetPixelProgramId(const RED::ShaderProgramID &iPshProgramId, int iShaderTarget, RED::Object *iResourceManager, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC)>`                                             
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetPixelProgramId <RED_RC RED::RenderShader::GetPixelProgramId(RED::ShaderProgramID &oProgram, int iShaderTarget, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC) const>`                                                                                         
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetPixelProgramId <RED_RC RED::RenderShader::GetPixelProgramId(RED::Vector< RED::ShaderProgramID > &oProgramList, RED::Vector< RED::HARDWARE_PLATFORM > &oPlatformList, RED::Vector< int > &oTargetList) const>`                                                      
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetRenderCode <virtual RED_RC RED::RenderShader::SetRenderCode(const RED::RenderCode &iRenderCode, int iShaderTarget, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC)>`                                                                                           
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetRenderCode <RED_RC RED::RenderShader::GetRenderCode(RED::RenderCode **oRenderCode, int iShaderTarget, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC) const>`                                                                                                  
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetRenderCode <RED_RC RED::RenderShader::GetRenderCode(RED::Vector< RED::RenderCode * > &oCodeList, RED::Vector< RED::HARDWARE_PLATFORM > &oPlatformList, RED::Vector< int > &oTargetList) const>`                                                                    
:cpp:enumerator:`~RED_RC`             :cpp:func:`AddParameter <virtual RED_RC RED::RenderShader::AddParameter(const RED::RenderShaderParameter &iParam, int iShaderTarget, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC)>`                                                                                       
:cpp:enumerator:`~RED_RC`             :cpp:func:`RemoveParameterFromPlatform <virtual RED_RC RED::RenderShader::RemoveParameterFromPlatform(const RED::String &iName, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC)>`                                                                                            
:cpp:enumerator:`~RED_RC`             :cpp:func:`RemoveParameter <virtual RED_RC RED::RenderShader::RemoveParameter(const RED::String &iName)>`                                                                                                                                                                        
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetParameter <virtual RED_RC RED::RenderShader::GetParameter(RED::RenderShaderParameter *&oParam, const RED::String &iName, int iShaderTarget, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC) const>`                                                            
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetParameter <RED_RC RED::RenderShader::GetParameter(RED::Vector< RED::RenderShaderParameter * > &oParamList, RED::Vector< RED::HARDWARE_PLATFORM > &oPlatformList, RED::Vector< int > &oTargetList, const RED::String &iName) const>`                                
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetParameter <RED_RC RED::RenderShader::GetParameter(RED::Vector< RED::RenderShaderParameter * > &oParamList, const RED::String &iName) const>`                                                                                                                       
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetParameters <RED_RC RED::RenderShader::GetParameters(RED::Vector< RED::RenderShaderParameter * > &ioParamList, int iShaderTargets=(0xffffffff), RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC) const>`                                                         
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetParameters <RED_RC RED::RenderShader::GetParameters(RED::Vector< RED::RenderShaderParameter * > &ioParamList, RED::RenderShaderParameter::TYPE iType, int iShaderTargets=(0xffffffff), RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC) const>`                 
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetPlatformsCount <RED_RC RED::RenderShader::GetPlatformsCount(int &oCount) const>`                                                                                                                                                                                   
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetPlatformList <RED_RC RED::RenderShader::GetPlatformList(RED::Vector< RED::HARDWARE_PLATFORM > &oPlatformList) const>`                                                                                                                                              
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetShaderTargets <RED_RC RED::RenderShader::GetShaderTargets(RED::Vector< int > &oTargets, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC) const>`                                                                                                                
:cpp:enumerator:`~RED_RC`             :cpp:func:`BindLight <RED_RC RED::RenderShader::BindLight(int iChannel, bool iSpecular, bool iBump, bool iDirect, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC)>`                                                                                                          
:cpp:enumerator:`~RED_RC`             :cpp:func:`BindRayVsTriangle <RED_RC RED::RenderShader::BindRayVsTriangle(int iTarget, RED::HARDWARE_PLATFORM iPlatformId=RED::HW_GENERIC)>`                                                                                                                                     
:cpp:enumerator:`~RED_RC`             :cpp:func:`UpdateFrom <virtual RED_RC RED::RenderShader::UpdateFrom(const RED::Object &iShader, const RED::State &iState, int iSrcStateNumber)>`                                                                                                                                 
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetOperationStream <virtual RED_RC RED::RenderShader::GetOperationStream(const RED::Object *iCaller, RED::Vector< int > &ioStream, RED::HARDWARE_PLATFORM iPlatformId) const>`                                                                                        
:cpp:enumerator:`~RED_RC`             :cpp:func:`Solve <RED_RC RED::RenderShader::Solve(RED::IReferenceManager *iReferenceManager, const RED::State &iState)>`                                                                                                                                                         
:cpp:enumerator:`~RED_RC`             :cpp:func:`Save <virtual RED_RC RED::RenderShader::Save(RED::IStream *iStream, StreamingPolicy &iPolicy, int iState=-1) const>`                                                                                                                                                  
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetInputParameter <RED_RC RED::RenderShader::SetInputParameter(RED::MATERIAL_PASS iParameter, const RED::String &iName, RED::Object *iResMgr, bool iEvaluate=true)>`                                                                                                  
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetInputParameter <RED_RC RED::RenderShader::SetInputParameter(const RED::Color &iParameter, const RED::String &iName, RED::Object *iResMgr, bool iEvaluate=true)>`                                                                                                   
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetInputParameter <RED_RC RED::RenderShader::SetInputParameter(const RED::Vector4 &iParameter, const RED::String &iName, RED::Object *iResMgr, bool iEvaluate=true)>`                                                                                                 
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetInputParameter <RED_RC RED::RenderShader::SetInputParameter(const RED::Object *iParameter, const RED::String &iName, RED::Object *iResMgr, bool iEvaluate=true)>`                                                                                                  
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetInputParameter <RED_RC RED::RenderShader::SetInputParameter(const RED::Matrix &iParameter, const RED::String &iName, RED::Object *iResMgr, bool iEvaluate=true)>`                                                                                                  
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetInputParameter <RED_RC RED::RenderShader::SetInputParameter(RED::MESH_CHANNEL iParameter, const RED::String &iName, RED::Object *iResMgr, bool iEvaluate=true)>`                                                                                                   
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetInputParameter <RED_RC RED::RenderShader::SetInputParameter(double iParameter, const RED::String &iName, RED::Object *iResMgr, bool iEvaluate=true)>`                                                                                                              
:cpp:enumerator:`~RED_RC`             :cpp:func:`SetInputParameter <RED_RC RED::RenderShader::SetInputParameter(bool iParameter, const RED::String &iName, RED::Object *iResMgr, bool iEvaluate=true)>`                                                                                                                
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetInputParameter <RED_RC RED::RenderShader::GetInputParameter(RED::MATERIAL_PASS &oParameter, const RED::String &iName) const>`                                                                                                                                      
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetInputParameter <RED_RC RED::RenderShader::GetInputParameter(RED::Color &oParameter, const RED::String &iName) const>`                                                                                                                                              
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetInputParameter <RED_RC RED::RenderShader::GetInputParameter(RED::Vector4 &oParameter, const RED::String &iName) const>`                                                                                                                                            
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetInputParameter <RED_RC RED::RenderShader::GetInputParameter(RED::Object *&oParameter, const RED::String &iName) const>`                                                                                                                                            
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetInputParameter <RED_RC RED::RenderShader::GetInputParameter(RED::Matrix &oParameter, const RED::String &iName) const>`                                                                                                                                             
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetInputParameter <RED_RC RED::RenderShader::GetInputParameter(RED::MESH_CHANNEL &oParameter, const RED::String &iName) const>`                                                                                                                                       
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetInputParameter <RED_RC RED::RenderShader::GetInputParameter(double &oParameter, const RED::String &iName) const>`                                                                                                                                                  
:cpp:enumerator:`~RED_RC`             :cpp:func:`GetInputParameter <RED_RC RED::RenderShader::GetInputParameter(bool &oParameter, const RED::String &iName) const>`                                                                                                                                                    
bool                                  :cpp:func:`IsInputParameter <bool RED::RenderShader::IsInputParameter(const RED::String &iName) const>`                                                                                                                                                                          
:cpp:enumerator:`~RED_RC`             :cpp:func:`EvaluateFromInputParameters <RED_RC RED::RenderShader::EvaluateFromInputParameters(RED::Object *iResMgr)>`                                                                                                                                                            
int                                   :cpp:func:`GetInputParametersCount <int RED::RenderShader::GetInputParametersCount() const>`                                                                                                                                                                                     
===================================== =================================================================================================================================================================================================================================================================================

.. cpp:namespace:: nullptr

Detailed Description
====================

.. doxygenclass:: RED::RenderShader
   :project: RED
   :members:
   :undoc-members:



