# Graphics

> Raw interface to Unity's drawing functions.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine](/engine/6000.6/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public class Graphics
```

## Remarks

This is the high-level shortcut into the optimized mesh drawing functionality of Unity.

## Static Properties

| Property                                                                                                     | Description                                                                                                                               |
| ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
| [activeColorBuffer](/engine/6000.6/script-reference/unityengine/graphics/activecolorbuffer.md)               | Currently active color buffer (Read Only).                                                                                                |
| [activeColorGamut](/engine/6000.6/script-reference/unityengine/graphics/activecolorgamut.md)                 | Returns the currently active color gamut.                                                                                                 |
| [activeDepthBuffer](/engine/6000.6/script-reference/unityengine/graphics/activedepthbuffer.md)               | Currently active depth/stencil buffer (Read Only).                                                                                        |
| [activeTier](/engine/6000.6/script-reference/unityengine/graphics/activetier.md)                             | The [GraphicsTier](/engine/6000.6/script-reference/unityengine/rendering/graphicstier.md) for the current device.                         |
| [minOpenGLESVersion](/engine/6000.6/script-reference/unityengine/graphics/minopenglesversion.md)             | The minimum OpenGL ES version. The value is specified in [PlayerSettings](/engine/6000.6/script-reference/unityeditor/playersettings.md). |
| [preserveFramebufferAlpha](/engine/6000.6/script-reference/unityengine/graphics/preserveframebufferalpha.md) | True when rendering over native UI is enabled in Player Settings (readonly).                                                              |

## Static Methods

| Method                                                                                                                     | Description                                                                                                                                                                                                                                                                                                       |
| -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Blit](/engine/6000.6/script-reference/unityengine/graphics/blit.md)                                                       | Uses a shader to copy the pixel data from a texture into a render target.                                                                                                                                                                                                                                         |
| [BlitMultiTap](/engine/6000.6/script-reference/unityengine/graphics/blitmultitap.md)                                       | Copies source texture into destination, for multi-tap shader.                                                                                                                                                                                                                                                     |
| [ClearRandomWriteTargets](/engine/6000.6/script-reference/unityengine/graphics/clearrandomwritetargets.md)                 | Unset random write targets for [Shader Model 4.5](/engine/6000.6/manual/materials-and-shaders/shaders/writing-custom/shader-writing/writing-shader-tags/sl-shader-compile-targets.md) level pixel shaders.                                                                                                        |
| [ConvertTexture](/engine/6000.6/script-reference/unityengine/graphics/converttexture.md)                                   | Copies the pixel data from one texture, converts the data into a different format, and copies it into another texture.                                                                                                                                                                                            |
| [CopyBuffer](/engine/6000.6/script-reference/unityengine/graphics/copybuffer.md)                                           | Copies the contents of one [GraphicsBuffer](/engine/6000.6/script-reference/unityengine/graphicsbuffer.md) into another.                                                                                                                                                                                          |
| [CopyTexture](/engine/6000.6/script-reference/unityengine/graphics/copytexture.md)                                         | Copies pixel data from one texture to another.                                                                                                                                                                                                                                                                    |
| [CreateAsyncGraphicsFence](/engine/6000.6/script-reference/unityengine/graphics/createasyncgraphicsfence.md)               | Shortcut for calling [Graphics.CreateGraphicsFence](/engine/6000.6/script-reference/unityengine/graphics/creategraphicsfence.md) with [GraphicsFenceType.AsyncQueueSynchronisation](/engine/6000.6/script-reference/unityengine/rendering/graphicsfencetype/asyncqueuesynchronisation.md) as the first parameter. |
| [CreateGraphicsFence](/engine/6000.6/script-reference/unityengine/graphics/creategraphicsfence.md)                         | Creates a [GraphicsFence](/engine/6000.6/script-reference/unityengine/rendering/graphicsfence.md).                                                                                                                                                                                                                |
| [DrawMesh](/engine/6000.6/script-reference/unityengine/graphics/drawmesh.md)                                               | Draw a mesh.                                                                                                                                                                                                                                                                                                      |
| [DrawMeshInstanced](/engine/6000.6/script-reference/unityengine/graphics/drawmeshinstanced.md)                             | Draws the same mesh multiple times using GPU instancing.                                                                                                                                                                                                                                                          |
| [DrawMeshInstancedIndirect](/engine/6000.6/script-reference/unityengine/graphics/drawmeshinstancedindirect.md)             | This function is now obsolete. Use [Graphics.RenderMeshIndirect](/engine/6000.6/script-reference/unityengine/graphics/rendermeshindirect.md) instead. Draws the same mesh multiple times using GPU instancing.                                                                                                    |
| [DrawMeshInstancedProcedural](/engine/6000.6/script-reference/unityengine/graphics/drawmeshinstancedprocedural.md)         | This function is now obsolete. Use [Graphics.RenderMeshPrimitives](/engine/6000.6/script-reference/unityengine/graphics/rendermeshprimitives.md) instead. Draws the same mesh multiple times using GPU instancing.                                                                                                |
| [DrawMeshNow](/engine/6000.6/script-reference/unityengine/graphics/drawmeshnow.md)                                         | Draw a mesh immediately.                                                                                                                                                                                                                                                                                          |
| [DrawProcedural](/engine/6000.6/script-reference/unityengine/graphics/drawprocedural.md)                                   | This function is now obsolete. For non-indexed rendering, use  instead. For indexed rendering, use [Graphics.RenderPrimitivesIndexed](/engine/6000.6/script-reference/unityengine/graphics/renderprimitivesindexed.md). Draws procedural geometry on the GPU.                                                     |
| [DrawProceduralIndirect](/engine/6000.6/script-reference/unityengine/graphics/drawproceduralindirect.md)                   | Draws procedural geometry on the GPU.                                                                                                                                                                                                                                                                             |
| [DrawProceduralIndirectNow](/engine/6000.6/script-reference/unityengine/graphics/drawproceduralindirectnow.md)             | Draws procedural geometry on the GPU.                                                                                                                                                                                                                                                                             |
| [DrawProceduralNow](/engine/6000.6/script-reference/unityengine/graphics/drawproceduralnow.md)                             | Draws procedural geometry on the GPU.                                                                                                                                                                                                                                                                             |
| [DrawTexture](/engine/6000.6/script-reference/unityengine/graphics/drawtexture.md)                                         | Draw a texture in screen coordinates.                                                                                                                                                                                                                                                                             |
| [ExecuteCommandBuffer](/engine/6000.6/script-reference/unityengine/graphics/executecommandbuffer.md)                       | Execute a command buffer.                                                                                                                                                                                                                                                                                         |
| [ExecuteCommandBufferAsync](/engine/6000.6/script-reference/unityengine/graphics/executecommandbufferasync.md)             | Executes a command buffer on an async compute queue with the queue selected based on the [ComputeQueueType](/engine/6000.6/script-reference/unityengine/rendering/computequeuetype.md) parameter passed.                                                                                                          |
| [RenderMesh](/engine/6000.6/script-reference/unityengine/graphics/rendermesh.md)                                           | Renders a mesh with given rendering parameters.                                                                                                                                                                                                                                                                   |
| [RenderMeshIndirect](/engine/6000.6/script-reference/unityengine/graphics/rendermeshindirect.md)                           | Renders multiple instances of a mesh using GPU instancing and rendering command arguments from `argsBuffer`.                                                                                                                                                                                                      |
| [RenderMeshInstanced](/engine/6000.6/script-reference/unityengine/graphics/rendermeshinstanced.md)                         | Renders multiple instances of a mesh using GPU instancing.                                                                                                                                                                                                                                                        |
| [RenderMeshPrimitives](/engine/6000.6/script-reference/unityengine/graphics/rendermeshprimitives.md)                       | Renders multiple instances of a Mesh using GPU instancing and a custom shader.                                                                                                                                                                                                                                    |
| [RenderPrimitives](/engine/6000.6/script-reference/unityengine/graphics/renderprimitives.md)                               | Renders non-indexed primitives with GPU instancing and a custom shader.                                                                                                                                                                                                                                           |
| [RenderPrimitivesIndexed](/engine/6000.6/script-reference/unityengine/graphics/renderprimitivesindexed.md)                 | Renders indexed primitives with GPU instancing and a custom shader.                                                                                                                                                                                                                                               |
| [RenderPrimitivesIndexedIndirect](/engine/6000.6/script-reference/unityengine/graphics/renderprimitivesindexedindirect.md) | Renders indexed primitives with GPU instancing and a custom shader with rendering command arguments from `commandBuffer`.                                                                                                                                                                                         |
| [RenderPrimitivesIndirect](/engine/6000.6/script-reference/unityengine/graphics/renderprimitivesindirect.md)               | Renders primitives with GPU instancing and a custom shader using rendering command arguments from `argsBuffer`.                                                                                                                                                                                                   |
| [RenderSprite](/engine/6000.6/script-reference/unityengine/graphics/rendersprite.md)                                       | Renders a sprite with the provided rendering parameters and sprite parameters.                                                                                                                                                                                                                                    |
| [RenderSpriteInstanced](/engine/6000.6/script-reference/unityengine/graphics/renderspriteinstanced.md)                     | Renders multiple instances of a sprite using GPU instancing.                                                                                                                                                                                                                                                      |
| [SetRandomWriteTarget](/engine/6000.6/script-reference/unityengine/graphics/setrandomwritetarget.md)                       | Set random write target for [Shader Model 4.5](/engine/6000.6/manual/materials-and-shaders/shaders/writing-custom/shader-writing/writing-shader-tags/sl-shader-compile-targets.md) level pixel shaders.                                                                                                           |
| [SetRenderTarget](/engine/6000.6/script-reference/unityengine/graphics/setrendertarget.md)                                 | Sets current render target.                                                                                                                                                                                                                                                                                       |
| [WaitOnAsyncGraphicsFence](/engine/6000.6/script-reference/unityengine/graphics/waitonasyncgraphicsfence.md)               | Instructs the GPU to pause processing of the queue until it passes through the [GraphicsFence](/engine/6000.6/script-reference/unityengine/rendering/graphicsfence.md) fence.                                                                                                                                     |
