Opengl4.5 中文手册—D

索引

A      B    C      D     E     F     G

H      I     J      K     L     M     N

O      P    Q      R     S     T

U      V    W      X     Y     Z

D

glDebugMessageCallback

4.3+ 设置opengl调试信息回调

DEBUGPROC callback,

void * userParam 用户自定义参数

DEBUGPROC定义:

typedef void (APIENTRY *DEBUGPROC)(

GLenum source,

GLenum type,

GLuint id,

GLenum severity,

GLsizei length,

const GLchar *message,

void *userParam);

glDebugMessageControl

4.3+ 控制是否报告指定类型信息

GLenum source, :GL_DONT_CARE

GL_DEBUG_SOURCE_API, GL_DEBUG_SOURCE_WINDOW_SYSTEM_, GL_DEBUG_SOURCE_SHADER_COMPILER, GL_DEBUG_SOURCE_THIRD_PARTY, GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_SOURCE_OTHER to

GLenum type, GL_DEBUG_TYPE_ERROR, GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,

GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR, GL_DEBUG_TYPE_PORTABILITY, GL_DEBUG_TYPE_PERFORMANCE, GL_DEBUG_TYPE_MARKER, GL_DEBUG_TYPE_PUSH_GROUP, GL_DEBUG_TYPE_POP_GROUP, or GL_DEBUG_TYPE_OTHER

GLenum severity, GL_DONT_CARE GL_DEBUG_SEVERITY_LOW,

GL_DEBUG_SEVERITY_MEDIUM, or GL_DEBUG_SEVERITY_HIGH

GLsizei count,

const GLuint *ids,

GLboolean enabled

设置为GL_DONT_CARE 表示捕捉所有类型

glDebugMessageInsert

4.3+ 插入自定义信息

glDelete__

Program

Shader

Sync

Buffers

FrameBuffers

ProgramPipelines

Queries

Renderbuffers

Samplers

Textures

TransformFeedbacks

VertexArrays

glDepthFunc

2.0+ 设置深度比较函数,默认GL_LESS, 需使用glEnable(GL_DEPTH_TEST)启用深度测试

GLenum func: GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, and GL_ALWAYS

深度写通过glDepthMask控制

glDepthMask

2.0+ 设置是否深度写

GLboolean flag :默认GL_TURE, 启用深度写,读取通过 glGet( GL_DEPTH_WRITEMASK)

glDepthRange

2.0+ 设置深度范围映射,默认(0,1),用于将gl(-1,1)映射到windows(0,1)

GLdouble nearVal,

GLdouble farVal

nearVal可以小于farVal,都必须位于[0,1]区间。此函数可用于调整深度值。

glDepthRangeArrayv

4.1+ 批量设置多个视口DepthRange

glDepthRangeIndexed

4.1 设置指定视口DepthRange

glDetachShader

2.0 分离shader

GLuint program,

GLuint shader

glDisable

参考glEnable

glDisableVertexAttribArray

禁用顶点属性数组

glDisableVertexArrayAttrib

4.5+ 直接禁用指定vao的顶点属性数组

glDispatchCompute

4.3+ 执行计算程序

GLuint num_groups_x,

GLuint num_groups_y,

GLuint num_groups_z

glDispatchComputeIndirect

4.3+ 从当前GL_DISPATCH_INDIRECT_BUFFER缓冲区读取启动数据num_groups_x/y/z

GLintptr  offset

glDrawArrays

2.0+ 非索引方式绘制图元

GLenum mode,:GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP,

L_TRIANGLES,  GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY,GGL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY  GL_PATCHES

GLint first,   起始点索引

GLsizei count 点个数

_ADJACENCY 类型需要3.2+

glDrawArraysIndirect

4.0+ 相当于glDrayArraysInstancedBaseInstance,区别在于参数由indirect指向的地址指定

GLenum mode,

const void *indirect

如果GL_DRAW_INDIRECT_BUFFER绑定了缓冲区,则从缓存区而不是内存读取参数,此时indirect为偏移量(机器字节数)

glDrawArraysInstanced

3.1+ 实例绘制,和glDrawArrays相比增加了参数GLsizei instances,表示绘制实例个数

GLenum mode,

GLint first,

GLsizei count,

GLsizei instances

顶点程序可通过gl_InstanceID获取当前实例编号,通过glVertexAttribDivisor设置属性为实例更新

glDrawArraysInstancedBaseInstance

4.1+ 和glDrawArraysInstanced比增加了读取属性偏移值。内置的gl_InstanceID不受影响

GLenum mode,

GLint first,

GLsizei count,

GLsizei primcount,

