CVPInstruction Struct Reference

#include <vertex_program_parse.h>


Detailed Description

An instruction in a vertex program with its operands.

Definition at line 140 of file vertex_program_parse.h.

Public Types

enum  EOpcode {
  MOV = 0, ARL, MUL, ADD,
  MAD, RSQ, DP3, DP4,
  DST, LIT, MIN, MAX,
  SLT, SGE, EXPP, LOG,
  RCP, OpcodeCount
}

Public Member Functions

uint getNumUsedSrc () const
const CVPOperandgetSrc (uint index) const

Data Fields

CVPOperand Dest
EOpcode Opcode
CVPOperand Src1
CVPOperand Src2
CVPOperand Src3


Member Enumeration Documentation

enum CVPInstruction::EOpcode
 

Enumeration values:
MOV 
ARL 
MUL 
ADD 
MAD 
RSQ 
DP3 
DP4 
DST 
LIT 
MIN 
MAX 
SLT 
SGE 
EXPP 
LOG 
RCP 
OpcodeCount 

Definition at line 142 of file vertex_program_parse.h.

00143         {
00144                 MOV = 0,
00145                 ARL, // in D3D, is equivalent to MOV
00146                 MUL,
00147                 ADD,
00148                 MAD,
00149                 RSQ,
00150                 DP3,
00151                 DP4,
00152                 DST,
00153                 LIT,
00154                 MIN,
00155                 MAX,
00156                 SLT,
00157                 SGE,
00158                 EXPP,
00159                 LOG,
00160                 RCP,            
00161                 OpcodeCount
00162         };


Member Function Documentation

uint CVPInstruction::getNumUsedSrc  )  const
 

Definition at line 108 of file vertex_program_parse.cpp.

References ADD, ARL, DP3, DP4, DST, EXPP, LIT, LOG, MAD, MAX, MIN, MOV, MUL, nlstop, Opcode, RCP, RSQ, SGE, SLT, and uint.

Referenced by dumpInstr(), and getSrc().

00109 {
00110         switch(Opcode)
00111         {
00112                 case CVPInstruction::ARL:               
00113                 case CVPInstruction::RSQ:                       
00114                 case CVPInstruction::EXPP:                      
00115                 case CVPInstruction::LOG:                       
00116                 case CVPInstruction::RCP:                       
00117                 case CVPInstruction::MOV:                       
00118                 case CVPInstruction::LIT:
00119                         return 1;
00120                 //
00121                 case CVPInstruction::MAD:
00122                         return 3;
00123                 //
00124                 case CVPInstruction::MUL:
00125                 case CVPInstruction::ADD:
00126                 case CVPInstruction::DP3:
00127                 case CVPInstruction::DP4:                       
00128                 case CVPInstruction::DST:       
00129                 case CVPInstruction::MIN:
00130                 case CVPInstruction::MAX:       
00131                 case CVPInstruction::SLT:       
00132                 case CVPInstruction::SGE:
00133                         return 2;
00134                 //
00135                 default:
00136                         nlstop;         
00137         }
00138         return 0;
00139 }

const CVPOperand& CVPInstruction::getSrc uint  index  )  const [inline]
 

Definition at line 169 of file vertex_program_parse.h.

References getNumUsedSrc(), index, nlassert, nlstop, Src1, Src2, Src3, and uint.

Referenced by dumpInstr().

00170         {
00171                 nlassert(index < getNumUsedSrc());
00172                 switch(index)
00173                 {
00174                         case 0: return Src1;
00175                         case 1: return Src2;
00176                         case 2: return Src3;
00177                         default: nlstop;
00178                 }
00179                 return Src1; // avoid warning
00180         }


Field Documentation

CVPOperand CVPInstruction::Dest
 

Definition at line 164 of file vertex_program_parse.h.

Referenced by dumpInstr(), CVPParser::parseInstruction(), and CVPParser::parseOp2().

EOpcode CVPInstruction::Opcode
 

Definition at line 163 of file vertex_program_parse.h.

Referenced by dumpInstr(), getNumUsedSrc(), and CVPParser::parseInstruction().

CVPOperand CVPInstruction::Src1
 

Definition at line 165 of file vertex_program_parse.h.

Referenced by getSrc(), CVPParser::parseInstruction(), CVPParser::parseOp2(), CVPParser::parseOp3(), and CVPParser::parseOp4().

CVPOperand CVPInstruction::Src2
 

Definition at line 166 of file vertex_program_parse.h.

Referenced by getSrc(), CVPParser::parseOp3(), and CVPParser::parseOp4().

CVPOperand CVPInstruction::Src3
 

Definition at line 167 of file vertex_program_parse.h.

Referenced by getSrc(), and CVPParser::parseOp4().


The documentation for this struct was generated from the following files:
Generated on Tue Mar 16 06:43:55 2004 for NeL by doxygen 1.3.6