NL3D::CVertexProgram Class Reference

#include <vertex_program.h>

Inheritance diagram for NL3D::CVertexProgram:

NLMISC::CRefCount

Detailed Description

This class is a vertex program.

D3D / OPENGL compatibility notes: ---------------------------------

To make your program compatible with D3D and OPENGL nel drivers, please follow thoses directives to write your vertex programs

-> Thoses programs work without any change under OpenGL. -> Direct3D driver implementation will have to modify the syntax on the fly before the setup like this:

Behaviour of LOG may change depending on implementation: You can only expect to have dest.z = log2(abs(src.w)). LIT may or may not clamp the specular exponent to [-128, 128] (not done when EXT_vertex_shader is used for example ..)

Depending on the implementation, some optimizations can be achieved by masking the unused output values of instructions as LIT, EXPP ..

Author:
Cyril 'Hulud' Corvazier

Nevrax France

Date:
2001

Definition at line 92 of file vertex_program.h.

Public Member Functions

 CVertexProgram (const char *program)
 Constructor.

const std::string & getProgram () const
 Get the program.

const sintgetRefCount () const
virtual ~CVertexProgram ()
 Destructor.


Data Fields

NLMISC::CRefPtr< IVertexProgramDrvInfos_DrvInfo
 The driver informations. For the driver implementation only.

sint crefs
CPtrInfo * pinfo

Static Public Attributes

CPtrInfo NullPtrInfo

Private Attributes

std::string _Program
 The progam.


Friends

struct CPtrInfo


Constructor & Destructor Documentation

NL3D::CVertexProgram::CVertexProgram const char *  program  ) 
 

Constructor.

Definition at line 53 of file vertex_program.cpp.

References _Program, and program.

00054 {
00055         _Program=program;
00056 }

NL3D::CVertexProgram::~CVertexProgram  )  [virtual]
 

Destructor.

Definition at line 60 of file vertex_program.cpp.

References _DrvInfo, and NLMISC::CRefPtr< IVertexProgramDrvInfos >::kill().

00061 {
00062         // Must kill the drv mirror of this VB.
00063         _DrvInfo.kill();
00064 }


Member Function Documentation

const std::string& NL3D::CVertexProgram::getProgram  )  const [inline]
 

Get the program.

Definition at line 103 of file vertex_program.h.

References _Program.

00103 { return _Program; };

const sint& NLMISC::CRefCount::getRefCount  )  const [inline, inherited]
 

Definition at line 70 of file smart_ptr.h.

References NLMISC::CRefCount::crefs, and sint.

00071         {
00072                 return  crefs;
00073         }


Friends And Related Function Documentation

friend struct CPtrInfo [friend, inherited]
 

Definition at line 67 of file smart_ptr.h.


Field Documentation

NLMISC::CRefPtr<IVertexProgramDrvInfos> NL3D::CVertexProgram::_DrvInfo
 

The driver informations. For the driver implementation only.

Definition at line 111 of file vertex_program.h.

Referenced by NL3D::CDriverGL::setupGlArraysForEXTVertexShader(), NL3D::CDriverGL::toggleGlArraysForEXTVertexShader(), and ~CVertexProgram().

std::string NL3D::CVertexProgram::_Program [private]
 

The progam.

Definition at line 107 of file vertex_program.h.

Referenced by CVertexProgram(), and getProgram().

sint NLMISC::CRefCount::crefs [mutable, inherited]
 

Definition at line 79 of file smart_ptr.h.

Referenced by NLMISC::CRefCount::CRefCount(), NLMISC::CRefCount::getRefCount(), and NLMISC::CRefCount::~CRefCount().

CRefCount::CPtrInfo NLMISC::CRefCount::NullPtrInfo [static, inherited]
 

Referenced by NLMISC::CRefCount::CRefCount().

CPtrInfo* NLMISC::CRefCount::pinfo [mutable, inherited]
 

Definition at line 80 of file smart_ptr.h.

Referenced by NLMISC::CRefCount::CRefCount(), and NLMISC::CRefCount::~CRefCount().


The documentation for this class was generated from the following files:
Generated on Tue Mar 16 08:26:01 2004 for NeL by doxygen 1.3.6