GLES2.0中文API-glBindAttribLocation

2023-11-09

名称

glBindAttribLocation - 将通用顶点属性索引与命名属性变量相关联

C规范

void glBindAttribLocation(GLuint program,

                                                  GLuint index,

                                                  const GLchar *name);

参数

program

指定要在其中建立关联的程序对象的句柄。

index

指定要绑定的通用顶点属性的索引。

name

指定一个以空终止符结尾的字符串,其中包含要绑定索引的顶点着色器属性变量的名称。

描述

glBindAttribLocation用于将程序指定的程序对象中的用户定义属性变量与通用顶点属性索引相关联。用户定义的属性变量的名称作为名称中的空终止字符串传递。要绑定到此变量的通用顶点属性索引由index指定。当程序成为当前状态的一部分时,通过通用顶点属性索引提供的值将修改由name指定的用户定义属性变量的值。

如果name引用矩阵属性变量,则index引用矩阵的第一列。然后,对于mat2类型的矩阵,其他矩阵列自动绑定到位置index + 1; index + 1和index + 2表示mat3类型的矩阵;对于mat4类型的矩阵,index + 1,index + 2和index + 3。

此命令使顶点着色器可以使用属性变量的描述性名称,而不是编号为0到GL_MAX_VERTEX_ATTRIBS -1的泛型变量。发送到每个通用属性索引的值是当前状态的一部分,就像标准顶点属性(如颜色,法线和顶点位置)一样。如果通过调用glUseProgram使不同的程序对象成为当前的程序,则跟踪通用顶点属性,使得新程序对象中的属性也将观察到相同的值,这些属性也绑定到索引。

可以通过调用glBindAttribLocation随时显式分配程序对象的属性变量名称到通用属性索引绑定。在调用glLinkProgram之前,属性绑定不会生效。成功链接程序对象后,通用属性的索引值保持固定(并且可以查询它们的值),直到发生下一个链接命令。

不允许应用程序使用此命令绑定任何标准OpenGL顶点属性,因为它们在需要时自动绑定。在程序对象链接之后发生的任何属性绑定在下次链接程序对象之前不会生效。

注意

可以在任何顶点着色器对象绑定到指定程序对象之前调用glBindAttribLocation。也允许将通用属性索引绑定到从未在顶点着色器中使用的属性变量名称。

如果以前绑定了name,则该信息将丢失。因此,您不能将一个用户定义的属性变量绑定到多个索引,但您可以将多个用户定义的属性变量绑定到同一索引。

允许应用程序将多个用户定义的属性变量绑定到相同的通用顶点属性索引。这称为aliasing(别名),仅当可执行程序中只有一个别名属性处于活动状态时,或者如果没有通过着色器的路径消耗属于同一位置的一组属性的多个属性时,才允许使用别名。允许编译器和链接器假定没有进行别名,并且可以自由地使用仅在没有别名的情况下工作的优化。不需要OpenGL实现来进行错误检查以检测别名。由于无法绑定标准属性,因此无法使用常规属性对通用属性进行别名(通用属性0除外)。

调用glLinkProgram时,链接器将绑定未显式绑定的活动属性。可以通过调用glGetAttribLocation来查询分配的位置。

调用glBindAttribLocation时,OpenGL会复制名称字符串,因此应用程序可以在函数返回后立即释放其名称字符串的副本。

错误

GL_INVALID_VALUEindex>=GL_MAX_VERTEX_ATTRIBS

GL_INVALID_OPERATIONname以保留前缀“gl_”开头

GL_INVALID_VALUEprogram不是OpenGL生成的值

GL_INVALID_OPERATIONprogram不是程序对象

相关Gets

glGet 参数GL_MAX_VERTEX_ATTRIBS

glGetActiveAttrib 参数program

glGetAttribLocation 参数programname

glIsProgram

另见

glDisableVertexAttribArrayglEnableVertexAttribArrayglUseProgramglVertexAttribglVertexAttribPointer

