############
ShaderString
############

.. cpp:namespace:: RED::ShaderString

.. default-domain:: cpp

Functions
=========

========================== ==================================================================================================================================================================================================================================
:doc:`classRED_1_1CID`     :cpp:func:`GetClassID <static RED::CID RED::ShaderString::GetClassID()>`                                                                                                                                                          
void *                     :cpp:func:`As <virtual void * RED::ShaderString::As(const RED::CID &iCID)>`                                                                                                                                                       
const void *               :cpp:func:`As <virtual const void * RED::ShaderString::As(const RED::CID &iCID) const>`                                                                                                                                           
class T_As                 :cpp:func:`As <T_As * RED::ShaderString::As()>`                                                                                                                                                                                   
class T_As                 :cpp:func:`As <const T_As * RED::ShaderString::As() const>`                                                                                                                                                                       
..                         :cpp:func:`ShaderString <RED::ShaderString::ShaderString>`                                                                                                                                                                        
..                         :cpp:func:`~ShaderString <virtual RED::ShaderString::~ShaderString>`                                                                                                                                                              
:cpp:enumerator:`~RED_RC`  :cpp:func:`VertexShaderStart <RED_RC RED::ShaderString::VertexShaderStart()>`                                                                                                                                                     
:cpp:enumerator:`~RED_RC`  :cpp:func:`PixelShaderStart <RED_RC RED::ShaderString::PixelShaderStart()>`                                                                                                                                                       
:cpp:enumerator:`~RED_RC`  :cpp:func:`SoftShaderStart <RED_RC RED::ShaderString::SoftShaderStart(const RED::String &iLibrary, const RED::String &iLabel, const RED::Version &iVersion)>`                                                                     
:cpp:enumerator:`~RED_RC`  :cpp:func:`GeometryShaderStart <RED_RC RED::ShaderString::GeometryShaderStart(const RED::String &iLibrary, const RED::String &iLabel, const RED::Version &iVersion)>`                                                             
:cpp:enumerator:`~RED_RC`  :cpp:func:`SoftShaderStart <RED_RC RED::ShaderString::SoftShaderStart(unsigned int iShaderClass)>`                                                                                                                                
:cpp:enumerator:`~RED_RC`  :cpp:func:`ShaderEnd <RED_RC RED::ShaderString::ShaderEnd()>`                                                                                                                                                                     
:cpp:enumerator:`~RED_RC`  :cpp:func:`Temp <RED_RC RED::ShaderString::Temp(const char *iName)>`                                                                                                                                                              
:cpp:enumerator:`~RED_RC`  :cpp:func:`Param <RED_RC RED::ShaderString::Param(const char *iName, int iLocal)>`                                                                                                                                                
void                       :cpp:func:`ChannelAsParam <void RED::ShaderString::ChannelAsParam(const char *iName0, const char *iName1, const char *iName2, int iLocal)>`                                                                                       
void                       :cpp:func:`ChannelAsParamWithMatrix <void RED::ShaderString::ChannelAsParamWithMatrix(const char *oUV, const char *iTUV, int iLocalBind, int iTransformBind=-1)>`                                                                 
void                       :cpp:func:`Alias <void RED::ShaderString::Alias(const char *iAlias, const char *iParam)>`                                                                                                                                         
void                       :cpp:func:`Attrib <void RED::ShaderString::Attrib(const char *iAttrib, const char *iParam)>`                                                                                                                                      
void                       :cpp:func:`VertexTransform <void RED::ShaderString::VertexTransform(const char *oR, const char *iM, const char *iV)>`                                                                                                             
void                       :cpp:func:`VertexTransform <void RED::ShaderString::VertexTransform(const char *oR, int iN, const char *iV)>`                                                                                                                     
void                       :cpp:func:`VertexTransform <void RED::ShaderString::VertexTransform(const char *oR, const char *iM0, const char *iM1, const char *iM2, const char *iM3, const char *iV)>`                                                         
void                       :cpp:func:`VertexTransform3x4 <void RED::ShaderString::VertexTransform3x4(const char *oR, const char *iM, const char *iV)>`                                                                                                       
void                       :cpp:func:`VertexHomogeneousTransform3x4 <void RED::ShaderString::VertexHomogeneousTransform3x4(const char *oR, const char *iM, const char *iV)>`                                                                                 
void                       :cpp:func:`VectorTransform <void RED::ShaderString::VectorTransform(const char *oR, const char *iM, const char *iV)>`                                                                                                             
void                       :cpp:func:`VectorTransform <void RED::ShaderString::VectorTransform(const char *oR, const char *iRow0, const char *iRow1, const char *iRow2, const char *iV)>`                                                                    
void                       :cpp:func:`VectorTransform <void RED::ShaderString::VectorTransform(const char *oR, int iN, const char *iV)>`                                                                                                                     
void                       :cpp:func:`UVTransform <void RED::ShaderString::UVTransform(const char *oRx, const char *oRy, int iN, const char *iUV)>`                                                                                                          
void                       :cpp:func:`SpotLightFalloff <void RED::ShaderString::SpotLightFalloff(const char *oDecay, const char *iLightDir, const char *iTEXs)>`                                                                                             
void                       :cpp:func:`LightAttenuation <void RED::ShaderString::LightAttenuation(const char *oRAtt, const char *iLightVector, const char *iTEXn, bool iDeclareParams=true)>`                                                                 
void                       :cpp:func:`PointLightAttenuation <void RED::ShaderString::PointLightAttenuation(const char *oRAtt, const char *oLightVector, const char *iLightVector, const char *iTEXatt, bool iDeclareParams=true)>`                           
void                       :cpp:func:`IndirectPointLightAttenuation <void RED::ShaderString::IndirectPointLightAttenuation(const char *oRAtt, const char *oLightVector, const char *iRPos, const char *iTEXatt, bool iDeclareParams=true)>`                  
void                       :cpp:func:`SpotLightAttenuation <void RED::ShaderString::SpotLightAttenuation(const char *oRAtt, const char *oLightVector, const char *iLightVector, const char *iTEXatt, const char *iTEXs, bool iDeclareParams=true)>`          
void                       :cpp:func:`IndirectSpotLightAttenuation <void RED::ShaderString::IndirectSpotLightAttenuation(const char *oRAtt, const char *oLightVector, const char *iRPos, const char *iTEXatt, const char *iTEXs, bool iDeclareParams=true)>` 
void                       :cpp:func:`DirLightAttenuation <void RED::ShaderString::DirLightAttenuation(const char *oRAtt, const char *oLightVector, const char *iTEXatt)>`                                                                                   
void                       :cpp:func:`BeamLightAttenuation <void RED::ShaderString::BeamLightAttenuation(const char *oRAtt, const char *iLightVector, const char *iProjectorUV, const char *iTEXatt, const char *iTEXr)>`                                    
void                       :cpp:func:`IndirectBeamLightAttenuation <void RED::ShaderString::IndirectBeamLightAttenuation(const char *oRAtt, const char *oLightVector, const char *iRPos, const char *iTEXn, const char *iTEXr, const char *ioRTemp)>`        
void                       :cpp:func:`AreaCentricLightDirection <void RED::ShaderString::AreaCentricLightDirection(const char *oLightDir, const char *iPosition)>`                                                                                           
void                       :cpp:func:`AreaLighting <void RED::ShaderString::AreaLighting(const char *oDotNL, const char *iNormal, const char *iSurfaceNormal, const char *iPos, const char *iAttenuationTex, const char *iSampleTex)>`                       
void                       :cpp:func:`SkylightDiffuseLighting <void RED::ShaderString::SkylightDiffuseLighting(const char *oDiffuse, const char *iNormal, const char *iSurfaceNormal, const char *iSkylightTex)>`                                            
void                       :cpp:func:`SkylightDecay <void RED::ShaderString::SkylightDecay(const char *oDecay, const char *iTexDecay)>`                                                                                                                      
void                       :cpp:func:`Tex <void RED::ShaderString::Tex(const char *oColor, const char *iColor, const char *iTexture, const char *iUV, int iComposite, int iCompositeChannel)>`                                                               
void                       :cpp:func:`Tex <void RED::ShaderString::Tex(const char *oColor, int iColor, const char *iTexture, const char *iUV, int iComposite, int iCompositeChannel)>`                                                                       
void                       :cpp:func:`VectorLength <void RED::ShaderString::VectorLength(const char *oLength, const char *iVector)>`                                                                                                                         
void                       :cpp:func:`Normalize <void RED::ShaderString::Normalize(const char *oRUnitVector, const char *iVector, bool iSecure=true)>`                                                                                                       
void                       :cpp:func:`ReadBumpMap <void RED::ShaderString::ReadBumpMap(const char *oRVec, const char *iTEXb, const char *iUV2Db, int iTextureCode, int iTextureCodeEntry)>`                                                                  
void                       :cpp:func:`UVTransform <void RED::ShaderString::UVTransform(const char *oRUV, const char *iRUV, int iMatrixRowBindPos)>`                                                                                                          
void                       :cpp:func:`Cross <void RED::ShaderString::Cross(const char *oRD, const char *iR1, const char *iR2)>`                                                                                                                              
void                       :cpp:func:`Matrix3x3Transform <void RED::ShaderString::Matrix3x3Transform(const char *oR, const char *iV, const char *iM0, const char *iM1, const char *iM2)>`                                                                    
void                       :cpp:func:`ConvertUVInCubeFaceVector <void RED::ShaderString::ConvertUVInCubeFaceVector(const char *oR, int iNumFace, const char *iRUV)>`                                                                                         
:cpp:enumerator:`~RED_RC`  :cpp:func:`TriangleIdTransfer <RED_RC RED::ShaderString::TriangleIdTransfer(RED::HARDWARE_PLATFORM iPlatformId)>`                                                                                                                 
:cpp:enumerator:`~RED_RC`  :cpp:func:`TriangleOwnershipTest <RED_RC RED::ShaderString::TriangleOwnershipTest(RED::HARDWARE_PLATFORM iPlatformId)>`                                                                                                           
void                       :cpp:func:`IntersectRayVsTriangle <void RED::ShaderString::IntersectRayVsTriangle(const char *oRUV, const char *oRPos, const char *oRDir, int ifN)>`                                                                              
void                       :cpp:func:`GetRayVsTriangleUV <void RED::ShaderString::GetRayVsTriangleUV(const char *ioRUV)>`                                                                                                                                    
void                       :cpp:func:`GetRayVsTriangleHitPoint <void RED::ShaderString::GetRayVsTriangleHitPoint(const char *oRHit, const char *iRUV, const char *iRPos, const char *iRDir)>`                                                                
void                       :cpp:func:`Interpolate <void RED::ShaderString::Interpolate(const char *oR, const char *iUV, const char *iV0, const char *iV01, const char *iV02)>`                                                                               
void                       :cpp:func:`GlossyRayDeviation <void RED::ShaderString::GlossyRayDeviation(const char *ioR, const char *iN, int iJitterBind, int iDevBind, int iSampleBind)>`                                                                      
:cpp:enumerator:`~RED_RC`  :cpp:func:`ShadowMapGaussianBlur <RED_RC RED::ShaderString::ShadowMapGaussianBlur(const char *iS, int iSize, const char *iUV, const char *iTexture, RED::HARDWARE_PLATFORM iPlatformId, bool iDeclareParams=true)>`               
:cpp:enumerator:`~RED_RC`  :cpp:func:`SmoothStep <RED_RC RED::ShaderString::SmoothStep(const char *oResult, const char *iMin, const char *iMax, const char *iWeight)>`                                                                                       
========================== ==================================================================================================================================================================================================================================

.. cpp:namespace:: nullptr

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

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



