Opengl4.5 中文手册—M
索引
M
glMapBuffer 2.0
映射全部buffer到cpu内存, 返回对应的数据指针,错误返回0
GLenum target :GL_ARRAY_BUFFER GL_ATOMIC_COUNTER_BUFFER……
GLenum access : GL_READ_ONLY, GL_WRITE_ONLY, or GL_READ_WRITE.
glMapBufferRange 3.0
相比glMapBuffer增加了offset和length,同时锁定标识更多样
3.0+
GLenum target,
GLintptr offset,
GLsizeiptr length,
GLbitfield access:
GL_MAP_READ_BIT 读
GL_MAP_WRITE_BIT 写
以下4.4之后支持
GL_MAP_PERSISTENT_BIT 持久, 后续gl 操作时,client仍保持对返回指针的使用,需要glBufferStorage分配存储时也指定此标记
GL_MAP_COHERENT_BIT 一致, client或gpu对buffer的改动直接可见,并不需要ummap\flushMappedBufferRange\memoryBarrier显式刷新
可选标记:
GL_MAP_INVALIDATE_RANGE_BIT 之前的缓冲区指定范围数据可丢弃,用于map写, 不可与read标记合用
GL_MAP_INVALIDATE_BUFFER_BIT之前的缓冲区全部数据可丢弃,用于map写, 不可与read标记合用
GL_MAP_UNSYNCHRONIZED_BIT 指示GPU不需要同步未完成的操作
glMemoryBarrier 4.2
保证此命令之前对buffer的操作在之后的buffer操作之前完成
GLbitfield barriers
GL_ALL_BARRIER_BITS 所有类型
GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 顶点属性
GL_ELEMENT_ARRAY_BARRIER_BIT 顶点索引
GL_UNIFORM_BARRIER_BIT uniform缓冲区
GL_TEXTURE_FETCH_BARRIER_BIT 纹理buffer
GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
GL_COMMAND_BARRIER_BIT 间接绘制DRAW_INDIRECT_BUFFER
GL_PIXEL_BUFFER_BARRIER_BIT 像素读写GL_PIXEL_PACK_BUFFER and GL_PIXEL_UNPACK_BUFFER
GL_BUFFER_UPDATE_BARRIER_BIT 缓冲区对写命令相关:glBufferSubData, glCopyBufferSubData, glGetBufferSubData glMapBuffer or glMapBufferRange
GL_FRAMEBUFFER_BARRIER_BIT 帧缓冲区对象附加的缓冲区
GL_TRANSFORM_FEEDBACK_BARRIER_BIT 变换反馈缓冲区
GL_ATOMIC_COUNTER_BARRIER_BIT 原子计数
GL_SHADER_STORAGE_BARRIER_BIT shader存储块
GL_QUERY_BUFFER_BARRIER_BIT
glMinSampleShading 4.0
设置最低采样率
GLfloat value
启用子采样着色glEnable(GL_SAMPLE_SHADING)时,此参数设置需要着色的最小采样比例。
glMultiDrawArrays 2.0
相当于多次调用DrawArrays, 没什么太大用处
GLenum mode,
const GLint * first,
const GLsizei * count,
GLsizei drawcount
glMultiDrawArraysIndirect 4.3
glMultiDrawElements 2.0
相当于多次调用DrawElements