HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
bufferArray.h File Reference
#include "pxr/pxr.h"
#include "pxr/imaging/hd/api.h"
#include "pxr/imaging/hd/version.h"
#include "pxr/imaging/hd/bufferSpec.h"
#include "pxr/base/tf/token.h"
#include "pxr/base/vt/value.h"
#include <atomic>
#include <memory>
#include <mutex>
+ Include dependency graph for bufferArray.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  HdBufferArray
 

Typedefs

using HdBufferArraySharedPtr = std::shared_ptr< class HdBufferArray >
 
using HdBufferArrayRangeSharedPtr = std::shared_ptr< HdBufferArrayRange >
 
using HdBufferArrayRangePtr = std::weak_ptr< HdBufferArrayRange >
 
using HdBufferArrayUsageHint = uint32_t
 

Enumerations

enum  HdBufferArrayUsageHintBits : uint32_t {
  HdBufferArrayUsageHintBitsImmutable = 1 << 0, HdBufferArrayUsageHintBitsSizeVarying = 1 << 1, HdBufferArrayUsageHintBitsUniform = 1 << 2, HdBufferArrayUsageHintBitsStorage = 1 << 3,
  HdBufferArrayUsageHintBitsVertex = 1 << 4, HdBufferArrayUsageHintBitsIndex = 1 << 5
}
 

Typedef Documentation

using HdBufferArrayRangePtr = std::weak_ptr<HdBufferArrayRange>

Definition at line 28 of file bufferArray.h.

Definition at line 27 of file bufferArray.h.

using HdBufferArraySharedPtr = std::shared_ptr<class HdBufferArray>

Definition at line 26 of file bufferArray.h.

using HdBufferArrayUsageHint = uint32_t

Definition at line 60 of file bufferArray.h.

Enumeration Type Documentation

enum HdBufferArrayUsageHintBits : uint32_t

Provides a set of flags that provide hints to the memory management system about the properties of a Buffer Array Range (BAR), so it can efficiently organize that memory. For example, the memory manager should probably not aggregate BARs with different usage hints.

The flag bits are:

  • immutable: The BAR will not be modified once created and populated.
  • sizeVarying: The number of elements in the BAR changes with time.
  • uniform: The BAR can be used as a uniform buffer.
  • storage: The BAR can be used as a shader storage buffer.
  • vertex: The BAR can be used as a vertex buffer.
  • index: The BAR can be used as an index buffer.

Some flag bits may not make sense in combination (i.e. mutually exclusive to each other). For example, it is logically impossible to be both immutable (i.e. not changing) and sizeVarying (changing). However, these logically impossible combinations are not enforced and remain valid potential values.

Enumerator
HdBufferArrayUsageHintBitsImmutable 
HdBufferArrayUsageHintBitsSizeVarying 
HdBufferArrayUsageHintBitsUniform 
HdBufferArrayUsageHintBitsStorage 
HdBufferArrayUsageHintBitsVertex 
HdBufferArrayUsageHintBitsIndex 

Definition at line 51 of file bufferArray.h.