Open Reality Reference Guide
FBShader Class Reference

Shader class. More...

#include <fbshader.h>

Inheritance diagram for FBShader:

Public Member Functions

 FBShader (const char *pName, HIObject pObject=NULL)
 Protected constructor. More...
 
 IObject_Declare (override)
 
virtual FBShaderModelInfoNewShaderModelInfo (HKModelRenderInfo pModelRenderInfo, int pSubRegionIndex)
 Create a new shader-model information object. More...
 
virtual void UpdateModelShaderInfo (FBRenderOptions *pOptions, FBShaderModelInfo *pInfo)
 Update shader-model information when model, material & texture mapping or shader setting change. More...
 
virtual void DestroyShaderModelInfo (FBRenderOptions *pOptions, FBShaderModelInfo *pInfo)
 Destroy shader-model information object callback. More...
 
virtual bool ReplaceAll (FBModel *pModel)
 Replace all shader in pModel. More...
 
virtual bool Append (FBModel *pModel)
 Append shader to pModel. More...
 
virtual bool ShaderNeedBeginRender ()
 Does the shader need a begin render call. More...
 
virtual void ShaderBeginRender (FBRenderOptions *pOptions, FBShaderModelInfo *pInfo)
 Pre-rendering of shaders that is called only one time for a shader instance. More...
 
virtual void ShadeModel (FBRenderOptions *pOptions, FBShaderModelInfo *pInfo, FBRenderingPass pPass)
 Real-time shading callback for shader without kFBShaderCapacityMaterialEffect. More...
 
virtual void ShadeModelShadow (FBRenderOptions *pRenderOptions, FBShaderModelInfo *pInfo)
 Draw custom shadow shape callback for shader with kFBShaderCapacityDrawShadow but without kFBShaderCapacityMaterialEffect. More...
 
- Public Member Functions inherited from FBBox
 FBBox (const char *pName, HIObject pObject=NULL)
 Constructor. More...
 
virtual FBAnimationNodeAnimationNodeInCreate (kReference pUserId, const char *pName, const char *pDataType, bool pIsPublic=false, double *pMin=NULL, double *pMax=NULL, bool pUserData=false)
 Creation of IN/OUT Animation Nodes. More...
 
virtual FBAnimationNodeAnimationNodeOutCreate (kReference pUserId, const char *pName, const char *pDataType, bool pIsPublic=false, double *pMin=NULL, double *pMax=NULL, bool pUserData=false)
 
virtual bool EvaluateAnimationNodes (FBEvaluateInfo *pEvaluateInfo)
 Evaluation of non TRS nodes that needs to be evaluated. More...
 
virtual bool AnimationNodeNotify (FBAnimationNode *pAnimationNode, FBEvaluateInfo *pEvaluateInfo)
 Notification function for animation thread. More...
 
virtual bool ResolveCandidate (FBAnimationNode *pAnimationNode, FBEvaluateInfo *pEvaluateInfo)
 Function is call when candidate needs to be resolved (like global to local). More...
 
virtual ECandidateAction SetGlobalCandidate (FBAnimationNode *pAnimationNode, double *pData, FBEvaluateInfo *pEvaluateInfo)
 Function is call when a global candidate is set on an animation node. More...
 
virtual ECandidateAction SetStdCandidate (FBAnimationNode *pAnimationNode, double *pData, FBEvaluateInfo *pEvaluateInfo)
 Function is call when a non-global candidate is set on an animation node. More...
 
virtual bool FbxStore (FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat)
 Storage/Retrieval of information into the FBX file format. More...
 
virtual bool FbxRetrieve (FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat)
 
virtual bool AnimationNodeDestroy (FBAnimationNode *pAnimationNode)
 Destroy an animation node. More...
 
virtual bool AnimationNodeIsUserData (FBAnimationNode *pAnimationNode)
 Is the animation node user data? More...
 
virtual void AnimationNodesOutDisableIfNotWritten (FBEvaluateInfo *pEvaluateInfo)
 This call will disable all out animation nodes from being pull by system (animation thread) for given pEvaluateInfo. More...
 
