# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NL3D::IMeshVertexProgram Class Reference

Interface to a CMeshGeom/CMeshMRMGeom Special VertexProgram Effect. More...

#include <mesh_vertex_program.h>

Inheritance diagram for NL3D::IMeshVertexProgram:

NLMISC::IStreamable NLMISC::CRefCount NLMISC::IClassable NL3D::CMeshVPPerPixelLight NL3D::CMeshVPWindTree List of all members.

Public Methods

 IMeshVertexProgram ()
 Constructor. More...

virtual ~IMeshVertexProgram ()
virtual void initInstance (CMeshBaseInstance *mbi)=0
 Called at creation of an instance, to setup some information directly in the CMeshBaseInstance. More...

virtual bool begin (IDriver *drv, CScene *scene, CMeshBaseInstance *mbi, const NLMISC::CMatrix &invertedModelMat, const NLMISC::CVector &viewerPos)=0
 Called to setup constant / activate VertexProgram. More...

virtual void end (IDriver *drv)=0
 Typically disable the VertexProgram, or do some uninit. More...

virtual void setupForMaterial (const CMaterial &mat, IDriver *drv, CScene *scene, CVertexBuffer *vb)=0
 Setup this shader for the given material. More...

virtual void setupForMaterial (const CMaterial &mat, IDriver *drv, CScene *scene, IVertexBufferHard *vb)=0
 The same as setupForMaterial, but with a hard vb. More...

virtual bool needTangentSpace () const

Detailed Description

Interface to a CMeshGeom/CMeshMRMGeom Special VertexProgram Effect.

Author:
Lionel Berenguier , Nevrax France
Date:
2002

Definition at line 59 of file mesh_vertex_program.h.


Constructor & Destructor Documentation

NL3D::IMeshVertexProgram::IMeshVertexProgram   [inline]
 

Constructor.

Definition at line 64 of file mesh_vertex_program.h.

virtual NL3D::IMeshVertexProgram::~IMeshVertexProgram   [inline, virtual]
 

Definition at line 65 of file mesh_vertex_program.h.


Member Function Documentation

virtual bool NL3D::IMeshVertexProgram::begin IDriver   drv,
CScene   scene,
CMeshBaseInstance   mbi,
const NLMISC::CMatrix   invertedModelMat,
const NLMISC::CVector   viewerPos
[pure virtual]
 

Called to setup constant / activate VertexProgram.

(called before activate of the VB). The result tells wether the vertex program will be used in the given context. If this is the case, a call to setupMaterial must be done for each material being rendered with this V.P. After all primitive have been rendered, end() must be called.

Parameters:
drv  driver where to setup VP.
scene  retrieve some useFull scene info (windPower, time ...)
mbi  the mesh instance to retrieve some instance setup.
mat  the matrix to use (may not be the one of mbi)
viewerPos  position of the viewer in world space.

Implemented in NL3D::CMeshVPPerPixelLight.

virtual void NL3D::IMeshVertexProgram::end IDriver   drv [pure virtual]
 

Typically disable the VertexProgram, or do some uninit.

Implemented in NL3D::CMeshVPPerPixelLight.

virtual void NL3D::IMeshVertexProgram::initInstance CMeshBaseInstance   mbi [pure virtual]
 

Called at creation of an instance, to setup some information directly in the CMeshBaseInstance.

Implemented in NL3D::CMeshVPPerPixelLight.

virtual bool NL3D::IMeshVertexProgram::needTangentSpace   const [inline, virtual]
 

Reimplemented in NL3D::CMeshVPPerPixelLight.

Definition at line 106 of file mesh_vertex_program.h.

virtual void NL3D::IMeshVertexProgram::setupForMaterial const CMaterial   mat,
IDriver   drv,
CScene   scene,
IVertexBufferHard   vb
[pure virtual]
 

The same as setupForMaterial, but with a hard vb.

Implemented in NL3D::CMeshVPPerPixelLight.

virtual void NL3D::IMeshVertexProgram::setupForMaterial const CMaterial   mat,
IDriver   drv,
CScene   scene,
CVertexBuffer   vb
[pure virtual]
 

Setup this shader for the given material.

This may disable the shader if necessary. This is why the vertex buffer is needed : when disabling the v.p we may need to reactivate it

Implemented in NL3D::CMeshVPPerPixelLight.


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