3ds Max C++ API Reference
IHardwareMaterial3 Class Referenceabstract

Extension of IHardwareMaterial2 Interface. More...

#include <ihardwarematerial.h>

+ Inheritance diagram for IHardwareMaterial3:

Public Member Functions

virtual bool SetSamplerBorderColor (int stage, DWORD borderColor)=0
 This method sets the border color for the specified stage. More...
 
- Public Member Functions inherited from IHardwareMaterial2
virtual void SetSelfIllumColorOn (BOOL bOn)=0
 This method sets the self illumination mode. More...
 
- Public Member Functions inherited from IHardwareMaterial
virtual Interface_ID GetID ()
 
virtual LifetimeType LifetimeControl ()
 
virtual void SetCustomFlag (bool bVal)=0
 
virtual void SetFillMode (DWORD mode)=0
 
virtual void SetShadeMode (DWORD mode)=0
 
virtual void SetMaterial (LPD3DXMATERIAL pMtl)=0
 
virtual void SetDiffuseColor (LPD3DXCOLOR pClr)=0
 
virtual void SetDiffuseColor (Color c, float alpha=1.0f)=0
 
virtual void SetDiffuseColor (Point3 c, float alpha=1.0f)=0
 
virtual void SetAmbientColor (LPD3DXCOLOR pClr)=0
 
virtual void SetAmbientColor (Color c, float alpha=1.0f)=0
 
virtual void SetAmbientColor (Point3 c, float alpha=1.0f)=0
 
virtual void SetSpecularColor (LPD3DXCOLOR pClr)=0
 
virtual void SetSpecularColor (Color c, float alpha=1.0f)=0
 
virtual void SetSpecularColor (Point3 c, float alpha=1.0f)=0
 
virtual void SetEmissiveColor (LPD3DXCOLOR pClr)=0
 
virtual void SetEmissiveColor (Color c, float alpha=1.0f)=0
 
virtual void SetEmissiveColor (Point3 c, float alpha=1.0f)=0
 
virtual void SetSpecularPower (float power)=0
 
virtual bool SetNumTexStages (DWORD numStages)=0
 
virtual bool SetTexture (DWORD stage, DWORD_PTR pTexture)=0
 
virtual bool SetTexture (DWORD stage, LPCSTR filename)=0
 
virtual bool SetTexture (DWORD stage, DWORD_PTR pTexture, MapUsageType usage)=0
 
virtual bool SetTexture (DWORD stage, LPCSTR filename, MapUsageType usage)=0
 This method allows a texture to be loaded to the graphics device. More...
 
virtual bool SetTextureUVWSource (DWORD stage, DWORD type)=0
 
virtual bool SetTextureMapChannel (DWORD stage, DWORD numChan)=0
 
virtual bool SetTextureCoordIndex (DWORD stage, DWORD index)=0
 
virtual bool SetTextureTransformFlag (DWORD stage, DWORD flag)=0
 
virtual bool SetTextureTransform (DWORD stage, LPD3DXMATRIX pTransform)=0
 
virtual bool SetTextureColorOp (DWORD stage, DWORD colorOp)=0
 
virtual bool SetTextureColorArg (DWORD stage, DWORD argNum, DWORD colorArg)=0
 
virtual bool SetTextureAlphaOp (DWORD stage, DWORD alphaArg)=0
 
virtual bool SetTextureAlphaArg (DWORD stage, DWORD argNum, DWORD alphaArg)=0
 
virtual bool SetTextureAddressMode (DWORD stage, DWORD coordNum, DWORD mode)=0
 
virtual bool SetVertexShader (DWORD_PTR pVertexShader)=0
 
virtual bool SetPixelShader (DWORD_PTR pPixelShader)=0
 
virtual bool SetEffect (DWORD_PTR pEffect)=0
 
virtual bool SetPlugin (BaseInterface *pPlugin)=0
 
virtual bool SetINode (INode *pINode)=0
 
virtual void SetTextureFactor (DWORD factor)=0
 
virtual void SetSpecularLevel (float level)=0
 This method sets the specular level. More...
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
UtilExport BaseInterfaceGetInterface (Interface_ID id) override
 
virtual bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=nullptr)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 
template<class InterfaceType >
InterfaceType * GetTypedInterface ()
 

Additional Inherited Members

- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease , immediateRelease , wantsRelease , serverControlled }
 
- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 

Detailed Description

Extension of IHardwareMaterial2 Interface.

This class extends the functionality of IHardwareMaterial2. To acquire this interface, simply call GetInterface(IHARDWARE_MATERIAL3_INTERFACE_ID). If failed, it will return NULL.

Member Function Documentation

◆ SetSamplerBorderColor()

virtual bool SetSamplerBorderColor ( int  stage,
DWORD  borderColor 
)
pure virtual

This method sets the border color for the specified stage.

Parameters
[in]stage- The sampler stage whose border color you want to set
[in]borderColor- The border color value
Returns
true if successful, otherwise false