virtual FBAnimationNodeAnimationNodeInGet ()
 Get the (IN/OUT) animation node for this box. More...
 
virtual FBAnimationNodeAnimationNodeOutGet ()
 
virtual const char * FbxGetObjectType ()
 Returns the class type inherited by the class of an object, for example: 'Box', 'Constraint', 'TimelineXTrack'. More...
 
virtual const char * FbxGetObjectSubType ()
 Returns the class sub type inherited by the class of an object, for example: 'Relations', 'Parent-Child', 'Number to Vector', 'Shot'. More...
 
 IObject_Declare (override)
 
virtual int GetOutConnectorCount () const
 Get the number of animation node outputs for this box. More...
 
virtual int GetInConnectorCount () const
 Get the number of animation node inputs for this box. More...
 
virtual FBAnimationNodeGetOutConnector (int pIndex) const
 Get the animation node output associated with the given index. More...
 
virtual FBAnimationNodeGetInConnector (int pIndex) const
 Get the animation node input associated with the given index. More...
 
- Public Member Functions inherited from FBComponent
 FBComponent (HIObject pObject)
 Constructor. More...
 
virtual ~FBComponent ()
 Destructor. More...
 
virtual bool FBCreate ()
 Open Reality Creation function. More...
 
virtual void FBDestroy ()
 Open Reality destruction function. More...
 
virtual void FBDelete () override
 Open Reality deletion function. More...
 
virtual bool SetHIObject (HIObject pObject, bool pSDKComponent) override
 Assign component to an internal pointer. More...
 
virtual int PropertyAdd (FBProperty *pProperty)
 Add a property to the component's property manager. More...
 
bool PropertyAddReferenceProperty (FBProperty *pReferenceProperty)
 Add a reference property to the component's property manager. More...
 
void PropertyRemove (FBProperty *pProperty)
 Remove a Property from the component's Property manager. More...
 
void PropertyGetModifiedList (FBArrayTemplate< FBProperty * > &pPropList, FBPlugModificationFlag pModificationFlags)
 Get list of properties which have been modified since last loading. More...
 
FBPropertyPropertyCreate (const char *pName, FBPropertyType pType, const char *pDataType, bool pAnimatable, bool pIsUser=false, FBProperty *pReferenceSource=NULL)
 Create user or dynamic property. More...
 
FBObjectFlag GetObjectFlags ()
 Get all Object Flags (concatenated). More...
 
void SetObjectFlags (FBObjectFlag pFlags)
 SetObjectFlags. More...
 
bool HasObjectFlags (FBObjectFlag pFlags)
 Check whether a specific object flag is enabled. More...
 
void EnableObjectFlags (FBObjectFlag pFlags)
 Enable a specific Object Flags. More...
 
void DisableObjectFlags (FBObjectFlag pFlags)
 Disable a specific Object Flags. More...
 
void SetObjectStatus (FBObjectStatus pStatus, bool pValue)
 Enable/Disable a specific Object Status. More...
 
bool GetObjectStatus (FBObjectStatus pStatus)
 Check to see if an object status is enabled. More...
 
bool ProcessNamespaceHierarchy (FBNamespaceAction pNamespaceAction, const char *pNamespaceName, const char *pReplaceTo=NULL, bool pAddRight=true)
 ProcessNamespaceHierarchy. More...
 
bool ProcessObjectNamespace (FBNamespaceAction pNamespaceAction, const char *pNamespaceName, const char *pReplaceTo=NULL, bool pAddRight=true)
 ProcessObjectNamespace. More...
 
virtual const char * ClassName () override
 Get the class name. More...
 
virtual bool UseCustomPropertyViewSet () const
 Use the custom property viewSet or not. More...
 
const char * GetFullName (void)
 Get the full name. More...
 
void SetOwnerNamespace (FBNamespace *pOwnerNSObj)
 Set the owner Namespace object. More...
 
FBNamespaceGetOwnerNamespace (void)
 Get the owner Namespace object. More...
 
