Dandelion 1.1.1
A light-weight 3D builder for educational usage
|
对 OpenGL 索引数组缓冲 (Element Array Buffer) 的封装。 更多...
#include <gl.hpp>
Public 成员函数 | |
ElementArrayBuffer (unsigned int buffer_usage) | |
ElementArrayBuffer (const ElementArrayBuffer &other)=delete | |
ElementArrayBuffer & | operator= (ElementArrayBuffer &other)=delete |
ElementArrayBuffer (ElementArrayBuffer &&other) | |
template<typename... Ts> | |
void | append (Ts... values) |
std::size_t | count () const |
void | bind () |
void | release () |
void | to_gpu () |
Public 属性 | |
unsigned int | descriptor |
unsigned int | usage |
std::vector< unsigned int > | data |
对 OpenGL 索引数组缓冲 (Element Array Buffer) 的封装。
Element Array Buffer 通常用于创建索引缓冲对象 (Element Buffer Object, EBO),用于存储顶点索引。 EBO 通常保存边或者面对应的顶点索引,从而避免直接存储数据。 ElementArrayBuffer
对象持有数据。如果希望更新一个 ElementArrayBuffer
中的数据,首先应当直接修改它的 data
成员,然后调用 to_gpu
复制到显存。
size | 每个基元(边或者面)对应的顶点索引个数,例如三角形面的 size 是 3。 |
GL::ElementArrayBuffer< size >::ElementArrayBuffer | ( | ElementArrayBuffer< size > && | other | ) |
参考 VertexArrayObject
的移动构造函数。
void GL::ElementArrayBuffer< size >::append | ( | Ts... | values | ) |
将 size
个数据附加到末尾。
std::size_t GL::ElementArrayBuffer< size >::count | ( | ) | const |
统计总共有多少个 基元 (而不是顶点)。
std::vector<unsigned int> GL::ElementArrayBuffer< size >::data |
使用 unsigned int
而非 size_t
的原因是 OpenGL 不接受 size_t
。