public:
using Position = glm::vec3;
- using Color = glm::vec3;
+ using TexCoord = glm::vec3;
+ using ColorMod = glm::vec3;
using Light = float;
using Index = unsigned int;
using Positions = std::vector<Position>;
- using Colors = std::vector<Color>;
+ using TexCoords = std::vector<TexCoord>;
+ using ColorMods = std::vector<ColorMod>;
using Lights = std::vector<Light>;
using Indices = std::vector<Index>;
enum Attribute {
ATTRIB_VERTEX,
- ATTRIB_COLOR,
+ ATTRIB_TEXCOORD,
+ ATTRIB_HSL,
+ ATTRIB_RGB,
ATTRIB_LIGHT,
ATTRIB_INDEX,
ATTRIB_COUNT,
struct Buffer {
Positions vertices;
- Colors colors;
+ TexCoords tex_coords;
+ ColorMods hsl_mods;
+ ColorMods rgb_mods;
Lights lights;
Indices indices;
void Clear() noexcept {
vertices.clear();
- colors.clear();
+ tex_coords.clear();
+ hsl_mods.clear();
+ rgb_mods.clear();
lights.clear();
indices.clear();
}
void Reserve(size_t p, size_t i) {
vertices.reserve(p);
- colors.reserve(p);
+ tex_coords.reserve(p);
+ hsl_mods.reserve(p);
+ rgb_mods.reserve(p);
lights.reserve(p);
indices.reserve(i);
}