FBFileReferenceGetOwnerFileReference (void)
 Get the owner FileReference object. More...
 
void HardSelect ()
 HardSelect. More...
 
virtual bool Is (int pTypeId) override
 Returns true if object is of type TypeId. More...
 
virtual int GetTypeId () override
 GetTypeId( int pTypeId ) More...
 
- Public Member Functions inherited from FBWrapperHolder
FBScriptWrapperGetWrapper ()
 Return the wrapper interface of this FBObject. More...
 
void AddWrapper (FBScriptWrapper *)
 
void RemoveWrapper (FBScriptWrapper *)
 

Real-time shading callbacks for kFBMaterialEffectShader.

const char * ShaderDescription
 Description. More...
 
FBPropertyBool Enable
 Read Write Property: Is the shader Enabled More...
 
FBPropertyRenderingPass RenderingPass
 Read Write Property: Rendering pass object are shaded in. More...
 
virtual void ShaderPassTypeBegin (FBRenderOptions *pRenderOptions, FBRenderingPass pPass)
 For all the shader instances of the same type, to setup the common state for all this type of shaders. More...
 
virtual void ShaderPassTypeEnd (FBRenderOptions *pRenderOptions, FBRenderingPass pPass)
 For all the shader instances of the same type, to clean the common state for all this type of shaders. More...
 
virtual void ShaderPassInstanceBegin (FBRenderOptions *pRenderOptions, FBRenderingPass pPass)
 For all the models associated with this shader instance, to setup the common state for this shader instance. More...
 
virtual void ShaderPassInstanceEnd (FBRenderOptions *pRenderOptions, FBRenderingPass pPass)
 For all the models associated with this shader instance, to clean the common state for this shader instance. More...
 
virtual void ShaderPassMaterialBegin (FBRenderOptions *pRenderOptions, FBRenderingPass pPass, FBShaderModelInfo *pInfo)
 For all the models mapped with this material and associated with this shader instance, to setup the common material state for this shader instance. More...
 
virtual void ShaderPassMaterialEnd (FBRenderOptions *pRenderOptions, FBRenderingPass pPass, FBShaderModelInfo *pInfo)
 For all the models mapped with this material and associated with this shader instance, to clean the common material state for this shader instance. More...
 
virtual void ShaderPassGeometryBegin (FBRenderOptions *pRenderOptions, FBRenderingPass pPass, FBShaderModelInfo *pInfo)
 For all the models instanced from the same geometry, to setup the common VBO state for this shader instance. More...
 
virtual void ShaderPassGeometryEnd (FBRenderOptions *pRenderOptions, FBRenderingPass pPass, FBShaderModelInfo *pInfo)
 For all the models instanced from the same geometry, to clean the common VBO state for this shader instance. More...
 
virtual void ShaderPassModelsDraw (FBRenderOptions *pRenderOptions, FBRenderingPass pPass, const FBArrayTemplate< FBShaderModelInfo * > &pInfoArray)
 For all the models with the same material/geometry mappings, inside this functions, we only need to setup modelview matrix, and draw the meshes. More...
 
virtual void ShaderPassModelDraw (FBRenderOptions *pRenderOptions, FBRenderingPass pPass, FBShaderModelInfo *pInfo)
 Callback for Cg/CgFx shader to setup WorldMaitrx/WorldMatrixIT parameters. More...
 
virtual void ShaderPassDrawShadowBegin (FBRenderOptions *pRenderOptions)
 Shadow draw pass begin notify for shader with kFBShaderCapacityMaterialEffect and kFBShaderCapacityDrawShow. More...
 
virtual void ShaderPassDrawShadowEnd (FBRenderOptions *pRenderOptions)
 Shadow draw pass end notify for shader with kFBShaderCapacityMaterialEffect and kFBShaderCapacityDrawShow. More...
 
FBShaderPassActionCallback GetShaderPassActionCallback () const
 Get Shader Pass Action Callback registration;. More...
 
void SetShaderPassActionCallback (FBShaderPassActionCallback pCallback)
 Set Shader Pass Action Callback registration;. More...
 
