mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-23 12:24:29 +02:00
Consolidate BufferView ctors to cpp
This commit is contained in:
parent
7b49552066
commit
263dcbb535
2 changed files with 39 additions and 59 deletions
|
@ -325,3 +325,26 @@ Buffer::Size Buffer::append(Size size, const Byte* data) {
|
||||||
return newSize;
|
return newSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Element BufferView::DEFAULT_ELEMENT = Element( gpu::SCALAR, gpu::UINT8, gpu::RAW );
|
||||||
|
|
||||||
|
BufferView::BufferView() :
|
||||||
|
BufferView(DEFAULT_ELEMENT) {}
|
||||||
|
|
||||||
|
BufferView::BufferView(const Element& element) :
|
||||||
|
BufferView(BufferPointer(), element) {}
|
||||||
|
|
||||||
|
BufferView::BufferView(Buffer* newBuffer, const Element& element) :
|
||||||
|
BufferView(BufferPointer(newBuffer), element) {}
|
||||||
|
|
||||||
|
BufferView::BufferView(const BufferPointer& buffer, const Element& element) :
|
||||||
|
BufferView(buffer, DEFAULT_OFFSET, buffer ? buffer->getSize() : 0, element.getSize(), element) {}
|
||||||
|
|
||||||
|
BufferView::BufferView(const BufferPointer& buffer, Size offset, Size size, const Element& element) :
|
||||||
|
BufferView(buffer, offset, size, element.getSize(), element) {}
|
||||||
|
|
||||||
|
BufferView::BufferView(const BufferPointer& buffer, Size offset, Size size, uint16 stride, const Element& element) :
|
||||||
|
_buffer(buffer),
|
||||||
|
_offset(offset),
|
||||||
|
_size(size),
|
||||||
|
_element(element),
|
||||||
|
_stride(stride) {}
|
||||||
|
|
|
@ -174,73 +174,30 @@ typedef std::vector< BufferPointer > Buffers;
|
||||||
|
|
||||||
|
|
||||||
class BufferView {
|
class BufferView {
|
||||||
protected:
|
protected:
|
||||||
void initFromBuffer(const BufferPointer& buffer) {
|
static const Resource::Size DEFAULT_OFFSET{ 0 };
|
||||||
_buffer = (buffer);
|
static const Element DEFAULT_ELEMENT;
|
||||||
if (_buffer) {
|
|
||||||
_size = (buffer->getSize());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public:
|
public:
|
||||||
typedef Resource::Size Size;
|
using Size = Resource::Size;
|
||||||
typedef int Index;
|
using Index = int;
|
||||||
|
|
||||||
BufferPointer _buffer;
|
BufferPointer _buffer;
|
||||||
Size _offset{ 0 };
|
Size _offset;
|
||||||
Size _size{ 0 };
|
Size _size;
|
||||||
Element _element;
|
Element _element;
|
||||||
uint16 _stride{ 1 };
|
uint16 _stride;
|
||||||
|
|
||||||
BufferView() :
|
|
||||||
_buffer(NULL),
|
|
||||||
_offset(0),
|
|
||||||
_size(0),
|
|
||||||
_element(gpu::SCALAR, gpu::UINT8, gpu::RAW),
|
|
||||||
_stride(1)
|
|
||||||
{};
|
|
||||||
|
|
||||||
BufferView(const Element& element) :
|
|
||||||
_buffer(NULL),
|
|
||||||
_offset(0),
|
|
||||||
_size(0),
|
|
||||||
_element(element),
|
|
||||||
_stride(uint16(element.getSize()))
|
|
||||||
{};
|
|
||||||
|
|
||||||
// create the BufferView and own the Buffer
|
|
||||||
BufferView(Buffer* newBuffer, const Element& element = Element(gpu::SCALAR, gpu::UINT8, gpu::RAW)) :
|
|
||||||
_offset(0),
|
|
||||||
_element(element),
|
|
||||||
_stride(uint16(element.getSize()))
|
|
||||||
{
|
|
||||||
initFromBuffer(BufferPointer(newBuffer));
|
|
||||||
};
|
|
||||||
BufferView(const BufferPointer& buffer, const Element& element = Element(gpu::SCALAR, gpu::UINT8, gpu::RAW)) :
|
|
||||||
_offset(0),
|
|
||||||
_element(element),
|
|
||||||
_stride(uint16(element.getSize()))
|
|
||||||
{
|
|
||||||
initFromBuffer(buffer);
|
|
||||||
};
|
|
||||||
BufferView(const BufferPointer& buffer, Size offset, Size size, const Element& element = Element(gpu::SCALAR, gpu::UINT8, gpu::RAW)) :
|
|
||||||
_buffer(buffer),
|
|
||||||
_offset(offset),
|
|
||||||
_size(size),
|
|
||||||
_element(element),
|
|
||||||
_stride(uint16(element.getSize()))
|
|
||||||
{};
|
|
||||||
BufferView(const BufferPointer& buffer, Size offset, Size size, uint16 stride, const Element& element = Element(gpu::SCALAR, gpu::UINT8, gpu::RAW)) :
|
|
||||||
_buffer(buffer),
|
|
||||||
_offset(offset),
|
|
||||||
_size(size),
|
|
||||||
_element(element),
|
|
||||||
_stride(stride)
|
|
||||||
{};
|
|
||||||
|
|
||||||
~BufferView() {}
|
|
||||||
BufferView(const BufferView& view) = default;
|
BufferView(const BufferView& view) = default;
|
||||||
BufferView& operator=(const BufferView& view) = default;
|
BufferView& operator=(const BufferView& view) = default;
|
||||||
|
|
||||||
|
BufferView();
|
||||||
|
BufferView(const Element& element);
|
||||||
|
BufferView(Buffer* newBuffer, const Element& element = DEFAULT_ELEMENT);
|
||||||
|
BufferView(const BufferPointer& buffer, const Element& element = DEFAULT_ELEMENT);
|
||||||
|
BufferView(const BufferPointer& buffer, Size offset, Size size, const Element& element = DEFAULT_ELEMENT);
|
||||||
|
BufferView(const BufferPointer& buffer, Size offset, Size size, uint16 stride, const Element& element = DEFAULT_ELEMENT);
|
||||||
|
|
||||||
Size getNumElements() const { return _size / _element.getSize(); }
|
Size getNumElements() const { return _size / _element.getSize(); }
|
||||||
|
|
||||||
//Template iterator with random access on the buffer sysmem
|
//Template iterator with random access on the buffer sysmem
|
||||||
|
|
Loading…
Reference in a new issue