版权

https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glBindAttribLocation.xml

https://blog.csdn.net/flycatdeng

Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见http://oss.sgi.com/projects/FreeB/.

Android,OpenGL ES,图形学
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GLES2.0中文API-glBindAttribLocation 的相关文章

  • SSDT SQL Server 数据库项目中用于架构比较的命令行/API?

    在 Visual Studio 2012 中 我们有Schema Compare http msdn microsoft com en us library hh272690 28v vs 103 29 aspx in SSDT http
  • 使用 PHP 和 OAuth 访问 SkyDrive

    我想使用 PHP 访问 skyDrive 我想检索文件和文件夹列表 下载 上传和删除文件 我有一个 microsoft dev clientID 和 clientSecret 有人可以帮助我开始使用 OAuth 连接到 skyDrive 并
  • 为 NFL api 生成访问令牌

    NFL 有一个 API 服务 link https api nfl com docs getting started index html https api nfl com docs getting started index html
  • laravel - 使用请求类或输入类

    在宁静的控制器中 我应该使用哪个类来获取传递的变量 member gt email Input get email or member gt email Request get email 两种选择都适合我 但有什么区别 Input get
  • 将 CURL 命令行转换为 VBA

    在 CURL 中 我可以使用这一行 curl data DataToBeSent https example com resource cgi 我正在努力将此类行转换为在 VBA 中使用 这是我到目前为止的尝试 Sub POST Metho
  • 谷歌地图的地址建议

    有人知道是否有任何方法可以重现 ajax 建议框 例如http maps google com http maps google com 我的网页中有使用 google 地图 api 的吗 例如 如果有人写下 15 Avenue 的建议列表
  • 歌曲搜索和流预览 API [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有 API 可以让我搜索歌曲 然后在我的网站上流式传输该歌曲的预览 查看了 Amazon MP3 但
  • 为 REST API 编写单元测试的最佳方法是什么?

    在为 API 包装器编写单元测试时 我应该对 REST API 端点进行真正的调用 还是应该使用 mocl 响应来模拟成功和错误的调用 单元测试意味着只测试你的unit API 包装器 仅此而已 因此 不幸的是 您应该模拟整个 API 另一
  • Rails api 中阻止用户配置文件的最佳 HTTP 状态代码是什么?

    我在 Rails 中为社交应用程序编写了一个 API 这个应用程序就像Facebook一样 用户可以阻止其他用户 如果用户 A 阻止用户 B 则用户 B 无法查看用户 A 的个人资料页面 那么我应该返回的最佳 HTTP 代码状态是什么 40
  • Google API 令牌端点 POST 返回错误请求 400

    我正在尝试用一次性 Google Plus 授权代码换取访问令牌 但我不断收到 400 Bad Request 我正在使用VB NET 这是代码 We should now have a good one time authorizatio
  • React + Redux 和 REST API?

    我在 Node 中构建了一个简单的 CRUD 应用程序 并已在 Express 中完成了其余 API 的创建 我现在正在寻求添加前端功能 并希望使用 React Redux 作为学习练习 然而 似乎所有围绕此的教程都直接使用 Redux 访
  • 如何使用 WP REST API 插件获取 YOAST SEO 插件数据?特别是 wpseo_head 挂钩内容

    我正在使用 WP REST API 来获取所有发布数据 嗯 它工作得很好 但任何网站最关心的是 SEO 部分 我正在使用 YOAST SEO 插件 我想获取它在 HTML 的 Head 部分中创建的所有元标记 仅供参考 我使用 Wordpr
  • 当前平台不支持桌面 API

    我遇到过这个错误 java lang UnsupportedOperationException 当前平台不支持桌面 API 我将从我的 java 应用程序中打开一个文件 我用这个方法 Desktop getDesktop open new
  • RESTful API:我应该在哪里编码我的工作流程?

    我正在开发一个 RESTful API 这是我的第一个 API 也是我的第一个真正大型的编码项目 因此 我仍在学习很多关于建筑等方面的知识 目前 我的 api 设置分为以下几层 HTTP层 资源层 领域模型 业务逻辑层 数据访问 存储层 持
  • REST API 路由最佳实践

    我想知道当订单是一种资源时 为以下场景创建 REST API 的最佳实践是什么 获取数据库中的所有订单 当然不是实际场景 仅供理解 通过订单ID获取订单 根据订单ID获取单个订单 单个 GET 路由是否可以用于所有这些场景 或者我们应该针对
  • Elasticsearch GET API 获取分片大小

    在 Elasticsearch 2 3 3 中 有没有办法使用返回 JSON 的 GET API 获取分片大小 目前我找到了以下几种获取shard size的方法 这两种方法都存在问题 recovery gt 使用 JSON 进行响应并提供
  • 如果单个 POST 请求创建多个资源,是否被认为是 RESTful?

    我们有客户 API 它采用 customer name customer mobile customer email 并在数据库中创建客户 我们还有接受 productId customer name customer mobile cus
  • 使用 JavaScript 时如何保护 API Key?

    因此 我正在开发一个仅供我自己使用的小型应用程序 也可能是 Git 上的一个开源项目 我正在使用来自 Envato Marketplaces 的 API 众所周知 有些操作不需要任何密钥 但同时也有一些操作需要 我首先用 PHP 为 Env
  • 用于检索名人信息的 API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 Web API 添加到 asp.net MVC 项目时出现问题(追溯)

    我正在 Visual Studio 2013 中使用 asp net mvc 迈出第一步 但遇到了一个奇怪的问题 我以 MVC 的形式启动了我的项目 并且没有选中 Web API 框来包含核心参考 不过现在我想使用 Web API 功能 我

随机推荐

  • 什么是平衡二叉树以及如何检查它?

    对于二叉树 如果树是倾斜的 那么执行操作时计算效率就会降低 这就是确保树木不倾斜的动机 因此需要平衡二叉树 什么是平衡二叉树 平衡二叉树在计算上执行操作是高效的 平衡二叉树将遵循以下条件 任意节点左右子树高度差的绝对值小于1 对于每个节点
  • Java 15 特性

    保持六个月周期的传统 发布后Java 142020 年 3 月 17 日 我们现在有了 Java 15 下一个非 LTS 版本将于 2020 年 9 月 15 日推出 Java 15 特性 下面快速浏览一下 Java 15 的功能 密封课程
  • 如何在 Debian 11 上设置 NFS 挂载

    介绍 NFS 网络文件系统 是一种分布式文件系统协议 允许您在服务器上挂载远程目录 这允许您管理不同位置的存储空间并从多个客户端写入该空间 NFS 提供了一种相对标准且高性能的方式来通过网络访问远程系统 并且在必须定期访问共享资源的情况下运
  • Log4j 级别示例 - 顺序、优先级、自定义过滤器

    如果您使用过 log4j 您会注意到有很多方法来记录消息 例如 logger trace My Log message logger debug My Log message logger info My Log message 实际上它们
  • 如何在 Ubuntu 12.04 LTS 上设置 Apache 虚拟主机

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • json-简单示例

    json simple 是一个简单的 JSON java 工具包 json simple 库完全符合 JSON 规范 RFC4627 json 简单 json simple uses Map and List internally for
  • 如何在R中使用sample()获取样本?

    让我们了解 R 中最常用的函数之一 sample 在数据分析中 对数据进行采样是分析师最常见的过程 要研究和理解数据 有时采样是最好的方法 对于大数据来说尤其如此 R 提供标准函数sample 来从数据集中获取样本 许多业务和数据分析问题都
  • 如何在 Ubuntu 16.04 上使用 Webmin、LAMP、BIND 和 PostFix 安装 Virtualmin

    介绍 Webmin是一个 Web 前端 允许您通过浏览器远程管理服务器 虚拟分钟是Webmin的一个插件 可以通过单个界面简化多个虚拟主机的管理 类似于cPanel or Plesk 使用 Virtualmin 您可以管理用户帐户 Apac
  • Python等待时间,等待用户输入

    有时我们希望 python 程序在执行下一步之前等待特定的时间 我们可以用时间模块 sleep 函数将我们的程序暂停指定的秒数 Python等待时间 让我们看一个简单的示例 在执行进一步的语句之前 我们将暂停程序 5 秒钟 import t
  • Java 队列 – Java 中的队列

    Java Queue is an interface available in java util package and extends java util Collection interface Just like Java List
  • Python 小数 - 除法、舍入、精度

    Python 小数模块帮助我们以适当的精度进行除法和四舍五入numbers Python 十进制模块 In this lesson on decimal module in Python we will see how we can man
  • Java 字符串中最长的回文子串

    字符串中最长的回文子串是很常见的java面试题 找出最长的回文数String 首先 我们需要确定这样做的逻辑 字符串算法中的最长回文子串 这里的关键点是 从任何回文串的中间开始 如果我们向右和向左移动 1 个位置 它总是相同的字符 例如12
  • 理解 Python 3 中的字典

    介绍 The 字典是Python内置的mapping类型 词典地图keys to values这些键值对提供了一种在 Python 中存储数据的有用方法 字典通常用于保存相关数据 例如 ID 或用户配置文件中包含的信息 字典的两侧都带有花括
  • 如何使用 cd、pwd 和 ls 探索 Linux 服务器上的文件系统

    介绍 熟悉命令行是利用 Linux 服务器平台强大功能的第一步 这也是您可能希望在此环境中执行的基本上所有与服务器相关的活动的基本先决条件 虽然许多工具都存在图形替代方案 但学习命令行是一项技能 可以让您以大多数 GUI 图形用户界面 无法
  • Nginx 位置指令示例

    NGINX 服务器块中的位置指令允许将请求路由到文件系统中的正确位置 该指令用于告诉 NGINX 在哪里查找资源 方法是在将位置块与 URL 进行匹配时包含文件和文件夹 在本教程中 我们将详细了解 NGINX 位置指令 先决条件 您已经按照
  • 使用 React Hooks 优化服务器请求

    介绍 作为一名 React 开发人员 您是否厌倦了与管理不善的服务器请求作斗争 别再犹豫了 反应钩子是 React 库的一项强大功能 它允许开发人员在功能组件中使用状态和其他 React 功能 并可以帮助优化服务器请求并将 Web 应用程序
  • 如何在 Ubuntu 14.04 上使用 uWSGI 和 Nginx 为 Flask 应用程序提供服务

    介绍 在本指南中 我们将在 Ubuntu 14 04 上使用 Flask 微框架设置一个简单的 Python 应用程序 本文的大部分内容将介绍如何设置 uWSGI 应用程序服务器来启动应用程序以及如何设置 Nginx 作为前端反向代理 先决
  • python爬虫需要学习哪些基础知识_Python爬虫学习线路图丨Python爬虫需要掌握哪些知识点...

    据不完全统计 世界上80 的爬虫都是基于Python开发的 Python简单易学 对编程初学者十分友好 而且具有丰富而强大的库 开发效率奇高 因此很多编程爱好者都对Python爬虫十分感兴趣 要知道学好爬虫对工作大有裨益 可为今后入门大数据
  • 基于flask框架的用户注册页面实例

    文件框架 app py文件 from flask import Flask render template request app Flask name app route def index return register 申请注册页面
  • GLES2.0中文API-glBindAttribLocation

    名称 glBindAttribLocation 将通用顶点属性索引与命名属性变量相关联 C规范 void glBindAttribLocation GLuint program GLuint index const GLchar name