---
title: SCNBufferStream
framework: scenekit
role: symbol
role_heading: Protocol
path: scenekit/scnbufferstream
---

# SCNBufferStream

An object that manages a Metal buffer used by a custom shader program.

## Declaration

```swift
protocol SCNBufferStream : NSObjectProtocol
```

## Overview

Overview Your app does not define classes that implement this protocol. Instead, you use the SCNProgram method handleBinding(ofBufferNamed:frequency:handler:) to register a block to be called by SceneKit. In that block, SceneKit provides a buffer stream object that you can use to write data to the buffer.

## Topics

### Writing Data to a Buffer

- [writeBytes(_:count:)](scenekit/scnbufferstream/writebytes(_:count:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Renderer Customization

- [SCNShadable](scenekit/scnshadable.md)
- [SCNProgram](scenekit/scnprogram.md)
- [SCNTechnique](scenekit/scntechnique.md)
- [SCNTechniqueSupport](scenekit/scntechniquesupport.md)
- [SCNNodeRendererDelegate](scenekit/scnnoderendererdelegate.md)
- [Postprocessing a Scene With Custom Symbols](scenekit/postprocessing-a-scene-with-custom-symbols.md)
