Instance Method

newBufferWithBytes:length:options:

Allocates a new buffer of a given length and initializes its contents by copying existing data into it.

Required.

Declaration

- (id<MTLBuffer>)newBufferWithBytes:(const void *)pointer length:(NSUInteger)length options:(MTLResourceOptions)options;

Parameters

pointer

The memory address from which to copy the initial data.

length

The size, in bytes, of the new buffer memory allocation. This is also the number of bytes that are copied from the pointer argument.

options

Specifies the behavior of the new buffer.

Return Value

A new MTLBuffer object that contains the data copied from the pointer argument.

Discussion

The storage allocation of the new MTLBuffer object is not the same as the storage allocation of the pointer argument.

MTLBuffer objects created with this method are CPU-accessible and can be specified with a MTLResourceStorageModeShared or MTLResourceStorageModeManaged storage mode, but not a MTLResourceStorageModePrivate storage mode.

Topics

Resource Options

MTLResourceOptions

Optional arguments used to set the behavior of a resource.

See Also

Creating Buffers

- newBufferWithLength:options:

Allocates a new zero-filled buffer of a given length.

Required.

- newBufferWithBytesNoCopy:length:options:deallocator:

Creates a buffer by wrapping an existing contiguous memory allocation.

Required.