D3DHAL_DP2OPERATION

This enumerated type specifies the D3dDrawPrimitives2 operation in the bCommand member of the D3DHAL_DP2COMMAND structure. The following primitive-rendering enumerators table shows the enumerated operations.

Operation Description
D3DDP2OP_CLIPPEDTRIANGLEFAN This token is sent to the driver to draw transformed, clipped triangle fans. This token is a replacement for the Microsoft DirectX® 7.0 tokens that used inline vertices in the command stream.

The triangle fans are specified by one or more D3DHAL_CLIPPEDTRIANGLEFAN structures.

D3DDP2OP_DRAWINDEXEDPRIMITIVE This token is sent to the driver to draw indexed primitives. D3DDP2OP_DRAWINDEXEDPRIMITIVE2 is used if the vertex data has been transformed by the run time.

The indexed primitives are specified by one or more D3DHAL_DP2DRAWINDEXEDPRIMITIVE structures.

D3DDP2OP_DRAWINDEXEDPRIMITIVE2 This token is sent to the driver to draw indexed primitives if the vertex data has been transformed by the run time. Stream zero contains transform and lit vertices and is the only stream that should be accessed.

The indexed primitives are specified by one or more D3DHAL_DP2DRAWINDEXEDPRIMITIVE2 structures.

D3DDP2OP_DRAWPRIMITIVE This token is sent to the driver to draw nonindexed primitives. D3DDP2OP_DRAWPRIMITIVE2 is used if the vertex data has been transformed by the run time.

The primitives are specified by one or more D3DHAL_DP2DRAWPRIMITIVE structures.

D3DDP2OP_DRAWPRIMITIVE2 This token is sent to the driver to draw nonindexed primitives where the vertex data has been transformed by the run time. Stream zero contains transform and lit vertices and is the only stream that should be accessed.

The primitives are specified by one or more D3DHAL_DP2DRAWPRIMITIVE2 structures.

D3DDP2OP_DRAWRECTPATCH This token is sent to the driver to draw a rectangular patch. This token is sent to the driver when drawing a new patch, drawing a cached patch or to update the specification of a previously defined patch.

The patches are specified by one or more D3DHAL_DP2DRAWRECTPATCH structures.

D3DDP2OP_DRAWTRIPATCH This token is sent to the driver to draw a triangular patch. This token is sent to the driver when drawing a new patch, drawing a cached patch or to update the specification of a previously defined patch.
D3DDP2OP_INDEXEDLINELIST Draws a list of lines, with each line specified by a pair of vertex indexes. The indexed line list is specified by one or more D3DHAL_DP2INDEXEDLINELIST structures.
D3DDP2OP_INDEXEDLINELIST2 Draws a list of lines. A pair of vertex indexes specifies each line, with each offset from the beginning of the vertex buffer by a fixed amount. The indexed line list is specified by one or more D3DHAL_DP2INDEXEDLINELIST structures.
D3DDP2OP_INDEXEDLINESTRIP Draws a connected strip of lines defined by a sequence of vertex indexes. The indexed line strip is specified by a D3DHAL_DP2INDEXEDLINESTRIP structure.
D3DDP2OP_INDEXEDTRIANGLEFAN Draws a triangle fan. The triangle fan is specified by a sequence of vertex indexes. The indexed triangle fan is specified by a D3DHAL_DP2INDEXEDTRIANGLEFAN structure.
D3DDP2OP_INDEXEDTRIANGLELIST Draws a list of triangles. Each triangle is specified by three indexes into the vertex buffer, one index per triangle vertex. The triangle list is specified by one or more D3DHAL_DP2INDEXEDTRIANGLELIST structures.
D3DDP2OP_INDEXEDTRIANGLELIST2 Draws a list of triangles. Each triangle is specified by three indexes into the vertex buffer, one index per triangle vertex. The triangle list is specified by one or more D3DHAL_DP2INDEXEDTRIANGLELIST2 structures.
D3DDP2OP_INDEXEDTRIANGLESTRIP Draws a connected strip of triangles that are specified by a sequence of vertex indexes. The three most current vertex indexes are used to draw each triangle. The indexed triangle list is specified by a D3DHAL_DP2INDEXEDTRIANGLELIST structure.
D3DDP2OP_LINELIST Draws a list of lines. A pair of vertices specifies each line. The vertices are processed in sequential order starting at an initial specified vertex index. The line list is specified by a D3DHAL_DP2LINELIST structure.
D3DDP2OP_LINELIST_IMM Draws a set of lines. A pair of vertices stored in the command stream (immediate data Each line is specified by) specifies each line. The wPrimitiveCount member of the D3DHAL_DP2COMMAND structure specifies how many pairs of vertices follow. The type and size of the vertices are determined by the dwVertexType member of the D3DHAL_DRAWPRIMITIVES2DATA structure.
D3DDP2OP_LINESTRIP Draws a connected strip of lines defined by a sequence of vertices starting at an initial specified vertex index. The line strip is specified by a D3DHAL_DP2LINESTRIP structure.
D3DDP2OP_POINTS Draws a list of indexed or nonindexed points. Each list is specified by one or more D3DHAL_DP2POINTS structures.
D3DDP2OP_TRIANGLEFAN Draws a triangle fan. The fan is specified by a sequence of vertices that start at an initial specified vertex index. The triangle fan is specified by a D3DHAL_DP2TRIANGLEFAN structure.
D3DDP2OP_TRIANGLEFAN_IMM Draws a triangle fan. The fan is specified by a sequence of vertices stored in the command stream (immediate data). The wPrimitiveCount member of the D3DHAL_DP2COMMAND structure specifies the number of triangles to render. The type and size of the vertices are specified by the dwVertexType member of the D3DHAL_DRAWPRIMITIVES2DATA structure.
D3DDP2OP_TRIANGLELIST Draws a list of triangles. Each triangle is specified by three vertices that are processed starting at an initial specified vertex index. The triangles are processed in sequential order. The triangle list is specified by a D3DHAL_DP2TRIANGLELIST structure.
D3DDP2OP_TRIANGLESTRIP Draws a connected strip of triangles. Each triangle is specified by a sequence of vertices starting at an initial specified vertex index. The three most current vertices are used to draw each triangle. The triangle list is specified by a D3DHAL_DP2TRIANGLESTRIP structure.

