NativeBuffer Struct
struct QRhiBuffer::NativeBufferContains information about the underlying native resources of a buffer. More...
Public Variables
Detailed Description
Member Variable Documentation
const void *[3] NativeBuffer::objects
This variable holds an array with pointers to the native object handles.
With OpenGL, the native handle is a GLuint value, so the elements in the objects
array are pointers to a GLuint. With Vulkan, the native handle is a VkBuffer, so the elements of the array are pointers to a VkBuffer. With Direct3D 11 and Metal the elements are pointers to a ID3D11Buffer or MTLBuffer pointer, respectively. With Direct3D 12, the elements are pointers to a ID3D12Resource.
Note: Pay attention to the fact that the elements are always pointers to the native buffer handle type, even if the native type itself is a pointer. (so the elements are VkBuffer *
on Vulkan, even though VkBuffer itself is a pointer on 64-bit architectures).
int NativeBuffer::slotCount
Specifies the number of valid elements in the objects array.
The value can be 0, 1, 2, or 3 in practice. 0 indicates that the QRhiBuffer is not backed by any native buffer objects. This can happen with QRhiBuffers with the usage UniformBuffer when the underlying API does not support (or the backend chooses not to use) native uniform buffers. 1 is commonly used for Immutable and Static types (but some backends may differ). 2 or 3 is typical when the type is Dynamic (but some backends may differ).
See also QRhi::currentFrameSlot() and QRhi::FramesInFlight.