加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 为什么在OpenGL上创建着色器后需要分离和删除着色器?

发布时间:2020-12-16 03:21:13 所属栏目:百科 来源:网络整理
导读:我正在关注 this tutorial (link),它表示你必须在链接后从程序中分离着色器,并且必须在此之后删除它们. 直观地说,并行编译C,我认为“链接”是实际创建程序的行为(如,制作可执行文件),– 分离意味着以某种方式删除指向着色器对象的指针(我想象它是类似的)在一
我正在关注 this tutorial (link),它表示你必须在链接后从程序中分离着色器,并且必须在此之后删除它们.

直观地说,并行编译C,我认为“链接”是实际创建程序的行为(如,制作可执行文件),– 分离意味着以某种方式删除指向着色器对象的指针(我想象它是类似的)在一个.o)中,在程序中(目前还不是很清楚 – 在这一点上,程序不是编译后的可执行文件吗?它如何仍然保存指针?) – 删除就像实际删除它们一样. o来自文件夹.

但这些都是猜测,那么实际发生了什么?

解决方法

来自 glDeleteShader的OpenGL文档:

If a shader object to be deleted is attached to a program object,it will be flagged for deletion,but it will not be deleted until it is no longer attached to any program object,for any rendering context (i.e.,it must be detached from wherever it was attached before it will be deleted)

因此,它更像是递减参考计数器而不是实际删除.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读