名称
glGetBufferParameter —缓冲区对象的返回参数
C规范
void glGetBufferParameteriv( GLenum target,
GLenum value,
GLint * data);
void glGetBufferParameteri64v( GLenum target,
GLenum value,
GLint64 * data);
参数
target
指定glGetBufferParameteriv和glGetBufferParameteri64v缓冲区对象绑定的目标。必须是下表中的缓冲区绑定目标之一:
缓冲区绑定目标 | 用途 |
---|---|
GL_ARRAY_BUFFER | 顶点属性 |
GL_ATOMIC_COUNTER_BUFFER | 原子计数器存储 |
GL_COPY_READ_BUFFER | 缓冲区复制源 |
GL_COPY_WRITE_BUFFER | 缓冲区复制目标 |
GL_DISPATCH_INDIRECT_BUFFER | 间接计算调度命令 |
GL_DRAW_INDIRECT_BUFFER | 间接命令参数 |
GL_ELEMENT_ARRAY_BUFFER | 顶点数组索引 |
GL_PIXEL_PACK_BUFFER | 像素读取目标 |
GL_PIXEL_UNPACK_BUFFER | 纹理数据源 |
GL_SHADER_STORAGE_BUFFER | 着色器的读写存储 |
GL_TEXTURE_BUFFER | 纹理数据缓冲区 |
GL_TRANSFORM_FEEDBACK_BUFFER | 变换反馈缓冲区 |
GL_UNIFORM_BUFFER | 统一块存储 |
value
指定缓冲区对象参数的符号名称。可接受的值为GL_BUFFER_ACCESS_FLAGS,GL_BUFFER_MAPPED,GL_BUFFER_MAP_LENGTH,GL_BUFFER_MAP_OFFSET,GL_BUFFER_SIZE或GL_BUFFER_USAGE。
data
返回请求的参数。
描述
glGetBufferParameteriv和glGetBufferParameteri64v在数据中返回由目标指定的缓冲区对象的选定参数。
值命名一个特定的缓冲区对象参数,如下所示:
GL_BUFFER_ACCESS_FLAGS
当映射缓冲区对象时,params返回访问策略集。
GL_BUFFER_MAPPED
params返回一个标志,指示当前是否映射了缓冲区对象。初始值为GL_FALSE。
GL_BUFFER_MAP_LENGTH
params返回缓冲区对象映射的长度,以字节为单位。初始值为0。
GL_BUFFER_MAP_OFFSET
params返回缓冲区对象映射的偏移量(开始),以字节为单位。初始值为0。
GL_BUFFER_SIZE
params返回缓冲区对象的大小,以字节为单位。初始值为0。
GL_BUFFER_USAGE
params返回缓冲区对象的使用模式。
注意
如果生成错误,则不会更改数据内容。
如果使用glGetBufferParameteriv查询GL_BUFFER_SIZE的值,则大于或等于231的值将被限制为231-1。
仅当GL ES版本为3.0或更高版本时,才可以使用GL_COPY_READ_BUFFER,GL_COPY_WRITE_BUFFER,GL_PIXEL_PACK_BUFFER,GL_PIXEL_UNPACK_READ_BUFFER,GL_TRANSFORM_FEEDBACK_BUFFER和GL_UNIFORM_BUFFER目标。
仅当GL ES版本为3.1或更高版本时,GL_ATOMIC_COUNTER_BUFFER,GL_DISPATCH_INDIRECT_BUFFER,GL_DRAW_INDIRECT_BUFFER和GL_SHADER_STORAGE_BUFFER目标才可用。
仅当GL ES版本为3.2或更高版本时,GL_TEXTURE_BUFFER目标才可用。
错误
如果目标或值不是可接受的值,则生成GL_INVALID_ENUM。
如果将保留的缓冲区对象名称0绑定到目标,则生成GL_INVALID_OPERATION。
如果使用glGetBufferParameteri64v查询GL_BUFFER_ACCESS_FLAGS,GL_BUFFER_MAPPED或GL_BUFFER_USAGE的值,则生成GL_INVALID_ENUM。
如果使用glGetBufferParameteriv查询GL_BUFFER_MAP_LENGTH或GL_BUFFER_MAP_OFFSET的值,则生成GL_INVALID_ENUM。
API支持版本
函数名| 2.0 | 3.0 | 3.1 | 3.2
|-|-|-||-|-|
glGetBufferParameteriv |✔|✔|✔|✔
glGetBufferParameteri64v | -|✔|✔|✔
另见
glBindBuffer,glBufferData,glMapBufferRange,glUnmapBuffer
版权
https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetBufferParameter.xhtml
Copyright © 2005 Addison-Wesley. Copyright © 2010-2015 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.