Opengl4.5 中文手册—C
索引
C
glCheckFramebufferStatus
3.0+ 查询Framebuffer状态
GLenum target
glCheckNamedFramebufferStatus
GLuint framebuffer,
GLenum target
glClampColor
3.0+ 设置glReadPixels是否clamp读取的像素数据
GLenum target, GL_CLAMP_READ_COLOR
GLenum clamp GL_TRUE GL_FALSE GL_FIXED_ONLY(仅定点数)
glClear
2.0+ 清除颜色、深度或模板缓冲区
GLbitfield mask: GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT
GL_STENCIL_BUFFER_BIT
清除值由glClearColor, glClearDepth, and glClearStencil分别设置,清除区域受glScissor设置的裁剪范围影响。
glClearBuffer
3.0+ 清除当前绘制帧缓冲区对应颜色、深度或模板缓冲区,与glClear类似
glClearBufferfv
GLenum buffer, GL_COLOR GL_DEPTH GL_STENCIL
GLint drawbuffer, buffer为GL_COLOR时为GL_DRAW_BUFFER[n],否则为0
const GLfloat * value buffer为GL_COLOR时为rgba四元素指针
glClearBufferfi 同时清除深度和模板缓冲区
GLenum buffer, GL_DEPTH_STENCIL
GLint drawbuffer, 0
GLfloat depth, 深度
GLint stencil 模板
glClearNamedFramebufferxx 4.5+
glClearBufferData
4.3+ 用数据填充缓冲区
GLenum target,
GLenum internalformat, buffer数据格式
GLenum format, data数据格式: GL_R32F GL_RGBA32F..要求各成员大小相同
GLenum type, data数据单成员数据类型byte short int float
const void * data
和glBufferSubData类似,区别在于此函数提供format->innerformat转换
glClearBufferSubData
4.3+ 与glClearBufferData类似,多了offset和size参数
glClearColor
2.0+ 为glClear设置清除的颜色值, 默认(0, 0, 0 ,0)
GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha
glClearDepth
2.0+ 为glClear设置清除的颜色值, 默认1
GLdouble depth
glClearStencil
2.0+ 为glClear设置清除的模板值, 默认0
GLint s
glClearTexImage
4.4+ 填充纹理数据
GLuint texture,
GLint level,
GLenum format,
GLenum type,
const void * data 数据指针,0,全填充为0
参考glClearBufferData
glClearTexSubImage
4.4+ 填充纹理子区域数据
多了六个范围参数: GLint xoffset, GLint yoffset, GLint zoffset,
GLsizei width, GLsizei height, GLsizei depth,
glClientWaitSync
3.2+ 阻塞客户端,等待信号
GLsync sync,
GLbitfield flags, GL_SYNC_FLUSH_COMMANDS_BIT
GLuint64 timeout 超时值,毫微秒,10亿分之一秒
返回值:
GL_ALREADY_SIGNALED 调用时信号已发出
GL_CONDITION_SATISFIED 收到信号后返回
GL_TIMEOUT_EXPIRED 超时
GL_WAIT_FAILED 异常
glClipControl
4.5+ 设置裁剪坐标映射参数
GLenum origin, GL_LOWER_LEFT or GL_UPPER_LEFT
GLenum depth GL_NEGATIVE_ONE_TO_ONE or GL_ZERO_TO_ONE
感觉没用,类似需求考虑利用glDepthRange的功能
glColorMask 2.0
设置颜色成分是否写入,默认写入:GL_TRUE
GLboolean red,
GLboolean green,
GLboolean blue,
GLboolean alpha
glCompileShader
2.0+ 编译shader
GLuint shader
shader编译结果存储在shader对象中,可通过glGetShaderiv查询编译状态,以及
glGetShaderInfoLog查询编译日志信息
glCompressedTexImage2D
2.0+ 利用压缩格式数据填充纹理
GLenum target, GL_TEXTURE_2D, GL_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, GL_TEXTURE_CUBE_MAP_POSITIVE_X, or GL_PROXY_TEXTURE_CUBE_MAP
GLint level,
GLenum internalformat, 数据的压缩格式
GLsizei width,
GLsizei height,
GLint border,
GLsizei imageSize, 数据大小
const GLvoid * data :数据地址,格式为internalformat, 当GL_PIXEL_UNPACK_BUFFER不为0时,从对应的缓冲区读取数据,此时data为数据偏移
普通数据可以通过glTexImage2D加载为压缩格式
glCompressedTexSubImage2D
2.0+ 利用压缩格式数据填充纹理部分区域
与glCompressedTexImage2D区别在于加了四个指定子区域的参数:
GLint xoffset, GLint yoffset,
GLsizei width, GLsizei height
glCopyBufferSubData
3.1+ buffer之间拷贝数据
GLenum readTarget, :GL_ARRAY_BUFFER、GL_ATOMIC_COUNTER_BUFFER。。。
GLenum writeTarget,
GLintptr readOffset,
GLintptr writeOffset,
GLsizeiptr size
所有类型buffer之间都可以拷贝数据,另外有两个专门用于拷贝的缓冲区类型绑定:GL_COPY_READ_BUFFER and GL_COPY_WRITE_BUFFER
glCopyImageSubData
4.3+ 在两个格式兼容的纹理或者渲染缓冲区之间拷贝数据
GLuint srcName, 依据srcTarget对应对应类型对象ID
GLenum srcTarget, 类型:GL_RENDERBUFFER,GL_TEXTURE2D…
GLint srcLevel,
GLint srcX,
GLint srcY,
GLint srcZ,
GLuint dstName,
GLenum dstTarget,
GLint dstLevel,
GLint dstX,
GLint dstY,
GLint dstZ,
GLsizei srcWidth,
GLsizei srcHeight,
GLsizei srcDepth
glCopyTexImage2D 2.0
从帧缓冲区读取数据到纹理
GLenum target, 纹理目标类型
GLint level,
GLenum internalformat,
GLint x,
GLint y,
GLsizei width,
GLsizei height,
GLint border
源数据由glReadBuffer指定,并使用glBindFrameBuffer绑定GL_READ_FRAMEBUFFER。
从内存或缓冲区读取数据到纹理使用glTexImage2D
glCopyTexSubImage2D
类似glCopyTexImage2D
glCopyTextureSubImage2D 4.5+ 根据TextureID直接拷贝
glCreateBuffers
4.5+ 生成bufferid,与glGenBuffers相同
glCreateFramebuffers
4.5+ 生成framebufferid, 与glGenFramebuffers相同
glCreateProgram
2.0+ 创建程序
返回 GLuint
glCreateProgramPipelines
4.5+ 创建程序管线对象
glCreateTextures
4.5+ 同glGenTextures
glCreateTransformFeedbacks
4.5 同glGenTransformFeedbacks
glCreateVertexArrays
4.5 同glGenVertexArrays
glCullFace
2.0+ 设置剔除面,需要使用glEnable(GL_CULL_FACE)启用
GLenum mode :GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK, 默认GL_BACK
正面反面可通过glFrontFace定义,默认逆时针