virtual void CloneShaderParameter (FBShader *pNewShader)
 Clone shader. More...
 
virtual void DetachDisplayContext (FBRenderOptions *pOptions, FBShaderModelInfo *pInfo)
 Detach the display context from the shader. More...
 
virtual bool FbxStore (FBFbxObject *pFbxObject)
 Storage of information into the FBX file format. More...
 
virtual bool FbxRetrieve (FBFbxObject *pFbxObject, FBRenderer *pRenderer)
 Retrieval of information into the FBX file format. More...
 
void InvalidateShaderVersion ()
 Invalidate Shader version to trigger model-shader informaton to be updated. More...
 
int GetShaderVersion () const
 Return Shader Version. More...
 
FBShaderCapacity GetShaderCapacity () const
 Return Shader Capacity (bitwise value) More...
 
bool HasShaderCapacity (FBShaderCapacity pCapacity)
 Return true if shader has certain capacity. More...
 
void SetShaderCapacity (FBShaderCapacity pCapacity, bool pOn)
 Set Shader Capacity (bitwise value). More...
 
int GetDrawInstancedMaximumSize () const
 Get shader maximum size for draw instanced. More...
 
void SetDrawInstancedMaximumSize (int pMaxSize)
 Set shader maximum size for draw instanced. More...
 
virtual void UploadModelViewMatrixArrayForDrawInstanced (const double *pModelViewMatrixArray, int pCount)
 Callback for uploading the modelview array when draw instanced. More...
 
static FBRenderingPass GetRenderingPassNeededForAlpha (FBAlphaSource pTransparency)
 In order to be called at the right passes, a shader must set the result of GetRenderingPassNeededForAlpha() to RenderingPass for a given transparency type. More...
 

Additional Inherited Members

- Public Types inherited from FBBox
enum  ECandidateAction {
  eCandidateAccept ,
  eCandidateIntercept ,
  eCandidateInterceptAfterEvaluation
}
 Resolving action for candidates. More...
 
- Static Public Member Functions inherited from FBComponent
static int GetInternalClassId ()
 
static void FBComponentSetName (FBComponent *pObject, const char *pName)
 
static const char * FBComponentGetName (FBComponent *pObject)
 
static void FBComponentSetLongName (FBComponent *pObject, const char *pName)
 
static const char * FBComponentGetLongName (FBComponent *pObject)
 
- Public Attributes inherited from FBBox
const char * UniqueName
 internal Unique name. More...
 
FBPropertyBool Animatable
 Read Write Property: Is the box animatable. More...
 
FBPropertyBool Live
 Read Write Property: Is live? More...
 
FBPropertyBool RecordMode
 Read Write Property: Is recording? More...
 
- Public Attributes inherited from FBComponent
FBPropertyManager PropertyList
 Read Only Property: Manages all of the properties for the component. More...
 
FBPropertyListComponent Components
 List: List of components. More...
 
FBPropertyListComponent Parents
 List: Parents. More...
 
FBPropertyBool Selected
 Read Write Property: Selected property. More...
 
FBPropertyString Name
 Read Write Property: Unique name of object. More...
 
FBPropertyString LongName
 Read Write Property: Name and namespace for object.
More...
 
FBPropertyFolder Folder
 Read Write Property: The folder that contain this component. More...
 
- Static Public Attributes inherited from FBComponent
static int TypeInfo
 Contains the Type information of the object. More...
 
- Protected Member Functions inherited from FBPlug
bool IsSDKComponent ()
 Return whether or not item is an SDK component. More...
 
bool ConnectSrc (FBPlug *pSrc, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a source connection. More...
 
bool ConnectDst (FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a destination connection. More...
 
bool ConnectSrcAt (int pDst_SrcIndex, FBPlug *pSrc, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a source connection. More...
 
bool ConnectDstAt (int pSrc_DstIndex, FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a destination connection. More...
 
bool DisconnectDst (FBPlug *pDst)
 Remove a destination connection. More...
 
bool DisconnectSrc (FBPlug *pSrc)
 Remove a source connection. More...
 
void DisconnectAllSrc ()
 Remove all source connections. More...
 
void DisconnectAllDst ()
 Remove all destination connections. More...
 
bool DisconnectDstAt (int pIndex)
 Remove a destination connection at a specified index. More...
 
bool DisconnectSrcAt (int pIndex)
 Remove a source connection at a specified index. More...
 
bool ReplaceDstAt (int pIndex, FBPlug *pDst)
 Replace a destination connection at a specified index. More...
 
bool ReplaceSrcAt (int pIndex, FBPlug *pSrc)
 Replace a source connection at a specified index. More...
 
bool SwapSrc (int pIndexA, int pIndexB)
 Swap source connection at index A with source connection at index B. More...
 
bool MoveSrcAt (int pIndex, int pAtIndex)
 Move source connection at pIndex to pAtIndex. More...
 
bool MoveSrcAt (FBPlug *pSrc, FBPlug *pAtSrc)
 Move source connection pSrc to the position of pAtSrc. More...
 
int GetSrcCount ()
 Get source connection count. More...
 
FBPlugGetSrc (int pIndex)
 Get a source connection's plug at specified index. More...
 
FBConnectionType GetSrcType (int pIndex)
 Get a source connection's type at specified index. More...
 
int GetDstCount ()
 Get destination connection count. More...
 
FBPlugGetDst (int pIndex)
 Get a destination connection's plug at specified index. More...
 
FBConnectionType GetDstType (int pIndex)
 Get a destination connection's type at specified index. More...
 
bool BeginChange ()
 Begins a change on multiple plugs. More...
 
void EndChange ()
 Ends a change on multiple plugs. More...
 
void SetSelfModified (FBPlugModificationFlag pFlag, bool pBool)
 Set the plug's self modification flag. More...
 
bool GetSelfModified (FBPlugModificationFlag pFlag)
 Tell if the plug's self has changed. More...
 
void SetContentModified (FBPlugModificationFlag pFlag, bool pBool)
 Set the plug's owned property/object's modification flag. More...
 
bool GetContentModified (FBPlugModificationFlag pFlag)
 Tell if the plug's content has changed. More...
 
int GetPlugConnectionModifiedList (FBPlugList &pPlugList, FBPlugModificationFlag pConnectionModificatonFlag, bool pAddRemove)
 Get plug's modified src/dst property/object connection added/removed List. More...
 
bool RevertModification (FBPlugModificationFlag pFlag=kFBAllModifiedMask)
 Revert the plug's modification to original status. More...
 
void SetStatusFlag (FBPlugStatusFlag pStatus, bool pValue)
 Set the plug's status flag. More...
 
bool GetStatusFlag (FBPlugStatusFlag pStatus) const
 Tell if the plug's status has changed. More...
 
FBPlugGetOwner ()
 Get the owner of this plug. More...
 
FBPlugGetOwned (int pIndex)
 Get the owned plug at specified index. More...
 
int GetOwnedCount ()
 Get the owned plug count. More...
 
virtual bool PlugDataNotify (FBConnectionAction pAction, FBPlug *pThis, void *pData=NULL, void *pDataOld=NULL, int pDataSize=0)
 PlugDataNotify when overloaded is equivalent of FBSystem.OnConnectionDataNotify but in the context of the derived object only. More...
 
virtual bool PlugStateNotify (FBConnectionAction pAction, FBPlug *pThis, void *pData=NULL, void *pDataOld=NULL, int pDataSize=0)
 PlugStateNotify when overloaded is equivalent of FBSystem.OnConnectionStateNotify but in the context of the derived object only. More...
 
virtual bool PlugNotify (FBConnectionAction pAction, FBPlug *pThis, int pIndex, FBPlug *pPlug=NULL, FBConnectionType pConnectionType=kFBConnectionTypeNone, FBPlug *pNewPlug=NULL)
 PlugNotify when overloaded is equivalent of FBSystem.OnConnectionNotify but in the context of the derived object only. More...
 
- Static Protected Member Functions inherited from FBPlug
static int GetInternalClassId ()
 Internal class Id. More...
 
- Protected Attributes inherited from FBPlug
bool mAllocated
 Contain the Allocation State of the Component. More...
 
HIObject mObject
 Handle on the Plug. More...
 
bool mSDKComponent
 bool Plug is an SDK component.
More...
 
- Static Protected Attributes inherited from FBPlug
static const char * ClassGroupName
 ClassGroupName of the object. More...
 
static int TypeInfo
 TypeInfo. More...
 
static int mGlobalTypeInfo
 Represente the Type Index. More...
 

Detailed Description

Shader class.

Definition at line 452 of file fbshader.h.

Constructor & Destructor Documentation

◆ FBShader()

FBShader ( const char *  pName,
HIObject  pObject = NULL 
)

Protected constructor.

Parameters
pNameShader name.
pObjectInternal parent object to own shader(default=NULL).

Member Function Documentation

◆ Append()

virtual bool Append ( FBModel pModel)
virtual

Append shader to pModel.

Parameters
pModelModel to append shader to.
Returns
True if the operation is successful, false otherwise.

◆ CloneShaderParameter()

virtual void CloneShaderParameter ( FBShader pNewShader)
virtual

Clone shader.

Parameters
pNewShaderShader to copy data to.

◆ DestroyShaderModelInfo()

virtual void DestroyShaderModelInfo ( FBRenderOptions pOptions,
FBShaderModelInfo pInfo 
)
virtual

Destroy shader-model information object callback.

Parameters
pOptionsRender options.
pInfoShader-model information object to destroy.

◆ DetachDisplayContext()

virtual void DetachDisplayContext ( FBRenderOptions pOptions,
FBShaderModelInfo pInfo 
)
virtual

Detach the display context from the shader.

Parameters
pOptionsRender options.
pInfoShader-model information object.

◆ FbxRetrieve()

virtual bool FbxRetrieve ( FBFbxObject pFbxObject,
FBRenderer pRenderer 
)
virtual

Retrieval of information into the FBX file format.

Parameters
pFbxObjectObject to interface with FBX file format.
pRendererRenderer being restored.
Returns
true if successful, false otherwise.

◆ FbxStore()

virtual bool FbxStore ( FBFbxObject pFbxObject)
virtual

Storage of information into the FBX file format.

Parameters
pFbxObjectObject to interface with FBX file format.
Returns
true if successful, false otherwise.

◆ GetDrawInstancedMaximumSize()

int GetDrawInstancedMaximumSize ( ) const

Get shader maximum size for draw instanced.

◆ GetRenderingPassNeededForAlpha()

static FBRenderingPass GetRenderingPassNeededForAlpha ( FBAlphaSource  pTransparency)
staticprotected

In order to be called at the right passes, a shader must set the result of GetRenderingPassNeededForAlpha() to RenderingPass for a given transparency type.

It should not be called at rendering time.

Parameters
pTransparencyTransparency type.
Returns
a mask of all rendering passes needed for DrawGeometry() to work correctly.

◆ GetShaderCapacity()

FBShaderCapacity GetShaderCapacity ( ) const

Return Shader Capacity (bitwise value)

◆ GetShaderPassActionCallback()

FBShaderPassActionCallback GetShaderPassActionCallback ( ) const

Get Shader Pass Action Callback registration;.

◆ GetShaderVersion()

int GetShaderVersion ( ) const

Return Shader Version.

◆ HasShaderCapacity()

bool HasShaderCapacity ( FBShaderCapacity  pCapacity)

Return true if shader has certain capacity.

◆ InvalidateShaderVersion()

void InvalidateShaderVersion ( )

Invalidate Shader version to trigger model-shader informaton to be updated.

◆ NewShaderModelInfo()

virtual FBShaderModelInfo* NewShaderModelInfo ( HKModelRenderInfo  pModelRenderInfo,
int  pSubRegionIndex 
)
virtual

Create a new shader-model information object.

Parameters
pModelRenderInfoInternal Model Render Info.
pSubRegionIndex
Returns
Newly allocated shader-model information object.

◆ ReplaceAll()

virtual bool ReplaceAll ( FBModel pModel)
virtual

Replace all shader in pModel.

Parameters
pModelModel to replace all shader to.
Returns
True if the operation is successful, false otherwise.

◆ SetDrawInstancedMaximumSize()

void SetDrawInstancedMaximumSize ( int  pMaxSize)

Set shader maximum size for draw instanced.

◆ SetShaderCapacity()

void SetShaderCapacity ( FBShaderCapacity  pCapacity,
bool  pOn 
)

Set Shader Capacity (bitwise value).

Only when the shader is not connected to any model, this function will take effect. otherwise, it will be ignored.

◆ SetShaderPassActionCallback()

void SetShaderPassActionCallback ( FBShaderPassActionCallback  pCallback)

Set Shader Pass Action Callback registration;.

◆ ShadeModel()

virtual void ShadeModel ( FBRenderOptions pOptions,
FBShaderModelInfo pInfo,
FBRenderingPass  pPass 
)
virtual

Real-time shading callback for shader without kFBShaderCapacityMaterialEffect.

This is called after all the calls to ShaderBeginRender.

Parameters
pOptionsRender options.
pPassRendering pass.
pInfoShader-model information.

◆ ShadeModelShadow()

virtual void ShadeModelShadow ( FBRenderOptions pRenderOptions,
FBShaderModelInfo pInfo 
)
virtual

Draw custom shadow shape callback for shader with kFBShaderCapacityDrawShadow but without kFBShaderCapacityMaterialEffect.

Parameters
pRenderOptionsRender options.
pInfoShader-model information.

◆ ShaderBeginRender()

virtual void ShaderBeginRender ( FBRenderOptions pOptions,
FBShaderModelInfo pInfo 
)
virtual

Pre-rendering of shaders that is called only one time for a shader instance.

Remarks
ShaderBeginRender is called as many times as the number of models affected by the instance of the shader in a given render pass. (ShaderNeedBeginRender must return true for this function to be called).

◆ ShaderNeedBeginRender()

virtual bool ShaderNeedBeginRender ( )
virtual

Does the shader need a begin render call.

Remarks
Re-implement this function and return true if you need it. This method is called once per shader on each render pass.

◆ ShaderPassDrawShadowBegin()

virtual void ShaderPassDrawShadowBegin ( FBRenderOptions pRenderOptions)
virtual

Shadow draw pass begin notify for shader with kFBShaderCapacityMaterialEffect and kFBShaderCapacityDrawShow.

Parameters
pRenderOptionsRender options.

◆ ShaderPassDrawShadowEnd()

virtual void ShaderPassDrawShadowEnd ( FBRenderOptions pRenderOptions)
virtual

Shadow draw pass end notify for shader with kFBShaderCapacityMaterialEffect and kFBShaderCapacityDrawShow.

Parameters
pRenderOptionsRender options.

◆ ShaderPassGeometryBegin()

virtual void ShaderPassGeometryBegin ( FBRenderOptions pRenderOptions,
FBRenderingPass  pPass,
FBShaderModelInfo pInfo 
)
virtual

For all the models instanced from the same geometry, to setup the common VBO state for this shader instance.

Parameters
pRenderOptionsRender options.
pPassRendering pass.
pInfoShader-model information.

◆ ShaderPassGeometryEnd()

virtual void ShaderPassGeometryEnd ( FBRenderOptions pRenderOptions,
FBRenderingPass  pPass,
FBShaderModelInfo pInfo 
)
virtual

For all the models instanced from the same geometry, to clean the common VBO state for this shader instance.

Parameters
pRenderOptionsRender options.
pPassRendering pass.
pInfoShader-model information.

◆ ShaderPassInstanceBegin()

virtual void ShaderPassInstanceBegin ( FBRenderOptions pRenderOptions,
FBRenderingPass  pPass 
)
virtual

For all the models associated with this shader instance, to setup the common state for this shader instance.

Parameters
pRenderOptionsRender options.
pPassRendering pass.

◆ ShaderPassInstanceEnd()

virtual void ShaderPassInstanceEnd ( FBRenderOptions pRenderOptions,
FBRenderingPass  pPass 
)
virtual

For all the models associated with this shader instance, to clean the common state for this shader instance.

Parameters
pRenderOptionsRender options.
pPassRendering pass.

◆ ShaderPassMaterialBegin()

virtual void ShaderPassMaterialBegin ( FBRenderOptions pRenderOptions,
FBRenderingPass  pPass,
FBShaderModelInfo pInfo 
)
virtual

For all the models mapped with this material and associated with this shader instance, to setup the common material state for this shader instance.

Parameters
pRenderOptionsRender options.
pPassRendering pass.
pInfoShader-model information.

◆ ShaderPassMaterialEnd()

virtual void ShaderPassMaterialEnd ( FBRenderOptions pRenderOptions,
FBRenderingPass  pPass,
FBShaderModelInfo pInfo 
)
virtual

For all the models mapped with this material and associated with this shader instance, to clean the common material state for this shader instance.

Parameters
pRenderOptionsRender options.
pPassRendering pass.
pInfoShader-model information.

◆ ShaderPassModelDraw()

virtual void ShaderPassModelDraw ( FBRenderOptions pRenderOptions,
FBRenderingPass  pPass,
FBShaderModelInfo pInfo 
)
virtual

Callback for Cg/CgFx shader to setup WorldMaitrx/WorldMatrixIT parameters.

Parameters
pRenderOptionsRender options.
pPassRendering pass.
pInfoShader-model information.

◆ ShaderPassModelsDraw()

virtual void ShaderPassModelsDraw ( FBRenderOptions pRenderOptions,
FBRenderingPass  pPass,
const FBArrayTemplate< FBShaderModelInfo * > &  pInfoArray 
)
virtual

For all the models with the same material/geometry mappings, inside this functions, we only need to setup modelview matrix, and draw the meshes.

Parameters
pRenderOptionsRender options.
pPassRendering pass.
pInfoArrayAn array of Shader-model information to be displayed.

◆ ShaderPassTypeBegin()

virtual void ShaderPassTypeBegin ( FBRenderOptions pRenderOptions,
FBRenderingPass  pPass 
)
virtual

For all the shader instances of the same type, to setup the common state for all this type of shaders.

Parameters
pRenderOptionsRender options.
pPassRendering pass.

◆ ShaderPassTypeEnd()

virtual void ShaderPassTypeEnd ( FBRenderOptions pRenderOptions,
FBRenderingPass  pPass 
)
virtual

For all the shader instances of the same type, to clean the common state for all this type of shaders.

Parameters
pRenderOptionsRender options.
pPassRendering pass.

◆ UpdateModelShaderInfo()

virtual void UpdateModelShaderInfo ( FBRenderOptions pOptions,
FBShaderModelInfo pInfo 
)
virtual

Update shader-model information when model, material & texture mapping or shader setting change.

Parameters
pOptionsRender options.
pInfoShader-model information object to be updated.

◆ UploadModelViewMatrixArrayForDrawInstanced()

virtual void UploadModelViewMatrixArrayForDrawInstanced ( const double *  pModelViewMatrixArray,
int  pCount 
)
virtual

Callback for uploading the modelview array when draw instanced.

Parameters
pModelViewMatrixArraypointer of 4x4 column major modelview matrix array, length is 4*4*pCount;
pCountnumber of modelview matrixs in the array.

Member Data Documentation

◆ Enable

Read Write Property: Is the shader Enabled

Definition at line 669 of file fbshader.h.

◆ RenderingPass

FBPropertyRenderingPass RenderingPass

Read Write Property: Rendering pass object are shaded in.

Set the property to kFBPassFlat if you want to be called at the first pass, kFBPassPostRender at the second pass, kFBPassFlat | kFBPassPostRender at both. The current pass will be the third argument of ShadeModel()

Definition at line 676 of file fbshader.h.

◆ ShaderDescription

const char* ShaderDescription

Description.

Definition at line 634 of file fbshader.h.


The documentation for this class was generated from the following file: