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 of the new buffer, in bytes. 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

maxBufferLength

The maximum size of a buffer, in bytes.

Required.

- 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.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software