# DrawMesh

> Records a draw command with the provided triangle-list indexed mesh.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.UIElements](/engine/6000.7/script-reference/unityengine/uielements.md)
* **Assembly:** UnityEngine.UIElementsModule

## DrawMesh(NativeSlice\<Vertex>, NativeSlice\<ushort>, Texture)

Records a draw command with the provided triangle-list indexed mesh.

```csharp
public void DrawMesh(NativeSlice<Vertex> vertices, NativeSlice<ushort> indices, Texture texture = null)
```

### Parameters

**** (\[NativeSlice\<Vertex>]\(/engine/6000.7/script-reference/unity/collections/nativeslice1)): The vertices to be drawn. All referenced vertices must be initialized.**** (\[NativeSlice\<ushort>]\(/engine/6000.7/script-reference/unity/collections/nativeslice1)): The triangle list indices. Must be a multiple of 3. All indices must be initialized.**** (\[Texture]\(/engine/6000.7/script-reference/unityengine/texture)): An optional texture to be applied on the triangles. Pass null to rely on vertex colors only.

## DrawMesh(NativeSlice\<Vertex>, NativeSlice\<ushort>, Texture, TextureOptions)

Records a draw command with the provided triangle-list indexed mesh.

```csharp
public void DrawMesh(NativeSlice<Vertex> vertices, NativeSlice<ushort> indices, Texture texture, TextureOptions textureOptions)
```

### Parameters

**** (\[NativeSlice\<Vertex>]\(/engine/6000.7/script-reference/unity/collections/nativeslice1)): The vertices to be drawn. All referenced vertices must be initialized.**** (\[NativeSlice\<ushort>]\(/engine/6000.7/script-reference/unity/collections/nativeslice1)): The triangle list indices. Must be a multiple of 3. All indices must be initialized.**** (\[Texture]\(/engine/6000.7/script-reference/unityengine/texture)): An optional texture to be applied on the triangles. Pass null to rely on vertex colors only.**** (\[TextureOptions]\(/engine/6000.7/script-reference/unityengine/uielements/textureoptions)): Flags that apply to the provided texture for this draw call.

## DrawMesh(UIMesh, Texture)

Records a draw command with a [UIMesh](/engine/6000.7/script-reference/unityengine/uielements/uimesh.md) bundle.

```csharp
public void DrawMesh(ref UIMesh mesh, Texture texture = null)
```

### Parameters

**** (\[UIMesh]\(/engine/6000.7/script-reference/unityengine/uielements/uimesh)): **** (\[Texture]\(/engine/6000.7/script-reference/unityengine/texture)):&#x20;

### Remarks

See [MeshGenerationContext.DrawMesh](/engine/6000.7/script-reference/unityengine/uielements/meshgenerationcontext/drawmesh.md) for the lifetime contract.

## DrawMesh(UIMesh, Texture, TextureOptions)

Records a draw command with a [UIMesh](/engine/6000.7/script-reference/unityengine/uielements/uimesh.md) bundle.

```csharp
public void DrawMesh(ref UIMesh mesh, Texture texture, TextureOptions textureOptions)
```

### Parameters

**** (\[UIMesh]\(/engine/6000.7/script-reference/unityengine/uielements/uimesh)): **** (\[Texture]\(/engine/6000.7/script-reference/unityengine/texture)): **** (\[TextureOptions]\(/engine/6000.7/script-reference/unityengine/uielements/textureoptions)):&#x20;

## DrawMesh(NativeSlice\<Vertex>, NativeSlice\<ushort>, Texture, int)

Records a draw command and tags it with a user-defined identifier surfaced on `DrawData.userData` in mesh modifiers.

```csharp
public void DrawMesh(NativeSlice<Vertex> vertices, NativeSlice<ushort> indices, Texture texture, int userData)
```

### Parameters

**** (\[NativeSlice\<Vertex>]\(/engine/6000.7/script-reference/unity/collections/nativeslice1)): **** (\[NativeSlice\<ushort>]\(/engine/6000.7/script-reference/unity/collections/nativeslice1)): **** (\[Texture]\(/engine/6000.7/script-reference/unityengine/texture)): **** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)):&#x20;

## DrawMesh(NativeSlice\<Vertex>, NativeSlice\<ushort>, Texture, TextureOptions, int)

Records a draw command and tags it with a user-defined identifier surfaced on `DrawData.userData` in mesh modifiers.

```csharp
public void DrawMesh(NativeSlice<Vertex> vertices, NativeSlice<ushort> indices, Texture texture, TextureOptions textureOptions, int userData)
```

### Parameters

**** (\[NativeSlice\<Vertex>]\(/engine/6000.7/script-reference/unity/collections/nativeslice1)): **** (\[NativeSlice\<ushort>]\(/engine/6000.7/script-reference/unity/collections/nativeslice1)): **** (\[Texture]\(/engine/6000.7/script-reference/unityengine/texture)): **** (\[TextureOptions]\(/engine/6000.7/script-reference/unityengine/uielements/textureoptions)): **** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)):&#x20;

## DrawMesh(UIMesh, Texture, int)

Records a draw command with a [UIMesh](/engine/6000.7/script-reference/unityengine/uielements/uimesh.md) bundle and tags it with a user-defined identifier surfaced on `DrawData.userData` in mesh modifiers.

```csharp
public void DrawMesh(ref UIMesh mesh, Texture texture, int userData)
```

### Parameters

**** (\[UIMesh]\(/engine/6000.7/script-reference/unityengine/uielements/uimesh)): **** (\[Texture]\(/engine/6000.7/script-reference/unityengine/texture)): **** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)):&#x20;

## DrawMesh(UIMesh, Texture, TextureOptions, int)

Records a draw command with a [UIMesh](/engine/6000.7/script-reference/unityengine/uielements/uimesh.md) bundle and tags it with a user-defined identifier surfaced on `DrawData.userData` in mesh modifiers.

```csharp
public void DrawMesh(ref UIMesh mesh, Texture texture, TextureOptions textureOptions, int userData)
```

### Parameters

**** (\[UIMesh]\(/engine/6000.7/script-reference/unityengine/uielements/uimesh)): **** (\[Texture]\(/engine/6000.7/script-reference/unityengine/texture)): **** (\[TextureOptions]\(/engine/6000.7/script-reference/unityengine/uielements/textureoptions)): **** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)):&#x20;
