查看源码 gl (wx v2.4.3)

OpenGL 的 Erlang 包装函数

标准 OpenGL API

本文档提供了完整 OpenGL 参考页面 的简要版本。

概要

函数

累积缓冲区是一个扩展范围的颜色缓冲区。图像不会渲染到其中。相反,渲染到其中一个颜色缓冲区的图像会在渲染后添加到累积缓冲区的内容中。通过累积使用不同变换矩阵生成的图像,可以创建诸如抗锯齿(点、线和多边形)、运动模糊和景深等效果。

gl:activeShaderProgram/2 将由 Program 命名的链接程序设置为程序管线对象 Pipeline 的活动程序。活动程序管线对象中的活动程序是调用 gl:uniform() 的目标,当没有通过调用 gl:useProgram/1 使任何程序成为当前程序时。

gl:activeTexture/1 选择后续纹理状态调用将影响哪个纹理单元。实现支持的纹理单元数量取决于实现,但必须至少为 80 个。

alpha 测试根据传入片段的 alpha 值与常量参考值之间的比较结果丢弃片段。gl:alphaFunc/2 指定参考值和比较函数。仅当启用 alpha 测试时才执行比较。默认情况下,它未启用。(请参阅 gl:enable/1gl:disable/1 of ?GL_ALPHA_TEST。)

GL 建立了一个“工作集”的纹理,这些纹理驻留在纹理内存中。这些纹理可以比未驻留的纹理更有效地绑定到纹理目标。

gl:arrayElement/1 命令在 gl:'begin'/1/gl:'end'/0 对中使用,以指定点、线和多边形图元的顶点和属性数据。如果在调用 gl:arrayElement/1 时启用了 ?GL_VERTEX_ARRAY,则会绘制一个顶点,使用从启用的数组的位置 I 中获取的顶点和属性数据。如果未启用 ?GL_VERTEX_ARRAY,则不会发生绘制,但会修改与启用的数组对应的属性。

为了创建完整的着色器程序,必须有一种方法来指定将链接在一起的事物列表。程序对象提供了这种机制。要链接到程序对象中的着色器必须首先附加到该程序对象。gl:attachShader/2Shader 指定的着色器对象附加到 Program 指定的程序对象。这表明 Shader 将包含在将对 Program 执行的链接操作中。

等效于 '\'end\''/0

gl:bindAttribLocation/3 用于将 Program 指定的程序对象中的用户定义属性变量与通用顶点属性索引关联。用户定义属性变量的名称作为以空字符结尾的字符串在 Name 中传递。要绑定到此变量的通用顶点属性索引由 Index 指定。当 Program 成为当前状态的一部分时,通过通用顶点属性 Index 提供的值将修改 Name 指定的用户定义属性变量的值。

gl:bindBuffer/2 将缓冲区对象绑定到指定的缓冲区绑定点。调用 gl:bindBuffer/2,其中 Target 设置为接受的符号常量之一,Buffer 设置为缓冲区对象的名称,将该缓冲区对象名称绑定到目标。如果不存在名称为 Buffer 的缓冲区对象,则会创建一个具有该名称的对象。当缓冲区对象绑定到目标时,该目标的先前绑定会自动中断。

gl:bindBufferBase/3 将缓冲区对象 Buffer 绑定到由 Target 指定的目标数组的索引 Index 处的绑定点。每个 Target 表示缓冲区绑定点的索引数组,以及可由其他缓冲区操作函数(如 gl:bindBuffer/2glMapBuffer)使用的单个通用绑定点。除了将 Buffer 绑定到索引缓冲区绑定目标之外,gl:bindBufferBase/3 还将 Buffer 绑定到 Target 指定的通用缓冲区绑定点。

gl:bindBufferRange/5 将由 OffsetSize 表示的缓冲区对象 Buffer 的范围绑定到由 Target 指定的目标数组的索引 Index 处的绑定点。每个 Target 表示缓冲区绑定点的索引数组,以及可由其他缓冲区操作函数(如 gl:bindBuffer/2glMapBuffer)使用的单个通用绑定点。除了将 Buffer 的范围绑定到索引缓冲区绑定目标之外,gl:bindBufferRange/5 还将该范围绑定到 Target 指定的通用缓冲区绑定点。

gl:bindBuffersBase/3 将一组 Count 缓冲区对象(其名称在数组 Buffers 中给出)绑定到从由 Target 指定的目标数组的索引 First 开始的 Count 个连续绑定点。如果 Buffers?NULL,则 gl:bindBuffersBase/3 会取消绑定当前绑定到引用绑定点的任何缓冲区。假设没有生成错误,它等效于以下伪代码,该伪代码调用 gl:bindBufferBase/3,但 gl:bindBuffersBase/3 不会更改非索引 Target

gl:bindBuffersRange/5 将一组 Count 范围从缓冲区对象(其名称在数组 Buffers 中给出)绑定到从由 Target 指定的目标数组的索引 First 开始的 Count 个连续绑定点。Offsets 指定包含缓冲区中 Count 个起始偏移量的数组的地址,而 Sizes 指定 Count 个范围大小的数组的地址。如果 Buffers?NULL,则会忽略 OffsetsSizes,并且 gl:bindBuffersRange/5 会取消绑定当前绑定到引用绑定点的任何缓冲区。假设没有生成错误,它等效于以下伪代码,该伪代码调用 gl:bindBufferRange/5,但 gl:bindBuffersRange/5 不会更改非索引 Target

gl:bindFragDataLocation/3 显式指定程序 Program 的用户定义可变输出变量 Name 到片段着色器颜色编号 ColorNumber 的绑定。如果之前绑定了 Name,则其指定的绑定将替换为 ColorNumberName 必须是以空字符结尾的字符串。ColorNumber 必须小于 ?GL_MAX_DRAW_BUFFERS

gl:bindFragDataLocationIndexed/4 指定当下次链接程序时,Program 中的可变输出变量 Name 应绑定到片段颜色 ColorNumberIndex 可以是零或一,以指定颜色分别用作混合方程式的第一个或第二个颜色输入。

gl:bindFramebuffer/2 将名为 Framebuffer 的帧缓冲对象绑定到 Target 指定的帧缓冲目标。Target 必须是 ?GL_DRAW_FRAMEBUFFER?GL_READ_FRAMEBUFFER?GL_FRAMEBUFFER。如果帧缓冲对象绑定到 ?GL_DRAW_FRAMEBUFFER?GL_READ_FRAMEBUFFER,它将分别成为渲染或回读操作的目标,直到它被删除或另一个帧缓冲绑定到相应的绑定点。使用设置为 ?GL_FRAMEBUFFERTarget 调用 gl:bindFramebuffer/2 会将 Framebuffer 绑定到读取和绘制帧缓冲目标。Framebuffer 是先前调用 gl:genFramebuffers/1 返回的帧缓冲对象的名称,或者为零以断开帧缓冲对象与 Target 的现有绑定。

gl:bindImageTexture/7 将纹理的单个层级绑定到图像单元,以便从着色器中读取和写入它。Unit 指定要将纹理层级绑定到的图像单元的从零开始的索引。Texture 指定要绑定到图像单元的现有纹理对象的名称。如果 Texture 为零,则断开与图像单元的任何现有绑定。Level 指定要绑定到图像单元的纹理的层级。

gl:bindImageTextures/2 将来自现有纹理对象数组的图像绑定到指定数量的连续图像单元。Count 指定存储在数组 Textures 中的纹理对象名称的数量。从数组中读取该数量的纹理名称,并将其绑定到从 First 开始的 Count 个连续纹理单元。如果名称零出现在 Textures 数组中,则重置与图像单元的任何现有绑定。 Textures 中的任何非零条目都必须是现有纹理对象的名称。当 Textures 中存在非零条目时,会绑定零级的图像,绑定被认为是分层的,第一层设置为零,并且图像绑定用于读写访问。图像单元格式参数取自纹理对象零级图像的内部格式。对于立方体贴图纹理,使用零级正 X 图像的内部格式。如果 Textures?NULL,则相当于指定了一个仅包含零的适当大小的数组。

gl:bindProgramPipeline/1 将程序管道对象绑定到当前上下文。Pipeline 必须是先前调用 gl:genProgramPipelines/1 返回的名称。如果不存在名为 Pipeline 的程序管道,则会创建一个具有该名称并初始化为默认状态向量的新管道对象。

gl:bindRenderbuffer/2 将名为 Renderbuffer 的渲染缓冲对象绑定到 Target 指定的渲染缓冲目标。Target 必须是 ?GL_RENDERBUFFERRenderbuffer 是先前调用 gl:genRenderbuffers/1 返回的渲染缓冲对象的名称,或者为零以断开渲染缓冲对象与 Target 的现有绑定。

gl:bindSampler/2Sampler 绑定到索引为 Unit 的纹理单元。Sampler 必须为零,或者先前调用 gl:genSamplers/1 返回的采样器对象的名称。Unit 必须小于 ?GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 的值。

gl:bindSamplers/2 将来自现有采样器对象数组的采样器绑定到指定数量的连续采样器单元。Count 指定存储在数组 Samplers 中的采样器对象名称的数量。从数组中读取该数量的采样器名称,并将其绑定到从 First 开始的 Count 个连续采样器单元。

gl:bindTexture/2 允许您创建或使用命名纹理。使用设置为 ?GL_TEXTURE_1D?GL_TEXTURE_2D?GL_TEXTURE_3D?GL_TEXTURE_1D_ARRAY?GL_TEXTURE_2D_ARRAY?GL_TEXTURE_RECTANGLE?GL_TEXTURE_CUBE_MAP?GL_TEXTURE_CUBE_MAP_ARRAY?GL_TEXTURE_BUFFER?GL_TEXTURE_2D_MULTISAMPLE?GL_TEXTURE_2D_MULTISAMPLE_ARRAYTarget 以及设置为新纹理名称的 Texture 调用 gl:bindTexture/2 会将纹理名称绑定到目标。当纹理绑定到目标时,该目标之前的绑定会自动断开。

gl:bindTextures/2 将现有纹理对象数组绑定到指定数量的连续纹理单元。Count 指定存储在数组 Textures 中的纹理对象名称的数量。从数组中读取该数量的纹理名称,并将其绑定到从 First 开始的 Count 个连续纹理单元。纹理的目标或类型是从纹理对象推断出来的,每个纹理都绑定到纹理单元的相应目标。如果名称零出现在 Textures 数组中,则重置纹理单元任何目标的任何现有绑定,并且将该目标的默认纹理绑定到位。 Textures 中的任何非零条目都必须是现有纹理对象的名称。如果 Textures?NULL,则相当于指定了一个仅包含零的适当大小的数组。

gl:bindTextureUnit/2 将现有纹理对象绑定到编号为 Unit 的纹理单元。

gl:bindTransformFeedback/2 将名为 Id 的变换反馈对象绑定到当前 GL 状态。Id 必须是先前调用 gl:genTransformFeedbacks/1 返回的名称。如果 Id 之前未绑定过,则会创建一个具有名称 Id 并使用默认变换状态向量初始化的新变换反馈对象。

gl:bindVertexArray/1 绑定名为 Array 的顶点数组对象。Array 是先前调用 gl:genVertexArrays/1 返回的顶点数组对象的名称,或者为零以断开现有的顶点数组对象绑定。

位图是二进制图像。绘制时,位图相对于当前光栅位置定位,并且使用当前光栅颜色或索引写入与位图中的 1 对应的帧缓冲区像素。不修改与位图中 0 对应的帧缓冲区像素。

?GL_BLEND_COLOR 可用于计算源和目标混合因子。颜色分量在存储之前被限制在 [0 1] 范围内。有关混合操作的完整描述,请参阅 gl:blendFunc/2。初始时,?GL_BLEND_COLOR 设置为 (0, 0, 0, 0)。

混合方程确定如何将新像素(“源”颜色)与帧缓冲区中已有的像素(“目标”颜色)组合。此函数将 RGB 混合方程和 alpha 混合方程都设置为单个方程。gl:blendEquationi/2 指定单个绘制缓冲区的混合方程,而 gl:blendEquation/1 设置所有绘制缓冲区的混合方程。

混合方程确定如何将新像素(“源”颜色)与帧缓冲区中已有的像素(“目标”颜色)组合。这些函数为 RGB 颜色分量指定一个混合方程,为 alpha 分量指定一个混合方程。gl:blendEquationSeparatei/3 指定单个绘制缓冲区的混合方程,而 gl:blendEquationSeparate/2 设置所有绘制缓冲区的混合方程。

可以使用将传入(源)RGBA 值与帧缓冲区中已有的 RGBA 值(目标值)混合的函数来绘制像素。混合最初是禁用的。使用参数为 ?GL_BLENDgl:enable/1gl:disable/1 来启用和禁用混合。

可以使用将传入(源)RGBA 值与帧缓冲区中已有的 RGBA 值(目标值)混合的函数来绘制像素。混合最初是禁用的。使用参数为 ?GL_BLENDgl:enable/1gl:disable/1 来启用和禁用混合。

gl:blitFramebuffer/10glBlitNamedFramebuffer 将像素值的矩形区域从读取帧缓冲区的某个区域传输到绘制帧缓冲区的另一个区域。

gl:bufferData/4glNamedBufferData 为缓冲区对象创建一个新的数据存储。 对于 gl:bufferData/4,将使用当前绑定到 Target 的缓冲区对象。对于 glNamedBufferData,将使用调用方在 Buffer 中指定的 ID 关联的缓冲区对象。

gl:bufferStorage/4glNamedBufferStorage 创建一个新的不可变数据存储。 对于 gl:bufferStorage/4,将初始化当前绑定到 Target 的缓冲区对象。 对于 glNamedBufferStorageBuffer 是将被配置的缓冲区对象的名称。 数据存储的大小由 Size 指定。 如果有初始数据可用,则可以在 Data 中提供其地址。 否则,要创建未初始化的数据存储,Data 应为 ?NULL

gl:bufferSubData/4glNamedBufferSubData 重新定义指定缓冲区对象的部分或全部数据存储。从 Data 指向的内存中,将起始于字节偏移量 Offset 并延伸 Size 字节的数据复制到数据存储中。OffsetSize 必须定义一个完全位于缓冲区对象数据存储内的范围。

gl:callList/1 导致执行指定名称的显示列表。 显示列表中保存的命令将按顺序执行,就像它们在没有使用显示列表的情况下被调用一样。 如果 List 没有被定义为显示列表,则 gl:callList/1 将被忽略。

gl:callLists/1 导致执行作为 Lists 传递的名称列表中每个显示列表。 因此,每个显示列表中保存的命令将按顺序执行,就像它们在没有使用显示列表的情况下被调用一样。 未定义的显示列表的名称将被忽略。

gl:checkFramebufferStatus/1glCheckNamedFramebufferStatus 返回帧缓冲区对象作为读取或绘制帧缓冲区时的完整性状态,具体取决于 Target 的值。

gl:clampColor/2 控制在 gl:readPixels/7 期间执行的颜色钳制。Target 必须是 ?GL_CLAMP_READ_COLOR。如果 Clamp?GL_TRUE,则启用读取颜色钳制; 如果 Clamp?GL_FALSE,则禁用读取颜色钳制。如果 Clamp?GL_FIXED_ONLY,则仅当选定的读取缓冲区具有定点分量时才启用读取颜色钳制,否则禁用。

gl:clear/1 将窗口的位平面区域设置为先前由 gl:clearColor/4gl:clearDepth/1gl:clearStencil/1 选择的值。 通过使用 gl:drawBuffer/1 一次选择多个缓冲区,可以同时清除多个颜色缓冲区。

gl:clearAccum/4 指定 gl:clear/1 用于清除累积缓冲区的红色、绿色、蓝色和 alpha 值。

这些命令将帧缓冲区的指定缓冲区清除为指定的值。 对于 gl:clearBuffer*(),帧缓冲区是当前绑定的绘制帧缓冲区对象。 对于 glClearNamedFramebuffer*Framebuffer 为零,表示默认的绘制帧缓冲区,或者是帧缓冲区对象的名称。

gl:clearColor/4 指定 gl:clear/1 用于清除颜色缓冲区的红色、绿色、蓝色和 alpha 值。 由 gl:clearColor/4 指定的值将被钳制到范围 [0 1]。

gl:clearDepth/1 指定 gl:clear/1 用于清除深度缓冲区的深度值。 由 gl:clearDepth/1 指定的值将被钳制到范围 [0 1]。

gl:clearIndex/1 指定 gl:clear/1 用于清除颜色索引缓冲区的索引。 C 不会被钳制。相反,C 被转换为一个具有未指定精度的定点值,精度位于二进制点的右侧。然后,这个值的整数部分将与 2 m-1 进行掩码,其中 m 是帧缓冲区中存储的颜色索引的位数。

gl:clearStencil/1 指定 gl:clear/1 用于清除模板缓冲区的索引。 S 将与 2 m-1 进行掩码,其中 m 是模板缓冲区的位数。

gl:clearTexImage/5 使用应用程序提供的值填充纹理中包含的所有图像。 Texture 必须是现有纹理的名称。 此外,Texture 不能是缓冲区纹理的名称,也不能是其内部格式被压缩的纹理。

gl:clearTexSubImage/11 使用应用程序提供的值填充纹理中包含的图像的全部或部分。 Texture 必须是现有纹理的名称。 此外,Texture 不能是缓冲区纹理的名称,也不能是其内部格式被压缩的纹理。

gl:clientActiveTexture/1 选择要由 gl:texCoordPointer/4 修改的顶点数组客户端状态参数,并在使用 ?GL_TEXTURE_COORD_ARRAY 参数调用时,分别使用 gl:enableClientState/1gl:disableClientState/1 启用或禁用这些参数。

gl:clientWaitSync/3 导致客户端阻塞并等待由 Sync 指定的同步对象变为已发出信号。 如果在调用 gl:clientWaitSync/3Sync 已发出信号,则 gl:clientWaitSync/3 立即返回,否则它将阻塞并等待最多 Timeout 纳秒,直到 Sync 变为已发出信号。

gl:clipControl/2 控制裁剪体行为和裁剪坐标到窗口坐标的转换行为。

几何图形始终根据 xyz 中的六个平面视锥的边界进行裁剪。 gl:clipPlane/2 允许指定额外的平面,这些平面不一定垂直于 xyz 轴,所有几何图形都将根据这些平面进行裁剪。 要确定其他裁剪平面的最大数量,请使用参数 ?GL_MAX_CLIP_PLANES 调用 gl:getIntegerv/1。所有实现至少支持六个这样的裁剪平面。由于生成的裁剪区域是定义的半空间的交集,因此它始终是凸的。

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

等效于 color4usv/1

GL 存储当前单值颜色索引和当前四值 RGBA 颜色。 gl:color() 设置新的四值 RGBA 颜色。 gl:color() 有两个主要变体: gl:color3()gl:color4()gl:color3() 变体显式指定新的红色、绿色和蓝色值,并将当前 alpha 值隐式设置为 1.0 (全强度)。 gl:color4() 变体显式指定所有四个颜色分量。

gl:colorMask/4gl:colorMaski/5 指定帧缓冲区中各个颜色分量是否可以写入。 gl:colorMaski/5 为特定的绘制缓冲区设置掩码,而 gl:colorMask/4 为所有绘制缓冲区设置掩码。 例如,如果 Red?GL_FALSE,则无论尝试执行什么绘图操作,都不会更改任何颜色缓冲区中任何像素的红色分量。

gl:colorMaterial/2 指定哪些材质参数跟踪当前颜色。 当启用 ?GL_COLOR_MATERIAL 时,由 Mode 指定的材质参数或多个参数,以及由 Face 指定的材质或多个材质,始终跟踪当前颜色。

gl:colorPointer/4 指定渲染时使用的颜色分量数组的位置和数据格式。 Size 指定每个颜色的分量数量,必须为 3 或 4。 Type 指定每个颜色分量的数据类型,Stride 指定从一个颜色到下一个颜色的字节步幅,允许将顶点和属性打包到单个数组或存储在单独的数组中。(在某些实现中,单数组存储可能更有效;请参阅 gl:interleavedArrays/3。)

gl:colorSubTable/6 用于重新指定先前使用 gl:colorTable/6 定义的颜色表的连续部分。 由 Data 引用的像素将替换现有表中从索引 Start 到 start+count-1(包括)的部分。 此区域不得包含最初指定颜色表范围之外的任何条目。 指定宽度为 0 的子纹理不是错误,但这样的指定无效。

gl:colorTable/6 可以通过两种方式使用:测试给定一组参数的查找表的实际大小和颜色分辨率,或者加载颜色查找表的内容。 对于第一种情况,使用目标 ?GL_PROXY_*,对于第二种情况,使用其他目标。

gl:colorTableParameter() 用于指定将颜色分量加载到颜色表时应用的比例因子和偏差项。 Target 指示比例和偏差项应用于哪个颜色表;它必须设置为 ?GL_COLOR_TABLE?GL_POST_CONVOLUTION_COLOR_TABLE?GL_POST_COLOR_MATRIX_COLOR_TABLE

gl:compileShader/1 编译存储在由 Shader 指定的着色器对象中的源代码字符串。

gl:copyBufferSubData/5glCopyNamedBufferSubData 将附加到源缓冲区对象的数据存储的一部分复制到附加到目标缓冲区对象的数据存储。 由 Size 指示的基本机器单元数量从源的偏移量 ReadOffset 复制到目标的偏移量 WriteOffsetReadOffsetWriteOffsetSize 以基本机器单元为单位。

gl:copyColorSubTable/5 用于重新指定先前使用 gl:colorTable/6 定义的颜色表的连续部分。 从帧缓冲区复制的像素将替换现有表中从索引 Start 到 start+x-1(包括)的部分。 此区域不得包含最初指定颜色表范围之外的任何条目。 指定宽度为 0 的子纹理不是错误,但这样的指定无效。

gl:copyColorTable/5 从当前的 ?GL_READ_BUFFER 加载颜色表(而不是像 gl:colorTable/6 那样从主内存加载)。

gl:copyConvolutionFilter1D/5 使用来自当前 ?GL_READ_BUFFER 的像素定义一维卷积滤波内核(而不是像 gl:convolutionFilter1D/6 那样从主内存定义)。

gl:copyConvolutionFilter2D/6 使用来自当前 ?GL_READ_BUFFER 的像素定义二维卷积滤波内核(而不是像 gl:convolutionFilter2D/7 那样从主内存定义)。

gl:copyImageSubData/15 可用于将数据从一个图像(即纹理或渲染缓冲区)复制到另一个图像。 gl:copyImageSubData/15 不执行通用转换,例如缩放、调整大小、混合、色彩空间或格式转换。 应将其视为以类似于 CPU memcpy 的方式运行。 CopyImageSubData 可以在具有不同内部格式的图像之间复制,前提是格式兼容。

gl:copyPixels/5 将与屏幕对齐的像素矩形从指定的帧缓冲区位置复制到相对于当前光栅位置的区域。 只有当整个像素源区域都在窗口的暴露部分内时,其操作才是明确定义的。 从窗口外部或从窗口中未暴露的区域复制的结果取决于硬件并且是未定义的。

gl:copyTexImage1D/7 使用来自当前 ?GL_READ_BUFFER 的像素定义一维纹理图像。

gl:copyTexImage2D/8 使用来自当前 ?GL_READ_BUFFER 的像素定义二维纹理图像或立方体贴图纹理图像。

gl:copyTexSubImage1D/6glCopyTextureSubImage1D 使用来自当前 ?GL_READ_BUFFER 的像素替换一维纹理图像的一部分(而不是像 gl:texSubImage1D/7 那样从主内存替换)。 对于 gl:copyTexSubImage1D/6,将使用绑定到 Target 的纹理对象进行处理。 对于 glCopyTextureSubImage1DTexture 指示应将哪个纹理对象用于调用目的。

gl:copyTexSubImage2D/8glCopyTextureSubImage2D 使用来自当前 ?GL_READ_BUFFER 的像素替换二维纹理图像、立方体贴图纹理图像、矩形图像的矩形部分,或一维数组纹理的多个切片的线性部分(而不是像 gl:texSubImage2D/9 那样从主内存替换)。

gl:copyTexSubImage3D/9glCopyTextureSubImage3D 函数使用来自当前 ?GL_READ_BUFFER 的像素替换三维或二维数组纹理图像的矩形部分(而不是像 gl:texSubImage3D/11 那样从主内存替换)。

gl:createBuffers/1Buffers 中返回 N 个先前未使用的缓冲区名称,每个名称代表一个新的缓冲区对象,该对象初始化时就好像它已绑定到未指定的目标一样。

gl:createFramebuffers/1Framebuffers 中返回 N 个先前未使用的帧缓冲区名称,每个名称代表一个初始化为默认状态的新帧缓冲区对象。

gl:createProgram/0 创建一个空的程序对象,并返回一个非零值,可以通过该值引用该对象。 程序对象是一个可以附加着色器对象的对象。 这提供了一种机制来指定将链接以创建程序的着色器对象。 它还提供了一种方法来检查将用于创建程序的着色器的兼容性(例如,检查顶点着色器和片段着色器之间的兼容性)。 当不再需要作为程序对象的一部分时,可以分离着色器对象。

gl:createProgramPipelines/1Pipelines 中返回 N 个先前未使用的程序管道名称,每个名称代表一个初始化为默认状态的新程序管道对象。

gl:createQueries/2Ids 中返回 N 个先前未使用的查询对象名称,每个名称代表一个具有指定 Target 的新查询对象。

gl:createRenderbuffers/1Renderbuffers 中返回 N 个先前未使用的渲染缓冲区对象名称,每个名称代表一个初始化为默认状态的新渲染缓冲区对象。

gl:createSamplers/1Samplers 中返回 N 个先前未使用的采样器名称,每个名称代表一个初始化为默认状态的新采样器对象。

gl:createShader/1 创建一个空的着色器对象,并返回一个非零值,通过该值可以引用它。着色器对象用于维护定义着色器的源代码字符串。ShaderType 指示要创建的着色器的类型。支持五种类型的着色器。类型为 ?GL_COMPUTE_SHADER 的着色器是打算在可编程计算处理器上运行的着色器。类型为 ?GL_VERTEX_SHADER 的着色器是打算在可编程顶点处理器上运行的着色器。类型为 ?GL_TESS_CONTROL_SHADER 的着色器是打算在控制阶段在可编程细分处理器上运行的着色器。类型为 ?GL_TESS_EVALUATION_SHADER 的着色器是打算在评估阶段在可编程细分处理器上运行的着色器。类型为 ?GL_GEOMETRY_SHADER 的着色器是打算在可编程几何处理器上运行的着色器。类型为 ?GL_FRAGMENT_SHADER 的着色器是打算在可编程片段处理器上运行的着色器。

gl:createShaderProgram() 创建一个程序对象,其中包含由 Type 指定的单个阶段的已编译和链接的着色器。Strings 指的是用于创建着色器可执行文件的 Count 个字符串的数组。

gl:createTextures/2 返回 Textures 中先前未使用的 N 个纹理名称,每个名称代表一个由 Target 指定维度和类型的新纹理对象,并初始化为该纹理类型的默认值。

gl:createTransformFeedbacks/1 返回 Ids 中先前未使用的 N 个变换反馈对象名称,每个名称代表一个初始化为默认状态的新变换反馈对象。

gl:createVertexArrays/1 返回 Arrays 中先前未使用的 N 个顶点数组对象名称,每个名称代表一个初始化为默认状态的新顶点数组对象。

gl:cullFace/1 指定当启用面剔除时,是剔除正面还是背面(由 mode 指定)。面剔除最初是禁用的。要启用和禁用面剔除,请使用参数 ?GL_CULL_FACE 调用 gl:enable/1gl:disable/1 命令。面包括三角形、四边形、多边形和矩形。

gl:debugMessageControl/5 控制调试上下文生成的调试消息的报告。SourceTypeSeverity 参数形成一个过滤器,用于从 GL 生成的潜在消息池中选择消息。

gl:debugMessageInsert/5 将用户提供的消息插入调试输出队列。Source 指定用于对消息进行分类的源,并且必须是 ?GL_DEBUG_SOURCE_APPLICATION?GL_DEBUG_SOURCE_THIRD_PARTY。所有其他源都保留供 GL 实现使用。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?GL_DEBUG_TYPE_OTHER 之一。Severity 指示消息的严重性,并且可以是 ?GL_DEBUG_SEVERITY_LOW?GL_DEBUG_SEVERITY_MEDIUM?GL_DEBUG_SEVERITY_HIGH?GL_DEBUG_SEVERITY_NOTIFICATIONId 可用于应用程序定义的用途,并且可以是任何值。此值将被记录并用于标识消息。

gl:deleteBuffers/1 删除由数组 Buffers 的元素命名的 N 个缓冲区对象。删除缓冲区对象后,它没有内容,并且其名称可以重复使用(例如,通过 gl:genBuffers/1)。如果删除了当前绑定的缓冲区对象,则绑定将恢复为 0(没有任何缓冲区对象)。

gl:deleteFramebuffers/1 删除其名称存储在 Framebuffers 寻址的数组中的 N 个帧缓冲区对象。名称零由 GL 保留,如果它出现在 Framebuffers 中,则会被静默忽略,其他未使用的名称也是如此。一旦帧缓冲区对象被删除,其名称再次未被使用,并且它没有附件。如果当前绑定到一个或多个目标 ?GL_DRAW_FRAMEBUFFER?GL_READ_FRAMEBUFFER 的帧缓冲区被删除,则如同执行了 gl:bindFramebuffer/2,并且相应的 TargetFramebuffer 为零。

gl:deleteLists/2 导致删除连续的一组显示列表。List 是要删除的第一个显示列表的名称,Range 是要删除的显示列表的数量。所有显示列表 d 且 list<= d<= list+range-1 都被删除。

gl:deleteProgram/1 释放内存并使 Program 指定的程序对象相关联的名称无效。此命令有效地撤消了对 gl:createProgram/0 的调用效果。

gl:deleteProgramPipelines/1 删除其名称存储在数组 Pipelines 中的 N 个程序管道对象。Pipelines 中未使用的名称将被忽略,名称零也是如此。删除程序管道对象后,其名称再次未被使用,并且它没有内容。如果删除了当前绑定的程序管道对象,则该对象的绑定将恢复为零,并且没有程序管道对象变为当前对象。

gl:deleteQueries/1 删除由数组 Ids 的元素命名的 N 个查询对象。删除查询对象后,它没有内容,并且其名称可以重复使用(例如,通过 gl:genQueries/1)。

gl:deleteRenderbuffers/1 删除其名称存储在 Renderbuffers 寻址的数组中的 N 个渲染缓冲区对象。名称零由 GL 保留,如果它出现在 Renderbuffers 中,则会被静默忽略,其他未使用的名称也是如此。一旦渲染缓冲区对象被删除,其名称再次未被使用,并且它没有内容。如果当前绑定到目标 ?GL_RENDERBUFFER 的渲染缓冲区被删除,则如同执行了 gl:bindRenderbuffer/2,并且 Target?GL_RENDERBUFFER,而 Name 为零。

gl:deleteSamplers/1 删除由数组 Samplers 的元素命名的 N 个采样器对象。删除采样器对象后,其名称再次未被使用。如果当前绑定到采样器单元的采样器对象被删除,则如同调用 gl:bindSampler/2,其中 unit 设置为采样器绑定的单元,而 sampler 为零。 samplers 中未使用的名称会被静默忽略,保留名称零也是如此。

gl:deleteShader/1 释放内存并使 Shader 指定的着色器对象相关联的名称无效。此命令有效地撤消了对 gl:createShader/1 的调用效果。

gl:deleteSync/1 删除由 Sync 指定的同步对象。如果与指定的同步对象对应的栅栏命令已完成,或者如果没有 gl:waitSync/3gl:clientWaitSync/3 命令阻止 Sync,则立即删除该对象。否则,将标记 Sync 以进行删除,并且当它不再与任何栅栏命令关联并且不再阻止任何 gl:waitSync/3gl:clientWaitSync/3 命令时,它将被删除。在任何一种情况下,在 gl:deleteSync/1 返回之后,名称 Sync 无效,并且不能再用于引用同步对象。

gl:deleteTextures/1 删除由数组 Textures 的元素命名的 N 个纹理。删除纹理后,它没有内容或维度,并且其名称可以重复使用(例如,通过 gl:genTextures/1)。如果删除了当前绑定的纹理,则绑定将恢复为 0(默认纹理)。

gl:deleteTransformFeedbacks/1 删除其名称存储在数组 Ids 中的 N 个变换反馈对象。Ids 中未使用的名称将被忽略,名称零也是如此。删除变换反馈对象后,其名称再次未被使用,并且它没有内容。如果删除了活动变换反馈对象,则其名称立即变为未被使用,但只有在不再活动时才删除基础对象。

gl:deleteVertexArrays/1 删除 Arrays 指向的数组中存储的 N 个顶点数组对象。一旦顶点数组对象被删除,它将不再包含任何内容,其名称再次变为未使用状态。如果当前绑定的顶点数组对象被删除,则该对象的绑定将恢复为零,默认的顶点数组将变为当前。 Arrays 中未使用的名称会被静默忽略,零值也会被忽略。

gl:depthFunc/1 指定用于将每个传入的像素深度值与深度缓冲区中存在的深度值进行比较的函数。只有在启用深度测试时才会执行比较。(请参阅 gl:enable/1gl:disable/1 中的 ?GL_DEPTH_TEST。)

gl:depthMask/1 指定是否启用深度缓冲区的写入。如果 Flag?GL_FALSE,则禁用深度缓冲区写入。否则,启用深度缓冲区写入。初始情况下,深度缓冲区写入是启用的。

在裁剪并除以 w 后,深度坐标的范围为 -1 到 1,对应于近裁剪平面和远裁剪平面。每个视口都有一个独立的深度范围,该范围指定了此范围内的标准化深度坐标到窗口深度坐标的线性映射。无论实际的深度缓冲区实现如何,窗口坐标深度值都被视为范围从 0 到 1(如颜色分量)。gl:depthRangeArray() 为范围 [First, First + Count) 中的每个视口指定了此范围内的标准化深度坐标到窗口深度坐标的线性映射。因此,gl:depthRangeArray() 接受的值在被接受之前都会被钳制到这个范围内。

在裁剪并除以 w 后,深度坐标的范围为 -1 到 1,对应于近裁剪平面和远裁剪平面。gl:depthRange/2 指定了此范围内的标准化深度坐标到窗口深度坐标的线性映射。无论实际的深度缓冲区实现如何,窗口坐标深度值都被视为范围从 0 到 1(如颜色分量)。因此,gl:depthRange/2 接受的值在被接受之前都会被钳制到这个范围内。

在裁剪并除以 w 后,深度坐标的范围为 -1 到 1,对应于近裁剪平面和远裁剪平面。每个视口都有一个独立的深度范围,该范围指定了此范围内的标准化深度坐标到窗口深度坐标的线性映射。无论实际的深度缓冲区实现如何,窗口坐标深度值都被视为范围从 0 到 1(如颜色分量)。gl:depthRangeIndexed/3 为指定的视口指定了此范围内的标准化深度坐标到窗口深度坐标的线性映射。因此,gl:depthRangeIndexed/3 接受的值在被接受之前都会被钳制到这个范围内。

gl:detachShader/2Program 指定的程序对象中分离 Shader 指定的着色器对象。此命令可用于撤销命令 gl:attachShader/2 的效果。

等同于 enablei/2

gl:dispatchCompute/3 启动一个或多个计算工作组。每个工作组都由计算着色器阶段的活动程序对象处理。虽然工作组内的各个着色器调用作为一个单元执行,但工作组是完全独立且以未指定的顺序执行的。Num_groups_xNum_groups_yNum_groups_z 分别指定在 X、Y 和 Z 维度中将要调度的本地工作组的数量。

gl:dispatchComputeIndirect/1 使用当前绑定到 ?GL_DISPATCH_INDIRECT_BUFFER 目标的缓冲区对象中存储的参数启动一个或多个计算工作组。每个工作组都由计算着色器阶段的活动程序对象处理。虽然工作组内的各个着色器调用作为一个单元执行,但工作组是完全独立且以未指定的顺序执行的。Indirect 包含存储参数的绑定到 ?GL_DISPATCH_INDIRECT_BUFFER 目标的缓冲区对象的数据存储的偏移量。

gl:drawArrays/3 使用很少的子程序调用来指定多个几何图元。您可以预先指定顶点、法线和颜色的单独数组,而不是调用 GL 程序来传递每个单独的顶点、法线、纹理坐标、边缘标志或颜色,并使用它们通过单次调用 gl:drawArrays/3 来构造一系列图元。

gl:drawArraysIndirect/2 使用很少的子程序调用来指定多个几何图元。gl:drawArraysIndirect/2 的行为类似于 gl:drawArraysInstancedBaseInstance/5,只是 gl:drawArraysInstancedBaseInstance/5 的参数存储在 Indirect 给出的地址的内存中。

gl:drawArraysInstanced/4 的行为与 gl:drawArrays/3 完全相同,只是执行 Instancecount 次元素范围,并且内部计数器 InstanceID 在每次迭代时都会递增。InstanceID 是一个内部 32 位整数计数器,可以被顶点着色器读取为 ?gl_InstanceID

gl:drawArraysInstancedBaseInstance/5 的行为与 gl:drawArrays/3 完全相同,只是执行 Instancecount 次元素范围,并且内部计数器 InstanceID 在每次迭代时都会递增。InstanceID 是一个内部 32 位整数计数器,可以被顶点着色器读取为 ?gl_InstanceID

当颜色被写入帧缓冲区时,它们被写入由 gl:drawBuffer/1 指定的颜色缓冲区。以下值之一可用于默认帧缓冲区

gl:drawBuffers/1glNamedFramebufferDrawBuffers 定义了一个缓冲区数组,片段着色器数据的输出将写入其中。如果片段着色器将值写入一个或多个用户定义的输出变量,则每个变量的值将被写入 Bufs 中与分配给该用户定义的输出的位置相对应的位置指定的缓冲区。用于分配给大于或等于 N 的位置的用户定义输出的绘制缓冲区将隐式设置为 ?GL_NONE,并且写入此类输出的任何数据都将被丢弃。

gl:drawElements/4 使用很少的子程序调用来指定多个几何图元。您可以预先指定顶点、法线等单独的数组,而不是调用 GL 函数来传递每个单独的顶点、法线、纹理坐标、边缘标志或颜色,并使用它们通过单次调用 gl:drawElements/4 来构造一系列图元。

gl:drawElementsBaseVertex/5 的行为与 gl:drawElements/4 完全相同,只是相应绘制调用传递的第 i 个元素将从每个启用数组的 Indices[i] + Basevertex 元素中获取。如果结果值大于 Type 可表示的最大值,则就像将计算转换为 32 位无符号整数一样(在溢出条件下进行包装)。如果总和为负数,则操作未定义。

gl:drawElementsIndirect/3 使用很少的子程序调用来指定多个索引几何图元。gl:drawElementsIndirect/3 的行为类似于 gl:drawElementsInstancedBaseVertexBaseInstance/7,只是 gl:drawElementsInstancedBaseVertexBaseInstance/7 的参数存储在 Indirect 给出的地址的内存中。

gl:drawElementsInstanced/5 的行为与 gl:drawElements/4 完全相同,只是执行 Instancecount 次元素集,并且内部计数器 InstanceID 在每次迭代时都会递增。InstanceID 是一个内部 32 位整数计数器,可以被顶点着色器读取为 ?gl_InstanceID

gl:drawElementsInstancedBaseInstance/6 的行为与 gl:drawElements/4 完全相同,只是执行 Instancecount 次元素集,并且内部计数器 InstanceID 在每次迭代时都会递增。InstanceID 是一个内部 32 位整数计数器,可以被顶点着色器读取为 ?gl_InstanceID

gl:drawElementsInstancedBaseVertex/6 的行为与 gl:drawElementsInstanced/5 完全相同,只是相应绘制调用传递的第 i 个元素将从每个启用数组的 Indices[i] + Basevertex 元素中获取。如果结果值大于 Type 可表示的最大值,则就像将计算转换为 32 位无符号整数一样(在溢出条件下进行包装)。如果总和为负数,则操作未定义。

gl:drawElementsInstancedBaseVertexBaseInstance/7 的行为与 gl:drawElementsInstanced/5 完全相同,只是相应绘制调用传递的第 i 个元素将从每个启用数组的 Indices[i] + Basevertex 元素中获取。如果结果值大于 Type 可表示的最大值,则就像将计算转换为 32 位无符号整数一样(在溢出条件下进行包装)。如果总和为负数,则操作未定义。

gl:drawPixels/5 从内存中读取像素数据,并将其写入帧缓冲区,写入位置相对于当前光栅位置,前提是该光栅位置有效。使用 gl:rasterPos()gl:windowPos() 设置当前光栅位置;使用 gl:get() 以及参数 ?GL_CURRENT_RASTER_POSITION_VALID 来确定指定的光栅位置是否有效,使用 gl:get() 以及参数 ?GL_CURRENT_RASTER_POSITION 来查询光栅位置。

gl:drawRangeElements/6gl:drawElements/4 的受限形式。ModeCountgl:drawElements/4 的对应参数匹配,并附加限制,即数组 Count 中的所有值都必须介于 StartEnd 之间(包括 StartEnd)。

gl:drawRangeElementsBaseVertex/7gl:drawElementsBaseVertex/5 的受限形式。ModeCountBasevertexgl:drawElementsBaseVertex/5 的对应参数匹配,并附加限制,即数组 Indices 中的所有值在添加 Basevertex 之前都必须介于 StartEnd 之间(包括 StartEnd)。位于范围 [Start, End] 之外的索引值的处理方式与 gl:drawElementsBaseVertex/5 相同。对应的绘制调用传输的第 i 个元素将从每个启用的数组的 Indices[i] + Basevertex 元素中获取。如果结果值大于 Type 所能表示的最大值,则如同将计算结果转换为 32 位无符号整数(在溢出条件下进行环绕)。如果总和为负数,则操作未定义。

gl:drawTransformFeedback/2 使用从 Id 指定的变换反馈中检索的计数,绘制由 Mode 指定的类型的图元。调用 gl:drawTransformFeedback/2 等同于调用 gl:drawArrays/3,其中 Mode 按指定设置,First 设置为零,Count 设置为上次在 Id 指定的变换反馈对象上激活变换反馈时在顶点流零上捕获的顶点数。

gl:drawTransformFeedbackInstanced/3 使用从 Id 指定的变换反馈对象的 Stream 指定的变换反馈流中检索的计数,绘制多个由 Mode 指定的类型的图元副本。调用 gl:drawTransformFeedbackInstanced/3 等同于调用 gl:drawArraysInstanced/4,其中 ModeInstancecount 按指定设置,First 设置为零,Count 设置为上次在 Id 指定的变换反馈对象上激活变换反馈时在顶点流零上捕获的顶点数。

gl:drawTransformFeedbackStream/3 使用从 Id 指定的变换反馈对象的 Stream 指定的变换反馈流中检索的计数,绘制由 Mode 指定的类型的图元。调用 gl:drawTransformFeedbackStream/3 等同于调用 gl:drawArrays/3,其中 Mode 按指定设置,First 设置为零,Count 设置为上次在 Id 指定的变换反馈对象上激活变换反馈时在顶点流 Stream 上捕获的顶点数。

gl:drawTransformFeedbackStreamInstanced/4 使用从 Id 指定的变换反馈对象的 Stream 指定的变换反馈流中检索的计数,绘制多个由 Mode 指定的类型的图元副本。调用 gl:drawTransformFeedbackStreamInstanced/4 等同于调用 gl:drawArraysInstanced/4,其中 ModeInstancecount 按指定设置,First 设置为零,Count 设置为上次在 Id 指定的变换反馈对象上激活变换反馈时在顶点流 Stream 上捕获的顶点数。

gl:edgeFlagPointer/2 指定渲染时使用的布尔边标志数组的位置和数据格式。Stride 指定从一个边标志到下一个边标志的字节步幅,允许将顶点和属性打包到单个数组中或存储在单独的数组中。

gl:'begin'/1/gl:'end'/0 对之间指定的每个多边形、独立三角形或独立四边形的顶点都被标记为边界边或非边界边的起点。如果在指定顶点时当前边标志为真,则该顶点被标记为边界边的起点。否则,该顶点被标记为非边界边的起点。gl:edgeFlag/1 如果 Flag?GL_TRUE,则将边标志位设置为 ?GL_TRUE,否则设置为 ?GL_FALSE

等同于 enablei/2

gl:enableClientState/1gl:disableClientState/1 启用或禁用单个客户端功能。默认情况下,所有客户端功能都处于禁用状态。gl:enableClientState/1gl:disableClientState/1 都接受单个参数 Cap,它可以采用以下值之一

gl:enable/1gl:disable/1 启用和禁用各种功能。使用 gl:isEnabled/1gl:get() 确定任何功能的当前设置。除了 ?GL_DITHER?GL_MULTISAMPLE 之外,每个功能的初始值均为 ?GL_FALSE?GL_DITHER?GL_MULTISAMPLE 的初始值为 ?GL_TRUE

gl:enableVertexAttribArray/1gl:enableVertexArrayAttrib/2 启用由 Index 指定的通用顶点属性数组。gl:enableVertexAttribArray/1 使用当前绑定的顶点数组对象进行操作,而 gl:enableVertexArrayAttrib/2 更新 ID 为 Vaobj 的顶点数组对象的状态。

gl:'begin'/1gl:'end'/0 界定定义图元或一组类似图元的顶点。gl:'begin'/1 接受一个参数,用于指定以十种方式中的哪一种方式解释顶点。将 n 作为从 1 开始的整数计数,N 作为指定的顶点总数,解释如下

条件渲染使用 gl:beginConditionalRender/2 启动,并使用 gl:endConditionalRender/0 结束。在条件渲染期间,如果查询对象 Id 的 (?GL_SAMPLES_PASSED) 结果为零,或者 (?GL_ANY_SAMPLES_PASSED) 结果为 ?GL_FALSE,则所有顶点数组命令,以及 gl:clear/1gl:clearBuffer() 均无效。设置当前顶点状态的命令(如 gl:vertexAttrib())的结果未定义。如果 (?GL_SAMPLES_PASSED) 结果为非零,或者 (?GL_ANY_SAMPLES_PASSED) 结果为 ?GL_TRUE,则不会丢弃此类命令。gl:beginConditionalRender/2Id 参数必须是从之前调用 gl:genQueries/1 返回的查询对象的名称。Mode 指定如何解释查询对象的结果。如果 Mode?GL_QUERY_WAIT,则 GL 会等待查询结果可用,然后使用结果来确定是否丢弃后续的渲染命令。如果 Mode?GL_QUERY_NO_WAIT,则 GL 可以选择无条件执行后续渲染命令,而无需等待查询完成。

等同于 newList/2

gl:beginQuery/2gl:endQuery/1 划定了查询对象的边界。Query 必须是先前调用 gl:genQueries/1 返回的名称。如果名为 Id 的查询对象尚不存在,则会根据 Target 确定的类型创建它。Target 必须是 ?GL_SAMPLES_PASSED?GL_ANY_SAMPLES_PASSED?GL_PRIMITIVES_GENERATED?GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN?GL_TIME_ELAPSED 之一。查询对象的行为取决于其类型,如下所示。

gl:beginQueryIndexed/3gl:endQueryIndexed/2 划定了查询对象的边界。Query 必须是先前调用 gl:genQueries/1 返回的名称。如果名为 Id 的查询对象尚不存在,则会根据 Target 确定的类型创建它。Target 必须是 ?GL_SAMPLES_PASSED?GL_ANY_SAMPLES_PASSED?GL_PRIMITIVES_GENERATED?GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN?GL_TIME_ELAPSED 之一。查询对象的行为取决于其类型,如下所示。

变换反馈模式捕获顶点着色器(如果激活,则捕获几何着色器)写入的可变变量的值。变换反馈在调用 gl:beginTransformFeedback/1 之后被认为是激活状态,直到随后调用 gl:endTransformFeedback/0 为止。变换反馈命令必须成对出现。

gl:evalCoord1() 在参数 U 处评估启用的一维映射。gl:evalCoord2() 对二维映射执行相同的操作,使用两个域值 UV。要定义映射,请调用 glMap1glMap2;要启用和禁用它,请调用 gl:enable/1gl:disable/1

gl:mapGrid()gl:evalMesh() 配合使用,以高效地生成和评估一系列均匀间隔的映射域值。gl:evalMesh() 逐步遍历一维或二维网格的整数域,其范围是由 glMap1glMap2 指定的评估映射的域。Mode 确定结果顶点是连接为点、线还是填充多边形。

gl:mapGrid()gl:evalMesh() 配合使用,以高效地生成和评估一系列均匀间隔的映射域值。gl:evalPoint() 可用于评估与 gl:evalMesh() 遍历的相同网格空间中的单个网格点。调用 gl:evalPoint1/1 等效于调用 glEvalCoord1( i.ð u+u 1 ); 其中 ð u=(u 2-u 1)/n

gl:feedbackBuffer/3 函数控制反馈。与选择一样,反馈也是一种 GL 模式。通过使用 ?GL_FEEDBACK 调用 gl:renderMode/1 来选择该模式。当 GL 处于反馈模式时,光栅化不会生成任何像素。相反,有关本来会被光栅化的图元的信息会使用 GL 反馈给应用程序。

gl:fenceSync/2 创建一个新的栅栏同步对象,将栅栏命令插入到 GL 命令流中,并将其与该同步对象关联,并返回与该同步对象对应的非零名称。

gl:finish/0 在所有先前调用的 GL 命令的效果完成之前不会返回。这些效果包括对 GL 状态的所有更改、对连接状态的所有更改以及对帧缓冲区内容的所有更改。

不同的 GL 实现将命令缓冲在多个不同的位置,包括网络缓冲区和图形加速器本身。gl:flush/0 清空所有这些缓冲区,使所有发出的命令在被实际渲染引擎接受后尽快执行。尽管此执行可能不会在任何特定时间段内完成,但它会在有限的时间内完成。

gl:flushMappedBufferRange/3 指示已对映射缓冲区对象的范围进行了修改。缓冲区对象必须先前已使用 ?GL_MAP_FLUSH_EXPLICIT_BIT 标志进行映射。

等效于 fogCoordfv/1

gl:fogCoord() 指定与每个顶点和当前光栅位置关联的雾坐标。指定的值将被插值并用于计算雾颜色(请参见 gl:fog())。

gl:fogCoordPointer/3 指定渲染时要使用的雾坐标数组的位置和数据格式。Type 指定每个雾坐标的数据类型,Stride 指定从一个雾坐标到下一个雾坐标的字节跨度,允许将顶点和属性打包到单个数组中或存储在单独的数组中。

雾最初处于禁用状态。启用后,雾会影响光栅化的几何图形、位图和像素块,但不影响缓冲区清除操作。要启用和禁用雾,请使用参数 ?GL_FOG 调用 gl:enable/1gl:disable/1

gl:framebufferParameteri/3glNamedFramebufferParameteri 修改指定帧缓冲区对象中名为 Pname 的参数的值。默认绘制和读取帧缓冲区没有可修改的参数,因此它们不是这些命令的有效目标。

gl:framebufferRenderbuffer/4glNamedFramebufferRenderbuffer 将渲染缓冲区作为指定帧缓冲区对象的逻辑缓冲区之一进行附加。渲染缓冲区无法附加到默认绘制和读取帧缓冲区,因此它们不是这些命令的有效目标。

这些命令将选定的 mipmap 级别或纹理对象的图像作为指定帧缓冲区对象的逻辑缓冲区之一进行附加。纹理无法附加到默认绘制和读取帧缓冲区,因此它们不是这些命令的有效目标。

在完全由不透明闭合表面组成的场景中,背面多边形永远不可见。消除这些不可见的多边形具有加速图像渲染的明显好处。要启用和禁用消除背面多边形,请使用参数 ?GL_CULL_FACE 调用 gl:enable/1gl:disable/1

gl:frustum/6 描述一个产生透视投影的透视矩阵。当前矩阵(请参见 gl:matrixMode/1)乘以该矩阵,结果将替换当前矩阵,就像调用 gl:multMatrix() 并将以下矩阵作为其参数一样

gl:genBuffers/1Buffers 中返回 N 个缓冲区对象名称。不能保证这些名称构成一组连续的整数;但是,可以保证在调用 gl:genBuffers/1 之前,返回的名称均未使用。

gl:generateMipmap/1gl:generateTextureMipmap/1 为指定的纹理对象生成 mipmap。对于 gl:generateMipmap/1,纹理对象绑定到 Target。对于 gl:generateTextureMipmap/1Texture 是纹理对象的名称。

gl:genFramebuffers/1Ids 中返回 N 个帧缓冲区对象名称。不能保证这些名称构成一组连续的整数;但是,可以保证在调用 gl:genFramebuffers/1 之前,返回的名称均未使用。

gl:genLists/1 有一个参数 Range。它返回一个整数 n,使得创建了 Range 个连续的空显示列表,命名为 n、n+1、...、n+range-1。如果 Range 为 0,如果不存在 Range 个连续的可用名称的组,或者如果生成任何错误,则不会生成显示列表,并且返回 0。

gl:genProgramPipelines/1Pipelines 中返回 N 个先前未使用的程序管道对象名称。这些名称被标记为已使用,仅用于 gl:genProgramPipelines/1,但只有在首次绑定时才会获取程序管道状态。

gl:genQueries/1Ids 中返回 N 个查询对象名称。不能保证这些名称构成一组连续的整数;但是,可以保证在调用 gl:genQueries/1 之前,返回的名称均未使用。

gl:genRenderbuffers/1Renderbuffers 中返回 N 个渲染缓冲区对象名称。不能保证这些名称构成一组连续的整数;但是,可以保证在调用 gl:genRenderbuffers/1 之前,返回的名称均未使用。

gl:genSamplers/1Samplers 中返回 N 个采样器对象名称。不能保证这些名称形成一个连续的整数集合;但是,可以保证在调用 gl:genSamplers/1 之前,返回的名称都没有被使用。

gl:genTextures/1Textures 中返回 N 个纹理名称。不能保证这些名称形成一个连续的整数集合;但是,可以保证在调用 gl:genTextures/1 之前,返回的名称都没有被使用。

gl:genTransformFeedbacks/1Ids 中返回 N 个先前未使用的变换反馈对象名称。这些名称被标记为已使用,仅用于 gl:genTransformFeedbacks/1,但它们仅在首次绑定时才获得变换反馈状态。

gl:genVertexArrays/1Arrays 中返回 N 个顶点数组对象名称。不能保证这些名称形成一个连续的整数集合;但是,可以保证在调用 gl:genVertexArrays/1 之前,返回的名称都没有被使用。

gl:getActiveAttrib/3 返回由 Program 指定的程序对象中活动属性变量的信息。可以通过使用值 ?GL_ACTIVE_ATTRIBUTES 调用 gl:getProgram() 来获取活动属性的数量。 Index 的值为 0 选择第一个活动属性变量。 Index 的允许值范围从 0 到活动属性变量的数量减 1。

gl:getActiveSubroutineName/4 查询在 Program 中给出的程序对象中的活动着色器子例程统一变量的名称。Index 指定由 Stage 给出的着色器阶段内的着色器子例程统一变量的索引,并且必须介于零和着色器阶段的 ?GL_ACTIVE_SUBROUTINES 的值减 1 之间。

gl:getActiveSubroutineUniformName/4 检索活动着色器子例程统一变量的名称。Program 包含包含统一变量的程序的名称。Shadertype 指定统一变量位置有效的阶段,由 Index 给出。Index 必须介于零和着色器阶段的 ?GL_ACTIVE_SUBROUTINE_UNIFORMS 的值减 1 之间。

gl:getActiveUniform/3 返回由 Program 指定的程序对象中活动统一变量的信息。可以通过使用值 ?GL_ACTIVE_UNIFORMS 调用 gl:getProgram() 来获取活动统一变量的数量。 Index 的值为 0 选择第一个活动统一变量。Index 的允许值范围从 0 到活动统一变量的数量减 1。

gl:getActiveUniformBlockName/3 检索 ProgramUniformBlockIndex 处的活动统一变量块的名称。

gl:getActiveUniformName/3 返回 ProgramUniformIndex 处的活动统一变量的名称。如果 UniformName 不为 NULL,则最多将 BufSize 个字符(包括一个空终止符)写入地址由 UniformName 指定的数组中。如果 Length 不为 NULL,则写入 UniformName 的字符数(不包括空终止符)将放置在地址在 Length 中指定的变量中。如果 Length 为 NULL,则不返回长度。Program 中最长统一变量名称的长度由 ?GL_ACTIVE_UNIFORM_MAX_LENGTH 的值给出,可以使用 gl:getProgram() 进行查询。

gl:getActiveUniformsiv/3 查询在 Program 中,其索引在 UniformIndicesUniformCount 无符号整数数组中指定的每个统一变量的名为 Pname 的参数的值。成功后,每个统一变量的参数值将写入地址在 Params 中给出的数组中的相应条目。如果生成错误,则不会将任何内容写入 Params

gl:getAttachedShaders/2 返回附加到 Program 的着色器对象的名称。附加到 Program 的着色器对象的名称将在 Shaders 中返回。写入 Shaders 中的着色器名称的实际数量在 Count 中返回。如果没有任何着色器对象附加到 Program,则 Count 设置为 0。 Shaders 中可能返回的最大着色器名称数量由 MaxCount 指定。

gl:getAttribLocation/2 查询由 Program 指定的先前链接的程序对象中由 Name 指定的属性变量,并返回绑定到该属性变量的通用顶点属性的索引。如果 Name 是矩阵属性变量,则返回矩阵第一列的索引。如果命名的属性变量不是指定程序对象中的活动属性,或者如果 Name 以保留前缀“gl_”开头,则返回 -1 的值。

gl:getBufferParameteriv/2Data 中返回由 Target 指定的缓冲区对象的选定参数。

这些函数在 Data 中返回指定缓冲区对象的选定参数。

gl:getBufferSubData/4glGetNamedBufferSubData 返回指定缓冲区对象的数据存储的全部或部分数据内容。从缓冲区对象的数据存储中将起始于字节偏移量 Offset 并扩展 Size 字节的数据复制到 Data 指向的内存中。如果缓冲区对象当前已映射,或者如果 OffsetSize 一起定义超出缓冲区对象数据存储范围的范围,则会抛出错误。

gl:getClipPlane/1Equation 中返回 Plane 的平面方程的四个系数。

gl:getColorTable/4Table 中返回由 Target 指定的颜色表的内容。不执行像素传输操作,但执行适用于 gl:readPixels/7 的像素存储模式。

返回特定于颜色表 Target 的参数。

gl:getCompressedTexImage/3glGetnCompressedTexImage 将与 TargetLod 关联的压缩纹理图像返回到 Pixels 中。glGetCompressedTextureImage 的作用相同,但它不是采用纹理目标,而是采用纹理对象的 ID。Pixels 对于 glGetnCompresedTexImageglGetCompressedTextureImage 函数应为 BufSize 字节的数组,对于 gl:getCompressedTexImage/3 应为 ?GL_TEXTURE_COMPRESSED_IMAGE_SIZE 字节。如果实际数据占用的空间小于 BufSize,则不会触及剩余字节。 Target 指定纹理目标,该函数应从中提取数据的纹理绑定到该目标。Lod 指定所需图像的详细程度编号。

gl:getConvolutionFilter/4 返回当前 1D 或 2D 卷积滤波器内核作为图像。根据 FormatType 中的规范,将一维或二维图像放置在 Image 中。不在此图像上执行像素传输操作,但会应用相关的像素存储模式。

gl:getConvolutionParameter() 检索卷积参数。Target 确定查询哪个卷积滤波器。Pname 确定返回哪个参数

gl:getDebugMessageLog/2 从调试消息日志中检索消息。从日志中检索最多 Count 条消息。如果 Sources 不为 NULL,则将每条消息的来源写入数组的最多 Count 个元素中。如果 Types 不为 NULL,则将每条消息的类型写入数组的最多 Count 个元素中。如果 Id 不为 NULL,则将每条消息的标识符写入数组的最多 Count 个元素中。如果 Severities 不为 NULL,则将每条消息的严重性写入数组的最多 Count 个元素中。如果 Lengths 不为 NULL,则将每条消息的长度写入数组的最多 Count 个元素中。

gl:getError/0 返回错误标志的值。每个可检测到的错误都被分配一个数字代码和符号名称。当发生错误时,错误标志会被设置为相应的错误代码值。在调用 gl:getError/0 之前,不会记录其他错误,该错误代码将被返回,并且标志将被重置为 ?GL_NO_ERROR。如果调用 gl:getError/0 返回 ?GL_NO_ERROR,则表示自上次调用 gl:getError/0 或自 GL 初始化以来,没有发生可检测到的错误。

gl:getFragDataIndex/2 返回当程序对象 Program 最后一次链接时,变量 Name 被绑定到的片段颜色的索引。如果 Name 不是 Program 的 varying out 变量,或者发生错误,将返回 -1。

gl:getFragDataLocation/2 检索程序 Program 的用户定义 varying out 变量 Name 的指定颜色编号绑定。Program 必须先前已链接。Name 必须是以 null 结尾的字符串。如果 Name 不是 Program 中活跃的用户定义 varying out 片段着色器变量的名称,将返回 -1。

gl:getFramebufferAttachmentParameteriv/3glGetNamedFramebufferAttachmentParameteriv 返回指定帧缓冲对象附件的参数。

gl:getFramebufferParameteriv/2glGetNamedFramebufferParameteriv 查询指定帧缓冲对象的参数。

某些事件可能导致 GL 上下文重置。这种重置会导致所有上下文状态丢失,并要求应用程序在受影响的上下文中重新创建所有对象。

gl:getHistogram/5 返回当前直方图表,作为一个一维图像,其宽度与直方图相同。此图像不执行像素传输操作,但适用于 1D 图像的像素存储模式将受到尊重。

gl:getHistogramParameter() 用于查询当前直方图或代理的参数值。可以通过使用 Target?GL_HISTOGRAM(获取当前直方图表的信息)或 ?GL_PROXY_HISTOGRAM(获取最近代理请求的信息)以及 Pname 参数的以下值之一调用 gl:getHistogramParameter() 来查询直方图状态信息。

这些命令返回 GL 中简单状态变量的值。Pname 是一个符号常量,指示要返回的状态变量,而 Data 是一个指向要放置返回数据的指定类型的数组的指针。

gl:getLight()Params 中返回光源参数的值。 Light 命名光源,并且是 ?GL_LIGHT i 形式的符号名称,其中 i 的范围从 0 到 ?GL_MAX_LIGHTS - 1。?GL_MAX_LIGHTS 是一个实现相关的常量,大于或等于 8。Pname 通过符号名称指定十个光源参数之一。

glMap1glMap2 定义评估器。 gl:getMap() 返回评估器参数。 Target 选择一个映射, Query 选择一个特定的参数,并且 V 指向将要返回值的存储位置。

gl:getMaterial()Params 中返回材质 Face 的参数 Pname 的值。定义了六个参数

gl:getMinmax/5 返回累积的最小和最大像素值(基于每个组件计算),在一个宽度为 2 的一维图像中。第一组返回值是最小值,第二组返回值是最大值。返回值的格式由 Format 确定,其类型由 Types 确定。

gl:getMinmaxParameter() 通过将 Pname 设置为以下值之一来检索当前 minmax 表的参数

gl:getMultisamplefv/2 查询给定样本的位置。 Pname 指定要检索的样本参数,并且必须为 ?GL_SAMPLE_POSITIONIndex 对应于应返回其位置的样本。样本位置在 Val[0]Val[1] 中作为两个浮点值返回,每个值都在 0 到 1 之间,分别对应于该样本在 GL 像素空间中的 XY 位置。(0.5, 0.5) 这对应于像素中心。Index 必须在零和 ?GL_SAMPLES 的值减一之间。

有关 Map 参数的可接受值的说明,请参见 gl:pixelMap() 参考页。gl:getPixelMap()Data 中返回 Map 中指定的像素映射的内容。像素映射在执行 gl:readPixels/7, gl:drawPixels/5, gl:copyPixels/5, gl:texImage1D/8, gl:texImage2D/9, gl:texImage3D/10, gl:texSubImage1D/7, gl:texSubImage2D/9, gl:texSubImage3D/11, gl:copyTexImage1D/7, gl:copyTexImage2D/8, gl:copyTexSubImage1D/6, gl:copyTexSubImage2D/8, 和 gl:copyTexSubImage3D/9 期间使用,以将颜色索引、模板索引、颜色分量和深度分量映射到其他值。

gl:getPolygonStipple/0Pattern 返回一个 32×32 多边形点画模式。该模式被打包到内存中,就像调用了 gl:readPixels/7,其 heightwidth 都为 32,type?GL_BITMAPformat?GL_COLOR_INDEX,并且点画模式存储在内部 32×32 颜色索引缓冲区中。但是,与 gl:readPixels/7 不同,像素传输操作(移位、偏移、像素映射)不会应用于返回的点画图像。

gl:getProgramBinary/2Program 的已编译和链接的可执行文件的二进制表示返回到字节数组中,该数组的地址在 Binary 中指定。可以写入 Binary 的最大字节数由 BufSize 指定。如果程序二进制文件的大小大于 BufSize 字节,则会生成错误,否则写入 Binary 的实际字节数将返回到由 Length 给定地址的变量中。如果 Length?NULL,则不返回长度。

gl:getProgramInfoLog/2 返回指定程序对象的信息日志。当程序对象被链接或验证时,程序对象的信息日志将被修改。返回的字符串将以 null 结尾。

gl:getProgramInterfaceiv/3 查询 Program 中由 ProgramInterface 标识的接口的属性,其属性名称由 Pname 给出。

gl:getProgram()Params 中返回特定程序对象的参数值。定义了以下参数

gl:getProgramPipelineInfoLog/2 检索程序管线对象 Pipeline 的信息日志。信息日志(包括其 null 终止符)被写入字符数组,该数组的地址由 InfoLog 给出。可以写入 InfoLog 的最大字符数由 BufSize 给出,并且写入 InfoLog 的实际字符数返回到由 Length 给定地址的整数中。如果 Length?NULL,则不返回长度。

gl:getProgramPipelineiv/2 检索程序管线对象 Pipeline 的属性值。 Pname 指定要检索其值的参数的名称。参数的值被写入由 Params 给定地址的变量中。

gl:getProgramResourceIndex/3 返回分配给程序对象 Program 的接口类型 ProgramInterface 中名为 Name 的资源的无符号整数索引。

gl:getProgramResourceLocation/3 返回分配给程序对象 Program 的接口 ProgramInterface 中名为 Name 的变量的位置。Program 必须是已成功链接的程序的名称。ProgramInterface 必须是 ?GL_UNIFORM, ?GL_PROGRAM_INPUT, ?GL_PROGRAM_OUTPUT, ?GL_VERTEX_SUBROUTINE_UNIFORM, ?GL_TESS_CONTROL_SUBROUTINE_UNIFORM, ?GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, ?GL_GEOMETRY_SUBROUTINE_UNIFORM, ?GL_FRAGMENT_SUBROUTINE_UNIFORM, ?GL_COMPUTE_SUBROUTINE_UNIFORM, 或 ?GL_TRANSFORM_FEEDBACK_BUFFER 之一。

gl:getProgramResourceLocationIndex/3 返回程序对象 Program 中接口 ProgramInterface 中名为 Name 的变量分配的片段颜色索引。Program 必须是已成功链接的程序的名称。ProgramInterface 必须是 ?GL_PROGRAM_OUTPUT

gl:getProgramResourceName/4 检索程序对象 Program 的接口 ProgramInterface 中索引为 Index 的单个活动资源的名称字符串。Index 必须小于 ProgramInterface 的活动资源列表中的条目数。

gl:getProgramStage() 查询附加到程序对象的着色器阶段的参数。Program 包含附加着色器的程序的名称。Shadertype 指定要从中查询参数的阶段。Pname 指定应查询哪个参数。要查询的参数的值将返回到 Values 中指定的地址的变量中。

gl:getQueryIndexediv/3Params 中返回由 TargetIndex 指定的索引查询对象目标的选定参数。Index 指定查询对象目标的索引,并且必须在零和一个特定于目标的最大值之间。

gl:getQueryiv/2Params 中返回由 Target 指定的查询对象目标的选定参数。

这些命令返回由 Id 指定的查询对象的选定参数。gl:getQueryObject()Params 中返回由 Id 指定的查询对象的选定参数。gl:getQueryBufferObject() 通过将其写入 BufferOffset 指定的字节偏移量的数据存储中,返回由 Id 指定的查询对象的选定参数。

gl:getRenderbufferParameteriv/2glGetNamedRenderbufferParameteriv 查询指定渲染缓冲区对象的参数。

gl:getSamplerParameter()Params 中返回指定为 Pname 的采样器参数的值。Sampler 定义目标采样器,并且必须是先前调用 gl:genSamplers/1 返回的现有采样器对象的名称。Pname 接受与 gl:samplerParameter() 相同的符号,并且具有相同的解释。

gl:getShaderInfoLog/2 返回指定着色器对象的信息日志。当编译着色器时,会修改着色器对象的信息日志。返回的字符串将以 null 结尾。

gl:getShader()Params 中返回特定着色器对象的参数值。定义了以下参数

gl:getShaderPrecisionFormat/2 检索在指定的着色器类型中,实现对不同数值格式的数量表示的数值范围和精度。ShaderType 指定要检索其数值精度和范围的着色器类型,并且必须是 ?GL_VERTEX_SHADER?GL_FRAGMENT_SHADER 之一。PrecisionType 指定要查询的数值格式,并且必须是 ?GL_LOW_FLOAT?GL_MEDIUM_FLOAT?GL_HIGH_FLOAT?GL_LOW_INT?GL_MEDIUM_INT?GL_HIGH_INT 之一。

gl:getShaderSource/2 返回由 Shader 指定的着色器对象中的源代码字符串的串联。着色器对象的源代码字符串是先前调用 gl:shaderSource/2 的结果。该函数返回的字符串将以 null 结尾。

gl:getString/1 返回一个指向静态字符串的指针,该字符串描述当前 GL 连接的某些方面。Name 可以是以下之一

gl:getSubroutineIndex/3 返回附加到程序对象的着色器阶段中的子例程统一变量的索引。Program 包含附加着色器的程序的名称。Shadertype 指定要从中查询着色器子例程索引的阶段。Name 包含要查询的子例程统一变量的 null 结尾的名称。

gl:getSubroutineUniformLocation/3 返回附加到 Program 的类型为 Shadertype 的着色器阶段中子例程统一变量 Name 的位置,其行为与其他方面与 gl:getUniformLocation/2 相同。

gl:getSynciv/3 检索同步对象的属性。Sync 指定要检索其属性的同步对象的名称。

gl:getTexEnv()Params 中返回使用 gl:texEnv() 指定的纹理环境的选定值。Target 指定纹理环境。

gl:getTexGen()Params 中返回使用 gl:texGen() 指定的纹理坐标生成函数的选定参数。Coord 使用符号常量 ?GL_S?GL_T?GL_R?GL_Q 来命名 ( strq) 纹理坐标之一。

gl:getTexImage/5glGetnTexImageglGetTextureImage 函数将纹理图像返回到 Pixels 中。对于 gl:getTexImage/5glGetnTexImageTarget 指定所需的纹理图像是 gl:texImage1D/8 (?GL_TEXTURE_1D)、gl:texImage2D/9 (?GL_TEXTURE_1D_ARRAY?GL_TEXTURE_RECTANGLE?GL_TEXTURE_2D 或任何 ?GL_TEXTURE_CUBE_MAP_*) 或 gl:texImage3D/10 (?GL_TEXTURE_2D_ARRAY?GL_TEXTURE_3D?GL_TEXTURE_CUBE_MAP_ARRAY) 指定的图像。对于 glGetTextureImageTexture 指定纹理对象名称。除了 gl:getTexImage/5glGetnTexImage 接受的纹理类型之外,该函数还接受立方体贴图纹理对象(有效目标为 ?GL_TEXTURE_CUBE_MAP)。Level 指定所需图像的详细级别编号。FormatType 指定所需图像数组的格式和类型。有关 FormatType 参数的可接受值的描述,请参见 gl:texImage1D/8 的参考页。对于 glGetnTexImage 和 glGetTextureImage 函数,bufSize 指示接收检索到的像素数据的缓冲区大小。glGetnTexImageglGetTextureImage 写入 Pixels 的字节数不超过 BufSize

gl:getTexLevelParameterfv/3, gl:getTexLevelParameteriv/3, glGetTextureLevelParameterfvglGetTextureLevelParameterivParams 中返回特定细节层次值(由 Level 指定)的纹理参数值。 对于前两个函数,Target 定义目标纹理,可以是 ?GL_TEXTURE_1D?GL_TEXTURE_2D?GL_TEXTURE_3D?GL_PROXY_TEXTURE_1D?GL_PROXY_TEXTURE_2D?GL_PROXY_TEXTURE_3D?GL_TEXTURE_CUBE_MAP_POSITIVE_X?GL_TEXTURE_CUBE_MAP_NEGATIVE_X?GL_TEXTURE_CUBE_MAP_POSITIVE_Y?GL_TEXTURE_CUBE_MAP_NEGATIVE_Y?GL_TEXTURE_CUBE_MAP_POSITIVE_Z?GL_TEXTURE_CUBE_MAP_NEGATIVE_Z?GL_PROXY_TEXTURE_CUBE_MAP。 后两个函数接收一个 Texture 参数,该参数指定纹理对象的名称。

gl:getTexParameter()glGetTextureParameterParams 中返回指定为 Pname 的纹理参数的一个或多个值。Target 定义目标纹理。?GL_TEXTURE_1D?GL_TEXTURE_2D?GL_TEXTURE_3D?GL_TEXTURE_1D_ARRAY?GL_TEXTURE_2D_ARRAY?GL_TEXTURE_RECTANGLE?GL_TEXTURE_CUBE_MAP?GL_TEXTURE_CUBE_MAP_ARRAY?GL_TEXTURE_2D_MULTISAMPLE?GL_TEXTURE_2D_MULTISAMPLE_ARRAY 分别指定一维、二维或三维纹理,一维数组、二维数组、矩形、立方体贴图或立方体贴图数组、二维多重采样或二维多重采样数组纹理。Pname 接受与 gl:texParameter() 相同的符号,并具有相同的解释。

可以通过调用 gl:getTransformFeedbackVarying/3 来检索链接程序中将在变换反馈期间捕获的可变变量集的相关信息。gl:getTransformFeedbackVarying/3 提供有关由 Index 选择的可变变量的信息。 Index 为 0 选择传递给 gl:transformFeedbackVaryings/3Varyings 数组中指定的第一个可变变量,Index 的值为 ?GL_TRANSFORM_FEEDBACK_VARYINGS 减一时选择最后一个这样的变量。

gl:getUniformIndices/2 检索 Program 中多个 uniform 变量的索引。

glGetUniformLocation 返回一个整数,表示程序对象中特定 uniform 变量的位置。 Name 必须是一个不包含空格的空终止字符串。Name 必须是 Program 中一个活跃的 uniform 变量名,它不是结构体、结构体数组或向量或矩阵的子组件。如果 Name 不对应于 Program 中的活跃 uniform 变量,如果 Name 以保留前缀“gl_”开头,或者如果 Name 与原子计数器或命名的 uniform 块关联,则此函数返回 -1。

gl:getUniformSubroutine() 检索当前程序着色器阶段 Shadertype 中位置 Location 处的子例程 uniform 的值。 Location 必须小于当前正在着色器阶段 Shadertype 中使用的着色器的 ?GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 的值。子例程 uniform 的值在 Values 中返回。

gl:getUniform()glGetnUniformParams 中返回指定 uniform 变量的一个或多个值。由 Location 指定的 uniform 变量的类型确定返回的值的数量。如果 uniform 变量在着色器中定义为布尔值、整数或浮点数,则将返回单个值。如果将其定义为 vec2、ivec2 或 bvec2,则将返回两个值。如果将其定义为 vec3、ivec3 或 bvec3,则将返回三个值,依此类推。要查询声明为数组的 uniform 变量中存储的值,请为数组的每个元素调用 gl:getUniform()。要查询声明为结构的 uniform 变量中存储的值,请为结构中的每个字段调用 gl:getUniform()。声明为矩阵的 uniform 变量的值将以列优先顺序返回。

gl:getVertexAttrib()Params 中返回通用顶点属性参数的值。要查询的通用顶点属性由 Index 指定,要查询的参数由 Pname 指定。

当有解释空间时,可以使用提示来控制 GL 行为的某些方面。提示使用两个参数指定。Target 是一个符号常量,指示要控制的行为,Mode 是另一个符号常量,指示所需的行为。每个 Target 的初始值为 ?GL_DONT_CAREMode 可以是以下之一

当启用 ?GL_HISTOGRAM 时,RGBA 颜色分量将通过限制在 [0,1] 范围内、乘以直方图表的宽度并四舍五入到最接近的整数来转换为直方图表索引。然后递增由 RGBA 索引选择的表条目。(如果直方图表的内部格式包括亮度,则从 R 颜色分量导出的索引确定要递增的亮度表条目。)如果直方图表条目递增超出其最大值,则其值变为未定义。(这不是错误。)

等效于 indexubv/1

等效于 indexubv/1

等效于 indexubv/1

等效于 indexubv/1

等效于 indexubv/1

等效于 indexubv/1

gl:indexMask/1 控制颜色索引缓冲区中各个位的写入。 Mask 的最低有效 n 位(其中 n 是颜色索引缓冲区中的位数)指定一个掩码。如果掩码中出现 1(一),则可以写入颜色索引缓冲区(或多个缓冲区)中的相应位。如果出现 0(零),则会写保护相应的位。

gl:indexPointer/3 指定渲染时要使用的颜色索引数组的位置和数据格式。Type 指定每个颜色索引的数据类型,Stride 指定从一个颜色索引到下一个颜色索引的字节步幅,从而允许将顶点和属性打包到单个数组中或存储在单独的数组中。

等效于 indexubv/1

等效于 indexubv/1

等效于 indexubv/1

gl:index() 更新当前(单值)颜色索引。它接受一个参数,即当前颜色索引的新值。

名称堆栈在选择模式期间使用,以允许唯一地标识渲染命令集。 它由一组有序的无符号整数组成。gl:initNames/0 使名称堆栈初始化为其默认的空状态。

gl:interleavedArrays/3 允许您指定和启用各个颜色、法线、纹理和顶点数组,这些数组的元素是较大的聚合数组元素的一部分。 对于某些实现,这比单独指定数组更有效。

gl:invalidateBufferData/1 使缓冲区对象的数据存储的所有内容无效。 无效后,缓冲区数据存储的内容变为未定义。

gl:invalidateBufferSubData/3 使缓冲区对象的数据存储的全部或部分内容无效。 无效后,缓冲区数据存储指定范围内的内容变为未定义。范围的开始由 Offset 给出,其大小由 Length 给出,均以基本机器单位测量。

gl:invalidateFramebuffer/2glInvalidateNamedFramebufferData 使帧缓冲区的指定附件集的全部内容无效。

gl:invalidateSubFramebuffer/6glInvalidateNamedFramebufferSubData 使帧缓冲区的指定附件集的指定区域的内容无效。

gl:invalidateTexSubImage/8 使纹理图像的所有内容无效。TextureLevel 指示正在使哪个纹理图像无效。执行此命令后,纹理图像中的数据将具有未定义的值。

gl:invalidateTexSubImage/8 使纹理图像的全部或部分内容无效。TextureLevel 指示正在使哪个纹理图像无效。执行此命令后,该子区域中的数据将具有未定义的值。XoffsetYoffsetZoffsetWidthHeightDepth 的解释方式与 gl:texSubImage3D/11 中的解释方式相同。对于不具有某些维度的纹理目标,此命令将这些维度视为大小为 1。例如,要使二维纹理的一部分无效,应用程序应使用 Zoffset 等于零和 Depth 等于 1。立方体贴图纹理被视为 z 维度中的六个切片的数组,其中 Zoffset 的值被解释为指定面 ?GL_TEXTURE_CUBE_MAP_POSITIVE_X + Zoffset

gl:isBuffer/1 如果 Buffer 当前是一个缓冲区对象的名称,则返回 ?GL_TRUE。如果 Buffer 为零,或者是一个非零值,但当前不是缓冲区对象的名称,或者发生错误,则 gl:isBuffer/1 返回 ?GL_FALSE

如果 Cap 是一个已启用的功能,则 gl:isEnabled/1 返回 ?GL_TRUE,否则返回 ?GL_FALSE。可以使用 gl:isEnabledi/2 测试已索引的布尔状态。对于 gl:isEnabledi/2Index 指定要测试的功能的索引。Index 必须介于零和 Cap 的索引功能计数之间。最初,除 ?GL_DITHER 之外的所有功能都已禁用;?GL_DITHER 最初是启用的。

如果 Framebuffer 当前是一个帧缓冲区对象的名称,则 gl:isFramebuffer/1 返回 ?GL_TRUE。如果 Framebuffer 为零,或者 ?framebuffer 不是帧缓冲区对象的名称,或者发生错误,则 gl:isFramebuffer/1 返回 ?GL_FALSE。如果 Framebuffer 是由 gl:genFramebuffers/1 返回的名称,但尚未通过调用 gl:bindFramebuffer/2 进行绑定,则该名称不是帧缓冲区对象,并且 gl:isFramebuffer/1 返回 ?GL_FALSE

如果 List 是显示列表的名称,则 gl:isList/1 返回 ?GL_TRUE,如果不是,或者发生错误,则返回 ?GL_FALSE

如果 Program 是先前使用 gl:createProgram/0 创建且尚未通过 gl:deleteProgram/1 删除的程序对象的名称,则 gl:isProgram/1 返回 ?GL_TRUE。如果 Program 为零,或者是一个非零值,但不是程序对象的名称,或者发生错误,则 gl:isProgram/1 返回 ?GL_FALSE

如果 Pipeline 当前是一个程序管线对象的名称,则 gl:isProgramPipeline/1 返回 ?GL_TRUE。如果 Pipeline 为零,或者 ?pipeline 不是程序管线对象的名称,或者发生错误,则 gl:isProgramPipeline/1 返回 ?GL_FALSE。如果 Pipeline 是由 gl:genProgramPipelines/1 返回的名称,但尚未通过调用 gl:bindProgramPipeline/1 进行绑定,则该名称不是程序管线对象,并且 gl:isProgramPipeline/1 返回 ?GL_FALSE

如果 Id 当前是一个查询对象的名称,则 gl:isQuery/1 返回 ?GL_TRUE。如果 Id 为零,或者是一个非零值,但当前不是查询对象的名称,或者发生错误,则 gl:isQuery/1 返回 ?GL_FALSE

如果 Renderbuffer 当前是一个渲染缓冲区对象的名称,则 gl:isRenderbuffer/1 返回 ?GL_TRUE。如果 Renderbuffer 为零,或者 Renderbuffer 不是渲染缓冲区对象的名称,或者发生错误,则 gl:isRenderbuffer/1 返回 ?GL_FALSE。如果 Renderbuffer 是由 gl:genRenderbuffers/1 返回的名称,但尚未通过调用 gl:bindRenderbuffer/2gl:framebufferRenderbuffer/4 进行绑定,则该名称不是渲染缓冲区对象,并且 gl:isRenderbuffer/1 返回 ?GL_FALSE

如果 Id 当前是一个采样器对象的名称,则 gl:isSampler/1 返回 ?GL_TRUE。如果 Id 为零,或者是一个非零值,但当前不是采样器对象的名称,或者发生错误,则 gl:isSampler/1 返回 ?GL_FALSE

如果 Shader 是先前使用 gl:createShader/1 创建且尚未通过 gl:deleteShader/1 删除的着色器对象的名称,则 gl:isShader/1 返回 ?GL_TRUE。如果 Shader 为零,或者是一个非零值,但不是着色器对象的名称,或者发生错误,则 glIsShader 返回 ?GL_FALSE

如果 Sync 当前是同步对象的名称,则 gl:isSync/1 返回 ?GL_TRUE。如果 Sync 不是同步对象的名称,或者发生错误,则 gl:isSync/1 返回 ?GL_FALSE。请注意,零不是同步对象的名称。

如果 Texture 当前是纹理的名称,则 gl:isTexture/1 返回 ?GL_TRUE。如果 Texture 为零,或者是一个非零值,但当前不是纹理的名称,或者发生错误,则 gl:isTexture/1 返回 ?GL_FALSE

如果 Id 当前是一个变换反馈对象的名称,则 gl:isTransformFeedback/1 返回 ?GL_TRUE。如果 Id 为零,或者 ?id 不是变换反馈对象的名称,或者发生错误,则 gl:isTransformFeedback/1 返回 ?GL_FALSE。如果 Id 是由 gl:genTransformFeedbacks/1 返回的名称,但尚未通过调用 gl:bindTransformFeedback/2 进行绑定,则该名称不是变换反馈对象,并且 gl:isTransformFeedback/1 返回 ?GL_FALSE

如果 Array 当前是一个顶点数组对象的名称,则 gl:isVertexArray/1 返回 ?GL_TRUE。如果 Array 为零,或者 Array 不是顶点数组对象的名称,或者发生错误,则 gl:isVertexArray/1 返回 ?GL_FALSE。如果 Array 是由 gl:genVertexArrays/1 返回的名称,但尚未通过调用 gl:bindVertexArray/1 进行绑定,则该名称不是顶点数组对象,并且 gl:isVertexArray/1 返回 ?GL_FALSE

gl:light() 设置各个光源参数的值。Light 命名光源,并且是 ?GL_LIGHT i 形式的符号名称,其中 i 的范围从 0 到 ?GL_MAX_LIGHTS - 1 的值。Pname 通过符号名称指定十个光源参数之一。Params 是单个值或指向包含新值的数组的指针。

gl:lightModel() 设置光照模型参数。Pname 命名参数,Params 给出新值。有三个光照模型参数

线条点画会屏蔽由光栅化产生的某些片段;这些片段不会被绘制。屏蔽是通过使用三个参数实现的:16 位线条点画模式 Pattern、重复计数 Factor 和整数点画计数器 s。

gl:lineWidth/1 指定别名线和抗锯齿线的栅格化宽度。使用 1 以外的线宽具有不同的效果,具体取决于是否启用了线抗锯齿。要启用和禁用线抗锯齿,请使用参数 ?GL_LINE_SMOOTH 调用 gl:enable/1gl:disable/1。线抗锯齿最初是禁用的。

gl:linkProgram/1 链接由 Program 指定的程序对象。如果任何类型为 ?GL_VERTEX_SHADER 的着色器对象附加到 Program,则它们将用于创建将在可编程顶点处理器上运行的可执行文件。如果任何类型为 ?GL_GEOMETRY_SHADER 的着色器对象附加到 Program,则它们将用于创建将在可编程几何处理器上运行的可执行文件。如果任何类型为 ?GL_FRAGMENT_SHADER 的着色器对象附加到 Program,则它们将用于创建将在可编程片段处理器上运行的可执行文件。

gl:callLists/1 指定偏移量数组。显示列表名称是通过将 Base 添加到每个偏移量生成的。执行引用有效显示列表的名称;其他名称被忽略。

gl:loadIdentity/0 将当前矩阵替换为单位矩阵。它在语义上等效于使用单位矩阵调用 gl:loadMatrix()

gl:loadMatrix()M 指定的元素替换当前矩阵。当前矩阵是投影矩阵、模型视图矩阵或纹理矩阵,具体取决于当前的矩阵模式(参见 gl:matrixMode/1)。

在选择模式期间,使用名称堆栈来唯一标识渲染命令集。它由一组有序的无符号整数组成,初始为空。

gl:loadTransposeMatrix()M 指定的元素替换当前矩阵。当前矩阵是投影矩阵、模型视图矩阵或纹理矩阵,具体取决于当前的矩阵模式(参见 gl:matrixMode/1)。

gl:logicOp/1 指定一个逻辑操作,当启用时,它将在传入的 RGBA 颜色和帧缓冲区中相应位置的 RGBA 颜色之间应用。要启用或禁用逻辑操作,请使用符号常量 ?GL_COLOR_LOGIC_OP 调用 gl:enable/1gl:disable/1。初始值是禁用状态。

求值器提供了一种使用多项式或有理多项式映射来生成顶点、法线、纹理坐标和颜色的方法。求值器生成的值被发送到 GL 处理的后续阶段,就像它们是使用 gl:vertex()gl:normal()gl:texCoord()gl:color() 命令呈现的一样,只是生成的值不更新当前的法线、纹理坐标或颜色。

求值器提供了一种使用多项式或有理多项式映射来生成顶点、法线、纹理坐标和颜色的方法。求值器生成的值被发送到 GL 处理的后续阶段,就像它们是使用 gl:vertex()gl:normal()gl:texCoord()gl:color() 命令呈现的一样,只是生成的值不更新当前的法线、纹理坐标或颜色。

gl:mapGrid()gl:evalMesh() 一起使用,以有效地生成和计算一系列均匀间隔的映射域值。 gl:evalMesh() 步进一维或二维网格的整数域,该范围是 glMap1glMap2 指定的计算映射的域。

gl:material() 将值分配给材质参数。有两组匹配的材质参数。一组是 front-facing 集,用于为点、线、位图和所有多边形(当禁用双面照明时)或仅为正面多边形(当启用双面照明时)着色。另一组 back-facing 仅在启用双面照明时用于为背面多边形着色。有关单面和双面照明计算的详细信息,请参阅 gl:lightModel() 参考页。

gl:matrixMode/1 设置当前矩阵模式。 Mode 可以采用四个值之一

gl:memoryBarrier/1 定义一个屏障,该屏障对在命令之前发出的内存事务相对于在屏障之后发出的内存事务进行排序。为了进行此排序,由着色器执行的内存事务被认为是由触发着色器执行的渲染命令发出的。Barriers 是一个位字段,指示与着色器存储同步的操作集; Barriers 中使用的位如下

当启用 ?GL_MINMAX 时,传入像素的 RGBA 分量将与每个分量的最小值和最大值进行比较,这些值存储在两元素的 minmax 表中。(第一个元素存储最小值,第二个元素存储最大值。)如果像素分量大于最大元素中的相应分量,则使用像素分量值更新最大元素。如果像素分量小于最小元素中的相应分量,则使用像素分量值更新最小元素。(在这两种情况下,如果 minmax 表的内部格式包含亮度,则传入像素的 R 颜色分量将用于比较。)可以通过调用 gl:getMinmax/5 稍后检索 minmax 表的内容。可以通过分别调用 gl:enable/1gl:disable/1 并使用 ?GL_MINMAX 的参数来启用或禁用 minmax 操作。

gl:minSampleShading/1 指定在覆盖的像素内对样本进行着色的速率。通过使用参数 ?GL_SAMPLE_SHADING 调用 gl:enable/1 来启用样本率着色。如果禁用 ?GL_MULTISAMPLE?GL_SAMPLE_SHADING,则样本着色不起作用。否则,实现必须为每个覆盖的片段提供至少与 Value 乘以 Samples 指定的唯一颜色值一样多的唯一颜色值,其中 Samples 是当前帧缓冲区的 ?GL_SAMPLES 的值。为每个覆盖的片段生成至少 1 个样本。

gl:multiDrawArrays/3 使用很少的子例程调用指定多组几何图元。您可以预先指定单独的顶点、法线和颜色数组,而不是调用 GL 过程来传递每个单独的顶点、法线、纹理坐标、边缘标志或颜色,然后使用它们通过单次调用 gl:multiDrawArrays/3 来构造一系列图元。

gl:multiDrawArraysIndirect/4 使用很少的子例程调用指定多个几何图元。gl:multiDrawArraysIndirect/4 的行为类似于多次调用 gl:drawArraysInstancedBaseInstance/5,但对 gl:drawArraysInstancedBaseInstance/5 的每次调用的参数都存储在 Indirect 给出的地址的内存中的数组中,由 Stride 指定的基本机器单位中的步幅分隔。如果 Stride 为零,则假定数组在内存中紧密打包。

gl:multiTexCoord() 指定一维、二维、三维或四维的纹理坐标。 gl:multiTexCoord1() 将当前纹理坐标设置为 (s 0 0 1);调用 gl:multiTexCoord2() 会将其设置为 (s t 0 1)。类似地, gl:multiTexCoord3() 将纹理坐标指定为 (s t r 1),而 gl:multiTexCoord4() 显式定义所有四个分量为 (s t r q)。

gl:multMatrix() 将当前矩阵与使用 M 指定的矩阵相乘,并用乘积替换当前矩阵。

gl:multTransposeMatrix() 将当前矩阵与使用 M 指定的矩阵相乘,并用乘积替换当前矩阵。

显示列表是已存储以供后续执行的 GL 命令组。显示列表使用 gl:newList/2 创建。所有后续命令都按发出顺序放置在显示列表中,直到调用 gl:endList/0 为止。

等同于 normal3sv/1

等同于 normal3sv/1

等同于 normal3sv/1

等同于 normal3sv/1

只要发出 gl:normal(),当前法线就会设置为给定的坐标。字节、短整型或整数参数会使用线性映射转换为浮点格式,该映射将最正的可表示整数值映射为 1.0,并将最负的可表示整数值映射为 -1.0。

gl:normalPointer/3 指定渲染时使用的法线数组的位置和数据格式。Type 指定每个法线坐标的数据类型,Stride 指定从一个法线到下一个法线的字节跨度,允许将顶点和属性打包到单个数组或存储在单独的数组中。(在某些实现中,单数组存储可能更有效;请参阅 gl:interleavedArrays/3。)

gl:objectPtrLabel/3 标记由 Ptr 标识的同步对象。

gl:ortho/6 描述产生平行投影的变换。当前矩阵(请参阅 gl:matrixMode/1)乘以该矩阵,结果替换当前矩阵,如同使用以下矩阵作为参数调用 gl:multMatrix() 一样

gl:patchParameter() 指定将用于面片图元的参数。Pname 指定要修改的参数,并且必须是 ?GL_PATCH_VERTICES?GL_PATCH_DEFAULT_OUTER_LEVEL?GL_PATCH_DEFAULT_INNER_LEVEL。对于 gl:patchParameteri/2Value 指定由 Pname 指定的参数的新值。对于 gl:patchParameterfv/2Values 指定包含由 Pname 指定的参数的新值的数组的地址。

gl:pauseTransformFeedback/0 暂停当前活动的变换反馈对象上的变换反馈操作。当变换反馈操作暂停时,变换反馈仍然被认为是活动的,并且更改与该对象相关的大多数变换反馈状态会导致错误。但是,可以在变换反馈暂停时绑定新的变换反馈对象。

gl:pixelMap() 设置转换表或 maps,供 gl:copyPixels/5gl:copyTexImage1D/7gl:copyTexImage2D/8gl:copyTexSubImage1D/6gl:copyTexSubImage2D/8gl:copyTexSubImage3D/9gl:drawPixels/5gl:readPixels/7gl:texImage1D/8gl:texImage2D/9gl:texImage3D/10gl:texSubImage1D/7gl:texSubImage2D/9gl:texSubImage3D/11 使用。此外,如果支持 ARB_imaging 子集,则例程 gl:colorTable/6gl:colorSubTable/6gl:convolutionFilter1D/6gl:convolutionFilter2D/7gl:histogram/4gl:minmax/3gl:separableFilter2D/8 也使用。这些映射的用法在 gl:pixelTransfer() 参考页中完整描述,并在像素和纹理图像命令的参考页中部分描述。本参考页中仅描述映射的规范。

gl:pixelTransfer() 设置像素传输模式,该模式影响后续的 gl:copyPixels/5gl:copyTexImage1D/7gl:copyTexImage2D/8gl:copyTexSubImage1D/6gl:copyTexSubImage2D/8gl:copyTexSubImage3D/9gl:drawPixels/5gl:readPixels/7gl:texImage1D/8gl:texImage2D/9gl:texImage3D/10gl:texSubImage1D/7gl:texSubImage2D/9gl:texSubImage3D/11 命令。此外,如果支持 ARB_imaging 子集,则例程 gl:colorTable/6gl:colorSubTable/6gl:convolutionFilter1D/6gl:convolutionFilter2D/7gl:histogram/4gl:minmax/3gl:separableFilter2D/8 也会受到影响。像素传输模式指定的算法在从帧缓冲区读取像素后(gl:copyPixels/5gl:copyTexImage1D/7gl:copyTexImage2D/8gl:copyTexSubImage1D/6gl:copyTexSubImage2D/8gl:copyTexSubImage3D/9gl:readPixels/7),或从客户端内存解包后(gl:drawPixels/5gl:texImage1D/8gl:texImage2D/9gl:texImage3D/10gl:texSubImage1D/7gl:texSubImage2D/9gl:texSubImage3D/11)对像素进行操作。像素传输操作按照相同的顺序和相同的方式进行,无论哪个命令导致像素操作。像素存储模式(请参阅 gl:pixelStore())控制从客户端内存读取的像素的解包以及写回客户端内存的像素的打包。

gl:pixelZoom/2 指定 x 和 y 缩放因子的值。在执行 gl:drawPixels/5gl:copyPixels/5 期间,如果 ( xr, yr) 是当前的栅格位置,并且给定元素位于像素矩形的第 m 行和第 n 列,则中心位于以下矩形中的像素

以下值可用于 Pname

gl:pointSize/1 指定点的栅格化直径。如果禁用点大小模式(请参阅使用参数 ?GL_PROGRAM_POINT_SIZEgl:enable/1),则此值将用于栅格化点。否则,将使用写入着色语言内置变量 gl_PointSize 的值。

gl:polygonMode/2 控制用于栅格化的多边形的解释。Face 描述 Mode 应用于哪个多边形:正面和背面多边形 (?GL_FRONT_AND_BACK)。多边形模式仅影响多边形的最终栅格化。特别是,在应用这些模式之前,多边形的顶点会被照亮,并且多边形会被裁剪并可能被剔除。

当启用 ?GL_POLYGON_OFFSET_FILL?GL_POLYGON_OFFSET_LINE?GL_POLYGON_OFFSET_POINT 时,每个片段的 depth 值将在从适当顶点的 depth 值插值后进行偏移。偏移的值为 factor×DZ+r×units,其中 DZ 是多边形相对于屏幕区域的深度变化测量值,r 是保证为给定实现产生可解析偏移的最小值。在执行深度测试之前,并在将值写入深度缓冲区之前添加偏移。

多边形点画,如线条点画(请参阅 gl:lineStipple/2),会屏蔽栅格化产生的某些片段,从而创建图案。点画独立于多边形抗锯齿。

等效于 pushAttrib/1

等效于 pushMatrix/0

等效于 pushName/1

gl:primitiveRestartIndex/1 指定在启用图元重启时特殊对待的顶点数组元素。这称为图元重启索引。

gl:prioritizeTextures/2Priorities 中给出的 N 个纹理优先级分配给 Textures 中命名的 N 个纹理。

gl:programBinary/3 使用先前从 gl:getProgramBinary/2 返回的程序二进制文件加载程序对象。BinaryFormatBinary 必须是先前调用 gl:getProgramBinary/2 返回的值,并且 Length 必须是 gl:getProgramBinary/2 返回的长度,或者在 Pname 设置为 ?GL_PROGRAM_BINARY_LENGTH 时调用 gl:getProgram() 返回的长度。如果未满足这些条件,则加载程序二进制文件将失败,并且 Program?GL_LINK_STATUS 将设置为 ?GL_FALSE

gl:programParameter() 为程序对象 Program 指定由 Pname 命名的参数的新值。

gl:programUniform() 修改 uniform 变量或 uniform 变量数组的值。要修改的 uniform 变量的位置由 Location 指定,它应该是 gl:getUniformLocation/2 返回的值。gl:programUniform() 操作由 Program 指定的程序对象。

Flatshading 顶点着色器可变输出意味着为图元的每个顶点分配该输出的相同值。从中导出这些值的顶点称为 provoking vertexgl:provokingVertex/1 指定哪个顶点用作平面着色可变数据的来源。

gl:pushAttrib/1 接受一个参数,一个掩码,指示要保存在属性堆栈上的状态变量组。使用符号常量在掩码中设置位。Mask 通常通过指定几个这些常量的按位或来构造。特殊掩码 ?GL_ALL_ATTRIB_BITS 可用于保存所有可堆叠状态。

gl:pushClientAttrib/1 接受一个参数,一个掩码,指示要保存在客户端属性堆栈上的客户端状态变量组。使用符号常量在掩码中设置位。Mask 通常通过指定几个这些常量的按位或来构造。特殊掩码 ?GL_CLIENT_ALL_ATTRIB_BITS 可用于保存所有可堆叠客户端状态。

gl:pushDebugGroup/4 将由字符串 Message 描述的调试组推送到命令流中。Id 的值指定生成的消息的 ID。参数 Length 包含 Message 中的字符数。如果 Length 为负数,则表示 Message 包含一个以 null 结尾的字符串。消息具有指定的 SourceIdType``?GL_DEBUG_TYPE_PUSH_GROUPSeverity``?GL_DEBUG_SEVERITY_NOTIFICATION。GL 将在调试组堆栈的顶部放置一个新的调试组,该调试组继承先前驻留在调试组堆栈顶部的调试组的调试输出量控制。由于调试组是严格分层的,因此对调试输出量的任何其他控制都仅适用于活动调试组以及推送到活动调试组顶部的调试组。

每个矩阵模式都有一个矩阵堆栈。在 ?GL_MODELVIEW 模式下,堆栈深度至少为 32。在其他模式下,?GL_COLOR?GL_PROJECTION?GL_TEXTURE,深度至少为 2。任何模式下的当前矩阵都是该模式堆栈顶部的矩阵。

在选择模式期间,使用名称堆栈来唯一标识渲染命令集。它由一组有序的无符号整数组成,初始为空。

gl:queryCounter/2 使 GL 将当前时间记录到名为 Id 的查询对象中。Target 必须是 ?GL_TIMESTAMP。时间是在完全实现 GL 客户端和服务器状态以及帧缓冲区上的所有先前命令之后记录的。记录时间后,该对象的查询结果将被标记为可用。gl:queryCounter/2 计时器查询可以在目标为 ?GL_TIME_ELAPSEDgl:beginQuery/2 / gl:endQuery/1 块内使用,它不会影响该查询对象的结果。

GL 在窗口坐标中维护一个 3D 位置。此位置称为光栅位置,用于定位像素和位图写入操作。它以亚像素精度维护。请参阅 gl:bitmap/7gl:drawPixels/5gl:copyPixels/5

gl:readBuffer/1 指定一个颜色缓冲区作为后续 gl:readPixels/7gl:copyTexImage1D/7gl:copyTexImage2D/8gl:copyTexSubImage1D/6gl:copyTexSubImage2D/8gl:copyTexSubImage3D/9 命令的来源。Mode 接受十二个或更多预定义值之一。在完全配置的系统中,?GL_FRONT?GL_LEFT?GL_FRONT_LEFT 都命名为前左缓冲区,?GL_FRONT_RIGHT?GL_RIGHT 命名为前右缓冲区,?GL_BACK_LEFT?GL_BACK 命名为后左缓冲区。此外,常量 ?GL_COLOR_ATTACHMENT``i 可用于指示第 i 个颜色附件,其中 i 的范围从零到 ?GL_MAX_COLOR_ATTACHMENTS 的值减一。

gl:readPixels/7glReadnPixels 从帧缓冲区返回像素数据,从左下角位于位置 (X, Y) 的像素开始,到从位置 Data 开始的客户端内存中。多个参数控制像素数据在放入客户端内存之前的处理。这些参数使用 gl:pixelStore() 设置。此参考页描述了 gl:readPixels/7glReadnPixels 对这些三个命令指定的大多数但并非全部参数的影响。

等效于 rectsv/2

等效于 rectsv/2

等效于 rectsv/2

gl:rect() 支持将矩形有效地指定为两个角点。每个矩形命令接受四个参数,这些参数组织为两个连续的 (x y) 坐标对,或两个指向数组的指针,每个数组包含一个 (x y) 对。生成的矩形在 z=0 平面中定义。

gl:releaseShaderCompiler/0 向实现提供一个提示,它可以释放与其着色器编译器关联的内部资源。gl:compileShader/1 随后可能会被调用,并且该实现在那时可能会重新分配先前通过调用 gl:releaseShaderCompiler/0 释放的资源。

gl:renderbufferStorage/4 等效于调用 gl:renderbufferStorageMultisample/5,并将 Samples 设置为零,而 glNamedRenderbufferStorage 等效于调用 glNamedRenderbufferStorageMultisample,并将样本设置为零。

gl:renderbufferStorageMultisample/5glNamedRenderbufferStorageMultisample 建立渲染缓冲区对象的图像的数据存储、格式、维度和样本数。

gl:renderMode/1 设置光栅化模式。它接受一个参数,Mode,它可以采用三个预定义值之一

gl:resetHistogram/1 将当前直方图表的所有元素重置为零。

gl:resetMinmax/1 将当前最小值最大值表的元素重置为其初始值:``最大'' 元素接收最小的可能分量值,而 ``最小'' 元素接收最大可能的组件值。

gl:resumeTransformFeedback/0 恢复当前活动变换反馈对象上的变换反馈操作。当变换反馈操作暂停时,变换反馈仍然被认为是活动的,并且更改与对象相关的大多数变换反馈状态会导致错误。但是,可以在暂停变换反馈时绑定一个新的变换反馈对象。

gl:rotate() 产生一个围绕向量 (x y z) 旋转 Angle 度的旋转。当前矩阵(参见 gl:matrixMode/1)与一个旋转矩阵相乘,并将乘积替换当前矩阵,如同调用了 gl:multMatrix(),并使用以下矩阵作为其参数。

多重采样在多个与实现相关的子像素位置多次采样像素,以产生抗锯齿效果。如果启用了多重采样,它将透明地对点、线、多边形和图像进行抗锯齿处理。

gl:sampleMaski/2 设置多字采样掩码 ?GL_SAMPLE_MASK_VALUE 的一个 32 位子字。

gl:samplerParameter()Params 中的值或多个值赋给指定为 Pname 的采样器参数。Sampler 指定要修改的采样器对象,并且必须是先前调用 gl:genSamplers/1 返回的采样器对象的名称。以下符号在 Pname 中被接受

等效于 scalef/3

gl:scale() 产生沿 xyz 轴的不均匀缩放。这三个参数指示沿三个轴中的每一个轴所需的缩放因子。

gl:scissor/4 在窗口坐标中定义一个称为剪刀盒的矩形。前两个参数 XY 指定该框的左下角。WidthHeight 指定该框的宽度和高度。

gl:scissorArrayv/2 为每个视口在窗口坐标中定义称为剪刀盒的矩形。First 指定要修改的第一个剪刀盒的索引,Count 指定要修改的剪刀盒的数量。First 必须小于 ?GL_MAX_VIEWPORTS 的值,并且 First + Count 必须小于或等于 ?GL_MAX_VIEWPORTS 的值。V 指定一个整数数组的地址,该数组按顺序指定剪刀盒的左下角以及剪刀盒的宽度和高度。

gl:scissorIndexed/5 为指定的视口定义剪刀盒。Index 指定要修改的剪刀盒的索引。Index 必须小于 ?GL_MAX_VIEWPORTS 的值。对于 gl:scissorIndexed/5LeftBottomWidthHeight 分别指定剪刀盒的左侧、底部、宽度和高度(以像素为单位)。对于 gl:scissorIndexedv/2V 指定一个整数数组的地址,该数组按顺序指定剪刀盒的左下角以及剪刀盒的宽度和高度。

GL 存储一个主四值 RGBA 颜色和一个次四值 RGBA 颜色(其中 alpha 始终设置为 0.0),这两个颜色与每个顶点关联。

gl:secondaryColorPointer/4 指定在渲染时使用的颜色分量数组的位置和数据格式。Size 指定每个颜色的分量数,并且必须为 3。Type 指定每个颜色分量的数据类型,Stride 指定从一种颜色到下一种颜色的字节步幅,从而允许将顶点和属性打包到单个数组中或存储在单独的数组中。

gl:selectBuffer/2 有两个参数:Buffer 是指向无符号整数数组的指针,Size 指示数组的大小。Buffer 在渲染模式为 ?GL_SELECT 时(参见 gl:renderMode/1)从名称堆栈返回值(参见 gl:initNames/0gl:loadName/1gl:pushName/1)。必须在启用选择模式之前发出 gl:selectBuffer/2,并且在渲染模式为 ?GL_SELECT 时不得发出此命令。

gl:separableFilter2D/8 从两个像素数组构建一个二维可分离卷积滤波器内核。

GL 图元可以具有平面或平滑着色。平滑着色(默认值)会导致在栅格化图元时插值计算出的顶点颜色,通常为每个生成的像素片段分配不同的颜色。平面着色仅选择一个顶点的计算颜色并将其分配给通过栅格化单个图元生成的所有像素片段。在任一情况下,如果启用了光照,则顶点的计算颜色是光照的结果,或者如果禁用了光照,则它是指定顶点时的当前颜色。

gl:shaderBinary/3 将预编译的着色器二进制代码加载到 Shaders 中给出的 Count 着色器对象中。Binary 指向存储在客户端内存中的 Length 字节的二进制着色器代码。BinaryFormat 指定预编译代码的格式。

gl:shaderSource/2Shader 中的源代码设置为由 String 指定的字符串数组中的源代码。先前存储在着色器对象中的任何源代码都将被完全替换。数组中的字符串数由 Count 指定。如果 Length?NULL,则假定每个字符串都以 null 结尾。如果 Length?NULL 之外的值,则它指向一个数组,该数组包含 String 的每个对应元素的字符串长度。Length 数组中的每个元素可能包含相应字符串的长度(空字符不计为字符串长度的一部分),或者包含小于 0 的值以指示该字符串以 null 结尾。源代码字符串此时不进行扫描或解析;它们只是被复制到指定的着色器对象中。

gl:shaderStorageBlockBinding/3 更改程序对象 Program 中分配的索引为 StorageBlockIndex 的活动着色器存储块。StorageBlockIndex 必须是 Program 中的活动着色器存储块索引。StorageBlockBinding 必须小于 ?GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 的值。如果成功,gl:shaderStorageBlockBinding/3 将指定 Program 将使用绑定到绑定点 StorageBlockBinding 的缓冲区对象的数据存储来读取和写入由 StorageBlockIndex 标识的着色器存储块中的缓冲区变量的值。

与深度缓冲类似,模板测试启用和禁用每个像素的绘制。首先使用 GL 绘制图元绘制到模板平面中,然后使用模板平面渲染几何图形和图像以遮盖屏幕的某些部分。模板通常用于多通道渲染算法中,以实现特殊效果,例如贴花、轮廓和构造实体几何渲染。

与深度缓冲类似,模板测试启用和禁用每个像素的绘制。您可以使用 GL 绘制图元绘制到模板平面中,然后使用模板平面渲染几何图形和图像,以遮盖屏幕的某些部分。模板通常用于多通道渲染算法中,以实现特殊效果,例如贴花、轮廓和构造实体几何渲染。

gl:stencilMask/1 控制模板平面中各个位的写入。Mask 的最低有效 n 位(其中 n 是模板缓冲区中的位数)指定一个掩码。掩码中出现 1 的位置,可以写入模板缓冲区中的相应位。出现 0 的位置,相应的位将受到写保护。最初,所有位都启用了写入。

gl:stencilMaskSeparate/2 控制模板平面中各个位的写入。Mask的最低有效位 n 指定一个掩码,其中 n 是模板缓冲区中的位数。掩码中出现 1 的位置,可以写入模板缓冲区中对应的位。出现 0 的位置,则对应的位受到写保护。最初,所有位都启用写入。

与深度缓冲类似,模板测试启用和禁用每个像素的绘制。您可以使用 GL 绘制图元绘制到模板平面中,然后使用模板平面渲染几何图形和图像,以遮盖屏幕的某些部分。模板通常用于多通道渲染算法中,以实现特殊效果,例如贴花、轮廓和构造实体几何渲染。

与深度缓冲类似,模板测试启用和禁用每个像素的绘制。您可以使用 GL 绘制图元绘制到模板平面中,然后使用模板平面渲染几何图形和图像,以遮盖屏幕的某些部分。模板通常用于多通道渲染算法中,以实现特殊效果,例如贴花、轮廓和构造实体几何渲染。

gl:texCoord() 指定一维、二维、三维或四维的纹理坐标。 gl:texCoord1() 将当前纹理坐标设置为 (s 0 0 1);调用 gl:texCoord2() 将它们设置为 (s t 0 1)。类似地,gl:texCoord3() 将纹理坐标指定为 (s t r 1),而 gl:texCoord4() 明确定义所有四个分量为 (s t r q)。

gl:texCoordPointer/4 指定渲染时使用的纹理坐标数组的位置和数据格式。 Size 指定每个纹理坐标集中的坐标数量,必须为 1、2、3 或 4。 Type 指定每个纹理坐标的数据类型,而 Stride 指定从一个纹理坐标集到下一个纹理坐标集的字节跨度,允许将顶点和属性打包到单个数组中或存储在单独的数组中。(在某些实现中,单数组存储可能更有效;请参阅 gl:interleavedArrays/3。)

纹理环境指定在对片段进行纹理处理时如何解释纹理值。当 Target?GL_TEXTURE_FILTER_CONTROL 时,Pname 必须为 ?GL_TEXTURE_LOD_BIAS。当 Target?GL_TEXTURE_ENV 时,Pname 可以是 ?GL_TEXTURE_ENV_MODE?GL_TEXTURE_ENV_COLOR?GL_COMBINE_RGB?GL_COMBINE_ALPHA?GL_RGB_SCALE?GL_ALPHA_SCALE?GL_SRC0_RGB?GL_SRC1_RGB?GL_SRC2_RGB?GL_SRC0_ALPHA?GL_SRC1_ALPHA?GL_SRC2_ALPHA

gl:texGen() 选择纹理坐标生成函数或为一个函数提供系数。 Coord 命名一个纹理坐标(strq);它必须是符号 ?GL_S?GL_T?GL_R?GL_Q 之一。Pname 必须是三个符号常量之一:?GL_TEXTURE_GEN_MODE?GL_OBJECT_PLANE?GL_EYE_PLANE。如果 Pname?GL_TEXTURE_GEN_MODE,则 Params 选择一种模式,即 ?GL_OBJECT_LINEAR?GL_EYE_LINEAR?GL_SPHERE_MAP?GL_NORMAL_MAP?GL_REFLECTION_MAP 之一。如果 Pname?GL_OBJECT_PLANE?GL_EYE_PLANE,则 Params 包含相应纹理生成函数的系数。

纹理映射将指定纹理图像的一部分映射到启用了纹理的每个图形图元上。要启用和禁用一维纹理,请调用 gl:enable/1gl:disable/1,参数为 ?GL_TEXTURE_1D

gl:texImage2DMultisample/6 建立多重采样纹理图像的数据存储、格式、尺寸和样本数量。

纹理映射将指定纹理图像的一部分映射到启用了纹理的每个图形图元上。要启用和禁用三维纹理,请调用 gl:enable/1gl:disable/1,参数为 ?GL_TEXTURE_3D

gl:texImage3DMultisample/7 建立多重采样纹理图像的数据存储、格式、尺寸和样本数量。

gl:texParameter()gl:textureParameter()Params 中的值分配给指定为 Pname 的纹理参数。对于 gl:texParameter()Target 定义目标纹理,可以是 ?GL_TEXTURE_1D?GL_TEXTURE_1D_ARRAY?GL_TEXTURE_2D?GL_TEXTURE_2D_ARRAY?GL_TEXTURE_2D_MULTISAMPLE?GL_TEXTURE_2D_MULTISAMPLE_ARRAY?GL_TEXTURE_3D?GL_TEXTURE_CUBE_MAP?GL_TEXTURE_CUBE_MAP_ARRAY?GL_TEXTURE_RECTANGLEPname 中接受以下符号

gl:texStorage1D/4gl:textureStorage1D() 同时指定一维纹理所有级别的存储要求。一旦使用此命令指定纹理,除非它是代理纹理,否则所有级别的格式和尺寸都将变为不可变。但是,图像的内容仍然可以修改,但其存储要求可能不会更改。这种纹理被称为 immutable-format 纹理。

gl:texStorage2D/5gl:textureStorage2D() 同时指定二维纹理或一维纹理数组所有级别的存储要求。一旦使用此命令指定纹理,除非它是代理纹理,否则所有级别的格式和尺寸都将变为不可变。但是,图像的内容仍然可以修改,但其存储要求可能不会更改。这种纹理被称为 immutable-format 纹理。

gl:texStorage2DMultisample/6gl:textureStorage2DMultisample() 指定二维多重采样纹理的存储要求。一旦使用此命令指定纹理,除非它是代理纹理,否则其格式和尺寸将变为不可变。但是,图像的内容仍然可以修改,但其存储要求可能不会更改。这种纹理被称为 immutable-format 纹理。

gl:texStorage3D/6gl:textureStorage3D() 同时指定三维、二维数组或立方体贴图数组纹理所有级别的存储要求。一旦使用此命令指定纹理,除非它是代理纹理,否则所有级别的格式和尺寸都将变为不可变。但是,图像的内容仍然可以修改,但其存储要求可能不会更改。这种纹理被称为 immutable-format 纹理。

gl:texStorage3DMultisample/7gl:textureStorage3DMultisample() 指定二维多重采样数组纹理的存储要求。一旦使用此命令指定纹理,除非它是代理纹理,否则其格式和尺寸将变为不可变。但是,图像的内容仍然可以修改,但其存储要求可能不会更改。这种纹理被称为 immutable-format 纹理。

纹理映射将指定纹理图像的一部分映射到启用了纹理的每个图形图元上。要启用或禁用一维纹理,请调用 gl:enable/1gl:disable/1,参数为 ?GL_TEXTURE_1D

纹理映射将指定纹理图像的一部分映射到启用了纹理的每个图形图元上。

纹理映射将指定纹理图像的一部分映射到启用了纹理的每个图形图元上。

当着色器阶段获取纹素并且相同的纹素通过片段着色器输出写入时,渲染片段的值是未定义的,即使读取和写入不在同一个绘图命令中也是如此。要通过后续绘图命令中的纹素获取安全地读取已写入的纹素的结果,请在两个绘图命令之间调用 gl:textureBarrier/0,以保证在执行后续绘图命令之前已完成写入并且缓存已失效。

gl:texBuffer/3gl:textureBuffer/3 将指定的缓冲区对象的数据存储附加到指定的纹理对象,并指定缓冲区对象中找到的纹理图像的存储格式。纹理对象必须是缓冲区纹理。

gl:texBufferRange/5gl:textureBufferRange/5 将指定缓冲区对象的数据存储区的一个范围附加到指定的纹理对象,并指定缓冲区对象中纹理图像的存储格式。纹理对象必须是缓冲区纹理。

gl:textureView/8 将纹理对象初始化为另一个纹理对象的别名或视图,与初始化的纹理共享父纹理的部分或全部数据存储区。纹理 指定先前通过成功调用 gl:genTextures/1 保留但尚未绑定或给定目标的名称。目标 指定新初始化的纹理的目标,并且必须与父纹理的目标兼容,在 原始纹理 中给出,如下表所示

gl:transformFeedbackBufferBase/3 将缓冲区对象 缓冲区 绑定到变换反馈对象 Xfb 中索引为 索引 的绑定点。

gl:transformFeedbackBufferRange/5 将缓冲区对象 缓冲区 中由 偏移大小 表示的范围绑定到变换反馈对象 Xfb 中索引为 索引 的绑定点。

使用 gl:transformFeedbackVaryings/3 指定要在变换反馈模式中记录的顶点或几何着色器输出的名称。当几何着色器处于活动状态时,变换反馈会记录从发射的顶点中选择的几何着色器输出变量的值。否则,将记录所选顶点着色器输出的值。

gl:translate() 产生 (x y z) 的平移。当前矩阵(参见 gl:matrixMode/1)乘以这个平移矩阵,乘积替换当前矩阵,就像调用 gl:multMatrix() 时使用以下矩阵作为其参数一样

使用 gl:uniformBlockBinding/3 为活动的统一块分配绑定点。程序的每个活动统一块都有一个对应的统一缓冲区绑定点。程序 是程序对象的名称,该程序对象在过去已发出 gl:linkProgram/1 命令。

gl:uniform() 修改统一变量或统一变量数组的值。要修改的统一变量的位置由 位置 指定,它应该是 gl:getUniformLocation/2 返回的值。gl:uniform() 在通过调用 gl:useProgram/1 使其成为当前状态一部分的程序对象上运行。

gl:uniformSubroutines() 使用 索引 中的子程序索引加载当前程序着色器阶段 着色器类型 的所有活动子程序统一变量,将 索引[i] 存储到位置 I 的统一变量中。Count 必须等于当前正在使用着色器阶段 着色器类型 的程序 ?GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 的值。此外,索引 中的所有值都必须小于着色器阶段的 ?GL_ACTIVE_SUBROUTINES 的值。

gl:useProgram/1 将由 程序 指定的程序对象安装为当前渲染状态的一部分。通过使用 gl:attachShader/2 将着色器对象成功附加到程序对象、使用 gl:compileShader/1 成功编译着色器对象以及使用 gl:linkProgram/1 成功链接程序对象,可以在程序对象中创建一个或多个可执行文件。

gl:useProgramStages/3 将程序对象中与指定着色器阶段集关联的可执行文件绑定到由 管道 给出的程序管道对象。管道 指定要绑定可执行文件的程序管道对象。阶段 包含指示在 程序 中要与程序管道对象 管道 一起使用的着色器阶段的位逻辑组合。阶段 必须是 ?GL_VERTEX_SHADER_BIT?GL_TESS_CONTROL_SHADER_BIT?GL_TESS_EVALUATION_SHADER_BIT?GL_GEOMETRY_SHADER_BIT?GL_FRAGMENT_SHADER_BIT?GL_COMPUTE_SHADER_BIT 的逻辑组合。此外,可以指定特殊值 ?GL_ALL_SHADER_BITS,以指示应将 程序 中包含的所有可执行文件安装到 管道 中。

gl:validateProgram/1 检查 程序 中包含的可执行文件是否可以在当前 OpenGL 状态下执行。验证过程生成的信息将存储在 程序 的信息日志中。验证信息可能包含空字符串,也可能包含关于当前程序对象如何与当前 OpenGL 状态的其余部分交互的信息的字符串。这为 OpenGL 实现者提供了一种方法,可以传达有关当前程序效率低下、次优、无法执行等原因的更多信息。

gl:validateProgramPipeline/1 指示实现根据当前 GL 状态验证 管道 中包含的着色器可执行文件。实现可以使用它作为机会来执行任何内部着色器修改,这些修改可能是必需的,以确保在给定当前 GL 状态的情况下正确操作已安装的着色器。

等同于 vertex4sv/1

等同于 vertex4sv/1

等同于 vertex4sv/1

等同于 vertex4sv/1

等同于 vertex4sv/1

等同于 vertex4sv/1

等同于 vertex4sv/1

等同于 vertex4sv/1

等同于 vertex4sv/1

等同于 vertex4sv/1

等同于 vertex4sv/1

gl:vertex() 命令在 gl:'begin'/1/gl:'end'/0 对中使用,以指定点、线和多边形顶点。调用 gl:vertex() 时,当前颜色、法线、纹理坐标和雾坐标与顶点关联。

gl:vertexArrayElementBuffer/2 将 ID 为 缓冲区 的缓冲区对象绑定到 ID 为 Vaobj 的顶点数组对象的元素数组缓冲区绑定点。如果 缓冲区 为零,则会删除 Vaobj 的任何现有元素数组缓冲区绑定。

gl:bindVertexBuffer/4gl:vertexArrayVertexBuffer/5 将名为 缓冲区 的缓冲区绑定到顶点缓冲区绑定点,该绑定点的索引由 绑定索引 给出。gl:bindVertexBuffer/4 修改当前绑定的顶点数组对象的绑定,而 gl:vertexArrayVertexBuffer/5 允许调用者使用名为 Vaobj 的参数来指定顶点数组对象的 ID,应该修改该 ID 的绑定。偏移步幅 分别指定缓冲区中第一个元素的偏移量以及缓冲区中元素之间的距离,并且都以基本机器单位度量。绑定索引 必须小于 ?GL_MAX_VERTEX_ATTRIB_BINDINGS 的值。偏移步幅 必须大于或等于零。如果 缓冲区 为零,则取消绑定当前绑定到指定绑定点的任何缓冲区。

gl:bindVertexBuffers/4gl:vertexArrayVertexBuffers/5 将现有缓冲区对象的数组中的存储绑定到顶点数组对象中指定数量的连续顶点缓冲区绑定点单元。对于 gl:bindVertexBuffers/4,顶点数组对象是当前绑定的顶点数组对象。对于 gl:vertexArrayVertexBuffers/5Vaobj 是顶点数组对象的名称。

gl:vertexAttribBinding/2gl:vertexArrayAttribBinding/3 建立顶点数组对象的通用顶点属性之间的关联,其索引由 Attribindex 给定,以及顶点缓冲区绑定,其索引由 Bindingindex 给定。对于 gl:vertexAttribBinding/2,受影响的顶点数组对象是当前绑定的对象。对于 gl:vertexArrayAttribBinding/3Vaobj 是顶点数组对象的名称。

gl:vertexAttribDivisor/2 修改在单个绘制调用中渲染多个图元实例时,通用顶点属性前进的速率。如果 Divisor 为零,则槽 Index 处的属性每个顶点前进一次。如果 Divisor 为非零值,则该属性每渲染 Divisor 个顶点集实例前进一次。如果某个属性的 ?GL_VERTEX_ATTRIB_ARRAY_DIVISOR 值非零,则该属性称为实例化属性。

gl:vertexAttrib() 系列入口点允许应用程序在编号位置传递通用顶点属性。

gl:vertexAttribFormat/5gl:vertexAttribIFormat/4gl:vertexAttribLFormat/4,以及 gl:vertexArrayAttribFormat/6gl:vertexArrayAttribIFormat/5gl:vertexArrayAttribLFormat/5 指定顶点数组中数据的组织方式。前三个调用操作绑定顶点数组对象,而后三个调用修改 ID 为 Vaobj 的顶点数组对象的状态。Attribindex 指定正在描述其数据布局的通用顶点属性数组的索引,并且必须小于 ?GL_MAX_VERTEX_ATTRIBS 的值。

gl:vertexAttribPointer/6gl:vertexAttribIPointer/5gl:vertexAttribLPointer/5 指定在渲染时使用的索引 Index 处的通用顶点属性数组的位置和数据格式。Size 指定每个属性的组件数量,并且必须为 1、2、3、4 或 ?GL_BGRAType 指定每个组件的数据类型,并且 Stride 指定从一个属性到下一个属性的字节步幅,从而允许将顶点和属性打包到单个数组中或存储在单独的数组中。

gl:vertexBindingDivisor/2gl:vertexArrayBindingDivisor/3 修改在单个绘制命令中渲染多个图元实例时,通用顶点属性前进的速率。如果 Divisor 为零,则使用绑定到 Bindingindex 的缓冲区的属性每个顶点前进一次。如果 Divisor 为非零值,则该属性每渲染 Divisor 个顶点集实例前进一次。如果相应的 Divisor 值非零,则属性称为 instanced

gl:vertexPointer/4 指定在渲染时使用的顶点坐标数组的位置和数据格式。Size 指定每个顶点的坐标数,并且必须为 2、3 或 4。Type 指定每个坐标的数据类型,并且 Stride 指定从一个顶点到下一个顶点的字节步幅,从而允许将顶点和属性打包到单个数组中或存储在单独的数组中。(在某些实现上,单数组存储可能更有效;请参阅 gl:interleavedArrays/3。)

gl:viewport/4 指定从归一化设备坐标到窗口坐标的 x 和 y 的仿射变换。令 (x nd y nd) 为归一化设备坐标。然后,窗口坐标 (x w y w) 的计算方式如下

gl:viewportArrayv/2 同时指定多个视口的参数。First 指定要修改的第一个视口的索引,并且 Count 指定要修改的视口数量。First 必须小于 ?GL_MAX_VIEWPORTS 的值,并且 First + Count 必须小于或等于 ?GL_MAX_VIEWPORTS 的值。索引位于 [First, First + Count) 范围之外的视口不会被修改。V 包含浮点值数组的地址,该数组指定每个视口的左 (x)、底 (y)、宽度 (w) 和高度 (h),按该顺序排列。x 和 y 给出视口左下角的位置,并且 w 和 h 分别给出视口的宽度和高度。视口指定从归一化设备坐标到窗口坐标的 x 和 y 的仿射变换。令 (x nd y nd) 为归一化设备坐标。然后,窗口坐标 (x w y w) 的计算方式如下

gl:viewportIndexedf/5gl:viewportIndexedfv/2 指定单个视口的参数。Index 指定要修改的视口的索引。Index 必须小于 ?GL_MAX_VIEWPORTS 的值。对于 gl:viewportIndexedf/5XYWH 分别以像素为单位指定视口的左、底、宽度和高度。对于 gl:viewportIndexedfv/2V 包含一个浮点值数组的地址,该数组指定每个视口的左 (x)、底 (y)、宽度 (w) 和高度 (h),按该顺序排列。x 和 y 给出视口左下角的位置,并且 w 和 h 分别给出视口的宽度和高度。视口指定从归一化设备坐标到窗口坐标的 x 和 y 的仿射变换。令 (x nd y nd) 为归一化设备坐标。然后,窗口坐标 (x w y w) 的计算方式如下

gl:waitSync/3 使 GL 服务器阻塞并等待直到 Sync 变为已发出信号。Sync 是要等待的现有同步对象的名称。FlagsTimeout 当前未使用,必须分别设置为零和特殊值 ?GL_TIMEOUT_IGNORED

GL 在窗口坐标中维护一个 3D 位置。此位置称为光栅位置,用于定位像素和位图写入操作。它以亚像素精度维护。请参阅 gl:bitmap/7gl:drawPixels/5gl:copyPixels/5

类型

-type clamp() :: float().
-type enum() :: non_neg_integer().
-type f() :: float().
-type i() :: integer().
-type m12() :: {f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}.
-type m16() :: {f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}.
此类型的链接

matrix()

查看源代码 (未导出)
-type matrix() :: m12() | m16().
-type mem() :: binary() | tuple().
此类型的链接

offset()

查看源代码 (未导出)
-type offset() :: non_neg_integer().

函数

-spec accum(Op :: enum(), Value :: f()) -> ok.

累积缓冲区是一个扩展范围的颜色缓冲区。图像不会渲染到其中。相反,渲染到其中一个颜色缓冲区的图像会在渲染后添加到累积缓冲区的内容中。通过累积使用不同变换矩阵生成的图像,可以创建诸如抗锯齿(点、线和多边形)、运动模糊和景深等效果。

外部文档。

链接到此函数

activeShaderProgram(Pipeline, Program)

查看源代码
-spec activeShaderProgram(Pipeline :: i(), Program :: i()) -> ok.

gl:activeShaderProgram/2 将由 Program 命名的链接程序设置为程序管线对象 Pipeline 的活动程序。活动程序管线对象中的活动程序是调用 gl:uniform() 的目标,当没有通过调用 gl:useProgram/1 使任何程序成为当前程序时。

外部文档。

链接到此函数

activeTexture(Texture)

查看源代码
-spec activeTexture(Texture :: enum()) -> ok.

gl:activeTexture/1 选择后续纹理状态调用将影响哪个纹理单元。实现支持的纹理单元数量取决于实现,但必须至少为 80 个。

外部文档。

-spec alphaFunc(Func :: enum(), Ref :: clamp()) -> ok.

alpha 测试根据传入片段的 alpha 值与常量参考值之间的比较结果丢弃片段。gl:alphaFunc/2 指定参考值和比较函数。仅当启用 alpha 测试时才执行比较。默认情况下,它未启用。(请参阅 gl:enable/1gl:disable/1 of ?GL_ALPHA_TEST。)

外部文档。

链接到此函数

areTexturesResident(Textures)

查看源代码
-spec areTexturesResident(Textures :: [i()]) -> {0 | 1, Residences :: [0 | 1]}.

GL 建立了一个“工作集”的纹理,这些纹理驻留在纹理内存中。这些纹理可以比未驻留的纹理更有效地绑定到纹理目标。

外部文档。

-spec arrayElement(I :: i()) -> ok.

gl:arrayElement/1 命令在 gl:'begin'/1/gl:'end'/0 对中使用,以指定点、线和多边形图元的顶点和属性数据。如果在调用 gl:arrayElement/1 时启用了 ?GL_VERTEX_ARRAY,则会绘制一个顶点,使用从启用的数组的位置 I 中获取的顶点和属性数据。如果未启用 ?GL_VERTEX_ARRAY,则不会发生绘制,但会修改与启用的数组对应的属性。

外部文档。

链接到此函数

attachShader(Program, Shader)

查看源代码
-spec attachShader(Program :: i(), Shader :: i()) -> ok.

为了创建完整的着色器程序,必须有一种方法来指定将链接在一起的事物列表。程序对象提供了这种机制。要链接到程序对象中的着色器必须首先附加到该程序对象。gl:attachShader/2Shader 指定的着色器对象附加到 Program 指定的程序对象。这表明 Shader 将包含在将对 Program 执行的链接操作中。

外部文档。

-spec 'begin'(Mode :: enum()) -> ok.

等效于 '\'end\''/0

链接到此函数

beginConditionalRender(Id, Mode)

查看源代码
-spec beginConditionalRender(Id :: i(), Mode :: enum()) -> ok.

等效于 endConditionalRender/0

链接到此函数

beginQuery(Target, Id)

查看源代码
-spec beginQuery(Target :: enum(), Id :: i()) -> ok.

等效于 endQuery/1

链接到此函数

beginQueryIndexed(Target, Index, Id)

查看源代码
-spec beginQueryIndexed(Target :: enum(), Index :: i(), Id :: i()) -> ok.

等效于 endQueryIndexed/2

链接到此函数

beginTransformFeedback(PrimitiveMode)

查看源代码
-spec beginTransformFeedback(PrimitiveMode :: enum()) -> ok.

等效于 endTransformFeedback/0

链接到此函数

bindAttribLocation(Program, Index, Name)

查看源代码
-spec bindAttribLocation(Program :: i(), Index :: i(), Name :: string()) -> ok.

gl:bindAttribLocation/3 用于将 Program 指定的程序对象中的用户定义属性变量与通用顶点属性索引关联。用户定义属性变量的名称作为以空字符结尾的字符串在 Name 中传递。要绑定到此变量的通用顶点属性索引由 Index 指定。当 Program 成为当前状态的一部分时,通过通用顶点属性 Index 提供的值将修改 Name 指定的用户定义属性变量的值。

外部文档。

链接到此函数

bindBuffer(Target, Buffer)

查看源代码
-spec bindBuffer(Target :: enum(), Buffer :: i()) -> ok.

gl:bindBuffer/2 将缓冲区对象绑定到指定的缓冲区绑定点。调用 gl:bindBuffer/2,其中 Target 设置为接受的符号常量之一,Buffer 设置为缓冲区对象的名称,将该缓冲区对象名称绑定到目标。如果不存在名称为 Buffer 的缓冲区对象,则会创建一个具有该名称的对象。当缓冲区对象绑定到目标时,该目标的先前绑定会自动中断。

外部文档。

链接到此函数

bindBufferBase(Target, Index, Buffer)

查看源代码
-spec bindBufferBase(Target :: enum(), Index :: i(), Buffer :: i()) -> ok.

gl:bindBufferBase/3 将缓冲区对象 Buffer 绑定到由 Target 指定的目标数组的索引 Index 处的绑定点。每个 Target 表示缓冲区绑定点的索引数组,以及可由其他缓冲区操作函数(如 gl:bindBuffer/2glMapBuffer)使用的单个通用绑定点。除了将 Buffer 绑定到索引缓冲区绑定目标之外,gl:bindBufferBase/3 还将 Buffer 绑定到 Target 指定的通用缓冲区绑定点。

外部文档。

链接到此函数

bindBufferRange(Target, Index, Buffer, Offset, Size)

查看源代码
-spec bindBufferRange(Target :: enum(), Index :: i(), Buffer :: i(), Offset :: i(), Size :: i()) -> ok.

gl:bindBufferRange/5 将由 OffsetSize 表示的缓冲区对象 Buffer 的范围绑定到由 Target 指定的目标数组的索引 Index 处的绑定点。每个 Target 表示缓冲区绑定点的索引数组,以及可由其他缓冲区操作函数(如 gl:bindBuffer/2glMapBuffer)使用的单个通用绑定点。除了将 Buffer 的范围绑定到索引缓冲区绑定目标之外,gl:bindBufferRange/5 还将该范围绑定到 Target 指定的通用缓冲区绑定点。

外部文档。

链接到此函数

bindBuffersBase(Target, First, Buffers)

查看源代码
-spec bindBuffersBase(Target :: enum(), First :: i(), Buffers :: [i()]) -> ok.

gl:bindBuffersBase/3 将一组 Count 缓冲区对象(其名称在数组 Buffers 中给出)绑定到从由 Target 指定的目标数组的索引 First 开始的 Count 个连续绑定点。如果 Buffers?NULL,则 gl:bindBuffersBase/3 会取消绑定当前绑定到引用绑定点的任何缓冲区。假设没有生成错误,它等效于以下伪代码,该伪代码调用 gl:bindBufferBase/3,但 gl:bindBuffersBase/3 不会更改非索引 Target

外部文档。

链接到此函数

bindBuffersRange(Target, First, Buffers, Offsets, Sizes)

查看源代码
-spec bindBuffersRange(Target :: enum(),
                       First :: i(),
                       Buffers :: [i()],
                       Offsets :: [i()],
                       Sizes :: [i()]) ->
                          ok.

gl:bindBuffersRange/5 将一组 Count 范围从缓冲区对象(其名称在数组 Buffers 中给出)绑定到从由 Target 指定的目标数组的索引 First 开始的 Count 个连续绑定点。Offsets 指定包含缓冲区中 Count 个起始偏移量的数组的地址,而 Sizes 指定 Count 个范围大小的数组的地址。如果 Buffers?NULL,则会忽略 OffsetsSizes,并且 gl:bindBuffersRange/5 会取消绑定当前绑定到引用绑定点的任何缓冲区。假设没有生成错误,它等效于以下伪代码,该伪代码调用 gl:bindBufferRange/5,但 gl:bindBuffersRange/5 不会更改非索引 Target

外部文档。

链接到此函数

bindFragDataLocation(Program, Color, Name)

查看源代码
-spec bindFragDataLocation(Program :: i(), Color :: i(), Name :: string()) -> ok.

gl:bindFragDataLocation/3 显式指定程序 Program 的用户定义可变输出变量 Name 到片段着色器颜色编号 ColorNumber 的绑定。如果之前绑定了 Name,则其指定的绑定将替换为 ColorNumberName 必须是以空字符结尾的字符串。ColorNumber 必须小于 ?GL_MAX_DRAW_BUFFERS

外部文档。

链接到此函数

bindFragDataLocationIndexed(Program, ColorNumber, Index, Name)

查看源代码
-spec bindFragDataLocationIndexed(Program :: i(), ColorNumber :: i(), Index :: i(), Name :: string()) ->
                                     ok.

gl:bindFragDataLocationIndexed/4 指定当下次链接程序时,Program 中的可变输出变量 Name 应绑定到片段颜色 ColorNumberIndex 可以是零或一,以指定颜色分别用作混合方程式的第一个或第二个颜色输入。

外部文档。

链接到此函数

bindFramebuffer(Target, Framebuffer)

查看源代码
-spec bindFramebuffer(Target :: enum(), Framebuffer :: i()) -> ok.

gl:bindFramebuffer/2 将名为 Framebuffer 的帧缓冲对象绑定到 Target 指定的帧缓冲目标。Target 必须是 ?GL_DRAW_FRAMEBUFFER?GL_READ_FRAMEBUFFER?GL_FRAMEBUFFER。如果帧缓冲对象绑定到 ?GL_DRAW_FRAMEBUFFER?GL_READ_FRAMEBUFFER,它将分别成为渲染或回读操作的目标,直到它被删除或另一个帧缓冲绑定到相应的绑定点。使用设置为 ?GL_FRAMEBUFFERTarget 调用 gl:bindFramebuffer/2 会将 Framebuffer 绑定到读取和绘制帧缓冲目标。Framebuffer 是先前调用 gl:genFramebuffers/1 返回的帧缓冲对象的名称,或者为零以断开帧缓冲对象与 Target 的现有绑定。

外部文档。

链接到此函数

bindImageTexture(Unit, Texture, Level, Layered, Layer, Access, Format)

查看源代码
-spec bindImageTexture(Unit, Texture, Level, Layered, Layer, Access, Format) -> ok
                          when
                              Unit :: i(),
                              Texture :: i(),
                              Level :: i(),
                              Layered :: 0 | 1,
                              Layer :: i(),
                              Access :: enum(),
                              Format :: enum().

gl:bindImageTexture/7 将纹理的单个层级绑定到图像单元,以便从着色器中读取和写入它。Unit 指定要将纹理层级绑定到的图像单元的从零开始的索引。Texture 指定要绑定到图像单元的现有纹理对象的名称。如果 Texture 为零,则断开与图像单元的任何现有绑定。Level 指定要绑定到图像单元的纹理的层级。

外部文档。

链接到此函数

bindImageTextures(First, Textures)

查看源代码
-spec bindImageTextures(First :: i(), Textures :: [i()]) -> ok.

gl:bindImageTextures/2 将来自现有纹理对象数组的图像绑定到指定数量的连续图像单元。Count 指定存储在数组 Textures 中的纹理对象名称的数量。从数组中读取该数量的纹理名称,并将其绑定到从 First 开始的 Count 个连续纹理单元。如果名称零出现在 Textures 数组中,则重置与图像单元的任何现有绑定。 Textures 中的任何非零条目都必须是现有纹理对象的名称。当 Textures 中存在非零条目时,会绑定零级的图像,绑定被认为是分层的,第一层设置为零,并且图像绑定用于读写访问。图像单元格式参数取自纹理对象零级图像的内部格式。对于立方体贴图纹理,使用零级正 X 图像的内部格式。如果 Textures?NULL,则相当于指定了一个仅包含零的适当大小的数组。

外部文档。

链接到此函数

bindProgramPipeline(Pipeline)

查看源代码
-spec bindProgramPipeline(Pipeline :: i()) -> ok.

gl:bindProgramPipeline/1 将程序管道对象绑定到当前上下文。Pipeline 必须是先前调用 gl:genProgramPipelines/1 返回的名称。如果不存在名为 Pipeline 的程序管道,则会创建一个具有该名称并初始化为默认状态向量的新管道对象。

外部文档。

链接到此函数

bindRenderbuffer(Target, Renderbuffer)

查看源代码
-spec bindRenderbuffer(Target :: enum(), Renderbuffer :: i()) -> ok.

gl:bindRenderbuffer/2 将名为 Renderbuffer 的渲染缓冲对象绑定到 Target 指定的渲染缓冲目标。Target 必须是 ?GL_RENDERBUFFERRenderbuffer 是先前调用 gl:genRenderbuffers/1 返回的渲染缓冲对象的名称,或者为零以断开渲染缓冲对象与 Target 的现有绑定。

外部文档。

链接到此函数

bindSampler(Unit, Sampler)

查看源代码
-spec bindSampler(Unit :: i(), Sampler :: i()) -> ok.

gl:bindSampler/2Sampler 绑定到索引为 Unit 的纹理单元。Sampler 必须为零,或者先前调用 gl:genSamplers/1 返回的采样器对象的名称。Unit 必须小于 ?GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 的值。

外部文档。

链接到此函数

bindSamplers(First, Samplers)

查看源代码
-spec bindSamplers(First :: i(), Samplers :: [i()]) -> ok.

gl:bindSamplers/2 将来自现有采样器对象数组的采样器绑定到指定数量的连续采样器单元。Count 指定存储在数组 Samplers 中的采样器对象名称的数量。从数组中读取该数量的采样器名称,并将其绑定到从 First 开始的 Count 个连续采样器单元。

外部文档。

链接到此函数

bindTexture(Target, Texture)

查看源代码
-spec bindTexture(Target :: enum(), Texture :: i()) -> ok.

gl:bindTexture/2 允许您创建或使用命名纹理。使用设置为 ?GL_TEXTURE_1D?GL_TEXTURE_2D?GL_TEXTURE_3D?GL_TEXTURE_1D_ARRAY?GL_TEXTURE_2D_ARRAY?GL_TEXTURE_RECTANGLE?GL_TEXTURE_CUBE_MAP?GL_TEXTURE_CUBE_MAP_ARRAY?GL_TEXTURE_BUFFER?GL_TEXTURE_2D_MULTISAMPLE?GL_TEXTURE_2D_MULTISAMPLE_ARRAYTarget 以及设置为新纹理名称的 Texture 调用 gl:bindTexture/2 会将纹理名称绑定到目标。当纹理绑定到目标时,该目标之前的绑定会自动断开。

外部文档。

链接到此函数

bindTextures(First, Textures)

查看源代码
-spec bindTextures(First :: i(), Textures :: [i()]) -> ok.

gl:bindTextures/2 将现有纹理对象数组绑定到指定数量的连续纹理单元。Count 指定存储在数组 Textures 中的纹理对象名称的数量。从数组中读取该数量的纹理名称,并将其绑定到从 First 开始的 Count 个连续纹理单元。纹理的目标或类型是从纹理对象推断出来的,每个纹理都绑定到纹理单元的相应目标。如果名称零出现在 Textures 数组中,则重置纹理单元任何目标的任何现有绑定,并且将该目标的默认纹理绑定到位。 Textures 中的任何非零条目都必须是现有纹理对象的名称。如果 Textures?NULL,则相当于指定了一个仅包含零的适当大小的数组。

外部文档。

链接到此函数

bindTextureUnit(Unit, Texture)

查看源代码
-spec bindTextureUnit(Unit :: i(), Texture :: i()) -> ok.

gl:bindTextureUnit/2 将现有纹理对象绑定到编号为 Unit 的纹理单元。

外部文档。

链接到此函数

bindTransformFeedback(Target, Id)

查看源代码
-spec bindTransformFeedback(Target :: enum(), Id :: i()) -> ok.

gl:bindTransformFeedback/2 将名为 Id 的变换反馈对象绑定到当前 GL 状态。Id 必须是先前调用 gl:genTransformFeedbacks/1 返回的名称。如果 Id 之前未绑定过,则会创建一个具有名称 Id 并使用默认变换状态向量初始化的新变换反馈对象。

外部文档。

链接到此函数

bindVertexArray(Array)

查看源代码
-spec bindVertexArray(Array :: i()) -> ok.

gl:bindVertexArray/1 绑定名为 Array 的顶点数组对象。Array 是先前调用 gl:genVertexArrays/1 返回的顶点数组对象的名称,或者为零以断开现有的顶点数组对象绑定。

外部文档。

链接到此函数

bindVertexBuffer(Bindingindex, Buffer, Offset, Stride)

查看源代码
-spec bindVertexBuffer(Bindingindex :: i(), Buffer :: i(), Offset :: i(), Stride :: i()) -> ok.

等效于 vertexArrayVertexBuffer/5

链接到此函数

bindVertexBuffers(First, Buffers, Offsets, Strides)

查看源代码
-spec bindVertexBuffers(First :: i(), Buffers :: [i()], Offsets :: [i()], Strides :: [i()]) -> ok.

等效于 vertexArrayVertexBuffers/5

链接到此函数

bitmap(Width, Height, Xorig, Yorig, Xmove, Ymove, Bitmap)

查看源代码
-spec bitmap(Width, Height, Xorig, Yorig, Xmove, Ymove, Bitmap) -> ok
                when
                    Width :: i(),
                    Height :: i(),
                    Xorig :: f(),
                    Yorig :: f(),
                    Xmove :: f(),
                    Ymove :: f(),
                    Bitmap :: offset() | mem().

位图是二进制图像。绘制时,位图相对于当前光栅位置定位,并且使用当前光栅颜色或索引写入与位图中的 1 对应的帧缓冲区像素。不修改与位图中 0 对应的帧缓冲区像素。

外部文档。

链接到此函数

blendColor(Red, Green, Blue, Alpha)

查看源代码
-spec blendColor(Red :: clamp(), Green :: clamp(), Blue :: clamp(), Alpha :: clamp()) -> ok.

?GL_BLEND_COLOR 可用于计算源和目标混合因子。颜色分量在存储之前被限制在 [0 1] 范围内。有关混合操作的完整描述,请参阅 gl:blendFunc/2。初始时,?GL_BLEND_COLOR 设置为 (0, 0, 0, 0)。

外部文档。

-spec blendEquation(Mode :: enum()) -> ok.

等效于 blendEquationi/2

链接到此函数

blendEquationi(Buf, Mode)

查看源代码
-spec blendEquationi(Buf :: i(), Mode :: enum()) -> ok.

混合方程确定如何将新像素(“源”颜色)与帧缓冲区中已有的像素(“目标”颜色)组合。此函数将 RGB 混合方程和 alpha 混合方程都设置为单个方程。gl:blendEquationi/2 指定单个绘制缓冲区的混合方程,而 gl:blendEquation/1 设置所有绘制缓冲区的混合方程。

外部文档。

链接到此函数

blendEquationSeparate(ModeRGB, ModeAlpha)

查看源代码
-spec blendEquationSeparate(ModeRGB :: enum(), ModeAlpha :: enum()) -> ok.

等效于 blendEquationSeparatei/3

链接到此函数

blendEquationSeparatei(Buf, ModeRGB, ModeAlpha)

查看源代码
-spec blendEquationSeparatei(Buf :: i(), ModeRGB :: enum(), ModeAlpha :: enum()) -> ok.

混合方程确定如何将新像素(“源”颜色)与帧缓冲区中已有的像素(“目标”颜色)组合。这些函数为 RGB 颜色分量指定一个混合方程,为 alpha 分量指定一个混合方程。gl:blendEquationSeparatei/3 指定单个绘制缓冲区的混合方程,而 gl:blendEquationSeparate/2 设置所有绘制缓冲区的混合方程。

外部文档。

链接到此函数

blendFunc(Sfactor, Dfactor)

查看源代码
-spec blendFunc(Sfactor :: enum(), Dfactor :: enum()) -> ok.

等效于 blendFunci/3

链接到此函数

blendFunci(Buf, Src, Dst)

查看源代码
-spec blendFunci(Buf :: i(), Src :: enum(), Dst :: enum()) -> ok.

可以使用将传入(源)RGBA 值与帧缓冲区中已有的 RGBA 值(目标值)混合的函数来绘制像素。混合最初是禁用的。使用参数为 ?GL_BLENDgl:enable/1gl:disable/1 来启用和禁用混合。

外部文档。

链接到此函数

blendFuncSeparate(SfactorRGB, DfactorRGB, SfactorAlpha, DfactorAlpha)

查看源代码
-spec blendFuncSeparate(SfactorRGB, DfactorRGB, SfactorAlpha, DfactorAlpha) -> ok
                           when
                               SfactorRGB :: enum(),
                               DfactorRGB :: enum(),
                               SfactorAlpha :: enum(),
                               DfactorAlpha :: enum().

等效于 blendFuncSeparatei/5

链接到此函数

blendFuncSeparatei(Buf, SrcRGB, DstRGB, SrcAlpha, DstAlpha)

查看源代码
-spec blendFuncSeparatei(Buf :: i(),
                         SrcRGB :: enum(),
                         DstRGB :: enum(),
                         SrcAlpha :: enum(),
                         DstAlpha :: enum()) ->
                            ok.

可以使用将传入(源)RGBA 值与帧缓冲区中已有的 RGBA 值(目标值)混合的函数来绘制像素。混合最初是禁用的。使用参数为 ?GL_BLENDgl:enable/1gl:disable/1 来启用和禁用混合。

外部文档。

链接到此函数

blitFramebuffer(SrcX0, SrcY0, SrcX1, SrcY1, DstX0, DstY0, DstX1, DstY1, Mask, Filter)

查看源代码
-spec blitFramebuffer(SrcX0, SrcY0, SrcX1, SrcY1, DstX0, DstY0, DstX1, DstY1, Mask, Filter) -> ok
                         when
                             SrcX0 :: i(),
                             SrcY0 :: i(),
                             SrcX1 :: i(),
                             SrcY1 :: i(),
                             DstX0 :: i(),
                             DstY0 :: i(),
                             DstX1 :: i(),
                             DstY1 :: i(),
                             Mask :: i(),
                             Filter :: enum().

gl:blitFramebuffer/10glBlitNamedFramebuffer 将像素值的矩形区域从读取帧缓冲区的某个区域传输到绘制帧缓冲区的另一个区域。

外部文档。

链接到此函数

bufferData(Target, Size, Data, Usage)

查看源代码
-spec bufferData(Target :: enum(), Size :: i(), Data :: offset() | mem(), Usage :: enum()) -> ok.

gl:bufferData/4glNamedBufferData 为缓冲区对象创建一个新的数据存储。 对于 gl:bufferData/4,将使用当前绑定到 Target 的缓冲区对象。对于 glNamedBufferData,将使用调用方在 Buffer 中指定的 ID 关联的缓冲区对象。

外部文档。

链接到此函数

bufferStorage(Target, Size, Data, Flags)

查看源代码
-spec bufferStorage(Target :: enum(), Size :: i(), Data :: offset() | mem(), Flags :: i()) -> ok.

gl:bufferStorage/4glNamedBufferStorage 创建一个新的不可变数据存储。 对于 gl:bufferStorage/4,将初始化当前绑定到 Target 的缓冲区对象。 对于 glNamedBufferStorageBuffer 是将被配置的缓冲区对象的名称。 数据存储的大小由 Size 指定。 如果有初始数据可用,则可以在 Data 中提供其地址。 否则,要创建未初始化的数据存储,Data 应为 ?NULL

外部文档。

链接到此函数

bufferSubData(Target, Offset, Size, Data)

查看源代码
-spec bufferSubData(Target :: enum(), Offset :: i(), Size :: i(), Data :: offset() | mem()) -> ok.

gl:bufferSubData/4glNamedBufferSubData 重新定义指定缓冲区对象的部分或全部数据存储。从 Data 指向的内存中,将起始于字节偏移量 Offset 并延伸 Size 字节的数据复制到数据存储中。OffsetSize 必须定义一个完全位于缓冲区对象数据存储内的范围。

外部文档。

-spec callList(List :: i()) -> ok.

gl:callList/1 导致执行指定名称的显示列表。 显示列表中保存的命令将按顺序执行,就像它们在没有使用显示列表的情况下被调用一样。 如果 List 没有被定义为显示列表,则 gl:callList/1 将被忽略。

外部文档。

-spec callLists(Lists :: [i()]) -> ok.

gl:callLists/1 导致执行作为 Lists 传递的名称列表中每个显示列表。 因此,每个显示列表中保存的命令将按顺序执行,就像它们在没有使用显示列表的情况下被调用一样。 未定义的显示列表的名称将被忽略。

外部文档。

链接到此函数

checkFramebufferStatus(Target)

查看源代码
-spec checkFramebufferStatus(Target :: enum()) -> enum().

gl:checkFramebufferStatus/1glCheckNamedFramebufferStatus 返回帧缓冲区对象作为读取或绘制帧缓冲区时的完整性状态,具体取决于 Target 的值。

外部文档。

链接到此函数

clampColor(Target, Clamp)

查看源代码
-spec clampColor(Target :: enum(), Clamp :: enum()) -> ok.

gl:clampColor/2 控制在 gl:readPixels/7 期间执行的颜色钳制。Target 必须是 ?GL_CLAMP_READ_COLOR。如果 Clamp?GL_TRUE,则启用读取颜色钳制; 如果 Clamp?GL_FALSE,则禁用读取颜色钳制。如果 Clamp?GL_FIXED_ONLY,则仅当选定的读取缓冲区具有定点分量时才启用读取颜色钳制,否则禁用。

外部文档。

-spec clear(Mask :: i()) -> ok.

gl:clear/1 将窗口的位平面区域设置为先前由 gl:clearColor/4gl:clearDepth/1gl:clearStencil/1 选择的值。 通过使用 gl:drawBuffer/1 一次选择多个缓冲区,可以同时清除多个颜色缓冲区。

外部文档。

链接到此函数

clearAccum(Red, Green, Blue, Alpha)

查看源代码
-spec clearAccum(Red :: f(), Green :: f(), Blue :: f(), Alpha :: f()) -> ok.

gl:clearAccum/4 指定 gl:clear/1 用于清除累积缓冲区的红色、绿色、蓝色和 alpha 值。

外部文档。

链接到此函数

clearBufferData(Target, Internalformat, Format, Type, Data)

查看源代码
-spec clearBufferData(Target, Internalformat, Format, Type, Data) -> ok
                         when
                             Target :: enum(),
                             Internalformat :: enum(),
                             Format :: enum(),
                             Type :: enum(),
                             Data :: offset() | mem().

等效于 clearBufferuiv/3

链接到此函数

clearBufferfi(Buffer, Drawbuffer, Depth, Stencil)

查看源代码
-spec clearBufferfi(Buffer :: enum(), Drawbuffer :: i(), Depth :: f(), Stencil :: i()) -> ok.

等效于 clearBufferuiv/3

链接到此函数

clearBufferfv(Buffer, Drawbuffer, Value)

查看源代码
-spec clearBufferfv(Buffer :: enum(), Drawbuffer :: i(), Value :: tuple()) -> ok.

等效于 clearBufferuiv/3

链接到此函数

clearBufferiv(Buffer, Drawbuffer, Value)

查看源代码
-spec clearBufferiv(Buffer :: enum(), Drawbuffer :: i(), Value :: tuple()) -> ok.

等效于 clearBufferuiv/3

链接到此函数

clearBufferSubData(Target, Internalformat, Offset, Size, Format, Type, Data)

查看源代码
-spec clearBufferSubData(Target, Internalformat, Offset, Size, Format, Type, Data) -> ok
                            when
                                Target :: enum(),
                                Internalformat :: enum(),
                                Offset :: i(),
                                Size :: i(),
                                Format :: enum(),
                                Type :: enum(),
                                Data :: offset() | mem().

等效于 clearBufferuiv/3

链接到此函数

clearBufferuiv(Buffer, Drawbuffer, Value)

查看源代码
-spec clearBufferuiv(Buffer :: enum(), Drawbuffer :: i(), Value :: tuple()) -> ok.

这些命令将帧缓冲区的指定缓冲区清除为指定的值。 对于 gl:clearBuffer*(),帧缓冲区是当前绑定的绘制帧缓冲区对象。 对于 glClearNamedFramebuffer*Framebuffer 为零,表示默认的绘制帧缓冲区,或者是帧缓冲区对象的名称。

外部文档。

链接到此函数

clearColor(Red, Green, Blue, Alpha)

查看源代码
-spec clearColor(Red :: clamp(), Green :: clamp(), Blue :: clamp(), Alpha :: clamp()) -> ok.

gl:clearColor/4 指定 gl:clear/1 用于清除颜色缓冲区的红色、绿色、蓝色和 alpha 值。 由 gl:clearColor/4 指定的值将被钳制到范围 [0 1]。

外部文档。

-spec clearDepth(Depth :: clamp()) -> ok.

等效于 clearDepthf/1

-spec clearDepthf(D :: f()) -> ok.

gl:clearDepth/1 指定 gl:clear/1 用于清除深度缓冲区的深度值。 由 gl:clearDepth/1 指定的值将被钳制到范围 [0 1]。

外部文档。

-spec clearIndex(C :: f()) -> ok.

gl:clearIndex/1 指定 gl:clear/1 用于清除颜色索引缓冲区的索引。 C 不会被钳制。相反,C 被转换为一个具有未指定精度的定点值,精度位于二进制点的右侧。然后,这个值的整数部分将与 2 m-1 进行掩码,其中 m 是帧缓冲区中存储的颜色索引的位数。

外部文档。

-spec clearStencil(S :: i()) -> ok.

gl:clearStencil/1 指定 gl:clear/1 用于清除模板缓冲区的索引。 S 将与 2 m-1 进行掩码,其中 m 是模板缓冲区的位数。

外部文档。

链接到此函数

clearTexImage(Texture, Level, Format, Type, Data)

查看源代码
-spec clearTexImage(Texture :: i(),
                    Level :: i(),
                    Format :: enum(),
                    Type :: enum(),
                    Data :: offset() | mem()) ->
                       ok.

gl:clearTexImage/5 使用应用程序提供的值填充纹理中包含的所有图像。 Texture 必须是现有纹理的名称。 此外,Texture 不能是缓冲区纹理的名称,也不能是其内部格式被压缩的纹理。

外部文档。

链接到此函数

clearTexSubImage(Texture, Level, Xoffset, Yoffset, Zoffset, Width, Height, Depth, Format, Type, Data)

查看源代码
-spec clearTexSubImage(Texture, Level, Xoffset, Yoffset, Zoffset, Width, Height, Depth, Format, Type,
                       Data) ->
                          ok
                          when
                              Texture :: i(),
                              Level :: i(),
                              Xoffset :: i(),
                              Yoffset :: i(),
                              Zoffset :: i(),
                              Width :: i(),
                              Height :: i(),
                              Depth :: i(),
                              Format :: enum(),
                              Type :: enum(),
                              Data :: offset() | mem().

gl:clearTexSubImage/11 使用应用程序提供的值填充纹理中包含的图像的全部或部分。 Texture 必须是现有纹理的名称。 此外,Texture 不能是缓冲区纹理的名称,也不能是其内部格式被压缩的纹理。

外部文档。

链接到此函数

clientActiveTexture(Texture)

查看源代码
-spec clientActiveTexture(Texture :: enum()) -> ok.

gl:clientActiveTexture/1 选择要由 gl:texCoordPointer/4 修改的顶点数组客户端状态参数,并在使用 ?GL_TEXTURE_COORD_ARRAY 参数调用时,分别使用 gl:enableClientState/1gl:disableClientState/1 启用或禁用这些参数。

外部文档。

链接到此函数

clientWaitSync(Sync, Flags, Timeout)

查看源代码
-spec clientWaitSync(Sync :: i(), Flags :: i(), Timeout :: i()) -> enum().

gl:clientWaitSync/3 导致客户端阻塞并等待由 Sync 指定的同步对象变为已发出信号。 如果在调用 gl:clientWaitSync/3Sync 已发出信号,则 gl:clientWaitSync/3 立即返回,否则它将阻塞并等待最多 Timeout 纳秒,直到 Sync 变为已发出信号。

外部文档。

链接到此函数

clipControl(Origin, Depth)

查看源代码
-spec clipControl(Origin :: enum(), Depth :: enum()) -> ok.

gl:clipControl/2 控制裁剪体行为和裁剪坐标到窗口坐标的转换行为。

外部文档。

链接到此函数

clipPlane(Plane, Equation)

查看源代码
-spec clipPlane(Plane :: enum(), Equation :: {f(), f(), f(), f()}) -> ok.

几何图形始终根据 xyz 中的六个平面视锥的边界进行裁剪。 gl:clipPlane/2 允许指定额外的平面,这些平面不一定垂直于 xyz 轴,所有几何图形都将根据这些平面进行裁剪。 要确定其他裁剪平面的最大数量,请使用参数 ?GL_MAX_CLIP_PLANES 调用 gl:getIntegerv/1。所有实现至少支持六个这样的裁剪平面。由于生成的裁剪区域是定义的半空间的交集,因此它始终是凸的。

外部文档。

链接到此函数

color3b(Red, Green, Blue)

查看源代码
-spec color3b(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 color4usv/1

-spec color3bv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color3d(Red, Green, Blue)

查看源代码
-spec color3d(Red :: f(), Green :: f(), Blue :: f()) -> ok.

等效于 color4usv/1

-spec color3dv({Red :: f(), Green :: f(), Blue :: f()}) -> ok.

等效于 color4usv/1

链接到此函数

color3f(Red, Green, Blue)

查看源代码
-spec color3f(Red :: f(), Green :: f(), Blue :: f()) -> ok.

等效于 color4usv/1

-spec color3fv({Red :: f(), Green :: f(), Blue :: f()}) -> ok.

等效于 color4usv/1

链接到此函数

color3i(Red, Green, Blue)

查看源代码
-spec color3i(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 color4usv/1

-spec color3iv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color3s(Red, Green, Blue)

查看源代码
-spec color3s(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 color4usv/1

-spec color3sv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color3ub(Red, Green, Blue)

查看源代码
-spec color3ub(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 color4usv/1

-spec color3ubv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color3ui(Red, Green, Blue)

查看源代码
-spec color3ui(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 color4usv/1

-spec color3uiv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color3us(Red, Green, Blue)

查看源代码
-spec color3us(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 color4usv/1

-spec color3usv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color4b(Red, Green, Blue, Alpha)

查看源代码
-spec color4b(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) -> ok.

等效于 color4usv/1

-spec color4bv({Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color4d(Red, Green, Blue, Alpha)

查看源代码
-spec color4d(Red :: f(), Green :: f(), Blue :: f(), Alpha :: f()) -> ok.

等效于 color4usv/1

-spec color4dv({Red :: f(), Green :: f(), Blue :: f(), Alpha :: f()}) -> ok.

等效于 color4usv/1

链接到此函数

color4f(Red, Green, Blue, Alpha)

查看源代码
-spec color4f(Red :: f(), Green :: f(), Blue :: f(), Alpha :: f()) -> ok.

等效于 color4usv/1

-spec color4fv({Red :: f(), Green :: f(), Blue :: f(), Alpha :: f()}) -> ok.

等效于 color4usv/1

链接到此函数

color4i(Red, Green, Blue, Alpha)

查看源代码
-spec color4i(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) -> ok.

等效于 color4usv/1

-spec color4iv({Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color4s(Red, Green, Blue, Alpha)

查看源代码
-spec color4s(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) -> ok.

等效于 color4usv/1

-spec color4sv({Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color4ub(Red, Green, Blue, Alpha)

查看源代码
-spec color4ub(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) -> ok.

等效于 color4usv/1

-spec color4ubv({Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color4ui(Red, Green, Blue, Alpha)

查看源代码
-spec color4ui(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) -> ok.

等效于 color4usv/1

-spec color4uiv({Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()}) -> ok.

等效于 color4usv/1

链接到此函数

color4us(Red, Green, Blue, Alpha)

查看源代码
-spec color4us(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) -> ok.

等效于 color4usv/1

-spec color4usv({Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()}) -> ok.

GL 存储当前单值颜色索引和当前四值 RGBA 颜色。 gl:color() 设置新的四值 RGBA 颜色。 gl:color() 有两个主要变体: gl:color3()gl:color4()gl:color3() 变体显式指定新的红色、绿色和蓝色值,并将当前 alpha 值隐式设置为 1.0 (全强度)。 gl:color4() 变体显式指定所有四个颜色分量。

外部文档。

链接到此函数

colorMask(Red, Green, Blue, Alpha)

查看源代码
-spec colorMask(Red :: 0 | 1, Green :: 0 | 1, Blue :: 0 | 1, Alpha :: 0 | 1) -> ok.

等效于 colorMaski/5

链接到此函数

colorMaski(Index, R, G, B, A)

查看源代码
-spec colorMaski(Index :: i(), R :: 0 | 1, G :: 0 | 1, B :: 0 | 1, A :: 0 | 1) -> ok.

gl:colorMask/4gl:colorMaski/5 指定帧缓冲区中各个颜色分量是否可以写入。 gl:colorMaski/5 为特定的绘制缓冲区设置掩码,而 gl:colorMask/4 为所有绘制缓冲区设置掩码。 例如,如果 Red?GL_FALSE,则无论尝试执行什么绘图操作,都不会更改任何颜色缓冲区中任何像素的红色分量。

外部文档。

链接到此函数

colorMaterial(Face, Mode)

查看源代码
-spec colorMaterial(Face :: enum(), Mode :: enum()) -> ok.

gl:colorMaterial/2 指定哪些材质参数跟踪当前颜色。 当启用 ?GL_COLOR_MATERIAL 时,由 Mode 指定的材质参数或多个参数,以及由 Face 指定的材质或多个材质,始终跟踪当前颜色。

外部文档。

链接到此函数

colorPointer(Size, Type, Stride, Ptr)

查看源代码
-spec colorPointer(Size :: i(), Type :: enum(), Stride :: i(), Ptr :: offset() | mem()) -> ok.

gl:colorPointer/4 指定渲染时使用的颜色分量数组的位置和数据格式。 Size 指定每个颜色的分量数量,必须为 3 或 4。 Type 指定每个颜色分量的数据类型,Stride 指定从一个颜色到下一个颜色的字节步幅,允许将顶点和属性打包到单个数组或存储在单独的数组中。(在某些实现中,单数组存储可能更有效;请参阅 gl:interleavedArrays/3。)

外部文档。

链接到此函数

colorSubTable(Target, Start, Count, Format, Type, Data)

查看源代码
-spec colorSubTable(Target, Start, Count, Format, Type, Data) -> ok
                       when
                           Target :: enum(),
                           Start :: i(),
                           Count :: i(),
                           Format :: enum(),
                           Type :: enum(),
                           Data :: offset() | mem().

gl:colorSubTable/6 用于重新指定先前使用 gl:colorTable/6 定义的颜色表的连续部分。 由 Data 引用的像素将替换现有表中从索引 Start 到 start+count-1(包括)的部分。 此区域不得包含最初指定颜色表范围之外的任何条目。 指定宽度为 0 的子纹理不是错误,但这样的指定无效。

外部文档。

链接到此函数

colorTable(Target, Internalformat, Width, Format, Type, Table)

查看源代码
-spec colorTable(Target, Internalformat, Width, Format, Type, Table) -> ok
                    when
                        Target :: enum(),
                        Internalformat :: enum(),
                        Width :: i(),
                        Format :: enum(),
                        Type :: enum(),
                        Table :: offset() | mem().

gl:colorTable/6 可以通过两种方式使用:测试给定一组参数的查找表的实际大小和颜色分辨率,或者加载颜色查找表的内容。 对于第一种情况,使用目标 ?GL_PROXY_*,对于第二种情况,使用其他目标。

外部文档。

链接到此函数

colorTableParameterfv(Target, Pname, Params)

查看源代码
-spec colorTableParameterfv(Target :: enum(), Pname :: enum(), Params :: {f(), f(), f(), f()}) -> ok.

等效于 colorTableParameteriv/3

链接到此函数

colorTableParameteriv(Target, Pname, Params)

查看源代码
-spec colorTableParameteriv(Target :: enum(), Pname :: enum(), Params :: {i(), i(), i(), i()}) -> ok.

gl:colorTableParameter() 用于指定将颜色分量加载到颜色表时应用的比例因子和偏差项。 Target 指示比例和偏差项应用于哪个颜色表;它必须设置为 ?GL_COLOR_TABLE?GL_POST_CONVOLUTION_COLOR_TABLE?GL_POST_COLOR_MATRIX_COLOR_TABLE

外部文档。

-spec compileShader(Shader :: i()) -> ok.

gl:compileShader/1 编译存储在由 Shader 指定的着色器对象中的源代码字符串。

外部文档。

链接到此函数

compressedTexImage1D(Target, Level, Internalformat, Width, Border, ImageSize, Data)

查看源代码
-spec compressedTexImage1D(Target, Level, Internalformat, Width, Border, ImageSize, Data) -> ok
                              when
                                  Target :: enum(),
                                  Level :: i(),
                                  Internalformat :: enum(),
                                  Width :: i(),
                                  Border :: i(),
                                  ImageSize :: i(),
                                  Data :: offset() | mem().

纹理允许着色器读取图像数组的元素。

外部文档。

链接到此函数

compressedTexImage2D(Target, Level, Internalformat, Width, Height, Border, ImageSize, Data)

查看源代码
-spec compressedTexImage2D(Target, Level, Internalformat, Width, Height, Border, ImageSize, Data) -> ok
                              when
                                  Target :: enum(),
                                  Level :: i(),
                                  Internalformat :: enum(),
                                  Width :: i(),
                                  Height :: i(),
                                  Border :: i(),
                                  ImageSize :: i(),
                                  Data :: offset() | mem().

纹理允许着色器读取图像数组的元素。

外部文档。

链接到此函数

compressedTexImage3D(Target, Level, Internalformat, Width, Height, Depth, Border, ImageSize, Data)

查看源代码
-spec compressedTexImage3D(Target, Level, Internalformat, Width, Height, Depth, Border, ImageSize, Data) ->
                              ok
                              when
                                  Target :: enum(),
                                  Level :: i(),
                                  Internalformat :: enum(),
                                  Width :: i(),
                                  Height :: i(),
                                  Depth :: i(),
                                  Border :: i(),
                                  ImageSize :: i(),
                                  Data :: offset() | mem().

纹理允许着色器读取图像数组的元素。

外部文档。

链接到此函数

compressedTexSubImage1D(Target, Level, Xoffset, Width, Format, ImageSize, Data)

查看源代码
-spec compressedTexSubImage1D(Target, Level, Xoffset, Width, Format, ImageSize, Data) -> ok
                                 when
                                     Target :: enum(),
                                     Level :: i(),
                                     Xoffset :: i(),
                                     Width :: i(),
                                     Format :: enum(),
                                     ImageSize :: i(),
                                     Data :: offset() | mem().

等效于 compressedTextureSubImage1D/7

链接到此函数

compressedTexSubImage2D(Target, Level, Xoffset, Yoffset, Width, Height, Format, ImageSize, Data)

查看源代码
-spec compressedTexSubImage2D(Target, Level, Xoffset, Yoffset, Width, Height, Format, ImageSize, Data) ->
                                 ok
                                 when
                                     Target :: enum(),
                                     Level :: i(),
                                     Xoffset :: i(),
                                     Yoffset :: i(),
                                     Width :: i(),
                                     Height :: i(),
                                     Format :: enum(),
                                     ImageSize :: i(),
                                     Data :: offset() | mem().

等效于 compressedTextureSubImage2D/9

链接到此函数

compressedTexSubImage3D(Target, Level, Xoffset, Yoffset, Zoffset, Width, Height, Depth, Format, ImageSize, Data)

查看源代码
-spec compressedTexSubImage3D(Target, Level, Xoffset, Yoffset, Zoffset, Width, Height, Depth, Format,
                              ImageSize, Data) ->
                                 ok
                                 when
                                     Target :: enum(),
                                     Level :: i(),
                                     Xoffset :: i(),
                                     Yoffset :: i(),
                                     Zoffset :: i(),
                                     Width :: i(),
                                     Height :: i(),
                                     Depth :: i(),
                                     Format :: enum(),
                                     ImageSize :: i(),
                                     Data :: offset() | mem().

等效于 compressedTextureSubImage3D/11

链接到此函数

compressedTextureSubImage1D(Texture, Level, Xoffset, Width, Format, ImageSize, Data)

查看源代码
-spec compressedTextureSubImage1D(Texture, Level, Xoffset, Width, Format, ImageSize, Data) -> ok
                                     when
                                         Texture :: i(),
                                         Level :: i(),
                                         Xoffset :: i(),
                                         Width :: i(),
                                         Format :: enum(),
                                         ImageSize :: i(),
                                         Data :: offset() | mem().

纹理允许着色器读取图像数组的元素。

外部文档。

链接到此函数

compressedTextureSubImage2D(Texture, Level, Xoffset, Yoffset, Width, Height, Format, ImageSize, Data)

查看源代码
-spec compressedTextureSubImage2D(Texture, Level, Xoffset, Yoffset, Width, Height, Format, ImageSize,
                                  Data) ->
                                     ok
                                     when
                                         Texture :: i(),
                                         Level :: i(),
                                         Xoffset :: i(),
                                         Yoffset :: i(),
                                         Width :: i(),
                                         Height :: i(),
                                         Format :: enum(),
                                         ImageSize :: i(),
                                         Data :: offset() | mem().

纹理允许着色器读取图像数组的元素。

外部文档。

链接到此函数

compressedTextureSubImage3D(Texture, Level, Xoffset, Yoffset, Zoffset, Width, Height, Depth, Format, ImageSize, Data)

查看源代码
-spec compressedTextureSubImage3D(Texture, Level, Xoffset, Yoffset, Zoffset, Width, Height, Depth,
                                  Format, ImageSize, Data) ->
                                     ok
                                     when
                                         Texture :: i(),
                                         Level :: i(),
                                         Xoffset :: i(),
                                         Yoffset :: i(),
                                         Zoffset :: i(),
                                         Width :: i(),
                                         Height :: i(),
                                         Depth :: i(),
                                         Format :: enum(),
                                         ImageSize :: i(),
                                         Data :: offset() | mem().

纹理允许着色器读取图像数组的元素。

外部文档。

链接到此函数

convolutionFilter1D(Target, Internalformat, Width, Format, Type, Image)

查看源代码
-spec convolutionFilter1D(Target, Internalformat, Width, Format, Type, Image) -> ok
                             when
                                 Target :: enum(),
                                 Internalformat :: enum(),
                                 Width :: i(),
                                 Format :: enum(),
                                 Type :: enum(),
                                 Image :: offset() | mem().

gl:convolutionFilter1D/6 从像素数组构建一维卷积滤波内核。

外部文档。

链接到此函数

convolutionFilter2D(Target, Internalformat, Width, Height, Format, Type, Image)

查看源代码
-spec convolutionFilter2D(Target, Internalformat, Width, Height, Format, Type, Image) -> ok
                             when
                                 Target :: enum(),
                                 Internalformat :: enum(),
                                 Width :: i(),
                                 Height :: i(),
                                 Format :: enum(),
                                 Type :: enum(),
                                 Image :: offset() | mem().

gl:convolutionFilter2D/7 从像素数组构建二维卷积滤波内核。

外部文档。

链接到此函数

convolutionParameterf(Target, Pname, Params)

查看源代码
-spec convolutionParameterf(Target :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等效于 convolutionParameteriv/3

链接到此函数

convolutionParameterfv(Target, Pname, Params)

查看源代码
-spec convolutionParameterfv(Target :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等效于 convolutionParameteriv/3

链接到此函数

convolutionParameteri(Target, Pname, Params)

查看源代码
-spec convolutionParameteri(Target :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等效于 convolutionParameteriv/3

链接到此函数

convolutionParameteriv(Target, Pname, Params)

查看源代码
-spec convolutionParameteriv(Target :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

gl:convolutionParameter() 设置卷积参数的值。

外部文档。

链接到此函数

copyBufferSubData(ReadTarget, WriteTarget, ReadOffset, WriteOffset, Size)

查看源代码
-spec copyBufferSubData(ReadTarget, WriteTarget, ReadOffset, WriteOffset, Size) -> ok
                           when
                               ReadTarget :: enum(),
                               WriteTarget :: enum(),
                               ReadOffset :: i(),
                               WriteOffset :: i(),
                               Size :: i().

gl:copyBufferSubData/5glCopyNamedBufferSubData 将附加到源缓冲区对象的数据存储的一部分复制到附加到目标缓冲区对象的数据存储。 由 Size 指示的基本机器单元数量从源的偏移量 ReadOffset 复制到目标的偏移量 WriteOffsetReadOffsetWriteOffsetSize 以基本机器单元为单位。

外部文档。

链接到此函数

copyColorSubTable(Target, Start, X, Y, Width)

查看源代码
-spec copyColorSubTable(Target :: enum(), Start :: i(), X :: i(), Y :: i(), Width :: i()) -> ok.

gl:copyColorSubTable/5 用于重新指定先前使用 gl:colorTable/6 定义的颜色表的连续部分。 从帧缓冲区复制的像素将替换现有表中从索引 Start 到 start+x-1(包括)的部分。 此区域不得包含最初指定颜色表范围之外的任何条目。 指定宽度为 0 的子纹理不是错误,但这样的指定无效。

外部文档。

链接到此函数

copyColorTable(Target, Internalformat, X, Y, Width)

查看源代码
-spec copyColorTable(Target :: enum(), Internalformat :: enum(), X :: i(), Y :: i(), Width :: i()) -> ok.

gl:copyColorTable/5 从当前的 ?GL_READ_BUFFER 加载颜色表(而不是像 gl:colorTable/6 那样从主内存加载)。

外部文档。

链接到此函数

copyConvolutionFilter1D(Target, Internalformat, X, Y, Width)

查看源代码
-spec copyConvolutionFilter1D(Target :: enum(),
                              Internalformat :: enum(),
                              X :: i(),
                              Y :: i(),
                              Width :: i()) ->
                                 ok.

gl:copyConvolutionFilter1D/5 使用来自当前 ?GL_READ_BUFFER 的像素定义一维卷积滤波内核(而不是像 gl:convolutionFilter1D/6 那样从主内存定义)。

外部文档。

链接到此函数

copyConvolutionFilter2D(Target, Internalformat, X, Y, Width, Height)

查看源代码
-spec copyConvolutionFilter2D(Target :: enum(),
                              Internalformat :: enum(),
                              X :: i(),
                              Y :: i(),
                              Width :: i(),
                              Height :: i()) ->
                                 ok.

gl:copyConvolutionFilter2D/6 使用来自当前 ?GL_READ_BUFFER 的像素定义二维卷积滤波内核(而不是像 gl:convolutionFilter2D/7 那样从主内存定义)。

外部文档。

链接到此函数

copyImageSubData(SrcName, SrcTarget, SrcLevel, SrcX, SrcY, SrcZ, DstName, DstTarget, DstLevel, DstX, DstY, DstZ, SrcWidth, SrcHeight, SrcDepth)

查看源代码
-spec copyImageSubData(SrcName, SrcTarget, SrcLevel, SrcX, SrcY, SrcZ, DstName, DstTarget, DstLevel,
                       DstX, DstY, DstZ, SrcWidth, SrcHeight, SrcDepth) ->
                          ok
                          when
                              SrcName :: i(),
                              SrcTarget :: enum(),
                              SrcLevel :: i(),
                              SrcX :: i(),
                              SrcY :: i(),
                              SrcZ :: i(),
                              DstName :: i(),
                              DstTarget :: enum(),
                              DstLevel :: i(),
                              DstX :: i(),
                              DstY :: i(),
                              DstZ :: i(),
                              SrcWidth :: i(),
                              SrcHeight :: i(),
                              SrcDepth :: i().

gl:copyImageSubData/15 可用于将数据从一个图像(即纹理或渲染缓冲区)复制到另一个图像。 gl:copyImageSubData/15 不执行通用转换,例如缩放、调整大小、混合、色彩空间或格式转换。 应将其视为以类似于 CPU memcpy 的方式运行。 CopyImageSubData 可以在具有不同内部格式的图像之间复制,前提是格式兼容。

外部文档。

链接到此函数

copyPixels(X, Y, Width, Height, Type)

查看源代码
-spec copyPixels(X :: i(), Y :: i(), Width :: i(), Height :: i(), Type :: enum()) -> ok.

gl:copyPixels/5 将与屏幕对齐的像素矩形从指定的帧缓冲区位置复制到相对于当前光栅位置的区域。 只有当整个像素源区域都在窗口的暴露部分内时,其操作才是明确定义的。 从窗口外部或从窗口中未暴露的区域复制的结果取决于硬件并且是未定义的。

外部文档。

链接到此函数

copyTexImage1D(Target, Level, Internalformat, X, Y, Width, Border)

查看源代码
-spec copyTexImage1D(Target, Level, Internalformat, X, Y, Width, Border) -> ok
                        when
                            Target :: enum(),
                            Level :: i(),
                            Internalformat :: enum(),
                            X :: i(),
                            Y :: i(),
                            Width :: i(),
                            Border :: i().

gl:copyTexImage1D/7 使用来自当前 ?GL_READ_BUFFER 的像素定义一维纹理图像。

外部文档。

链接到此函数

copyTexImage2D(Target, Level, Internalformat, X, Y, Width, Height, Border)

查看源代码
-spec copyTexImage2D(Target, Level, Internalformat, X, Y, Width, Height, Border) -> ok
                        when
                            Target :: enum(),
                            Level :: i(),
                            Internalformat :: enum(),
                            X :: i(),
                            Y :: i(),
                            Width :: i(),
                            Height :: i(),
                            Border :: i().

gl:copyTexImage2D/8 使用来自当前 ?GL_READ_BUFFER 的像素定义二维纹理图像或立方体贴图纹理图像。

外部文档。

链接到此函数

copyTexSubImage1D(Target, Level, Xoffset, X, Y, Width)

查看源代码
-spec copyTexSubImage1D(Target :: enum(),
                        Level :: i(),
                        Xoffset :: i(),
                        X :: i(),
                        Y :: i(),
                        Width :: i()) ->
                           ok.

gl:copyTexSubImage1D/6glCopyTextureSubImage1D 使用来自当前 ?GL_READ_BUFFER 的像素替换一维纹理图像的一部分(而不是像 gl:texSubImage1D/7 那样从主内存替换)。 对于 gl:copyTexSubImage1D/6,将使用绑定到 Target 的纹理对象进行处理。 对于 glCopyTextureSubImage1DTexture 指示应将哪个纹理对象用于调用目的。

外部文档。

链接到此函数

copyTexSubImage2D(Target, Level, Xoffset, Yoffset, X, Y, Width, Height)

查看源代码
-spec copyTexSubImage2D(Target, Level, Xoffset, Yoffset, X, Y, Width, Height) -> ok
                           when
                               Target :: enum(),
                               Level :: i(),
                               Xoffset :: i(),
                               Yoffset :: i(),
                               X :: i(),
                               Y :: i(),
                               Width :: i(),
                               Height :: i().

gl:copyTexSubImage2D/8glCopyTextureSubImage2D 使用来自当前 ?GL_READ_BUFFER 的像素替换二维纹理图像、立方体贴图纹理图像、矩形图像的矩形部分,或一维数组纹理的多个切片的线性部分(而不是像 gl:texSubImage2D/9 那样从主内存替换)。

外部文档。

链接到此函数

copyTexSubImage3D(Target, Level, Xoffset, Yoffset, Zoffset, X, Y, Width, Height)

查看源代码
-spec copyTexSubImage3D(Target, Level, Xoffset, Yoffset, Zoffset, X, Y, Width, Height) -> ok
                           when
                               Target :: enum(),
                               Level :: i(),
                               Xoffset :: i(),
                               Yoffset :: i(),
                               Zoffset :: i(),
                               X :: i(),
                               Y :: i(),
                               Width :: i(),
                               Height :: i().

gl:copyTexSubImage3D/9glCopyTextureSubImage3D 函数使用来自当前 ?GL_READ_BUFFER 的像素替换三维或二维数组纹理图像的矩形部分(而不是像 gl:texSubImage3D/11 那样从主内存替换)。

外部文档。

-spec createBuffers(N :: i()) -> [i()].

gl:createBuffers/1Buffers 中返回 N 个先前未使用的缓冲区名称,每个名称代表一个新的缓冲区对象,该对象初始化时就好像它已绑定到未指定的目标一样。

外部文档。

-spec createFramebuffers(N :: i()) -> [i()].

gl:createFramebuffers/1Framebuffers 中返回 N 个先前未使用的帧缓冲区名称,每个名称代表一个初始化为默认状态的新帧缓冲区对象。

外部文档。

-spec createProgram() -> i().

gl:createProgram/0 创建一个空的程序对象,并返回一个非零值,可以通过该值引用该对象。 程序对象是一个可以附加着色器对象的对象。 这提供了一种机制来指定将链接以创建程序的着色器对象。 它还提供了一种方法来检查将用于创建程序的着色器的兼容性(例如,检查顶点着色器和片段着色器之间的兼容性)。 当不再需要作为程序对象的一部分时,可以分离着色器对象。

外部文档。

链接到此函数

createProgramPipelines(N)

查看源代码
-spec createProgramPipelines(N :: i()) -> [i()].

gl:createProgramPipelines/1Pipelines 中返回 N 个先前未使用的程序管道名称,每个名称代表一个初始化为默认状态的新程序管道对象。

外部文档。

链接到此函数

createQueries(Target, N)

查看源代码
-spec createQueries(Target :: enum(), N :: i()) -> [i()].

gl:createQueries/2Ids 中返回 N 个先前未使用的查询对象名称,每个名称代表一个具有指定 Target 的新查询对象。

外部文档。

链接到此函数

createRenderbuffers(N)

查看源代码
-spec createRenderbuffers(N :: i()) -> [i()].

gl:createRenderbuffers/1Renderbuffers 中返回 N 个先前未使用的渲染缓冲区对象名称,每个名称代表一个初始化为默认状态的新渲染缓冲区对象。

外部文档。

-spec createSamplers(N :: i()) -> [i()].

gl:createSamplers/1Samplers 中返回 N 个先前未使用的采样器名称,每个名称代表一个初始化为默认状态的新采样器对象。

外部文档。

-spec createShader(Type :: enum()) -> i().

gl:createShader/1 创建一个空的着色器对象,并返回一个非零值,通过该值可以引用它。着色器对象用于维护定义着色器的源代码字符串。ShaderType 指示要创建的着色器的类型。支持五种类型的着色器。类型为 ?GL_COMPUTE_SHADER 的着色器是打算在可编程计算处理器上运行的着色器。类型为 ?GL_VERTEX_SHADER 的着色器是打算在可编程顶点处理器上运行的着色器。类型为 ?GL_TESS_CONTROL_SHADER 的着色器是打算在控制阶段在可编程细分处理器上运行的着色器。类型为 ?GL_TESS_EVALUATION_SHADER 的着色器是打算在评估阶段在可编程细分处理器上运行的着色器。类型为 ?GL_GEOMETRY_SHADER 的着色器是打算在可编程几何处理器上运行的着色器。类型为 ?GL_FRAGMENT_SHADER 的着色器是打算在可编程片段处理器上运行的着色器。

外部文档。

链接到此函数

createShaderProgramv(Type, Strings)

查看源代码
-spec createShaderProgramv(Type :: enum(), Strings :: [unicode:chardata()]) -> i().

gl:createShaderProgram() 创建一个程序对象,其中包含由 Type 指定的单个阶段的已编译和链接的着色器。Strings 指的是用于创建着色器可执行文件的 Count 个字符串的数组。

外部文档。

链接到此函数

createTextures(Target, N)

查看源代码
-spec createTextures(Target :: enum(), N :: i()) -> [i()].

gl:createTextures/2 返回 Textures 中先前未使用的 N 个纹理名称,每个名称代表一个由 Target 指定维度和类型的新纹理对象,并初始化为该纹理类型的默认值。

外部文档。

链接到此函数

createTransformFeedbacks(N)

查看源代码
-spec createTransformFeedbacks(N :: i()) -> [i()].

gl:createTransformFeedbacks/1 返回 Ids 中先前未使用的 N 个变换反馈对象名称,每个名称代表一个初始化为默认状态的新变换反馈对象。

外部文档。

-spec createVertexArrays(N :: i()) -> [i()].

gl:createVertexArrays/1 返回 Arrays 中先前未使用的 N 个顶点数组对象名称,每个名称代表一个初始化为默认状态的新顶点数组对象。

外部文档。

-spec cullFace(Mode :: enum()) -> ok.

gl:cullFace/1 指定当启用面剔除时,是剔除正面还是背面(由 mode 指定)。面剔除最初是禁用的。要启用和禁用面剔除,请使用参数 ?GL_CULL_FACE 调用 gl:enable/1gl:disable/1 命令。面包括三角形、四边形、多边形和矩形。

外部文档。

链接到此函数

debugMessageControl(Source, Type, Severity, Ids, Enabled)

查看源代码
-spec debugMessageControl(Source :: enum(),
                          Type :: enum(),
                          Severity :: enum(),
                          Ids :: [i()],
                          Enabled :: 0 | 1) ->
                             ok.

gl:debugMessageControl/5 控制调试上下文生成的调试消息的报告。SourceTypeSeverity 参数形成一个过滤器,用于从 GL 生成的潜在消息池中选择消息。

外部文档。

链接到此函数

debugMessageInsert(Source, Type, Id, Severity, Buf)

查看源代码
-spec debugMessageInsert(Source :: enum(),
                         Type :: enum(),
                         Id :: i(),
                         Severity :: enum(),
                         Buf :: string()) ->
                            ok.

gl:debugMessageInsert/5 将用户提供的消息插入调试输出队列。Source 指定用于对消息进行分类的源,并且必须是 ?GL_DEBUG_SOURCE_APPLICATION?GL_DEBUG_SOURCE_THIRD_PARTY。所有其他源都保留供 GL 实现使用。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?GL_DEBUG_TYPE_OTHER 之一。Severity 指示消息的严重性,并且可以是 ?GL_DEBUG_SEVERITY_LOW?GL_DEBUG_SEVERITY_MEDIUM?GL_DEBUG_SEVERITY_HIGH?GL_DEBUG_SEVERITY_NOTIFICATIONId 可用于应用程序定义的用途,并且可以是任何值。此值将被记录并用于标识消息。

外部文档。

链接到此函数

deleteBuffers(Buffers)

查看源代码
-spec deleteBuffers(Buffers :: [i()]) -> ok.

gl:deleteBuffers/1 删除由数组 Buffers 的元素命名的 N 个缓冲区对象。删除缓冲区对象后,它没有内容,并且其名称可以重复使用(例如,通过 gl:genBuffers/1)。如果删除了当前绑定的缓冲区对象,则绑定将恢复为 0(没有任何缓冲区对象)。

外部文档。

链接到此函数

deleteFramebuffers(Framebuffers)

查看源代码
-spec deleteFramebuffers(Framebuffers :: [i()]) -> ok.

gl:deleteFramebuffers/1 删除其名称存储在 Framebuffers 寻址的数组中的 N 个帧缓冲区对象。名称零由 GL 保留,如果它出现在 Framebuffers 中,则会被静默忽略,其他未使用的名称也是如此。一旦帧缓冲区对象被删除,其名称再次未被使用,并且它没有附件。如果当前绑定到一个或多个目标 ?GL_DRAW_FRAMEBUFFER?GL_READ_FRAMEBUFFER 的帧缓冲区被删除,则如同执行了 gl:bindFramebuffer/2,并且相应的 TargetFramebuffer 为零。

外部文档。

链接到此函数

deleteLists(List, Range)

查看源代码
-spec deleteLists(List :: i(), Range :: i()) -> ok.

gl:deleteLists/2 导致删除连续的一组显示列表。List 是要删除的第一个显示列表的名称,Range 是要删除的显示列表的数量。所有显示列表 d 且 list<= d<= list+range-1 都被删除。

外部文档。

链接到此函数

deleteProgram(Program)

查看源代码
-spec deleteProgram(Program :: i()) -> ok.

gl:deleteProgram/1 释放内存并使 Program 指定的程序对象相关联的名称无效。此命令有效地撤消了对 gl:createProgram/0 的调用效果。

外部文档。

链接到此函数

deleteProgramPipelines(Pipelines)

查看源代码
-spec deleteProgramPipelines(Pipelines :: [i()]) -> ok.

gl:deleteProgramPipelines/1 删除其名称存储在数组 Pipelines 中的 N 个程序管道对象。Pipelines 中未使用的名称将被忽略,名称零也是如此。删除程序管道对象后,其名称再次未被使用,并且它没有内容。如果删除了当前绑定的程序管道对象,则该对象的绑定将恢复为零,并且没有程序管道对象变为当前对象。

外部文档。

-spec deleteQueries(Ids :: [i()]) -> ok.

gl:deleteQueries/1 删除由数组 Ids 的元素命名的 N 个查询对象。删除查询对象后,它没有内容,并且其名称可以重复使用(例如,通过 gl:genQueries/1)。

外部文档。

链接到此函数

deleteRenderbuffers(Renderbuffers)

查看源代码
-spec deleteRenderbuffers(Renderbuffers :: [i()]) -> ok.

gl:deleteRenderbuffers/1 删除其名称存储在 Renderbuffers 寻址的数组中的 N 个渲染缓冲区对象。名称零由 GL 保留,如果它出现在 Renderbuffers 中,则会被静默忽略,其他未使用的名称也是如此。一旦渲染缓冲区对象被删除,其名称再次未被使用,并且它没有内容。如果当前绑定到目标 ?GL_RENDERBUFFER 的渲染缓冲区被删除,则如同执行了 gl:bindRenderbuffer/2,并且 Target?GL_RENDERBUFFER,而 Name 为零。

外部文档。

链接到此函数

deleteSamplers(Samplers)

查看源代码
-spec deleteSamplers(Samplers :: [i()]) -> ok.

gl:deleteSamplers/1 删除由数组 Samplers 的元素命名的 N 个采样器对象。删除采样器对象后,其名称再次未被使用。如果当前绑定到采样器单元的采样器对象被删除,则如同调用 gl:bindSampler/2,其中 unit 设置为采样器绑定的单元,而 sampler 为零。 samplers 中未使用的名称会被静默忽略,保留名称零也是如此。

外部文档。

-spec deleteShader(Shader :: i()) -> ok.

gl:deleteShader/1 释放内存并使 Shader 指定的着色器对象相关联的名称无效。此命令有效地撤消了对 gl:createShader/1 的调用效果。

外部文档。

-spec deleteSync(Sync :: i()) -> ok.

gl:deleteSync/1 删除由 Sync 指定的同步对象。如果与指定的同步对象对应的栅栏命令已完成,或者如果没有 gl:waitSync/3gl:clientWaitSync/3 命令阻止 Sync,则立即删除该对象。否则,将标记 Sync 以进行删除,并且当它不再与任何栅栏命令关联并且不再阻止任何 gl:waitSync/3gl:clientWaitSync/3 命令时,它将被删除。在任何一种情况下,在 gl:deleteSync/1 返回之后,名称 Sync 无效,并且不能再用于引用同步对象。

外部文档。

链接到此函数

deleteTextures(Textures)

查看源代码
-spec deleteTextures(Textures :: [i()]) -> ok.

gl:deleteTextures/1 删除由数组 Textures 的元素命名的 N 个纹理。删除纹理后,它没有内容或维度,并且其名称可以重复使用(例如,通过 gl:genTextures/1)。如果删除了当前绑定的纹理,则绑定将恢复为 0(默认纹理)。

外部文档。

链接到此函数

deleteTransformFeedbacks(Ids)

查看源代码
-spec deleteTransformFeedbacks(Ids :: [i()]) -> ok.

gl:deleteTransformFeedbacks/1 删除其名称存储在数组 Ids 中的 N 个变换反馈对象。Ids 中未使用的名称将被忽略,名称零也是如此。删除变换反馈对象后,其名称再次未被使用,并且它没有内容。如果删除了活动变换反馈对象,则其名称立即变为未被使用,但只有在不再活动时才删除基础对象。

外部文档。

链接到此函数

deleteVertexArrays(Arrays)

查看源代码
-spec deleteVertexArrays(Arrays :: [i()]) -> ok.

gl:deleteVertexArrays/1 删除 Arrays 指向的数组中存储的 N 个顶点数组对象。一旦顶点数组对象被删除,它将不再包含任何内容,其名称再次变为未使用状态。如果当前绑定的顶点数组对象被删除,则该对象的绑定将恢复为零,默认的顶点数组将变为当前。 Arrays 中未使用的名称会被静默忽略,零值也会被忽略。

外部文档。

-spec depthFunc(Func :: enum()) -> ok.

gl:depthFunc/1 指定用于将每个传入的像素深度值与深度缓冲区中存在的深度值进行比较的函数。只有在启用深度测试时才会执行比较。(请参阅 gl:enable/1gl:disable/1 中的 ?GL_DEPTH_TEST。)

外部文档。

-spec depthMask(Flag :: 0 | 1) -> ok.

gl:depthMask/1 指定是否启用深度缓冲区的写入。如果 Flag?GL_FALSE,则禁用深度缓冲区写入。否则,启用深度缓冲区写入。初始情况下,深度缓冲区写入是启用的。

外部文档。

链接到此函数

depthRange(Near_val, Far_val)

查看源代码
-spec depthRange(Near_val :: clamp(), Far_val :: clamp()) -> ok.

等同于 depthRangef/2

链接到此函数

depthRangeArrayv(First, V)

查看源代码
-spec depthRangeArrayv(First :: i(), V :: [{f(), f()}]) -> ok.

在裁剪并除以 w 后,深度坐标的范围为 -1 到 1,对应于近裁剪平面和远裁剪平面。每个视口都有一个独立的深度范围,该范围指定了此范围内的标准化深度坐标到窗口深度坐标的线性映射。无论实际的深度缓冲区实现如何,窗口坐标深度值都被视为范围从 0 到 1(如颜色分量)。gl:depthRangeArray() 为范围 [First, First + Count) 中的每个视口指定了此范围内的标准化深度坐标到窗口深度坐标的线性映射。因此,gl:depthRangeArray() 接受的值在被接受之前都会被钳制到这个范围内。

外部文档。

-spec depthRangef(N :: f(), F :: f()) -> ok.

在裁剪并除以 w 后,深度坐标的范围为 -1 到 1,对应于近裁剪平面和远裁剪平面。gl:depthRange/2 指定了此范围内的标准化深度坐标到窗口深度坐标的线性映射。无论实际的深度缓冲区实现如何,窗口坐标深度值都被视为范围从 0 到 1(如颜色分量)。因此,gl:depthRange/2 接受的值在被接受之前都会被钳制到这个范围内。

外部文档。

链接到此函数

depthRangeIndexed(Index, N, F)

查看源代码
-spec depthRangeIndexed(Index :: i(), N :: f(), F :: f()) -> ok.

在裁剪并除以 w 后,深度坐标的范围为 -1 到 1,对应于近裁剪平面和远裁剪平面。每个视口都有一个独立的深度范围,该范围指定了此范围内的标准化深度坐标到窗口深度坐标的线性映射。无论实际的深度缓冲区实现如何,窗口坐标深度值都被视为范围从 0 到 1(如颜色分量)。gl:depthRangeIndexed/3 为指定的视口指定了此范围内的标准化深度坐标到窗口深度坐标的线性映射。因此,gl:depthRangeIndexed/3 接受的值在被接受之前都会被钳制到这个范围内。

外部文档。

链接到此函数

detachShader(Program, Shader)

查看源代码
-spec detachShader(Program :: i(), Shader :: i()) -> ok.

gl:detachShader/2Program 指定的程序对象中分离 Shader 指定的着色器对象。此命令可用于撤销命令 gl:attachShader/2 的效果。

外部文档。

-spec disable(Cap :: enum()) -> ok.

等同于 enablei/2

链接到此函数

disableClientState(Cap)

查看源代码
-spec disableClientState(Cap :: enum()) -> ok.

等同于 enableClientState/1

链接到此函数

disablei(Target, Index)

查看源代码
-spec disablei(Target :: enum(), Index :: i()) -> ok.

等同于 enablei/2

链接到此函数

disableVertexArrayAttrib(Vaobj, Index)

查看源代码
-spec disableVertexArrayAttrib(Vaobj :: i(), Index :: i()) -> ok.

等同于 enableVertexAttribArray/1

链接到此函数

disableVertexAttribArray(Index)

查看源代码
-spec disableVertexAttribArray(Index :: i()) -> ok.

等同于 enableVertexAttribArray/1

链接到此函数

dispatchCompute(Num_groups_x, Num_groups_y, Num_groups_z)

查看源代码
-spec dispatchCompute(Num_groups_x :: i(), Num_groups_y :: i(), Num_groups_z :: i()) -> ok.

gl:dispatchCompute/3 启动一个或多个计算工作组。每个工作组都由计算着色器阶段的活动程序对象处理。虽然工作组内的各个着色器调用作为一个单元执行,但工作组是完全独立且以未指定的顺序执行的。Num_groups_xNum_groups_yNum_groups_z 分别指定在 X、Y 和 Z 维度中将要调度的本地工作组的数量。

外部文档。

链接到此函数

dispatchComputeIndirect(Indirect)

查看源代码
-spec dispatchComputeIndirect(Indirect :: i()) -> ok.

gl:dispatchComputeIndirect/1 使用当前绑定到 ?GL_DISPATCH_INDIRECT_BUFFER 目标的缓冲区对象中存储的参数启动一个或多个计算工作组。每个工作组都由计算着色器阶段的活动程序对象处理。虽然工作组内的各个着色器调用作为一个单元执行,但工作组是完全独立且以未指定的顺序执行的。Indirect 包含存储参数的绑定到 ?GL_DISPATCH_INDIRECT_BUFFER 目标的缓冲区对象的数据存储的偏移量。

外部文档。

链接到此函数

drawArrays(Mode, First, Count)

查看源代码
-spec drawArrays(Mode :: enum(), First :: i(), Count :: i()) -> ok.

gl:drawArrays/3 使用很少的子程序调用来指定多个几何图元。您可以预先指定顶点、法线和颜色的单独数组,而不是调用 GL 程序来传递每个单独的顶点、法线、纹理坐标、边缘标志或颜色,并使用它们通过单次调用 gl:drawArrays/3 来构造一系列图元。

外部文档。

链接到此函数

drawArraysIndirect(Mode, Indirect)

查看源代码
-spec drawArraysIndirect(Mode :: enum(), Indirect :: offset() | mem()) -> ok.

gl:drawArraysIndirect/2 使用很少的子程序调用来指定多个几何图元。gl:drawArraysIndirect/2 的行为类似于 gl:drawArraysInstancedBaseInstance/5,只是 gl:drawArraysInstancedBaseInstance/5 的参数存储在 Indirect 给出的地址的内存中。

外部文档。

链接到此函数

drawArraysInstanced(Mode, First, Count, Instancecount)

查看源代码
-spec drawArraysInstanced(Mode :: enum(), First :: i(), Count :: i(), Instancecount :: i()) -> ok.

gl:drawArraysInstanced/4 的行为与 gl:drawArrays/3 完全相同,只是执行 Instancecount 次元素范围,并且内部计数器 InstanceID 在每次迭代时都会递增。InstanceID 是一个内部 32 位整数计数器,可以被顶点着色器读取为 ?gl_InstanceID

外部文档。

链接到此函数

drawArraysInstancedBaseInstance(Mode, First, Count, Instancecount, Baseinstance)

查看源代码
-spec drawArraysInstancedBaseInstance(Mode :: enum(),
                                      First :: i(),
                                      Count :: i(),
                                      Instancecount :: i(),
                                      Baseinstance :: i()) ->
                                         ok.

gl:drawArraysInstancedBaseInstance/5 的行为与 gl:drawArrays/3 完全相同,只是执行 Instancecount 次元素范围,并且内部计数器 InstanceID 在每次迭代时都会递增。InstanceID 是一个内部 32 位整数计数器,可以被顶点着色器读取为 ?gl_InstanceID

外部文档。

-spec drawBuffer(Mode :: enum()) -> ok.

当颜色被写入帧缓冲区时,它们被写入由 gl:drawBuffer/1 指定的颜色缓冲区。以下值之一可用于默认帧缓冲区

外部文档。

-spec drawBuffers(Bufs :: [enum()]) -> ok.

gl:drawBuffers/1glNamedFramebufferDrawBuffers 定义了一个缓冲区数组,片段着色器数据的输出将写入其中。如果片段着色器将值写入一个或多个用户定义的输出变量,则每个变量的值将被写入 Bufs 中与分配给该用户定义的输出的位置相对应的位置指定的缓冲区。用于分配给大于或等于 N 的位置的用户定义输出的绘制缓冲区将隐式设置为 ?GL_NONE,并且写入此类输出的任何数据都将被丢弃。

外部文档。

链接到此函数

drawElements(Mode, Count, Type, Indices)

查看源代码
-spec drawElements(Mode :: enum(), Count :: i(), Type :: enum(), Indices :: offset() | mem()) -> ok.

gl:drawElements/4 使用很少的子程序调用来指定多个几何图元。您可以预先指定顶点、法线等单独的数组,而不是调用 GL 函数来传递每个单独的顶点、法线、纹理坐标、边缘标志或颜色,并使用它们通过单次调用 gl:drawElements/4 来构造一系列图元。

外部文档。

链接到此函数

drawElementsBaseVertex(Mode, Count, Type, Indices, Basevertex)

查看源代码
-spec drawElementsBaseVertex(Mode, Count, Type, Indices, Basevertex) -> ok
                                when
                                    Mode :: enum(),
                                    Count :: i(),
                                    Type :: enum(),
                                    Indices :: offset() | mem(),
                                    Basevertex :: i().

gl:drawElementsBaseVertex/5 的行为与 gl:drawElements/4 完全相同,只是相应绘制调用传递的第 i 个元素将从每个启用数组的 Indices[i] + Basevertex 元素中获取。如果结果值大于 Type 可表示的最大值,则就像将计算转换为 32 位无符号整数一样(在溢出条件下进行包装)。如果总和为负数,则操作未定义。

外部文档。

链接到此函数

drawElementsIndirect(Mode, Type, Indirect)

查看源代码
-spec drawElementsIndirect(Mode :: enum(), Type :: enum(), Indirect :: offset() | mem()) -> ok.

gl:drawElementsIndirect/3 使用很少的子程序调用来指定多个索引几何图元。gl:drawElementsIndirect/3 的行为类似于 gl:drawElementsInstancedBaseVertexBaseInstance/7,只是 gl:drawElementsInstancedBaseVertexBaseInstance/7 的参数存储在 Indirect 给出的地址的内存中。

外部文档。

链接到此函数

drawElementsInstanced(Mode, Count, Type, Indices, Instancecount)

查看源代码
-spec drawElementsInstanced(Mode, Count, Type, Indices, Instancecount) -> ok
                               when
                                   Mode :: enum(),
                                   Count :: i(),
                                   Type :: enum(),
                                   Indices :: offset() | mem(),
                                   Instancecount :: i().

gl:drawElementsInstanced/5 的行为与 gl:drawElements/4 完全相同,只是执行 Instancecount 次元素集,并且内部计数器 InstanceID 在每次迭代时都会递增。InstanceID 是一个内部 32 位整数计数器,可以被顶点着色器读取为 ?gl_InstanceID

外部文档。

链接到此函数

drawElementsInstancedBaseInstance(Mode, Count, Type, Indices, Instancecount, Baseinstance)

查看源代码
-spec drawElementsInstancedBaseInstance(Mode, Count, Type, Indices, Instancecount, Baseinstance) -> ok
                                           when
                                               Mode :: enum(),
                                               Count :: i(),
                                               Type :: enum(),
                                               Indices :: offset() | mem(),
                                               Instancecount :: i(),
                                               Baseinstance :: i().

gl:drawElementsInstancedBaseInstance/6 的行为与 gl:drawElements/4 完全相同,只是执行 Instancecount 次元素集,并且内部计数器 InstanceID 在每次迭代时都会递增。InstanceID 是一个内部 32 位整数计数器,可以被顶点着色器读取为 ?gl_InstanceID

外部文档。

链接到此函数

drawElementsInstancedBaseVertex(Mode, Count, Type, Indices, Instancecount, Basevertex)

查看源代码
-spec drawElementsInstancedBaseVertex(Mode, Count, Type, Indices, Instancecount, Basevertex) -> ok
                                         when
                                             Mode :: enum(),
                                             Count :: i(),
                                             Type :: enum(),
                                             Indices :: offset() | mem(),
                                             Instancecount :: i(),
                                             Basevertex :: i().

gl:drawElementsInstancedBaseVertex/6 的行为与 gl:drawElementsInstanced/5 完全相同,只是相应绘制调用传递的第 i 个元素将从每个启用数组的 Indices[i] + Basevertex 元素中获取。如果结果值大于 Type 可表示的最大值,则就像将计算转换为 32 位无符号整数一样(在溢出条件下进行包装)。如果总和为负数,则操作未定义。

外部文档。

链接到此函数

drawElementsInstancedBaseVertexBaseInstance(Mode, Count, Type, Indices, Instancecount, Basevertex, Baseinstance)

查看源代码
-spec drawElementsInstancedBaseVertexBaseInstance(Mode, Count, Type, Indices, Instancecount, Basevertex,
                                                  Baseinstance) ->
                                                     ok
                                                     when
                                                         Mode :: enum(),
                                                         Count :: i(),
                                                         Type :: enum(),
                                                         Indices :: offset() | mem(),
                                                         Instancecount :: i(),
                                                         Basevertex :: i(),
                                                         Baseinstance :: i().

gl:drawElementsInstancedBaseVertexBaseInstance/7 的行为与 gl:drawElementsInstanced/5 完全相同,只是相应绘制调用传递的第 i 个元素将从每个启用数组的 Indices[i] + Basevertex 元素中获取。如果结果值大于 Type 可表示的最大值,则就像将计算转换为 32 位无符号整数一样(在溢出条件下进行包装)。如果总和为负数,则操作未定义。

外部文档。

链接到此函数

drawPixels(Width, Height, Format, Type, Pixels)

查看源代码
-spec drawPixels(Width :: i(),
                 Height :: i(),
                 Format :: enum(),
                 Type :: enum(),
                 Pixels :: offset() | mem()) ->
                    ok.

gl:drawPixels/5 从内存中读取像素数据,并将其写入帧缓冲区,写入位置相对于当前光栅位置,前提是该光栅位置有效。使用 gl:rasterPos()gl:windowPos() 设置当前光栅位置;使用 gl:get() 以及参数 ?GL_CURRENT_RASTER_POSITION_VALID 来确定指定的光栅位置是否有效,使用 gl:get() 以及参数 ?GL_CURRENT_RASTER_POSITION 来查询光栅位置。

外部文档。

链接到此函数

drawRangeElements(Mode, Start, End, Count, Type, Indices)

查看源代码
-spec drawRangeElements(Mode, Start, End, Count, Type, Indices) -> ok
                           when
                               Mode :: enum(),
                               Start :: i(),
                               End :: i(),
                               Count :: i(),
                               Type :: enum(),
                               Indices :: offset() | mem().

gl:drawRangeElements/6gl:drawElements/4 的受限形式。ModeCountgl:drawElements/4 的对应参数匹配,并附加限制,即数组 Count 中的所有值都必须介于 StartEnd 之间(包括 StartEnd)。

外部文档。

链接到此函数

drawRangeElementsBaseVertex(Mode, Start, End, Count, Type, Indices, Basevertex)

查看源代码
-spec drawRangeElementsBaseVertex(Mode, Start, End, Count, Type, Indices, Basevertex) -> ok
                                     when
                                         Mode :: enum(),
                                         Start :: i(),
                                         End :: i(),
                                         Count :: i(),
                                         Type :: enum(),
                                         Indices :: offset() | mem(),
                                         Basevertex :: i().

gl:drawRangeElementsBaseVertex/7gl:drawElementsBaseVertex/5 的受限形式。ModeCountBasevertexgl:drawElementsBaseVertex/5 的对应参数匹配,并附加限制,即数组 Indices 中的所有值在添加 Basevertex 之前都必须介于 StartEnd 之间(包括 StartEnd)。位于范围 [Start, End] 之外的索引值的处理方式与 gl:drawElementsBaseVertex/5 相同。对应的绘制调用传输的第 i 个元素将从每个启用的数组的 Indices[i] + Basevertex 元素中获取。如果结果值大于 Type 所能表示的最大值,则如同将计算结果转换为 32 位无符号整数(在溢出条件下进行环绕)。如果总和为负数,则操作未定义。

外部文档。

链接到此函数

drawTransformFeedback(Mode, Id)

查看源代码
-spec drawTransformFeedback(Mode :: enum(), Id :: i()) -> ok.

gl:drawTransformFeedback/2 使用从 Id 指定的变换反馈中检索的计数,绘制由 Mode 指定的类型的图元。调用 gl:drawTransformFeedback/2 等同于调用 gl:drawArrays/3,其中 Mode 按指定设置,First 设置为零,Count 设置为上次在 Id 指定的变换反馈对象上激活变换反馈时在顶点流零上捕获的顶点数。

外部文档。

链接到此函数

drawTransformFeedbackInstanced(Mode, Id, Instancecount)

查看源代码
-spec drawTransformFeedbackInstanced(Mode :: enum(), Id :: i(), Instancecount :: i()) -> ok.

gl:drawTransformFeedbackInstanced/3 使用从 Id 指定的变换反馈对象的 Stream 指定的变换反馈流中检索的计数,绘制多个由 Mode 指定的类型的图元副本。调用 gl:drawTransformFeedbackInstanced/3 等同于调用 gl:drawArraysInstanced/4,其中 ModeInstancecount 按指定设置,First 设置为零,Count 设置为上次在 Id 指定的变换反馈对象上激活变换反馈时在顶点流零上捕获的顶点数。

外部文档。

链接到此函数

drawTransformFeedbackStream(Mode, Id, Stream)

查看源代码
-spec drawTransformFeedbackStream(Mode :: enum(), Id :: i(), Stream :: i()) -> ok.

gl:drawTransformFeedbackStream/3 使用从 Id 指定的变换反馈对象的 Stream 指定的变换反馈流中检索的计数,绘制由 Mode 指定的类型的图元。调用 gl:drawTransformFeedbackStream/3 等同于调用 gl:drawArrays/3,其中 Mode 按指定设置,First 设置为零,Count 设置为上次在 Id 指定的变换反馈对象上激活变换反馈时在顶点流 Stream 上捕获的顶点数。

外部文档。

链接到此函数

drawTransformFeedbackStreamInstanced(Mode, Id, Stream, Instancecount)

查看源代码
-spec drawTransformFeedbackStreamInstanced(Mode :: enum(),
                                           Id :: i(),
                                           Stream :: i(),
                                           Instancecount :: i()) ->
                                              ok.

gl:drawTransformFeedbackStreamInstanced/4 使用从 Id 指定的变换反馈对象的 Stream 指定的变换反馈流中检索的计数,绘制多个由 Mode 指定的类型的图元副本。调用 gl:drawTransformFeedbackStreamInstanced/4 等同于调用 gl:drawArraysInstanced/4,其中 ModeInstancecount 按指定设置,First 设置为零,Count 设置为上次在 Id 指定的变换反馈对象上激活变换反馈时在顶点流 Stream 上捕获的顶点数。

外部文档。

-spec edgeFlag(Flag :: 0 | 1) -> ok.

等同于 edgeFlagv/1

链接到此函数

edgeFlagPointer(Stride, Ptr)

查看源代码
-spec edgeFlagPointer(Stride :: i(), Ptr :: offset() | mem()) -> ok.

gl:edgeFlagPointer/2 指定渲染时使用的布尔边标志数组的位置和数据格式。Stride 指定从一个边标志到下一个边标志的字节步幅,允许将顶点和属性打包到单个数组中或存储在单独的数组中。

外部文档。

-spec edgeFlagv({Flag :: 0 | 1}) -> ok.

gl:'begin'/1/gl:'end'/0 对之间指定的每个多边形、独立三角形或独立四边形的顶点都被标记为边界边或非边界边的起点。如果在指定顶点时当前边标志为真,则该顶点被标记为边界边的起点。否则,该顶点被标记为非边界边的起点。gl:edgeFlag/1 如果 Flag?GL_TRUE,则将边标志位设置为 ?GL_TRUE,否则设置为 ?GL_FALSE

外部文档。

-spec enable(Cap :: enum()) -> ok.

等同于 enablei/2

链接到此函数

enableClientState(Cap)

查看源代码
-spec enableClientState(Cap :: enum()) -> ok.

gl:enableClientState/1gl:disableClientState/1 启用或禁用单个客户端功能。默认情况下,所有客户端功能都处于禁用状态。gl:enableClientState/1gl:disableClientState/1 都接受单个参数 Cap,它可以采用以下值之一

外部文档。

链接到此函数

enablei(Target, Index)

查看源代码
-spec enablei(Target :: enum(), Index :: i()) -> ok.

gl:enable/1gl:disable/1 启用和禁用各种功能。使用 gl:isEnabled/1gl:get() 确定任何功能的当前设置。除了 ?GL_DITHER?GL_MULTISAMPLE 之外,每个功能的初始值均为 ?GL_FALSE?GL_DITHER?GL_MULTISAMPLE 的初始值为 ?GL_TRUE

外部文档。

链接到此函数

enableVertexArrayAttrib(Vaobj, Index)

查看源代码
-spec enableVertexArrayAttrib(Vaobj :: i(), Index :: i()) -> ok.

等同于 enableVertexAttribArray/1

链接到此函数

enableVertexAttribArray(Index)

查看源代码
-spec enableVertexAttribArray(Index :: i()) -> ok.

gl:enableVertexAttribArray/1gl:enableVertexArrayAttrib/2 启用由 Index 指定的通用顶点属性数组。gl:enableVertexAttribArray/1 使用当前绑定的顶点数组对象进行操作,而 gl:enableVertexArrayAttrib/2 更新 ID 为 Vaobj 的顶点数组对象的状态。

外部文档。

-spec 'end'() -> ok.

gl:'begin'/1gl:'end'/0 界定定义图元或一组类似图元的顶点。gl:'begin'/1 接受一个参数,用于指定以十种方式中的哪一种方式解释顶点。将 n 作为从 1 开始的整数计数,N 作为指定的顶点总数,解释如下

外部文档。

链接到此函数

endConditionalRender()

查看源代码
-spec endConditionalRender() -> ok.

条件渲染使用 gl:beginConditionalRender/2 启动,并使用 gl:endConditionalRender/0 结束。在条件渲染期间,如果查询对象 Id 的 (?GL_SAMPLES_PASSED) 结果为零,或者 (?GL_ANY_SAMPLES_PASSED) 结果为 ?GL_FALSE,则所有顶点数组命令,以及 gl:clear/1gl:clearBuffer() 均无效。设置当前顶点状态的命令(如 gl:vertexAttrib())的结果未定义。如果 (?GL_SAMPLES_PASSED) 结果为非零,或者 (?GL_ANY_SAMPLES_PASSED) 结果为 ?GL_TRUE,则不会丢弃此类命令。gl:beginConditionalRender/2Id 参数必须是从之前调用 gl:genQueries/1 返回的查询对象的名称。Mode 指定如何解释查询对象的结果。如果 Mode?GL_QUERY_WAIT,则 GL 会等待查询结果可用,然后使用结果来确定是否丢弃后续的渲染命令。如果 Mode?GL_QUERY_NO_WAIT,则 GL 可以选择无条件执行后续渲染命令,而无需等待查询完成。

外部文档。

-spec endList() -> ok.

等同于 newList/2

-spec endQuery(Target :: enum()) -> ok.

gl:beginQuery/2gl:endQuery/1 划定了查询对象的边界。Query 必须是先前调用 gl:genQueries/1 返回的名称。如果名为 Id 的查询对象尚不存在,则会根据 Target 确定的类型创建它。Target 必须是 ?GL_SAMPLES_PASSED?GL_ANY_SAMPLES_PASSED?GL_PRIMITIVES_GENERATED?GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN?GL_TIME_ELAPSED 之一。查询对象的行为取决于其类型,如下所示。

外部文档。

链接到此函数

endQueryIndexed(Target, Index)

查看源代码
-spec endQueryIndexed(Target :: enum(), Index :: i()) -> ok.

gl:beginQueryIndexed/3gl:endQueryIndexed/2 划定了查询对象的边界。Query 必须是先前调用 gl:genQueries/1 返回的名称。如果名为 Id 的查询对象尚不存在,则会根据 Target 确定的类型创建它。Target 必须是 ?GL_SAMPLES_PASSED?GL_ANY_SAMPLES_PASSED?GL_PRIMITIVES_GENERATED?GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN?GL_TIME_ELAPSED 之一。查询对象的行为取决于其类型,如下所示。

外部文档。

链接到此函数

endTransformFeedback()

查看源代码
-spec endTransformFeedback() -> ok.

变换反馈模式捕获顶点着色器(如果激活,则捕获几何着色器)写入的可变变量的值。变换反馈在调用 gl:beginTransformFeedback/1 之后被认为是激活状态,直到随后调用 gl:endTransformFeedback/0 为止。变换反馈命令必须成对出现。

外部文档。

-spec evalCoord1d(U :: f()) -> ok.

等效于 evalCoord2fv/1

-spec evalCoord1dv({U :: f()}) -> ok.

等效于 evalCoord2fv/1

-spec evalCoord1f(U :: f()) -> ok.

等效于 evalCoord2fv/1

-spec evalCoord1fv({U :: f()}) -> ok.

等效于 evalCoord2fv/1

-spec evalCoord2d(U :: f(), V :: f()) -> ok.

等效于 evalCoord2fv/1

-spec evalCoord2dv({U :: f(), V :: f()}) -> ok.

等效于 evalCoord2fv/1

-spec evalCoord2f(U :: f(), V :: f()) -> ok.

等效于 evalCoord2fv/1

-spec evalCoord2fv({U :: f(), V :: f()}) -> ok.

gl:evalCoord1() 在参数 U 处评估启用的一维映射。gl:evalCoord2() 对二维映射执行相同的操作,使用两个域值 UV。要定义映射,请调用 glMap1glMap2;要启用和禁用它,请调用 gl:enable/1gl:disable/1

外部文档。

链接到此函数

evalMesh1(Mode, I1, I2)

查看源代码
-spec evalMesh1(Mode :: enum(), I1 :: i(), I2 :: i()) -> ok.

等效于 evalMesh2/5

链接到此函数

evalMesh2(Mode, I1, I2, J1, J2)

查看源代码
-spec evalMesh2(Mode :: enum(), I1 :: i(), I2 :: i(), J1 :: i(), J2 :: i()) -> ok.

gl:mapGrid()gl:evalMesh() 配合使用,以高效地生成和评估一系列均匀间隔的映射域值。gl:evalMesh() 逐步遍历一维或二维网格的整数域,其范围是由 glMap1glMap2 指定的评估映射的域。Mode 确定结果顶点是连接为点、线还是填充多边形。

外部文档。

-spec evalPoint1(I :: i()) -> ok.

等效于 evalPoint2/2

-spec evalPoint2(I :: i(), J :: i()) -> ok.

gl:mapGrid()gl:evalMesh() 配合使用,以高效地生成和评估一系列均匀间隔的映射域值。gl:evalPoint() 可用于评估与 gl:evalMesh() 遍历的相同网格空间中的单个网格点。调用 gl:evalPoint1/1 等效于调用 glEvalCoord1( i.ð u+u 1 ); 其中 ð u=(u 2-u 1)/n

外部文档。

链接到此函数

feedbackBuffer(Size, Type, Buffer)

查看源代码
-spec feedbackBuffer(Size :: i(), Type :: enum(), Buffer :: mem()) -> ok.

gl:feedbackBuffer/3 函数控制反馈。与选择一样,反馈也是一种 GL 模式。通过使用 ?GL_FEEDBACK 调用 gl:renderMode/1 来选择该模式。当 GL 处于反馈模式时,光栅化不会生成任何像素。相反,有关本来会被光栅化的图元的信息会使用 GL 反馈给应用程序。

外部文档。

链接到此函数

fenceSync(Condition, Flags)

查看源代码
-spec fenceSync(Condition :: enum(), Flags :: i()) -> i().

gl:fenceSync/2 创建一个新的栅栏同步对象,将栅栏命令插入到 GL 命令流中,并将其与该同步对象关联,并返回与该同步对象对应的非零名称。

外部文档。

-spec finish() -> ok.

gl:finish/0 在所有先前调用的 GL 命令的效果完成之前不会返回。这些效果包括对 GL 状态的所有更改、对连接状态的所有更改以及对帧缓冲区内容的所有更改。

外部文档。

-spec flush() -> ok.

不同的 GL 实现将命令缓冲在多个不同的位置,包括网络缓冲区和图形加速器本身。gl:flush/0 清空所有这些缓冲区,使所有发出的命令在被实际渲染引擎接受后尽快执行。尽管此执行可能不会在任何特定时间段内完成,但它会在有限的时间内完成。

外部文档。

链接到此函数

flushMappedBufferRange(Target, Offset, Length)

查看源代码
-spec flushMappedBufferRange(Target :: enum(), Offset :: i(), Length :: i()) -> ok.

等效于 flushMappedNamedBufferRange/3

链接到此函数

flushMappedNamedBufferRange(Buffer, Offset, Length)

查看源代码
-spec flushMappedNamedBufferRange(Buffer :: i(), Offset :: i(), Length :: i()) -> ok.

gl:flushMappedBufferRange/3 指示已对映射缓冲区对象的范围进行了修改。缓冲区对象必须先前已使用 ?GL_MAP_FLUSH_EXPLICIT_BIT 标志进行映射。

外部文档。

-spec fogCoordd(Coord :: f()) -> ok.

等效于 fogCoordfv/1

-spec fogCoorddv({Coord :: f()}) -> ok.

等效于 fogCoordfv/1

-spec fogCoordf(Coord :: f()) -> ok.

等效于 fogCoordfv/1

-spec fogCoordfv({Coord :: f()}) -> ok.

gl:fogCoord() 指定与每个顶点和当前光栅位置关联的雾坐标。指定的值将被插值并用于计算雾颜色(请参见 gl:fog())。

外部文档。

链接到此函数

fogCoordPointer(Type, Stride, Pointer)

查看源代码
-spec fogCoordPointer(Type :: enum(), Stride :: i(), Pointer :: offset() | mem()) -> ok.

gl:fogCoordPointer/3 指定渲染时要使用的雾坐标数组的位置和数据格式。Type 指定每个雾坐标的数据类型,Stride 指定从一个雾坐标到下一个雾坐标的字节跨度,允许将顶点和属性打包到单个数组中或存储在单独的数组中。

外部文档。

-spec fogf(Pname :: enum(), Param :: f()) -> ok.

等效于 fogiv/2

-spec fogfv(Pname :: enum(), Params :: tuple()) -> ok.

等效于 fogiv/2

-spec fogi(Pname :: enum(), Param :: i()) -> ok.

等效于 fogiv/2

-spec fogiv(Pname :: enum(), Params :: tuple()) -> ok.

雾最初处于禁用状态。启用后,雾会影响光栅化的几何图形、位图和像素块,但不影响缓冲区清除操作。要启用和禁用雾,请使用参数 ?GL_FOG 调用 gl:enable/1gl:disable/1

外部文档。

链接到此函数

framebufferParameteri(Target, Pname, Param)

查看源代码
-spec framebufferParameteri(Target :: enum(), Pname :: enum(), Param :: i()) -> ok.

gl:framebufferParameteri/3glNamedFramebufferParameteri 修改指定帧缓冲区对象中名为 Pname 的参数的值。默认绘制和读取帧缓冲区没有可修改的参数,因此它们不是这些命令的有效目标。

外部文档。

链接到此函数

framebufferRenderbuffer(Target, Attachment, Renderbuffertarget, Renderbuffer)

查看源代码
-spec framebufferRenderbuffer(Target, Attachment, Renderbuffertarget, Renderbuffer) -> ok
                                 when
                                     Target :: enum(),
                                     Attachment :: enum(),
                                     Renderbuffertarget :: enum(),
                                     Renderbuffer :: i().

gl:framebufferRenderbuffer/4glNamedFramebufferRenderbuffer 将渲染缓冲区作为指定帧缓冲区对象的逻辑缓冲区之一进行附加。渲染缓冲区无法附加到默认绘制和读取帧缓冲区,因此它们不是这些命令的有效目标。

外部文档。

链接到此函数

framebufferTexture1D(Target, Attachment, Textarget, Texture, Level)

查看源代码
-spec framebufferTexture1D(Target :: enum(),
                           Attachment :: enum(),
                           Textarget :: enum(),
                           Texture :: i(),
                           Level :: i()) ->
                              ok.

等效于 framebufferTextureLayer/5

链接到此函数

framebufferTexture2D(Target, Attachment, Textarget, Texture, Level)

查看源代码
-spec framebufferTexture2D(Target :: enum(),
                           Attachment :: enum(),
                           Textarget :: enum(),
                           Texture :: i(),
                           Level :: i()) ->
                              ok.

等效于 framebufferTextureLayer/5

链接到此函数

framebufferTexture3D(Target, Attachment, Textarget, Texture, Level, Zoffset)

查看源代码
-spec framebufferTexture3D(Target, Attachment, Textarget, Texture, Level, Zoffset) -> ok
                              when
                                  Target :: enum(),
                                  Attachment :: enum(),
                                  Textarget :: enum(),
                                  Texture :: i(),
                                  Level :: i(),
                                  Zoffset :: i().

等效于 framebufferTextureLayer/5

链接到此函数

framebufferTexture(Target, Attachment, Texture, Level)

查看源代码
-spec framebufferTexture(Target :: enum(), Attachment :: enum(), Texture :: i(), Level :: i()) -> ok.

等效于 framebufferTextureLayer/5

链接到此函数

framebufferTextureFaceARB(Target, Attachment, Texture, Level, Face)

查看源代码
-spec framebufferTextureFaceARB(Target :: enum(),
                                Attachment :: enum(),
                                Texture :: i(),
                                Level :: i(),
                                Face :: enum()) ->
                                   ok.

等效于 framebufferTextureLayer/5

链接到此函数

framebufferTextureLayer(Target, Attachment, Texture, Level, Layer)

查看源代码
-spec framebufferTextureLayer(Target :: enum(),
                              Attachment :: enum(),
                              Texture :: i(),
                              Level :: i(),
                              Layer :: i()) ->
                                 ok.

这些命令将选定的 mipmap 级别或纹理对象的图像作为指定帧缓冲区对象的逻辑缓冲区之一进行附加。纹理无法附加到默认绘制和读取帧缓冲区,因此它们不是这些命令的有效目标。

外部文档。

-spec frontFace(Mode :: enum()) -> ok.

在完全由不透明闭合表面组成的场景中,背面多边形永远不可见。消除这些不可见的多边形具有加速图像渲染的明显好处。要启用和禁用消除背面多边形,请使用参数 ?GL_CULL_FACE 调用 gl:enable/1gl:disable/1

外部文档。

链接到此函数

frustum(Left, Right, Bottom, Top, Near_val, Far_val)

查看源代码
-spec frustum(Left :: f(), Right :: f(), Bottom :: f(), Top :: f(), Near_val :: f(), Far_val :: f()) ->
                 ok.

gl:frustum/6 描述一个产生透视投影的透视矩阵。当前矩阵(请参见 gl:matrixMode/1)乘以该矩阵,结果将替换当前矩阵,就像调用 gl:multMatrix() 并将以下矩阵作为其参数一样

外部文档。

-spec genBuffers(N :: i()) -> [i()].

gl:genBuffers/1Buffers 中返回 N 个缓冲区对象名称。不能保证这些名称构成一组连续的整数;但是,可以保证在调用 gl:genBuffers/1 之前,返回的名称均未使用。

外部文档。

链接到此函数

generateMipmap(Target)

查看源代码
-spec generateMipmap(Target :: enum()) -> ok.

等效于 generateTextureMipmap/1

链接到此函数

generateTextureMipmap(Texture)

查看源代码
-spec generateTextureMipmap(Texture :: i()) -> ok.

gl:generateMipmap/1gl:generateTextureMipmap/1 为指定的纹理对象生成 mipmap。对于 gl:generateMipmap/1,纹理对象绑定到 Target。对于 gl:generateTextureMipmap/1Texture 是纹理对象的名称。

外部文档。

-spec genFramebuffers(N :: i()) -> [i()].

gl:genFramebuffers/1Ids 中返回 N 个帧缓冲区对象名称。不能保证这些名称构成一组连续的整数;但是,可以保证在调用 gl:genFramebuffers/1 之前,返回的名称均未使用。

外部文档。

-spec genLists(Range :: i()) -> i().

gl:genLists/1 有一个参数 Range。它返回一个整数 n,使得创建了 Range 个连续的空显示列表,命名为 n、n+1、...、n+range-1。如果 Range 为 0,如果不存在 Range 个连续的可用名称的组,或者如果生成任何错误,则不会生成显示列表,并且返回 0。

外部文档。

链接到此函数

genProgramPipelines(N)

查看源代码
-spec genProgramPipelines(N :: i()) -> [i()].

gl:genProgramPipelines/1Pipelines 中返回 N 个先前未使用的程序管道对象名称。这些名称被标记为已使用,仅用于 gl:genProgramPipelines/1,但只有在首次绑定时才会获取程序管道状态。

外部文档。

-spec genQueries(N :: i()) -> [i()].

gl:genQueries/1Ids 中返回 N 个查询对象名称。不能保证这些名称构成一组连续的整数;但是,可以保证在调用 gl:genQueries/1 之前,返回的名称均未使用。

外部文档。

-spec genRenderbuffers(N :: i()) -> [i()].

gl:genRenderbuffers/1Renderbuffers 中返回 N 个渲染缓冲区对象名称。不能保证这些名称构成一组连续的整数;但是,可以保证在调用 gl:genRenderbuffers/1 之前,返回的名称均未使用。

外部文档。

-spec genSamplers(Count :: i()) -> [i()].

gl:genSamplers/1Samplers 中返回 N 个采样器对象名称。不能保证这些名称形成一个连续的整数集合;但是,可以保证在调用 gl:genSamplers/1 之前,返回的名称都没有被使用。

外部文档。

-spec genTextures(N :: i()) -> [i()].

gl:genTextures/1Textures 中返回 N 个纹理名称。不能保证这些名称形成一个连续的整数集合;但是,可以保证在调用 gl:genTextures/1 之前,返回的名称都没有被使用。

外部文档。

链接到此函数

genTransformFeedbacks(N)

查看源代码
-spec genTransformFeedbacks(N :: i()) -> [i()].

gl:genTransformFeedbacks/1Ids 中返回 N 个先前未使用的变换反馈对象名称。这些名称被标记为已使用,仅用于 gl:genTransformFeedbacks/1,但它们仅在首次绑定时才获得变换反馈状态。

外部文档。

-spec genVertexArrays(N :: i()) -> [i()].

gl:genVertexArrays/1Arrays 中返回 N 个顶点数组对象名称。不能保证这些名称形成一个连续的整数集合;但是,可以保证在调用 gl:genVertexArrays/1 之前,返回的名称都没有被使用。

外部文档。

链接到此函数

getActiveAttrib(Program, Index, BufSize)

查看源代码
-spec getActiveAttrib(Program :: i(), Index :: i(), BufSize :: i()) ->
                         {Size :: i(), Type :: enum(), Name :: string()}.

gl:getActiveAttrib/3 返回由 Program 指定的程序对象中活动属性变量的信息。可以通过使用值 ?GL_ACTIVE_ATTRIBUTES 调用 gl:getProgram() 来获取活动属性的数量。 Index 的值为 0 选择第一个活动属性变量。 Index 的允许值范围从 0 到活动属性变量的数量减 1。

外部文档。

链接到此函数

getActiveSubroutineName(Program, Shadertype, Index, Bufsize)

查看源代码
-spec getActiveSubroutineName(Program :: i(), Shadertype :: enum(), Index :: i(), Bufsize :: i()) ->
                                 string().

gl:getActiveSubroutineName/4 查询在 Program 中给出的程序对象中的活动着色器子例程统一变量的名称。Index 指定由 Stage 给出的着色器阶段内的着色器子例程统一变量的索引,并且必须介于零和着色器阶段的 ?GL_ACTIVE_SUBROUTINES 的值减 1 之间。

外部文档。

链接到此函数

getActiveSubroutineUniformName(Program, Shadertype, Index, Bufsize)

查看源代码
-spec getActiveSubroutineUniformName(Program :: i(), Shadertype :: enum(), Index :: i(), Bufsize :: i()) ->
                                        string().

gl:getActiveSubroutineUniformName/4 检索活动着色器子例程统一变量的名称。Program 包含包含统一变量的程序的名称。Shadertype 指定统一变量位置有效的阶段,由 Index 给出。Index 必须介于零和着色器阶段的 ?GL_ACTIVE_SUBROUTINE_UNIFORMS 的值减 1 之间。

外部文档。

链接到此函数

getActiveUniform(Program, Index, BufSize)

查看源代码
-spec getActiveUniform(Program :: i(), Index :: i(), BufSize :: i()) ->
                          {Size :: i(), Type :: enum(), Name :: string()}.

gl:getActiveUniform/3 返回由 Program 指定的程序对象中活动统一变量的信息。可以通过使用值 ?GL_ACTIVE_UNIFORMS 调用 gl:getProgram() 来获取活动统一变量的数量。 Index 的值为 0 选择第一个活动统一变量。Index 的允许值范围从 0 到活动统一变量的数量减 1。

外部文档。

链接到此函数

getActiveUniformBlockiv(Program, UniformBlockIndex, Pname, Params)

查看源代码
-spec getActiveUniformBlockiv(Program :: i(),
                              UniformBlockIndex :: i(),
                              Pname :: enum(),
                              Params :: mem()) ->
                                 ok.

gl:getActiveUniformBlockiv/4 检索有关 Program 中活动统一变量块的信息。

外部文档。

链接到此函数

getActiveUniformBlockName(Program, UniformBlockIndex, BufSize)

查看源代码
-spec getActiveUniformBlockName(Program :: i(), UniformBlockIndex :: i(), BufSize :: i()) -> string().

gl:getActiveUniformBlockName/3 检索 ProgramUniformBlockIndex 处的活动统一变量块的名称。

外部文档。

链接到此函数

getActiveUniformName(Program, UniformIndex, BufSize)

查看源代码
-spec getActiveUniformName(Program :: i(), UniformIndex :: i(), BufSize :: i()) -> string().

gl:getActiveUniformName/3 返回 ProgramUniformIndex 处的活动统一变量的名称。如果 UniformName 不为 NULL,则最多将 BufSize 个字符(包括一个空终止符)写入地址由 UniformName 指定的数组中。如果 Length 不为 NULL,则写入 UniformName 的字符数(不包括空终止符)将放置在地址在 Length 中指定的变量中。如果 Length 为 NULL,则不返回长度。Program 中最长统一变量名称的长度由 ?GL_ACTIVE_UNIFORM_MAX_LENGTH 的值给出,可以使用 gl:getProgram() 进行查询。

外部文档。

链接到此函数

getActiveUniformsiv(Program, UniformIndices, Pname)

查看源代码
-spec getActiveUniformsiv(Program :: i(), UniformIndices :: [i()], Pname :: enum()) -> [i()].

gl:getActiveUniformsiv/3 查询在 Program 中,其索引在 UniformIndicesUniformCount 无符号整数数组中指定的每个统一变量的名为 Pname 的参数的值。成功后,每个统一变量的参数值将写入地址在 Params 中给出的数组中的相应条目。如果生成错误,则不会将任何内容写入 Params

外部文档。

链接到此函数

getAttachedShaders(Program, MaxCount)

查看源代码
-spec getAttachedShaders(Program :: i(), MaxCount :: i()) -> [i()].

gl:getAttachedShaders/2 返回附加到 Program 的着色器对象的名称。附加到 Program 的着色器对象的名称将在 Shaders 中返回。写入 Shaders 中的着色器名称的实际数量在 Count 中返回。如果没有任何着色器对象附加到 Program,则 Count 设置为 0。 Shaders 中可能返回的最大着色器名称数量由 MaxCount 指定。

外部文档。

链接到此函数

getAttribLocation(Program, Name)

查看源代码
-spec getAttribLocation(Program :: i(), Name :: string()) -> i().

gl:getAttribLocation/2 查询由 Program 指定的先前链接的程序对象中由 Name 指定的属性变量,并返回绑定到该属性变量的通用顶点属性的索引。如果 Name 是矩阵属性变量,则返回矩阵第一列的索引。如果命名的属性变量不是指定程序对象中的活动属性,或者如果 Name 以保留前缀“gl_”开头,则返回 -1 的值。

外部文档。

链接到此函数

getBooleani_v(Target, Index)

查看源代码
-spec getBooleani_v(Target :: enum(), Index :: i()) -> [0 | 1].

等效于 getIntegerv/1

-spec getBooleanv(Pname :: enum()) -> [0 | 1].

等效于 getIntegerv/1

链接到此函数

getBufferParameteri64v(Target, Pname)

查看源代码
-spec getBufferParameteri64v(Target :: enum(), Pname :: enum()) -> [i()].

等效于 getBufferParameterivARB/2

链接到此函数

getBufferParameteriv(Target, Pname)

查看源代码
-spec getBufferParameteriv(Target :: enum(), Pname :: enum()) -> i().

gl:getBufferParameteriv/2Data 中返回由 Target 指定的缓冲区对象的选定参数。

外部文档。

链接到此函数

getBufferParameterivARB(Target, Pname)

查看源代码
-spec getBufferParameterivARB(Target :: enum(), Pname :: enum()) -> [i()].

这些函数在 Data 中返回指定缓冲区对象的选定参数。

外部文档。

链接到此函数

getBufferSubData(Target, Offset, Size, Data)

查看源代码
-spec getBufferSubData(Target :: enum(), Offset :: i(), Size :: i(), Data :: mem()) -> ok.

gl:getBufferSubData/4glGetNamedBufferSubData 返回指定缓冲区对象的数据存储的全部或部分数据内容。从缓冲区对象的数据存储中将起始于字节偏移量 Offset 并扩展 Size 字节的数据复制到 Data 指向的内存中。如果缓冲区对象当前已映射,或者如果 OffsetSize 一起定义超出缓冲区对象数据存储范围的范围,则会抛出错误。

外部文档。

-spec getClipPlane(Plane :: enum()) -> {f(), f(), f(), f()}.

gl:getClipPlane/1Equation 中返回 Plane 的平面方程的四个系数。

外部文档。

链接到此函数

getColorTable(Target, Format, Type, Table)

查看源代码
-spec getColorTable(Target :: enum(), Format :: enum(), Type :: enum(), Table :: mem()) -> ok.

gl:getColorTable/4Table 中返回由 Target 指定的颜色表的内容。不执行像素传输操作,但执行适用于 gl:readPixels/7 的像素存储模式。

外部文档。

链接到此函数

getColorTableParameterfv(Target, Pname)

查看源代码
-spec getColorTableParameterfv(Target :: enum(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getColorTableParameteriv/2

链接到此函数

getColorTableParameteriv(Target, Pname)

查看源代码
-spec getColorTableParameteriv(Target :: enum(), Pname :: enum()) -> {i(), i(), i(), i()}.

返回特定于颜色表 Target 的参数。

外部文档。

链接到此函数

getCompressedTexImage(Target, Lod, Img)

查看源代码
-spec getCompressedTexImage(Target :: enum(), Lod :: i(), Img :: mem()) -> ok.

gl:getCompressedTexImage/3glGetnCompressedTexImage 将与 TargetLod 关联的压缩纹理图像返回到 Pixels 中。glGetCompressedTextureImage 的作用相同,但它不是采用纹理目标,而是采用纹理对象的 ID。Pixels 对于 glGetnCompresedTexImageglGetCompressedTextureImage 函数应为 BufSize 字节的数组,对于 gl:getCompressedTexImage/3 应为 ?GL_TEXTURE_COMPRESSED_IMAGE_SIZE 字节。如果实际数据占用的空间小于 BufSize,则不会触及剩余字节。 Target 指定纹理目标,该函数应从中提取数据的纹理绑定到该目标。Lod 指定所需图像的详细程度编号。

外部文档。

链接到此函数

getConvolutionFilter(Target, Format, Type, Image)

查看源代码
-spec getConvolutionFilter(Target :: enum(), Format :: enum(), Type :: enum(), Image :: mem()) -> ok.

gl:getConvolutionFilter/4 返回当前 1D 或 2D 卷积滤波器内核作为图像。根据 FormatType 中的规范,将一维或二维图像放置在 Image 中。不在此图像上执行像素传输操作,但会应用相关的像素存储模式。

外部文档。

链接到此函数

getConvolutionParameterfv(Target, Pname)

查看源代码
-spec getConvolutionParameterfv(Target :: enum(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getConvolutionParameteriv/2

链接到此函数

getConvolutionParameteriv(Target, Pname)

查看源代码
-spec getConvolutionParameteriv(Target :: enum(), Pname :: enum()) -> {i(), i(), i(), i()}.

gl:getConvolutionParameter() 检索卷积参数。Target 确定查询哪个卷积滤波器。Pname 确定返回哪个参数

外部文档。

链接到此函数

getDebugMessageLog(Count, BufSize)

查看源代码
-spec getDebugMessageLog(Count :: i(), BufSize :: i()) ->
                            {i(),
                             Sources :: [enum()],
                             Types :: [enum()],
                             Ids :: [i()],
                             Severities :: [enum()],
                             MessageLog :: [string()]}.

gl:getDebugMessageLog/2 从调试消息日志中检索消息。从日志中检索最多 Count 条消息。如果 Sources 不为 NULL,则将每条消息的来源写入数组的最多 Count 个元素中。如果 Types 不为 NULL,则将每条消息的类型写入数组的最多 Count 个元素中。如果 Id 不为 NULL,则将每条消息的标识符写入数组的最多 Count 个元素中。如果 Severities 不为 NULL,则将每条消息的严重性写入数组的最多 Count 个元素中。如果 Lengths 不为 NULL,则将每条消息的长度写入数组的最多 Count 个元素中。

外部文档。

链接到此函数

getDoublei_v(Target, Index)

查看源代码
-spec getDoublei_v(Target :: enum(), Index :: i()) -> [f()].

等效于 getIntegerv/1

-spec getDoublev(Pname :: enum()) -> [f()].

等效于 getIntegerv/1

-spec getError() -> enum().

gl:getError/0 返回错误标志的值。每个可检测到的错误都被分配一个数字代码和符号名称。当发生错误时,错误标志会被设置为相应的错误代码值。在调用 gl:getError/0 之前,不会记录其他错误,该错误代码将被返回,并且标志将被重置为 ?GL_NO_ERROR。如果调用 gl:getError/0 返回 ?GL_NO_ERROR,则表示自上次调用 gl:getError/0 或自 GL 初始化以来,没有发生可检测到的错误。

外部文档。

链接到此函数

getFloati_v(Target, Index)

查看源代码
-spec getFloati_v(Target :: enum(), Index :: i()) -> [f()].

等效于 getIntegerv/1

-spec getFloatv(Pname :: enum()) -> [f()].

等效于 getIntegerv/1

链接到此函数

getFragDataIndex(Program, Name)

查看源代码
-spec getFragDataIndex(Program :: i(), Name :: string()) -> i().

gl:getFragDataIndex/2 返回当程序对象 Program 最后一次链接时,变量 Name 被绑定到的片段颜色的索引。如果 Name 不是 Program 的 varying out 变量,或者发生错误,将返回 -1。

外部文档。

链接到此函数

getFragDataLocation(Program, Name)

查看源代码
-spec getFragDataLocation(Program :: i(), Name :: string()) -> i().

gl:getFragDataLocation/2 检索程序 Program 的用户定义 varying out 变量 Name 的指定颜色编号绑定。Program 必须先前已链接。Name 必须是以 null 结尾的字符串。如果 Name 不是 Program 中活跃的用户定义 varying out 片段着色器变量的名称,将返回 -1。

外部文档。

链接到此函数

getFramebufferAttachmentParameteriv(Target, Attachment, Pname)

查看源代码
-spec getFramebufferAttachmentParameteriv(Target :: enum(), Attachment :: enum(), Pname :: enum()) ->
                                             i().

gl:getFramebufferAttachmentParameteriv/3glGetNamedFramebufferAttachmentParameteriv 返回指定帧缓冲对象附件的参数。

外部文档。

链接到此函数

getFramebufferParameteriv(Target, Pname)

查看源代码
-spec getFramebufferParameteriv(Target :: enum(), Pname :: enum()) -> i().

gl:getFramebufferParameteriv/2glGetNamedFramebufferParameteriv 查询指定帧缓冲对象的参数。

外部文档。

链接到此函数

getGraphicsResetStatus()

查看源代码
-spec getGraphicsResetStatus() -> enum().

某些事件可能导致 GL 上下文重置。这种重置会导致所有上下文状态丢失,并要求应用程序在受影响的上下文中重新创建所有对象。

外部文档。

链接到此函数

getHistogram(Target, Reset, Format, Type, Values)

查看源代码
-spec getHistogram(Target :: enum(), Reset :: 0 | 1, Format :: enum(), Type :: enum(), Values :: mem()) ->
                      ok.

gl:getHistogram/5 返回当前直方图表,作为一个一维图像,其宽度与直方图相同。此图像不执行像素传输操作,但适用于 1D 图像的像素存储模式将受到尊重。

外部文档。

链接到此函数

getHistogramParameterfv(Target, Pname)

查看源代码
-spec getHistogramParameterfv(Target :: enum(), Pname :: enum()) -> {f()}.

等效于 getHistogramParameteriv/2

链接到此函数

getHistogramParameteriv(Target, Pname)

查看源代码
-spec getHistogramParameteriv(Target :: enum(), Pname :: enum()) -> {i()}.

gl:getHistogramParameter() 用于查询当前直方图或代理的参数值。可以通过使用 Target?GL_HISTOGRAM(获取当前直方图表的信息)或 ?GL_PROXY_HISTOGRAM(获取最近代理请求的信息)以及 Pname 参数的以下值之一调用 gl:getHistogramParameter() 来查询直方图状态信息。

外部文档。

链接到此函数

getInteger64i_v(Target, Index)

查看源代码
-spec getInteger64i_v(Target :: enum(), Index :: i()) -> [i()].

等效于 getIntegerv/1

-spec getInteger64v(Pname :: enum()) -> [i()].

等效于 getIntegerv/1

链接到此函数

getIntegeri_v(Target, Index)

查看源代码
-spec getIntegeri_v(Target :: enum(), Index :: i()) -> [i()].

等效于 getIntegerv/1

-spec getIntegerv(Pname :: enum()) -> [i()].

这些命令返回 GL 中简单状态变量的值。Pname 是一个符号常量,指示要返回的状态变量,而 Data 是一个指向要放置返回数据的指定类型的数组的指针。

外部文档。

链接到此函数

getInternalformati64v(Target, Internalformat, Pname, BufSize)

查看源代码
-spec getInternalformati64v(Target :: enum(), Internalformat :: enum(), Pname :: enum(), BufSize :: i()) ->
                               [i()].

等效于 getInternalformativ/4

链接到此函数

getInternalformativ(Target, Internalformat, Pname, BufSize)

查看源代码
-spec getInternalformativ(Target :: enum(), Internalformat :: enum(), Pname :: enum(), BufSize :: i()) ->
                             [i()].

无可用文档。

链接到此函数

getLightfv(Light, Pname)

查看源代码
-spec getLightfv(Light :: enum(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getLightiv/2

链接到此函数

getLightiv(Light, Pname)

查看源代码
-spec getLightiv(Light :: enum(), Pname :: enum()) -> {i(), i(), i(), i()}.

gl:getLight()Params 中返回光源参数的值。 Light 命名光源,并且是 ?GL_LIGHT i 形式的符号名称,其中 i 的范围从 0 到 ?GL_MAX_LIGHTS - 1。?GL_MAX_LIGHTS 是一个实现相关的常量,大于或等于 8。Pname 通过符号名称指定十个光源参数之一。

外部文档。

链接到此函数

getMapdv(Target, Query, V)

查看源代码
-spec getMapdv(Target :: enum(), Query :: enum(), V :: mem()) -> ok.

等效于 getMapiv/3

链接到此函数

getMapfv(Target, Query, V)

查看源代码
-spec getMapfv(Target :: enum(), Query :: enum(), V :: mem()) -> ok.

等效于 getMapiv/3

链接到此函数

getMapiv(Target, Query, V)

查看源代码
-spec getMapiv(Target :: enum(), Query :: enum(), V :: mem()) -> ok.

glMap1glMap2 定义评估器。 gl:getMap() 返回评估器参数。 Target 选择一个映射, Query 选择一个特定的参数,并且 V 指向将要返回值的存储位置。

外部文档。

链接到此函数

getMaterialfv(Face, Pname)

查看源代码
-spec getMaterialfv(Face :: enum(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getMaterialiv/2

链接到此函数

getMaterialiv(Face, Pname)

查看源代码
-spec getMaterialiv(Face :: enum(), Pname :: enum()) -> {i(), i(), i(), i()}.

gl:getMaterial()Params 中返回材质 Face 的参数 Pname 的值。定义了六个参数

外部文档。

链接到此函数

getMinmax(Target, Reset, Format, Types, Values)

查看源代码
-spec getMinmax(Target :: enum(), Reset :: 0 | 1, Format :: enum(), Types :: enum(), Values :: mem()) ->
                   ok.

gl:getMinmax/5 返回累积的最小和最大像素值(基于每个组件计算),在一个宽度为 2 的一维图像中。第一组返回值是最小值,第二组返回值是最大值。返回值的格式由 Format 确定,其类型由 Types 确定。

外部文档。

链接到此函数

getMinmaxParameterfv(Target, Pname)

查看源代码
-spec getMinmaxParameterfv(Target :: enum(), Pname :: enum()) -> {f()}.

等效于 getMinmaxParameteriv/2

链接到此函数

getMinmaxParameteriv(Target, Pname)

查看源代码
-spec getMinmaxParameteriv(Target :: enum(), Pname :: enum()) -> {i()}.

gl:getMinmaxParameter() 通过将 Pname 设置为以下值之一来检索当前 minmax 表的参数

外部文档。

链接到此函数

getMultisamplefv(Pname, Index)

查看源代码
-spec getMultisamplefv(Pname :: enum(), Index :: i()) -> {f(), f()}.

gl:getMultisamplefv/2 查询给定样本的位置。 Pname 指定要检索的样本参数,并且必须为 ?GL_SAMPLE_POSITIONIndex 对应于应返回其位置的样本。样本位置在 Val[0]Val[1] 中作为两个浮点值返回,每个值都在 0 到 1 之间,分别对应于该样本在 GL 像素空间中的 XY 位置。(0.5, 0.5) 这对应于像素中心。Index 必须在零和 ?GL_SAMPLES 的值减一之间。

外部文档。

链接到此函数

getPixelMapfv(Map, Values)

查看源代码
-spec getPixelMapfv(Map :: enum(), Values :: mem()) -> ok.

等效于 getPixelMapusv/2

链接到此函数

getPixelMapuiv(Map, Values)

查看源代码
-spec getPixelMapuiv(Map :: enum(), Values :: mem()) -> ok.

等效于 getPixelMapusv/2

链接到此函数

getPixelMapusv(Map, Values)

查看源代码
-spec getPixelMapusv(Map :: enum(), Values :: mem()) -> ok.

有关 Map 参数的可接受值的说明,请参见 gl:pixelMap() 参考页。gl:getPixelMap()Data 中返回 Map 中指定的像素映射的内容。像素映射在执行 gl:readPixels/7, gl:drawPixels/5, gl:copyPixels/5, gl:texImage1D/8, gl:texImage2D/9, gl:texImage3D/10, gl:texSubImage1D/7, gl:texSubImage2D/9, gl:texSubImage3D/11, gl:copyTexImage1D/7, gl:copyTexImage2D/8, gl:copyTexSubImage1D/6, gl:copyTexSubImage2D/8, 和 gl:copyTexSubImage3D/9 期间使用,以将颜色索引、模板索引、颜色分量和深度分量映射到其他值。

外部文档。

-spec getPolygonStipple() -> binary().

gl:getPolygonStipple/0Pattern 返回一个 32×32 多边形点画模式。该模式被打包到内存中,就像调用了 gl:readPixels/7,其 heightwidth 都为 32,type?GL_BITMAPformat?GL_COLOR_INDEX,并且点画模式存储在内部 32×32 颜色索引缓冲区中。但是,与 gl:readPixels/7 不同,像素传输操作(移位、偏移、像素映射)不会应用于返回的点画图像。

外部文档。

链接到此函数

getProgramBinary(Program, BufSize)

查看源代码
-spec getProgramBinary(Program :: i(), BufSize :: i()) -> {BinaryFormat :: enum(), Binary :: binary()}.

gl:getProgramBinary/2Program 的已编译和链接的可执行文件的二进制表示返回到字节数组中,该数组的地址在 Binary 中指定。可以写入 Binary 的最大字节数由 BufSize 指定。如果程序二进制文件的大小大于 BufSize 字节,则会生成错误,否则写入 Binary 的实际字节数将返回到由 Length 给定地址的变量中。如果 Length?NULL,则不返回长度。

外部文档。

链接到此函数

getProgramInfoLog(Program, BufSize)

查看源代码
-spec getProgramInfoLog(Program :: i(), BufSize :: i()) -> string().

gl:getProgramInfoLog/2 返回指定程序对象的信息日志。当程序对象被链接或验证时,程序对象的信息日志将被修改。返回的字符串将以 null 结尾。

外部文档。

链接到此函数

getProgramInterfaceiv(Program, ProgramInterface, Pname)

查看源代码
-spec getProgramInterfaceiv(Program :: i(), ProgramInterface :: enum(), Pname :: enum()) -> i().

gl:getProgramInterfaceiv/3 查询 Program 中由 ProgramInterface 标识的接口的属性,其属性名称由 Pname 给出。

外部文档。

链接到此函数

getProgramiv(Program, Pname)

查看源代码
-spec getProgramiv(Program :: i(), Pname :: enum()) -> i().

gl:getProgram()Params 中返回特定程序对象的参数值。定义了以下参数

外部文档。

链接到此函数

getProgramPipelineInfoLog(Pipeline, BufSize)

查看源代码
-spec getProgramPipelineInfoLog(Pipeline :: i(), BufSize :: i()) -> string().

gl:getProgramPipelineInfoLog/2 检索程序管线对象 Pipeline 的信息日志。信息日志(包括其 null 终止符)被写入字符数组,该数组的地址由 InfoLog 给出。可以写入 InfoLog 的最大字符数由 BufSize 给出,并且写入 InfoLog 的实际字符数返回到由 Length 给定地址的整数中。如果 Length?NULL,则不返回长度。

外部文档。

链接到此函数

getProgramPipelineiv(Pipeline, Pname)

查看源代码
-spec getProgramPipelineiv(Pipeline :: i(), Pname :: enum()) -> i().

gl:getProgramPipelineiv/2 检索程序管线对象 Pipeline 的属性值。 Pname 指定要检索其值的参数的名称。参数的值被写入由 Params 给定地址的变量中。

外部文档。

链接到此函数

getProgramResourceIndex(Program, ProgramInterface, Name)

查看源代码
-spec getProgramResourceIndex(Program :: i(), ProgramInterface :: enum(), Name :: string()) -> i().

gl:getProgramResourceIndex/3 返回分配给程序对象 Program 的接口类型 ProgramInterface 中名为 Name 的资源的无符号整数索引。

外部文档。

链接到此函数

getProgramResourceLocation(Program, ProgramInterface, Name)

查看源代码
-spec getProgramResourceLocation(Program :: i(), ProgramInterface :: enum(), Name :: string()) -> i().

gl:getProgramResourceLocation/3 返回分配给程序对象 Program 的接口 ProgramInterface 中名为 Name 的变量的位置。Program 必须是已成功链接的程序的名称。ProgramInterface 必须是 ?GL_UNIFORM, ?GL_PROGRAM_INPUT, ?GL_PROGRAM_OUTPUT, ?GL_VERTEX_SUBROUTINE_UNIFORM, ?GL_TESS_CONTROL_SUBROUTINE_UNIFORM, ?GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, ?GL_GEOMETRY_SUBROUTINE_UNIFORM, ?GL_FRAGMENT_SUBROUTINE_UNIFORM, ?GL_COMPUTE_SUBROUTINE_UNIFORM, 或 ?GL_TRANSFORM_FEEDBACK_BUFFER 之一。

外部文档。

链接到此函数

getProgramResourceLocationIndex(Program, ProgramInterface, Name)

查看源代码
-spec getProgramResourceLocationIndex(Program :: i(), ProgramInterface :: enum(), Name :: string()) ->
                                         i().

gl:getProgramResourceLocationIndex/3 返回程序对象 Program 中接口 ProgramInterface 中名为 Name 的变量分配的片段颜色索引。Program 必须是已成功链接的程序的名称。ProgramInterface 必须是 ?GL_PROGRAM_OUTPUT

外部文档。

链接到此函数

getProgramResourceName(Program, ProgramInterface, Index, BufSize)

查看源代码
-spec getProgramResourceName(Program :: i(), ProgramInterface :: enum(), Index :: i(), BufSize :: i()) ->
                                string().

gl:getProgramResourceName/4 检索程序对象 Program 的接口 ProgramInterface 中索引为 Index 的单个活动资源的名称字符串。Index 必须小于 ProgramInterface 的活动资源列表中的条目数。

外部文档。

链接到此函数

getProgramStageiv(Program, Shadertype, Pname)

查看源代码
-spec getProgramStageiv(Program :: i(), Shadertype :: enum(), Pname :: enum()) -> i().

gl:getProgramStage() 查询附加到程序对象的着色器阶段的参数。Program 包含附加着色器的程序的名称。Shadertype 指定要从中查询参数的阶段。Pname 指定应查询哪个参数。要查询的参数的值将返回到 Values 中指定的地址的变量中。

外部文档。

链接到此函数

getQueryBufferObjecti64v(Id, Buffer, Pname, Offset)

查看源代码
-spec getQueryBufferObjecti64v(Id :: i(), Buffer :: i(), Pname :: enum(), Offset :: i()) -> ok.

等效于 getQueryObjectuiv/2

链接到此函数

getQueryBufferObjectiv(Id, Buffer, Pname, Offset)

查看源代码
-spec getQueryBufferObjectiv(Id :: i(), Buffer :: i(), Pname :: enum(), Offset :: i()) -> ok.

等效于 getQueryObjectuiv/2

链接到此函数

getQueryBufferObjectui64v(Id, Buffer, Pname, Offset)

查看源代码
-spec getQueryBufferObjectui64v(Id :: i(), Buffer :: i(), Pname :: enum(), Offset :: i()) -> ok.

等效于 getQueryObjectuiv/2

链接到此函数

getQueryBufferObjectuiv(Id, Buffer, Pname, Offset)

查看源代码
-spec getQueryBufferObjectuiv(Id :: i(), Buffer :: i(), Pname :: enum(), Offset :: i()) -> ok.

等效于 getQueryObjectuiv/2

链接到此函数

getQueryIndexediv(Target, Index, Pname)

查看源代码
-spec getQueryIndexediv(Target :: enum(), Index :: i(), Pname :: enum()) -> i().

gl:getQueryIndexediv/3Params 中返回由 TargetIndex 指定的索引查询对象目标的选定参数。Index 指定查询对象目标的索引,并且必须在零和一个特定于目标的最大值之间。

外部文档。

链接到此函数

getQueryiv(Target, Pname)

查看源代码
-spec getQueryiv(Target :: enum(), Pname :: enum()) -> i().

gl:getQueryiv/2Params 中返回由 Target 指定的查询对象目标的选定参数。

外部文档。

链接到此函数

getQueryObjecti64v(Id, Pname)

查看源代码
-spec getQueryObjecti64v(Id :: i(), Pname :: enum()) -> i().

等效于 getQueryObjectuiv/2

链接到此函数

getQueryObjectiv(Id, Pname)

查看源代码
-spec getQueryObjectiv(Id :: i(), Pname :: enum()) -> i().

等效于 getQueryObjectuiv/2

链接到此函数

getQueryObjectui64v(Id, Pname)

查看源代码
-spec getQueryObjectui64v(Id :: i(), Pname :: enum()) -> i().

等效于 getQueryObjectuiv/2

链接到此函数

getQueryObjectuiv(Id, Pname)

查看源代码
-spec getQueryObjectuiv(Id :: i(), Pname :: enum()) -> i().

这些命令返回由 Id 指定的查询对象的选定参数。gl:getQueryObject()Params 中返回由 Id 指定的查询对象的选定参数。gl:getQueryBufferObject() 通过将其写入 BufferOffset 指定的字节偏移量的数据存储中,返回由 Id 指定的查询对象的选定参数。

外部文档。

链接到此函数

getRenderbufferParameteriv(Target, Pname)

查看源代码
-spec getRenderbufferParameteriv(Target :: enum(), Pname :: enum()) -> i().

gl:getRenderbufferParameteriv/2glGetNamedRenderbufferParameteriv 查询指定渲染缓冲区对象的参数。

外部文档。

链接到此函数

getSamplerParameterfv(Sampler, Pname)

查看源代码
-spec getSamplerParameterfv(Sampler :: i(), Pname :: enum()) -> [f()].

等效于 getSamplerParameteriv/2

链接到此函数

getSamplerParameterIiv(Sampler, Pname)

查看源代码
-spec getSamplerParameterIiv(Sampler :: i(), Pname :: enum()) -> [i()].

等效于 getSamplerParameteriv/2

链接到此函数

getSamplerParameterIuiv(Sampler, Pname)

查看源代码
-spec getSamplerParameterIuiv(Sampler :: i(), Pname :: enum()) -> [i()].

等效于 getSamplerParameteriv/2

链接到此函数

getSamplerParameteriv(Sampler, Pname)

查看源代码
-spec getSamplerParameteriv(Sampler :: i(), Pname :: enum()) -> [i()].

gl:getSamplerParameter()Params 中返回指定为 Pname 的采样器参数的值。Sampler 定义目标采样器,并且必须是先前调用 gl:genSamplers/1 返回的现有采样器对象的名称。Pname 接受与 gl:samplerParameter() 相同的符号,并且具有相同的解释。

外部文档。

链接到此函数

getShaderInfoLog(Shader, BufSize)

查看源代码
-spec getShaderInfoLog(Shader :: i(), BufSize :: i()) -> string().

gl:getShaderInfoLog/2 返回指定着色器对象的信息日志。当编译着色器时,会修改着色器对象的信息日志。返回的字符串将以 null 结尾。

外部文档。

链接到此函数

getShaderiv(Shader, Pname)

查看源代码
-spec getShaderiv(Shader :: i(), Pname :: enum()) -> i().

gl:getShader()Params 中返回特定着色器对象的参数值。定义了以下参数

外部文档。

链接到此函数

getShaderPrecisionFormat(Shadertype, Precisiontype)

查看源代码
-spec getShaderPrecisionFormat(Shadertype :: enum(), Precisiontype :: enum()) ->
                                  {Range :: {i(), i()}, Precision :: i()}.

gl:getShaderPrecisionFormat/2 检索在指定的着色器类型中,实现对不同数值格式的数量表示的数值范围和精度。ShaderType 指定要检索其数值精度和范围的着色器类型,并且必须是 ?GL_VERTEX_SHADER?GL_FRAGMENT_SHADER 之一。PrecisionType 指定要查询的数值格式,并且必须是 ?GL_LOW_FLOAT?GL_MEDIUM_FLOAT?GL_HIGH_FLOAT?GL_LOW_INT?GL_MEDIUM_INT?GL_HIGH_INT 之一。

外部文档。

链接到此函数

getShaderSource(Shader, BufSize)

查看源代码
-spec getShaderSource(Shader :: i(), BufSize :: i()) -> string().

gl:getShaderSource/2 返回由 Shader 指定的着色器对象中的源代码字符串的串联。着色器对象的源代码字符串是先前调用 gl:shaderSource/2 的结果。该函数返回的字符串将以 null 结尾。

外部文档。

-spec getString(Name :: enum()) -> string().

等效于 getStringi/2

链接到此函数

getStringi(Name, Index)

查看源代码
-spec getStringi(Name :: enum(), Index :: i()) -> string().

gl:getString/1 返回一个指向静态字符串的指针,该字符串描述当前 GL 连接的某些方面。Name 可以是以下之一

外部文档。

链接到此函数

getSubroutineIndex(Program, Shadertype, Name)

查看源代码
-spec getSubroutineIndex(Program :: i(), Shadertype :: enum(), Name :: string()) -> i().

gl:getSubroutineIndex/3 返回附加到程序对象的着色器阶段中的子例程统一变量的索引。Program 包含附加着色器的程序的名称。Shadertype 指定要从中查询着色器子例程索引的阶段。Name 包含要查询的子例程统一变量的 null 结尾的名称。

外部文档。

链接到此函数

getSubroutineUniformLocation(Program, Shadertype, Name)

查看源代码
-spec getSubroutineUniformLocation(Program :: i(), Shadertype :: enum(), Name :: string()) -> i().

gl:getSubroutineUniformLocation/3 返回附加到 Program 的类型为 Shadertype 的着色器阶段中子例程统一变量 Name 的位置,其行为与其他方面与 gl:getUniformLocation/2 相同。

外部文档。

链接到此函数

getSynciv(Sync, Pname, BufSize)

查看源代码
-spec getSynciv(Sync :: i(), Pname :: enum(), BufSize :: i()) -> [i()].

gl:getSynciv/3 检索同步对象的属性。Sync 指定要检索其属性的同步对象的名称。

外部文档。

链接到此函数

getTexEnvfv(Target, Pname)

查看源代码
-spec getTexEnvfv(Target :: enum(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getTexEnviv/2

链接到此函数

getTexEnviv(Target, Pname)

查看源代码
-spec getTexEnviv(Target :: enum(), Pname :: enum()) -> {i(), i(), i(), i()}.

gl:getTexEnv()Params 中返回使用 gl:texEnv() 指定的纹理环境的选定值。Target 指定纹理环境。

外部文档。

链接到此函数

getTexGendv(Coord, Pname)

查看源代码
-spec getTexGendv(Coord :: enum(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getTexGeniv/2

链接到此函数

getTexGenfv(Coord, Pname)

查看源代码
-spec getTexGenfv(Coord :: enum(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getTexGeniv/2

链接到此函数

getTexGeniv(Coord, Pname)

查看源代码
-spec getTexGeniv(Coord :: enum(), Pname :: enum()) -> {i(), i(), i(), i()}.

gl:getTexGen()Params 中返回使用 gl:texGen() 指定的纹理坐标生成函数的选定参数。Coord 使用符号常量 ?GL_S?GL_T?GL_R?GL_Q 来命名 ( strq) 纹理坐标之一。

外部文档。

链接到此函数

getTexImage(Target, Level, Format, Type, Pixels)

查看源代码
-spec getTexImage(Target :: enum(), Level :: i(), Format :: enum(), Type :: enum(), Pixels :: mem()) ->
                     ok.

gl:getTexImage/5glGetnTexImageglGetTextureImage 函数将纹理图像返回到 Pixels 中。对于 gl:getTexImage/5glGetnTexImageTarget 指定所需的纹理图像是 gl:texImage1D/8 (?GL_TEXTURE_1D)、gl:texImage2D/9 (?GL_TEXTURE_1D_ARRAY?GL_TEXTURE_RECTANGLE?GL_TEXTURE_2D 或任何 ?GL_TEXTURE_CUBE_MAP_*) 或 gl:texImage3D/10 (?GL_TEXTURE_2D_ARRAY?GL_TEXTURE_3D?GL_TEXTURE_CUBE_MAP_ARRAY) 指定的图像。对于 glGetTextureImageTexture 指定纹理对象名称。除了 gl:getTexImage/5glGetnTexImage 接受的纹理类型之外,该函数还接受立方体贴图纹理对象(有效目标为 ?GL_TEXTURE_CUBE_MAP)。Level 指定所需图像的详细级别编号。FormatType 指定所需图像数组的格式和类型。有关 FormatType 参数的可接受值的描述,请参见 gl:texImage1D/8 的参考页。对于 glGetnTexImage 和 glGetTextureImage 函数,bufSize 指示接收检索到的像素数据的缓冲区大小。glGetnTexImageglGetTextureImage 写入 Pixels 的字节数不超过 BufSize

外部文档。

链接到此函数

getTexLevelParameterfv(Target, Level, Pname)

查看源代码
-spec getTexLevelParameterfv(Target :: enum(), Level :: i(), Pname :: enum()) -> {f()}.

等效于 getTexLevelParameteriv/3

链接到此函数

getTexLevelParameteriv(Target, Level, Pname)

查看源代码
-spec getTexLevelParameteriv(Target :: enum(), Level :: i(), Pname :: enum()) -> {i()}.

gl:getTexLevelParameterfv/3, gl:getTexLevelParameteriv/3, glGetTextureLevelParameterfvglGetTextureLevelParameterivParams 中返回特定细节层次值(由 Level 指定)的纹理参数值。 对于前两个函数,Target 定义目标纹理,可以是 ?GL_TEXTURE_1D?GL_TEXTURE_2D?GL_TEXTURE_3D?GL_PROXY_TEXTURE_1D?GL_PROXY_TEXTURE_2D?GL_PROXY_TEXTURE_3D?GL_TEXTURE_CUBE_MAP_POSITIVE_X?GL_TEXTURE_CUBE_MAP_NEGATIVE_X?GL_TEXTURE_CUBE_MAP_POSITIVE_Y?GL_TEXTURE_CUBE_MAP_NEGATIVE_Y?GL_TEXTURE_CUBE_MAP_POSITIVE_Z?GL_TEXTURE_CUBE_MAP_NEGATIVE_Z?GL_PROXY_TEXTURE_CUBE_MAP。 后两个函数接收一个 Texture 参数,该参数指定纹理对象的名称。

外部文档。

链接到此函数

getTexParameterfv(Target, Pname)

查看源代码
-spec getTexParameterfv(Target :: enum(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getTexParameteriv/2

链接到此函数

getTexParameterIiv(Target, Pname)

查看源代码
-spec getTexParameterIiv(Target :: enum(), Pname :: enum()) -> {i(), i(), i(), i()}.

等效于 getTexParameteriv/2

链接到此函数

getTexParameterIuiv(Target, Pname)

查看源代码
-spec getTexParameterIuiv(Target :: enum(), Pname :: enum()) -> {i(), i(), i(), i()}.

等效于 getTexParameteriv/2

链接到此函数

getTexParameteriv(Target, Pname)

查看源代码
-spec getTexParameteriv(Target :: enum(), Pname :: enum()) -> {i(), i(), i(), i()}.

gl:getTexParameter()glGetTextureParameterParams 中返回指定为 Pname 的纹理参数的一个或多个值。Target 定义目标纹理。?GL_TEXTURE_1D?GL_TEXTURE_2D?GL_TEXTURE_3D?GL_TEXTURE_1D_ARRAY?GL_TEXTURE_2D_ARRAY?GL_TEXTURE_RECTANGLE?GL_TEXTURE_CUBE_MAP?GL_TEXTURE_CUBE_MAP_ARRAY?GL_TEXTURE_2D_MULTISAMPLE?GL_TEXTURE_2D_MULTISAMPLE_ARRAY 分别指定一维、二维或三维纹理,一维数组、二维数组、矩形、立方体贴图或立方体贴图数组、二维多重采样或二维多重采样数组纹理。Pname 接受与 gl:texParameter() 相同的符号,并具有相同的解释。

外部文档。

链接到此函数

getTransformFeedbackVarying(Program, Index, BufSize)

查看源代码
-spec getTransformFeedbackVarying(Program :: i(), Index :: i(), BufSize :: i()) ->
                                     {Size :: i(), Type :: enum(), Name :: string()}.

可以通过调用 gl:getTransformFeedbackVarying/3 来检索链接程序中将在变换反馈期间捕获的可变变量集的相关信息。gl:getTransformFeedbackVarying/3 提供有关由 Index 选择的可变变量的信息。 Index 为 0 选择传递给 gl:transformFeedbackVaryings/3Varyings 数组中指定的第一个可变变量,Index 的值为 ?GL_TRANSFORM_FEEDBACK_VARYINGS 减一时选择最后一个这样的变量。

外部文档。

链接到此函数

getUniformBlockIndex(Program, UniformBlockName)

查看源代码
-spec getUniformBlockIndex(Program :: i(), UniformBlockName :: string()) -> i().

gl:getUniformBlockIndex/2 检索 Program 中统一块的索引。

外部文档。

链接到此函数

getUniformdv(Program, Location)

查看源代码
-spec getUniformdv(Program :: i(), Location :: i()) -> matrix().

等效于 getUniformuiv/2

链接到此函数

getUniformfv(Program, Location)

查看源代码
-spec getUniformfv(Program :: i(), Location :: i()) -> matrix().

等效于 getUniformuiv/2

链接到此函数

getUniformIndices(Program, UniformNames)

查看源代码
-spec getUniformIndices(Program :: i(), UniformNames :: [unicode:chardata()]) -> [i()].

gl:getUniformIndices/2 检索 Program 中多个 uniform 变量的索引。

外部文档。

链接到此函数

getUniformiv(Program, Location)

查看源代码
-spec getUniformiv(Program :: i(), Location :: i()) ->
                      {i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i()}.

等效于 getUniformuiv/2

链接到此函数

getUniformLocation(Program, Name)

查看源代码
-spec getUniformLocation(Program :: i(), Name :: string()) -> i().

glGetUniformLocation 返回一个整数,表示程序对象中特定 uniform 变量的位置。 Name 必须是一个不包含空格的空终止字符串。Name 必须是 Program 中一个活跃的 uniform 变量名,它不是结构体、结构体数组或向量或矩阵的子组件。如果 Name 不对应于 Program 中的活跃 uniform 变量,如果 Name 以保留前缀“gl_”开头,或者如果 Name 与原子计数器或命名的 uniform 块关联,则此函数返回 -1。

外部文档。

链接到此函数

getUniformSubroutineuiv(Shadertype, Location)

查看源代码
-spec getUniformSubroutineuiv(Shadertype :: enum(), Location :: i()) ->
                                 {i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i(),
                                  i()}.

gl:getUniformSubroutine() 检索当前程序着色器阶段 Shadertype 中位置 Location 处的子例程 uniform 的值。 Location 必须小于当前正在着色器阶段 Shadertype 中使用的着色器的 ?GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 的值。子例程 uniform 的值在 Values 中返回。

外部文档。

链接到此函数

getUniformuiv(Program, Location)

查看源代码
-spec getUniformuiv(Program :: i(), Location :: i()) ->
                       {i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i(), i()}.

gl:getUniform()glGetnUniformParams 中返回指定 uniform 变量的一个或多个值。由 Location 指定的 uniform 变量的类型确定返回的值的数量。如果 uniform 变量在着色器中定义为布尔值、整数或浮点数,则将返回单个值。如果将其定义为 vec2、ivec2 或 bvec2,则将返回两个值。如果将其定义为 vec3、ivec3 或 bvec3,则将返回三个值,依此类推。要查询声明为数组的 uniform 变量中存储的值,请为数组的每个元素调用 gl:getUniform()。要查询声明为结构的 uniform 变量中存储的值,请为结构中的每个字段调用 gl:getUniform()。声明为矩阵的 uniform 变量的值将以列优先顺序返回。

外部文档。

链接到此函数

getVertexAttribdv(Index, Pname)

查看源代码
-spec getVertexAttribdv(Index :: i(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getVertexAttribiv/2

链接到此函数

getVertexAttribfv(Index, Pname)

查看源代码
-spec getVertexAttribfv(Index :: i(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getVertexAttribiv/2

链接到此函数

getVertexAttribIiv(Index, Pname)

查看源代码
-spec getVertexAttribIiv(Index :: i(), Pname :: enum()) -> {i(), i(), i(), i()}.

等效于 getVertexAttribiv/2

链接到此函数

getVertexAttribIuiv(Index, Pname)

查看源代码
-spec getVertexAttribIuiv(Index :: i(), Pname :: enum()) -> {i(), i(), i(), i()}.

等效于 getVertexAttribiv/2

链接到此函数

getVertexAttribiv(Index, Pname)

查看源代码
-spec getVertexAttribiv(Index :: i(), Pname :: enum()) -> {i(), i(), i(), i()}.

gl:getVertexAttrib()Params 中返回通用顶点属性参数的值。要查询的通用顶点属性由 Index 指定,要查询的参数由 Pname 指定。

外部文档。

链接到此函数

getVertexAttribLdv(Index, Pname)

查看源代码
-spec getVertexAttribLdv(Index :: i(), Pname :: enum()) -> {f(), f(), f(), f()}.

等效于 getVertexAttribiv/2

-spec hint(Target :: enum(), Mode :: enum()) -> ok.

当有解释空间时,可以使用提示来控制 GL 行为的某些方面。提示使用两个参数指定。Target 是一个符号常量,指示要控制的行为,Mode 是另一个符号常量,指示所需的行为。每个 Target 的初始值为 ?GL_DONT_CAREMode 可以是以下之一

外部文档。

链接到此函数

histogram(Target, Width, Internalformat, Sink)

查看源代码
-spec histogram(Target :: enum(), Width :: i(), Internalformat :: enum(), Sink :: 0 | 1) -> ok.

当启用 ?GL_HISTOGRAM 时,RGBA 颜色分量将通过限制在 [0,1] 范围内、乘以直方图表的宽度并四舍五入到最接近的整数来转换为直方图表索引。然后递增由 RGBA 索引选择的表条目。(如果直方图表的内部格式包括亮度,则从 R 颜色分量导出的索引确定要递增的亮度表条目。)如果直方图表条目递增超出其最大值,则其值变为未定义。(这不是错误。)

外部文档。

-spec indexd(C :: f()) -> ok.

等效于 indexubv/1

-spec indexdv({C :: f()}) -> ok.

等效于 indexubv/1

-spec indexf(C :: f()) -> ok.

等效于 indexubv/1

-spec indexfv({C :: f()}) -> ok.

等效于 indexubv/1

-spec indexi(C :: i()) -> ok.

等效于 indexubv/1

-spec indexiv({C :: i()}) -> ok.

等效于 indexubv/1

-spec indexMask(Mask :: i()) -> ok.

gl:indexMask/1 控制颜色索引缓冲区中各个位的写入。 Mask 的最低有效 n 位(其中 n 是颜色索引缓冲区中的位数)指定一个掩码。如果掩码中出现 1(一),则可以写入颜色索引缓冲区(或多个缓冲区)中的相应位。如果出现 0(零),则会写保护相应的位。

外部文档。

链接到此函数

indexPointer(Type, Stride, Ptr)

查看源代码
-spec indexPointer(Type :: enum(), Stride :: i(), Ptr :: offset() | mem()) -> ok.

gl:indexPointer/3 指定渲染时要使用的颜色索引数组的位置和数据格式。Type 指定每个颜色索引的数据类型,Stride 指定从一个颜色索引到下一个颜色索引的字节步幅,从而允许将顶点和属性打包到单个数组中或存储在单独的数组中。

外部文档。

-spec indexs(C :: i()) -> ok.

等效于 indexubv/1

-spec indexsv({C :: i()}) -> ok.

等效于 indexubv/1

-spec indexub(C :: i()) -> ok.

等效于 indexubv/1

-spec indexubv({C :: i()}) -> ok.

gl:index() 更新当前(单值)颜色索引。它接受一个参数,即当前颜色索引的新值。

外部文档。

-spec initNames() -> ok.

名称堆栈在选择模式期间使用,以允许唯一地标识渲染命令集。 它由一组有序的无符号整数组成。gl:initNames/0 使名称堆栈初始化为其默认的空状态。

外部文档。

链接到此函数

interleavedArrays(Format, Stride, Pointer)

查看源代码
-spec interleavedArrays(Format :: enum(), Stride :: i(), Pointer :: offset() | mem()) -> ok.

gl:interleavedArrays/3 允许您指定和启用各个颜色、法线、纹理和顶点数组,这些数组的元素是较大的聚合数组元素的一部分。 对于某些实现,这比单独指定数组更有效。

外部文档。

链接到此函数

invalidateBufferData(Buffer)

查看源代码
-spec invalidateBufferData(Buffer :: i()) -> ok.

gl:invalidateBufferData/1 使缓冲区对象的数据存储的所有内容无效。 无效后,缓冲区数据存储的内容变为未定义。

外部文档。

链接到此函数

invalidateBufferSubData(Buffer, Offset, Length)

查看源代码
-spec invalidateBufferSubData(Buffer :: i(), Offset :: i(), Length :: i()) -> ok.

gl:invalidateBufferSubData/3 使缓冲区对象的数据存储的全部或部分内容无效。 无效后,缓冲区数据存储指定范围内的内容变为未定义。范围的开始由 Offset 给出,其大小由 Length 给出,均以基本机器单位测量。

外部文档。

链接到此函数

invalidateFramebuffer(Target, Attachments)

查看源代码
-spec invalidateFramebuffer(Target :: enum(), Attachments :: [enum()]) -> ok.

gl:invalidateFramebuffer/2glInvalidateNamedFramebufferData 使帧缓冲区的指定附件集的全部内容无效。

外部文档。

链接到此函数

invalidateSubFramebuffer(Target, Attachments, X, Y, Width, Height)

查看源代码
-spec invalidateSubFramebuffer(Target :: enum(),
                               Attachments :: [enum()],
                               X :: i(),
                               Y :: i(),
                               Width :: i(),
                               Height :: i()) ->
                                  ok.

gl:invalidateSubFramebuffer/6glInvalidateNamedFramebufferSubData 使帧缓冲区的指定附件集的指定区域的内容无效。

外部文档。

链接到此函数

invalidateTexImage(Texture, Level)

查看源代码
-spec invalidateTexImage(Texture :: i(), Level :: i()) -> ok.

gl:invalidateTexSubImage/8 使纹理图像的所有内容无效。TextureLevel 指示正在使哪个纹理图像无效。执行此命令后,纹理图像中的数据将具有未定义的值。

外部文档。

链接到此函数

invalidateTexSubImage(Texture, Level, Xoffset, Yoffset, Zoffset, Width, Height, Depth)

查看源代码
-spec invalidateTexSubImage(Texture, Level, Xoffset, Yoffset, Zoffset, Width, Height, Depth) -> ok
                               when
                                   Texture :: i(),
                                   Level :: i(),
                                   Xoffset :: i(),
                                   Yoffset :: i(),
                                   Zoffset :: i(),
                                   Width :: i(),
                                   Height :: i(),
                                   Depth :: i().

gl:invalidateTexSubImage/8 使纹理图像的全部或部分内容无效。TextureLevel 指示正在使哪个纹理图像无效。执行此命令后,该子区域中的数据将具有未定义的值。XoffsetYoffsetZoffsetWidthHeightDepth 的解释方式与 gl:texSubImage3D/11 中的解释方式相同。对于不具有某些维度的纹理目标,此命令将这些维度视为大小为 1。例如,要使二维纹理的一部分无效,应用程序应使用 Zoffset 等于零和 Depth 等于 1。立方体贴图纹理被视为 z 维度中的六个切片的数组,其中 Zoffset 的值被解释为指定面 ?GL_TEXTURE_CUBE_MAP_POSITIVE_X + Zoffset

外部文档。

-spec isBuffer(Buffer :: i()) -> 0 | 1.

gl:isBuffer/1 如果 Buffer 当前是一个缓冲区对象的名称,则返回 ?GL_TRUE。如果 Buffer 为零,或者是一个非零值,但当前不是缓冲区对象的名称,或者发生错误,则 gl:isBuffer/1 返回 ?GL_FALSE

外部文档。

-spec isEnabled(Cap :: enum()) -> 0 | 1.

等同于 isEnabledi/2

链接到此函数

isEnabledi(Target, Index)

查看源代码
-spec isEnabledi(Target :: enum(), Index :: i()) -> 0 | 1.

如果 Cap 是一个已启用的功能,则 gl:isEnabled/1 返回 ?GL_TRUE,否则返回 ?GL_FALSE。可以使用 gl:isEnabledi/2 测试已索引的布尔状态。对于 gl:isEnabledi/2Index 指定要测试的功能的索引。Index 必须介于零和 Cap 的索引功能计数之间。最初,除 ?GL_DITHER 之外的所有功能都已禁用;?GL_DITHER 最初是启用的。

外部文档。

链接到此函数

isFramebuffer(Framebuffer)

查看源代码
-spec isFramebuffer(Framebuffer :: i()) -> 0 | 1.

如果 Framebuffer 当前是一个帧缓冲区对象的名称,则 gl:isFramebuffer/1 返回 ?GL_TRUE。如果 Framebuffer 为零,或者 ?framebuffer 不是帧缓冲区对象的名称,或者发生错误,则 gl:isFramebuffer/1 返回 ?GL_FALSE。如果 Framebuffer 是由 gl:genFramebuffers/1 返回的名称,但尚未通过调用 gl:bindFramebuffer/2 进行绑定,则该名称不是帧缓冲区对象,并且 gl:isFramebuffer/1 返回 ?GL_FALSE

外部文档。

-spec isList(List :: i()) -> 0 | 1.

如果 List 是显示列表的名称,则 gl:isList/1 返回 ?GL_TRUE,如果不是,或者发生错误,则返回 ?GL_FALSE

外部文档。

-spec isProgram(Program :: i()) -> 0 | 1.

如果 Program 是先前使用 gl:createProgram/0 创建且尚未通过 gl:deleteProgram/1 删除的程序对象的名称,则 gl:isProgram/1 返回 ?GL_TRUE。如果 Program 为零,或者是一个非零值,但不是程序对象的名称,或者发生错误,则 gl:isProgram/1 返回 ?GL_FALSE

外部文档。

链接到此函数

isProgramPipeline(Pipeline)

查看源代码
-spec isProgramPipeline(Pipeline :: i()) -> 0 | 1.

如果 Pipeline 当前是一个程序管线对象的名称,则 gl:isProgramPipeline/1 返回 ?GL_TRUE。如果 Pipeline 为零,或者 ?pipeline 不是程序管线对象的名称,或者发生错误,则 gl:isProgramPipeline/1 返回 ?GL_FALSE。如果 Pipeline 是由 gl:genProgramPipelines/1 返回的名称,但尚未通过调用 gl:bindProgramPipeline/1 进行绑定,则该名称不是程序管线对象,并且 gl:isProgramPipeline/1 返回 ?GL_FALSE

外部文档。

-spec isQuery(Id :: i()) -> 0 | 1.

如果 Id 当前是一个查询对象的名称,则 gl:isQuery/1 返回 ?GL_TRUE。如果 Id 为零,或者是一个非零值,但当前不是查询对象的名称,或者发生错误,则 gl:isQuery/1 返回 ?GL_FALSE

外部文档。

链接到此函数

isRenderbuffer(Renderbuffer)

查看源代码
-spec isRenderbuffer(Renderbuffer :: i()) -> 0 | 1.

如果 Renderbuffer 当前是一个渲染缓冲区对象的名称,则 gl:isRenderbuffer/1 返回 ?GL_TRUE。如果 Renderbuffer 为零,或者 Renderbuffer 不是渲染缓冲区对象的名称,或者发生错误,则 gl:isRenderbuffer/1 返回 ?GL_FALSE。如果 Renderbuffer 是由 gl:genRenderbuffers/1 返回的名称,但尚未通过调用 gl:bindRenderbuffer/2gl:framebufferRenderbuffer/4 进行绑定,则该名称不是渲染缓冲区对象,并且 gl:isRenderbuffer/1 返回 ?GL_FALSE

外部文档。

-spec isSampler(Sampler :: i()) -> 0 | 1.

如果 Id 当前是一个采样器对象的名称,则 gl:isSampler/1 返回 ?GL_TRUE。如果 Id 为零,或者是一个非零值,但当前不是采样器对象的名称,或者发生错误,则 gl:isSampler/1 返回 ?GL_FALSE

外部文档。

-spec isShader(Shader :: i()) -> 0 | 1.

如果 Shader 是先前使用 gl:createShader/1 创建且尚未通过 gl:deleteShader/1 删除的着色器对象的名称,则 gl:isShader/1 返回 ?GL_TRUE。如果 Shader 为零,或者是一个非零值,但不是着色器对象的名称,或者发生错误,则 glIsShader 返回 ?GL_FALSE

外部文档。

-spec isSync(Sync :: i()) -> 0 | 1.

如果 Sync 当前是同步对象的名称,则 gl:isSync/1 返回 ?GL_TRUE。如果 Sync 不是同步对象的名称,或者发生错误,则 gl:isSync/1 返回 ?GL_FALSE。请注意,零不是同步对象的名称。

外部文档。

-spec isTexture(Texture :: i()) -> 0 | 1.

如果 Texture 当前是纹理的名称,则 gl:isTexture/1 返回 ?GL_TRUE。如果 Texture 为零,或者是一个非零值,但当前不是纹理的名称,或者发生错误,则 gl:isTexture/1 返回 ?GL_FALSE

外部文档。

链接到此函数

isTransformFeedback(Id)

查看源代码
-spec isTransformFeedback(Id :: i()) -> 0 | 1.

如果 Id 当前是一个变换反馈对象的名称,则 gl:isTransformFeedback/1 返回 ?GL_TRUE。如果 Id 为零,或者 ?id 不是变换反馈对象的名称,或者发生错误,则 gl:isTransformFeedback/1 返回 ?GL_FALSE。如果 Id 是由 gl:genTransformFeedbacks/1 返回的名称,但尚未通过调用 gl:bindTransformFeedback/2 进行绑定,则该名称不是变换反馈对象,并且 gl:isTransformFeedback/1 返回 ?GL_FALSE

外部文档。

-spec isVertexArray(Array :: i()) -> 0 | 1.

如果 Array 当前是一个顶点数组对象的名称,则 gl:isVertexArray/1 返回 ?GL_TRUE。如果 Array 为零,或者 Array 不是顶点数组对象的名称,或者发生错误,则 gl:isVertexArray/1 返回 ?GL_FALSE。如果 Array 是由 gl:genVertexArrays/1 返回的名称,但尚未通过调用 gl:bindVertexArray/1 进行绑定,则该名称不是顶点数组对象,并且 gl:isVertexArray/1 返回 ?GL_FALSE

外部文档。

链接到此函数

lightf(Light, Pname, Param)

查看源代码
-spec lightf(Light :: enum(), Pname :: enum(), Param :: f()) -> ok.

等同于 lightiv/3

链接到此函数

lightfv(Light, Pname, Params)

查看源代码
-spec lightfv(Light :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等同于 lightiv/3

链接到此函数

lighti(Light, Pname, Param)

查看源代码
-spec lighti(Light :: enum(), Pname :: enum(), Param :: i()) -> ok.

等同于 lightiv/3

链接到此函数

lightiv(Light, Pname, Params)

查看源代码
-spec lightiv(Light :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

gl:light() 设置各个光源参数的值。Light 命名光源,并且是 ?GL_LIGHT i 形式的符号名称,其中 i 的范围从 0 到 ?GL_MAX_LIGHTS - 1 的值。Pname 通过符号名称指定十个光源参数之一。Params 是单个值或指向包含新值的数组的指针。

外部文档。

链接到此函数

lightModelf(Pname, Param)

查看源代码
-spec lightModelf(Pname :: enum(), Param :: f()) -> ok.

等同于 lightModeliv/2

链接到此函数

lightModelfv(Pname, Params)

查看源代码
-spec lightModelfv(Pname :: enum(), Params :: tuple()) -> ok.

等同于 lightModeliv/2

链接到此函数

lightModeli(Pname, Param)

查看源代码
-spec lightModeli(Pname :: enum(), Param :: i()) -> ok.

等同于 lightModeliv/2

链接到此函数

lightModeliv(Pname, Params)

查看源代码
-spec lightModeliv(Pname :: enum(), Params :: tuple()) -> ok.

gl:lightModel() 设置光照模型参数。Pname 命名参数,Params 给出新值。有三个光照模型参数

外部文档。

链接到此函数

lineStipple(Factor, Pattern)

查看源代码
-spec lineStipple(Factor :: i(), Pattern :: i()) -> ok.

线条点画会屏蔽由光栅化产生的某些片段;这些片段不会被绘制。屏蔽是通过使用三个参数实现的:16 位线条点画模式 Pattern、重复计数 Factor 和整数点画计数器 s。

外部文档。

-spec lineWidth(Width :: f()) -> ok.

gl:lineWidth/1 指定别名线和抗锯齿线的栅格化宽度。使用 1 以外的线宽具有不同的效果,具体取决于是否启用了线抗锯齿。要启用和禁用线抗锯齿,请使用参数 ?GL_LINE_SMOOTH 调用 gl:enable/1gl:disable/1。线抗锯齿最初是禁用的。

外部文档。

-spec linkProgram(Program :: i()) -> ok.

gl:linkProgram/1 链接由 Program 指定的程序对象。如果任何类型为 ?GL_VERTEX_SHADER 的着色器对象附加到 Program,则它们将用于创建将在可编程顶点处理器上运行的可执行文件。如果任何类型为 ?GL_GEOMETRY_SHADER 的着色器对象附加到 Program,则它们将用于创建将在可编程几何处理器上运行的可执行文件。如果任何类型为 ?GL_FRAGMENT_SHADER 的着色器对象附加到 Program,则它们将用于创建将在可编程片段处理器上运行的可执行文件。

外部文档。

-spec listBase(Base :: i()) -> ok.

gl:callLists/1 指定偏移量数组。显示列表名称是通过将 Base 添加到每个偏移量生成的。执行引用有效显示列表的名称;其他名称被忽略。

外部文档。

-spec loadIdentity() -> ok.

gl:loadIdentity/0 将当前矩阵替换为单位矩阵。它在语义上等效于使用单位矩阵调用 gl:loadMatrix()

外部文档。

-spec loadMatrixd(M :: matrix()) -> ok.

等同于 loadMatrixf/1

-spec loadMatrixf(M :: matrix()) -> ok.

gl:loadMatrix()M 指定的元素替换当前矩阵。当前矩阵是投影矩阵、模型视图矩阵或纹理矩阵,具体取决于当前的矩阵模式(参见 gl:matrixMode/1)。

外部文档。

-spec loadName(Name :: i()) -> ok.

在选择模式期间,使用名称堆栈来唯一标识渲染命令集。它由一组有序的无符号整数组成,初始为空。

外部文档。

链接到此函数

loadTransposeMatrixd(M)

查看源代码
-spec loadTransposeMatrixd(M :: matrix()) -> ok.

等同于 loadTransposeMatrixf/1

链接到此函数

loadTransposeMatrixf(M)

查看源代码
-spec loadTransposeMatrixf(M :: matrix()) -> ok.

gl:loadTransposeMatrix()M 指定的元素替换当前矩阵。当前矩阵是投影矩阵、模型视图矩阵或纹理矩阵,具体取决于当前的矩阵模式(参见 gl:matrixMode/1)。

外部文档。

-spec logicOp(Opcode :: enum()) -> ok.

gl:logicOp/1 指定一个逻辑操作,当启用时,它将在传入的 RGBA 颜色和帧缓冲区中相应位置的 RGBA 颜色之间应用。要启用或禁用逻辑操作,请使用符号常量 ?GL_COLOR_LOGIC_OP 调用 gl:enable/1gl:disable/1。初始值是禁用状态。

外部文档。

链接到此函数

map1d(Target, U1, U2, Stride, Order, Points)

查看源代码
-spec map1d(Target :: enum(), U1 :: f(), U2 :: f(), Stride :: i(), Order :: i(), Points :: binary()) ->
               ok.

等同于 map1f/6

链接到此函数

map1f(Target, U1, U2, Stride, Order, Points)

查看源代码
-spec map1f(Target :: enum(), U1 :: f(), U2 :: f(), Stride :: i(), Order :: i(), Points :: binary()) ->
               ok.

求值器提供了一种使用多项式或有理多项式映射来生成顶点、法线、纹理坐标和颜色的方法。求值器生成的值被发送到 GL 处理的后续阶段,就像它们是使用 gl:vertex()gl:normal()gl:texCoord()gl:color() 命令呈现的一样,只是生成的值不更新当前的法线、纹理坐标或颜色。

外部文档。

链接到此函数

map2d(Target, U1, U2, Ustride, Uorder, V1, V2, Vstride, Vorder, Points)

查看源代码
-spec map2d(Target, U1, U2, Ustride, Uorder, V1, V2, Vstride, Vorder, Points) -> ok
               when
                   Target :: enum(),
                   U1 :: f(),
                   U2 :: f(),
                   Ustride :: i(),
                   Uorder :: i(),
                   V1 :: f(),
                   V2 :: f(),
                   Vstride :: i(),
                   Vorder :: i(),
                   Points :: binary().

等同于 map2f/10

链接到此函数

map2f(Target, U1, U2, Ustride, Uorder, V1, V2, Vstride, Vorder, Points)

查看源代码
-spec map2f(Target, U1, U2, Ustride, Uorder, V1, V2, Vstride, Vorder, Points) -> ok
               when
                   Target :: enum(),
                   U1 :: f(),
                   U2 :: f(),
                   Ustride :: i(),
                   Uorder :: i(),
                   V1 :: f(),
                   V2 :: f(),
                   Vstride :: i(),
                   Vorder :: i(),
                   Points :: binary().

求值器提供了一种使用多项式或有理多项式映射来生成顶点、法线、纹理坐标和颜色的方法。求值器生成的值被发送到 GL 处理的后续阶段,就像它们是使用 gl:vertex()gl:normal()gl:texCoord()gl:color() 命令呈现的一样,只是生成的值不更新当前的法线、纹理坐标或颜色。

外部文档。

-spec mapGrid1d(Un :: i(), U1 :: f(), U2 :: f()) -> ok.

等同于 mapGrid2f/6

-spec mapGrid1f(Un :: i(), U1 :: f(), U2 :: f()) -> ok.

等同于 mapGrid2f/6

链接到此函数

mapGrid2d(Un, U1, U2, Vn, V1, V2)

查看源代码
-spec mapGrid2d(Un :: i(), U1 :: f(), U2 :: f(), Vn :: i(), V1 :: f(), V2 :: f()) -> ok.

等同于 mapGrid2f/6

链接到此函数

mapGrid2f(Un, U1, U2, Vn, V1, V2)

查看源代码
-spec mapGrid2f(Un :: i(), U1 :: f(), U2 :: f(), Vn :: i(), V1 :: f(), V2 :: f()) -> ok.

gl:mapGrid()gl:evalMesh() 一起使用,以有效地生成和计算一系列均匀间隔的映射域值。 gl:evalMesh() 步进一维或二维网格的整数域,该范围是 glMap1glMap2 指定的计算映射的域。

外部文档。

链接到此函数

materialf(Face, Pname, Param)

查看源代码
-spec materialf(Face :: enum(), Pname :: enum(), Param :: f()) -> ok.

等同于 materialiv/3

链接到此函数

materialfv(Face, Pname, Params)

查看源代码
-spec materialfv(Face :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等同于 materialiv/3

链接到此函数

materiali(Face, Pname, Param)

查看源代码
-spec materiali(Face :: enum(), Pname :: enum(), Param :: i()) -> ok.

等同于 materialiv/3

链接到此函数

materialiv(Face, Pname, Params)

查看源代码
-spec materialiv(Face :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

gl:material() 将值分配给材质参数。有两组匹配的材质参数。一组是 front-facing 集,用于为点、线、位图和所有多边形(当禁用双面照明时)或仅为正面多边形(当启用双面照明时)着色。另一组 back-facing 仅在启用双面照明时用于为背面多边形着色。有关单面和双面照明计算的详细信息,请参阅 gl:lightModel() 参考页。

外部文档。

-spec matrixMode(Mode :: enum()) -> ok.

gl:matrixMode/1 设置当前矩阵模式。 Mode 可以采用四个值之一

外部文档。

链接到此函数

memoryBarrier(Barriers)

查看源代码
-spec memoryBarrier(Barriers :: i()) -> ok.

等同于 memoryBarrierByRegion/1

链接到此函数

memoryBarrierByRegion(Barriers)

查看源代码
-spec memoryBarrierByRegion(Barriers :: i()) -> ok.

gl:memoryBarrier/1 定义一个屏障,该屏障对在命令之前发出的内存事务相对于在屏障之后发出的内存事务进行排序。为了进行此排序,由着色器执行的内存事务被认为是由触发着色器执行的渲染命令发出的。Barriers 是一个位字段,指示与着色器存储同步的操作集; Barriers 中使用的位如下

外部文档。

链接到此函数

minmax(Target, Internalformat, Sink)

查看源代码
-spec minmax(Target :: enum(), Internalformat :: enum(), Sink :: 0 | 1) -> ok.

当启用 ?GL_MINMAX 时,传入像素的 RGBA 分量将与每个分量的最小值和最大值进行比较,这些值存储在两元素的 minmax 表中。(第一个元素存储最小值,第二个元素存储最大值。)如果像素分量大于最大元素中的相应分量,则使用像素分量值更新最大元素。如果像素分量小于最小元素中的相应分量,则使用像素分量值更新最小元素。(在这两种情况下,如果 minmax 表的内部格式包含亮度,则传入像素的 R 颜色分量将用于比较。)可以通过调用 gl:getMinmax/5 稍后检索 minmax 表的内容。可以通过分别调用 gl:enable/1gl:disable/1 并使用 ?GL_MINMAX 的参数来启用或禁用 minmax 操作。

外部文档。

链接到此函数

minSampleShading(Value)

查看源代码
-spec minSampleShading(Value :: f()) -> ok.

gl:minSampleShading/1 指定在覆盖的像素内对样本进行着色的速率。通过使用参数 ?GL_SAMPLE_SHADING 调用 gl:enable/1 来启用样本率着色。如果禁用 ?GL_MULTISAMPLE?GL_SAMPLE_SHADING,则样本着色不起作用。否则,实现必须为每个覆盖的片段提供至少与 Value 乘以 Samples 指定的唯一颜色值一样多的唯一颜色值,其中 Samples 是当前帧缓冲区的 ?GL_SAMPLES 的值。为每个覆盖的片段生成至少 1 个样本。

外部文档。

链接到此函数

multiDrawArrays(Mode, First, Count)

查看源代码
-spec multiDrawArrays(Mode :: enum(), First :: [integer()] | mem(), Count :: [integer()] | mem()) -> ok.

gl:multiDrawArrays/3 使用很少的子例程调用指定多组几何图元。您可以预先指定单独的顶点、法线和颜色数组,而不是调用 GL 过程来传递每个单独的顶点、法线、纹理坐标、边缘标志或颜色,然后使用它们通过单次调用 gl:multiDrawArrays/3 来构造一系列图元。

外部文档。

链接到此函数

multiDrawArraysIndirect(Mode, Indirect, Drawcount, Stride)

查看源代码
-spec multiDrawArraysIndirect(Mode :: enum(),
                              Indirect :: offset() | mem(),
                              Drawcount :: i(),
                              Stride :: i()) ->
                                 ok.

gl:multiDrawArraysIndirect/4 使用很少的子例程调用指定多个几何图元。gl:multiDrawArraysIndirect/4 的行为类似于多次调用 gl:drawArraysInstancedBaseInstance/5,但对 gl:drawArraysInstancedBaseInstance/5 的每次调用的参数都存储在 Indirect 给出的地址的内存中的数组中,由 Stride 指定的基本机器单位中的步幅分隔。如果 Stride 为零,则假定数组在内存中紧密打包。

外部文档。

链接到此函数

multiDrawArraysIndirectCount(Mode, Indirect, Drawcount, Maxdrawcount, Stride)

查看源代码
-spec multiDrawArraysIndirectCount(Mode, Indirect, Drawcount, Maxdrawcount, Stride) -> ok
                                      when
                                          Mode :: enum(),
                                          Indirect :: offset() | mem(),
                                          Drawcount :: i(),
                                          Maxdrawcount :: i(),
                                          Stride :: i().

无可用文档。

链接到此函数

multiTexCoord1d(Target, S)

查看源代码
-spec multiTexCoord1d(Target :: enum(), S :: f()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord1dv(Target :: enum(), {S :: f()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord1f(Target, S)

查看源代码
-spec multiTexCoord1f(Target :: enum(), S :: f()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord1fv(Target :: enum(), {S :: f()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord1i(Target, S)

查看源代码
-spec multiTexCoord1i(Target :: enum(), S :: i()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord1iv(Target :: enum(), {S :: i()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord1s(Target, S)

查看源代码
-spec multiTexCoord1s(Target :: enum(), S :: i()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord1sv(Target :: enum(), {S :: i()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord2d(Target, S, T)

查看源代码
-spec multiTexCoord2d(Target :: enum(), S :: f(), T :: f()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord2dv(Target :: enum(), {S :: f(), T :: f()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord2f(Target, S, T)

查看源代码
-spec multiTexCoord2f(Target :: enum(), S :: f(), T :: f()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord2fv(Target :: enum(), {S :: f(), T :: f()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord2i(Target, S, T)

查看源代码
-spec multiTexCoord2i(Target :: enum(), S :: i(), T :: i()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord2iv(Target :: enum(), {S :: i(), T :: i()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord2s(Target, S, T)

查看源代码
-spec multiTexCoord2s(Target :: enum(), S :: i(), T :: i()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord2sv(Target :: enum(), {S :: i(), T :: i()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord3d(Target, S, T, R)

查看源代码
-spec multiTexCoord3d(Target :: enum(), S :: f(), T :: f(), R :: f()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord3dv(Target :: enum(), {S :: f(), T :: f(), R :: f()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord3f(Target, S, T, R)

查看源代码
-spec multiTexCoord3f(Target :: enum(), S :: f(), T :: f(), R :: f()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord3fv(Target :: enum(), {S :: f(), T :: f(), R :: f()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord3i(Target, S, T, R)

查看源代码
-spec multiTexCoord3i(Target :: enum(), S :: i(), T :: i(), R :: i()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord3iv(Target :: enum(), {S :: i(), T :: i(), R :: i()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord3s(Target, S, T, R)

查看源代码
-spec multiTexCoord3s(Target :: enum(), S :: i(), T :: i(), R :: i()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord3sv(Target :: enum(), {S :: i(), T :: i(), R :: i()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord4d(Target, S, T, R, Q)

查看源代码
-spec multiTexCoord4d(Target :: enum(), S :: f(), T :: f(), R :: f(), Q :: f()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord4dv(Target :: enum(), {S :: f(), T :: f(), R :: f(), Q :: f()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord4f(Target, S, T, R, Q)

查看源代码
-spec multiTexCoord4f(Target :: enum(), S :: f(), T :: f(), R :: f(), Q :: f()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord4fv(Target :: enum(), {S :: f(), T :: f(), R :: f(), Q :: f()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord4i(Target, S, T, R, Q)

查看源代码
-spec multiTexCoord4i(Target :: enum(), S :: i(), T :: i(), R :: i(), Q :: i()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord4iv(Target :: enum(), {S :: i(), T :: i(), R :: i(), Q :: i()}) -> ok.

等同于 multiTexCoord4sv/2

链接到此函数

multiTexCoord4s(Target, S, T, R, Q)

查看源代码
-spec multiTexCoord4s(Target :: enum(), S :: i(), T :: i(), R :: i(), Q :: i()) -> ok.

等同于 multiTexCoord4sv/2

-spec multiTexCoord4sv(Target :: enum(), {S :: i(), T :: i(), R :: i(), Q :: i()}) -> ok.

gl:multiTexCoord() 指定一维、二维、三维或四维的纹理坐标。 gl:multiTexCoord1() 将当前纹理坐标设置为 (s 0 0 1);调用 gl:multiTexCoord2() 会将其设置为 (s t 0 1)。类似地, gl:multiTexCoord3() 将纹理坐标指定为 (s t r 1),而 gl:multiTexCoord4() 显式定义所有四个分量为 (s t r q)。

外部文档。

-spec multMatrixd(M :: matrix()) -> ok.

等同于 multMatrixf/1

-spec multMatrixf(M :: matrix()) -> ok.

gl:multMatrix() 将当前矩阵与使用 M 指定的矩阵相乘,并用乘积替换当前矩阵。

外部文档。

链接到此函数

multTransposeMatrixd(M)

查看源代码
-spec multTransposeMatrixd(M :: matrix()) -> ok.

等同于 multTransposeMatrixf/1

链接到此函数

multTransposeMatrixf(M)

查看源代码
-spec multTransposeMatrixf(M :: matrix()) -> ok.

gl:multTransposeMatrix() 将当前矩阵与使用 M 指定的矩阵相乘,并用乘积替换当前矩阵。

外部文档。

-spec newList(List :: i(), Mode :: enum()) -> ok.

显示列表是已存储以供后续执行的 GL 命令组。显示列表使用 gl:newList/2 创建。所有后续命令都按发出顺序放置在显示列表中,直到调用 gl:endList/0 为止。

外部文档。

-spec normal3b(Nx :: i(), Ny :: i(), Nz :: i()) -> ok.

等同于 normal3sv/1

-spec normal3bv({Nx :: i(), Ny :: i(), Nz :: i()}) -> ok.

等同于 normal3sv/1

-spec normal3d(Nx :: f(), Ny :: f(), Nz :: f()) -> ok.

等同于 normal3sv/1

-spec normal3dv({Nx :: f(), Ny :: f(), Nz :: f()}) -> ok.

等同于 normal3sv/1

-spec normal3f(Nx :: f(), Ny :: f(), Nz :: f()) -> ok.

等同于 normal3sv/1

-spec normal3fv({Nx :: f(), Ny :: f(), Nz :: f()}) -> ok.

等同于 normal3sv/1

-spec normal3i(Nx :: i(), Ny :: i(), Nz :: i()) -> ok.

等同于 normal3sv/1

-spec normal3iv({Nx :: i(), Ny :: i(), Nz :: i()}) -> ok.

等同于 normal3sv/1

-spec normal3s(Nx :: i(), Ny :: i(), Nz :: i()) -> ok.

等同于 normal3sv/1

-spec normal3sv({Nx :: i(), Ny :: i(), Nz :: i()}) -> ok.

只要发出 gl:normal(),当前法线就会设置为给定的坐标。字节、短整型或整数参数会使用线性映射转换为浮点格式,该映射将最正的可表示整数值映射为 1.0,并将最负的可表示整数值映射为 -1.0。

外部文档。

链接到此函数

normalPointer(Type, Stride, Ptr)

查看源代码
-spec normalPointer(Type :: enum(), Stride :: i(), Ptr :: offset() | mem()) -> ok.

gl:normalPointer/3 指定渲染时使用的法线数组的位置和数据格式。Type 指定每个法线坐标的数据类型,Stride 指定从一个法线到下一个法线的字节跨度,允许将顶点和属性打包到单个数组或存储在单独的数组中。(在某些实现中,单数组存储可能更有效;请参阅 gl:interleavedArrays/3。)

外部文档。

链接到此函数

objectPtrLabel(Ptr, Length, Label)

查看源代码
-spec objectPtrLabel(Ptr :: offset() | mem(), Length :: i(), Label :: string()) -> ok.

gl:objectPtrLabel/3 标记由 Ptr 标识的同步对象。

外部文档。

链接到此函数

ortho(Left, Right, Bottom, Top, Near_val, Far_val)

查看源代码
-spec ortho(Left :: f(), Right :: f(), Bottom :: f(), Top :: f(), Near_val :: f(), Far_val :: f()) -> ok.

gl:ortho/6 描述产生平行投影的变换。当前矩阵(请参阅 gl:matrixMode/1)乘以该矩阵,结果替换当前矩阵,如同使用以下矩阵作为参数调用 gl:multMatrix() 一样

外部文档。

-spec passThrough(Token :: f()) -> ok.

外部文档。

链接到此函数

patchParameterfv(Pname, Values)

查看源代码
-spec patchParameterfv(Pname :: enum(), Values :: [f()]) -> ok.

等效于 patchParameteri/2

链接到此函数

patchParameteri(Pname, Value)

查看源代码
-spec patchParameteri(Pname :: enum(), Value :: i()) -> ok.

gl:patchParameter() 指定将用于面片图元的参数。Pname 指定要修改的参数,并且必须是 ?GL_PATCH_VERTICES?GL_PATCH_DEFAULT_OUTER_LEVEL?GL_PATCH_DEFAULT_INNER_LEVEL。对于 gl:patchParameteri/2Value 指定由 Pname 指定的参数的新值。对于 gl:patchParameterfv/2Values 指定包含由 Pname 指定的参数的新值的数组的地址。

外部文档。

链接到此函数

pauseTransformFeedback()

查看源代码
-spec pauseTransformFeedback() -> ok.

gl:pauseTransformFeedback/0 暂停当前活动的变换反馈对象上的变换反馈操作。当变换反馈操作暂停时,变换反馈仍然被认为是活动的,并且更改与该对象相关的大多数变换反馈状态会导致错误。但是,可以在变换反馈暂停时绑定新的变换反馈对象。

外部文档。

链接到此函数

pixelMapfv(Map, Mapsize, Values)

查看源代码
-spec pixelMapfv(Map :: enum(), Mapsize :: i(), Values :: binary()) -> ok.

等效于 pixelMapusv/3

链接到此函数

pixelMapuiv(Map, Mapsize, Values)

查看源代码
-spec pixelMapuiv(Map :: enum(), Mapsize :: i(), Values :: binary()) -> ok.

等效于 pixelMapusv/3

链接到此函数

pixelMapusv(Map, Mapsize, Values)

查看源代码
-spec pixelMapusv(Map :: enum(), Mapsize :: i(), Values :: binary()) -> ok.

gl:pixelMap() 设置转换表或 maps,供 gl:copyPixels/5gl:copyTexImage1D/7gl:copyTexImage2D/8gl:copyTexSubImage1D/6gl:copyTexSubImage2D/8gl:copyTexSubImage3D/9gl:drawPixels/5gl:readPixels/7gl:texImage1D/8gl:texImage2D/9gl:texImage3D/10gl:texSubImage1D/7gl:texSubImage2D/9gl:texSubImage3D/11 使用。此外,如果支持 ARB_imaging 子集,则例程 gl:colorTable/6gl:colorSubTable/6gl:convolutionFilter1D/6gl:convolutionFilter2D/7gl:histogram/4gl:minmax/3gl:separableFilter2D/8 也使用。这些映射的用法在 gl:pixelTransfer() 参考页中完整描述,并在像素和纹理图像命令的参考页中部分描述。本参考页中仅描述映射的规范。

外部文档。

链接到此函数

pixelStoref(Pname, Param)

查看源代码
-spec pixelStoref(Pname :: enum(), Param :: f()) -> ok.

等效于 pixelStorei/2

链接到此函数

pixelStorei(Pname, Param)

查看源代码
-spec pixelStorei(Pname :: enum(), Param :: i()) -> ok.

gl:pixelStore() 设置影响后续 gl:readPixels/7 操作的像素存储模式,以及纹理图案的解包(请参阅 gl:texImage1D/8gl:texImage2D/9gl:texImage3D/10gl:texSubImage1D/7gl:texSubImage2D/9gl:texSubImage3D/11)、gl:compressedTexImage1D/7gl:compressedTexImage2D/8gl:compressedTexImage3D/9gl:compressedTexSubImage1D/7gl:compressedTexSubImage2D/9gl:compressedTexSubImage1D/7

外部文档。

链接到此函数

pixelTransferf(Pname, Param)

查看源代码
-spec pixelTransferf(Pname :: enum(), Param :: f()) -> ok.

等效于 pixelTransferi/2

链接到此函数

pixelTransferi(Pname, Param)

查看源代码
-spec pixelTransferi(Pname :: enum(), Param :: i()) -> ok.

gl:pixelTransfer() 设置像素传输模式,该模式影响后续的 gl:copyPixels/5gl:copyTexImage1D/7gl:copyTexImage2D/8gl:copyTexSubImage1D/6gl:copyTexSubImage2D/8gl:copyTexSubImage3D/9gl:drawPixels/5gl:readPixels/7gl:texImage1D/8gl:texImage2D/9gl:texImage3D/10gl:texSubImage1D/7gl:texSubImage2D/9gl:texSubImage3D/11 命令。此外,如果支持 ARB_imaging 子集,则例程 gl:colorTable/6gl:colorSubTable/6gl:convolutionFilter1D/6gl:convolutionFilter2D/7gl:histogram/4gl:minmax/3gl:separableFilter2D/8 也会受到影响。像素传输模式指定的算法在从帧缓冲区读取像素后(gl:copyPixels/5gl:copyTexImage1D/7gl:copyTexImage2D/8gl:copyTexSubImage1D/6gl:copyTexSubImage2D/8gl:copyTexSubImage3D/9gl:readPixels/7),或从客户端内存解包后(gl:drawPixels/5gl:texImage1D/8gl:texImage2D/9gl:texImage3D/10gl:texSubImage1D/7gl:texSubImage2D/9gl:texSubImage3D/11)对像素进行操作。像素传输操作按照相同的顺序和相同的方式进行,无论哪个命令导致像素操作。像素存储模式(请参阅 gl:pixelStore())控制从客户端内存读取的像素的解包以及写回客户端内存的像素的打包。

外部文档。

链接到此函数

pixelZoom(Xfactor, Yfactor)

查看源代码
-spec pixelZoom(Xfactor :: f(), Yfactor :: f()) -> ok.

gl:pixelZoom/2 指定 x 和 y 缩放因子的值。在执行 gl:drawPixels/5gl:copyPixels/5 期间,如果 ( xr, yr) 是当前的栅格位置,并且给定元素位于像素矩形的第 m 行和第 n 列,则中心位于以下矩形中的像素

外部文档。

链接到此函数

pointParameterf(Pname, Param)

查看源代码
-spec pointParameterf(Pname :: enum(), Param :: f()) -> ok.

等效于 pointParameteriv/2

链接到此函数

pointParameterfv(Pname, Params)

查看源代码
-spec pointParameterfv(Pname :: enum(), Params :: tuple()) -> ok.

等效于 pointParameteriv/2

链接到此函数

pointParameteri(Pname, Param)

查看源代码
-spec pointParameteri(Pname :: enum(), Param :: i()) -> ok.

等效于 pointParameteriv/2

链接到此函数

pointParameteriv(Pname, Params)

查看源代码
-spec pointParameteriv(Pname :: enum(), Params :: tuple()) -> ok.

以下值可用于 Pname

外部文档。

-spec pointSize(Size :: f()) -> ok.

gl:pointSize/1 指定点的栅格化直径。如果禁用点大小模式(请参阅使用参数 ?GL_PROGRAM_POINT_SIZEgl:enable/1),则此值将用于栅格化点。否则,将使用写入着色语言内置变量 gl_PointSize 的值。

外部文档。

链接到此函数

polygonMode(Face, Mode)

查看源代码
-spec polygonMode(Face :: enum(), Mode :: enum()) -> ok.

gl:polygonMode/2 控制用于栅格化的多边形的解释。Face 描述 Mode 应用于哪个多边形:正面和背面多边形 (?GL_FRONT_AND_BACK)。多边形模式仅影响多边形的最终栅格化。特别是,在应用这些模式之前,多边形的顶点会被照亮,并且多边形会被裁剪并可能被剔除。

外部文档。

链接到此函数

polygonOffset(Factor, Units)

查看源代码
-spec polygonOffset(Factor :: f(), Units :: f()) -> ok.

当启用 ?GL_POLYGON_OFFSET_FILL?GL_POLYGON_OFFSET_LINE?GL_POLYGON_OFFSET_POINT 时,每个片段的 depth 值将在从适当顶点的 depth 值插值后进行偏移。偏移的值为 factor×DZ+r×units,其中 DZ 是多边形相对于屏幕区域的深度变化测量值,r 是保证为给定实现产生可解析偏移的最小值。在执行深度测试之前,并在将值写入深度缓冲区之前添加偏移。

外部文档。

链接到此函数

polygonOffsetClamp(Factor, Units, Clamp)

查看源代码
-spec polygonOffsetClamp(Factor :: f(), Units :: f(), Clamp :: f()) -> ok.

无可用文档。

-spec polygonStipple(Mask :: binary()) -> ok.

多边形点画,如线条点画(请参阅 gl:lineStipple/2),会屏蔽栅格化产生的某些片段,从而创建图案。点画独立于多边形抗锯齿。

外部文档。

-spec popAttrib() -> ok.

等效于 pushAttrib/1

-spec popClientAttrib() -> ok.

等效于 pushClientAttrib/1

-spec popDebugGroup() -> ok.

等效于 pushDebugGroup/4

-spec popMatrix() -> ok.

等效于 pushMatrix/0

-spec popName() -> ok.

等效于 pushName/1

链接到此函数

primitiveRestartIndex(Index)

查看源代码
-spec primitiveRestartIndex(Index :: i()) -> ok.

gl:primitiveRestartIndex/1 指定在启用图元重启时特殊对待的顶点数组元素。这称为图元重启索引。

外部文档。

链接到此函数

prioritizeTextures(Textures, Priorities)

查看源代码
-spec prioritizeTextures(Textures :: [i()], Priorities :: [clamp()]) -> ok.

gl:prioritizeTextures/2Priorities 中给出的 N 个纹理优先级分配给 Textures 中命名的 N 个纹理。

外部文档。

链接到此函数

programBinary(Program, BinaryFormat, Binary)

查看源代码
-spec programBinary(Program :: i(), BinaryFormat :: enum(), Binary :: binary()) -> ok.

gl:programBinary/3 使用先前从 gl:getProgramBinary/2 返回的程序二进制文件加载程序对象。BinaryFormatBinary 必须是先前调用 gl:getProgramBinary/2 返回的值,并且 Length 必须是 gl:getProgramBinary/2 返回的长度,或者在 Pname 设置为 ?GL_PROGRAM_BINARY_LENGTH 时调用 gl:getProgram() 返回的长度。如果未满足这些条件,则加载程序二进制文件将失败,并且 Program?GL_LINK_STATUS 将设置为 ?GL_FALSE

外部文档。

链接到此函数

programParameteri(Program, Pname, Value)

查看源代码
-spec programParameteri(Program :: i(), Pname :: enum(), Value :: i()) -> ok.

gl:programParameter() 为程序对象 Program 指定由 Pname 命名的参数的新值。

外部文档。

链接到此函数

programUniform1d(Program, Location, V0)

查看源代码
-spec programUniform1d(Program :: i(), Location :: i(), V0 :: f()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform1dv(Program, Location, Value)

查看源代码
-spec programUniform1dv(Program :: i(), Location :: i(), Value :: [f()]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform1f(Program, Location, V0)

查看源代码
-spec programUniform1f(Program :: i(), Location :: i(), V0 :: f()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform1fv(Program, Location, Value)

查看源代码
-spec programUniform1fv(Program :: i(), Location :: i(), Value :: [f()]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform1i(Program, Location, V0)

查看源代码
-spec programUniform1i(Program :: i(), Location :: i(), V0 :: i()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform1iv(Program, Location, Value)

查看源代码
-spec programUniform1iv(Program :: i(), Location :: i(), Value :: [i()]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform1ui(Program, Location, V0)

查看源代码
-spec programUniform1ui(Program :: i(), Location :: i(), V0 :: i()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform1uiv(Program, Location, Value)

查看源代码
-spec programUniform1uiv(Program :: i(), Location :: i(), Value :: [i()]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform2d(Program, Location, V0, V1)

查看源代码
-spec programUniform2d(Program :: i(), Location :: i(), V0 :: f(), V1 :: f()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform2dv(Program, Location, Value)

查看源代码
-spec programUniform2dv(Program :: i(), Location :: i(), Value :: [{f(), f()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform2f(Program, Location, V0, V1)

查看源代码
-spec programUniform2f(Program :: i(), Location :: i(), V0 :: f(), V1 :: f()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform2fv(Program, Location, Value)

查看源代码
-spec programUniform2fv(Program :: i(), Location :: i(), Value :: [{f(), f()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform2i(Program, Location, V0, V1)

查看源代码
-spec programUniform2i(Program :: i(), Location :: i(), V0 :: i(), V1 :: i()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform2iv(Program, Location, Value)

查看源代码
-spec programUniform2iv(Program :: i(), Location :: i(), Value :: [{i(), i()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform2ui(Program, Location, V0, V1)

查看源代码
-spec programUniform2ui(Program :: i(), Location :: i(), V0 :: i(), V1 :: i()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform2uiv(Program, Location, Value)

查看源代码
-spec programUniform2uiv(Program :: i(), Location :: i(), Value :: [{i(), i()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform3d(Program, Location, V0, V1, V2)

查看源代码
-spec programUniform3d(Program :: i(), Location :: i(), V0 :: f(), V1 :: f(), V2 :: f()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform3dv(Program, Location, Value)

查看源代码
-spec programUniform3dv(Program :: i(), Location :: i(), Value :: [{f(), f(), f()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform3f(Program, Location, V0, V1, V2)

查看源代码
-spec programUniform3f(Program :: i(), Location :: i(), V0 :: f(), V1 :: f(), V2 :: f()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform3fv(Program, Location, Value)

查看源代码
-spec programUniform3fv(Program :: i(), Location :: i(), Value :: [{f(), f(), f()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform3i(Program, Location, V0, V1, V2)

查看源代码
-spec programUniform3i(Program :: i(), Location :: i(), V0 :: i(), V1 :: i(), V2 :: i()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform3iv(Program, Location, Value)

查看源代码
-spec programUniform3iv(Program :: i(), Location :: i(), Value :: [{i(), i(), i()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform3ui(Program, Location, V0, V1, V2)

查看源代码
-spec programUniform3ui(Program :: i(), Location :: i(), V0 :: i(), V1 :: i(), V2 :: i()) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform3uiv(Program, Location, Value)

查看源代码
-spec programUniform3uiv(Program :: i(), Location :: i(), Value :: [{i(), i(), i()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform4d(Program, Location, V0, V1, V2, V3)

查看源代码
-spec programUniform4d(Program :: i(), Location :: i(), V0 :: f(), V1 :: f(), V2 :: f(), V3 :: f()) ->
                          ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform4dv(Program, Location, Value)

查看源代码
-spec programUniform4dv(Program :: i(), Location :: i(), Value :: [{f(), f(), f(), f()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform4f(Program, Location, V0, V1, V2, V3)

查看源代码
-spec programUniform4f(Program :: i(), Location :: i(), V0 :: f(), V1 :: f(), V2 :: f(), V3 :: f()) ->
                          ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform4fv(Program, Location, Value)

查看源代码
-spec programUniform4fv(Program :: i(), Location :: i(), Value :: [{f(), f(), f(), f()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform4i(Program, Location, V0, V1, V2, V3)

查看源代码
-spec programUniform4i(Program :: i(), Location :: i(), V0 :: i(), V1 :: i(), V2 :: i(), V3 :: i()) ->
                          ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform4iv(Program, Location, Value)

查看源代码
-spec programUniform4iv(Program :: i(), Location :: i(), Value :: [{i(), i(), i(), i()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform4ui(Program, Location, V0, V1, V2, V3)

查看源代码
-spec programUniform4ui(Program :: i(), Location :: i(), V0 :: i(), V1 :: i(), V2 :: i(), V3 :: i()) ->
                           ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniform4uiv(Program, Location, Value)

查看源代码
-spec programUniform4uiv(Program :: i(), Location :: i(), Value :: [{i(), i(), i(), i()}]) -> ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix2dv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix2dv(Program :: i(),
                              Location :: i(),
                              Transpose :: 0 | 1,
                              Value :: [{f(), f(), f(), f()}]) ->
                                 ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix2fv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix2fv(Program :: i(),
                              Location :: i(),
                              Transpose :: 0 | 1,
                              Value :: [{f(), f(), f(), f()}]) ->
                                 ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix2x3dv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix2x3dv(Program :: i(),
                                Location :: i(),
                                Transpose :: 0 | 1,
                                Value :: [{f(), f(), f(), f(), f(), f()}]) ->
                                   ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix2x3fv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix2x3fv(Program :: i(),
                                Location :: i(),
                                Transpose :: 0 | 1,
                                Value :: [{f(), f(), f(), f(), f(), f()}]) ->
                                   ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix2x4dv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix2x4dv(Program, Location, Transpose, Value) -> ok
                                   when
                                       Program :: i(),
                                       Location :: i(),
                                       Transpose :: 0 | 1,
                                       Value :: [{f(), f(), f(), f(), f(), f(), f(), f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix2x4fv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix2x4fv(Program, Location, Transpose, Value) -> ok
                                   when
                                       Program :: i(),
                                       Location :: i(),
                                       Transpose :: 0 | 1,
                                       Value :: [{f(), f(), f(), f(), f(), f(), f(), f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix3dv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix3dv(Program, Location, Transpose, Value) -> ok
                                 when
                                     Program :: i(),
                                     Location :: i(),
                                     Transpose :: 0 | 1,
                                     Value :: [{f(), f(), f(), f(), f(), f(), f(), f(), f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix3fv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix3fv(Program, Location, Transpose, Value) -> ok
                                 when
                                     Program :: i(),
                                     Location :: i(),
                                     Transpose :: 0 | 1,
                                     Value :: [{f(), f(), f(), f(), f(), f(), f(), f(), f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix3x2dv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix3x2dv(Program :: i(),
                                Location :: i(),
                                Transpose :: 0 | 1,
                                Value :: [{f(), f(), f(), f(), f(), f()}]) ->
                                   ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix3x2fv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix3x2fv(Program :: i(),
                                Location :: i(),
                                Transpose :: 0 | 1,
                                Value :: [{f(), f(), f(), f(), f(), f()}]) ->
                                   ok.

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix3x4dv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix3x4dv(Program, Location, Transpose, Value) -> ok
                                   when
                                       Program :: i(),
                                       Location :: i(),
                                       Transpose :: 0 | 1,
                                       Value ::
                                           [{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix3x4fv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix3x4fv(Program, Location, Transpose, Value) -> ok
                                   when
                                       Program :: i(),
                                       Location :: i(),
                                       Transpose :: 0 | 1,
                                       Value ::
                                           [{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix4dv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix4dv(Program, Location, Transpose, Value) -> ok
                                 when
                                     Program :: i(),
                                     Location :: i(),
                                     Transpose :: 0 | 1,
                                     Value ::
                                         [{f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix4fv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix4fv(Program, Location, Transpose, Value) -> ok
                                 when
                                     Program :: i(),
                                     Location :: i(),
                                     Transpose :: 0 | 1,
                                     Value ::
                                         [{f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f(),
                                           f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix4x2dv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix4x2dv(Program, Location, Transpose, Value) -> ok
                                   when
                                       Program :: i(),
                                       Location :: i(),
                                       Transpose :: 0 | 1,
                                       Value :: [{f(), f(), f(), f(), f(), f(), f(), f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix4x2fv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix4x2fv(Program, Location, Transpose, Value) -> ok
                                   when
                                       Program :: i(),
                                       Location :: i(),
                                       Transpose :: 0 | 1,
                                       Value :: [{f(), f(), f(), f(), f(), f(), f(), f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix4x3dv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix4x3dv(Program, Location, Transpose, Value) -> ok
                                   when
                                       Program :: i(),
                                       Location :: i(),
                                       Transpose :: 0 | 1,
                                       Value ::
                                           [{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}].

等效于 programUniformMatrix4x3fv/4

链接到此函数

programUniformMatrix4x3fv(Program, Location, Transpose, Value)

查看源代码
-spec programUniformMatrix4x3fv(Program, Location, Transpose, Value) -> ok
                                   when
                                       Program :: i(),
                                       Location :: i(),
                                       Transpose :: 0 | 1,
                                       Value ::
                                           [{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}].

gl:programUniform() 修改 uniform 变量或 uniform 变量数组的值。要修改的 uniform 变量的位置由 Location 指定,它应该是 gl:getUniformLocation/2 返回的值。gl:programUniform() 操作由 Program 指定的程序对象。

外部文档。

-spec provokingVertex(Mode :: enum()) -> ok.

Flatshading 顶点着色器可变输出意味着为图元的每个顶点分配该输出的相同值。从中导出这些值的顶点称为 provoking vertexgl:provokingVertex/1 指定哪个顶点用作平面着色可变数据的来源。

外部文档。

-spec pushAttrib(Mask :: i()) -> ok.

gl:pushAttrib/1 接受一个参数,一个掩码,指示要保存在属性堆栈上的状态变量组。使用符号常量在掩码中设置位。Mask 通常通过指定几个这些常量的按位或来构造。特殊掩码 ?GL_ALL_ATTRIB_BITS 可用于保存所有可堆叠状态。

外部文档。

链接到此函数

pushClientAttrib(Mask)

查看源代码
-spec pushClientAttrib(Mask :: i()) -> ok.

gl:pushClientAttrib/1 接受一个参数,一个掩码,指示要保存在客户端属性堆栈上的客户端状态变量组。使用符号常量在掩码中设置位。Mask 通常通过指定几个这些常量的按位或来构造。特殊掩码 ?GL_CLIENT_ALL_ATTRIB_BITS 可用于保存所有可堆叠客户端状态。

外部文档。

链接到此函数

pushDebugGroup(Source, Id, Length, Message)

查看源代码
-spec pushDebugGroup(Source :: enum(), Id :: i(), Length :: i(), Message :: string()) -> ok.

gl:pushDebugGroup/4 将由字符串 Message 描述的调试组推送到命令流中。Id 的值指定生成的消息的 ID。参数 Length 包含 Message 中的字符数。如果 Length 为负数,则表示 Message 包含一个以 null 结尾的字符串。消息具有指定的 SourceIdType``?GL_DEBUG_TYPE_PUSH_GROUPSeverity``?GL_DEBUG_SEVERITY_NOTIFICATION。GL 将在调试组堆栈的顶部放置一个新的调试组,该调试组继承先前驻留在调试组堆栈顶部的调试组的调试输出量控制。由于调试组是严格分层的,因此对调试输出量的任何其他控制都仅适用于活动调试组以及推送到活动调试组顶部的调试组。

外部文档。

-spec pushMatrix() -> ok.

每个矩阵模式都有一个矩阵堆栈。在 ?GL_MODELVIEW 模式下,堆栈深度至少为 32。在其他模式下,?GL_COLOR?GL_PROJECTION?GL_TEXTURE,深度至少为 2。任何模式下的当前矩阵都是该模式堆栈顶部的矩阵。

外部文档。

-spec pushName(Name :: i()) -> ok.

在选择模式期间,使用名称堆栈来唯一标识渲染命令集。它由一组有序的无符号整数组成,初始为空。

外部文档。

链接到此函数

queryCounter(Id, Target)

查看源代码
-spec queryCounter(Id :: i(), Target :: enum()) -> ok.

gl:queryCounter/2 使 GL 将当前时间记录到名为 Id 的查询对象中。Target 必须是 ?GL_TIMESTAMP。时间是在完全实现 GL 客户端和服务器状态以及帧缓冲区上的所有先前命令之后记录的。记录时间后,该对象的查询结果将被标记为可用。gl:queryCounter/2 计时器查询可以在目标为 ?GL_TIME_ELAPSEDgl:beginQuery/2 / gl:endQuery/1 块内使用,它不会影响该查询对象的结果。

外部文档。

-spec rasterPos2d(X :: f(), Y :: f()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos2dv({X :: f(), Y :: f()}) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos2f(X :: f(), Y :: f()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos2fv({X :: f(), Y :: f()}) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos2i(X :: i(), Y :: i()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos2iv({X :: i(), Y :: i()}) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos2s(X :: i(), Y :: i()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos2sv({X :: i(), Y :: i()}) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos3d(X :: f(), Y :: f(), Z :: f()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos3dv({X :: f(), Y :: f(), Z :: f()}) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos3f(X :: f(), Y :: f(), Z :: f()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos3fv({X :: f(), Y :: f(), Z :: f()}) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos3i(X :: i(), Y :: i(), Z :: i()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos3iv({X :: i(), Y :: i(), Z :: i()}) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos3s(X :: i(), Y :: i(), Z :: i()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos3sv({X :: i(), Y :: i(), Z :: i()}) -> ok.

等效于 rasterPos4sv/1

链接到此函数

rasterPos4d(X, Y, Z, W)

查看源代码
-spec rasterPos4d(X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos4dv({X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok.

等效于 rasterPos4sv/1

链接到此函数

rasterPos4f(X, Y, Z, W)

查看源代码
-spec rasterPos4f(X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos4fv({X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok.

等效于 rasterPos4sv/1

链接到此函数

rasterPos4i(X, Y, Z, W)

查看源代码
-spec rasterPos4i(X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos4iv({X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok.

等效于 rasterPos4sv/1

链接到此函数

rasterPos4s(X, Y, Z, W)

查看源代码
-spec rasterPos4s(X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok.

等效于 rasterPos4sv/1

-spec rasterPos4sv({X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok.

GL 在窗口坐标中维护一个 3D 位置。此位置称为光栅位置,用于定位像素和位图写入操作。它以亚像素精度维护。请参阅 gl:bitmap/7gl:drawPixels/5gl:copyPixels/5

外部文档。

-spec readBuffer(Mode :: enum()) -> ok.

gl:readBuffer/1 指定一个颜色缓冲区作为后续 gl:readPixels/7gl:copyTexImage1D/7gl:copyTexImage2D/8gl:copyTexSubImage1D/6gl:copyTexSubImage2D/8gl:copyTexSubImage3D/9 命令的来源。Mode 接受十二个或更多预定义值之一。在完全配置的系统中,?GL_FRONT?GL_LEFT?GL_FRONT_LEFT 都命名为前左缓冲区,?GL_FRONT_RIGHT?GL_RIGHT 命名为前右缓冲区,?GL_BACK_LEFT?GL_BACK 命名为后左缓冲区。此外,常量 ?GL_COLOR_ATTACHMENT``i 可用于指示第 i 个颜色附件,其中 i 的范围从零到 ?GL_MAX_COLOR_ATTACHMENTS 的值减一。

外部文档。

链接到此函数

readPixels(X, Y, Width, Height, Format, Type, Pixels)

查看源代码
-spec readPixels(X, Y, Width, Height, Format, Type, Pixels) -> ok
                    when
                        X :: i(),
                        Y :: i(),
                        Width :: i(),
                        Height :: i(),
                        Format :: enum(),
                        Type :: enum(),
                        Pixels :: mem().

gl:readPixels/7glReadnPixels 从帧缓冲区返回像素数据,从左下角位于位置 (X, Y) 的像素开始,到从位置 Data 开始的客户端内存中。多个参数控制像素数据在放入客户端内存之前的处理。这些参数使用 gl:pixelStore() 设置。此参考页描述了 gl:readPixels/7glReadnPixels 对这些三个命令指定的大多数但并非全部参数的影响。

外部文档。

-spec rectd(X1 :: f(), Y1 :: f(), X2 :: f(), Y2 :: f()) -> ok.

等效于 rectsv/2

-spec rectdv(V1 :: {f(), f()}, V2 :: {f(), f()}) -> ok.

等效于 rectsv/2

-spec rectf(X1 :: f(), Y1 :: f(), X2 :: f(), Y2 :: f()) -> ok.

等效于 rectsv/2

-spec rectfv(V1 :: {f(), f()}, V2 :: {f(), f()}) -> ok.

等效于 rectsv/2

-spec recti(X1 :: i(), Y1 :: i(), X2 :: i(), Y2 :: i()) -> ok.

等效于 rectsv/2

-spec rectiv(V1 :: {i(), i()}, V2 :: {i(), i()}) -> ok.

等效于 rectsv/2

-spec rects(X1 :: i(), Y1 :: i(), X2 :: i(), Y2 :: i()) -> ok.

等效于 rectsv/2

-spec rectsv(V1 :: {i(), i()}, V2 :: {i(), i()}) -> ok.

gl:rect() 支持将矩形有效地指定为两个角点。每个矩形命令接受四个参数,这些参数组织为两个连续的 (x y) 坐标对,或两个指向数组的指针,每个数组包含一个 (x y) 对。生成的矩形在 z=0 平面中定义。

外部文档。

链接到此函数

releaseShaderCompiler()

查看源代码
-spec releaseShaderCompiler() -> ok.

gl:releaseShaderCompiler/0 向实现提供一个提示,它可以释放与其着色器编译器关联的内部资源。gl:compileShader/1 随后可能会被调用,并且该实现在那时可能会重新分配先前通过调用 gl:releaseShaderCompiler/0 释放的资源。

外部文档。

链接到此函数

renderbufferStorage(Target, Internalformat, Width, Height)

查看源代码
-spec renderbufferStorage(Target :: enum(), Internalformat :: enum(), Width :: i(), Height :: i()) -> ok.

gl:renderbufferStorage/4 等效于调用 gl:renderbufferStorageMultisample/5,并将 Samples 设置为零,而 glNamedRenderbufferStorage 等效于调用 glNamedRenderbufferStorageMultisample,并将样本设置为零。

外部文档。

链接到此函数

renderbufferStorageMultisample(Target, Samples, Internalformat, Width, Height)

查看源代码
-spec renderbufferStorageMultisample(Target :: enum(),
                                     Samples :: i(),
                                     Internalformat :: enum(),
                                     Width :: i(),
                                     Height :: i()) ->
                                        ok.

gl:renderbufferStorageMultisample/5glNamedRenderbufferStorageMultisample 建立渲染缓冲区对象的图像的数据存储、格式、维度和样本数。

外部文档。

-spec renderMode(Mode :: enum()) -> i().

gl:renderMode/1 设置光栅化模式。它接受一个参数,Mode,它可以采用三个预定义值之一

外部文档。

链接到此函数

resetHistogram(Target)

查看源代码
-spec resetHistogram(Target :: enum()) -> ok.

gl:resetHistogram/1 将当前直方图表的所有元素重置为零。

外部文档。

-spec resetMinmax(Target :: enum()) -> ok.

gl:resetMinmax/1 将当前最小值最大值表的元素重置为其初始值:``最大'' 元素接收最小的可能分量值,而 ``最小'' 元素接收最大可能的组件值。

外部文档。

链接到此函数

resumeTransformFeedback()

查看源代码
-spec resumeTransformFeedback() -> ok.

gl:resumeTransformFeedback/0 恢复当前活动变换反馈对象上的变换反馈操作。当变换反馈操作暂停时,变换反馈仍然被认为是活动的,并且更改与对象相关的大多数变换反馈状态会导致错误。但是,可以在暂停变换反馈时绑定一个新的变换反馈对象。

外部文档。

链接到此函数

rotated(Angle, X, Y, Z)

查看源代码
-spec rotated(Angle :: f(), X :: f(), Y :: f(), Z :: f()) -> ok.

等效于 rotatef/4

链接到此函数

rotatef(Angle, X, Y, Z)

查看源代码
-spec rotatef(Angle :: f(), X :: f(), Y :: f(), Z :: f()) -> ok.

gl:rotate() 产生一个围绕向量 (x y z) 旋转 Angle 度的旋转。当前矩阵(参见 gl:matrixMode/1)与一个旋转矩阵相乘,并将乘积替换当前矩阵,如同调用了 gl:multMatrix(),并使用以下矩阵作为其参数。

外部文档。

链接到此函数

sampleCoverage(Value, Invert)

查看源代码
-spec sampleCoverage(Value :: clamp(), Invert :: 0 | 1) -> ok.

多重采样在多个与实现相关的子像素位置多次采样像素,以产生抗锯齿效果。如果启用了多重采样,它将透明地对点、线、多边形和图像进行抗锯齿处理。

外部文档。

链接到此函数

sampleMaski(MaskNumber, Mask)

查看源代码
-spec sampleMaski(MaskNumber :: i(), Mask :: i()) -> ok.

gl:sampleMaski/2 设置多字采样掩码 ?GL_SAMPLE_MASK_VALUE 的一个 32 位子字。

外部文档。

链接到此函数

samplerParameterf(Sampler, Pname, Param)

查看源代码
-spec samplerParameterf(Sampler :: i(), Pname :: enum(), Param :: f()) -> ok.

等效于 samplerParameteriv/3

链接到此函数

samplerParameterfv(Sampler, Pname, Param)

查看源代码
-spec samplerParameterfv(Sampler :: i(), Pname :: enum(), Param :: [f()]) -> ok.

等效于 samplerParameteriv/3

链接到此函数

samplerParameterIiv(Sampler, Pname, Param)

查看源代码
-spec samplerParameterIiv(Sampler :: i(), Pname :: enum(), Param :: [i()]) -> ok.

等效于 samplerParameteriv/3

链接到此函数

samplerParameterIuiv(Sampler, Pname, Param)

查看源代码
-spec samplerParameterIuiv(Sampler :: i(), Pname :: enum(), Param :: [i()]) -> ok.

等效于 samplerParameteriv/3

链接到此函数

samplerParameteri(Sampler, Pname, Param)

查看源代码
-spec samplerParameteri(Sampler :: i(), Pname :: enum(), Param :: i()) -> ok.

等效于 samplerParameteriv/3

链接到此函数

samplerParameteriv(Sampler, Pname, Param)

查看源代码
-spec samplerParameteriv(Sampler :: i(), Pname :: enum(), Param :: [i()]) -> ok.

gl:samplerParameter()Params 中的值或多个值赋给指定为 Pname 的采样器参数。Sampler 指定要修改的采样器对象,并且必须是先前调用 gl:genSamplers/1 返回的采样器对象的名称。以下符号在 Pname 中被接受

外部文档。

-spec scaled(X :: f(), Y :: f(), Z :: f()) -> ok.

等效于 scalef/3

-spec scalef(X :: f(), Y :: f(), Z :: f()) -> ok.

gl:scale() 产生沿 xyz 轴的不均匀缩放。这三个参数指示沿三个轴中的每一个轴所需的缩放因子。

外部文档。

链接到此函数

scissor(X, Y, Width, Height)

查看源代码
-spec scissor(X :: i(), Y :: i(), Width :: i(), Height :: i()) -> ok.

gl:scissor/4 在窗口坐标中定义一个称为剪刀盒的矩形。前两个参数 XY 指定该框的左下角。WidthHeight 指定该框的宽度和高度。

外部文档。

链接到此函数

scissorArrayv(First, V)

查看源代码
-spec scissorArrayv(First :: i(), V :: [{i(), i(), i(), i()}]) -> ok.

gl:scissorArrayv/2 为每个视口在窗口坐标中定义称为剪刀盒的矩形。First 指定要修改的第一个剪刀盒的索引,Count 指定要修改的剪刀盒的数量。First 必须小于 ?GL_MAX_VIEWPORTS 的值,并且 First + Count 必须小于或等于 ?GL_MAX_VIEWPORTS 的值。V 指定一个整数数组的地址,该数组按顺序指定剪刀盒的左下角以及剪刀盒的宽度和高度。

外部文档。

链接到此函数

scissorIndexed(Index, Left, Bottom, Width, Height)

查看源代码
-spec scissorIndexed(Index :: i(), Left :: i(), Bottom :: i(), Width :: i(), Height :: i()) -> ok.

等效于 scissorIndexedv/2

链接到此函数

scissorIndexedv(Index, V)

查看源代码
-spec scissorIndexedv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

gl:scissorIndexed/5 为指定的视口定义剪刀盒。Index 指定要修改的剪刀盒的索引。Index 必须小于 ?GL_MAX_VIEWPORTS 的值。对于 gl:scissorIndexed/5LeftBottomWidthHeight 分别指定剪刀盒的左侧、底部、宽度和高度(以像素为单位)。对于 gl:scissorIndexedv/2V 指定一个整数数组的地址,该数组按顺序指定剪刀盒的左下角以及剪刀盒的宽度和高度。

外部文档。

链接到此函数

secondaryColor3b(Red, Green, Blue)

查看源代码
-spec secondaryColor3b(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 secondaryColor3usv/1

-spec secondaryColor3bv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 secondaryColor3usv/1

链接到此函数

secondaryColor3d(Red, Green, Blue)

查看源代码
-spec secondaryColor3d(Red :: f(), Green :: f(), Blue :: f()) -> ok.

等效于 secondaryColor3usv/1

-spec secondaryColor3dv({Red :: f(), Green :: f(), Blue :: f()}) -> ok.

等效于 secondaryColor3usv/1

链接到此函数

secondaryColor3f(Red, Green, Blue)

查看源代码
-spec secondaryColor3f(Red :: f(), Green :: f(), Blue :: f()) -> ok.

等效于 secondaryColor3usv/1

-spec secondaryColor3fv({Red :: f(), Green :: f(), Blue :: f()}) -> ok.

等效于 secondaryColor3usv/1

链接到此函数

secondaryColor3i(Red, Green, Blue)

查看源代码
-spec secondaryColor3i(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 secondaryColor3usv/1

-spec secondaryColor3iv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 secondaryColor3usv/1

链接到此函数

secondaryColor3s(Red, Green, Blue)

查看源代码
-spec secondaryColor3s(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 secondaryColor3usv/1

-spec secondaryColor3sv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 secondaryColor3usv/1

链接到此函数

secondaryColor3ub(Red, Green, Blue)

查看源代码
-spec secondaryColor3ub(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 secondaryColor3usv/1

-spec secondaryColor3ubv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 secondaryColor3usv/1

链接到此函数

secondaryColor3ui(Red, Green, Blue)

查看源代码
-spec secondaryColor3ui(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 secondaryColor3usv/1

-spec secondaryColor3uiv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

等效于 secondaryColor3usv/1

链接到此函数

secondaryColor3us(Red, Green, Blue)

查看源代码
-spec secondaryColor3us(Red :: i(), Green :: i(), Blue :: i()) -> ok.

等效于 secondaryColor3usv/1

-spec secondaryColor3usv({Red :: i(), Green :: i(), Blue :: i()}) -> ok.

GL 存储一个主四值 RGBA 颜色和一个次四值 RGBA 颜色(其中 alpha 始终设置为 0.0),这两个颜色与每个顶点关联。

外部文档。

链接到此函数

secondaryColorPointer(Size, Type, Stride, Pointer)

查看源代码
-spec secondaryColorPointer(Size :: i(), Type :: enum(), Stride :: i(), Pointer :: offset() | mem()) ->
                               ok.

gl:secondaryColorPointer/4 指定在渲染时使用的颜色分量数组的位置和数据格式。Size 指定每个颜色的分量数,并且必须为 3。Type 指定每个颜色分量的数据类型,Stride 指定从一种颜色到下一种颜色的字节步幅,从而允许将顶点和属性打包到单个数组中或存储在单独的数组中。

外部文档。

链接到此函数

selectBuffer(Size, Buffer)

查看源代码
-spec selectBuffer(Size :: i(), Buffer :: mem()) -> ok.

gl:selectBuffer/2 有两个参数:Buffer 是指向无符号整数数组的指针,Size 指示数组的大小。Buffer 在渲染模式为 ?GL_SELECT 时(参见 gl:renderMode/1)从名称堆栈返回值(参见 gl:initNames/0gl:loadName/1gl:pushName/1)。必须在启用选择模式之前发出 gl:selectBuffer/2,并且在渲染模式为 ?GL_SELECT 时不得发出此命令。

外部文档。

链接到此函数

separableFilter2D(Target, Internalformat, Width, Height, Format, Type, Row, Column)

查看源代码
-spec separableFilter2D(Target, Internalformat, Width, Height, Format, Type, Row, Column) -> ok
                           when
                               Target :: enum(),
                               Internalformat :: enum(),
                               Width :: i(),
                               Height :: i(),
                               Format :: enum(),
                               Type :: enum(),
                               Row :: offset() | mem(),
                               Column :: offset() | mem().

gl:separableFilter2D/8 从两个像素数组构建一个二维可分离卷积滤波器内核。

外部文档。

-spec shadeModel(Mode :: enum()) -> ok.

GL 图元可以具有平面或平滑着色。平滑着色(默认值)会导致在栅格化图元时插值计算出的顶点颜色,通常为每个生成的像素片段分配不同的颜色。平面着色仅选择一个顶点的计算颜色并将其分配给通过栅格化单个图元生成的所有像素片段。在任一情况下,如果启用了光照,则顶点的计算颜色是光照的结果,或者如果禁用了光照,则它是指定顶点时的当前颜色。

外部文档。

链接到此函数

shaderBinary(Shaders, Binaryformat, Binary)

查看源代码
-spec shaderBinary(Shaders :: [i()], Binaryformat :: enum(), Binary :: binary()) -> ok.

gl:shaderBinary/3 将预编译的着色器二进制代码加载到 Shaders 中给出的 Count 着色器对象中。Binary 指向存储在客户端内存中的 Length 字节的二进制着色器代码。BinaryFormat 指定预编译代码的格式。

外部文档。

链接到此函数

shaderSource(Shader, String)

查看源代码
-spec shaderSource(Shader :: i(), String :: [unicode:chardata()]) -> ok.

gl:shaderSource/2Shader 中的源代码设置为由 String 指定的字符串数组中的源代码。先前存储在着色器对象中的任何源代码都将被完全替换。数组中的字符串数由 Count 指定。如果 Length?NULL,则假定每个字符串都以 null 结尾。如果 Length?NULL 之外的值,则它指向一个数组,该数组包含 String 的每个对应元素的字符串长度。Length 数组中的每个元素可能包含相应字符串的长度(空字符不计为字符串长度的一部分),或者包含小于 0 的值以指示该字符串以 null 结尾。源代码字符串此时不进行扫描或解析;它们只是被复制到指定的着色器对象中。

外部文档。

链接到此函数

shaderStorageBlockBinding(Program, StorageBlockIndex, StorageBlockBinding)

查看源代码
-spec shaderStorageBlockBinding(Program :: i(), StorageBlockIndex :: i(), StorageBlockBinding :: i()) ->
                                   ok.

gl:shaderStorageBlockBinding/3 更改程序对象 Program 中分配的索引为 StorageBlockIndex 的活动着色器存储块。StorageBlockIndex 必须是 Program 中的活动着色器存储块索引。StorageBlockBinding 必须小于 ?GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 的值。如果成功,gl:shaderStorageBlockBinding/3 将指定 Program 将使用绑定到绑定点 StorageBlockBinding 的缓冲区对象的数据存储来读取和写入由 StorageBlockIndex 标识的着色器存储块中的缓冲区变量的值。

外部文档。

链接到此函数

stencilFunc(Func, Ref, Mask)

查看源代码
-spec stencilFunc(Func :: enum(), Ref :: i(), Mask :: i()) -> ok.

与深度缓冲类似,模板测试启用和禁用每个像素的绘制。首先使用 GL 绘制图元绘制到模板平面中,然后使用模板平面渲染几何图形和图像以遮盖屏幕的某些部分。模板通常用于多通道渲染算法中,以实现特殊效果,例如贴花、轮廓和构造实体几何渲染。

外部文档。

链接到此函数

stencilFuncSeparate(Face, Func, Ref, Mask)

查看源代码
-spec stencilFuncSeparate(Face :: enum(), Func :: enum(), Ref :: i(), Mask :: i()) -> ok.

与深度缓冲类似,模板测试启用和禁用每个像素的绘制。您可以使用 GL 绘制图元绘制到模板平面中,然后使用模板平面渲染几何图形和图像,以遮盖屏幕的某些部分。模板通常用于多通道渲染算法中,以实现特殊效果,例如贴花、轮廓和构造实体几何渲染。

外部文档。

-spec stencilMask(Mask :: i()) -> ok.

gl:stencilMask/1 控制模板平面中各个位的写入。Mask 的最低有效 n 位(其中 n 是模板缓冲区中的位数)指定一个掩码。掩码中出现 1 的位置,可以写入模板缓冲区中的相应位。出现 0 的位置,相应的位将受到写保护。最初,所有位都启用了写入。

外部文档。

链接到此函数

stencilMaskSeparate(Face, Mask)

查看源代码
-spec stencilMaskSeparate(Face :: enum(), Mask :: i()) -> ok.

gl:stencilMaskSeparate/2 控制模板平面中各个位的写入。Mask的最低有效位 n 指定一个掩码,其中 n 是模板缓冲区中的位数。掩码中出现 1 的位置,可以写入模板缓冲区中对应的位。出现 0 的位置,则对应的位受到写保护。最初,所有位都启用写入。

外部文档。

链接到此函数

stencilOp(Fail, Zfail, Zpass)

查看源代码
-spec stencilOp(Fail :: enum(), Zfail :: enum(), Zpass :: enum()) -> ok.

与深度缓冲类似,模板测试启用和禁用每个像素的绘制。您可以使用 GL 绘制图元绘制到模板平面中,然后使用模板平面渲染几何图形和图像,以遮盖屏幕的某些部分。模板通常用于多通道渲染算法中,以实现特殊效果,例如贴花、轮廓和构造实体几何渲染。

外部文档。

链接到此函数

stencilOpSeparate(Face, Sfail, Dpfail, Dppass)

查看源代码
-spec stencilOpSeparate(Face :: enum(), Sfail :: enum(), Dpfail :: enum(), Dppass :: enum()) -> ok.

与深度缓冲类似,模板测试启用和禁用每个像素的绘制。您可以使用 GL 绘制图元绘制到模板平面中,然后使用模板平面渲染几何图形和图像,以遮盖屏幕的某些部分。模板通常用于多通道渲染算法中,以实现特殊效果,例如贴花、轮廓和构造实体几何渲染。

外部文档。

链接到此函数

texBuffer(Target, Internalformat, Buffer)

查看源代码
-spec texBuffer(Target :: enum(), Internalformat :: enum(), Buffer :: i()) -> ok.

等同于 textureBuffer/3

链接到此函数

texBufferRange(Target, Internalformat, Buffer, Offset, Size)

查看源代码
-spec texBufferRange(Target :: enum(),
                     Internalformat :: enum(),
                     Buffer :: i(),
                     Offset :: i(),
                     Size :: i()) ->
                        ok.

等同于 textureBufferRange/5

-spec texCoord1d(S :: f()) -> ok.

等同于 texCoord4sv/1

-spec texCoord1dv({S :: f()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord1f(S :: f()) -> ok.

等同于 texCoord4sv/1

-spec texCoord1fv({S :: f()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord1i(S :: i()) -> ok.

等同于 texCoord4sv/1

-spec texCoord1iv({S :: i()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord1s(S :: i()) -> ok.

等同于 texCoord4sv/1

-spec texCoord1sv({S :: i()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord2d(S :: f(), T :: f()) -> ok.

等同于 texCoord4sv/1

-spec texCoord2dv({S :: f(), T :: f()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord2f(S :: f(), T :: f()) -> ok.

等同于 texCoord4sv/1

-spec texCoord2fv({S :: f(), T :: f()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord2i(S :: i(), T :: i()) -> ok.

等同于 texCoord4sv/1

-spec texCoord2iv({S :: i(), T :: i()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord2s(S :: i(), T :: i()) -> ok.

等同于 texCoord4sv/1

-spec texCoord2sv({S :: i(), T :: i()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord3d(S :: f(), T :: f(), R :: f()) -> ok.

等同于 texCoord4sv/1

-spec texCoord3dv({S :: f(), T :: f(), R :: f()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord3f(S :: f(), T :: f(), R :: f()) -> ok.

等同于 texCoord4sv/1

-spec texCoord3fv({S :: f(), T :: f(), R :: f()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord3i(S :: i(), T :: i(), R :: i()) -> ok.

等同于 texCoord4sv/1

-spec texCoord3iv({S :: i(), T :: i(), R :: i()}) -> ok.

等同于 texCoord4sv/1

-spec texCoord3s(S :: i(), T :: i(), R :: i()) -> ok.

等同于 texCoord4sv/1

-spec texCoord3sv({S :: i(), T :: i(), R :: i()}) -> ok.

等同于 texCoord4sv/1

链接到此函数

texCoord4d(S, T, R, Q)

查看源代码
-spec texCoord4d(S :: f(), T :: f(), R :: f(), Q :: f()) -> ok.

等同于 texCoord4sv/1

-spec texCoord4dv({S :: f(), T :: f(), R :: f(), Q :: f()}) -> ok.

等同于 texCoord4sv/1

链接到此函数

texCoord4f(S, T, R, Q)

查看源代码
-spec texCoord4f(S :: f(), T :: f(), R :: f(), Q :: f()) -> ok.

等同于 texCoord4sv/1

-spec texCoord4fv({S :: f(), T :: f(), R :: f(), Q :: f()}) -> ok.

等同于 texCoord4sv/1

链接到此函数

texCoord4i(S, T, R, Q)

查看源代码
-spec texCoord4i(S :: i(), T :: i(), R :: i(), Q :: i()) -> ok.

等同于 texCoord4sv/1

-spec texCoord4iv({S :: i(), T :: i(), R :: i(), Q :: i()}) -> ok.

等同于 texCoord4sv/1

链接到此函数

texCoord4s(S, T, R, Q)

查看源代码
-spec texCoord4s(S :: i(), T :: i(), R :: i(), Q :: i()) -> ok.

等同于 texCoord4sv/1

-spec texCoord4sv({S :: i(), T :: i(), R :: i(), Q :: i()}) -> ok.

gl:texCoord() 指定一维、二维、三维或四维的纹理坐标。 gl:texCoord1() 将当前纹理坐标设置为 (s 0 0 1);调用 gl:texCoord2() 将它们设置为 (s t 0 1)。类似地,gl:texCoord3() 将纹理坐标指定为 (s t r 1),而 gl:texCoord4() 明确定义所有四个分量为 (s t r q)。

外部文档。

链接到此函数

texCoordPointer(Size, Type, Stride, Ptr)

查看源代码
-spec texCoordPointer(Size :: i(), Type :: enum(), Stride :: i(), Ptr :: offset() | mem()) -> ok.

gl:texCoordPointer/4 指定渲染时使用的纹理坐标数组的位置和数据格式。 Size 指定每个纹理坐标集中的坐标数量,必须为 1、2、3 或 4。 Type 指定每个纹理坐标的数据类型,而 Stride 指定从一个纹理坐标集到下一个纹理坐标集的字节跨度,允许将顶点和属性打包到单个数组中或存储在单独的数组中。(在某些实现中,单数组存储可能更有效;请参阅 gl:interleavedArrays/3。)

外部文档。

链接到此函数

texEnvf(Target, Pname, Param)

查看源代码
-spec texEnvf(Target :: enum(), Pname :: enum(), Param :: f()) -> ok.

等同于 texEnviv/3

链接到此函数

texEnvfv(Target, Pname, Params)

查看源代码
-spec texEnvfv(Target :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等同于 texEnviv/3

链接到此函数

texEnvi(Target, Pname, Param)

查看源代码
-spec texEnvi(Target :: enum(), Pname :: enum(), Param :: i()) -> ok.

等同于 texEnviv/3

链接到此函数

texEnviv(Target, Pname, Params)

查看源代码
-spec texEnviv(Target :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

纹理环境指定在对片段进行纹理处理时如何解释纹理值。当 Target?GL_TEXTURE_FILTER_CONTROL 时,Pname 必须为 ?GL_TEXTURE_LOD_BIAS。当 Target?GL_TEXTURE_ENV 时,Pname 可以是 ?GL_TEXTURE_ENV_MODE?GL_TEXTURE_ENV_COLOR?GL_COMBINE_RGB?GL_COMBINE_ALPHA?GL_RGB_SCALE?GL_ALPHA_SCALE?GL_SRC0_RGB?GL_SRC1_RGB?GL_SRC2_RGB?GL_SRC0_ALPHA?GL_SRC1_ALPHA?GL_SRC2_ALPHA

外部文档。

链接到此函数

texGend(Coord, Pname, Param)

查看源代码
-spec texGend(Coord :: enum(), Pname :: enum(), Param :: f()) -> ok.

等同于 texGeniv/3

链接到此函数

texGendv(Coord, Pname, Params)

查看源代码
-spec texGendv(Coord :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等同于 texGeniv/3

链接到此函数

texGenf(Coord, Pname, Param)

查看源代码
-spec texGenf(Coord :: enum(), Pname :: enum(), Param :: f()) -> ok.

等同于 texGeniv/3

链接到此函数

texGenfv(Coord, Pname, Params)

查看源代码
-spec texGenfv(Coord :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等同于 texGeniv/3

链接到此函数

texGeni(Coord, Pname, Param)

查看源代码
-spec texGeni(Coord :: enum(), Pname :: enum(), Param :: i()) -> ok.

等同于 texGeniv/3

链接到此函数

texGeniv(Coord, Pname, Params)

查看源代码
-spec texGeniv(Coord :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

gl:texGen() 选择纹理坐标生成函数或为一个函数提供系数。 Coord 命名一个纹理坐标(strq);它必须是符号 ?GL_S?GL_T?GL_R?GL_Q 之一。Pname 必须是三个符号常量之一:?GL_TEXTURE_GEN_MODE?GL_OBJECT_PLANE?GL_EYE_PLANE。如果 Pname?GL_TEXTURE_GEN_MODE,则 Params 选择一种模式,即 ?GL_OBJECT_LINEAR?GL_EYE_LINEAR?GL_SPHERE_MAP?GL_NORMAL_MAP?GL_REFLECTION_MAP 之一。如果 Pname?GL_OBJECT_PLANE?GL_EYE_PLANE,则 Params 包含相应纹理生成函数的系数。

外部文档。

链接到此函数

texImage1D(Target, Level, InternalFormat, Width, Border, Format, Type, Pixels)

查看源代码
-spec texImage1D(Target, Level, InternalFormat, Width, Border, Format, Type, Pixels) -> ok
                    when
                        Target :: enum(),
                        Level :: i(),
                        InternalFormat :: i(),
                        Width :: i(),
                        Border :: i(),
                        Format :: enum(),
                        Type :: enum(),
                        Pixels :: offset() | mem().

纹理映射将指定纹理图像的一部分映射到启用了纹理的每个图形图元上。要启用和禁用一维纹理,请调用 gl:enable/1gl:disable/1,参数为 ?GL_TEXTURE_1D

外部文档。

链接到此函数

texImage2D(Target, Level, InternalFormat, Width, Height, Border, Format, Type, Pixels)

查看源代码
-spec texImage2D(Target, Level, InternalFormat, Width, Height, Border, Format, Type, Pixels) -> ok
                    when
                        Target :: enum(),
                        Level :: i(),
                        InternalFormat :: i(),
                        Width :: i(),
                        Height :: i(),
                        Border :: i(),
                        Format :: enum(),
                        Type :: enum(),
                        Pixels :: offset() | mem().

纹理允许着色器读取图像数组的元素。

外部文档。

链接到此函数

texImage2DMultisample(Target, Samples, Internalformat, Width, Height, Fixedsamplelocations)

查看源代码
-spec texImage2DMultisample(Target, Samples, Internalformat, Width, Height, Fixedsamplelocations) -> ok
                               when
                                   Target :: enum(),
                                   Samples :: i(),
                                   Internalformat :: enum(),
                                   Width :: i(),
                                   Height :: i(),
                                   Fixedsamplelocations :: 0 | 1.

gl:texImage2DMultisample/6 建立多重采样纹理图像的数据存储、格式、尺寸和样本数量。

外部文档。

链接到此函数

texImage3D(Target, Level, InternalFormat, Width, Height, Depth, Border, Format, Type, Pixels)

查看源代码
-spec texImage3D(Target, Level, InternalFormat, Width, Height, Depth, Border, Format, Type, Pixels) ->
                    ok
                    when
                        Target :: enum(),
                        Level :: i(),
                        InternalFormat :: i(),
                        Width :: i(),
                        Height :: i(),
                        Depth :: i(),
                        Border :: i(),
                        Format :: enum(),
                        Type :: enum(),
                        Pixels :: offset() | mem().

纹理映射将指定纹理图像的一部分映射到启用了纹理的每个图形图元上。要启用和禁用三维纹理,请调用 gl:enable/1gl:disable/1,参数为 ?GL_TEXTURE_3D

外部文档。

链接到此函数

texImage3DMultisample(Target, Samples, Internalformat, Width, Height, Depth, Fixedsamplelocations)

查看源代码
-spec texImage3DMultisample(Target, Samples, Internalformat, Width, Height, Depth, Fixedsamplelocations) ->
                               ok
                               when
                                   Target :: enum(),
                                   Samples :: i(),
                                   Internalformat :: enum(),
                                   Width :: i(),
                                   Height :: i(),
                                   Depth :: i(),
                                   Fixedsamplelocations :: 0 | 1.

gl:texImage3DMultisample/7 建立多重采样纹理图像的数据存储、格式、尺寸和样本数量。

外部文档。

链接到此函数

texParameterf(Target, Pname, Param)

查看源代码
-spec texParameterf(Target :: enum(), Pname :: enum(), Param :: f()) -> ok.

等同于 texParameteriv/3

链接到此函数

texParameterfv(Target, Pname, Params)

查看源代码
-spec texParameterfv(Target :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等同于 texParameteriv/3

链接到此函数

texParameterIiv(Target, Pname, Params)

查看源代码
-spec texParameterIiv(Target :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等同于 texParameteriv/3

链接到此函数

texParameterIuiv(Target, Pname, Params)

查看源代码
-spec texParameterIuiv(Target :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

等同于 texParameteriv/3

链接到此函数

texParameteri(Target, Pname, Param)

查看源代码
-spec texParameteri(Target :: enum(), Pname :: enum(), Param :: i()) -> ok.

等同于 texParameteriv/3

链接到此函数

texParameteriv(Target, Pname, Params)

查看源代码
-spec texParameteriv(Target :: enum(), Pname :: enum(), Params :: tuple()) -> ok.

gl:texParameter()gl:textureParameter()Params 中的值分配给指定为 Pname 的纹理参数。对于 gl:texParameter()Target 定义目标纹理,可以是 ?GL_TEXTURE_1D?GL_TEXTURE_1D_ARRAY?GL_TEXTURE_2D?GL_TEXTURE_2D_ARRAY?GL_TEXTURE_2D_MULTISAMPLE?GL_TEXTURE_2D_MULTISAMPLE_ARRAY?GL_TEXTURE_3D?GL_TEXTURE_CUBE_MAP?GL_TEXTURE_CUBE_MAP_ARRAY?GL_TEXTURE_RECTANGLEPname 中接受以下符号

外部文档。

链接到此函数

texStorage1D(Target, Levels, Internalformat, Width)

查看源代码
-spec texStorage1D(Target :: enum(), Levels :: i(), Internalformat :: enum(), Width :: i()) -> ok.

gl:texStorage1D/4gl:textureStorage1D() 同时指定一维纹理所有级别的存储要求。一旦使用此命令指定纹理,除非它是代理纹理,否则所有级别的格式和尺寸都将变为不可变。但是,图像的内容仍然可以修改,但其存储要求可能不会更改。这种纹理被称为 immutable-format 纹理。

外部文档。

链接到此函数

texStorage2D(Target, Levels, Internalformat, Width, Height)

查看源代码
-spec texStorage2D(Target :: enum(),
                   Levels :: i(),
                   Internalformat :: enum(),
                   Width :: i(),
                   Height :: i()) ->
                      ok.

gl:texStorage2D/5gl:textureStorage2D() 同时指定二维纹理或一维纹理数组所有级别的存储要求。一旦使用此命令指定纹理,除非它是代理纹理,否则所有级别的格式和尺寸都将变为不可变。但是,图像的内容仍然可以修改,但其存储要求可能不会更改。这种纹理被称为 immutable-format 纹理。

外部文档。

链接到此函数

texStorage2DMultisample(Target, Samples, Internalformat, Width, Height, Fixedsamplelocations)

查看源代码
-spec texStorage2DMultisample(Target, Samples, Internalformat, Width, Height, Fixedsamplelocations) ->
                                 ok
                                 when
                                     Target :: enum(),
                                     Samples :: i(),
                                     Internalformat :: enum(),
                                     Width :: i(),
                                     Height :: i(),
                                     Fixedsamplelocations :: 0 | 1.

gl:texStorage2DMultisample/6gl:textureStorage2DMultisample() 指定二维多重采样纹理的存储要求。一旦使用此命令指定纹理,除非它是代理纹理,否则其格式和尺寸将变为不可变。但是,图像的内容仍然可以修改,但其存储要求可能不会更改。这种纹理被称为 immutable-format 纹理。

外部文档。

链接到此函数

texStorage3D(Target, Levels, Internalformat, Width, Height, Depth)

查看源代码
-spec texStorage3D(Target, Levels, Internalformat, Width, Height, Depth) -> ok
                      when
                          Target :: enum(),
                          Levels :: i(),
                          Internalformat :: enum(),
                          Width :: i(),
                          Height :: i(),
                          Depth :: i().

gl:texStorage3D/6gl:textureStorage3D() 同时指定三维、二维数组或立方体贴图数组纹理所有级别的存储要求。一旦使用此命令指定纹理,除非它是代理纹理,否则所有级别的格式和尺寸都将变为不可变。但是,图像的内容仍然可以修改,但其存储要求可能不会更改。这种纹理被称为 immutable-format 纹理。

外部文档。

链接到此函数

texStorage3DMultisample(Target, Samples, Internalformat, Width, Height, Depth, Fixedsamplelocations)

查看源代码
-spec texStorage3DMultisample(Target, Samples, Internalformat, Width, Height, Depth,
                              Fixedsamplelocations) ->
                                 ok
                                 when
                                     Target :: enum(),
                                     Samples :: i(),
                                     Internalformat :: enum(),
                                     Width :: i(),
                                     Height :: i(),
                                     Depth :: i(),
                                     Fixedsamplelocations :: 0 | 1.

gl:texStorage3DMultisample/7gl:textureStorage3DMultisample() 指定二维多重采样数组纹理的存储要求。一旦使用此命令指定纹理,除非它是代理纹理,否则其格式和尺寸将变为不可变。但是,图像的内容仍然可以修改,但其存储要求可能不会更改。这种纹理被称为 immutable-format 纹理。

外部文档。

链接到此函数

texSubImage1D(Target, Level, Xoffset, Width, Format, Type, Pixels)

查看源代码
-spec texSubImage1D(Target, Level, Xoffset, Width, Format, Type, Pixels) -> ok
                       when
                           Target :: enum(),
                           Level :: i(),
                           Xoffset :: i(),
                           Width :: i(),
                           Format :: enum(),
                           Type :: enum(),
                           Pixels :: offset() | mem().

纹理映射将指定纹理图像的一部分映射到启用了纹理的每个图形图元上。要启用或禁用一维纹理,请调用 gl:enable/1gl:disable/1,参数为 ?GL_TEXTURE_1D

外部文档。

链接到此函数

texSubImage2D(Target, Level, Xoffset, Yoffset, Width, Height, Format, Type, Pixels)

查看源代码
-spec texSubImage2D(Target, Level, Xoffset, Yoffset, Width, Height, Format, Type, Pixels) -> ok
                       when
                           Target :: enum(),
                           Level :: i(),
                           Xoffset :: i(),
                           Yoffset :: i(),
                           Width :: i(),
                           Height :: i(),
                           Format :: enum(),
                           Type :: enum(),
                           Pixels :: offset() | mem().

纹理映射将指定纹理图像的一部分映射到启用了纹理的每个图形图元上。

外部文档。

链接到此函数

texSubImage3D(Target, Level, Xoffset, Yoffset, Zoffset, Width, Height, Depth, Format, Type, Pixels)

查看源代码
-spec texSubImage3D(Target, Level, Xoffset, Yoffset, Zoffset, Width, Height, Depth, Format, Type,
                    Pixels) ->
                       ok
                       when
                           Target :: enum(),
                           Level :: i(),
                           Xoffset :: i(),
                           Yoffset :: i(),
                           Zoffset :: i(),
                           Width :: i(),
                           Height :: i(),
                           Depth :: i(),
                           Format :: enum(),
                           Type :: enum(),
                           Pixels :: offset() | mem().

纹理映射将指定纹理图像的一部分映射到启用了纹理的每个图形图元上。

外部文档。

-spec textureBarrier() -> ok.

当着色器阶段获取纹素并且相同的纹素通过片段着色器输出写入时,渲染片段的值是未定义的,即使读取和写入不在同一个绘图命令中也是如此。要通过后续绘图命令中的纹素获取安全地读取已写入的纹素的结果,请在两个绘图命令之间调用 gl:textureBarrier/0,以保证在执行后续绘图命令之前已完成写入并且缓存已失效。

外部文档。

链接到此函数

textureBuffer(Texture, Internalformat, Buffer)

查看源代码
-spec textureBuffer(Texture :: i(), Internalformat :: enum(), Buffer :: i()) -> ok.

gl:texBuffer/3gl:textureBuffer/3 将指定的缓冲区对象的数据存储附加到指定的纹理对象,并指定缓冲区对象中找到的纹理图像的存储格式。纹理对象必须是缓冲区纹理。

外部文档。

链接到此函数

textureBufferRange(Texture, Internalformat, Buffer, Offset, Size)

查看源代码
-spec textureBufferRange(Texture :: i(),
                         Internalformat :: enum(),
                         Buffer :: i(),
                         Offset :: i(),
                         Size :: i()) ->
                            ok.

gl:texBufferRange/5gl:textureBufferRange/5 将指定缓冲区对象的数据存储区的一个范围附加到指定的纹理对象,并指定缓冲区对象中纹理图像的存储格式。纹理对象必须是缓冲区纹理。

外部文档。

链接到此函数

textureView(纹理, 目标, 原始纹理, 内部格式, 最小层级, 层级数量, 最小层, 层数)

查看源代码
-spec textureView(Texture, Target, Origtexture, Internalformat, Minlevel, Numlevels, Minlayer,
                  Numlayers) ->
                     ok
                     when
                         Texture :: i(),
                         Target :: enum(),
                         Origtexture :: i(),
                         Internalformat :: enum(),
                         Minlevel :: i(),
                         Numlevels :: i(),
                         Minlayer :: i(),
                         Numlayers :: i().

gl:textureView/8 将纹理对象初始化为另一个纹理对象的别名或视图,与初始化的纹理共享父纹理的部分或全部数据存储区。纹理 指定先前通过成功调用 gl:genTextures/1 保留但尚未绑定或给定目标的名称。目标 指定新初始化的纹理的目标,并且必须与父纹理的目标兼容,在 原始纹理 中给出,如下表所示

外部文档。

链接到此函数

transformFeedbackBufferBase(Xfb, 索引, 缓冲区)

查看源代码
-spec transformFeedbackBufferBase(Xfb :: i(), Index :: i(), Buffer :: i()) -> ok.

gl:transformFeedbackBufferBase/3 将缓冲区对象 缓冲区 绑定到变换反馈对象 Xfb 中索引为 索引 的绑定点。

外部文档。

链接到此函数

transformFeedbackBufferRange(Xfb, 索引, 缓冲区, 偏移, 大小)

查看源代码
-spec transformFeedbackBufferRange(Xfb :: i(), Index :: i(), Buffer :: i(), Offset :: i(), Size :: i()) ->
                                      ok.

gl:transformFeedbackBufferRange/5 将缓冲区对象 缓冲区 中由 偏移大小 表示的范围绑定到变换反馈对象 Xfb 中索引为 索引 的绑定点。

外部文档。

链接到此函数

transformFeedbackVaryings(程序, Varyings, 缓冲区模式)

查看源代码
-spec transformFeedbackVaryings(Program :: i(), Varyings :: [unicode:chardata()], BufferMode :: enum()) ->
                                   ok.

使用 gl:transformFeedbackVaryings/3 指定要在变换反馈模式中记录的顶点或几何着色器输出的名称。当几何着色器处于活动状态时,变换反馈会记录从发射的顶点中选择的几何着色器输出变量的值。否则,将记录所选顶点着色器输出的值。

外部文档。

-spec translated(X :: f(), Y :: f(), Z :: f()) -> ok.

等同于 translatef/3

-spec translatef(X :: f(), Y :: f(), Z :: f()) -> ok.

gl:translate() 产生 (x y z) 的平移。当前矩阵(参见 gl:matrixMode/1)乘以这个平移矩阵,乘积替换当前矩阵,就像调用 gl:multMatrix() 时使用以下矩阵作为其参数一样

外部文档。

-spec uniform1d(Location :: i(), X :: f()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform1dv(位置, 值)

查看源代码
-spec uniform1dv(Location :: i(), Value :: [f()]) -> ok.

等同于 uniformMatrix4x3fv/3

-spec uniform1f(Location :: i(), V0 :: f()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform1fv(位置, 值)

查看源代码
-spec uniform1fv(Location :: i(), Value :: [f()]) -> ok.

等同于 uniformMatrix4x3fv/3

-spec uniform1i(Location :: i(), V0 :: i()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform1iv(位置, 值)

查看源代码
-spec uniform1iv(Location :: i(), Value :: [i()]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform1ui(位置, V0)

查看源代码
-spec uniform1ui(Location :: i(), V0 :: i()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform1uiv(位置, 值)

查看源代码
-spec uniform1uiv(Location :: i(), Value :: [i()]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform2d(位置, X, Y)

查看源代码
-spec uniform2d(Location :: i(), X :: f(), Y :: f()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform2dv(位置, 值)

查看源代码
-spec uniform2dv(Location :: i(), Value :: [{f(), f()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform2f(位置, V0, V1)

查看源代码
-spec uniform2f(Location :: i(), V0 :: f(), V1 :: f()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform2fv(位置, 值)

查看源代码
-spec uniform2fv(Location :: i(), Value :: [{f(), f()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform2i(位置, V0, V1)

查看源代码
-spec uniform2i(Location :: i(), V0 :: i(), V1 :: i()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform2iv(位置, 值)

查看源代码
-spec uniform2iv(Location :: i(), Value :: [{i(), i()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform2ui(位置, V0, V1)

查看源代码
-spec uniform2ui(Location :: i(), V0 :: i(), V1 :: i()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform2uiv(位置, 值)

查看源代码
-spec uniform2uiv(Location :: i(), Value :: [{i(), i()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform3d(位置, X, Y, Z)

查看源代码
-spec uniform3d(Location :: i(), X :: f(), Y :: f(), Z :: f()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform3dv(位置, 值)

查看源代码
-spec uniform3dv(Location :: i(), Value :: [{f(), f(), f()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform3f(位置, V0, V1, V2)

查看源代码
-spec uniform3f(Location :: i(), V0 :: f(), V1 :: f(), V2 :: f()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform3fv(位置, 值)

查看源代码
-spec uniform3fv(Location :: i(), Value :: [{f(), f(), f()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform3i(位置, V0, V1, V2)

查看源代码
-spec uniform3i(Location :: i(), V0 :: i(), V1 :: i(), V2 :: i()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform3iv(位置, 值)

查看源代码
-spec uniform3iv(Location :: i(), Value :: [{i(), i(), i()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform3ui(位置, V0, V1, V2)

查看源代码
-spec uniform3ui(Location :: i(), V0 :: i(), V1 :: i(), V2 :: i()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform3uiv(位置, 值)

查看源代码
-spec uniform3uiv(Location :: i(), Value :: [{i(), i(), i()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform4d(位置, X, Y, Z, W)

查看源代码
-spec uniform4d(Location :: i(), X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform4dv(位置, 值)

查看源代码
-spec uniform4dv(Location :: i(), Value :: [{f(), f(), f(), f()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform4f(位置, V0, V1, V2, V3)

查看源代码
-spec uniform4f(Location :: i(), V0 :: f(), V1 :: f(), V2 :: f(), V3 :: f()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform4fv(位置, 值)

查看源代码
-spec uniform4fv(Location :: i(), Value :: [{f(), f(), f(), f()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform4i(位置, V0, V1, V2, V3)

查看源代码
-spec uniform4i(Location :: i(), V0 :: i(), V1 :: i(), V2 :: i(), V3 :: i()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform4iv(位置, 值)

查看源代码
-spec uniform4iv(Location :: i(), Value :: [{i(), i(), i(), i()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform4ui(位置, V0, V1, V2, V3)

查看源代码
-spec uniform4ui(Location :: i(), V0 :: i(), V1 :: i(), V2 :: i(), V3 :: i()) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniform4uiv(位置, 值)

查看源代码
-spec uniform4uiv(Location :: i(), Value :: [{i(), i(), i(), i()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformBlockBinding(程序, 统一块索引, 统一块绑定)

查看源代码
-spec uniformBlockBinding(Program :: i(), UniformBlockIndex :: i(), UniformBlockBinding :: i()) -> ok.

使用 gl:uniformBlockBinding/3 为活动的统一块分配绑定点。程序的每个活动统一块都有一个对应的统一缓冲区绑定点。程序 是程序对象的名称,该程序对象在过去已发出 gl:linkProgram/1 命令。

外部文档。

链接到此函数

uniformMatrix2dv(位置, 转置, 值)

查看源代码
-spec uniformMatrix2dv(Location :: i(), Transpose :: 0 | 1, Value :: [{f(), f(), f(), f()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix2fv(位置, 转置, 值)

查看源代码
-spec uniformMatrix2fv(Location :: i(), Transpose :: 0 | 1, Value :: [{f(), f(), f(), f()}]) -> ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix2x3dv(位置, 转置, 值)

查看源代码
-spec uniformMatrix2x3dv(Location :: i(), Transpose :: 0 | 1, Value :: [{f(), f(), f(), f(), f(), f()}]) ->
                            ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix2x3fv(位置, 转置, 值)

查看源代码
-spec uniformMatrix2x3fv(Location :: i(), Transpose :: 0 | 1, Value :: [{f(), f(), f(), f(), f(), f()}]) ->
                            ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix2x4dv(位置, 转置, 值)

查看源代码
-spec uniformMatrix2x4dv(Location :: i(),
                         Transpose :: 0 | 1,
                         Value :: [{f(), f(), f(), f(), f(), f(), f(), f()}]) ->
                            ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix2x4fv(位置, 转置, 值)

查看源代码
-spec uniformMatrix2x4fv(Location :: i(),
                         Transpose :: 0 | 1,
                         Value :: [{f(), f(), f(), f(), f(), f(), f(), f()}]) ->
                            ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix3dv(位置, 转置, 值)

查看源代码
-spec uniformMatrix3dv(Location :: i(),
                       Transpose :: 0 | 1,
                       Value :: [{f(), f(), f(), f(), f(), f(), f(), f(), f()}]) ->
                          ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix3fv(位置, 转置, 值)

查看源代码
-spec uniformMatrix3fv(Location :: i(),
                       Transpose :: 0 | 1,
                       Value :: [{f(), f(), f(), f(), f(), f(), f(), f(), f()}]) ->
                          ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix3x2dv(位置, 转置, 值)

查看源代码
-spec uniformMatrix3x2dv(Location :: i(), Transpose :: 0 | 1, Value :: [{f(), f(), f(), f(), f(), f()}]) ->
                            ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix3x2fv(位置, 转置, 值)

查看源代码
-spec uniformMatrix3x2fv(Location :: i(), Transpose :: 0 | 1, Value :: [{f(), f(), f(), f(), f(), f()}]) ->
                            ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix3x4dv(位置, 转置, 值)

查看源代码
-spec uniformMatrix3x4dv(Location, Transpose, Value) -> ok
                            when
                                Location :: i(),
                                Transpose :: 0 | 1,
                                Value :: [{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}].

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix3x4fv(位置, 转置, 值)

查看源代码
-spec uniformMatrix3x4fv(Location, Transpose, Value) -> ok
                            when
                                Location :: i(),
                                Transpose :: 0 | 1,
                                Value :: [{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}].

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix4dv(位置, 转置, 值)

查看源代码
-spec uniformMatrix4dv(Location, Transpose, Value) -> ok
                          when
                              Location :: i(),
                              Transpose :: 0 | 1,
                              Value ::
                                  [{f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f()}].

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix4fv(位置, 转置, 值)

查看源代码
-spec uniformMatrix4fv(Location, Transpose, Value) -> ok
                          when
                              Location :: i(),
                              Transpose :: 0 | 1,
                              Value ::
                                  [{f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f(),
                                    f()}].

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix4x2dv(位置, 转置, 值)

查看源代码
-spec uniformMatrix4x2dv(Location :: i(),
                         Transpose :: 0 | 1,
                         Value :: [{f(), f(), f(), f(), f(), f(), f(), f()}]) ->
                            ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix4x2fv(位置, 转置, 值)

查看源代码
-spec uniformMatrix4x2fv(Location :: i(),
                         Transpose :: 0 | 1,
                         Value :: [{f(), f(), f(), f(), f(), f(), f(), f()}]) ->
                            ok.

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix4x3dv(位置, 转置, 值)

查看源代码
-spec uniformMatrix4x3dv(Location, Transpose, Value) -> ok
                            when
                                Location :: i(),
                                Transpose :: 0 | 1,
                                Value :: [{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}].

等同于 uniformMatrix4x3fv/3

链接到此函数

uniformMatrix4x3fv(位置, 转置, 值)

查看源代码
-spec uniformMatrix4x3fv(Location, Transpose, Value) -> ok
                            when
                                Location :: i(),
                                Transpose :: 0 | 1,
                                Value :: [{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}].

gl:uniform() 修改统一变量或统一变量数组的值。要修改的统一变量的位置由 位置 指定,它应该是 gl:getUniformLocation/2 返回的值。gl:uniform() 在通过调用 gl:useProgram/1 使其成为当前状态一部分的程序对象上运行。

外部文档。

链接到此函数

uniformSubroutinesuiv(着色器类型, 索引)

查看源代码
-spec uniformSubroutinesuiv(Shadertype :: enum(), Indices :: [i()]) -> ok.

gl:uniformSubroutines() 使用 索引 中的子程序索引加载当前程序着色器阶段 着色器类型 的所有活动子程序统一变量,将 索引[i] 存储到位置 I 的统一变量中。Count 必须等于当前正在使用着色器阶段 着色器类型 的程序 ?GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 的值。此外,索引 中的所有值都必须小于着色器阶段的 ?GL_ACTIVE_SUBROUTINES 的值。

外部文档。

-spec useProgram(Program :: i()) -> ok.

gl:useProgram/1 将由 程序 指定的程序对象安装为当前渲染状态的一部分。通过使用 gl:attachShader/2 将着色器对象成功附加到程序对象、使用 gl:compileShader/1 成功编译着色器对象以及使用 gl:linkProgram/1 成功链接程序对象,可以在程序对象中创建一个或多个可执行文件。

外部文档。

链接到此函数

useProgramStages(管道, 阶段, 程序)

查看源代码
-spec useProgramStages(Pipeline :: i(), Stages :: i(), Program :: i()) -> ok.

gl:useProgramStages/3 将程序对象中与指定着色器阶段集关联的可执行文件绑定到由 管道 给出的程序管道对象。管道 指定要绑定可执行文件的程序管道对象。阶段 包含指示在 程序 中要与程序管道对象 管道 一起使用的着色器阶段的位逻辑组合。阶段 必须是 ?GL_VERTEX_SHADER_BIT?GL_TESS_CONTROL_SHADER_BIT?GL_TESS_EVALUATION_SHADER_BIT?GL_GEOMETRY_SHADER_BIT?GL_FRAGMENT_SHADER_BIT?GL_COMPUTE_SHADER_BIT 的逻辑组合。此外,可以指定特殊值 ?GL_ALL_SHADER_BITS,以指示应将 程序 中包含的所有可执行文件安装到 管道 中。

外部文档。

链接到此函数

validateProgram(程序)

查看源代码
-spec validateProgram(Program :: i()) -> ok.

gl:validateProgram/1 检查 程序 中包含的可执行文件是否可以在当前 OpenGL 状态下执行。验证过程生成的信息将存储在 程序 的信息日志中。验证信息可能包含空字符串,也可能包含关于当前程序对象如何与当前 OpenGL 状态的其余部分交互的信息的字符串。这为 OpenGL 实现者提供了一种方法,可以传达有关当前程序效率低下、次优、无法执行等原因的更多信息。

外部文档。

链接到此函数

validateProgramPipeline(管道)

查看源代码
-spec validateProgramPipeline(Pipeline :: i()) -> ok.

gl:validateProgramPipeline/1 指示实现根据当前 GL 状态验证 管道 中包含的着色器可执行文件。实现可以使用它作为机会来执行任何内部着色器修改,这些修改可能是必需的,以确保在给定当前 GL 状态的情况下正确操作已安装的着色器。

外部文档。

-spec vertex2d(X :: f(), Y :: f()) -> ok.

等同于 vertex4sv/1

-spec vertex2dv({X :: f(), Y :: f()}) -> ok.

等同于 vertex4sv/1

-spec vertex2f(X :: f(), Y :: f()) -> ok.

等同于 vertex4sv/1

-spec vertex2fv({X :: f(), Y :: f()}) -> ok.

等同于 vertex4sv/1

-spec vertex2i(X :: i(), Y :: i()) -> ok.

等同于 vertex4sv/1

-spec vertex2iv({X :: i(), Y :: i()}) -> ok.

等同于 vertex4sv/1

-spec vertex2s(X :: i(), Y :: i()) -> ok.

等同于 vertex4sv/1

-spec vertex2sv({X :: i(), Y :: i()}) -> ok.

等同于 vertex4sv/1

-spec vertex3d(X :: f(), Y :: f(), Z :: f()) -> ok.

等同于 vertex4sv/1

-spec vertex3dv({X :: f(), Y :: f(), Z :: f()}) -> ok.

等同于 vertex4sv/1

-spec vertex3f(X :: f(), Y :: f(), Z :: f()) -> ok.

等同于 vertex4sv/1

-spec vertex3fv({X :: f(), Y :: f(), Z :: f()}) -> ok.

等同于 vertex4sv/1

-spec vertex3i(X :: i(), Y :: i(), Z :: i()) -> ok.

等同于 vertex4sv/1

-spec vertex3iv({X :: i(), Y :: i(), Z :: i()}) -> ok.

等同于 vertex4sv/1

-spec vertex3s(X :: i(), Y :: i(), Z :: i()) -> ok.

等同于 vertex4sv/1

-spec vertex3sv({X :: i(), Y :: i(), Z :: i()}) -> ok.

等同于 vertex4sv/1

-spec vertex4d(X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok.

等同于 vertex4sv/1

-spec vertex4dv({X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok.

等同于 vertex4sv/1

-spec vertex4f(X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok.

等同于 vertex4sv/1

-spec vertex4fv({X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok.

等同于 vertex4sv/1

-spec vertex4i(X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok.

等同于 vertex4sv/1

-spec vertex4iv({X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok.

等同于 vertex4sv/1

-spec vertex4s(X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok.

等同于 vertex4sv/1

-spec vertex4sv({X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok.

gl:vertex() 命令在 gl:'begin'/1/gl:'end'/0 对中使用,以指定点、线和多边形顶点。调用 gl:vertex() 时,当前颜色、法线、纹理坐标和雾坐标与顶点关联。

外部文档。

链接到此函数

vertexArrayAttribBinding(Vaobj, 属性索引, 绑定索引)

查看源代码
-spec vertexArrayAttribBinding(Vaobj :: i(), Attribindex :: i(), Bindingindex :: i()) -> ok.

等同于 vertexAttribBinding/2

链接到此函数

vertexArrayAttribFormat(Vaobj, 属性索引, 大小, 类型, 归一化, 相对偏移)

查看源代码
-spec vertexArrayAttribFormat(Vaobj, Attribindex, Size, Type, Normalized, Relativeoffset) -> ok
                                 when
                                     Vaobj :: i(),
                                     Attribindex :: i(),
                                     Size :: i(),
                                     Type :: enum(),
                                     Normalized :: 0 | 1,
                                     Relativeoffset :: i().

等同于 vertexAttribLPointer/5

链接到此函数

vertexArrayAttribIFormat(Vaobj, 属性索引, 大小, 类型, 相对偏移)

查看源代码
-spec vertexArrayAttribIFormat(Vaobj :: i(),
                               Attribindex :: i(),
                               Size :: i(),
                               Type :: enum(),
                               Relativeoffset :: i()) ->
                                  ok.

等同于 vertexAttribLPointer/5

链接到此函数

vertexArrayAttribLFormat(Vaobj, 属性索引, 大小, 类型, 相对偏移)

查看源代码
-spec vertexArrayAttribLFormat(Vaobj :: i(),
                               Attribindex :: i(),
                               Size :: i(),
                               Type :: enum(),
                               Relativeoffset :: i()) ->
                                  ok.

等同于 vertexAttribLPointer/5

链接到此函数

vertexArrayBindingDivisor(Vaobj, 绑定索引, 除数)

查看源代码
-spec vertexArrayBindingDivisor(Vaobj :: i(), Bindingindex :: i(), Divisor :: i()) -> ok.

等同于 vertexBindingDivisor/2

链接到此函数

vertexArrayElementBuffer(Vaobj, 缓冲区)

查看源代码
-spec vertexArrayElementBuffer(Vaobj :: i(), Buffer :: i()) -> ok.

gl:vertexArrayElementBuffer/2 将 ID 为 缓冲区 的缓冲区对象绑定到 ID 为 Vaobj 的顶点数组对象的元素数组缓冲区绑定点。如果 缓冲区 为零,则会删除 Vaobj 的任何现有元素数组缓冲区绑定。

外部文档。

链接到此函数

vertexArrayVertexBuffer(Vaobj, 绑定索引, 缓冲区, 偏移, 步幅)

查看源代码
-spec vertexArrayVertexBuffer(Vaobj :: i(),
                              Bindingindex :: i(),
                              Buffer :: i(),
                              Offset :: i(),
                              Stride :: i()) ->
                                 ok.

gl:bindVertexBuffer/4gl:vertexArrayVertexBuffer/5 将名为 缓冲区 的缓冲区绑定到顶点缓冲区绑定点,该绑定点的索引由 绑定索引 给出。gl:bindVertexBuffer/4 修改当前绑定的顶点数组对象的绑定,而 gl:vertexArrayVertexBuffer/5 允许调用者使用名为 Vaobj 的参数来指定顶点数组对象的 ID,应该修改该 ID 的绑定。偏移步幅 分别指定缓冲区中第一个元素的偏移量以及缓冲区中元素之间的距离,并且都以基本机器单位度量。绑定索引 必须小于 ?GL_MAX_VERTEX_ATTRIB_BINDINGS 的值。偏移步幅 必须大于或等于零。如果 缓冲区 为零,则取消绑定当前绑定到指定绑定点的任何缓冲区。

外部文档。

链接到此函数

vertexArrayVertexBuffers(Vaobj, First, 缓冲区, 偏移, 步幅)

查看源代码
-spec vertexArrayVertexBuffers(Vaobj :: i(),
                               First :: i(),
                               Buffers :: [i()],
                               Offsets :: [i()],
                               Strides :: [i()]) ->
                                  ok.

gl:bindVertexBuffers/4gl:vertexArrayVertexBuffers/5 将现有缓冲区对象的数组中的存储绑定到顶点数组对象中指定数量的连续顶点缓冲区绑定点单元。对于 gl:bindVertexBuffers/4,顶点数组对象是当前绑定的顶点数组对象。对于 gl:vertexArrayVertexBuffers/5Vaobj 是顶点数组对象的名称。

外部文档。

链接到此函数

vertexAttrib1d(Index, X)

查看源代码
-spec vertexAttrib1d(Index :: i(), X :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib1dv(Index :: i(), {X :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib1f(Index, X)

查看源代码
-spec vertexAttrib1f(Index :: i(), X :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib1fv(Index :: i(), {X :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib1s(Index, X)

查看源代码
-spec vertexAttrib1s(Index :: i(), X :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib1sv(Index :: i(), {X :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib2d(Index, X, Y)

查看源代码
-spec vertexAttrib2d(Index :: i(), X :: f(), Y :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib2dv(Index :: i(), {X :: f(), Y :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib2f(Index, X, Y)

查看源代码
-spec vertexAttrib2f(Index :: i(), X :: f(), Y :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib2fv(Index :: i(), {X :: f(), Y :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib2s(Index, X, Y)

查看源代码
-spec vertexAttrib2s(Index :: i(), X :: i(), Y :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib2sv(Index :: i(), {X :: i(), Y :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib3d(Index, X, Y, Z)

查看源代码
-spec vertexAttrib3d(Index :: i(), X :: f(), Y :: f(), Z :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib3dv(Index :: i(), {X :: f(), Y :: f(), Z :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib3f(Index, X, Y, Z)

查看源代码
-spec vertexAttrib3f(Index :: i(), X :: f(), Y :: f(), Z :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib3fv(Index :: i(), {X :: f(), Y :: f(), Z :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib3s(Index, X, Y, Z)

查看源代码
-spec vertexAttrib3s(Index :: i(), X :: i(), Y :: i(), Z :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib3sv(Index :: i(), {X :: i(), Y :: i(), Z :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4bv(Index, V)

查看源代码
-spec vertexAttrib4bv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4d(Index, X, Y, Z, W)

查看源代码
-spec vertexAttrib4d(Index :: i(), X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib4dv(Index :: i(), {X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4f(Index, X, Y, Z, W)

查看源代码
-spec vertexAttrib4f(Index :: i(), X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib4fv(Index :: i(), {X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4iv(Index, V)

查看源代码
-spec vertexAttrib4iv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4Nbv(Index, V)

查看源代码
-spec vertexAttrib4Nbv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4Niv(Index, V)

查看源代码
-spec vertexAttrib4Niv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4Nsv(Index, V)

查看源代码
-spec vertexAttrib4Nsv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4Nub(Index, X, Y, Z, W)

查看源代码
-spec vertexAttrib4Nub(Index :: i(), X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib4Nubv(Index :: i(), {X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4Nuiv(Index, V)

查看源代码
-spec vertexAttrib4Nuiv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4Nusv(Index, V)

查看源代码
-spec vertexAttrib4Nusv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4s(Index, X, Y, Z, W)

查看源代码
-spec vertexAttrib4s(Index :: i(), X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttrib4sv(Index :: i(), {X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4ubv(Index, V)

查看源代码
-spec vertexAttrib4ubv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4uiv(Index, V)

查看源代码
-spec vertexAttrib4uiv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttrib4usv(Index, V)

查看源代码
-spec vertexAttrib4usv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribBinding(Attribindex, Bindingindex)

查看源代码
-spec vertexAttribBinding(Attribindex :: i(), Bindingindex :: i()) -> ok.

gl:vertexAttribBinding/2gl:vertexArrayAttribBinding/3 建立顶点数组对象的通用顶点属性之间的关联,其索引由 Attribindex 给定,以及顶点缓冲区绑定,其索引由 Bindingindex 给定。对于 gl:vertexAttribBinding/2,受影响的顶点数组对象是当前绑定的对象。对于 gl:vertexArrayAttribBinding/3Vaobj 是顶点数组对象的名称。

外部文档。

链接到此函数

vertexAttribDivisor(Index, Divisor)

查看源代码
-spec vertexAttribDivisor(Index :: i(), Divisor :: i()) -> ok.

gl:vertexAttribDivisor/2 修改在单个绘制调用中渲染多个图元实例时,通用顶点属性前进的速率。如果 Divisor 为零,则槽 Index 处的属性每个顶点前进一次。如果 Divisor 为非零值,则该属性每渲染 Divisor 个顶点集实例前进一次。如果某个属性的 ?GL_VERTEX_ATTRIB_ARRAY_DIVISOR 值非零,则该属性称为实例化属性。

外部文档。

链接到此函数

vertexAttribFormat(Attribindex, Size, Type, Normalized, Relativeoffset)

查看源代码
-spec vertexAttribFormat(Attribindex :: i(),
                         Size :: i(),
                         Type :: enum(),
                         Normalized :: 0 | 1,
                         Relativeoffset :: i()) ->
                            ok.

等同于 vertexAttribLPointer/5

链接到此函数

vertexAttribI1i(Index, X)

查看源代码
-spec vertexAttribI1i(Index :: i(), X :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribI1iv(Index :: i(), {X :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI1ui(Index, X)

查看源代码
-spec vertexAttribI1ui(Index :: i(), X :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribI1uiv(Index :: i(), {X :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI2i(Index, X, Y)

查看源代码
-spec vertexAttribI2i(Index :: i(), X :: i(), Y :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribI2iv(Index :: i(), {X :: i(), Y :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI2ui(Index, X, Y)

查看源代码
-spec vertexAttribI2ui(Index :: i(), X :: i(), Y :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribI2uiv(Index :: i(), {X :: i(), Y :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI3i(Index, X, Y, Z)

查看源代码
-spec vertexAttribI3i(Index :: i(), X :: i(), Y :: i(), Z :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribI3iv(Index :: i(), {X :: i(), Y :: i(), Z :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI3ui(Index, X, Y, Z)

查看源代码
-spec vertexAttribI3ui(Index :: i(), X :: i(), Y :: i(), Z :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribI3uiv(Index :: i(), {X :: i(), Y :: i(), Z :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI4bv(Index, V)

查看源代码
-spec vertexAttribI4bv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI4i(Index, X, Y, Z, W)

查看源代码
-spec vertexAttribI4i(Index :: i(), X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribI4iv(Index :: i(), {X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI4sv(Index, V)

查看源代码
-spec vertexAttribI4sv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI4ubv(Index, V)

查看源代码
-spec vertexAttribI4ubv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI4ui(Index, X, Y, Z, W)

查看源代码
-spec vertexAttribI4ui(Index :: i(), X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribI4uiv(Index :: i(), {X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribI4usv(Index, V)

查看源代码
-spec vertexAttribI4usv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribIFormat(Attribindex, Size, Type, Relativeoffset)

查看源代码
-spec vertexAttribIFormat(Attribindex :: i(), Size :: i(), Type :: enum(), Relativeoffset :: i()) -> ok.

等同于 vertexAttribLPointer/5

链接到此函数

vertexAttribIPointer(Index, Size, Type, Stride, Pointer)

查看源代码
-spec vertexAttribIPointer(Index :: i(),
                           Size :: i(),
                           Type :: enum(),
                           Stride :: i(),
                           Pointer :: offset() | mem()) ->
                              ok.

等同于 vertexAttribLPointer/5

链接到此函数

vertexAttribL1d(Index, X)

查看源代码
-spec vertexAttribL1d(Index :: i(), X :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribL1dv(Index :: i(), {X :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribL2d(Index, X, Y)

查看源代码
-spec vertexAttribL2d(Index :: i(), X :: f(), Y :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribL2dv(Index :: i(), {X :: f(), Y :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribL3d(Index, X, Y, Z)

查看源代码
-spec vertexAttribL3d(Index :: i(), X :: f(), Y :: f(), Z :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribL3dv(Index :: i(), {X :: f(), Y :: f(), Z :: f()}) -> ok.

等效于 vertexAttribL4dv/2

链接到此函数

vertexAttribL4d(Index, X, Y, Z, W)

查看源代码
-spec vertexAttribL4d(Index :: i(), X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok.

等效于 vertexAttribL4dv/2

-spec vertexAttribL4dv(Index :: i(), {X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok.

gl:vertexAttrib() 系列入口点允许应用程序在编号位置传递通用顶点属性。

外部文档。

链接到此函数

vertexAttribLFormat(Attribindex, Size, Type, Relativeoffset)

查看源代码
-spec vertexAttribLFormat(Attribindex :: i(), Size :: i(), Type :: enum(), Relativeoffset :: i()) -> ok.

等同于 vertexAttribLPointer/5

链接到此函数

vertexAttribLPointer(Index, Size, Type, Stride, Pointer)

查看源代码
-spec vertexAttribLPointer(Index :: i(),
                           Size :: i(),
                           Type :: enum(),
                           Stride :: i(),
                           Pointer :: offset() | mem()) ->
                              ok.

gl:vertexAttribFormat/5gl:vertexAttribIFormat/4gl:vertexAttribLFormat/4,以及 gl:vertexArrayAttribFormat/6gl:vertexArrayAttribIFormat/5gl:vertexArrayAttribLFormat/5 指定顶点数组中数据的组织方式。前三个调用操作绑定顶点数组对象,而后三个调用修改 ID 为 Vaobj 的顶点数组对象的状态。Attribindex 指定正在描述其数据布局的通用顶点属性数组的索引,并且必须小于 ?GL_MAX_VERTEX_ATTRIBS 的值。

外部文档。

链接到此函数

vertexAttribPointer(Index, Size, Type, Normalized, Stride, Pointer)

查看源代码
-spec vertexAttribPointer(Index, Size, Type, Normalized, Stride, Pointer) -> ok
                             when
                                 Index :: i(),
                                 Size :: i(),
                                 Type :: enum(),
                                 Normalized :: 0 | 1,
                                 Stride :: i(),
                                 Pointer :: offset() | mem().

gl:vertexAttribPointer/6gl:vertexAttribIPointer/5gl:vertexAttribLPointer/5 指定在渲染时使用的索引 Index 处的通用顶点属性数组的位置和数据格式。Size 指定每个属性的组件数量,并且必须为 1、2、3、4 或 ?GL_BGRAType 指定每个组件的数据类型,并且 Stride 指定从一个属性到下一个属性的字节步幅,从而允许将顶点和属性打包到单个数组中或存储在单独的数组中。

外部文档。

链接到此函数

vertexBindingDivisor(Bindingindex, Divisor)

查看源代码
-spec vertexBindingDivisor(Bindingindex :: i(), Divisor :: i()) -> ok.

gl:vertexBindingDivisor/2gl:vertexArrayBindingDivisor/3 修改在单个绘制命令中渲染多个图元实例时,通用顶点属性前进的速率。如果 Divisor 为零,则使用绑定到 Bindingindex 的缓冲区的属性每个顶点前进一次。如果 Divisor 为非零值,则该属性每渲染 Divisor 个顶点集实例前进一次。如果相应的 Divisor 值非零,则属性称为 instanced

外部文档。

链接到此函数

vertexPointer(Size, Type, Stride, Ptr)

查看源代码
-spec vertexPointer(Size :: i(), Type :: enum(), Stride :: i(), Ptr :: offset() | mem()) -> ok.

gl:vertexPointer/4 指定在渲染时使用的顶点坐标数组的位置和数据格式。Size 指定每个顶点的坐标数,并且必须为 2、3 或 4。Type 指定每个坐标的数据类型,并且 Stride 指定从一个顶点到下一个顶点的字节步幅,从而允许将顶点和属性打包到单个数组中或存储在单独的数组中。(在某些实现上,单数组存储可能更有效;请参阅 gl:interleavedArrays/3。)

外部文档。

链接到此函数

viewport(X, Y, Width, Height)

查看源代码
-spec viewport(X :: i(), Y :: i(), Width :: i(), Height :: i()) -> ok.

gl:viewport/4 指定从归一化设备坐标到窗口坐标的 x 和 y 的仿射变换。令 (x nd y nd) 为归一化设备坐标。然后,窗口坐标 (x w y w) 的计算方式如下

外部文档。

链接到此函数

viewportArrayv(First, V)

查看源代码
-spec viewportArrayv(First :: i(), V :: [{f(), f(), f(), f()}]) -> ok.

gl:viewportArrayv/2 同时指定多个视口的参数。First 指定要修改的第一个视口的索引,并且 Count 指定要修改的视口数量。First 必须小于 ?GL_MAX_VIEWPORTS 的值,并且 First + Count 必须小于或等于 ?GL_MAX_VIEWPORTS 的值。索引位于 [First, First + Count) 范围之外的视口不会被修改。V 包含浮点值数组的地址,该数组指定每个视口的左 (x)、底 (y)、宽度 (w) 和高度 (h),按该顺序排列。x 和 y 给出视口左下角的位置,并且 w 和 h 分别给出视口的宽度和高度。视口指定从归一化设备坐标到窗口坐标的 x 和 y 的仿射变换。令 (x nd y nd) 为归一化设备坐标。然后,窗口坐标 (x w y w) 的计算方式如下

外部文档。

链接到此函数

viewportIndexedf(Index, X, Y, W, H)

查看源代码
-spec viewportIndexedf(Index :: i(), X :: f(), Y :: f(), W :: f(), H :: f()) -> ok.

等效于 viewportIndexedfv/2

链接到此函数

viewportIndexedfv(Index, V)

查看源代码
-spec viewportIndexedfv(Index :: i(), V :: {f(), f(), f(), f()}) -> ok.

gl:viewportIndexedf/5gl:viewportIndexedfv/2 指定单个视口的参数。Index 指定要修改的视口的索引。Index 必须小于 ?GL_MAX_VIEWPORTS 的值。对于 gl:viewportIndexedf/5XYWH 分别以像素为单位指定视口的左、底、宽度和高度。对于 gl:viewportIndexedfv/2V 包含一个浮点值数组的地址,该数组指定每个视口的左 (x)、底 (y)、宽度 (w) 和高度 (h),按该顺序排列。x 和 y 给出视口左下角的位置,并且 w 和 h 分别给出视口的宽度和高度。视口指定从归一化设备坐标到窗口坐标的 x 和 y 的仿射变换。令 (x nd y nd) 为归一化设备坐标。然后,窗口坐标 (x w y w) 的计算方式如下

外部文档。

链接到此函数

waitSync(Sync, Flags, Timeout)

查看源代码
-spec waitSync(Sync :: i(), Flags :: i(), Timeout :: i()) -> ok.

gl:waitSync/3 使 GL 服务器阻塞并等待直到 Sync 变为已发出信号。Sync 是要等待的现有同步对象的名称。FlagsTimeout 当前未使用,必须分别设置为零和特殊值 ?GL_TIMEOUT_IGNORED

FlagsTimeout 是占位符,用于表示同步对象功能的未来扩展。它们必须具有这些保留值,以便现有代码调用 gl:waitSync/3 在存在此类扩展的情况下正常运行。

外部文档。

-spec windowPos2d(X :: f(), Y :: f()) -> ok.

等效于 windowPos3sv/1

-spec windowPos2dv({X :: f(), Y :: f()}) -> ok.

等效于 windowPos3sv/1

-spec windowPos2f(X :: f(), Y :: f()) -> ok.

等效于 windowPos3sv/1

-spec windowPos2fv({X :: f(), Y :: f()}) -> ok.

等效于 windowPos3sv/1

-spec windowPos2i(X :: i(), Y :: i()) -> ok.

等效于 windowPos3sv/1

-spec windowPos2iv({X :: i(), Y :: i()}) -> ok.

等效于 windowPos3sv/1

-spec windowPos2s(X :: i(), Y :: i()) -> ok.

等效于 windowPos3sv/1

-spec windowPos2sv({X :: i(), Y :: i()}) -> ok.

等效于 windowPos3sv/1

-spec windowPos3d(X :: f(), Y :: f(), Z :: f()) -> ok.

等效于 windowPos3sv/1

-spec windowPos3dv({X :: f(), Y :: f(), Z :: f()}) -> ok.

等效于 windowPos3sv/1

-spec windowPos3f(X :: f(), Y :: f(), Z :: f()) -> ok.

等效于 windowPos3sv/1

-spec windowPos3fv({X :: f(), Y :: f(), Z :: f()}) -> ok.

等效于 windowPos3sv/1

-spec windowPos3i(X :: i(), Y :: i(), Z :: i()) -> ok.

等效于 windowPos3sv/1

-spec windowPos3iv({X :: i(), Y :: i(), Z :: i()}) -> ok.

等效于 windowPos3sv/1

-spec windowPos3s(X :: i(), Y :: i(), Z :: i()) -> ok.

等效于 windowPos3sv/1

-spec windowPos3sv({X :: i(), Y :: i(), Z :: i()}) -> ok.

GL 在窗口坐标中维护一个 3D 位置。此位置称为光栅位置,用于定位像素和位图写入操作。它以亚像素精度维护。请参阅 gl:bitmap/7gl:drawPixels/5gl:copyPixels/5

外部文档。