osg.VertexArrayState
osg.VertexArrayState
类封装了 OpenGL 的顶点数组状态,并提供方便的访问函数来查询、设置或更新OpenGL的顶点数组状态。
构造函数
osg::VertexArrayState()
成员函数
void setProfile(const Profile& profile)
设置顶点数组状态的配置文件。
const Profile& getProfile() const
获取顶点数组状态的配置文件。
void apply() const
将顶点数组状态应用于当前 OpenGL 上下文。
void setArrayBuffer(unsigned int arrayBuffer)
设置顶点数组缓冲区的 ID。
unsigned int getArrayBuffer() const
获取顶点数组缓冲区的 ID。
void setVertexArray(unsigned int vertexArray)
设置顶点数组对象的 ID。
unsigned int getVertexArray() const
获取顶点数组对象的 ID。
void setIndexArrayBuffer(unsigned int indexArrayBuffer)
设置索引数组缓冲区的 ID。
unsigned int getIndexArrayBuffer() const
获取索引数组缓冲区的 ID。
void setIndexArray(const GLvoid* indices)
设置索引数组的指针。
const GLvoid* getIndexArray() const
获取索引数组的指针。
void setIndexArrayType(const GLenum& type)
设置索引数组的类型。
const GLenum& getIndexArrayType() const
获取索引数组的类型。
void setIndexArraySize(unsigned int size)
设置索引数组的大小。
unsigned int getIndexArraySize() const
获取索引数组的大小。
void setVertexBufferObject(unsigned int vbo)
设置顶点缓冲区对象的 ID。
unsigned int getVertexBufferObject() const
获取顶点缓冲区对象的 ID。
void setNormalArray(unsigned int offset, const Vec3Array* normals)
设置法线数组的指针和偏移量。
const Vec3Array* getNormalArray() const
获取法线数组的指针。
unsigned int getNormalArrayOffset() const
获取法线数组的偏移量。
void setColorArray(unsigned int offset, const Vec4Array* colors)
设置颜色数组的指针和偏移量。
const Vec4Array* getColorArray() const
获取颜色数组的指针。
unsigned int getColorArrayOffset() const
获取颜色数组的偏移量。
void setSecondaryColorArray(unsigned int offset, const Vec4Array* colors)
设置第二颜色数组的指针和偏移量。
const Vec4Array* getSecondaryColorArray() const
获取第二颜色数组的指针。
unsigned int getSecondaryColorArrayOffset() const
获取第二颜色数组的偏移量。
void setFogCoordArray(unsigned int offset, const FloatArray* fogCoords)
设置雾坐标数组的指针和偏移量。
const FloatArray* getFogCoordArray() const
获取雾坐标数组的指针。
unsigned int getFogCoordArrayOffset() const
获取雾坐标数组的偏移量。
void setVertexAttribPointer(unsigned int index, int numComponents, GLenum type, bool normalize, unsigned int stride, const void* ptr)
设置顶点属性的指针和大小。
unsigned int getVertexAttribPointer(unsigned int index, GLint* size, GLenum* type, GLboolean* normalized, GLsizei* stride) const
获取顶点属性的指针和大小信息。
void setTexCoordArray(unsigned int unit, unsigned int offset, const Array* textureCoords)
设置纹理坐标数组的指针和偏移量。
const Array* getTexCoordArray(unsigned int unit) const
获取指定纹理单元的纹理坐标数组的指针。
unsigned int getTexCoordArrayOffset(unsigned int unit) const
获取指定纹理单元的纹理坐标数组的偏移量。
void setVertexAttribBinding(unsigned int index, unsigned int bindingIndex)
设置顶点属性的绑定索引。
unsigned int getVertexAttribBinding(unsigned int index) const
获取顶点属性的绑定索引。
void setVertexAttribDivisor(unsigned int index, unsigned int divisor)
设置顶点属性的除数。
unsigned int getVertexAttribDivisor(unsigned int index) const
获取顶点属性的除数。
void setMultiTexCoordArray(unsigned int unit, unsigned int offset, const Array* textureCoords)
设置多重纹理坐标数组的指针和偏移量。
const Array* getMultiTexCoordArray(unsigned int unit) const
获取指定多重纹理单元的纹理坐标数组的指针。
unsigned int getMultiTexCoordArrayOffset(unsigned int unit) const
获取指定多重纹理单元的纹理坐标数组的偏移量。
void setMultiTexCoordIndices(unsigned int unit, const GLuint* indices)
设置多重纹理坐标的索引数组。
const GLuint* getMultiTexCoordIndices(unsigned int unit) const
获取多重纹理坐标的索引数组。
void setDrawArrays(GLenum mode, GLint first, GLsizei count)
设置绘制数组的类型、起始索引和数量。
GLenum getDrawArraysMode() const
获取绘制数组的类型。
GLint getDrawArraysFirst() const
获取绘制数组的起始索引。
GLsizei getDrawArraysCount() const
获取绘制数组的数量。
void setDrawElements(GLenum mode, GLsizei count, GLenum type, const void* indices)
设置绘制元素的类型、数量和索引。
GLenum getDrawElementsMode() const
获取绘制元素的类型。
GLsizei getDrawElementsCount() const
获取绘制元素的数量。
GLenum getDrawElementsType() const
获取绘制元素的索引类型。
参考文献
- OpenSceneGraph 3.6.5 Documentation 中的 osg::VertexArrayState。#[^1]
脚注
[^1]: OpenSceneGraph 3.6.5 Documentation: osg::VertexArrayState。https://openscenegraph.github.io/documentation/OpenSceneGraphReferenceDocs/a00657.html。