Viewport DXEffect interface.
A Direct X 8.1 shader should implement this class. It is used by the system to get information from the shader If a material implements this class, then all it needs to do is pass back a pointer in the GetInterface implementation. All the other methods can simply be a no op.
RefResult LightMap::NotifyRefChanged(Interval changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message ) { switch (message) { //this allows the manager to control the TV better. case REFMSG_WANT_SHOWPARAMLEVEL: { BOOL * pb = (BOOL*)(partID); *pb = TRUE; return REF_HALT; } } return(REF_SUCCEED); }
#include <IViewportManager.h>

| Public Member Functions | |
| virtual Interface_ID | GetID () | 
| virtual LifetimeType | LifetimeControl () | 
| virtual ParamDlg * | CreateEffectDlg (HWND hWnd, IMtlParams *imp)=0 | 
| The Viewport Manager will call this to
display the dialog (if needed) | |
| virtual void | DisableUI ()=0 | 
| This is no longer used. | |
| virtual MCHAR * | GetName ()=0 | 
| Get the UI name of the effect - this is only
used for Viewport MAnager effects - not materials. | |
| virtual void | SetDXData (IHardwareMaterial *pHWMtl, Mtl *pMtl)=0 | 
| For effects that will be using the fixed
function pipeline. | |
| virtual Interface_ID GetID | ( | ) | [inline, virtual] | 
Reimplemented from BaseInterface.
Reimplemented in IDX9DataBridge.
{ return VIEWPORT_SHADER_CLIENT_INTERFACE; }
| virtual LifetimeType LifetimeControl | ( | ) | [inline, virtual] | 
Reimplemented from BaseInterface.
Reimplemented in IDX9DataBridge.
{ return noRelease; }
| virtual ParamDlg* CreateEffectDlg | ( | HWND | hWnd, | 
| IMtlParams * | imp | ||
| ) | [pure virtual] | 
The Viewport Manager will call this to display the dialog (if needed)
| hWnd | The parent window handle | 
| *imp | A pointer to IMtlParam - see the main max SDK for info on this class | 
| virtual void DisableUI | ( | ) | [pure virtual] | 
| virtual MCHAR* GetName | ( | ) | [pure virtual] | 
Get the UI name of the effect - this is only used for Viewport MAnager effects - not materials.
| virtual void SetDXData | ( | IHardwareMaterial * | pHWMtl, | 
| Mtl * | pMtl | ||
| ) | [pure virtual] | 
For effects that will be using the fixed function pipeline.
This provided access to the IHArdwareMaterial allowing access to DirectX FFP.
| *pHWMtl | A pointer to the internal hardware material. | 
| *pMtl | A pointer to the parent Material |