The following nonprimitive-rendering enumerators table shows the enumerated operations.

Operation Description
D3DDP2OP_BUFFERBLT Specifies a blit operation from a source vertex or index buffer to a destination vertex or index buffer. It is specified by one or more D3DHAL_DP2BUFFERBLT structures.
D3DDP2OP_CLEAR Specifies a clear operation. Replaces the Clear and Clear2 callbacks. See D3DHAL_DP2CLEAR.
D3DDP2OP_CREATELIGHT Creates a light. See D3DHAL_DP2CREATELIGHT.
D3DDP2OP_CREATEPIXELSHADER This token is sent to the driver when a pixel shader is created. This token gives the driver the opportunity to convert the pixel shader code into a hardware specific format and associate this information with the given shader handle.
D3DDP2OP_CREATEVERTEXSHADER This token is sent to the driver when a vertex shader is created. This token gives the driver the opportunity to convert the vertex shader declaration and code into a hardware specific format and associate this information with the given shader handle.
D3DDP2OP_DELETEPIXELSHADER This token is sent to the driver to notify the driver of the deletion of a pixel shader and to give the driver an opportunity to clean up any driver side resources associated with the given pixel shader.

Note that this uses the same structure (D3DHAL_DP2PIXELSHADER) as D3DDP2OP_SETVPIXELSHADER.

D3DDP2OP_DELETEVERTEXSHADER This token is sent to the driver to notify the driver of the deletion of a vertex shader and to give the driver an opportunity to clean up any driver side resources associated with the given vertex shader.

Note that this uses the same structure (D3DHAL_DP2VERTEXSHADER) as D3DDP2OP_SETVERTEXSHADER.

D3DDP2OP_EXT Behavior not yet defined. See D3DHAL_DP2EXT.
D3DDP2OP_MULTIPLYTRANSFORM Multiplies a current transform. See D3DHAL_DP2MULTIPLYTRANSFORM.
D3DDP2OP_RENDERSTATE Specifies a render state change that requires processing. The rendering state to change is specified by one or more D3DHAL_DP2RENDERSTATE structures.
D3DDP2OP_SETCLIPPLANE Specifies that a user-defined clip plane is being used. See D3DHAL_DP2SETCLIPPLANE.
D3DDP2OP_SETINDICES Sets the current index buffer. See D3DHAL_DP2SETINDICES.
D3DDP2OP_SETLIGHT Specifies that a light is being set. See D3DHAL_DP2SETLIGHT.
D3DDP2OP_SETMATERIAL Sets the properties for a material. D3DHAL_DP2SETMATERIAL is a D3DMATERIAL7 structure (described in the DirectX® SDK documentation) that is used to set the material properties.
D3DDP2OP_SETPALETTE Specifies that the palette is being set for a texture. See D3DHAL_DP2SETPALETTE.
D3DDP2OP_SETPIXELSHADER This token is passed to the driver to set the current pixel shader. All subsequent drawing operations should use the given shader until another is selected.

Note that this uses the same structure (D3DHAL_DP2PIXELSHADER) as D3DDP2OP_DELETEPIXELSHADER.

