D3D_PRIMITIVE_TOPOLOGY enumeration (d3dcommon.h)

Values that indicate how the pipeline interprets vertex data that is bound to the input-assembler stage. These primitive topology values determine how the vertex data is rendered on screen.

Note

For programming with Direct3D 10, this API has a type alias that begins D3D10_ instead of D3D_. These Direct3D 10 type aliases are defined in d3d10.h, d3d10misc.h, and d3d10shader.h.

Syntax

typedef enum D3D_PRIMITIVE_TOPOLOGY {
  D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
  D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
  D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2,
  D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
  D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
  D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
  D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN,
  D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
  D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
  D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
  D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
  D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
  D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34,
  D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35,
  D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36,
  D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37,
  D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38,
  D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39,
  D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40,
  D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41,
  D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42,
  D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43,
  D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44,
  D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45,
  D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46,
  D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47,
  D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48,
  D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49,
  D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50,
  D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51,
  D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52,
  D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53,
  D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54,
  D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55,
  D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56,
  D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57,
  D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58,
  D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59,
  D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60,
  D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61,
  D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62,
  D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63,
  D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64,
  D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED,
  D3D10_PRIMITIVE_TOPOLOGY_POINTLIST,
  D3D10_PRIMITIVE_TOPOLOGY_LINELIST,
  D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP,
  D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
  D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
  D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
  D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
  D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
  D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
  D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED,
  D3D11_PRIMITIVE_TOPOLOGY_POINTLIST,
  D3D11_PRIMITIVE_TOPOLOGY_LINELIST,
  D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP,
  D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
  D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
  D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
  D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
  D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
  D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
  D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST,
  D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
} ;

Constants

 
D3D_PRIMITIVE_TOPOLOGY_UNDEFINED
Value: 0
The IA stage has not been initialized with a primitive topology. The IA stage will not function properly unless a primitive topology is defined.
D3D_PRIMITIVE_TOPOLOGY_POINTLIST
Value: 1
Interpret the vertex data as a list of points.
D3D_PRIMITIVE_TOPOLOGY_LINELIST
Value: 2
Interpret the vertex data as a list of lines.
D3D_PRIMITIVE_TOPOLOGY_LINESTRIP
Value: 3
Interpret the vertex data as a line strip.
D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST
Value: 4
Interpret the vertex data as a list of triangles.
D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP
Value: 5
Interpret the vertex data as a triangle strip.
D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ
Value: 10
Interpret the vertex data as a list of lines with adjacency data.
D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ
Value: 11
Interpret the vertex data as a line strip with adjacency data.
D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
Value: 12
Interpret the vertex data as a list of triangles with adjacency data.
D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
Value: 13
Interpret the vertex data as a triangle strip with adjacency data.
D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST
Value: 33
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST
Value: 34
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST
Value: 35
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST
Value: 36
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST
Value: 37
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST
Value: 38
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST
Value: 39
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST
Value: 40
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST
Value: 41
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST
Value: 42
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST
Value: 43
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST
Value: 44
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST
Value: 45
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST
Value: 46
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST
Value: 47
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST
Value: 48
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST
Value: 49
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST
Value: 50
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST
Value: 51
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST
Value: 52
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST
Value: 53
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST
Value: 54
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST
Value: 55
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST
Value: 56
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST
Value: 57
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST
Value: 58
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST
Value: 59
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST
Value: 60
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST
Value: 61
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST
Value: 62
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST
Value: 63
Interpret the vertex data as a patch list.
D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
Value: 64
Interpret the vertex data as a patch list.
D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED
The IA stage has not been initialized with a primitive topology. The IA stage will not function properly unless a primitive topology is defined.
D3D10_PRIMITIVE_TOPOLOGY_POINTLIST
Interpret the vertex data as a list of points.
D3D10_PRIMITIVE_TOPOLOGY_LINELIST
Interpret the vertex data as a list of lines.
D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP
Interpret the vertex data as a line strip.
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST
Interpret the vertex data as a list of triangles.
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP
Interpret the vertex data as a triangle strip.
D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ
Interpret the vertex data as a list of lines with adjacency data.
D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ
Interpret the vertex data as a line strip with adjacency data.
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
Interpret the vertex data as a list of triangles with adjacency data.
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
Interpret the vertex data as a triangle strip with adjacency data.
D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED
The IA stage has not been initialized with a primitive topology. The IA stage will not function properly unless a primitive topology is defined.
D3D11_PRIMITIVE_TOPOLOGY_POINTLIST
Interpret the vertex data as a list of points.
D3D11_PRIMITIVE_TOPOLOGY_LINELIST
Interpret the vertex data as a list of lines.
D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP
Interpret the vertex data as a line strip.
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST
Interpret the vertex data as a list of triangles.
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP
Interpret the vertex data as a triangle strip.
D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ
Interpret the vertex data as a list of lines with adjacency data.
D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ
Interpret the vertex data as a line strip with adjacency data.
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
Interpret the vertex data as a list of triangles with adjacency data.
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
Interpret the vertex data as a triangle strip with adjacency data.
D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.
D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
Interpret the vertex data as a patch list.

Remarks

Use the ID3D11DeviceContext::IASetPrimitiveTopology method and a value from D3D_PRIMITIVE_TOPOLOGY to bind a primitive topology to the input-assembler stage. Use the ID3D11DeviceContext::IAGetPrimitiveTopology method to retrieve the primitive topology for the input-assembler stage.

The following diagram shows the various primitive types for a geometry shader object.

Illustration of the various primitive types for a geometry shader object

Requirements

Requirement Value
Header d3dcommon.h

See also

Common Version Enumerations