CGVIS Utils
Loading...
Searching...
No Matches
GLArray.h
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
5#include <GL/glew.h>
6#include <GLFW/glfw3.h>
7
8#include "GLBuffer.h"
9#include "GLProgram.h"
10
24class GLArray {
25public:
27 GLArray();
29 ~GLArray();
30
34 void bind() const;
35
49 void connectVertexAttrib(const GLBuffer& buffer, const GLProgram& program,
50 const std::string& variable, size_t elemCount,
51 size_t offset=0, GLuint divisor = 0) const;
52
57 void connectIndexBuffer(const GLBuffer& buffer) const;
58
59private:
60 GLuint glId;
61
62};
Thin RAII wrapper for an OpenGL buffer object with upload/binding helpers.
RAII wrapper around an OpenGL shader program with rich uniform/texture setters.
void bind() const
Bind this VAO for subsequent vertex specification/draws.
Definition GLArray.cpp:12
void connectVertexAttrib(const GLBuffer &buffer, const GLProgram &program, const std::string &variable, size_t elemCount, size_t offset=0, GLuint divisor=0) const
Connect a vertex attribute from a buffer to a program input.
Definition GLArray.cpp:16
void connectIndexBuffer(const GLBuffer &buffer) const
Bind buffer as the index (element) buffer for this VAO.
Definition GLArray.cpp:27
~GLArray()
Destroy and delete the VAO name.
Definition GLArray.cpp:8
GLArray()
Generate a VAO and bind it.
Definition GLArray.cpp:3
Definition GLBuffer.h:17
OpenGL shader program with helpers for creation and data binding.
Definition GLProgram.h:59