Dandelion 1.1.1
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
GL::ElementArrayBuffer< size > 模板结构体 参考

对 OpenGL 索引数组缓冲 (Element Array Buffer) 的封装。 更多...

#include <gl.hpp>

Public 成员函数

 ElementArrayBuffer (unsigned int buffer_usage)
 
 ElementArrayBuffer (const ElementArrayBuffer &other)=delete
 
ElementArrayBufferoperator= (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
 

详细描述

template<std::size_t size>
struct GL::ElementArrayBuffer< size >

对 OpenGL 索引数组缓冲 (Element Array Buffer) 的封装。

Element Array Buffer 通常用于创建索引缓冲对象 (Element Buffer Object, EBO),用于存储顶点索引。 EBO 通常保存边或者面对应的顶点索引,从而避免直接存储数据。 ElementArrayBuffer 对象持有数据。如果希望更新一个 ElementArrayBuffer 中的数据,首先应当直接修改它的 data 成员,然后调用 to_gpu 复制到显存。

模板参数
size每个基元(边或者面)对应的顶点索引个数,例如三角形面的 size 是 3。

构造及析构函数说明

◆ ElementArrayBuffer()

template<std::size_t size>
GL::ElementArrayBuffer< size >::ElementArrayBuffer ( ElementArrayBuffer< size > && other)

参考 VertexArrayObject 的移动构造函数。

成员函数说明

◆ append()

template<std::size_t size>
template<typename... Ts>
void GL::ElementArrayBuffer< size >::append ( Ts... values)

size 个数据附加到末尾。

◆ count()

template<std::size_t size>
std::size_t GL::ElementArrayBuffer< size >::count ( ) const

统计总共有多少个 基元 (而不是顶点)。

类成员变量说明

◆ data

template<std::size_t size>
std::vector<unsigned int> GL::ElementArrayBuffer< size >::data

使用 unsigned int 而非 size_t 的原因是 OpenGL 不接受 size_t


该结构体的文档由以下文件生成: