43 lines
904 B
C++
43 lines
904 B
C++
#pragma once
|
|
#ifndef _NB_VERTEX_DATA
|
|
#define _NB_VERTEX_DATA
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
#include <NBCore/TypeTraits.hpp>
|
|
#include <NBCore/Utils.hpp>
|
|
#include <NBGraphics/Buffers.hpp>
|
|
#include <NBGraphics/GLLoad.hpp>
|
|
|
|
// #include <NBGraphics/VertexArray.hpp>
|
|
|
|
namespace nb {
|
|
|
|
struct VertexAtrributeLayout {
|
|
unsigned int offset = 0;
|
|
int stride = 0;
|
|
unsigned int divisor = 0;
|
|
};
|
|
|
|
struct VertexAttribute {
|
|
unsigned int size;
|
|
TypeCodes type;
|
|
bool normalized;
|
|
VertexAtrributeLayout layout;
|
|
};
|
|
|
|
struct VertexData {
|
|
std::shared_ptr<Buffer> data;
|
|
std::vector<VertexAttribute> attributes;
|
|
VertexData(std::shared_ptr<Buffer>, const std::vector<VertexAttribute>&);
|
|
VertexData(const ByteVector&, const std::vector<VertexAttribute>&);
|
|
};
|
|
|
|
struct VertexDataPointer {
|
|
std::shared_ptr<VertexData> vertexdata;
|
|
unsigned int index;
|
|
};
|
|
|
|
} // namespace nb
|
|
#endif |