D3DOPCODE

typedef enum _D3DOPCODE {

D3DOP_POINT = 1,

D3DOP_LINE = 2,

D3DOP_TRIANGLE = 3,

D3DOP_MATRIXLOAD = 4,

D3DOP_MATRIXMULTIPLY = 5,

D3DOP_STATETRANSFORM = 6,

D3DOP_STATELIGHT = 7,

D3DOP_STATERENDER = 8,

D3DOP_PROCESSVERTICES = 9,

D3DOP_TEXTURELOAD = 10,

D3DOP_EXIT = 11,

D3DOP_BRANCHFORWARD = 12,

D3DOP_SPAN = 13,

D3DOP_SETSTATUS = 14,

} D3DOPCODE;

Contains the opcodes for execute buffers.

D3DOP_POINT

Sends a point to the renderer. Operand data is described by the D3DPOINT structure.

D3DOP_LINE

Sends a line to the renderer. Operand data is described by the D3DLINE structure.

D3DOP_TRIANGLE

Sends a triangle to the renderer. Operand data is described by the D3DTRIANGLE structure.

D3DOP_MATRIXLOAD

Triggers a data transfer in the rendering engine. Operand data is described by the D3DMATRIXLOAD structure.

D3DOP_MATRIXMULTIPLY

Triggers a data transfer in the rendering engine. Operand data is described by the D3DMATRIXMULTIPLY structure.

D3DOP_STATETRANSFORM

Sets the value of internal state variables in the rendering engine for the transformation module. Operand data is a variable token and the new value. The token identifies the internal state variable, and the new value is the value to which that variable should be set. For more information about these variables, see the D3DSTATE structure and the D3DTRANSFORMSTATETYPE enumerated type.

D3DOP_STATELIGHT

Sets the value of internal state variables in the rendering engine for the lighting module. Operand data is a variable token and the new value. The token identifies the internal state variable, and the new value is the value to which that variable should be set. For more information about these variables, see the D3DSTATE structure and the D3DLIGHTSTATETYPE enumerated type.

D3DOP_STATERENDER

Sets the value of internal state variables in the rendering engine for the rendering module. Operand data is a variable token and the new value. The token identifies the internal state variable, and the new value is the value to which that variable should be set. For more information about these variables, see the D3DSTATE structure and the D3DRENDERSTATETYPE enumerated type.

D3DOP_PROCESSVERTICES

Sets both lighting and transformations for vertices. Operand data is described by the D3DPROCESSVERTICES structure.

D3DOP_TEXTURELOAD

Triggers a data transfer in the rendering engine. Operand data is described by the D3DTEXTURELOAD structure.

D3DOP_EXIT

Signals that the end of the list has been reached.

D3DOP_BRANCHFORWARD

Enables a branching mechanism within the execute buffer. For more information, see the D3DBRANCH structure.

D3DOP_SPAN

Spans a list of points with the same y value. For more information, see the D3DSPAN structure.

D3DOP_SETSTATUS

Resets the status of the execute buffer. For more information, see the D3DSTATUS structure.

An execute buffer has two parts: an array of vertices (each typically with position, normal vector, and texture coordinates) and an array of opcode/operand groups. One opcode can have several operands following it; the system simply performs the relevant operation on each operand.