D3DDP2OP_SETPIXELSHADERCONST This token is passed to the driver to set one or more pixel shader constant registers.
D3DDP2OP_SETPRIORITY Sets the priority of a managed texture. See D3DHAL_DP2SETPRIORITY.
D3DDP2OP_SETRENDERTARGET Sets the render target. Direct3D drivers must respond to this opcode exactly the same as with the older SetRenderTarget callback. See D3DHAL_DP2SETRENDERTARGET.
D3DDP2OP_SETSTREAMSOURCE Binds a vertex stream source to a vertex buffer. See D3DHAL_DP2SETSTREAMSOURCE.
D3DDP2OP_SETSTREAMSOURCEUM Binds a vertex stream source to a user memory buffer.
D3DDP2OP_SETTEXLOD Indicates that the level of detail (LOD) for MIP maps is being set. See D3DHAL_DP2SETTEXLOD.
D3DDP2OP_SETTRANSFORM Sets up a transform. See D3DHAL_DP2SETTRANSFORM.
D3DDP2OP_SETVERTEXSHADER This token is passed to the driver to set the current vertex shader. All subsequent drawing operations should use the given shader until another is selected.

Note that this uses the same structure (D3DHAL_DP2VERTEXSHADER) as D3DDP2OP_DELETEVERTEXSHADER.

D3DDP2OP_SETVERTEXSHADERCONST This token is passed to the driver to set one or more vertex shader constant registers.
D3DDP2OP_STATESET Specifies a stateset operation to perform. See D3DHAL_DP2STATESET.
D3DDP2OP_TEXBLT Specifies a blit operation from a source texture to a destination texture. It is used as a more efficient alternative to the Microsoft DirectDraw® Blt DDI. It is specified by one or more D3DHAL_DP2TEXBLT structures. Because Direct3D drivers maintain all the state necessary to do a blit (for example, texture handles and blending modes), a blit can be accomplished with just the information in the D3DDP2OP_TEXBLT opcode. This new token signals the driver that a texture has to be transferred from system memory into local or nonlocal video memory.
D3DDP2OP_TEXTURESTAGESTATE Specifies a texture render state change that requires processing. The render state to change is specified by one or more D3DTEXTURESTAGESTATETYPE values following a D3DHAL_DP2COMMAND.
D3DDP2OP_UPDATEPALETTE Specifies that a texture palette is to be updated. See D3DHAL_DP2UPDATEPALETTE.
D3DDP2OP_VIEWPORTINFO Specifies the clipping rectangle that is used for guard-band clipping by guard-band aware drivers. The clipping rectangle (that is, the viewing rectangle) is specified by the D3DHAL_DP2VIEWPORTINFO structure.
D3DDP2OP_VOLUMEBLT Specifies a blit operation from a source volume texture to a destination volume texture. It is specified by one or more D3DHAL_DP2VOLUMEBLT structures.
D3DDP2OP_WINFO Specifies the w range for w buffering. This range is specified by one or more D3DHAL_DP2WINFO structures.
D3DDP2OP_ZRANGE Specifies the range of z values. See D3DHAL_DP2ZRANGE.

See Also

D3dDrawPrimitives2 | D3DHAL_DP2COMMAND | D3DHAL_CLIPPEDTRIANGLEFAN | D3DHAL_DP2DRAWINDEXEDPRIMITIVE | D3DHAL_DP2DRAWINDEXEDPRIMITIVE2 | D3DHAL_DP2DRAWPRIMITIVE | D3DHAL_DP2DRAWPRIMITIVE2 | D3DHAL_DP2INDEXEDLINESTRIP | D3DHAL_DP2INDEXEDTRIANGLEFAN | D3DHAL_DP2INDEXEDTRIANGLELIST | D3DHAL_DP2INDEXEDTRIANGLELIST2 | D3DHAL_DRAWPRIMITIVES2DATA | D3DHAL_DP2BUFFERBLT | D3DHAL_DP2CLEAR | D3DHAL_DP2CREATELIGHT | D3DHAL_DP2PIXELSHADER | D3DHAL_DP2VERTEXSHADER | D3DHAL_DP2EXT | D3DHAL_DP2MULTIPLYTRANSFORM | D3DHAL_DP2RENDERSTATE | D3DHAL_DP2SETCLIPPLANE | D3DHAL_DP2SETINDICES | D3DHAL_DP2SETLIGHT | D3DHAL_DP2SETPALETTE | D3DHAL_DP2SETPRIORITY | D3DHAL_DP2SETRENDERTARGET | D3DHAL_DP2SETSTREAMSOURCE | D3DHAL_DP2SETTEXLOD | D3DHAL_DP2SETTRANSFORM | D3DHAL_DP2STATESET | D3DHAL_DP2TEXBLT | D3DHAL_DP2UPDATEPALETTE | D3DHAL_DP2VIEWPORTINFO | D3DHAL_DP2WINFO | D3DHAL_DP2ZRANGE | Direct3D Driver Enumerations

 Last updated on Tuesday, May 18, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.