23#ifndef VCL_BGFX_BUFFERS_GENERIC_BUFFER_H
24#define VCL_BGFX_BUFFERS_GENERIC_BUFFER_H
26#include <vclib/types.h>
42template<
typename BufferHandleType>
54 bool isValid()
const {
return bgfx::isValid(mHandle); }
61 if (bgfx::isValid(mHandle)) {
62 bgfx::destroy(mHandle);
125 static uint64_t flagsForAccess(bgfx::Access::Enum access)
128 case bgfx::Access::Read:
return BGFX_BUFFER_COMPUTE_READ;
129 case bgfx::Access::Write:
return BGFX_BUFFER_COMPUTE_WRITE;
130 case bgfx::Access::ReadWrite:
return BGFX_BUFFER_COMPUTE_READ_WRITE;
131 default:
return BGFX_BUFFER_NONE;
135 static bgfx::AttribType::Enum attributeType(
PrimitiveType type)
138 case PrimitiveType::CHAR:
139 case PrimitiveType::UCHAR:
return bgfx::AttribType::Uint8;
140 case PrimitiveType::SHORT:
141 case PrimitiveType::USHORT:
return bgfx::AttribType::Int16;
142 case PrimitiveType::FLOAT:
return bgfx::AttribType::Float;
145 return bgfx::AttribType::Count;
152 case PrimitiveType::INT:
153 case PrimitiveType::UINT:
return BGFX_BUFFER_INDEX32;
154 case PrimitiveType::FLOAT:
155 return BGFX_BUFFER_COMPUTE_FORMAT_32X1 |
156 BGFX_BUFFER_COMPUTE_TYPE_FLOAT;
157 case PrimitiveType::DOUBLE: assert(0);
158 default:
return BGFX_BUFFER_NONE;
The GenericBuffer manages the lifetime of a bgfx BufferHandle.
Definition generic_buffer.h:44
void destroy()
Destroy the Buffer.
Definition generic_buffer.h:59
GenericBuffer(GenericBuffer &&other) noexcept
Move constructor.
Definition generic_buffer.h:85
GenericBuffer()=default
Empty constructor.
GenericBuffer & operator=(GenericBuffer &&other) noexcept
Move assignment operator.
Definition generic_buffer.h:105
void swap(GenericBuffer &other)
Swap the content of this object with another Buffer object.
Definition generic_buffer.h:116
~GenericBuffer()
Destructor.
Definition generic_buffer.h:92
bool isValid() const
Check if the Buffer is valid.
Definition generic_buffer.h:54
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:43
PrimitiveType
A simple type that enumerates the main primitive types.
Definition base.h:58