gpt4 book ai didi

opengl - 通过纹理id获取纹理目标

转载 作者:行者123 更新时间:2023-12-02 11:38:51 25 4
gpt4 key购买 nike

glBindTextures 是一个很好的函数,不仅因为它在一次调用中绑定(bind)多个纹理,而且还因为它知道将每个纹理绑定(bind)到“目标[...]”,该目标是在调用时指定的。对象已创建”。这样我就可以仅在纹理创建时指定目标,然后忘记它,这有助于通用代码。

不幸的是,在调用像glGetTexParamater这样的函数时我必须知道目标。有没有办法从纹理 ID 中检索纹理目标?广泛支持的扩展也可以。

最佳答案

据我所知,没有。

一个可能的解决方法是查询应用程序使用的每个纹理目标的当前绑定(bind),并将当前纹理与您拥有的 ID 进行比较。

GLuint currentTex;

glGetIntegerv(GL_TEXTURE_BINDING_1D, &currentTex);
if (currentTex == testTex)
{
target = GL_TEXTURE_1D;
return;
}

glGetIntegerv(GL_TEXTURE_BINDING_2D, &currentTex);
if (currentTex == testTex)
{
target = GL_TEXTURE_2D;
return
}

// and so on ...

当然,您必须有一个纹理绑定(bind)才能使其工作。如果与 glBindTexture 绑定(bind),那么您无论如何都需要目标。

但是这个解决方案非常笨拙且不可扩展,因此通常只将额外的 int 与纹理目标的 id 一起保存起来要容易得多。

关于opengl - 通过纹理id获取纹理目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25221481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com