22 uint32_t nElements = 0;
26 bool UniformBuffer : 1 =
false;
27 bool StorageBuffer : 1 =
false;
28 bool IndexBuffer : 1 =
false;
29 bool VertexBuffer : 1 =
false;
30 bool IndirectBuffer : 1 =
false;
36 BufferConfig(
decltype(nElements) size,
decltype(type) type,
decltype(stride) stride,
decltype(access) access,
decltype(options) options = {}) : nElements(size), type(type), stride(stride), access(access), options(options) {}
39 BufferConfig(
decltype(type) type,
decltype(stride) stride,
decltype(access) access,
decltype(options) options = {}) : BufferConfig(sizeof(T) / stride, type, stride, access, options) {}
42 BufferConfig(
decltype(type) type,
decltype(stride) stride,
const T& t,
decltype(access) access,
decltype(options) options = {}) : BufferConfig(sizeof(T) / stride, type, stride, access, options) {}
61 virtual void SignalRangeChanged(
const Range&) = 0;
75 virtual decltype(BufferConfig::nElements) getBufferSize()
const = 0;
77 virtual void* GetMappedDataPtr() = 0;
79 virtual uint32_t GetReadonlyBindlessGPUHandle()
const = 0;
80 virtual uint32_t GetReadwriteBindlessGPUHandle()
const = 0;