---
title: LowLevelRenderContext
framework: realitykit
role: symbol
role_heading: Protocol
path: realitykit/lowlevelrendercontext
---

# LowLevelRenderContext

An entry point for creating rendering resources and compiling materials.

## Declaration

```swift
protocol LowLevelRenderContext : AnyObject
```

## Overview

Overview Use a LowLevelRenderContext to construct meshes, textures, buffers, argument tables, materials, and pipeline states. These objects are assembled into a LowLevelMeshInstanceArray consumed each frame by LowLevelRenderer.

## Topics

### Accessing the render context

- [device](realitykit/lowlevelrendercontext/device.md)
- [shaderGraph](realitykit/lowlevelrendercontext/shadergraph.md)

### Creating resources

- [makeBufferResource(descriptor:)](realitykit/lowlevelrendercontext/makebufferresource(descriptor:).md)
- [makeTextureResource(descriptor:)](realitykit/lowlevelrendercontext/maketextureresource(descriptor:).md)
- [makeMaterialResource(descriptor:)](realitykit/lowlevelrendercontext/makematerialresource(descriptor:)-8hizx.md)
- [makeMaterialResource(descriptor:)](realitykit/lowlevelrendercontext/makematerialresource(descriptor:)-9nufj.md)

### Creating meshes

- [makeMeshResource(descriptor:)](realitykit/lowlevelrendercontext/makemeshresource(descriptor:).md)
- [makeMeshPart(resource:indexOffset:indexCount:primitive:windingOrder:bounds:)](realitykit/lowlevelrendercontext/makemeshpart(resource:indexoffset:indexcount:primitive:windingorder:bounds:).md)
- [makeMeshInstance(meshPart:pipeline:geometryArguments:surfaceArguments:lightingArguments:transform:sortCategory:)](realitykit/lowlevelrendercontext/makemeshinstance(meshpart:pipeline:geometryarguments:surfacearguments:lightingarguments:transform:sortcategory:).md)
- [makeMeshInstanceArray(renderTargets:count:)](realitykit/lowlevelrendercontext/makemeshinstancearray(rendertargets:count:).md)
- [makeInstanceTransformResource(instanceCapacity:)](realitykit/lowlevelrendercontext/makeinstancetransformresource(instancecapacity:).md)

### Creating pipeline state

- [makeRenderPipelineState(descriptor:)](realitykit/lowlevelrendercontext/makerenderpipelinestate(descriptor:)-7j32p.md)
- [makeRenderPipelineState(descriptor:)](realitykit/lowlevelrendercontext/makerenderpipelinestate(descriptor:)-55ty6.md)
- [makeArgumentTable(descriptor:buffers:textures:)](realitykit/lowlevelrendercontext/makeargumenttable(descriptor:buffers:textures:).md)

### Creating surface shaders

- [makeSurfaceShader(descriptor:)](realitykit/lowlevelrendercontext/makesurfaceshader(descriptor:)-66tq8.md)
- [makeSurfaceShader(descriptor:)](realitykit/lowlevelrendercontext/makesurfaceshader(descriptor:)-9kdy6.md)
- [makeSimpleSurfaceShader(descriptor:)](realitykit/lowlevelrendercontext/makesimplesurfaceshader(descriptor:)-74vhb.md)
- [makeSimpleSurfaceShader(descriptor:)](realitykit/lowlevelrendercontext/makesimplesurfaceshader(descriptor:)-14ppx.md)

### Creating geometry modifiers

- [makeGeometryModifier(descriptor:)](realitykit/lowlevelrendercontext/makegeometrymodifier(descriptor:)-307ec.md)
- [makeGeometryModifier(descriptor:)](realitykit/lowlevelrendercontext/makegeometrymodifier(descriptor:)-9tq7q.md)
- [makeDefaultGeometryModifier()](realitykit/lowlevelrendercontext/makedefaultgeometrymodifier().md)

### Synchronizing command buffers

- [waitForCommandBuffer(_:)](realitykit/lowlevelrendercontext/waitforcommandbuffer(_:).md)

### Instance Properties

- [lighting](realitykit/lowlevelrendercontext/lighting.md)

### Instance Methods

- [makeGeometryModifier(descriptor:)](realitykit/lowlevelrendercontext/makegeometrymodifier(descriptor:).md)
- [makeMaterialResource(descriptor:)](realitykit/lowlevelrendercontext/makematerialresource(descriptor:).md)
- [makeRenderPipelineState(descriptor:)](realitykit/lowlevelrendercontext/makerenderpipelinestate(descriptor:).md)
- [makeSimpleSurfaceShader(descriptor:)](realitykit/lowlevelrendercontext/makesimplesurfaceshader(descriptor:).md)
- [makeSurfaceShader(descriptor:)](realitykit/lowlevelrendercontext/makesurfaceshader(descriptor:).md)

## Relationships

### Conforming Types

- [LowLevelRenderContextStandalone](realitykit/lowlevelrendercontextstandalone.md)

## See Also

### Render contexts

- [LowLevelRenderer](realitykit/lowlevelrenderer.md)
- [LowLevelRenderContextLighting](realitykit/lowlevelrendercontextlighting.md)
- [LowLevelRenderContextShaderGraph](realitykit/lowlevelrendercontextshadergraph.md)
- [LowLevelRenderContextStandalone](realitykit/lowlevelrendercontextstandalone.md)
- [LowLevelRenderContextError](realitykit/lowlevelrendercontexterror.md)
- [LowLevelRendererError](realitykit/lowlevelrenderererror.md)