GLuint baseinstance 实例化的顶点属性偏移量attrib=attribs[baseinstance +gl_InstanceID]

glDrawBuffer

2.0+ 设置绘制颜色缓冲区

GLenum buf:GL_FRONT GL_BACK GL_COLOR_ATTACHMENT[n] GL_RIGHT …

glNamedFramebufferDrawBuffer 直接设置指定帧缓冲区对应的颜色缓冲区

glDrawBuffers 2.0

设置多个绘制颜色缓冲区

GLsizei n,

const GLenum *bufs :GL_FRONT_LEFT、GL_FRONT_RIGHT、GL_BACK_LEFT、GL_BACK_RIGHT 、GL_COLOR_ATTACHMENT n

不可以使用GL_FRONT, GL_BACK, GL_LEFT, GL_RIGHT,因为可能包含多个缓冲区

glDrawElements

2.0+ 索引方式绘制图元

GLenum mode, 图元类型,如:GL_TRIANGLES

GLsizei count,   索引个数

GLenum type,  索引类型GL_UNSIGNED_BYTE/SHORT/INT

const GLvoid * indices 索引数据地址,如果启用了GL_ELEMENT_ARRAY_BUFFER则为对应的偏移量(机器字节数)

glDrawElementsBaseVertex

3.2+ 与glDrawElements类似,区别在于取出的索引值需要再加上basevertex作为最终索引

GLenum mode,

GLsizei count,

GLenum type,

GLvoid *indices,

GLint basevertex 索引基值

glDrawElementsIndirect

4.0+ 间接绘制,相当于glDrayElementsInstancedBaseInstance,区别在于参数由indirect指向的地址指定

GLenum mode,

GLenum type,

const void *indirect 数据地址

如果GL_DRAW_INDIRECT_BUFFER绑定了缓冲区,则从缓存区而不是内存读取参数,此时indirect为偏移量(机器字节数)

glDrawElementsInstanced

3.1+ 实例索引绘制, 相比glDrawElements增加实例数参数primcount

GLenum mode,

GLsizei count,

GLenum type,

const void * indices,

GLsizei primcount 实例个数

glDrawElementsInstancedBaseInstance

4.2+偏移实例绘制,类似于glDrawArraysInstancedBaseInstance

GLenum mode,

GLsizei count,

GLenum type,

const void * indices,

GLsizei primcount,

GLuitn baseinstance 实例属性偏移

glDrawElementsInstancedBaseVertex

3.2+索引偏移实例绘制, 在glDrawElementsBaseVertex基础上加了实例绘制

GLenum mode,

GLsizei count,

GLenum type,

GLvoid *indices,

GLsizei primcount, 实例个数

GLint basevertex 索引值基值

glDrawElementsInstancedBaseVertexBaseInstance

4.2+ 索引、实例偏移实例绘制,对索引和实例都做了基值调整

GLenum mode,

GLsizei count,

GLenum type,

GLvoid *indices,

GLsizei primcount,     实例个数

GLint basevertex,      索引基值

GLuint baseinstance    实例基值

glDrawRangeElements 2.0

等同于glDrawElements, 区别加了start end提示索引范围,可能有利于优化速度

GLenum mode,

GLuint start, 最小的索引值

GLuint end,  最大的索引值 [start, end]限定了所使用的顶点属性范围,如果顶点的索引值不在此范围,结果未定义

GLsizei count,

GLenum type,

const GLvoid * indices

glDrawRangeElementsBaseVertex?

3.2+ 没用,参考glDrawElementsBaseVertex

glDrawTransformFeedback

4.0+ 利用指定的TransformFeedback对象获取顶点个数并进行绘制

GLenum mode, 图元类型

GLuint id transformFeedback对象id

相当于glDrawArrays(mode, 0, transformFeedback. vertexstream0. Count);

顶点个数从transformFeedback对象顶点流0中获取,该对象需要进过完整的流程:

glBindTranformFeedback(GL_TRANSFORM_FEEDBACK, id)

glBeginTransformFeedback(         GLenum primitiveMode)

….

glEndTransformFeedback()

glDrawTransformFeedbackInstanced

4.2+ 实例绘制,参考glDrawTransformFeedback

glDrawTransformFeedbackStream

4.0+参考glDrawTransformFeedback,增加指定流参数,不再是默认的0

GLenum mode,

GLuint id,

GLuint stream

glDrawTransformFeedbackStreamInstanced

4.0+参考glDrawTransformFeedbackStream,增加了实例绘制参数

上一篇:OAuth2简易实战(三)-JWT


下一篇:Redis简介与简单安装